Add preferences to enable/disable the JITs

When creating a runtime (script.rs), we check prefs and then enable or
disable the JITs (Baseline and Ion).
This commit is contained in:
Stjepan Glavina 2016-04-01 02:34:23 +02:00
parent f2b48d2764
commit 3ad7119b08
2 changed files with 13 additions and 1 deletions

View file

@ -57,7 +57,7 @@ use js::jsapi::{DisableIncrementalGC, JS_AddExtraGCRootsTracer, JS_SetWrapObject
use js::jsapi::{GCDescription, GCProgress, JSGCInvocationKind, SetGCSliceCallback};
use js::jsapi::{JSAutoRequest, JSGCStatus, JS_GetRuntime, JS_SetGCCallback, SetDOMCallbacks};
use js::jsapi::{JSContext, JSRuntime, JSTracer};
use js::jsapi::{JSObject, SetPreserveWrapperCallback};
use js::jsapi::{JSObject, RuntimeOptionsRef, SetPreserveWrapperCallback};
use js::jsval::UndefinedValue;
use js::rust::Runtime;
use layout_interface::{ReflowQueryType};
@ -108,6 +108,7 @@ use task_source::user_interaction::UserInteractionTaskSource;
use time::{Tm, now};
use url::Url;
use util::opts;
use util::prefs::get_pref;
use util::str::DOMString;
use util::thread;
use util::thread_state;
@ -739,6 +740,15 @@ impl ScriptThread {
DisableIncrementalGC(runtime.rt());
}
// Enable or disable the JITs.
let rt_opts = unsafe { &mut *RuntimeOptionsRef(runtime.rt()) };
if let Some(val) = get_pref("js.baseline.enabled").as_boolean() {
rt_opts.set_baseline_(val);
}
if let Some(val) = get_pref("js.ion.enabled").as_boolean() {
rt_opts.set_ion_(val);
}
runtime
}

View file

@ -2,6 +2,8 @@
"dom.mouseevent.which.enabled": false,
"dom.mozbrowser.enabled": false,
"gfx.webrender.enabled": false,
"js.baseline.enabled": true,
"js.ion.enabled": true,
"layout.columns.enabled": false,
"layout.column-width.enabled": false,
"layout.column-count.enabled": false,