From 5442c92e675229dec12bed89357a664a48570705 Mon Sep 17 00:00:00 2001 From: Butkovits Atila Date: Mon, 28 Nov 2022 21:17:38 +0200 Subject: [PATCH] Backed out changeset 5d4bbe51337a (bug 1219128) for causing SM bustages. CLOSED TREE --- js/src/jit-test/tests/basic/bug1219128-1.js | 6 ---- js/src/jit-test/tests/basic/bug1219128-2.js | 2 -- js/src/jit-test/tests/basic/bug1219128-3.js | 4 --- js/src/jit-test/tests/basic/bug1219128-4.js | 4 --- js/src/jit-test/tests/basic/bug1219128-5.js | 4 --- js/src/jit-test/tests/basic/bug1219128-6.js | 4 --- js/src/jit-test/tests/basic/bug1219128-7.js | 34 --------------------- js/src/jit-test/tests/basic/bug1219128-8.js | 2 -- js/src/vm/GlobalObject.cpp | 8 ----- js/src/vm/Realm-inl.h | 2 +- js/src/vm/Realm.h | 2 -- 11 files changed, 1 insertion(+), 71 deletions(-) delete mode 100644 js/src/jit-test/tests/basic/bug1219128-1.js delete mode 100644 js/src/jit-test/tests/basic/bug1219128-2.js delete mode 100644 js/src/jit-test/tests/basic/bug1219128-3.js delete mode 100644 js/src/jit-test/tests/basic/bug1219128-4.js delete mode 100644 js/src/jit-test/tests/basic/bug1219128-5.js delete mode 100644 js/src/jit-test/tests/basic/bug1219128-6.js delete mode 100644 js/src/jit-test/tests/basic/bug1219128-7.js delete mode 100644 js/src/jit-test/tests/basic/bug1219128-8.js diff --git a/js/src/jit-test/tests/basic/bug1219128-1.js b/js/src/jit-test/tests/basic/bug1219128-1.js deleted file mode 100644 index 4724059bca72..000000000000 --- a/js/src/jit-test/tests/basic/bug1219128-1.js +++ /dev/null @@ -1,6 +0,0 @@ -evaluate(` - x = evalcx("lazy"); - oomTest(function () { - x.start("1"); - }); -`); diff --git a/js/src/jit-test/tests/basic/bug1219128-2.js b/js/src/jit-test/tests/basic/bug1219128-2.js deleted file mode 100644 index 3333827d4fa0..000000000000 --- a/js/src/jit-test/tests/basic/bug1219128-2.js +++ /dev/null @@ -1,2 +0,0 @@ - a = evalcx("lazy") - oomTest(() => a.toString) diff --git a/js/src/jit-test/tests/basic/bug1219128-3.js b/js/src/jit-test/tests/basic/bug1219128-3.js deleted file mode 100644 index 854be2321379..000000000000 --- a/js/src/jit-test/tests/basic/bug1219128-3.js +++ /dev/null @@ -1,4 +0,0 @@ -x = evalcx('lazy'); -oomTest(function() { - x.eval -}); diff --git a/js/src/jit-test/tests/basic/bug1219128-4.js b/js/src/jit-test/tests/basic/bug1219128-4.js deleted file mode 100644 index 6329b3f1983e..000000000000 --- a/js/src/jit-test/tests/basic/bug1219128-4.js +++ /dev/null @@ -1,4 +0,0 @@ -x = evalcx("lazy"); -oomTest((function() { - evalcx("({", x); -})) diff --git a/js/src/jit-test/tests/basic/bug1219128-5.js b/js/src/jit-test/tests/basic/bug1219128-5.js deleted file mode 100644 index 9ce2c7ab5c8b..000000000000 --- a/js/src/jit-test/tests/basic/bug1219128-5.js +++ /dev/null @@ -1,4 +0,0 @@ -x = evalcx("lazy"); -oomTest(function() { - x.of(new(delete y)); -}); diff --git a/js/src/jit-test/tests/basic/bug1219128-6.js b/js/src/jit-test/tests/basic/bug1219128-6.js deleted file mode 100644 index bd026532022d..000000000000 --- a/js/src/jit-test/tests/basic/bug1219128-6.js +++ /dev/null @@ -1,4 +0,0 @@ -a = evalcx("lazy") -oomTest(function() { - a.b -}) diff --git a/js/src/jit-test/tests/basic/bug1219128-7.js b/js/src/jit-test/tests/basic/bug1219128-7.js deleted file mode 100644 index 9c948a1c7903..000000000000 --- a/js/src/jit-test/tests/basic/bug1219128-7.js +++ /dev/null @@ -1,34 +0,0 @@ -function main() { -const v1 = this.newGlobal(); -function v2(v3,v4) { - for (let v8 = 0; v8 < 100; v8++) { - try { - const v10 = this.oomAtAllocation(v8); - const v13 = this.parseModule("apply"); - const v14 = {}; - const v15 = v14.size; - const v17 = Uint16Array !== v15; - const v18 = v17 && Uint16Array; - const v20 = this.objectGlobal(v18); - const v21 = v20.newGlobal(); - const v24 = this.resumeProfilers(); - const v25 = v24 && v21; - const v26 = v25.evalInWorker("9007199254740991"); - function v27(v28,v29) { - } - const v31 = new Promise(v27); - const v33 = this.getModuleEnvironmentNames(v13); - } catch(v34) { - } finally { - } - } -} -const v36 = new Promise(v2); -const v37 = v1.Debugger; -const v38 = v37(); -const v39 = v38.findAllGlobals(); -const v40 = v39.pop(); -const v41 = v40.getOwnPropertyDescriptor(v37); -gc(); -} -main(); diff --git a/js/src/jit-test/tests/basic/bug1219128-8.js b/js/src/jit-test/tests/basic/bug1219128-8.js deleted file mode 100644 index d8852b423fc0..000000000000 --- a/js/src/jit-test/tests/basic/bug1219128-8.js +++ /dev/null @@ -1,2 +0,0 @@ -a = evalcx('lazy') -oomTest(() => a < 0) diff --git a/js/src/vm/GlobalObject.cpp b/js/src/vm/GlobalObject.cpp index 1c4dacc55949..b92a0a35d8bd 100644 --- a/js/src/vm/GlobalObject.cpp +++ b/js/src/vm/GlobalObject.cpp @@ -607,14 +607,6 @@ GlobalObject* GlobalObject::new_(JSContext* cx, const JSClass* clasp, return nullptr; } - // Make transactional initialization of these constructors by discarding the - // incompletely initialized global if an error occur. - if (!ensureConstructor(cx, global, JSProto_Object) || - !ensureConstructor(cx, global, JSProto_Function)) { - return nullptr; - } - - realm->clearInitializingGlobal(); if (hookOption == JS::FireOnNewGlobalHook) { JS_FireOnNewGlobalObject(cx, global); } diff --git a/js/src/vm/Realm-inl.h b/js/src/vm/Realm-inl.h index ae353747caba..5b6824ebd261 100644 --- a/js/src/vm/Realm-inl.h +++ b/js/src/vm/Realm-inl.h @@ -30,7 +30,7 @@ inline bool JS::Realm::hasLiveGlobal() const { // The global is swept by traceWeakGlobalEdge when we start sweeping a zone // group. MOZ_ASSERT_IF(global_, !js::gc::IsAboutToBeFinalized(global_)); - return bool(global_) && !initializingGlobal_; + return bool(global_); } inline bool JS::Realm::marked() const { diff --git a/js/src/vm/Realm.h b/js/src/vm/Realm.h index 9506a0da4f25..0b2192a77094 100644 --- a/js/src/vm/Realm.h +++ b/js/src/vm/Realm.h @@ -393,7 +393,6 @@ class JS::Realm : public JS::shadow::Realm { bool isSystem_ = false; bool allocatedDuringIncrementalGC_; - bool initializingGlobal_ = true; js::UniquePtr lcovRealm_ = nullptr; @@ -511,7 +510,6 @@ class JS::Realm : public JS::shadow::Realm { inline bool hasLiveGlobal() const; inline void initGlobal(js::GlobalObject& global); - void clearInitializingGlobal() { initializingGlobal_ = false; } /* * This method traces data that is live iff we know that this realm's