rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java
branchclosure
changeset 1542 12a95b773a39
parent 1520 f14753e81f06
child 1550 cb9e273dfd51
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Sat May 03 20:31:11 2014 +0200
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Wed May 07 09:38:30 2014 +0200
     1.3 @@ -612,15 +612,18 @@
     1.4          protected void generatePrologue() throws IOException {
     1.5              append("bck2brwsr.registerExtension(function(exports) {\n"
     1.6                             + "  var vm = {};\n");
     1.7 -            append("  function link(n, inst) {\n"
     1.8 -                           + "    var cls = n['replace__Ljava_lang_String_2CC']"
     1.9 -                                                  + "('/', '_').toString();\n"
    1.10 -                           + "    var dot = n['replace__Ljava_lang_String_2CC']"
    1.11 -                                                  + "('/', '.').toString();\n"
    1.12 -                           + "    exports.loadClass(dot);\n"
    1.13 -                           + "    vm[cls] = exports[cls];\n"
    1.14 -                           + "    return vm[cls](inst);\n"
    1.15 -                           + "  };\n");
    1.16 +            append("  function link(n) {\n"
    1.17 +                + "    return function() {\n"
    1.18 +                + "      var cls = n['replace__Ljava_lang_String_2CC']"
    1.19 +                                       + "('/', '_').toString();\n"
    1.20 +                + "      var dot = n['replace__Ljava_lang_String_2CC']"
    1.21 +                                       + "('/', '.').toString();\n"
    1.22 +                + "      exports.loadClass(dot);\n"
    1.23 +                + "      vm[cls] = exports[cls];\n"
    1.24 +                + "      return vm[cls](arguments);\n"
    1.25 +                + "    };\n"
    1.26 +                + "  };\n"
    1.27 +            );
    1.28          }
    1.29  
    1.30          @Override
    1.31 @@ -633,10 +636,9 @@
    1.32              if (isExternalClass(className)) {
    1.33                  append("\n").append(assignClass(
    1.34                                              className.replace('/', '_')))
    1.35 -                   .append("function() {\n  return link('")
    1.36 +                   .append("link('")
    1.37                     .append(className)
    1.38 -                   .append("', arguments.length == 0 || arguments[0] === true);"
    1.39 -                               + "\n};");
    1.40 +                   .append("');");
    1.41  
    1.42                  return null;
    1.43              }