Backed out 2 changesets (bug 1483183) for bustages on bug1483183.js. CLOSED TREE
authorNarcis Beleuzu <nbeleuzu@mozilla.com>
Mon, 20 Aug 2018 19:29:42 +0300
changeset 432409 56856b94af05f97c1ef66b0bbb71ce8be890a156
parent 432408 5811b189a158716f420b8071c0841fd65b2cc71c
child 432427 14ef4dec612654a0c3ba398bfcefd9436ea4abf6
push id106730
push usernbeleuzu@mozilla.com
push dateMon, 20 Aug 2018 16:30:02 +0000
treeherdermozilla-inbound@56856b94af05 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1483183
milestone63.0a1
backs out9370dc79ddfc94fdb20f3ae6036c9fcbd3c3d6c1
4e417850332a6d2ad41dbedcf273e651a5f7285c
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out 2 changesets (bug 1483183) for bustages on bug1483183.js. CLOSED TREE Backed out changeset 9370dc79ddfc (bug 1483183) Backed out changeset 4e417850332a (bug 1483183)
js/src/jit-test/tests/cacheir/bug1483183.js
js/src/jit/CacheIR.cpp
deleted file mode 100644
--- a/js/src/jit-test/tests/cacheir/bug1483183.js
+++ /dev/null
@@ -1,5 +0,0 @@
-stackTest(new Function(`
-newGlobal({
-  sameZoneAs: []
-}).frame;
-`));
--- a/js/src/jit/CacheIR.cpp
+++ b/js/src/jit/CacheIR.cpp
@@ -1136,20 +1136,18 @@ GetPropIRGenerator::tryAttachCrossCompar
     // If we allowed different zones we would have to wrap strings.
     if (unwrapped->compartment()->zone() != cx_->compartment()->zone())
         return false;
 
     // Take the unwrapped object's global, and wrap in a
     // this-compartment wrapper. This is what will be stored in the IC
     // keep the compartment alive.
     RootedObject wrappedTargetGlobal(cx_, &unwrapped->nonCCWGlobal());
-    if (!cx_->compartment()->wrap(cx_, &wrappedTargetGlobal)) {
-        cx_->clearPendingException();
-        return false;
-    }
+    if (!cx_->compartment()->wrap(cx_, &wrappedTargetGlobal))
+        return false;
 
     bool isWindowProxy = false;
     RootedShape shape(cx_);
     RootedNativeObject holder(cx_);
 
     // Enter realm of target since some checks have side-effects
     // such as de-lazifying type info.
     {
@@ -4026,16 +4024,18 @@ SetPropIRGenerator::tryAttachWindowProxy
 
     trackAttached("WindowProxySlot");
     return true;
 }
 
 bool
 SetPropIRGenerator::tryAttachAddSlotStub(HandleObjectGroup oldGroup, HandleShape oldShape)
 {
+    AutoAssertNoPendingException aanpe(cx_);
+
     ValOperandId objValId(writer.setInputOperandId(0));
     ValOperandId rhsValId;
     if (cacheKind_ == CacheKind::SetProp) {
         rhsValId = ValOperandId(writer.setInputOperandId(1));
     } else {
         MOZ_ASSERT(cacheKind_ == CacheKind::SetElem);
         MOZ_ASSERT(setElemKeyValueId().id() == 1);
         writer.setInputOperandId(1);
@@ -4463,16 +4463,17 @@ CallIRGenerator::tryAttachStringSplit()
     if (args_[0].toString()->isAtom() && args_[1].toString()->isAtom())
         return false;
 
     // Get the object group to use for this location.
     RootedObjectGroup group(cx_, ObjectGroupRealm::getStringSplitStringGroup(cx_));
     if (!group)
         return false;
 
+    AutoAssertNoPendingException aanpe(cx_);
     Int32OperandId argcId(writer.setInputOperandId(0));
 
     // Ensure argc == 1.
     writer.guardSpecificInt32Immediate(argcId, 2);
 
     // 2 arguments.  Stack-layout here is (bottom to top):
     //
     //  3: Callee
@@ -4538,16 +4539,17 @@ CallIRGenerator::tryAttachArrayPush()
 
     MOZ_ASSERT(!thisarray->getElementsHeader()->isFrozen(),
                "Extensible arrays should not have frozen elements");
     MOZ_ASSERT(thisarray->lengthIsWritable());
 
     // After this point, we can generate code fine.
 
     // Generate code.
+    AutoAssertNoPendingException aanpe(cx_);
     Int32OperandId argcId(writer.setInputOperandId(0));
 
     // Ensure argc == 1.
     writer.guardSpecificInt32Immediate(argcId, 1);
 
     // 1 argument only.  Stack-layout here is (bottom to top):
     //
     //  2: Callee
@@ -4616,16 +4618,17 @@ CallIRGenerator::tryAttachArrayJoin()
     // And the array is packed.
     if (thisarray->getDenseInitializedLength() != thisarray->length())
         return false;
 
     // We don't need to worry about indexed properties because we can perform
     // hole check manually.
 
     // Generate code.
+    AutoAssertNoPendingException aanpe(cx_);
     Int32OperandId argcId(writer.setInputOperandId(0));
 
     // if 0 arguments:
     //  1: Callee
     //  0: ThisValue <-- Top of stack.
     //
     // if 1 argument:
     //  2: Callee
@@ -4664,18 +4667,16 @@ CallIRGenerator::tryAttachArrayJoin()
 
     trackAttached("ArrayJoin");
     return true;
 }
 
 bool
 CallIRGenerator::tryAttachStub()
 {
-    AutoAssertNoPendingException aanpe(cx_);
-
     // Only optimize on JSOP_CALL or JSOP_CALL_IGNORES_RV.  No fancy business for now.
     if ((op_ != JSOP_CALL) && (op_ != JSOP_CALL_IGNORES_RV))
         return false;
 
     // Only optimize when the mode is Specialized.
     if (mode_ != ICState::Mode::Specialized)
         return false;
 
@@ -5224,23 +5225,21 @@ GetIntrinsicIRGenerator::trackAttached(c
         sp.valueProperty("val", val_);
     }
 #endif
 }
 
 bool
 GetIntrinsicIRGenerator::tryAttachStub()
 {
-    AutoAssertNoPendingException aanpe(cx_);
     writer.loadValueResult(val_);
     writer.returnFromIC();
     trackAttached("GetIntrinsic");
     return true;
 }
-
 UnaryArithIRGenerator::UnaryArithIRGenerator(JSContext* cx, HandleScript script, jsbytecode* pc, ICState::Mode mode,
                                              JSOp op, HandleValue val, HandleValue res)
   : IRGenerator(cx, script, pc, CacheKind::UnaryArith, mode),
     op_(op),
     val_(val),
     res_(res)
 { }
 
@@ -5253,17 +5252,16 @@ UnaryArithIRGenerator::trackAttached(con
         sp.valueProperty("res", res_);
     }
 #endif
 }
 
 bool
 UnaryArithIRGenerator::tryAttachStub()
 {
-    AutoAssertNoPendingException aanpe(cx_);
     if (tryAttachInt32())
         return true;
     if (tryAttachNumber())
         return true;
 
     trackAttached(IRGenerator::NotAttached);
     return false;
 }
@@ -5340,17 +5338,17 @@ BinaryArithIRGenerator::trackAttached(co
         sp.valueProperty("lhs", lhs_);
     }
 #endif
 }
 
 bool
 BinaryArithIRGenerator::tryAttachStub()
 {
-    AutoAssertNoPendingException aanpe(cx_);
+
     // Attempt common case first
     if (tryAttachInt32())
         return true;
     if (tryAttachBooleanWithInt32())
         return true;
     if (tryAttachDoubleWithInt32())
         return true;
 
@@ -5688,17 +5686,16 @@ NewObjectIRGenerator::trackAttached(cons
         sp.opcodeProperty("op", op_);
     }
 #endif
 }
 
 bool
 NewObjectIRGenerator::tryAttachStub()
 {
-    AutoAssertNoPendingException aanpe(cx_);
     if (!templateObject_->is<UnboxedPlainObject>() &&
         templateObject_->as<PlainObject>().hasDynamicSlots())
     {
         trackAttached(IRGenerator::NotAttached);
         return false;
     }
 
     // Don't attach stub if group is pretenured, as the stub