Bug 1054359 - Add is-object check to IonBuilder::makeCallHelper. r=efaust, a=lmandel
authorJan de Mooij <jdemooij@mozilla.com>
Mon, 18 Aug 2014 12:03:55 +0200
changeset 209406 f5bfa8f3434c83be5ecd1d7f3b7a0dac7e80d5fe
parent 209405 c444cb84a78b8cd1875fe18889711f53838c3a51
child 209407 3741e9a5c6ca7a480ff05c384a9913007e6f82b6
push id494
push userraliiev@mozilla.com
push dateMon, 25 Aug 2014 18:42:16 +0000
treeherdermozilla-release@a3cc3e46b571 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersefaust, lmandel
bugs1054359
milestone32.0
Bug 1054359 - Add is-object check to IonBuilder::makeCallHelper. r=efaust, a=lmandel
js/src/jit/IonBuilder.cpp
--- a/js/src/jit/IonBuilder.cpp
+++ b/js/src/jit/IonBuilder.cpp
@@ -5270,16 +5270,17 @@ IonBuilder::makeCallHelper(JSFunction *t
 
     bool isDOMCall = false;
     if (target && !callInfo.constructing()) {
         // We know we have a single call target.  Check whether the "this" types
         // are DOM types and our function a DOM function, and if so flag the
         // MCall accordingly.
         types::TemporaryTypeSet *thisTypes = callInfo.thisArg()->resultTypeSet();
         if (thisTypes &&
+            thisTypes->getKnownMIRType() == MIRType_Object &&
             thisTypes->isDOMClass() &&
             testShouldDOMCall(thisTypes, target, JSJitInfo::Method))
         {
             isDOMCall = true;
         }
     }
 
     MCall *call = MCall::New(alloc(), target, targetArgs + 1, callInfo.argc(),