diff options
author | Stjepan Glavina <stjepang@gmail.com> | 2016-04-01 02:34:23 +0200 |
---|---|---|
committer | Stjepan Glavina <stjepang@gmail.com> | 2016-04-04 22:42:45 +0200 |
commit | 3ad7119b08344df7aa4b48483393ba0971ad377a (patch) | |
tree | 118b82f6641040395199f68af187ec8722a5a2f7 /components/script/script_thread.rs | |
parent | f2b48d2764c88970d9fbf654e59fe135b6c79629 (diff) | |
download | servo-3ad7119b08344df7aa4b48483393ba0971ad377a.tar.gz servo-3ad7119b08344df7aa4b48483393ba0971ad377a.zip |
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).
Diffstat (limited to 'components/script/script_thread.rs')
-rw-r--r-- | components/script/script_thread.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index 1f6adc177c1..eea67975844 100644 --- a/components/script/script_thread.rs +++ b/components/script/script_thread.rs @@ -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 } |