Add js.disable_jit pref (#34231)

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This commit is contained in:
Samson 2024-11-13 07:50:30 +01:00 committed by GitHub
parent 5e7664b72e
commit 873e82a532
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 7 additions and 0 deletions

View file

@ -435,6 +435,8 @@ mod gen {
baseline_interpreter: { baseline_interpreter: {
enabled: bool, enabled: bool,
}, },
/// Whether to disable the jit within SpiderMonkey
disable_jit: bool,
baseline_jit: { baseline_jit: {
enabled: bool, enabled: bool,
unsafe_eager_compilation: { unsafe_eager_compilation: {

View file

@ -3,6 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
use js::jsapi::JSObject; use js::jsapi::JSObject;
use servo_config::pref;
use crate::dom::bindings::codegen::RegisterBindings; use crate::dom::bindings::codegen::RegisterBindings;
use crate::dom::bindings::conversions::is_dom_proxy; use crate::dom::bindings::conversions::is_dom_proxy;
@ -61,6 +62,9 @@ unsafe extern "C" fn is_dom_object(obj: *mut JSObject) -> bool {
#[allow(unsafe_code)] #[allow(unsafe_code)]
pub fn init() -> JSEngineSetup { pub fn init() -> JSEngineSetup {
unsafe { unsafe {
if pref!(js.disable_jit) {
js::jsapi::DisableJitBackend();
}
proxyhandler::init(); proxyhandler::init();
// Create the global vtables used by the (generated) DOM // Create the global vtables used by the (generated) DOM

View file

@ -61,6 +61,7 @@
"js.baseline_interpreter.enabled": true, "js.baseline_interpreter.enabled": true,
"js.baseline_jit.enabled": true, "js.baseline_jit.enabled": true,
"js.baseline_jit.unsafe_eager_compilation.enabled": false, "js.baseline_jit.unsafe_eager_compilation.enabled": false,
"js.disable_jit": false,
"js.discard_system_source.enabled": false, "js.discard_system_source.enabled": false,
"js.dump_stack_on_debuggee_would_run.enabled": false, "js.dump_stack_on_debuggee_would_run.enabled": false,
"js.ion.enabled": true, "js.ion.enabled": true,