[INFER] Fix orange.
authorBrian Hackett <bhackett1024@gmail.com>
Mon, 12 Sep 2011 12:16:43 -0700
changeset 78384 19794de530f1ee4ce2822a0ff2c4366850b15c5d
parent 78383 0b9a541b2e0a2a097cd19d3a9c80c35f9d52e23a
child 78385 308778dc874b01e4c68fc825e7a892343b3c7172
push id78
push userclegnitto@mozilla.com
push dateFri, 16 Dec 2011 17:32:24 +0000
treeherdermozilla-release@79d24e644fdd [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone9.0a1
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
[INFER] Fix orange.
js/src/methodjit/InvokeHelpers.cpp
--- a/js/src/methodjit/InvokeHelpers.cpp
+++ b/js/src/methodjit/InvokeHelpers.cpp
@@ -1586,17 +1586,17 @@ js_InternalInterpret(void *returnData, v
         nextDepth = analysis->getCode(f.regs.pc).stackDepth;
     f.regs.sp = fp->base() + nextDepth;
 
     /*
      * Monitor the result of the previous op when finishing a JOF_TYPESET op.
      * The result may not have been marked if we bailed out while inside a stub
      * for the op.
      */
-    if (js_CodeSpec[op].format & JOF_TYPESET) {
+    if (f.regs.pc == nextpc && (js_CodeSpec[op].format & JOF_TYPESET)) {
         int which = (js_CodeSpec[op].format & JOF_CALLOP) ? -2 : -1;  /* Yuck. */
         types::TypeScript::Monitor(cx, script, pc, f.regs.sp[which]);
     }
 
     /* Mark the entry frame as unfinished, and update the regs to resume at. */
     JaegerStatus status = skipTrap ? Jaeger_UnfinishedAtTrap : Jaeger_Unfinished;
     cx->compartment->jaegerCompartment()->setLastUnfinished(status);
     *f.oldregs = f.regs;