import java.io.*;
/** A JavaScript function, compiled into bytecode */
-public class JSFunction extends JS implements ByteCodes, Tokens {
+public class JSFunction extends JS implements ByteCodes, Tokens, org.xwt.Scheduler.Task {
// Fields and Accessors ///////////////////////////////////////////////
// Public //////////////////////////////////////////////////////////////////////////////
+ // FEATURE: make sure that this can only be called from the Scheduler...
+ /** if you enqueue a function, it gets invoked in its own pauseable context */
+ public void perform() throws JSExn {
+ Interpreter i = new Interpreter(this, true, new JSArray());
+ int oldpausecount = i.pausecount;
+ i.resume();
+ }
+
/** parse and compile a function */
public static JSFunction fromReader(String sourceName, int firstLine, Reader sourceCode) throws IOException {
JSFunction ret = new JSFunction(sourceName, firstLine, null);