Don't mark bytecodes accessing getter ops when inside an imacro, bug 557358.
authorBrian Hackett <bhackett1024@gmail.com>
Wed, 07 Sep 2011 22:43:06 -0700
changeset 78365 3330521cfa4a072446e80f26e1461325448b8961
parent 78364 c11b17509d605f335113a5b2de537724b6dba4c0
child 78366 b68281262e15166ebdf7c0085c1637e101bb571d
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)
bugs557358
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
Don't mark bytecodes accessing getter ops when inside an imacro, bug 557358.
js/src/jsobj.cpp
--- a/js/src/jsobj.cpp
+++ b/js/src/jsobj.cpp
@@ -5599,17 +5599,17 @@ js_NativeGetInline(JSContext *cx, JSObje
 
     if (JS_UNLIKELY(shape->isMethod()) && (getHow & JSGET_NO_METHOD_BARRIER)) {
         JS_ASSERT(shape->methodObject() == vp->toObject());
         return true;
     }
 
     jsbytecode *pc;
     JSScript *script = cx->stack.currentScript(&pc);
-    if (script && script->hasAnalysis()) {
+    if (script && script->hasAnalysis() && !cx->fp()->hasImacropc()) {
         analyze::Bytecode *code = script->analysis()->maybeCode(pc);
         if (code)
             code->accessGetter = true;
     }
 
     sample = cx->runtime->propertyRemovals;
     if (!shape->get(cx, receiver, obj, pobj, vp))
         return false;