mirror of
https://github.com/facebookarchive/prepack.git
synced 2024-09-20 03:27:09 +03:00
Add option to disable "acceleration" of require calls.
Summary: Fixes #986 Closes https://github.com/facebook/prepack/pull/1283 Reviewed By: NTillmann Differential Revision: D6638592 Pulled By: lukas1994 fbshipit-source-id: d964dc1f8611a9b95aa334e11506fc637705671f
This commit is contained in:
parent
7b3d0dba83
commit
838d0cdc4a
@ -79,6 +79,7 @@ function runTest(name: string, code: string): boolean {
|
||||
internalDebug: true,
|
||||
compatibility: "jsc-600-1-4-17",
|
||||
delayUnsupportedRequires: true,
|
||||
accelerateUnsupportedRequires: true,
|
||||
mathRandomSeed: "0",
|
||||
errorHandler,
|
||||
serialize: true,
|
||||
|
@ -37,6 +37,7 @@ export type SerializerOptions = {
|
||||
lazyObjectsRuntime?: string,
|
||||
delayInitializations?: boolean,
|
||||
delayUnsupportedRequires?: boolean,
|
||||
accelerateUnsupportedRequires?: boolean,
|
||||
initializeMoreModules?: boolean,
|
||||
internalDebug?: boolean,
|
||||
debugScopes?: boolean,
|
||||
|
@ -93,6 +93,7 @@ function run(
|
||||
logModules: false,
|
||||
delayInitializations: false,
|
||||
delayUnsupportedRequires: false,
|
||||
accelerateUnsupportedRequires: true,
|
||||
internalDebug: false,
|
||||
debugScopes: false,
|
||||
serialize: false,
|
||||
|
@ -24,6 +24,7 @@ export type PrepackOptions = {|
|
||||
debugNames?: boolean,
|
||||
delayInitializations?: boolean,
|
||||
delayUnsupportedRequires?: boolean,
|
||||
accelerateUnsupportedRequires?: boolean,
|
||||
inputSourceMapFilename?: string,
|
||||
internalDebug?: boolean,
|
||||
debugScopes?: boolean,
|
||||
@ -92,6 +93,7 @@ export function getSerializerOptions({
|
||||
heapGraphFilePath,
|
||||
delayInitializations = false,
|
||||
delayUnsupportedRequires = false,
|
||||
accelerateUnsupportedRequires = true,
|
||||
internalDebug = false,
|
||||
debugScopes = false,
|
||||
logStatistics = false,
|
||||
@ -105,6 +107,7 @@ export function getSerializerOptions({
|
||||
let result: SerializerOptions = {
|
||||
delayInitializations,
|
||||
delayUnsupportedRequires,
|
||||
accelerateUnsupportedRequires,
|
||||
initializeMoreModules,
|
||||
internalDebug,
|
||||
debugScopes,
|
||||
|
@ -188,6 +188,7 @@ export class ModuleTracer extends Tracer {
|
||||
`accelerated initialization of conditional module ${nestedModuleId} as it's required in an evaluate-for-effects context by module ${moduleIdValue}`
|
||||
);
|
||||
if (
|
||||
this.modules.accelerateUnsupportedRequires &&
|
||||
nestedEffects !== undefined &&
|
||||
nestedEffects[0] instanceof Value &&
|
||||
this.modules.isModuleInitialized(nestedModuleId)
|
||||
@ -288,7 +289,8 @@ export class Modules {
|
||||
logger: Logger,
|
||||
statistics: SerializerStatistics,
|
||||
logModules: boolean,
|
||||
delayUnsupportedRequires: boolean
|
||||
delayUnsupportedRequires: boolean,
|
||||
accelerateUnsupportedRequires: boolean
|
||||
) {
|
||||
this.realm = realm;
|
||||
this.logger = logger;
|
||||
@ -299,6 +301,7 @@ export class Modules {
|
||||
this.initializedModules = new Map();
|
||||
realm.tracers.push((this.moduleTracer = new ModuleTracer(this, statistics, logModules)));
|
||||
this.delayUnsupportedRequires = delayUnsupportedRequires;
|
||||
this.accelerateUnsupportedRequires = accelerateUnsupportedRequires;
|
||||
this.disallowDelayingRequiresOverride = false;
|
||||
}
|
||||
|
||||
@ -311,6 +314,7 @@ export class Modules {
|
||||
initializedModules: Map<number | string, Value>;
|
||||
active: boolean;
|
||||
delayUnsupportedRequires: boolean;
|
||||
accelerateUnsupportedRequires: boolean;
|
||||
disallowDelayingRequiresOverride: boolean;
|
||||
moduleTracer: ModuleTracer;
|
||||
|
||||
|
@ -47,7 +47,8 @@ export class Serializer {
|
||||
this.logger,
|
||||
this.statistics,
|
||||
!!serializerOptions.logModules,
|
||||
!!serializerOptions.delayUnsupportedRequires
|
||||
!!serializerOptions.delayUnsupportedRequires,
|
||||
!!serializerOptions.accelerateUnsupportedRequires
|
||||
);
|
||||
this.functions = new Functions(this.realm, serializerOptions.additionalFunctions, this.modules.moduleTracer);
|
||||
if (serializerOptions.trace) this.realm.tracers.push(new LoggingTracer(this.realm));
|
||||
|
Loading…
Reference in New Issue
Block a user