Assert that JSOP_NOTEARG occurs after |this| push. (Bug 691593, r=dvander)
authorSean Stangl <sstangl@mozilla.com>
Tue, 04 Oct 2011 14:14:38 -0700
changeset 78009 5dbfb891d8df92c8e7b6e34f6d81dd2b09a4b326
parent 78008 5602420006bba14119399002c22f07d4e187aff8
child 78010 578219c4f056716e98280fefab6c58993de22cb5
push id210
push usersean.stangl@gmail.com
push dateTue, 04 Oct 2011 21:15:10 +0000
reviewersdvander
bugs691593
milestone9.0a1
Assert that JSOP_NOTEARG occurs after |this| push. (Bug 691593, r=dvander)
js/src/jsopcode.cpp
--- a/js/src/jsopcode.cpp
+++ b/js/src/jsopcode.cpp
@@ -4135,16 +4135,18 @@ Decompile(SprintStack *ss, jsbytecode *p
                     if (*pc == JSOP_BLOCKCHAIN) {
                         pc += JSOP_BLOCKCHAIN_LENGTH;
                     } else {
                         LOCAL_ASSERT(*pc == JSOP_NULLBLOCKCHAIN);
                         pc += JSOP_NULLBLOCKCHAIN_LENGTH;
                     }
                     LOCAL_ASSERT(*pc == JSOP_PUSH);
                     pc += JSOP_PUSH_LENGTH;
+                    LOCAL_ASSERT(*pc == JSOP_NOTEARG);
+                    pc += JSOP_NOTEARG_LENGTH;
                     LOCAL_ASSERT(*pc == JSOP_CALL);
                     LOCAL_ASSERT(GET_ARGC(pc) == 0);
                     len = JSOP_CALL_LENGTH;
 
                     /*
                      * Arrange to parenthesize this genexp unless:
                      *
                      *  1. It is the complete expression consumed by a control