rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java
changeset 1943 4b4f9dbc807b
parent 1942 f8cc2a015ece
child 1952 693d35afc8c8
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Tue Apr 26 08:05:09 2016 +0200
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Tue Apr 26 08:35:46 2016 +0200
     1.3 @@ -583,6 +583,7 @@
     1.4                  + "    vm['registerResource'] = null;\n"
     1.5                  + "    var knownExtensions = extensions.length;\n"
     1.6                  + "    var loader = {};\n"
     1.7 +                + "    var classPath;\n"
     1.8                  + "    var loadBytes = function(name, skip) {\n"
     1.9                  + "      skip = typeof skip == 'number' ? skip : 0;\n"
    1.10                  + "      var arr = resources[name];\n"
    1.11 @@ -602,10 +603,21 @@
    1.12                  + "          args[i] = null;\n"
    1.13                  + "        } else if (typeof at === 'function') ret = at(name, skip);\n"
    1.14                  + "        else {\n"
    1.15 -                + "          var cp = vm['org_apidesign_vm4brwsr_ClassPath'];\n"
    1.16 -                + "          if (!cp) throw 'Core Java library not registered. Cannot load from ' + at;\n"
    1.17 -                + "          ret = cp(false).\n"
    1.18 -                + "            loadBytes___3BLjava_lang_String_2Ljava_lang_Object_2II(name, args, i, skip);\n"
    1.19 +                + "          if (classPath === undefined) {\n"
    1.20 +                + "             classPath = null;\n"
    1.21 +                + "             try {\n"
    1.22 +                + "               classPath = vm.loadClass('org.apidesign.vm4brwsr.ClassPath');\n"
    1.23 +                + "             } catch (err) {\n"
    1.24 +                + "             }\n"
    1.25 +                + "           }\n"
    1.26 +                + "          if (!classPath) {\n"
    1.27 +                + "            if (name !== 'org/apidesign/vm4brwsr/ClassPath.class') {\n"
    1.28 +                + "              throw 'Core Java library not registered. Cannot load from ' + at;\n"
    1.29 +                + "            }\n"
    1.30 +                + "            ret = null;\n"
    1.31 +                + "          } else {\n"
    1.32 +                + "            ret = classPath['loadBytes___3BLjava_lang_String_2Ljava_lang_Object_2II'](name, args, i, skip);\n"
    1.33 +                + "          }\n"
    1.34                  + "        }\n"
    1.35                  + "        if (ret) return ret;\n"
    1.36                  + "      }\n"