if(args.length == 0) { System.err.println("Usage Test filename"); System.exit(1); }
JS f = JS.fromReader(args[0],1,new FileReader(args[0]));
System.out.println(((JSFunction)f).dump());
- JSScope s = new JSScope(new JSScope.Global());
+ JS s = new JS.O();
s.put(JS.S("sys"),new Test());
- f = JS.cloneWithNewParentScope(f,s);
+ f = JS.cloneWithNewGlobalScope(f,s);
//JS ret = f.call(null,null,null,null,0);
Interpreter i = new Interpreter((JSFunction)f, true, new Interpreter.JSArgs(f));
JS ret = i.resume();
if(!JS.isString(key)) return null;
if("print".equals(JS.toString(key))) return METHOD;
if("clone".equals(JS.toString(key))) return METHOD;
+ if("firethis".equals(JS.toString(key))) return METHOD;
if("bgget".equals(JS.toString(key))) {
action = "bgget";
try {
return null;
}
if("clone".equals(JS.toString(method))) return a0 == null ? null : a0.jsclone();
+ if("firethis".equals(JS.toString(method))) {
+ String action = JS.toString(a0);
+ JS target = a1;
+ JS key = a2;
+ if(action.equals("get")) return a1.getAndTriggerTraps(key);
+ else if(action.equals("put")) a1.putAndTriggerTraps(key,JS.S("some value"));
+ else if(action.equals("trigger")) return target.justTriggerTraps(key,JS.S("some trigger value"));
+ return null;
+ }
return null;
}
}