rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java
branchclosure
changeset 1508 e995e8d39240
parent 1496 d3df935aff70
child 1513 ba912ef24b27
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Mon Apr 28 17:31:29 2014 +0200
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Tue Apr 29 15:25:58 2014 +0200
     1.3 @@ -86,17 +86,15 @@
     1.4      private void doCompile(StringArray names, StringArray asBinary) throws IOException {
     1.5          generatePrologue();
     1.6          out.append(
     1.7 -                "\n  var invoker = function Invoker() {"
     1.8 -                    + "\n    return Invoker.target[Invoker.method]"
     1.9 -                                      + ".apply(Invoker.target, arguments);"
    1.10 -                    + "\n  };");
    1.11 +                "\n  var invoker = {};");
    1.12          generateBody(names);
    1.13          for (String invokerMethod: invokerMethods.toArray()) {
    1.14              out.append("\n  invoker." + invokerMethod + " = function(target) {"
    1.15 -                           + "\n    invoker.target = target;"
    1.16 -                           + "\n    invoker.method = '" + invokerMethod + "';"
    1.17 -                           + "\n    return invoker;"
    1.18 -                           + "\n  };");
    1.19 +                + "\n    return function() {"
    1.20 +                + "\n      return target['" + invokerMethod + "'].apply(target, arguments);"
    1.21 +                + "\n    };"
    1.22 +                + "\n  };"
    1.23 +            );
    1.24          }
    1.25          
    1.26          for (String r : asBinary.toArray()) {