--- a/js/jsd/jsd_high.c
+++ b/js/jsd/jsd_high.c
@@ -134,30 +134,28 @@ static JSDContext*
goto label_newJSDContext_failure;
jsdc->dumbContext = JS_NewContext(jsdc->jsrt, 256);
if( ! jsdc->dumbContext )
goto label_newJSDContext_failure;
JS_BeginRequest(jsdc->dumbContext);
- jsdc->glob = JS_NewCompartmentAndGlobalObject(jsdc->dumbContext, &global_class, NULL);
+ if( scopeobj )
+ call = JS_EnterCrossCompartmentCall(jsdc->dumbContext, scopeobj);
+ jsdc->glob = JS_NewGlobalObject(jsdc->dumbContext, &global_class);
+ if( call )
+ JS_LeaveCrossCompartmentCall(call);
+
if( ! jsdc->glob )
goto label_newJSDContext_failure;
- call = JS_EnterCrossCompartmentCall(jsdc->dumbContext, scopeobj);
- if( ! call )
- goto label_newJSDContext_failure;
-
if( ! JS_InitStandardClasses(jsdc->dumbContext, jsdc->glob) )
goto label_newJSDContext_failure;
- if( call )
- JS_LeaveCrossCompartmentCall(call);
-
JS_EndRequest(jsdc->dumbContext);
jsdc->data = NULL;
jsdc->inited = JS_TRUE;
JSD_LOCK();
JS_INSERT_LINK(&jsdc->links, &_jsd_context_list);
JSD_UNLOCK();