# HG changeset patch # User Jaroslav Tulach # Date 1392758965 -3600 # Node ID be34f84e9d9f34ed597bb445653fdebe511a2bb4 # Parent b012365f8fb7f27dc2e04d8bfed9c1ce19f8842f Shortening the generated code by providing shorter new array methods diff -r b012365f8fb7 -r be34f84e9d9f rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_String.js --- a/rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_String.js Tue Feb 18 22:20:50 2014 +0100 +++ b/rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_String.js Tue Feb 18 22:29:25 2014 +0100 @@ -13,6 +13,8 @@ } return arr[indx]; }; +Array.alloc = Array.prototype.newArray__Ljava_lang_Object_2ZLjava_lang_String_2I; +Array.malloc = Array.prototype.multiNewArray__Ljava_lang_Object_2Ljava_lang_String_2_3II; Array.prototype.getClass__Ljava_lang_Class_2 = function() { return vm.java_lang_Class(false).defineArray__Ljava_lang_Class_2Ljava_lang_String_2(this.jvmName); }; diff -r b012365f8fb7 -r be34f84e9d9f rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Feb 18 22:20:50 2014 +0100 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Feb 18 22:29:25 2014 +0100 @@ -2056,7 +2056,7 @@ case 11: jvmType = "[J"; break; default: throw new IllegalStateException("Array type: " + atype); } - emit(smapper, out, "var @2 = Array.prototype.newArray__Ljava_lang_Object_2ZLjava_lang_String_2I(true, '@3', @1);", + emit(smapper, out, "var @2 = Array.alloc(true, '@3', @1);", smapper.popI(), smapper.pushA(), jvmType); } @@ -2067,7 +2067,7 @@ } else { typeName = "[L" + typeName + ";"; } - emit(smapper, out, "var @2 = Array.prototype.newArray__Ljava_lang_Object_2ZLjava_lang_String_2I(false, '@3', @1);", + emit(smapper, out, "var @2 = Array.alloc(false, '@3', @1);", smapper.popI(), smapper.pushA(), typeName); } @@ -2083,7 +2083,7 @@ dims.insert(1, smapper.popI()); } dims.append(']'); - emit(smapper, out, "var @2 = Array.prototype.multiNewArray__Ljava_lang_Object_2Ljava_lang_String_2_3II('@3', @1, 0);", + emit(smapper, out, "var @2 = Array.malloc('@3', @1, 0);", dims.toString(), smapper.pushA(), typeName); return i; }