From a5b58310970ca3c1dae92d0255202148a40999e0 Mon Sep 17 00:00:00 2001 From: Sebastian Hengst Date: Sat, 22 Jul 2017 11:08:53 +0200 Subject: [PATCH] Backed out changeset da7ad37975f1 (bug 1377016) on suspicion of frequently asserting at dom/script/ScriptLoader.cpp:649 during wpt instantiation-error-2.html. r=backout --- js/src/jscompartment.cpp | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/js/src/jscompartment.cpp b/js/src/jscompartment.cpp index 5ba99259de63..79b0377d0b55 100644 --- a/js/src/jscompartment.cpp +++ b/js/src/jscompartment.cpp @@ -569,13 +569,10 @@ JSCompartment::getOrCreateNonSyntacticLexicalEnvironment(JSContext* cx, HandleOb return nullptr; } - // If a wrapped WithEnvironmentObject was passed in, unwrap it, as we may - // be creating different WithEnvironmentObject wrappers each time. - RootedObject key(cx, enclosing); - if (enclosing->is()) { - MOZ_ASSERT(!enclosing->as().isSyntactic()); - key = &enclosing->as().object(); - } + // The key is the unwrapped dynamic scope, as we may be creating different + // WithEnvironmentObject wrappers each time. + MOZ_ASSERT(!enclosing->as().isSyntactic()); + RootedObject key(cx, &enclosing->as().object()); RootedObject lexicalEnv(cx, nonSyntacticLexicalEnvironments_->lookup(key)); if (!lexicalEnv) { @@ -594,13 +591,9 @@ JSCompartment::getNonSyntacticLexicalEnvironment(JSObject* enclosing) const { if (!nonSyntacticLexicalEnvironments_) return nullptr; - // If a wrapped WithEnvironmentObject was passed in, unwrap it as in - // getOrCreateNonSyntacticLexicalEnvironment. - JSObject* key = enclosing; - if (enclosing->is()) { - MOZ_ASSERT(!enclosing->as().isSyntactic()); - key = &enclosing->as().object(); - } + if (!enclosing->is()) + return nullptr; + JSObject* key = &enclosing->as().object(); JSObject* lexicalEnv = nonSyntacticLexicalEnvironments_->lookup(key); if (!lexicalEnv) return nullptr;