1.1 --- a/javaquery/demo-calculator/src/main/resources/org/apidesign/bck2brwsr/demo/calc/staticcompilation/Calculator.xhtml Fri May 23 11:44:38 2014 +0200
1.2 +++ b/javaquery/demo-calculator/src/main/resources/org/apidesign/bck2brwsr/demo/calc/staticcompilation/Calculator.xhtml Fri May 23 12:39:26 2014 +0200
1.3 @@ -90,11 +90,12 @@
1.4
1.5 <div data-bind="text: displayPreview"></div>
1.6 <script src="bck2brwsr.js"></script>
1.7 - <script src="lib/emul-0.9-SNAPSHOT-rt.js"></script>
1.8 - <script src="lib/javaquery.api-0.9-SNAPSHOT.js"></script>
1.9 - <script src="app.js"></script>
1.10 <script>
1.11 - var vm = bck2brwsr();
1.12 + var vm = bck2brwsr(
1.13 + 'app.js',
1.14 + 'lib/emul-0.9-SNAPSHOT-rt.js',
1.15 + 'lib/javaquery.api-0.9-SNAPSHOT.js'
1.16 + );
1.17 vm.loadClass('org.apidesign.bck2brwsr.demo.calc.staticcompilation.Calc');
1.18 </script>
1.19 </body>
2.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Fri May 23 11:44:38 2014 +0200
2.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Fri May 23 12:39:26 2014 +0200
2.3 @@ -490,6 +490,15 @@
2.4 + " global.bck2brwsr = function() {\n"
2.5 + " var args = Array.prototype.slice.apply(arguments);\n"
2.6 + " var resources = {};\n"
2.7 + + " function loadExtension(url) {\n"
2.8 + + " var xhr = new XMLHttpRequest();\n"
2.9 + + " xhr.open('GET', url, false);\n"
2.10 + + " xhr.send();\n"
2.11 + + " var script = document.createElement('script');\n"
2.12 + + " script.type = 'text/javascript';\n"
2.13 + + " script.text = xhr.responseText;\n"
2.14 + + " document.getElementsByTagName('head')[0].appendChild(script);\n"
2.15 + + " }\n"
2.16 + " function registerResource(n, a64) {\n"
2.17 + " var str = atob(a64);\n"
2.18 + " var arr = [];\n"
2.19 @@ -525,14 +534,17 @@
2.20 + " for (var i = 0; i < args.length; i++) {\n"
2.21 + " var at = args[i];\n"
2.22 + " var ret;\n"
2.23 - + " if (typeof at === 'function') ret = at(name, skip);\n"
2.24 + + " if (typeof at === 'string' && at.substring(at.length - 3) === '.js') {\n"
2.25 + + " loadExtension(at);\n"
2.26 + + " args[i] = null;\n"
2.27 + + " } else if (typeof at === 'function') ret = at(name, skip);\n"
2.28 + " else {\n"
2.29 + " var cp = vm['org_apidesign_vm4brwsr_ClassPath'];\n"
2.30 + " if (!cp) throw 'Core Java library not registered. Cannot load from ' + at;\n"
2.31 + " ret = cp(false).\n"
2.32 + " loadBytes___3BLjava_lang_String_2Ljava_lang_Object_2II(name, args, i, skip);\n"
2.33 + " }\n"
2.34 - + " if (ret !== null) return ret;\n"
2.35 + + " if (ret) return ret;\n"
2.36 + " }\n"
2.37 + " while (knownExtensions < extensions.length) {\n"
2.38 + " vm['registerResource'] = registerResource;\n"