Bug 1036574 - Revert horrible workaround in baseline IC for magic arg callee. (r=me)
authorShu-yu Guo <shu@rfrn.org>
Fri, 07 Aug 2015 15:14:04 -0700
changeset 256945 b6362a1d61894f7888620672568ceda5d0ccb199
parent 256944 daef3729bce246fa8194c094ac34f3bb4cce4faf
child 256946 ae5f5a18ddd0d1e84e0b421c26de811cb6e99d10
push id14551
push userphilringnalda@gmail.com
push dateSun, 09 Aug 2015 02:42:06 +0000
treeherderfx-team@55d2b7e1e99b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersme
bugs1036574
milestone42.0a1
Bug 1036574 - Revert horrible workaround in baseline IC for magic arg callee. (r=me)
js/src/jit/BaselineIC.cpp
--- a/js/src/jit/BaselineIC.cpp
+++ b/js/src/jit/BaselineIC.cpp
@@ -6567,30 +6567,18 @@ TryAttachMagicArgumentsGetPropStub(JSCon
     if (name == cx->names().callee) {
         MOZ_ASSERT(!script->strict());
 
         JitSpew(JitSpew_BaselineIC, "  Generating GetProp(MagicArgs.callee) stub");
 
         // Unlike ICGetProp_ArgumentsLength, only magic argument stubs are
         // supported at the moment.
         ICStub* monitorStub = stub->fallbackMonitorStub()->firstMonitorStub();
-
-        // XXXshu the compiler really should be stack allocated, but stack
-        // allocating it causes the test_temporary_storage indexedDB test to
-        // fail on GCC 4.7-compiled ARMv6 optimized builds on Android 2.3 and
-        // below with a NotFoundError, despite that test never exercising this
-        // code.
-        //
-        // Instead of tracking down the GCC bug, I've opted to heap allocate
-        // instead.
-        ScopedJSDeletePtr<ICGetProp_ArgumentsCallee::Compiler> compiler;
-        compiler = js_new<ICGetProp_ArgumentsCallee::Compiler>(cx, monitorStub);
-        if (!compiler)
-            return false;
-        ICStub* newStub = compiler->getStub(compiler->getStubSpace(script));
+        ICGetProp_ArgumentsCallee::Compiler compiler(cx, monitorStub);
+        ICStub* newStub = compiler.getStub(compiler.getStubSpace(script));
         if (!newStub)
             return false;
         stub->addNewStub(newStub);
 
         *attached = true;
         return true;
     }