1.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/VMLazyTest.java Wed Nov 28 13:41:33 2012 +0100
1.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/VMLazyTest.java Wed Nov 28 14:51:52 2012 +0100
1.3 @@ -42,16 +42,21 @@
1.4 StringBuilder sb = new StringBuilder();
1.5
1.6 sb.append("\nfunction test(clazz, as, method) {");
1.7 - sb.append("\n var l = new lazyVM();");
1.8 + sb.append("\n var l = new lazyVM(this);");
1.9 sb.append("\n var c = l.loadClass(clazz, as);");
1.10 sb.append("\n return c[method]();");
1.11 sb.append("\n}");
1.12
1.13
1.14 - sb.append("\nfunction lazyVM() {");
1.15 + sb.append("\nfunction lazyVM(global) {");
1.16 sb.append("\n var self = this;");
1.17 - sb.append("\n this.constructor.prototype.loadClass = function(res, name) {");
1.18 - sb.append("\n var script = org_apidesign_vm4brwsr_VMLazy(true).toJavaScriptLjava_lang_StringAB(loader.get(res + '.class'));");
1.19 + sb.append("\n var glb = global;");
1.20 + sb.append("\n lazyVM.prototype.loadClass = function(res, name) {");
1.21 + sb.append("\n var script = org_apidesign_vm4brwsr_VMLazy(true)."
1.22 + + "toJavaScriptLjava_lang_StringLjava_lang_ObjectLjava_lang_ObjectAB("
1.23 + + " glb, self,"
1.24 + + " loader.get(res + '.class')"
1.25 + + ");");
1.26 sb.append("\n try {");
1.27 sb.append("\n new Function(script)(self, name);");
1.28 sb.append("\n } catch (ex) {");
1.29 @@ -75,7 +80,12 @@
1.30 "org/apidesign/vm4brwsr/StaticMethod", "org_apidesign_vm4brwsr_StaticMethod", "minusOneI"
1.31 );
1.32 }
1.33 -
1.34 +
1.35 + @Test public void loadDependantClass() throws Exception {
1.36 + assertExec("Trying to get zero", "test", Double.valueOf(0),
1.37 + "org/apidesign/vm4brwsr/InstanceSub", "org_apidesign_vm4brwsr_InstanceSub", "recallDblD"
1.38 + );
1.39 + }
1.40
1.41 private static void assertExec(String msg, String methodName, Object expRes, Object... args) throws Exception {
1.42 Object ret = null;