# HG changeset patch # User Jaroslav Tulach # Date 1371491530 -7200 # Node ID 743f2fe4f0bc3625acd7686d874d9203c819f7ec # Parent b703d9d71f252beffedf3ed36a4452ba3f0958f6 null-related tests are passing now diff -r b703d9d71f25 -r 743f2fe4f0bc launcher/fx/src/test/java/org/apidesign/bck2brwsr/launcher/fximpl/JsClassLoaderTest.java --- a/launcher/fx/src/test/java/org/apidesign/bck2brwsr/launcher/fximpl/JsClassLoaderTest.java Mon Jun 17 19:36:24 2013 +0200 +++ b/launcher/fx/src/test/java/org/apidesign/bck2brwsr/launcher/fximpl/JsClassLoaderTest.java Mon Jun 17 19:52:10 2013 +0200 @@ -21,12 +21,14 @@ import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Enumeration; +import java.util.List; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; -import org.objectweb.asm.signature.SignatureReader; import static org.testng.Assert.*; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -59,8 +61,7 @@ protected Fn defineFn(String code, String... names) { StringBuilder sb = new StringBuilder(); sb.append("(function() {"); - sb.append("var r = {};"); - sb.append("r.fn = function("); + sb.append("return function("); String sep = ""; for (String n : names) { sb.append(sep); @@ -70,15 +71,18 @@ sb.append(") {"); sb.append(code); sb.append("};"); - sb.append("return r;"); sb.append("})()"); try { final Object val = eng.eval(sb.toString()); return new Fn() { @Override public Object invoke(Object thiz, Object... args) throws Exception { + List all = new ArrayList(args.length + 1); + all.add(thiz == null ? val : thiz); + all.addAll(Arrays.asList(args)); Invocable inv = (Invocable)eng; - return inv.invokeMethod(val, "fn", args); + Object ret = inv.invokeMethod(val, "call", all.toArray()); + return ret == val ? null : ret; } }; } catch (ScriptException ex) {