Hardcoding that Array.push is using varargs Libraries
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 14 Jun 2016 05:44:20 +0200
branchLibraries
changeset 19769d33c9507806
parent 1975 0e230308c26f
child 1977 46efebc7e220
Hardcoding that Array.push is using varargs
rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Tue Jun 14 05:20:30 2016 +0200
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Tue Jun 14 05:44:20 2016 +0200
     1.3 @@ -1945,7 +1945,11 @@
     1.4                  append(vars[0].toString()).append(';');
     1.5                  return i;
     1.6              }
     1.7 -            append(vars[0].toString()).append("['").append(mi[1]).append("'](");
     1.8 +            if (mi[1].equals("push") && mi[0].equals("net/java/html/lib/Array")) {
     1.9 +                append(vars[0].toString()).append("['").append(mi[1]).append("'].apply(").append(vars[0].toString()).append(",");
    1.10 +            } else {
    1.11 +                append(vars[0].toString()).append("['").append(mi[1]).append("'](");
    1.12 +            }
    1.13          } else {
    1.14              append(accessVirtualMethod(vars[0].toString(), mn, mi, numArguments));
    1.15          }