summaryrefslogtreecommitdiffstats
path: root/js/src/jscompartment.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jscompartment.cpp')
-rw-r--r--js/src/jscompartment.cpp15
1 files changed, 4 insertions, 11 deletions
diff --git a/js/src/jscompartment.cpp b/js/src/jscompartment.cpp
index a48bb0ffe..d0caeb558 100644
--- a/js/src/jscompartment.cpp
+++ b/js/src/jscompartment.cpp
@@ -112,13 +112,6 @@ JSCompartment::~JSCompartment()
js_delete(nonSyntacticLexicalEnvironments_),
js_free(enumerators);
-#ifdef DEBUG
- // Avoid assertion destroying the unboxed layouts list if the embedding
- // leaked GC things.
- if (!rt->gc.shutdownCollectedEverything())
- unboxedLayouts.clear();
-#endif
-
runtime_->numCompartments--;
}
@@ -1082,18 +1075,18 @@ CreateLazyScriptsForCompartment(JSContext* cx)
// Create scripts for each lazy function, updating the list of functions to
// process with any newly exposed inner functions in created scripts.
// A function cannot be delazified until its outer script exists.
+ RootedFunction fun(cx);
for (size_t i = 0; i < lazyFunctions.length(); i++) {
- JSFunction* fun = &lazyFunctions[i]->as<JSFunction>();
+ fun = &lazyFunctions[i]->as<JSFunction>();
// lazyFunctions may have been populated with multiple functions for
// a lazy script.
if (!fun->isInterpretedLazy())
continue;
- LazyScript* lazy = fun->lazyScript();
- bool lazyScriptHadNoScript = !lazy->maybeScript();
+ bool lazyScriptHadNoScript = !fun->lazyScript()->maybeScript();
- JSScript* script = fun->getOrCreateScript(cx);
+ JSScript* script = JSFunction::getOrCreateScript(cx, fun);
if (!script)
return false;
if (lazyScriptHadNoScript && !AddInnerLazyFunctionsFromScript(script, lazyFunctions))