Pref the use of unboxed plain objects in JS and disable by default
parent
24e549b6f4
commit
2d009f3fa3
|
@ -222,7 +222,7 @@ DefaultJitOptions::DefaultJitOptions()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Toggles whether unboxed plain objects can be created by the VM.
|
// Toggles whether unboxed plain objects can be created by the VM.
|
||||||
SET_DEFAULT(disableUnboxedObjects, false);
|
SET_DEFAULT(disableUnboxedObjects, true);
|
||||||
|
|
||||||
// Test whether Atomics are allowed in asm.js code.
|
// Test whether Atomics are allowed in asm.js code.
|
||||||
SET_DEFAULT(asmJSAtomicsEnable, false);
|
SET_DEFAULT(asmJSAtomicsEnable, false);
|
||||||
|
|
|
@ -6410,6 +6410,9 @@ JS_SetGlobalJitCompilerOption(JSContext* cx, JSJitCompilerOption opt, uint32_t v
|
||||||
}
|
}
|
||||||
jit::JitOptions.jumpThreshold = value;
|
jit::JitOptions.jumpThreshold = value;
|
||||||
break;
|
break;
|
||||||
|
case JSJITCOMPILER_UNBOXED_OBJECTS:
|
||||||
|
jit::JitOptions.disableUnboxedObjects = !value;
|
||||||
|
break;
|
||||||
case JSJITCOMPILER_ASMJS_ATOMICS_ENABLE:
|
case JSJITCOMPILER_ASMJS_ATOMICS_ENABLE:
|
||||||
jit::JitOptions.asmJSAtomicsEnable = !!value;
|
jit::JitOptions.asmJSAtomicsEnable = !!value;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -5794,6 +5794,7 @@ JS_SetOffthreadIonCompilationEnabled(JSContext* cx, bool enabled);
|
||||||
Register(BASELINE_ENABLE, "baseline.enable") \
|
Register(BASELINE_ENABLE, "baseline.enable") \
|
||||||
Register(OFFTHREAD_COMPILATION_ENABLE, "offthread-compilation.enable") \
|
Register(OFFTHREAD_COMPILATION_ENABLE, "offthread-compilation.enable") \
|
||||||
Register(JUMP_THRESHOLD, "jump-threshold") \
|
Register(JUMP_THRESHOLD, "jump-threshold") \
|
||||||
|
Register(UNBOXED_OBJECTS, "unboxed_objects") \
|
||||||
Register(ASMJS_ATOMICS_ENABLE, "asmjs.atomics.enable") \
|
Register(ASMJS_ATOMICS_ENABLE, "asmjs.atomics.enable") \
|
||||||
Register(WASM_TEST_MODE, "wasm.test-mode") \
|
Register(WASM_TEST_MODE, "wasm.test-mode") \
|
||||||
Register(WASM_FOLD_OFFSETS, "wasm.fold-offsets")
|
Register(WASM_FOLD_OFFSETS, "wasm.fold-offsets")
|
||||||
|
|
|
@ -1427,6 +1427,8 @@ ReloadPrefsCallback(const char* pref, void* data)
|
||||||
|
|
||||||
bool extraWarnings = Preferences::GetBool(JS_OPTIONS_DOT_STR "strict");
|
bool extraWarnings = Preferences::GetBool(JS_OPTIONS_DOT_STR "strict");
|
||||||
|
|
||||||
|
bool unboxedObjects = Preferences::GetBool(JS_OPTIONS_DOT_STR "unboxed_objects");
|
||||||
|
|
||||||
sSharedMemoryEnabled = Preferences::GetBool(JS_OPTIONS_DOT_STR "shared_memory");
|
sSharedMemoryEnabled = Preferences::GetBool(JS_OPTIONS_DOT_STR "shared_memory");
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
@ -1455,6 +1457,8 @@ ReloadPrefsCallback(const char* pref, void* data)
|
||||||
useBaselineEager ? 0 : -1);
|
useBaselineEager ? 0 : -1);
|
||||||
JS_SetGlobalJitCompilerOption(cx, JSJITCOMPILER_ION_WARMUP_TRIGGER,
|
JS_SetGlobalJitCompilerOption(cx, JSJITCOMPILER_ION_WARMUP_TRIGGER,
|
||||||
useIonEager ? 0 : -1);
|
useIonEager ? 0 : -1);
|
||||||
|
JS_SetGlobalJitCompilerOption(cx, JSJITCOMPILER_UNBOXED_OBJECTS,
|
||||||
|
unboxedObjects);
|
||||||
}
|
}
|
||||||
|
|
||||||
XPCJSContext::~XPCJSContext()
|
XPCJSContext::~XPCJSContext()
|
||||||
|
|
|
@ -1268,6 +1268,7 @@ pref("javascript.options.strict", false);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
pref("javascript.options.strict.debug", false);
|
pref("javascript.options.strict.debug", false);
|
||||||
#endif
|
#endif
|
||||||
|
pref("javascript.options.unboxed_objects", false);
|
||||||
pref("javascript.options.baselinejit", true);
|
pref("javascript.options.baselinejit", true);
|
||||||
pref("javascript.options.ion", true);
|
pref("javascript.options.ion", true);
|
||||||
pref("javascript.options.asmjs", true);
|
pref("javascript.options.asmjs", true);
|
||||||
|
|
Loading…
Reference in New Issue