Bug 1304638 - Don't return "(intermediate value)" while decompiling SETELEM/STRICTSETELEM. r?nbp
This caused us to go to the fallback, and call `ValueToSource` to set the
message exception[1]. The `ToSource` call happened also in the interpreter.
This doesn't fix the underlying issue, which is that we call MoveHoles for
frozen elements anyway.
[1]: http://searchfox.org/mozilla-central/rev/c635b8c61d648bb8a0317c19f8905b3be8132a8a/js/src/jsopcode.cpp#1536
MozReview-Commit-ID: J7tfxoDnUUr
--- a/js/src/jsopcode.cpp
+++ b/js/src/jsopcode.cpp
@@ -1260,16 +1260,22 @@ ExpressionDecompiler::decompilePC(jsbyte
write("]");
}
case JSOP_GETPROP_SUPER:
{
RootedAtom prop(cx, loadAtom(pc));
return write("super.") &&
quote(prop, '\0');
}
+ case JSOP_SETELEM:
+ case JSOP_STRICTSETELEM:
+ return decompilePCForStackOperand(pc, -3) &&
+ write("[") &&
+ decompilePCForStackOperand(pc, -2) &&
+ write("]");
case JSOP_GETELEM:
case JSOP_CALLELEM:
return decompilePCForStackOperand(pc, -2) &&
write("[") &&
decompilePCForStackOperand(pc, -1) &&
write("]");
case JSOP_GETELEM_SUPER:
return write("super[") &&