diff options
-rw-r--r-- | gjs/context.cpp | 12 | ||||
-rw-r--r-- | gjs/jsapi-util.cpp | 11 | ||||
-rw-r--r-- | gjs/jsapi-util.h | 3 |
3 files changed, 13 insertions, 13 deletions
diff --git a/gjs/context.cpp b/gjs/context.cpp index 1dfac08b..f5bd933e 100644 --- a/gjs/context.cpp +++ b/gjs/context.cpp @@ -608,18 +608,10 @@ gjs_context_constructor (GType type, */ if (js_version == JSVERSION_UNKNOWN) js_version = JSVERSION_DEFAULT; - /* Set the version if we need to. */ - if (js_version != JSVERSION_DEFAULT && JS_GetVersion(js_context->context) != js_version) { - gjs_debug(GJS_DEBUG_CONTEXT, - "Changing JavaScript version to %s from %s", - JS_VersionToString(js_version), - JS_VersionToString(JS_GetVersion(js_context->context))); - - JS_SetVersion(js_context->context, js_version); - } - if (!gjs_init_context_standard(js_context->context)) + if (!gjs_init_context_standard(js_context->context, js_version)) g_error("Failed to initialize context"); + js_context->global = JS_GetGlobalObject(js_context->context); JSAutoCompartment ac(js_context->context, js_context->global); diff --git a/gjs/jsapi-util.cpp b/gjs/jsapi-util.cpp index 031e7f78..c4beb7e8 100644 --- a/gjs/jsapi-util.cpp +++ b/gjs/jsapi-util.cpp @@ -88,11 +88,18 @@ static JSClass global_class = { * Returns: %TRUE on success, %FALSE otherwise */ gboolean -gjs_init_context_standard (JSContext *context) +gjs_init_context_standard (JSContext *context, + JSVersion js_version) { JSObject *global; + JS::CompartmentOptions options; - global = JS_NewGlobalObject(context, &global_class, NULL); + gjs_debug(GJS_DEBUG_CONTEXT, + "Setting JavaScript version to %s", + JS_VersionToString(js_version)); + + options.setVersion(js_version); + global = JS_NewGlobalObject(context, &global_class, NULL, options); if (global == NULL) return FALSE; diff --git a/gjs/jsapi-util.h b/gjs/jsapi-util.h index a8288738..5c02fe6e 100644 --- a/gjs/jsapi-util.h +++ b/gjs/jsapi-util.h @@ -186,7 +186,8 @@ jsval gjs_##cname##_create_proto(JSContext *context, JSObject *module, const cha return rval; \ } -gboolean gjs_init_context_standard (JSContext *context); +gboolean gjs_init_context_standard (JSContext *context, + JSVersion js_version); JSObject* gjs_get_import_global (JSContext *context); |