2003/12/13 08:13:33
[org.ibex.core.git] / src / org / xwt / js / JSFunction.java
index c15ef55..8e5c92a 100644 (file)
@@ -6,7 +6,7 @@ import java.util.*;
 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 ///////////////////////////////////////////////
@@ -26,6 +26,14 @@ public class JSFunction extends JS implements ByteCodes, Tokens {
 
     // 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);