/** discard the top stack element */
static public final byte POP = -14;
- /** pop two elements; call stack[-1](stack[top]) where stacktop is a JS.JS.Array */
+ /** pop two elements; call stack[-n](stack[-n+1], stack[-n+2]...) where n is the number of args to the function */
public static final byte CALL = -15;
/** pop an element; push a JS.JS.Array containing the keys of the popped element */
/** finish a finally block and carry out whatever instruction initiated the finally block */
public static final byte FINALLY_DONE = -24;
+ /** same as CALL, except that the function is on top of the arguments instead of beneath them */
+ public static final byte CALL_REVERSED = -25;
+
public static final String[] bytecodeToString = new String[] {
"", "", "LITERAL", "ARRAY", "OBJECT", "NEWFUNCTION", "DECLARE", "TOPSCOPE",
"GET", "GET_PRESERVE", "PUT", "JT", "JF", "JMP", "POP", "CALL", "PUSHKEYS",
"SWAP", "NEWSCOPE", "OLDSCOPE", "DUP", "LABEL", "LOOP", "CALLMETHOD",
- "FINALLY_DONE"
+ "FINALLY_DONE", "CALL_REVERSED"
};
}