2003/11/03 05:28:32
[org.ibex.core.git] / src / org / xwt / js / ByteCodes.java
index 2e39d6f..9087965 100644 (file)
@@ -51,7 +51,7 @@ interface ByteCodes {
     /** 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 */
@@ -83,10 +83,13 @@ interface ByteCodes {
     /** 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"
     };
 }