}
}
if (t != null) {
+ stack.pop();
+ stack.push(new CallMarker(this));
+ stack.push(target);
+ JSArray args = new JSArray();
+ args.addElement(val);
f = t.f;
scope = new Trap.TrapScope(f.parentScope, t, val);
pc = -1;
} else {
t = ((JS)o).getTrap(v);
}
-
while (t != null && t.f.numFormalArgs != 0) t = t.next; // get first read trap
- if (t != null) {
- stack.push(new CallMarker(this));
- JSArray args = new JSArray();
- stack.push(args);
- }
}
if (t != null) {
+ stack.push(new CallMarker(this));
+ JSArray args = new JSArray();
+ stack.push(args);
f = t.f;
scope = new Trap.TrapScope(f.parentScope, t, null);
((Trap.TrapScope)scope).cascadeHappened = true;
case THROW:
throw new JSExn(stack.pop());
-
+ /* FIXME
case MAKE_GRAMMAR: {
final Grammar r = (Grammar)arg;
final JSScope final_scope = scope;
stack.push(r2);
break;
}
-
+ */
case ADD_TRAP: case DEL_TRAP: {
Object val = stack.pop();
Object key = stack.pop();