1.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Mon Feb 11 19:55:00 2013 +0100
1.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Tue Feb 12 23:30:01 2013 +0100
1.3 @@ -119,36 +119,28 @@
1.4 " return vm;\n"
1.5 + " };\n"
1.6 + " global.bck2brwsr = function() {\n"
1.7 - + " var args = arguments;\n"
1.8 + + " var args = Array.prototype.slice.apply(arguments);\n"
1.9 + " var vm = fillInVMSkeleton({});\n"
1.10 + " var loader = {};\n"
1.11 - + " var init = null;\n"
1.12 + " loader.vm = vm;\n"
1.13 - + " if (args.length == 1 && typeof args[0] !== 'function') {;\n"
1.14 - + " var classpath = args[0];\n"
1.15 - + " init = args[0] = function(name) {\n"
1.16 - + " return vm.org_apidesign_vm4brwsr_Zips(false).loadFromCp___3B_3Ljava_lang_Object_2Ljava_lang_String_2(classpath, name);\n"
1.17 - + " };\n"
1.18 - + " };\n"
1.19 + " loader.loadClass = function(name) {\n"
1.20 + " var attr = name.replace__Ljava_lang_String_2CC('.','_');\n"
1.21 + " var fn = vm[attr];\n"
1.22 + " if (fn) return fn(false);\n"
1.23 - + " if (!args[0]) throw 'bck2brwsr initialized without loader function, cannot load ' + name;\n"
1.24 + " return vm.org_apidesign_vm4brwsr_VMLazy(false).\n"
1.25 + " load__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2(loader, name, args);\n"
1.26 + " }\n"
1.27 - + " if (args[0]) {\n"
1.28 - + " if (vm.loadClass) {\n"
1.29 - + " throw 'Cannot initialize the bck2brwsr VM twice!';\n"
1.30 - + " }\n"
1.31 - + " vm.loadClass = loader.loadClass;\n"
1.32 - + " vm.loadBytes = function(name) {\n"
1.33 - + " if (!args[0]) throw 'bck2brwsr initialized without loader function, cannot load ' + name;\n"
1.34 - + " return args[0](name);\n"
1.35 - + " }\n"
1.36 + + " if (vm.loadClass) {\n"
1.37 + + " throw 'Cannot initialize the bck2brwsr VM twice!';\n"
1.38 + " }\n"
1.39 - + " if (init) init(null);\n"
1.40 + + " vm.loadClass = loader.loadClass;\n"
1.41 + + " vm.loadBytes = function(name) {\n"
1.42 + + " return vm.org_apidesign_vm4brwsr_VMLazy(false).\n"
1.43 + + " loadBytes___3BLjava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2(loader, name, args);\n"
1.44 + + " }\n"
1.45 + + " vm.java_lang_reflect_Array(false);\n"
1.46 + + " vm.org_apidesign_vm4brwsr_VMLazy(false).\n"
1.47 + + " loadBytes___3BLjava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2(loader, null, args);\n"
1.48 + " return loader;\n"
1.49 + " };\n");
1.50 out.append("}(this));");