rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java
changeset 1409 3d1612be40bc
parent 1375 a6c71e376889
child 1509 16f50abb439b
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Sun Oct 20 20:36:03 2013 +0200
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Thu Nov 07 09:41:45 2013 +0100
     1.3 @@ -137,13 +137,17 @@
     1.4          out.append(
     1.5                "  return vm;\n"
     1.6              + "  };\n"
     1.7 +            + "  function mangleClass(name) {\n"
     1.8 +            + "    return name.replace__Ljava_lang_String_2Ljava_lang_CharSequence_2Ljava_lang_CharSequence_2(\n"
     1.9 +            + "      '_', '_1').replace__Ljava_lang_String_2CC('.','_');\n"
    1.10 +            + "  };\n"
    1.11              + "  global.bck2brwsr = function() {\n"
    1.12              + "    var args = Array.prototype.slice.apply(arguments);\n"
    1.13              + "    var vm = fillInVMSkeleton({});\n"
    1.14              + "    var loader = {};\n"
    1.15              + "    loader.vm = vm;\n"
    1.16              + "    loader.loadClass = function(name) {\n"
    1.17 -            + "      var attr = name.replace__Ljava_lang_String_2CC('.','_');\n"
    1.18 +            + "      var attr = mangleClass(name);\n"
    1.19              + "      var fn = vm[attr];\n"
    1.20              + "      if (fn) return fn(false);\n"
    1.21              + "      return vm.org_apidesign_vm4brwsr_VMLazy(false).\n"
    1.22 @@ -154,7 +158,7 @@
    1.23              + "    }\n"
    1.24              + "    vm.loadClass = loader.loadClass;\n"
    1.25              + "    vm._reload = function(name, byteCode) {;\n"
    1.26 -            + "      var attr = name.replace__Ljava_lang_String_2CC('.','_');\n"
    1.27 +            + "      var attr = mangleClass(name);\n"
    1.28              + "      delete vm[attr];\n"
    1.29              + "      return vm.org_apidesign_vm4brwsr_VMLazy(false).\n"
    1.30              + "        reload__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2_3B(loader, name, args, byteCode);\n"