fix bug: LoopMarker is not an instance of JS (yet)
[org.ibex.js.git] / src / org / ibex / js / Interpreter.java
index 21fffba..8ebbde0 100644 (file)
@@ -71,7 +71,7 @@ class Interpreter implements ByteCodes, Tokens, Pausable {
         pausecount++;
         switch(f.op[pc]) {
             case Tokens.RETURN: case ByteCodes.PUT: get = false; break;
-            case ByteCodes.GET: case ByteCodes.CALL: get = true; break;
+            case ByteCodes.GET: case ByteCodes.GET_PRESERVE: case ByteCodes.CALLMETHOD: case ByteCodes.CALL: get = true; break;
             default: throw new Error("paused on unexpected bytecode: " + f.op[pc]);
         }
     }
@@ -159,7 +159,7 @@ class Interpreter implements ByteCodes, Tokens, Pausable {
             case BREAK:
             case CONTINUE:
                 while(!stack.empty()) {
-                    JS o = (JS)stack.pop();
+                    Object o = stack.pop();
                     if (o instanceof CallMarker) je("break or continue not within a loop");
                     if (o instanceof TryMarker) {
                         if(((TryMarker)o).finallyLoc < 0) continue; // no finally block, keep going