# HG changeset patch # User Jaroslav Tulach # Date 1398866276 -7200 # Node ID d2401e2648af38fe27d0d24d3a88da47022b0dca # Parent ba912ef24b278c2b6e8950be74efe810a70394e5 Mangling class names, so UnderTest passes diff -r ba912ef24b27 -r d2401e2648af rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Wed Apr 30 15:04:10 2014 +0200 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Wed Apr 30 15:57:56 2014 +0200 @@ -1586,7 +1586,7 @@ } final String in = mi[0]; - String object = accessClass(in.replace('/', '_')) + "(false)"; + String object = accessClass(mangleClassName(in)) + "(false)"; if (mn.startsWith("cons_")) { object += ".constructor"; } diff -r ba912ef24b27 -r d2401e2648af rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Wed Apr 30 15:04:10 2014 +0200 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Wed Apr 30 15:57:56 2014 +0200 @@ -486,6 +486,10 @@ " return vm;\n" + " };\n" + " var extensions = [];\n" + + " function mangleClass(name) {\n" + + " return name.replace__Ljava_lang_String_2Ljava_lang_CharSequence_2Ljava_lang_CharSequence_2(\n" + + " '_', '_1').replace__Ljava_lang_String_2CC('.','_');\n" + + " };\n" + " global.bck2brwsr = function() {\n" + " var args = Array.prototype.slice.apply(arguments);\n" + " var resources = {};\n" @@ -509,7 +513,7 @@ + " var loader = {};\n" + " loader.vm = vm;\n" + " loader.loadClass = function(name) {\n" - + " var attr = name.replace__Ljava_lang_String_2CC('.','_');\n" + + " var attr = mangleClass(name);\n" + " var fn = vm[attr];\n" + " if (fn) return fn(false);\n" + " try {\n" @@ -530,6 +534,12 @@ + " throw 'Cannot initialize the bck2brwsr VM twice!';\n" + " }\n" + " vm.loadClass = loader.loadClass;\n" + + " vm._reload = function(name, byteCode) {;\n" + + " var attr = mangleClass(name);\n" + + " delete vm[attr];\n" + + " return vm.org_apidesign_vm4brwsr_VMLazy(false).\n" + + " reload__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2_3B(loader, name, args, byteCode);\n" + + " };\n" + " vm.loadBytes = function(name, skip) {\n" + " if (resources[name]) return resources[name][0];\n" + " return vm.org_apidesign_vm4brwsr_VMLazy(false).\n"