aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/script_thread.rs
diff options
context:
space:
mode:
authorStjepan Glavina <stjepang@gmail.com>2016-04-01 02:34:23 +0200
committerStjepan Glavina <stjepang@gmail.com>2016-04-04 22:42:45 +0200
commit3ad7119b08344df7aa4b48483393ba0971ad377a (patch)
tree118b82f6641040395199f68af187ec8722a5a2f7 /components/script/script_thread.rs
parentf2b48d2764c88970d9fbf654e59fe135b6c79629 (diff)
downloadservo-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.rs12
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
}