vm/src/main/java/org/apidesign/vm4brwsr/VM.java
branchemul
changeset 729 1ee59fe94653
parent 711 333326d65bf9
     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));");