From 7c2cac7d060d75681c2043a05a4cbd7a1b415623 Mon Sep 17 00:00:00 2001 From: adam Date: Tue, 19 Oct 2004 07:48:56 +0000 Subject: [PATCH] hacks to cope with org.ibex.xt darcs-hash:20041019074856-5007d-be85185c003a4cdbe467806139aa560f0929bd83.gz --- src/org/ibex/js/JS.java | 7 +++++++ src/org/ibex/js/JSFunction.java | 3 ++- src/org/ibex/js/Parser.java | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/org/ibex/js/JS.java b/src/org/ibex/js/JS.java index 7cd1fc7..9aa9bd4 100644 --- a/src/org/ibex/js/JS.java +++ b/src/org/ibex/js/JS.java @@ -8,6 +8,7 @@ import java.util.*; /** The minimum set of functionality required for objects which are manipulated by JavaScript */ public class JS /*extends org.ibex.util.BalancedTree*/ implements Serializable { + public static final long serialVersionUID = 572634985343962922L; public static boolean checkAssertions = false; public static final Object METHOD = new Object(); @@ -187,6 +188,12 @@ public class JS /*extends org.ibex.util.BalancedTree*/ implements Serializable { return ((JSFunction)j)._cloneWithNewParentScope(s); } + // HACK + public static Vec getFormalArgs(JS j) { return ((JSFunction)j).formalArgs; } + + // HACK + public static JSScope getParentScope(JS j) { return ((JSFunction)j).parentScope; } + public static Object eval(JS j) throws JSExn { Interpreter cx = new Interpreter((JSFunction)j, false, new JSArray(), false); return cx.resume(); diff --git a/src/org/ibex/js/JSFunction.java b/src/org/ibex/js/JSFunction.java index 4bf41e4..9dfc5db 100644 --- a/src/org/ibex/js/JSFunction.java +++ b/src/org/ibex/js/JSFunction.java @@ -21,7 +21,7 @@ class JSFunction extends JS implements ByteCodes, Tokens, Task { int size = 0; ///< the number of instruction/argument pairs JSScope parentScope; ///< the default scope to use as a parent scope when executing this - + Vec formalArgs = new Vec(); // Public ////////////////////////////////////////////////////////////////////////////// @@ -55,6 +55,7 @@ class JSFunction extends JS implements ByteCodes, Tokens, Task { ret.arg = this.arg; ret.line = this.line; ret.size = this.size; + ret.formalArgs = this.formalArgs; ret.numFormalArgs = this.numFormalArgs; return ret; } diff --git a/src/org/ibex/js/Parser.java b/src/org/ibex/js/Parser.java index 51b23b8..9f62439 100644 --- a/src/org/ibex/js/Parser.java +++ b/src/org/ibex/js/Parser.java @@ -281,7 +281,7 @@ class Parser extends Lexer implements ByteCodes { if (peekToken() == NAME) { consume(NAME); // a named argument String varName = string; - + b2.formalArgs.push(varName); b2.add(parserLine, DUP); // dup the args array b2.add(parserLine, GET, JS.N(numArgs - 1)); // retrieve it from the arguments array b2.add(parserLine, TOPSCOPE); -- 1.7.10.4