Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Unified Diff: frog/minfrog

Issue 9220003: Revert "cleanup resolveMember and get/set" (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « frog/member.dart ('k') | frog/tests/frog/frog.status » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: frog/minfrog
diff --git a/frog/minfrog b/frog/minfrog
index 2ba019ffc5a13977409169e711f0a391bccf4f0c..af0e049825dc19c617a381c7a650fcbe0973ea76 100755
--- a/frog/minfrog
+++ b/frog/minfrog
@@ -90,184 +90,193 @@ Object.defineProperty(Object.prototype, "noSuchMethod", { value: function(name,
$throw(new NoSuchMethodException(this, name, args));
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "_asNonSentinelEntry$0", { value: function() {
- return this.noSuchMethod$2("_asNonSentinelEntry", []);
+ return this.noSuchMethod("_asNonSentinelEntry", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "_checkExtends$0", { value: function() {
- return this.noSuchMethod$2("_checkExtends", []);
+ return this.noSuchMethod("_checkExtends", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "_checkNonStatic$1", { value: function($0) {
- return this.noSuchMethod$2("_checkNonStatic", [$0]);
+ return this.noSuchMethod("_checkNonStatic", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "_evalConstConstructor$2", { value: function($0, $1) {
- return this.noSuchMethod$2("_evalConstConstructor", [$0, $1]);
+ return this.noSuchMethod("_evalConstConstructor", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "_get$3", { value: function($0, $1, $2) {
- return this.noSuchMethod$2("_get", [$0, $1, $2]);
+ return this.noSuchMethod("_get", [$0, $1, $2]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "_get$3$isDynamic", { value: function($0, $1, $2, isDynamic) {
- return this.noSuchMethod$2("_get", [$0, $1, $2, isDynamic]);
+ return this.noSuchMethod("_get", [$0, $1, $2, isDynamic]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "_get$4", { value: function($0, $1, $2, $3) {
- return this.noSuchMethod$2("_get", [$0, $1, $2, $3]);
+ return this.noSuchMethod("_get", [$0, $1, $2, $3]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "_pushBlock$1", { value: function($0) {
- return this.noSuchMethod$2("_pushBlock", [$0]);
+ return this.noSuchMethod("_pushBlock", [$0]);
+}, enumerable: false, writable: true, configurable: true });
+Object.defineProperty(Object.prototype, "_set$4", { value: function($0, $1, $2, $3) {
+ return this.noSuchMethod("_set", [$0, $1, $2, $3]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "_set$4$isDynamic", { value: function($0, $1, $2, $3, isDynamic) {
- return this.noSuchMethod$2("_set", [$0, $1, $2, $3, isDynamic]);
+ return this.noSuchMethod("_set", [$0, $1, $2, $3, isDynamic]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "_set$5", { value: function($0, $1, $2, $3, $4) {
- return this.noSuchMethod$2("_set", [$0, $1, $2, $3, $4]);
+ return this.noSuchMethod("_set", [$0, $1, $2, $3, $4]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "_setindex$2", { value: function($0, $1) {
- return this.noSuchMethod$2("_setindex", [$0, $1]);
+ return this.noSuchMethod("_setindex", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "add$1", { value: function($0) {
- return this.noSuchMethod$2("add", [$0]);
+ return this.noSuchMethod("add", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "addAll$1", { value: function($0) {
- return this.noSuchMethod$2("addAll", [$0]);
+ return this.noSuchMethod("addAll", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "addDirectSubtype$1", { value: function($0) {
- return this.noSuchMethod$2("addDirectSubtype", [$0]);
+ return this.noSuchMethod("addDirectSubtype", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "addLast$1", { value: function($0) {
- return this.noSuchMethod$2("addLast", [$0]);
+ return this.noSuchMethod("addLast", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "addMethod$2", { value: function($0, $1) {
- return this.noSuchMethod$2("addMethod", [$0, $1]);
+ return this.noSuchMethod("addMethod", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "addSource$1", { value: function($0) {
- return this.noSuchMethod$2("addSource", [$0]);
+ return this.noSuchMethod("addSource", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "binop$4", { value: function($0, $1, $2, $3) {
- return this.noSuchMethod$2("binop", [$0, $1, $2, $3]);
+ return this.noSuchMethod("binop", [$0, $1, $2, $3]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "block$0", { value: function() {
- return this.noSuchMethod$2("block", []);
+ return this.noSuchMethod("block", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "canInvoke$2", { value: function($0, $1) {
- return this.noSuchMethod$2("canInvoke", [$0, $1]);
+ return this.noSuchMethod("canInvoke", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "checkFirstClass$1", { value: function($0) {
- return this.noSuchMethod$2("checkFirstClass", [$0]);
+ return this.noSuchMethod("checkFirstClass", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "compareTo$1", { value: function($0) {
- return this.noSuchMethod$2("compareTo", [$0]);
+ return this.noSuchMethod("compareTo", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "compilationUnit$0", { value: function() {
- return this.noSuchMethod$2("compilationUnit", []);
+ return this.noSuchMethod("compilationUnit", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "computeValue$0", { value: function() {
- return this.noSuchMethod$2("computeValue", []);
+ return this.noSuchMethod("computeValue", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "contains$1", { value: function($0) {
- return this.noSuchMethod$2("contains", [$0]);
+ return this.noSuchMethod("contains", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "containsKey$1", { value: function($0) {
- return this.noSuchMethod$2("containsKey", [$0]);
+ return this.noSuchMethod("containsKey", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "convertTo$2", { value: function($0, $1) {
- return this.noSuchMethod$2("convertTo", [$0, $1]);
+ return this.noSuchMethod("convertTo", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "convertTo$3", { value: function($0, $1, $2) {
- return this.noSuchMethod$2("convertTo", [$0, $1, $2]);
+ return this.noSuchMethod("convertTo", [$0, $1, $2]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "copyWithNewType$2", { value: function($0, $1) {
- return this.noSuchMethod$2("copyWithNewType", [$0, $1]);
+ return this.noSuchMethod("copyWithNewType", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "create$3$isFinal", { value: function($0, $1, $2, isFinal) {
- return this.noSuchMethod$2("create", [$0, $1, $2, isFinal]);
+ return this.noSuchMethod("create", [$0, $1, $2, isFinal]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "elapsedInMs$0", { value: function() {
- return this.noSuchMethod$2("elapsedInMs", []);
+ return this.noSuchMethod("elapsedInMs", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "end$0", { value: function() {
- return this.noSuchMethod$2("end", []);
+ return this.noSuchMethod("end", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "endsWith$1", { value: function($0) {
- return this.noSuchMethod$2("endsWith", [$0]);
+ return this.noSuchMethod("endsWith", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "ensureSubtypeOf$3", { value: function($0, $1, $2) {
- return this.noSuchMethod$2("ensureSubtypeOf", [$0, $1, $2]);
+ return this.noSuchMethod("ensureSubtypeOf", [$0, $1, $2]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "evalBody$2", { value: function($0, $1) {
- return this.noSuchMethod$2("evalBody", [$0, $1]);
+ return this.noSuchMethod("evalBody", [$0, $1]);
+}, enumerable: false, writable: true, configurable: true });
+Object.defineProperty(Object.prototype, "every$1", { value: function($0) {
+ return this.noSuchMethod("every", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "filter$1", { value: function($0) {
- return this.noSuchMethod$2("filter", [$0]);
+ return this.noSuchMethod("filter", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "findTypeByName$1", { value: function($0) {
- return this.noSuchMethod$2("findTypeByName", [$0]);
+ return this.noSuchMethod("findTypeByName", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "forEach$1", { value: function($0) {
- return this.noSuchMethod$2("forEach", [$0]);
+ return this.noSuchMethod("forEach", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "genValue$2", { value: function($0, $1) {
- return this.noSuchMethod$2("genValue", [$0, $1]);
+ return this.noSuchMethod("genValue", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "generate$1", { value: function($0) {
- return this.noSuchMethod$2("generate", [$0]);
+ return this.noSuchMethod("generate", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "getColumn$2", { value: function($0, $1) {
- return this.noSuchMethod$2("getColumn", [$0, $1]);
+ return this.noSuchMethod("getColumn", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "getConstructor$1", { value: function($0) {
- return this.noSuchMethod$2("getConstructor", [$0]);
+ return this.noSuchMethod("getConstructor", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "getFactory$2", { value: function($0, $1) {
- return this.noSuchMethod$2("getFactory", [$0, $1]);
+ return this.noSuchMethod("getFactory", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "getGlobalValue$0", { value: function() {
- return this.noSuchMethod$2("getGlobalValue", []);
+ return this.noSuchMethod("getGlobalValue", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "getKeys$0", { value: function() {
- return this.noSuchMethod$2("getKeys", []);
+ return this.noSuchMethod("getKeys", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "getLine$1", { value: function($0) {
- return this.noSuchMethod$2("getLine", [$0]);
+ return this.noSuchMethod("getLine", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "getMember$1", { value: function($0) {
- return this.noSuchMethod$2("getMember", [$0]);
+ return this.noSuchMethod("getMember", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "getOrMakeConcreteType$1", { value: function($0) {
- return this.noSuchMethod$2("getOrMakeConcreteType", [$0]);
+ return this.noSuchMethod("getOrMakeConcreteType", [$0]);
+}, enumerable: false, writable: true, configurable: true });
+Object.defineProperty(Object.prototype, "getRange$2", { value: function($0, $1) {
+ return this.noSuchMethod("getRange", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "getValues$0", { value: function() {
- return this.noSuchMethod$2("getValues", []);
+ return this.noSuchMethod("getValues", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "get_$3", { value: function($0, $1, $2) {
- return this.noSuchMethod$2("get_", [$0, $1, $2]);
+ return this.noSuchMethod("get_", [$0, $1, $2]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "hasNext$0", { value: function() {
- return this.noSuchMethod$2("hasNext", []);
+ return this.noSuchMethod("hasNext", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "hashCode$0", { value: function() {
- return this.noSuchMethod$2("hashCode", []);
+ return this.noSuchMethod("hashCode", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "indexOf$1", { value: function($0) {
- return this.noSuchMethod$2("indexOf", [$0]);
+ return this.noSuchMethod("indexOf", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "initFields$0", { value: function() {
- return this.noSuchMethod$2("initFields", []);
+ return this.noSuchMethod("initFields", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "instanceOf$3$isTrue$forceCheck", { value: function($0, $1, $2, isTrue, forceCheck) {
- return this.noSuchMethod$2("instanceOf", [$0, $1, $2, isTrue, forceCheck]);
+ return this.noSuchMethod("instanceOf", [$0, $1, $2, isTrue, forceCheck]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "instanceOf$4", { value: function($0, $1, $2, $3) {
- return this.noSuchMethod$2("instanceOf", [$0, $1, $2, $3]);
+ return this.noSuchMethod("instanceOf", [$0, $1, $2, $3]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "invoke$4", { value: function($0, $1, $2, $3) {
- return this.noSuchMethod$2("invoke", [$0, $1, $2, $3]);
+ return this.noSuchMethod("invoke", [$0, $1, $2, $3]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "invoke$4$isDynamic", { value: function($0, $1, $2, $3, isDynamic) {
- return this.noSuchMethod$2("invoke", [$0, $1, $2, $3, isDynamic]);
+ return this.noSuchMethod("invoke", [$0, $1, $2, $3, isDynamic]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "invoke$5", { value: function($0, $1, $2, $3, $4) {
- return this.noSuchMethod$2("invoke", [$0, $1, $2, $3, $4]);
+ return this.noSuchMethod("invoke", [$0, $1, $2, $3, $4]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "invokeNoSuchMethod$4", { value: function($0, $1, $2, $3) {
- return this.noSuchMethod$2("invokeNoSuchMethod", [$0, $1, $2, $3]);
+ return this.noSuchMethod("invokeNoSuchMethod", [$0, $1, $2, $3]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "is$List", { value: function() {
return false;
@@ -276,196 +285,124 @@ Object.defineProperty(Object.prototype, "is$RegExp", { value: function() {
return false;
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "isAssignable$1", { value: function($0) {
- return this.noSuchMethod$2("isAssignable", [$0]);
+ return this.noSuchMethod("isAssignable", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "isEmpty$0", { value: function() {
- return this.noSuchMethod$2("isEmpty", []);
+ return this.noSuchMethod("isEmpty", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "isSubtypeOf$1", { value: function($0) {
- return this.noSuchMethod$2("isSubtypeOf", [$0]);
+ return this.noSuchMethod("isSubtypeOf", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "iterator$0", { value: function() {
- return this.noSuchMethod$2("iterator", []);
+ return this.noSuchMethod("iterator", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "last$0", { value: function() {
- return this.noSuchMethod$2("last", []);
+ return this.noSuchMethod("last", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "lookup$2", { value: function($0, $1) {
- return this.noSuchMethod$2("lookup", [$0, $1]);
+ return this.noSuchMethod("lookup", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "markUsed$0", { value: function() {
- return this.noSuchMethod$2("markUsed", []);
+ return this.noSuchMethod("markUsed", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "namesInOrder$1", { value: function($0) {
- return this.noSuchMethod$2("namesInOrder", [$0]);
+ return this.noSuchMethod("namesInOrder", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "needsConversion$1", { value: function($0) {
- return this.noSuchMethod$2("needsConversion", [$0]);
+ return this.noSuchMethod("needsConversion", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "next$0", { value: function() {
- return this.noSuchMethod$2("next", []);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "noSuchMethod$2", { value: function($0, $1) {
- return this.noSuchMethod($0, $1);
+ return this.noSuchMethod("next", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "postResolveChecks$0", { value: function() {
- return this.noSuchMethod$2("postResolveChecks", []);
+ return this.noSuchMethod("postResolveChecks", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "provideFieldSyntax$0", { value: function() {
- return this.noSuchMethod$2("provideFieldSyntax", []);
+ return this.noSuchMethod("provideFieldSyntax", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "providePropertySyntax$0", { value: function() {
- return this.noSuchMethod$2("providePropertySyntax", []);
+ return this.noSuchMethod("providePropertySyntax", []);
+}, enumerable: false, writable: true, configurable: true });
+Object.defineProperty(Object.prototype, "putIfAbsent$2", { value: function($0, $1) {
+ return this.noSuchMethod("putIfAbsent", [$0, $1]);
+}, enumerable: false, writable: true, configurable: true });
+Object.defineProperty(Object.prototype, "removeFirst$0", { value: function() {
+ return this.noSuchMethod("removeFirst", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "removeLast$0", { value: function() {
- return this.noSuchMethod$2("removeLast", []);
+ return this.noSuchMethod("removeLast", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "replaceFirst$2", { value: function($0, $1) {
- return this.noSuchMethod$2("replaceFirst", [$0, $1]);
+ return this.noSuchMethod("replaceFirst", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "replaceValue$1", { value: function($0) {
- return this.noSuchMethod$2("replaceValue", [$0]);
+ return this.noSuchMethod("replaceValue", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "resolve$0", { value: function() {
- return this.noSuchMethod$2("resolve", []);
+ return this.noSuchMethod("resolve", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "resolveType$2", { value: function($0, $1) {
- return this.noSuchMethod$2("resolveType", [$0, $1]);
+ return this.noSuchMethod("resolveType", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "resolveTypeParams$1", { value: function($0) {
- return this.noSuchMethod$2("resolveTypeParams", [$0]);
+ return this.noSuchMethod("resolveTypeParams", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "run$0", { value: function() {
- return this.noSuchMethod$2("run", []);
+ return this.noSuchMethod("run", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "setDefinition$1", { value: function($0) {
- return this.noSuchMethod$2("setDefinition", [$0]);
+ return this.noSuchMethod("setDefinition", [$0]);
}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "setIndex$4$kind$returnKind", { value: function($0, $1, $2, $3, kind, returnKind) {
- return this.noSuchMethod$2("setIndex", [$0, $1, $2, $3, kind, returnKind]);
+Object.defineProperty(Object.prototype, "set_$4", { value: function($0, $1, $2, $3) {
+ return this.noSuchMethod("set_", [$0, $1, $2, $3]);
}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "set_$4$kind$returnKind", { value: function($0, $1, $2, $3, kind, returnKind) {
- return this.noSuchMethod$2("set_", [$0, $1, $2, $3, kind, returnKind]);
+Object.defineProperty(Object.prototype, "some$1", { value: function($0) {
+ return this.noSuchMethod("some", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "sort$1", { value: function($0) {
- return this.noSuchMethod$2("sort", [$0]);
+ return this.noSuchMethod("sort", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "start$0", { value: function() {
- return this.noSuchMethod$2("start", []);
+ return this.noSuchMethod("start", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "startsWith$1", { value: function($0) {
- return this.noSuchMethod$2("startsWith", [$0]);
+ return this.noSuchMethod("startsWith", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "stop$0", { value: function() {
- return this.noSuchMethod$2("stop", []);
+ return this.noSuchMethod("stop", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "substring$1", { value: function($0) {
- return this.noSuchMethod$2("substring", [$0]);
+ return this.noSuchMethod("substring", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "substring$2", { value: function($0, $1) {
- return this.noSuchMethod$2("substring", [$0, $1]);
+ return this.noSuchMethod("substring", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "toRadixString$1", { value: function($0) {
- return this.noSuchMethod$2("toRadixString", [$0]);
+ return this.noSuchMethod("toRadixString", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "toString$0", { value: function() {
return this.toString();
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "unop$3", { value: function($0, $1, $2) {
- return this.noSuchMethod$2("unop", [$0, $1, $2]);
+ return this.noSuchMethod("unop", [$0, $1, $2]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "visit$1", { value: function($0) {
- return this.noSuchMethod$2("visit", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitAssertStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitAssertStatement", [$0]);
+ return this.noSuchMethod("visit", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "visitBinaryExpression$1", { value: function($0) {
- return this.noSuchMethod$2("visitBinaryExpression", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitBlockStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitBlockStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitBreakStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitBreakStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitContinueStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitContinueStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitDeclaredIdentifier$1", { value: function($0) {
- return this.noSuchMethod$2("visitDeclaredIdentifier", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitDietStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitDietStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitDoStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitDoStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitEmptyStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitEmptyStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitExpressionStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitExpressionStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitForInStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitForInStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitForStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitForStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitFunctionDefinition$1", { value: function($0) {
- return this.noSuchMethod$2("visitFunctionDefinition", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitIfStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitIfStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitIndexExpression$1", { value: function($0) {
- return this.noSuchMethod$2("visitIndexExpression", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitLabeledStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitLabeledStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitLambdaExpression$1", { value: function($0) {
- return this.noSuchMethod$2("visitLambdaExpression", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitLiteralExpression$1", { value: function($0) {
- return this.noSuchMethod$2("visitLiteralExpression", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitMapExpression$1", { value: function($0) {
- return this.noSuchMethod$2("visitMapExpression", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitNewExpression$1", { value: function($0) {
- return this.noSuchMethod$2("visitNewExpression", [$0]);
+ return this.noSuchMethod("visitBinaryExpression", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "visitPostfixExpression$1", { value: function($0) {
- return this.noSuchMethod$2("visitPostfixExpression", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitReturnStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitReturnStatement", [$0]);
+ return this.noSuchMethod("visitPostfixExpression", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "visitSources$0", { value: function() {
- return this.noSuchMethod$2("visitSources", []);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitSwitchStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitSwitchStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitThrowStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitThrowStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitTryStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitTryStatement", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitVariableDefinition$1", { value: function($0) {
- return this.noSuchMethod$2("visitVariableDefinition", [$0]);
-}, enumerable: false, writable: true, configurable: true });
-Object.defineProperty(Object.prototype, "visitWhileStatement$1", { value: function($0) {
- return this.noSuchMethod$2("visitWhileStatement", [$0]);
+ return this.noSuchMethod("visitSources", []);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "write$1", { value: function($0) {
- return this.noSuchMethod$2("write", [$0]);
+ return this.noSuchMethod("write", [$0]);
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(Object.prototype, "writeDefinition$2", { value: function($0, $1) {
- return this.noSuchMethod$2("writeDefinition", [$0, $1]);
+ return this.noSuchMethod("writeDefinition", [$0, $1]);
}, enumerable: false, writable: true, configurable: true });
// ********** Code for Clock **************
function Clock() {}
@@ -496,7 +433,7 @@ NoSuchMethodException.prototype.toString = function() {
if (i > (0)) {
sb.add(", ");
}
- sb.add(this._arguments[i]);
+ sb.add(this._arguments.$index(i));
}
sb.add("]");
return ("NoSuchMethodException - receiver: '" + this._receiver + "' ") + ("function name: '" + this._functionName + "' arguments: [" + sb + "]");
@@ -726,17 +663,24 @@ Object.defineProperty(ListFactory.prototype, "iterator", { value: function() {
Object.defineProperty(ListFactory.prototype, "add$1", { value: ListFactory.prototype.add, enumerable: false, writable: true, configurable: true });
Object.defineProperty(ListFactory.prototype, "addAll$1", { value: ListFactory.prototype.addAll, enumerable: false, writable: true, configurable: true });
Object.defineProperty(ListFactory.prototype, "addLast$1", { value: ListFactory.prototype.addLast, enumerable: false, writable: true, configurable: true });
+Object.defineProperty(ListFactory.prototype, "every$1", { value: function($0) {
+ return this.every(to$call$1($0));
+}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(ListFactory.prototype, "filter$1", { value: function($0) {
return this.filter(to$call$1($0));
}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(ListFactory.prototype, "forEach$1", { value: function($0) {
return this.forEach(to$call$1($0));
}, enumerable: false, writable: true, configurable: true });
+Object.defineProperty(ListFactory.prototype, "getRange$2", { value: ListFactory.prototype.getRange, enumerable: false, writable: true, configurable: true });
Object.defineProperty(ListFactory.prototype, "indexOf$1", { value: ListFactory.prototype.indexOf, enumerable: false, writable: true, configurable: true });
Object.defineProperty(ListFactory.prototype, "isEmpty$0", { value: ListFactory.prototype.isEmpty, enumerable: false, writable: true, configurable: true });
Object.defineProperty(ListFactory.prototype, "iterator$0", { value: ListFactory.prototype.iterator, enumerable: false, writable: true, configurable: true });
Object.defineProperty(ListFactory.prototype, "last$0", { value: ListFactory.prototype.last, enumerable: false, writable: true, configurable: true });
Object.defineProperty(ListFactory.prototype, "removeLast$0", { value: ListFactory.prototype.removeLast, enumerable: false, writable: true, configurable: true });
+Object.defineProperty(ListFactory.prototype, "some$1", { value: function($0) {
+ return this.some(to$call$1($0));
+}, enumerable: false, writable: true, configurable: true });
Object.defineProperty(ListFactory.prototype, "sort$1", { value: function($0) {
return this.sort(to$call$2($0));
}, enumerable: false, writable: true, configurable: true });
@@ -759,7 +703,7 @@ ListIterator.prototype.next = function() {
if (!this.hasNext()) {
$throw(const$0005);
}
- return this._array[this._pos++];
+ return this._array.$index(this._pos++);
}
ListIterator.prototype.hasNext$0 = ListIterator.prototype.hasNext;
ListIterator.prototype.next$0 = ListIterator.prototype.next;
@@ -784,7 +728,7 @@ ImmutableList.ImmutableList$from$factory = function(other) {
var list = new ImmutableList(other.get$length());
for (var i = (0);
i < other.get$length(); i++) {
- list._setindex$2(i, other[i]);
+ list._setindex$2(i, other.$index(i));
}
return list;
}
@@ -794,6 +738,10 @@ ImmutableList.prototype.get$length = function() {
ImmutableList.prototype.set$length = function(length) {
$throw(const$0007);
}
+Object.defineProperty(ImmutableList.prototype, "length", {
+ get: ImmutableList.prototype.get$length,
+ set: ImmutableList.prototype.set$length
+});
ImmutableList.prototype._setindex = function(index, value) {
return this[index] = value;
}
@@ -819,7 +767,7 @@ ImmutableList.prototype.removeLast = function() {
$throw(const$0007);
}
ImmutableList.prototype.toString = function() {
- return ListFactory.ListFactory$from$factory(this).toString$0();
+ return ListFactory.ListFactory$from$factory(this).toString();
}
ImmutableList.prototype._setindex$2 = ImmutableList.prototype._setindex;
ImmutableList.prototype.add$1 = ImmutableList.prototype.add;
@@ -901,7 +849,7 @@ HashMapImplementation._firstProbe = function(hashCode, length) {
return hashCode & (length - (1));
}
HashMapImplementation._nextProbe = function(currentProbe, numberOfProbes, length) {
- return ($add(currentProbe, numberOfProbes)) & (length - (1));
+ return (currentProbe + numberOfProbes) & (length - (1));
}
HashMapImplementation.prototype._probeForAdding = function(key) {
var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$length());
@@ -909,7 +857,7 @@ HashMapImplementation.prototype._probeForAdding = function(key) {
var initialHash = hash;
var insertionIndex = (-1);
while (true) {
- var existingKey = this._keys[hash];
+ var existingKey = this._keys.$index(hash);
if (existingKey == null) {
if (insertionIndex < (0)) return hash;
return insertionIndex;
@@ -928,14 +876,14 @@ HashMapImplementation.prototype._probeForLookup = function(key) {
var numberOfProbes = (1);
var initialHash = hash;
while (true) {
- var existingKey = this._keys[hash];
+ var existingKey = this._keys.$index(hash);
if (existingKey == null) return (-1);
if ($eq(existingKey, key)) return hash;
hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.get$length());
}
}
HashMapImplementation.prototype._ensureCapacity = function() {
- var newNumberOfEntries = $add(this._numberOfEntries, (1));
+ var newNumberOfEntries = this._numberOfEntries + (1);
if (newNumberOfEntries >= this._loadLimit) {
this._grow(this._keys.get$length() * (2));
return;
@@ -959,11 +907,11 @@ HashMapImplementation.prototype._grow = function(newCapacity) {
this._values = new Array(newCapacity);
for (var i = (0);
i < capacity; i++) {
- var key = oldKeys[i];
+ var key = oldKeys.$index(i);
if (key == null || key == const$0001) {
continue;
}
- var value = oldValues[i];
+ var value = oldValues.$index(i);
var newIndex = this._probeForAdding(key);
this._keys.$setindex(newIndex, key);
this._values.$setindex(newIndex, value);
@@ -973,7 +921,7 @@ HashMapImplementation.prototype._grow = function(newCapacity) {
HashMapImplementation.prototype.$setindex = function(key, value) {
this._ensureCapacity();
var index = this._probeForAdding(key);
- if ((this._keys[index] == null) || (this._keys[index] == const$0001)) {
+ if ((this._keys.$index(index) == null) || (this._keys.$index(index) == const$0001)) {
this._numberOfEntries++;
}
this._keys.$setindex(index, key);
@@ -982,15 +930,27 @@ HashMapImplementation.prototype.$setindex = function(key, value) {
HashMapImplementation.prototype.$index = function(key) {
var index = this._probeForLookup(key);
if (index < (0)) return null;
- return this._values[index];
+ return this._values.$index(index);
}
HashMapImplementation.prototype.putIfAbsent = function(key, ifAbsent) {
var index = this._probeForLookup(key);
- if (index >= (0)) return this._values[index];
- var value = ifAbsent.call$0();
+ if (index >= (0)) return this._values.$index(index);
+ var value = ifAbsent();
this.$setindex(key, value);
return value;
}
+HashMapImplementation.prototype.remove = function(key) {
+ var index = this._probeForLookup(key);
+ if (index >= (0)) {
+ this._numberOfEntries--;
+ var value = this._values.$index(index);
+ this._values.$setindex(index);
+ this._keys.$setindex(index, const$0001);
+ this._numberOfDeleted++;
+ return value;
+ }
+ return null;
+}
HashMapImplementation.prototype.isEmpty = function() {
return this._numberOfEntries == (0);
}
@@ -1001,8 +961,8 @@ HashMapImplementation.prototype.forEach = function(f) {
var length = this._keys.get$length();
for (var i = (0);
i < length; i++) {
- if ((this._keys[i] != null) && (this._keys[i] != const$0001)) {
- f.call$2(this._keys[i], this._values[i]);
+ if ((this._keys.$index(i) != null) && (this._keys.$index(i) != const$0001)) {
+ f(this._keys.$index(i), this._values.$index(i));
}
}
}
@@ -1034,6 +994,9 @@ HashMapImplementation.prototype.forEach$1 = function($0) {
HashMapImplementation.prototype.getKeys$0 = HashMapImplementation.prototype.getKeys;
HashMapImplementation.prototype.getValues$0 = HashMapImplementation.prototype.getValues;
HashMapImplementation.prototype.isEmpty$0 = HashMapImplementation.prototype.isEmpty;
+HashMapImplementation.prototype.putIfAbsent$2 = function($0, $1) {
+ return this.putIfAbsent($0, to$call$0($1));
+};
// ********** Code for HashMapImplementation_E$E **************
$inherits(HashMapImplementation_E$E, HashMapImplementation);
function HashMapImplementation_E$E() {
@@ -1050,7 +1013,7 @@ HashMapImplementation_E$E._firstProbe = function(hashCode, length) {
return hashCode & (length - (1));
}
HashMapImplementation_E$E._nextProbe = function(currentProbe, numberOfProbes, length) {
- return ($add(currentProbe, numberOfProbes)) & (length - (1));
+ return (currentProbe + numberOfProbes) & (length - (1));
}
HashMapImplementation_E$E.prototype._probeForAdding = function(key) {
var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$length());
@@ -1058,7 +1021,7 @@ HashMapImplementation_E$E.prototype._probeForAdding = function(key) {
var initialHash = hash;
var insertionIndex = (-1);
while (true) {
- var existingKey = this._keys[hash];
+ var existingKey = this._keys.$index(hash);
if (existingKey == null) {
if (insertionIndex < (0)) return hash;
return insertionIndex;
@@ -1077,14 +1040,14 @@ HashMapImplementation_E$E.prototype._probeForLookup = function(key) {
var numberOfProbes = (1);
var initialHash = hash;
while (true) {
- var existingKey = this._keys[hash];
+ var existingKey = this._keys.$index(hash);
if (existingKey == null) return (-1);
if ($eq(existingKey, key)) return hash;
hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.get$length());
}
}
HashMapImplementation_E$E.prototype._ensureCapacity = function() {
- var newNumberOfEntries = $add(this._numberOfEntries, (1));
+ var newNumberOfEntries = this._numberOfEntries + (1);
if (newNumberOfEntries >= this._loadLimit) {
this._grow(this._keys.get$length() * (2));
return;
@@ -1108,11 +1071,11 @@ HashMapImplementation_E$E.prototype._grow = function(newCapacity) {
this._values = new Array(newCapacity);
for (var i = (0);
i < capacity; i++) {
- var key = oldKeys[i];
+ var key = oldKeys.$index(i);
if (key == null || key == const$0001) {
continue;
}
- var value = oldValues[i];
+ var value = oldValues.$index(i);
var newIndex = this._probeForAdding(key);
this._keys.$setindex(newIndex, key);
this._values.$setindex(newIndex, value);
@@ -1122,12 +1085,24 @@ HashMapImplementation_E$E.prototype._grow = function(newCapacity) {
HashMapImplementation_E$E.prototype.$setindex = function(key, value) {
this._ensureCapacity();
var index = this._probeForAdding(key);
- if ((this._keys[index] == null) || (this._keys[index] == const$0001)) {
+ if ((this._keys.$index(index) == null) || (this._keys.$index(index) == const$0001)) {
this._numberOfEntries++;
}
this._keys.$setindex(index, key);
this._values.$setindex(index, value);
}
+HashMapImplementation_E$E.prototype.remove = function(key) {
+ var index = this._probeForLookup(key);
+ if (index >= (0)) {
+ this._numberOfEntries--;
+ var value = this._values.$index(index);
+ this._values.$setindex(index);
+ this._keys.$setindex(index, const$0001);
+ this._numberOfDeleted++;
+ return value;
+ }
+ return null;
+}
HashMapImplementation_E$E.prototype.isEmpty = function() {
return this._numberOfEntries == (0);
}
@@ -1135,8 +1110,8 @@ HashMapImplementation_E$E.prototype.forEach = function(f) {
var length = this._keys.get$length();
for (var i = (0);
i < length; i++) {
- if ((this._keys[i] != null) && (this._keys[i] != const$0001)) {
- f.call$2(this._keys[i], this._values[i]);
+ if ((this._keys.$index(i) != null) && (this._keys.$index(i) != const$0001)) {
+ f(this._keys.$index(i), this._values.$index(i));
}
}
}
@@ -1171,7 +1146,7 @@ HashMapImplementation_K$V._firstProbe = function(hashCode, length) {
return hashCode & (length - (1));
}
HashMapImplementation_K$V._nextProbe = function(currentProbe, numberOfProbes, length) {
- return ($add(currentProbe, numberOfProbes)) & (length - (1));
+ return (currentProbe + numberOfProbes) & (length - (1));
}
HashMapImplementation_K$V.prototype._probeForAdding = function(key) {
var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$length());
@@ -1179,7 +1154,7 @@ HashMapImplementation_K$V.prototype._probeForAdding = function(key) {
var initialHash = hash;
var insertionIndex = (-1);
while (true) {
- var existingKey = this._keys[hash];
+ var existingKey = this._keys.$index(hash);
if (existingKey == null) {
if (insertionIndex < (0)) return hash;
return insertionIndex;
@@ -1198,14 +1173,14 @@ HashMapImplementation_K$V.prototype._probeForLookup = function(key) {
var numberOfProbes = (1);
var initialHash = hash;
while (true) {
- var existingKey = this._keys[hash];
+ var existingKey = this._keys.$index(hash);
if (existingKey == null) return (-1);
if ($eq(existingKey, key)) return hash;
hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.get$length());
}
}
HashMapImplementation_K$V.prototype._ensureCapacity = function() {
- var newNumberOfEntries = $add(this._numberOfEntries, (1));
+ var newNumberOfEntries = this._numberOfEntries + (1);
if (newNumberOfEntries >= this._loadLimit) {
this._grow(this._keys.get$length() * (2));
return;
@@ -1229,11 +1204,11 @@ HashMapImplementation_K$V.prototype._grow = function(newCapacity) {
this._values = new Array(newCapacity);
for (var i = (0);
i < capacity; i++) {
- var key = oldKeys[i];
+ var key = oldKeys.$index(i);
if (key == null || key == const$0001) {
continue;
}
- var value = oldValues[i];
+ var value = oldValues.$index(i);
var newIndex = this._probeForAdding(key);
this._keys.$setindex(newIndex, key);
this._values.$setindex(newIndex, value);
@@ -1243,7 +1218,7 @@ HashMapImplementation_K$V.prototype._grow = function(newCapacity) {
HashMapImplementation_K$V.prototype.$setindex = function(key, value) {
this._ensureCapacity();
var index = this._probeForAdding(key);
- if ((this._keys[index] == null) || (this._keys[index] == const$0001)) {
+ if ((this._keys.$index(index) == null) || (this._keys.$index(index) == const$0001)) {
this._numberOfEntries++;
}
this._keys.$setindex(index, key);
@@ -1252,12 +1227,12 @@ HashMapImplementation_K$V.prototype.$setindex = function(key, value) {
HashMapImplementation_K$V.prototype.$index = function(key) {
var index = this._probeForLookup(key);
if (index < (0)) return null;
- return this._values[index];
+ return this._values.$index(index);
}
HashMapImplementation_K$V.prototype.putIfAbsent = function(key, ifAbsent) {
var index = this._probeForLookup(key);
- if (index >= (0)) return this._values[index];
- var value = ifAbsent.call$0();
+ if (index >= (0)) return this._values.$index(index);
+ var value = ifAbsent();
this.$setindex(key, value);
return value;
}
@@ -1268,8 +1243,8 @@ HashMapImplementation_K$V.prototype.forEach = function(f) {
var length = this._keys.get$length();
for (var i = (0);
i < length; i++) {
- if ((this._keys[i] != null) && (this._keys[i] != const$0001)) {
- f.call$2(this._keys[i], this._values[i]);
+ if ((this._keys.$index(i) != null) && (this._keys.$index(i) != const$0001)) {
+ f(this._keys.$index(i), this._values.$index(i));
}
}
}
@@ -1310,7 +1285,7 @@ HashMapImplementation_dart_core_String$VariableValue._firstProbe = function(hash
return hashCode & (length - (1));
}
HashMapImplementation_dart_core_String$VariableValue._nextProbe = function(currentProbe, numberOfProbes, length) {
- return ($add(currentProbe, numberOfProbes)) & (length - (1));
+ return (currentProbe + numberOfProbes) & (length - (1));
}
HashMapImplementation_dart_core_String$VariableValue.prototype._probeForAdding = function(key) {
var hash = HashMapImplementation._firstProbe(key.hashCode(), this._keys.get$length());
@@ -1318,7 +1293,7 @@ HashMapImplementation_dart_core_String$VariableValue.prototype._probeForAdding =
var initialHash = hash;
var insertionIndex = (-1);
while (true) {
- var existingKey = this._keys[hash];
+ var existingKey = this._keys.$index(hash);
if (existingKey == null) {
if (insertionIndex < (0)) return hash;
return insertionIndex;
@@ -1337,14 +1312,14 @@ HashMapImplementation_dart_core_String$VariableValue.prototype._probeForLookup =
var numberOfProbes = (1);
var initialHash = hash;
while (true) {
- var existingKey = this._keys[hash];
+ var existingKey = this._keys.$index(hash);
if (existingKey == null) return (-1);
if ($eq(existingKey, key)) return hash;
hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.get$length());
}
}
HashMapImplementation_dart_core_String$VariableValue.prototype._ensureCapacity = function() {
- var newNumberOfEntries = $add(this._numberOfEntries, (1));
+ var newNumberOfEntries = this._numberOfEntries + (1);
if (newNumberOfEntries >= this._loadLimit) {
this._grow(this._keys.get$length() * (2));
return;
@@ -1368,11 +1343,11 @@ HashMapImplementation_dart_core_String$VariableValue.prototype._grow = function(
this._values = new Array(newCapacity);
for (var i = (0);
i < capacity; i++) {
- var key = oldKeys[i];
+ var key = oldKeys.$index(i);
if (key == null || key == const$0001) {
continue;
}
- var value = oldValues[i];
+ var value = oldValues.$index(i);
var newIndex = this._probeForAdding(key);
this._keys.$setindex(newIndex, key);
this._values.$setindex(newIndex, value);
@@ -1382,7 +1357,7 @@ HashMapImplementation_dart_core_String$VariableValue.prototype._grow = function(
HashMapImplementation_dart_core_String$VariableValue.prototype.$setindex = function(key, value) {
this._ensureCapacity();
var index = this._probeForAdding(key);
- if ((this._keys[index] == null) || (this._keys[index] == const$0001)) {
+ if ((this._keys.$index(index) == null) || (this._keys.$index(index) == const$0001)) {
this._numberOfEntries++;
}
this._keys.$setindex(index, key);
@@ -1391,14 +1366,14 @@ HashMapImplementation_dart_core_String$VariableValue.prototype.$setindex = funct
HashMapImplementation_dart_core_String$VariableValue.prototype.$index = function(key) {
var index = this._probeForLookup(key);
if (index < (0)) return null;
- return this._values[index];
+ return this._values.$index(index);
}
HashMapImplementation_dart_core_String$VariableValue.prototype.forEach = function(f) {
var length = this._keys.get$length();
for (var i = (0);
i < length; i++) {
- if ((this._keys[i] != null) && (this._keys[i] != const$0001)) {
- f.call$2(this._keys[i], this._values[i]);
+ if ((this._keys.$index(i) != null) && (this._keys.$index(i) != const$0001)) {
+ f(this._keys.$index(i), this._values.$index(i));
}
}
}
@@ -1423,6 +1398,11 @@ HashSetImplementation.prototype.add = function(value) {
HashSetImplementation.prototype.contains = function(value) {
return this._backingMap.containsKey(value);
}
+HashSetImplementation.prototype.remove = function(value) {
+ if (!this._backingMap.containsKey(value)) return false;
+ this._backingMap.remove(value);
+ return true;
+}
HashSetImplementation.prototype.addAll = function(collection) {
var $this = this; // closure support
collection.forEach(function _(value) {
@@ -1432,14 +1412,14 @@ HashSetImplementation.prototype.addAll = function(collection) {
}
HashSetImplementation.prototype.forEach = function(f) {
this._backingMap.forEach(function _(key, value) {
- f.call$1(key);
+ f(key);
}
);
}
HashSetImplementation.prototype.filter = function(f) {
var result = new HashSetImplementation();
this._backingMap.forEach(function _(key, value) {
- if (f.call$1(key)) result.add(key);
+ if (f(key)) result.add(key);
}
);
return result;
@@ -1464,6 +1444,9 @@ HashSetImplementation.prototype.iterator = function() {
HashSetImplementation.prototype.add$1 = HashSetImplementation.prototype.add;
HashSetImplementation.prototype.addAll$1 = HashSetImplementation.prototype.addAll;
HashSetImplementation.prototype.contains$1 = HashSetImplementation.prototype.contains;
+HashSetImplementation.prototype.every$1 = function($0) {
+ return this.every(to$call$1($0));
+};
HashSetImplementation.prototype.filter$1 = function($0) {
return this.filter(to$call$1($0));
};
@@ -1472,6 +1455,9 @@ HashSetImplementation.prototype.forEach$1 = function($0) {
};
HashSetImplementation.prototype.isEmpty$0 = HashSetImplementation.prototype.isEmpty;
HashSetImplementation.prototype.iterator$0 = HashSetImplementation.prototype.iterator;
+HashSetImplementation.prototype.some$1 = function($0) {
+ return this.some(to$call$1($0));
+};
// ********** Code for HashSetImplementation_E **************
$inherits(HashSetImplementation_E, HashSetImplementation);
function HashSetImplementation_E() {
@@ -1480,9 +1466,6 @@ function HashSetImplementation_E() {
// ********** Code for HashSetImplementation_Library **************
$inherits(HashSetImplementation_Library, HashSetImplementation);
function HashSetImplementation_Library() {}
-// ********** Code for HashSetImplementation_Member **************
-$inherits(HashSetImplementation_Member, HashSetImplementation);
-function HashSetImplementation_Member() {}
// ********** Code for HashSetImplementation_dart_core_String **************
$inherits(HashSetImplementation_dart_core_String, HashSetImplementation);
function HashSetImplementation_dart_core_String() {}
@@ -1497,7 +1480,7 @@ function HashSetIterator(set_) {
}
HashSetIterator.prototype.hasNext = function() {
if (this._nextValidIndex >= this._entries.get$length()) return false;
- if (this._entries[this._nextValidIndex] == const$0001) {
+ if (this._entries.$index(this._nextValidIndex) == const$0001) {
this._advance();
}
return this._nextValidIndex < this._entries.get$length();
@@ -1506,7 +1489,7 @@ HashSetIterator.prototype.next = function() {
if (!this.hasNext()) {
$throw(const$0005);
}
- var res = this._entries[this._nextValidIndex];
+ var res = this._entries.$index(this._nextValidIndex);
this._advance();
return res;
}
@@ -1516,7 +1499,7 @@ HashSetIterator.prototype._advance = function() {
var deletedKey = const$0001;
do {
if (++this._nextValidIndex >= length) break;
- entry = this._entries[this._nextValidIndex];
+ entry = this._entries.$index(this._nextValidIndex);
}
while ((entry == null) || (entry == deletedKey))
}
@@ -1535,7 +1518,7 @@ HashSetIterator_E.prototype._advance = function() {
var deletedKey = const$0001;
do {
if (++this._nextValidIndex >= length) break;
- entry = this._entries[this._nextValidIndex];
+ entry = this._entries.$index(this._nextValidIndex);
}
while ((entry == null) || (entry == deletedKey))
}
@@ -1578,7 +1561,7 @@ LinkedHashMapImplementation.prototype.$index = function(key) {
LinkedHashMapImplementation.prototype.putIfAbsent = function(key, ifAbsent) {
var value = this.$index(key);
if ((this.$index(key) == null) && !(this.containsKey(key))) {
- value = ifAbsent.call$0();
+ value = ifAbsent();
this.$setindex(key, value);
}
return value;
@@ -1603,7 +1586,7 @@ LinkedHashMapImplementation.prototype.getValues = function() {
}
LinkedHashMapImplementation.prototype.forEach = function(f) {
this._list.forEach(function _(entry) {
- f.call$2(entry.key, entry.value);
+ f(entry.key, entry.value);
}
);
}
@@ -1623,6 +1606,9 @@ LinkedHashMapImplementation.prototype.forEach$1 = function($0) {
LinkedHashMapImplementation.prototype.getKeys$0 = LinkedHashMapImplementation.prototype.getKeys;
LinkedHashMapImplementation.prototype.getValues$0 = LinkedHashMapImplementation.prototype.getValues;
LinkedHashMapImplementation.prototype.isEmpty$0 = LinkedHashMapImplementation.prototype.isEmpty;
+LinkedHashMapImplementation.prototype.putIfAbsent$2 = function($0, $1) {
+ return this.putIfAbsent($0, to$call$0($1));
+};
// ********** Code for DoubleLinkedQueueEntry **************
function DoubleLinkedQueueEntry(e) {
this._element = e;
@@ -1779,7 +1765,7 @@ DoubleLinkedQueue.prototype.forEach = function(f) {
var entry = this._sentinel._next;
while (entry != this._sentinel) {
var nextEntry = entry._next;
- f.call$1(entry._element);
+ f(entry._element);
entry = nextEntry;
}
}
@@ -1787,7 +1773,7 @@ DoubleLinkedQueue.prototype.every = function(f) {
var entry = this._sentinel._next;
while (entry != this._sentinel) {
var nextEntry = entry._next;
- if (!f.call$1(entry._element)) return false;
+ if (!f(entry._element)) return false;
entry = nextEntry;
}
return true;
@@ -1796,7 +1782,7 @@ DoubleLinkedQueue.prototype.some = function(f) {
var entry = this._sentinel._next;
while (entry != this._sentinel) {
var nextEntry = entry._next;
- if (f.call$1(entry._element)) return true;
+ if (f(entry._element)) return true;
entry = nextEntry;
}
return false;
@@ -1806,7 +1792,7 @@ DoubleLinkedQueue.prototype.filter = function(f) {
var entry = this._sentinel._next;
while (entry != this._sentinel) {
var nextEntry = entry._next;
- if (f.call$1(entry._element)) other.addLast(entry._element);
+ if (f(entry._element)) other.addLast(entry._element);
entry = nextEntry;
}
return other;
@@ -1817,6 +1803,9 @@ DoubleLinkedQueue.prototype.iterator = function() {
DoubleLinkedQueue.prototype.add$1 = DoubleLinkedQueue.prototype.add;
DoubleLinkedQueue.prototype.addAll$1 = DoubleLinkedQueue.prototype.addAll;
DoubleLinkedQueue.prototype.addLast$1 = DoubleLinkedQueue.prototype.addLast;
+DoubleLinkedQueue.prototype.every$1 = function($0) {
+ return this.every(to$call$1($0));
+};
DoubleLinkedQueue.prototype.filter$1 = function($0) {
return this.filter(to$call$1($0));
};
@@ -1826,7 +1815,11 @@ DoubleLinkedQueue.prototype.forEach$1 = function($0) {
DoubleLinkedQueue.prototype.isEmpty$0 = DoubleLinkedQueue.prototype.isEmpty;
DoubleLinkedQueue.prototype.iterator$0 = DoubleLinkedQueue.prototype.iterator;
DoubleLinkedQueue.prototype.last$0 = DoubleLinkedQueue.prototype.last;
+DoubleLinkedQueue.prototype.removeFirst$0 = DoubleLinkedQueue.prototype.removeFirst;
DoubleLinkedQueue.prototype.removeLast$0 = DoubleLinkedQueue.prototype.removeLast;
+DoubleLinkedQueue.prototype.some$1 = function($0) {
+ return this.some(to$call$1($0));
+};
// ********** Code for DoubleLinkedQueue_E **************
$inherits(DoubleLinkedQueue_E, DoubleLinkedQueue);
function DoubleLinkedQueue_E() {}
@@ -1845,7 +1838,7 @@ DoubleLinkedQueue_KeyValuePair_K$V.prototype.forEach = function(f) {
var entry = this._sentinel._next;
while (entry != this._sentinel) {
var nextEntry = entry._next;
- f.call$1(entry._element);
+ f(entry._element);
entry = nextEntry;
}
}
@@ -1927,7 +1920,7 @@ StringBufferImpl.prototype.add = function(obj) {
var str = obj.toString$0();
if (str == null || str.isEmpty()) return this;
this._buffer.add(str);
- this._length = $add(this._length, str.length);
+ this._length += str.length;
return this;
}
StringBufferImpl.prototype.addAll = function(objects) {
@@ -1944,7 +1937,7 @@ StringBufferImpl.prototype.clear = function() {
}
StringBufferImpl.prototype.toString = function() {
if (this._buffer.get$length() == (0)) return "";
- if (this._buffer.get$length() == (1)) return this._buffer[(0)];
+ if (this._buffer.get$length() == (1)) return this._buffer.$index((0));
var result = StringBase.concatAll(this._buffer);
this._buffer.clear();
this._buffer.add(result);
@@ -1964,10 +1957,10 @@ StringBase.createFromCharCodes = function(charCodes) {
}
StringBase.join = function(strings, separator) {
if (strings.get$length() == (0)) return "";
- var s = strings[(0)];
+ var s = strings.$index((0));
for (var i = (1);
i < strings.get$length(); i++) {
- s = s + separator + strings[i];
+ s = s + separator + strings.$index(i);
}
return s;
}
@@ -2059,27 +2052,27 @@ function Collections() {}
Collections.forEach = function(iterable, f) {
for (var $$i = iterable.iterator$0(); $$i.hasNext$0(); ) {
var e = $$i.next$0();
- f.call$1(e);
+ f(e);
}
}
Collections.some = function(iterable, f) {
for (var $$i = iterable.iterator$0(); $$i.hasNext$0(); ) {
var e = $$i.next$0();
- if (f.call$1(e)) return true;
+ if (f(e)) return true;
}
return false;
}
Collections.every = function(iterable, f) {
for (var $$i = iterable.iterator$0(); $$i.hasNext$0(); ) {
var e = $$i.next$0();
- if (!f.call$1(e)) return false;
+ if (!f(e)) return false;
}
return true;
}
Collections.filter = function(source, destination, f) {
for (var $$i = source.iterator$0(); $$i.hasNext$0(); ) {
var e = $$i.next$0();
- if (f.call$1(e)) destination.add(e);
+ if (f(e)) destination.add(e);
}
return destination;
}
@@ -2165,7 +2158,7 @@ function _map(itemsAndKeys) {
var ret = new LinkedHashMapImplementation();
for (var i = (0);
i < itemsAndKeys.get$length(); ) {
- ret.$setindex(itemsAndKeys[i++], itemsAndKeys[i++]);
+ ret.$setindex(itemsAndKeys.$index(i++), itemsAndKeys.$index(i++));
}
return ret;
}
@@ -2326,7 +2319,7 @@ function joinPaths(path1, path2) {
var pieces = path1.split("/");
var $$list = path2.split("/");
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var piece = $$list[$$i];
+ var piece = $$list.$index($$i);
if ($eq(piece, "..") && pieces.get$length() > (0) && $ne(pieces.last$0(), ".") && $ne(pieces.last$0(), "..")) {
pieces.removeLast$0();
}
@@ -2354,7 +2347,7 @@ function basename(path) {
return path;
}
else {
- return path.substring($add(lastSlash, (1)));
+ return path.substring(lastSlash + (1));
}
}
// ********** Library file_system_node **************
@@ -2700,7 +2693,7 @@ CoreJs.prototype.generate = function(w) {
}
var $$list = orderValuesByKeys(this._usedOperators);
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var opImpl = $$list[$$i];
+ var opImpl = $$list.$index($$i);
w.writeln(opImpl);
}
if ($globals.world.dom != null) {
@@ -2753,8 +2746,7 @@ Element.prototype.get$enclosingElement = function() {
return this._enclosingElement == null ? this.get$library() : this._enclosingElement;
}
Element.prototype.set$enclosingElement = function(e) {
- var $0;
- return (this._enclosingElement = ($0 = e), $0);
+ return this._enclosingElement = e;
}
Element.prototype.resolveType = function(node, typeErrors) {
if (node == null) return $globals.world.varType;
@@ -2763,7 +2755,7 @@ Element.prototype.resolveType = function(node, typeErrors) {
var typeRef = node;
var name;
if (typeRef.names != null) {
- name = typeRef.names.last().get$name();
+ name = typeRef.names.last$0().get$name();
}
else {
name = typeRef.name.name;
@@ -2771,7 +2763,7 @@ Element.prototype.resolveType = function(node, typeErrors) {
if (this.get$typeParameters() != null) {
var $$list = this.get$typeParameters();
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var tp = $$list[$$i];
+ var tp = $$list.$index($$i);
if ($eq(tp.get$name(), name)) {
typeRef.type = tp;
}
@@ -2796,7 +2788,7 @@ Element.prototype.resolveType = function(node, typeErrors) {
var typeArgs = [];
for (var i = (0);
i < typeRef.typeArguments.get$length(); i++) {
- typeArgs.add$1(this.resolveType$2(typeRef.typeArguments[i], typeErrors));
+ typeArgs.add$1(this.resolveType$2(typeRef.typeArguments.$index(i), typeErrors));
}
typeRef.type = baseType.getOrMakeConcreteType$1(typeArgs);
}
@@ -2840,7 +2832,7 @@ WorldGenerator.prototype.run = function() {
this.genMethod($globals.world.coreimpl.types.$index("EventLoop").getMember$1("run"));
}
this.corejs.useIsolates = true;
- var isolateMain = $globals.world.coreimpl.lookup("startRootIsolate", this.main.get$span());
+ var isolateMain = $globals.world.coreimpl.topType.resolveMember("startRootIsolate").members.$index((0));
var isolateMainTarget = new TypeValue($globals.world.coreimpl.topType, this.main.get$span());
mainCall = isolateMain.invoke(metaGen, null, isolateMainTarget, new Arguments(null, [this.main._get(metaGen, this.main.definition, null, false)]), false);
}
@@ -2859,12 +2851,12 @@ WorldGenerator.prototype.markTypeUsed = function(type) {
if (!type.get$isClass()) return;
type.markUsed();
type.isTested = true;
- type.isTested = !type.get$isTop() && !(type.get$isNative() && type.get$members().getValues().every((function (m) {
+ type.isTested = !type.get$isTop() && !(type.get$isNative() && type.get$members().getValues$0().every$1((function (m) {
return m.get$isStatic() && !m.get$isFactory();
})
));
- var members = ListFactory.ListFactory$from$factory(type.get$members().getValues());
- members.addAll$1(type.get$constructors().getValues());
+ var members = ListFactory.ListFactory$from$factory(type.get$members().getValues$0());
+ members.addAll$1(type.get$constructors().getValues$0());
type.get$factories().forEach((function (f) {
return members.add$1(f);
})
@@ -2885,10 +2877,10 @@ WorldGenerator.prototype.getAllTypes = function(libs) {
var types = [];
var seen = new HashSetImplementation();
for (var $$i = 0;$$i < libs.get$length(); $$i++) {
- var mainLib = libs[$$i];
+ var mainLib = libs.$index($$i);
var toCheck = DoubleLinkedQueue.DoubleLinkedQueue$from$factory([mainLib]);
while (!toCheck.isEmpty()) {
- var lib = toCheck.removeFirst();
+ var lib = toCheck.removeFirst$0();
if (seen.contains(lib)) continue;
seen.add(lib);
lib.get$imports().forEach$1((function (lib, toCheck, i) {
@@ -2917,7 +2909,7 @@ WorldGenerator.prototype.globalForConst = function(exp, dependencies) {
var key = exp.get$type().get$jsname() + ":" + exp.get$code();
var ret = this.globals.$index(key);
if (ret == null) {
- var ns = this.globals.get$length().toString$0();
+ var ns = this.globals.get$length().toString();
while (ns.get$length() < (4)) ns = "0" + ns;
var name = ("const$" + ns);
ret = new GlobalValue(exp.get$type(), name, true, null, name, exp, exp.span, dependencies);
@@ -2930,12 +2922,12 @@ WorldGenerator.prototype.writeTypes = function(lib) {
lib.isWritten = true;
var $$list = lib.imports;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var import_ = $$list[$$i];
+ var import_ = $$list.$index($$i);
this.writeTypes(import_.get$library());
}
for (var i = (0);
i < lib.sources.get$length(); i++) {
- lib.sources[i].set$orderInLibrary(i);
+ lib.sources.$index(i).set$orderInLibrary(i);
}
this.writer.comment(("// ********** Library " + lib.name + " **************"));
if (lib.get$isCore()) {
@@ -2944,27 +2936,21 @@ WorldGenerator.prototype.writeTypes = function(lib) {
}
var $$list = lib.natives;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var file = $$list[$$i];
+ var file = $$list.$index($$i);
var filename = basename(file.get$filename());
this.writer.comment(("// ********** Natives " + filename + " **************"));
this.writer.writeln(file.get$text());
}
lib.topType.markUsed();
- var orderedTypes = this._orderValues(lib.types);
- for (var $$i = orderedTypes.iterator$0(); $$i.hasNext$0(); ) {
- var type = $$i.next$0();
- if ((type.get$library().get$isDom() || type.get$isHiddenNativeType()) && type.get$isClass()) {
- type.markUsed$0();
- }
- }
- for (var $$i = orderedTypes.iterator$0(); $$i.hasNext$0(); ) {
- var type = $$i.next$0();
- if (type.get$isUsed() && type.get$isClass()) {
+ var $$list = this._orderValues(lib.types);
+ for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
+ var type = $$list.$index($$i);
+ if ((type.get$isUsed() || type.get$library().get$isDom() || type.get$isHiddenNativeType()) && type.get$isClass()) {
this.writeType(type);
if (type.get$isGeneric()) {
- var $$list = this._orderValues(type.get$_concreteTypes());
- for (var $i0 = 0;$i0 < $$list.get$length(); $i0++) {
- var ct = $$list[$i0];
+ var $list0 = this._orderValues(type.get$_concreteTypes());
+ for (var $i0 = 0;$i0 < $list0.get$length(); $i0++) {
+ var ct = $list0.$index($i0);
this.writeType(ct);
}
}
@@ -3099,7 +3085,7 @@ WorldGenerator.prototype.writeType = function(type) {
else {
standardConstructor.generator.writeDefinition(this.writer, null);
}
- var $$list = type.get$constructors().getValues();
+ var $$list = type.get$constructors().getValues$0();
for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
var c = $$i.next$0();
if (c.get$generator() != null && $ne(c, standardConstructor)) {
@@ -3113,7 +3099,7 @@ WorldGenerator.prototype.writeType = function(type) {
if (type.get$genericType()._concreteTypes != null) {
var $$list = this._orderValues(type.get$genericType()._concreteTypes);
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var ct = $$list[$$i];
+ var ct = $$list.$index($$i);
this._maybeIsTest(type, ct);
}
}
@@ -3128,7 +3114,7 @@ WorldGenerator.prototype.writeType = function(type) {
if (interface_.get$genericType().get$_concreteTypes() != null) {
var $$list = this._orderValues(interface_.get$genericType().get$_concreteTypes());
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var ct = $$list[$$i];
+ var ct = $$list.$index($$i);
this._maybeIsTest(type, ct);
}
}
@@ -3145,7 +3131,7 @@ WorldGenerator.prototype.writeType = function(type) {
type.get$factories().forEach(this.get$_writeMethod());
var $$list = this._orderValues(type.get$members());
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var member = $$list[$$i];
+ var member = $$list.$index($$i);
if ((member instanceof FieldMember)) {
this._writeField(member);
}
@@ -3159,7 +3145,7 @@ WorldGenerator.prototype.writeType = function(type) {
this._writeDynamicStubs(type);
}
WorldGenerator.prototype._typeNeedsHolderForStaticMethods = function(type) {
- var $$list = type.get$members().getValues();
+ var $$list = type.get$members().getValues$0();
for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
var member = $$i.next$0();
if (member.get$isMethod()) {
@@ -3181,7 +3167,7 @@ WorldGenerator.prototype._ensureInheritMembersHelper = function() {
WorldGenerator.prototype._writeDynamicStubs = function(type) {
var $$list = orderValuesByKeys(type.varStubs);
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var stub = $$list[$$i];
+ var stub = $$list.$index($$i);
if (!stub.get$isGenerated()) stub.generate$1(this.writer);
}
}
@@ -3238,7 +3224,7 @@ WorldGenerator.prototype.get$_writeMethod = function() {
WorldGenerator.prototype.writeGlobals = function() {
if (this.globals.get$length() > (0)) {
this.writer.comment("// ********** Globals **************");
- var list = this.globals.getValues();
+ var list = this.globals.getValues$0();
list.sort$1((function (a, b) {
return a.compareTo$1(b);
})
@@ -3282,15 +3268,15 @@ WorldGenerator.prototype.writeDynamicDispatchMetadata = function() {
seen.add$1(type);
var $$list = $this._orderCollectionValues(type.get$directSubtypes());
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var subtype = $$list[$$i];
- visit.call$1(subtype);
+ var subtype = $$list.$index($$i);
+ visit(subtype);
}
types.add$1(type);
}
var $$list = this._orderCollectionValues(this.typesWithDynamicDispatch);
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var type = $$list[$$i];
- visit.call$1(type);
+ var type = $$list.$index($$i);
+ visit(type);
}
var dispatchTypes = types.filter$1((function (type) {
return !type.get$directSubtypes().isEmpty$0() && $this.typesWithDynamicDispatch.contains(type);
@@ -3310,12 +3296,12 @@ WorldGenerator.prototype.writeDynamicDispatchMetadata = function() {
function walk(type) {
var $$list = $this._orderCollectionValues(type.get$directSubtypes());
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var subtype = $$list[$$i];
+ var subtype = $$list.$index($$i);
var tag = subtype.get$nativeName();
var existing = tagDefns.$index(tag);
if (existing == null) {
subtags.add$1(tag);
- walk.call$1(subtype);
+ walk(subtype);
}
else {
if (varDefns.containsKey$1(existing)) {
@@ -3331,7 +3317,7 @@ WorldGenerator.prototype.writeDynamicDispatchMetadata = function() {
}
}
}
- walk.call$1(type);
+ walk(type);
var constantPart = ("'" + Strings.join(subtags, "|") + "'");
if ($ne(constantPart, "''")) expressions.add$1(constantPart);
var expression;
@@ -3345,7 +3331,7 @@ WorldGenerator.prototype.writeDynamicDispatchMetadata = function() {
}
for (var $$i = dispatchTypes.iterator$0(); $$i.hasNext$0(); ) {
var type = $$i.next$0();
- tagDefns.$setindex(type.get$nativeName(), makeExpression.call$1(type));
+ tagDefns.$setindex(type.get$nativeName(), makeExpression(type));
}
if (!tagDefns.isEmpty$0()) {
this.writer.enterBlock("(function(){");
@@ -3430,7 +3416,7 @@ MethodGenerator.prototype.getTemp = function(value) {
MethodGenerator.prototype.forceTemp = function(value) {
var name;
if (this._freeTemps.get$length() > (0)) {
- name = this._freeTemps.removeLast();
+ name = this._freeTemps.removeLast$0();
}
else {
name = "$" + this._usedTemps.get$length();
@@ -3447,7 +3433,12 @@ MethodGenerator.prototype.assignTemp = function(tmp, v) {
}
}
MethodGenerator.prototype.freeTemp = function(value) {
-
+ if (this._usedTemps.remove(value.code)) {
+ this._freeTemps.add(value.code);
+ }
+ else {
+ $globals.world.internalError(("tried to free unused value or non-temp \"" + value.code + "\""));
+ }
}
MethodGenerator.prototype.run = function() {
if (this.method.isGenerated) return;
@@ -3464,7 +3455,7 @@ MethodGenerator.prototype.run = function() {
var values = [];
var $$list = this.method.get$parameters();
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var p = $$list[$$i];
+ var p = $$list.$index($$i);
values.add$1(new Value(p.get$type(), p.get$name(), null));
}
var args = new Arguments(null, values);
@@ -3582,7 +3573,7 @@ MethodGenerator.prototype._provideOptionalParamInfo = function(defWriter) {
meth.genParameterValues();
var $$list = meth.parameters;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var param = $$list[$$i];
+ var param = $$list.$index($$i);
if (param.get$isOptional()) {
optNames.add$1(param.get$name());
optValues.add$1(MethodGenerator._escapeString(param.get$value().get$code()));
@@ -3623,10 +3614,10 @@ MethodGenerator.prototype.evalBody = function(newObject, args) {
this._paramCode = [];
for (var i = (0);
i < this.method.get$parameters().get$length(); i++) {
- var p = this.method.get$parameters()[i];
+ var p = this.method.get$parameters().$index(i);
var currentArg = null;
if (i < args.get$bareCount()) {
- currentArg = args.values[i];
+ currentArg = args.values.$index(i);
}
else {
currentArg = args.getValue(p.get$name());
@@ -3769,7 +3760,7 @@ MethodGenerator.prototype._makeArgs = function(arguments) {
var args = [];
var seenLabel = false;
for (var $$i = 0;$$i < arguments.get$length(); $$i++) {
- var arg = arguments[$$i];
+ var arg = arguments.$index($$i);
if (arg.get$label() != null) {
seenLabel = true;
}
@@ -3796,7 +3787,7 @@ MethodGenerator.prototype.visitStatementsInBlock = function(body) {
var block = body;
var $$list = block.body;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var stmt = $$list[$$i];
+ var stmt = $$list.$index($$i);
stmt.visit$1(this);
}
}
@@ -3813,7 +3804,7 @@ MethodGenerator.prototype._popBlock = function(node) {
function spanOf(n) {
return n != null ? n.get$span() : null;
}
- $globals.world.internalError(("scope mismatch. Trying to pop \"" + node + "\" but found ") + (" \"" + this._scope.node + "\""), spanOf.call$1(node), spanOf.call$1(this._scope.node));
+ $globals.world.internalError(("scope mismatch. Trying to pop \"" + node + "\" but found ") + (" \"" + this._scope.node + "\""), spanOf(node), spanOf(this._scope.node));
}
this._scope = this._scope.parent;
}
@@ -3823,7 +3814,7 @@ MethodGenerator.prototype._visitLoop = function(node, visitBody) {
}
else {
this._pushBlock(node, true);
- visitBody.call$0();
+ visitBody();
this._popBlock(node);
}
}
@@ -3840,7 +3831,7 @@ MethodGenerator.prototype._loopFixedPoint = function(node, visitBody) {
if (tries++ >= $globals.options.maxInferenceIterations) {
this._scope.inferTypes = false;
}
- visitBody.call$0();
+ visitBody();
this._popBlock(node);
if (!this._scope.inferTypes || !this._scope.unionWith(s)) {
break;
@@ -3892,7 +3883,7 @@ MethodGenerator.prototype.visitDietStatement = function(node) {
}
MethodGenerator.prototype.visitVariableDefinition = function(node) {
var isFinal = false;
- if (node.modifiers != null && $eq(node.modifiers[(0)].get$kind(), (99))) {
+ if (node.modifiers != null && $eq(node.modifiers.$index((0)).get$kind(), (99))) {
isFinal = true;
}
this.writer.write("var ");
@@ -3902,12 +3893,12 @@ MethodGenerator.prototype.visitVariableDefinition = function(node) {
if (i > (0)) {
this.writer.write(", ");
}
- var name = node.names[i].get$name();
- var value = this.visitValue(node.values[i]);
+ var name = node.names.$index(i).get$name();
+ var value = this.visitValue(node.values.$index(i));
if (isFinal && value == null) {
$globals.world.error("no value specified for final variable", node.span);
}
- var val = this._scope.create(name, type, node.names[i].get$span(), isFinal, false);
+ var val = this._scope.create(name, type, node.names.$index(i).get$span(), isFinal, false);
if (value == null) {
if (this._scope.reentrant) {
this.writer.write(("" + val.get$code() + " = null"));
@@ -4049,7 +4040,7 @@ MethodGenerator.prototype.visitForStatement = function(node) {
var needsComma = false;
var $$list = node.step;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var s = $$list[$$i];
+ var s = $$list.$index($$i);
if (needsComma) $this.writer.write(", ");
var sv = $this.visitVoid(s);
$this.writer.write(sv.get$code());
@@ -4121,7 +4112,7 @@ MethodGenerator.prototype.visitTryStatement = function(node) {
this.visitStatementsInBlock(node.body);
this._popBlock(node.body);
if (node.catches.get$length() == (1)) {
- var catch_ = node.catches[(0)];
+ var catch_ = node.catches.$index((0));
this._pushBlock(catch_, false);
var exType = this.method.resolveType$2(catch_.get$exception().get$type(), false);
var ex = this._scope.declare(catch_.get$exception());
@@ -4136,7 +4127,7 @@ MethodGenerator.prototype.visitTryStatement = function(node) {
var test = ex.instanceOf$3$isTrue$forceCheck(this, exType, catch_.get$exception().get$span(), false, true);
this.writer.writeln(("if (" + test.get$code() + ") throw " + ex.get$code() + ";"));
}
- this.visitStatementsInBlock(node.catches[(0)].get$body());
+ this.visitStatementsInBlock(node.catches.$index((0)).get$body());
this._popBlock(catch_);
}
else if (node.catches.get$length() > (0)) {
@@ -4156,7 +4147,7 @@ MethodGenerator.prototype.visitTryStatement = function(node) {
var needsRethrow = true;
for (var i = (0);
i < node.catches.get$length(); i++) {
- var catch_ = node.catches[i];
+ var catch_ = node.catches.$index(i);
this._pushBlock(catch_, false);
var tmpType = this.method.resolveType$2(catch_.get$exception().get$type(), false);
var tmp = this._scope.declare(catch_.get$exception());
@@ -4180,8 +4171,8 @@ MethodGenerator.prototype.visitTryStatement = function(node) {
this.visitStatementsInBlock(catch_.get$body());
this._popBlock(catch_);
if (tmpType.get$isVarOrObject()) {
- if ($add(i, (1)) < node.catches.get$length()) {
- $globals.world.error("Unreachable catch clause", node.catches[$add(i, (1))].get$span());
+ if (i + (1) < node.catches.get$length()) {
+ $globals.world.error("Unreachable catch clause", node.catches.$index(i + (1)).get$span());
}
if (i > (0)) {
this.writer.exitBlock("}");
@@ -4211,7 +4202,7 @@ MethodGenerator.prototype.visitSwitchStatement = function(node) {
this.writer.enterBlock(("switch (" + test.get$code() + ") {"));
var $$list = node.cases;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var case_ = $$list[$$i];
+ var case_ = $$list.$index($$i);
if (case_.get$label() != null) {
$globals.world.error("unimplemented: labeled case statement", case_.get$span());
}
@@ -4232,7 +4223,7 @@ MethodGenerator.prototype.visitSwitchStatement = function(node) {
}
this.writer.enterBlock("");
var caseExits = this._visitAllStatements(case_.get$statements(), false);
- if ($ne(case_, node.cases[node.cases.get$length() - (1)]) && !caseExits) {
+ if ($ne(case_, node.cases.$index(node.cases.get$length() - (1))) && !caseExits) {
var span = case_.get$statements().$index(case_.get$statements().get$length() - (1)).get$span();
this.writer.writeln("$throw(new FallThroughError());");
$globals.world.gen.corejs.useThrow = true;
@@ -4249,7 +4240,7 @@ MethodGenerator.prototype._visitAllStatements = function(statementList, exits) {
var stmt = statementList.$index(i);
exits = stmt.visit$1(this);
if ($ne(stmt, statementList.$index(statementList.get$length() - (1))) && exits) {
- $globals.world.warning("unreachable code", statementList.$index($add(i, (1))).get$span());
+ $globals.world.warning("unreachable code", statementList.$index(i + (1)).get$span());
}
}
return exits;
@@ -4385,75 +4376,141 @@ MethodGenerator.prototype.visitBinaryExpression = function(node, isVoid) {
return x.binop$4(kind, y, this, node);
}
else if (($ne(assignKind, (0))) && this._expressionNeedsParens(node.y)) {
- return this._visitAssign(assignKind, node.x, new ParenExpression(node.y, node.y.span), node, isVoid ? (1) : (2));
+ return this._visitAssign(assignKind, node.x, new ParenExpression(node.y, node.y.span), node, to$call$1(null), isVoid);
}
else {
- return this._visitAssign(assignKind, node.x, node.y, node, isVoid ? (1) : (2));
+ return this._visitAssign(assignKind, node.x, node.y, node, to$call$1(null), isVoid);
}
}
-MethodGenerator.prototype._visitAssign = function(kind, xn, yn, position, returnKind) {
+MethodGenerator.prototype._visitAssign = function(kind, xn, yn, position, captureOriginal, isVoid) {
+ if (captureOriginal == null) {
+ captureOriginal = (function (x) {
+ return x;
+ })
+ ;
+ }
if ((xn instanceof VarExpression)) {
- return this._visitVarAssign(kind, xn, yn, position, returnKind);
+ return this._visitVarAssign(kind, xn, yn, position, captureOriginal);
}
else if ((xn instanceof IndexExpression)) {
- return this._visitIndexAssign(kind, xn, yn, position, returnKind);
+ return this._visitIndexAssign(kind, xn, yn, position, captureOriginal, isVoid);
}
else if ((xn instanceof DotExpression)) {
- return this._visitDotAssign(kind, xn, yn, position, returnKind);
+ return this._visitDotAssign(kind, xn, yn, position, captureOriginal);
}
else {
$globals.world.error("illegal lhs", xn.span);
}
}
-MethodGenerator.prototype._visitVarAssign = function(kind, xn, yn, position, returnKind) {
+MethodGenerator.prototype._visitVarAssign = function(kind, xn, yn, position, captureOriginal) {
var name = xn.name.name;
var x = this._scope.lookup(name);
var y = this.visitValue(yn);
if (x != null) {
y = y.convertTo$2(this, x.get$staticType());
this._scope.inferAssign(name, Value.union(x, y));
- if (x.get$isFinal()) {
- $globals.world.error(("final variable \"" + x.get$code() + "\" is not assignable"), position.span);
- }
- if (kind == (0)) {
- return new Value(y.get$type(), ("" + x.get$code() + " = " + y.get$code()), position.span);
- }
- else if (x.get$type().get$isNum() && y.get$type().get$isNum() && (kind != (46))) {
- if (returnKind == (3)) {
- $globals.world.internalError("should not be here", position.span);
+ }
+ else {
+ var members = this.method.declaringType.resolveMember(name);
+ x = this._makeThisOrType(position.span);
+ if (members != null) {
+ if ($globals.options.forceDynamic && !members.get$isStatic()) {
+ members = this.findMembers(xn.name.name);
+ }
+ if (kind == (0)) {
+ return x.set_$4(this, name, position, y);
+ }
+ else if (!members.get$treatAsField() || members.get$containsMethods()) {
+ var right = x.get_$3(this, name, position);
+ right = captureOriginal(right);
+ y = right.invoke$4(this, TokenKind.binaryMethodName(kind), position, new Arguments(null, [y]));
+ return x.set_$4(this, name, position, y);
+ }
+ else {
+ x = x.get_$3(this, name, position);
}
- var op = TokenKind.kindToString(kind);
- return new Value(y.get$type(), ("" + x.get$code() + " " + op + "= " + y.get$code()), position.span);
}
else {
- var right = x;
- y = right.binop$4(kind, y, this, position);
- if (returnKind == (3)) {
- var tmp = this.forceTemp(x);
- var ret = new Value(x.get$type(), ("(" + tmp.get$code() + " = " + x.get$code() + ", " + x.get$code() + " = " + y.get$code() + ", " + tmp.get$code() + ")"), position.span);
- this.freeTemp(tmp);
- return ret;
+ var member = this.get$library().lookup(name, xn.name.span);
+ if (member == null) {
+ $globals.world.warning(("can not resolve " + name), xn.span);
+ return this._makeMissingValue(name);
+ }
+ members = new MemberSet(member, false);
+ if (!members.get$treatAsField() || members.get$containsMethods()) {
+ if (kind != (0)) {
+ var right = members._get$3(this, position, x);
+ right = captureOriginal(right);
+ y = right.invoke$4(this, TokenKind.binaryMethodName(kind), position, new Arguments(null, [y]));
+ }
+ return members._set$4(this, position, x, y);
}
else {
- return new Value(x.get$type(), ("" + x.get$code() + " = " + y.get$code()), position.span);
+ x = members._get$3(this, position, x);
}
}
+ y = y.convertTo$2(this, x.get$staticType());
+ }
+ if (x.get$isFinal()) {
+ $globals.world.error(("final variable \"" + x.get$code() + "\" is not assignable"), position.span);
+ }
+ if (kind == (0)) {
+ x = captureOriginal(x);
+ return new Value(y.get$type(), ("" + x.get$code() + " = " + y.get$code()), position.span);
+ }
+ else if (x.get$type().get$isNum() && y.get$type().get$isNum() && (kind != (46))) {
+ x = captureOriginal(x);
+ var op = TokenKind.kindToString(kind);
+ return new Value(y.get$type(), ("" + x.get$code() + " " + op + "= " + y.get$code()), position.span);
}
else {
- x = this._makeThisOrType(position.span);
- return x.set_$4$kind$returnKind(this, name, position, y, kind, returnKind);
+ var right = x;
+ right = captureOriginal(right);
+ y = right.invoke$4(this, TokenKind.binaryMethodName(kind), position, new Arguments(null, [y]));
+ return new Value(y.get$type(), ("" + x.get$code() + " = " + y.get$code()), position.span);
}
}
-MethodGenerator.prototype._visitIndexAssign = function(kind, xn, yn, position, returnKind) {
+MethodGenerator.prototype._visitIndexAssign = function(kind, xn, yn, position, captureOriginal, isVoid) {
var target = this.visitValue(xn.target);
+ var tmptarget = target;
+ if (kind != (0)) tmptarget = this.getTemp(target);
var index = this.visitValue(xn.index);
+ var tmpindex = index;
+ if (kind != (0)) tmpindex = this.getTemp(index);
var y = this.visitValue(yn);
- return target.setIndex$4$kind$returnKind(this, index, position, y, kind, returnKind);
+ if (kind != (0)) {
+ index = this.assignTemp(tmpindex, index);
+ var right = tmptarget.invoke$4(this, ":index", position, new Arguments(null, [tmpindex]));
+ right = captureOriginal(right);
+ y = right.invoke$4(this, TokenKind.binaryMethodName(kind), position, new Arguments(null, [y]));
+ }
+ var tmpy = null;
+ if (!isVoid) {
+ tmpy = this.getTemp(y);
+ y = this.assignTemp(tmpy, y);
+ }
+ var ret = this.assignTemp(tmptarget, target).invoke(this, ":setindex", position, new Arguments(null, [index, y]), false);
+ if (tmpy != null) {
+ ret = new Value(ret.get$type(), ("(" + ret.get$code() + ", " + tmpy.get$code() + ")"), ret.get$span());
+ if ($ne(tmpy, y)) this.freeTemp(tmpy);
+ }
+ if ($ne(tmptarget, target)) this.freeTemp(tmptarget);
+ if ($ne(tmpindex, index)) this.freeTemp(tmpindex);
+ return ret;
}
-MethodGenerator.prototype._visitDotAssign = function(kind, xn, yn, position, returnKind) {
+MethodGenerator.prototype._visitDotAssign = function(kind, xn, yn, position, captureOriginal) {
var target = xn.self.visit(this);
var y = this.visitValue(yn);
- return target.set_$4$kind$returnKind(this, xn.name.name, xn.name, y, kind, returnKind);
+ var tmptarget = target;
+ if (kind != (0)) {
+ tmptarget = this.getTemp(target);
+ var right = tmptarget.get_$3(this, xn.name.name, xn.name);
+ right = captureOriginal(right);
+ y = right.invoke$4(this, TokenKind.binaryMethodName(kind), position, new Arguments(null, [y]));
+ }
+ var ret = this.assignTemp(tmptarget, target).set_(this, xn.name.name, xn.name, y, false);
+ if ($ne(tmptarget, target)) this.freeTemp(tmptarget);
+ return ret;
}
MethodGenerator.prototype.visitUnaryExpression = function(node) {
var value = this.visitValue(node.self);
@@ -4467,7 +4524,7 @@ MethodGenerator.prototype.visitUnaryExpression = function(node) {
else {
var kind = ((16) == node.op.kind ? (42) : (43));
var operand = new LiteralExpression(Value.fromInt((1), node.span), node.span);
- var assignValue = this._visitAssign(kind, node.self, operand, node, (2));
+ var assignValue = this._visitAssign(kind, node.self, operand, node, to$call$1(null), false);
return new Value(assignValue.get$type(), ("(" + assignValue.get$code() + ")"), node.span);
}
@@ -4481,13 +4538,31 @@ MethodGenerator.prototype.visitAwaitExpression = function(node) {
$globals.world.internalError("Await expressions should have been eliminated before code generation", node.span);
}
MethodGenerator.prototype.visitPostfixExpression = function(node, isVoid) {
+ var $this = this; // closure support
var value = this.visitValue(node.body);
if (value.get$type().get$isNum() && !value.get$isFinal()) {
return new Value(value.get$type(), ("" + value.get$code() + node.op), node.span);
}
var kind = ((16) == node.op.kind) ? (42) : (43);
var operand = new LiteralExpression(Value.fromInt((1), node.span), node.span);
- var ret = this._visitAssign(kind, node.body, operand, node, isVoid ? (1) : (3));
+ var tmpleft = null, left = null;
+ var ret = this._visitAssign(kind, node.body, operand, node, (function (l) {
+ if (isVoid) {
+ return l;
+ }
+ else {
+ left = l;
+ tmpleft = $this.forceTemp(l);
+ return $this.assignTemp(tmpleft, left);
+ }
+ })
+ , false);
+ if (tmpleft != null) {
+ ret = new Value(ret.get$type(), ("(" + ret.get$code() + ", " + tmpleft.get$code() + ")"), node.span);
+ }
+ if ($ne(tmpleft, left)) {
+ this.freeTemp(tmpleft);
+ }
return ret;
}
MethodGenerator.prototype.visitNewExpression = function(node) {
@@ -4526,7 +4601,7 @@ MethodGenerator.prototype.visitNewExpression = function(node) {
}
var $$list = node.arguments;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var arg = $$list[$$i];
+ var arg = $$list.$index($$i);
if (!this.visitValue(arg.get$value()).get$isConst()) {
$globals.world.error("const constructor expects const arguments", arg.get$span());
}
@@ -4548,7 +4623,7 @@ MethodGenerator.prototype.visitListExpression = function(node) {
}
var $$list = node.values;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var item = $$list[$$i];
+ var item = $$list.$index($$i);
var arg = this.visitTypedValue(item, type);
argValues.add$1(arg);
if (node.isConst && !arg.get$isConst()) {
@@ -4585,12 +4660,12 @@ MethodGenerator.prototype.visitMapExpression = function(node) {
}
for (var i = (0);
i < node.items.get$length(); i += (2)) {
- var key = this.visitTypedValue(node.items[i], keyType);
+ var key = this.visitTypedValue(node.items.$index(i), keyType);
if (node.isConst && !key.get$isConst()) {
$globals.world.error("const map can only contain const keys", key.get$span());
}
values.add$1(key);
- var value = this.visitTypedValue(node.items[$add(i, (1))], valueType);
+ var value = this.visitTypedValue(node.items.$index(i + (1)), valueType);
if (node.isConst && !value.get$isConst()) {
$globals.world.error("const map can only contain const values", value.get$span());
}
@@ -4654,7 +4729,7 @@ MethodGenerator.prototype.visitStringInterpExpression = function(node) {
var items = [];
var $$list = node.pieces;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var item = $$list[$$i];
+ var item = $$list.$index($$i);
var val = this.visitValue(item);
val.invoke$4(this, "toString", item, Arguments.get$EMPTY());
var code = val.get$code();
@@ -4673,37 +4748,12 @@ MethodGenerator.prototype._pushBlock$1 = function($0) {
};
MethodGenerator.prototype.evalBody$2 = MethodGenerator.prototype.evalBody;
MethodGenerator.prototype.run$0 = MethodGenerator.prototype.run;
-MethodGenerator.prototype.visitAssertStatement$1 = MethodGenerator.prototype.visitAssertStatement;
MethodGenerator.prototype.visitBinaryExpression$1 = function($0) {
return this.visitBinaryExpression($0, false);
};
-MethodGenerator.prototype.visitBlockStatement$1 = MethodGenerator.prototype.visitBlockStatement;
-MethodGenerator.prototype.visitBreakStatement$1 = MethodGenerator.prototype.visitBreakStatement;
-MethodGenerator.prototype.visitContinueStatement$1 = MethodGenerator.prototype.visitContinueStatement;
-MethodGenerator.prototype.visitDeclaredIdentifier$1 = MethodGenerator.prototype.visitDeclaredIdentifier;
-MethodGenerator.prototype.visitDietStatement$1 = MethodGenerator.prototype.visitDietStatement;
-MethodGenerator.prototype.visitDoStatement$1 = MethodGenerator.prototype.visitDoStatement;
-MethodGenerator.prototype.visitEmptyStatement$1 = MethodGenerator.prototype.visitEmptyStatement;
-MethodGenerator.prototype.visitExpressionStatement$1 = MethodGenerator.prototype.visitExpressionStatement;
-MethodGenerator.prototype.visitForInStatement$1 = MethodGenerator.prototype.visitForInStatement;
-MethodGenerator.prototype.visitForStatement$1 = MethodGenerator.prototype.visitForStatement;
-MethodGenerator.prototype.visitFunctionDefinition$1 = MethodGenerator.prototype.visitFunctionDefinition;
-MethodGenerator.prototype.visitIfStatement$1 = MethodGenerator.prototype.visitIfStatement;
-MethodGenerator.prototype.visitIndexExpression$1 = MethodGenerator.prototype.visitIndexExpression;
-MethodGenerator.prototype.visitLabeledStatement$1 = MethodGenerator.prototype.visitLabeledStatement;
-MethodGenerator.prototype.visitLambdaExpression$1 = MethodGenerator.prototype.visitLambdaExpression;
-MethodGenerator.prototype.visitLiteralExpression$1 = MethodGenerator.prototype.visitLiteralExpression;
-MethodGenerator.prototype.visitMapExpression$1 = MethodGenerator.prototype.visitMapExpression;
-MethodGenerator.prototype.visitNewExpression$1 = MethodGenerator.prototype.visitNewExpression;
MethodGenerator.prototype.visitPostfixExpression$1 = function($0) {
return this.visitPostfixExpression($0, false);
};
-MethodGenerator.prototype.visitReturnStatement$1 = MethodGenerator.prototype.visitReturnStatement;
-MethodGenerator.prototype.visitSwitchStatement$1 = MethodGenerator.prototype.visitSwitchStatement;
-MethodGenerator.prototype.visitThrowStatement$1 = MethodGenerator.prototype.visitThrowStatement;
-MethodGenerator.prototype.visitTryStatement$1 = MethodGenerator.prototype.visitTryStatement;
-MethodGenerator.prototype.visitVariableDefinition$1 = MethodGenerator.prototype.visitVariableDefinition;
-MethodGenerator.prototype.visitWhileStatement$1 = MethodGenerator.prototype.visitWhileStatement;
MethodGenerator.prototype.writeDefinition$2 = MethodGenerator.prototype.writeDefinition;
// ********** Code for Arguments **************
function Arguments(nodes, values) {
@@ -4734,7 +4784,7 @@ Arguments.prototype.get$length = function() {
return this.values.get$length();
}
Arguments.prototype.getName = function(i) {
- return this.nodes[i].get$label().get$name();
+ return this.nodes.$index(i).get$label().get$name();
}
Arguments.prototype.getIndexOfName = function(name) {
for (var i = this.get$bareCount();
@@ -4747,7 +4797,7 @@ Arguments.prototype.getIndexOfName = function(name) {
}
Arguments.prototype.getValue = function(name) {
var i = this.getIndexOfName(name);
- return i >= (0) ? this.values[i] : null;
+ return i >= (0) ? this.values.$index(i) : null;
}
Arguments.prototype.get$bareCount = function() {
if (this._bareCount == null) {
@@ -4755,7 +4805,7 @@ Arguments.prototype.get$bareCount = function() {
if (this.nodes != null) {
for (var i = (0);
i < this.nodes.get$length(); i++) {
- if (this.nodes[i].get$label() != null) {
+ if (this.nodes.$index(i).get$label() != null) {
this._bareCount = i;
break;
}
@@ -4768,14 +4818,14 @@ Arguments.prototype.getCode = function() {
var argsCode = [];
for (var i = (0);
i < this.get$length(); i++) {
- argsCode.add$1(this.values[i].get$code());
+ argsCode.add$1(this.values.$index(i).get$code());
}
Arguments.removeTrailingNulls(argsCode);
return Strings.join(argsCode, ", ");
}
Arguments.removeTrailingNulls = function(argsCode) {
- while (argsCode.get$length() > (0) && $eq(argsCode.last(), "null")) {
- argsCode.removeLast();
+ while (argsCode.get$length() > (0) && $eq(argsCode.last$0(), "null")) {
+ argsCode.removeLast$0();
}
}
Arguments.prototype.getNames = function() {
@@ -4800,8 +4850,6 @@ Arguments.prototype.toCallStubArgs = function() {
}
return new Arguments(this.nodes, result);
}
-// ********** Code for ReturnKind **************
-function ReturnKind() {}
// ********** Code for LibraryImport **************
function LibraryImport(library, prefix, span) {
this.library = library;
@@ -4901,49 +4949,6 @@ Member.prototype.get$definition = function() {
Member.prototype.get$parameters = function() {
return [];
}
-Member.prototype.get$preciseMemberSet = function() {
- if (this._preciseMemberSet == null) {
- this._preciseMemberSet = new MemberSet(this, false);
- }
- return this._preciseMemberSet;
-}
-Member.prototype.get$potentialMemberSet = function() {
- if (this._potentialMemberSet == null) {
- if (this.declaringType.get$isObject()) {
- this._potentialMemberSet = $globals.world._members.$index(this.name);
- return this._potentialMemberSet;
- }
- var mems = new HashSetImplementation();
- if (this.declaringType.get$isClass()) mems.add$1(this);
- var $$list = this.declaringType.get$subtypes();
- for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
- var subtype = $$i.next$0();
- if (!subtype.get$isClass()) continue;
- var mem = subtype.get$members().$index(this.name);
- if (mem != null) {
- mems.add$1(mem);
- }
- else if (!this.declaringType.get$isClass()) {
- mem = subtype.getMember$1(this.name);
- if (mem != null) {
- mems.add$1(mem);
- }
- }
- }
- if ($ne(mems.get$length(), (0))) {
- for (var $$i = mems.iterator$0(); $$i.hasNext$0(); ) {
- var mem = $$i.next$0();
- if (this._potentialMemberSet == null) {
- this._potentialMemberSet = new MemberSet(mem, false);
- }
- else {
- this._potentialMemberSet.add(mem);
- }
- }
- }
- }
- return this._potentialMemberSet;
-}
Member.prototype.canInvoke = function(context, args) {
return this.get$canGet() && new Value(this.get$returnType(), null, null).canInvoke(context, ":call", args);
}
@@ -4982,6 +4987,7 @@ Member.prototype.$eq = function(other) {
Member.prototype._get$3 = Member.prototype._get;
Member.prototype._get$3$isDynamic = Member.prototype._get;
Member.prototype._get$4 = Member.prototype._get;
+Member.prototype._set$4 = Member.prototype._set;
Member.prototype._set$4$isDynamic = Member.prototype._set;
Member.prototype._set$5 = Member.prototype._set;
Member.prototype.canInvoke$2 = Member.prototype.canInvoke;
@@ -5080,7 +5086,7 @@ Library.prototype._addMember = function(member) {
}
var mset = this._privateMembers.$index(member.name);
if (mset == null) {
- var $$list = $globals.world.libraries.getValues();
+ var $$list = $globals.world.libraries.getValues$0();
for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
var lib = $$i.next$0();
if (lib.get$_privateMembers().containsKey$1(member.get$jsname())) {
@@ -5134,7 +5140,7 @@ Library.prototype.findType = function(type) {
if (!result.get$isTop()) {
return null;
}
- return result.get$library().findTypeByName(type.names[(0)].get$name());
+ return result.get$library().findTypeByName(type.names.$index((0)).get$name());
}
return result;
}
@@ -5142,7 +5148,7 @@ Library.prototype.findTypeByName = function(name) {
var ret = this.types.$index(name);
var $$list = this.imports;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var imported = $$list[$$i];
+ var imported = $$list.$index($$i);
var newRet = null;
if (imported.get$prefix() == null) {
newRet = imported.get$library().get$types().$index(name);
@@ -5206,7 +5212,7 @@ Library.prototype.resolve = function() {
}
}
this._jsname = this.name.replaceAll(".", "_").replaceAll(":", "_").replaceAll(" ", "_");
- var $$list = this.types.getValues();
+ var $$list = this.types.getValues$0();
for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
var type = $$i.next$0();
type.resolve$0();
@@ -5229,13 +5235,13 @@ Library.prototype._addTopName = function(name, member, localSpan) {
}
}
Library.prototype._addTopNames = function(lib) {
- var $$list = lib.topType.members.getValues();
+ var $$list = lib.topType.members.getValues$0();
for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
var member = $$i.next$0();
if (member.get$isPrivate() && $ne(lib, this)) continue;
this._addTopName(member.get$name(), member);
}
- var $$list = lib.types.getValues();
+ var $$list = lib.types.getValues$0();
for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
var type = $$i.next$0();
if (!type.get$isTop()) {
@@ -5249,7 +5255,7 @@ Library.prototype.postResolveChecks = function() {
this._addTopNames(this);
var $$list = this.imports;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var imported = $$list[$$i];
+ var imported = $$list.$index($$i);
if (imported.get$prefix() == null) {
this._addTopNames(imported.get$library());
}
@@ -5420,7 +5426,7 @@ _LibraryVisitor.prototype.getFirstStringArg = function(node) {
if (node.arguments.get$length() < (1)) {
$globals.world.error(("expected at least one argument but found " + node.arguments.get$length()), node.span);
}
- var arg = node.arguments[(0)];
+ var arg = node.arguments.$index((0));
if (arg.get$label() != null) {
$globals.world.error("label not allowed for directive", node.span);
}
@@ -5454,7 +5460,7 @@ _LibraryVisitor.prototype.visitTypeDefinition = function(node) {
this.currentType = this.library.addType(node.name.name, node, node.isClass);
var $$list = node.body;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var member = $$list[$$i];
+ var member = $$list.$index($$i);
member.visit$1(this);
}
this.currentType = oldType;
@@ -5470,8 +5476,6 @@ _LibraryVisitor.prototype.visitFunctionTypeDefinition = function(node) {
type.addMethod$2(":call", node.func);
}
_LibraryVisitor.prototype.addSource$1 = _LibraryVisitor.prototype.addSource;
-_LibraryVisitor.prototype.visitFunctionDefinition$1 = _LibraryVisitor.prototype.visitFunctionDefinition;
-_LibraryVisitor.prototype.visitVariableDefinition$1 = _LibraryVisitor.prototype.visitVariableDefinition;
// ********** Code for Parameter **************
function Parameter(definition, method) {
this.method = method;
@@ -5582,6 +5586,9 @@ TypeMember.prototype._get$3 = function($0, $1, $2) {
};
TypeMember.prototype._get$3$isDynamic = TypeMember.prototype._get;
TypeMember.prototype._get$4 = TypeMember.prototype._get;
+TypeMember.prototype._set$4 = function($0, $1, $2, $3) {
+ return this._set($0, $1, $2, $3, false);
+};
TypeMember.prototype._set$4$isDynamic = TypeMember.prototype._set;
TypeMember.prototype._set$5 = TypeMember.prototype._set;
TypeMember.prototype.canInvoke$2 = TypeMember.prototype.canInvoke;
@@ -5646,7 +5653,7 @@ FieldMember.prototype.resolve = function() {
if (this.definition.modifiers != null) {
var $$list = this.definition.modifiers;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var mod = $$list[$$i];
+ var mod = $$list.$index($$i);
if ($eq(mod.get$kind(), (85))) {
if (this.isStatic) {
$globals.world.error("duplicate static modifier", mod.get$span());
@@ -5664,7 +5671,7 @@ FieldMember.prototype.resolve = function() {
}
}
}
- this.type = this.resolveType$2(this.definition.type, false);
+ this.type = this.resolveType(this.definition.type, false);
if (this.isStatic && !this.get$isFactory() && this.type.get$hasTypeParams()) {
$globals.world.error("using type parameter in static context", this.definition.type.span);
}
@@ -5752,6 +5759,9 @@ FieldMember.prototype._get$3 = function($0, $1, $2) {
};
FieldMember.prototype._get$3$isDynamic = FieldMember.prototype._get;
FieldMember.prototype._get$4 = FieldMember.prototype._get;
+FieldMember.prototype._set$4 = function($0, $1, $2, $3) {
+ return this._set($0, $1, $2, $3, false);
+};
FieldMember.prototype._set$4$isDynamic = FieldMember.prototype._set;
FieldMember.prototype._set$5 = FieldMember.prototype._set;
FieldMember.prototype.computeValue$0 = FieldMember.prototype.computeValue;
@@ -5864,6 +5874,9 @@ PropertyMember.prototype._get$3 = function($0, $1, $2) {
};
PropertyMember.prototype._get$3$isDynamic = PropertyMember.prototype._get;
PropertyMember.prototype._get$4 = PropertyMember.prototype._get;
+PropertyMember.prototype._set$4 = function($0, $1, $2, $3) {
+ return this._set($0, $1, $2, $3, false);
+};
PropertyMember.prototype._set$4$isDynamic = PropertyMember.prototype._set;
PropertyMember.prototype._set$5 = PropertyMember.prototype._set;
PropertyMember.prototype.provideFieldSyntax$0 = PropertyMember.prototype.provideFieldSyntax;
@@ -5878,7 +5891,7 @@ function ConcreteMember(name, declaringType, baseMember) {
this.returnType = this.baseMember.get$returnType().resolveTypeParams(declaringType);
var $$list = this.baseMember.get$parameters();
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var p = $$list[$$i];
+ var p = $$list.$index($$i);
var newType = p.get$type().resolveTypeParams$1(declaringType);
if ($ne(newType, p.get$type())) {
this.parameters.add(p.copyWithNewType$2(this, newType));
@@ -5999,6 +6012,9 @@ ConcreteMember.prototype._get$3 = function($0, $1, $2) {
};
ConcreteMember.prototype._get$3$isDynamic = ConcreteMember.prototype._get;
ConcreteMember.prototype._get$4 = ConcreteMember.prototype._get;
+ConcreteMember.prototype._set$4 = function($0, $1, $2, $3) {
+ return this._set($0, $1, $2, $3, false);
+};
ConcreteMember.prototype._set$4$isDynamic = ConcreteMember.prototype._set;
ConcreteMember.prototype._set$5 = ConcreteMember.prototype._set;
ConcreteMember.prototype.canInvoke$2 = ConcreteMember.prototype.canInvoke;
@@ -6102,7 +6118,7 @@ MethodMember.prototype.canInvoke = function(context, args) {
if (bareCount != args.get$length()) return false;
}
else {
- if (!this.parameters[bareCount].get$isOptional()) return false;
+ if (!this.parameters.$index(bareCount).get$isOptional()) return false;
for (var i = bareCount;
i < args.get$length(); i++) {
if (this.indexOfParameter(args.getName(i)) < (0)) {
@@ -6115,7 +6131,7 @@ MethodMember.prototype.canInvoke = function(context, args) {
MethodMember.prototype.indexOfParameter = function(name) {
for (var i = (0);
i < this.parameters.get$length(); i++) {
- var p = this.parameters[i];
+ var p = this.parameters.$index(i);
if (p.get$isOptional() && $eq(p.get$name(), name)) {
return i;
}
@@ -6149,7 +6165,7 @@ MethodMember.prototype.namesInHomePositions = function(args) {
if (i >= this.parameters.get$length()) {
return false;
}
- if (args.getName(i) != this.parameters[i].get$name()) {
+ if (args.getName(i) != this.parameters.$index(i).get$name()) {
return false;
}
}
@@ -6160,8 +6176,8 @@ MethodMember.prototype.namesInOrder = function(args) {
var lastParameter = null;
for (var i = args.get$bareCount();
i < this.parameters.get$length(); i++) {
- var p = args.getIndexOfName(this.parameters[i].get$name());
- if (p >= (0) && args.values[p].get$needsTemp()) {
+ var p = args.getIndexOfName(this.parameters.$index(i).get$name());
+ if (p >= (0) && args.values.$index(p).get$needsTemp()) {
if (lastParameter != null && lastParameter > p) {
return false;
}
@@ -6174,8 +6190,8 @@ MethodMember.prototype.needsArgumentConversion = function(args) {
var bareCount = args.get$bareCount();
for (var i = (0);
i < bareCount; i++) {
- var arg = args.values[i];
- if (arg.needsConversion$1(this.parameters[i].get$type())) {
+ var arg = args.values.$index(i);
+ if (arg.needsConversion$1(this.parameters.$index(i).get$type())) {
return true;
}
}
@@ -6183,8 +6199,8 @@ MethodMember.prototype.needsArgumentConversion = function(args) {
this.genParameterValues();
for (var i = bareCount;
i < this.parameters.get$length(); i++) {
- var arg = args.getValue(this.parameters[i].get$name());
- if (arg != null && arg.needsConversion$1(this.parameters[i].get$type())) {
+ var arg = args.getValue(this.parameters.$index(i).get$name());
+ if (arg != null && arg.needsConversion$1(this.parameters.$index(i).get$type())) {
return true;
}
}
@@ -6200,7 +6216,7 @@ MethodMember.prototype._argError = function(context, node, target, args, msg, ar
span = node.span;
}
else {
- span = args.nodes[argIndex].get$span();
+ span = args.nodes.$index(argIndex).get$span();
}
if (this.isStatic || this.get$isConstructor()) {
$globals.world.error(msg, span);
@@ -6213,7 +6229,7 @@ MethodMember.prototype._argError = function(context, node, target, args, msg, ar
MethodMember.prototype.genParameterValues = function() {
var $$list = this.parameters;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var p = $$list[$$i];
+ var p = $$list.$index($$i);
p.genValue$2(this, this.generator);
}
}
@@ -6237,12 +6253,12 @@ MethodMember.prototype.invoke = function(context, node, target, args, isDynamic)
var bareCount = args.get$bareCount();
for (var i = (0);
i < bareCount; i++) {
- var arg = args.values[i];
+ var arg = args.values.$index(i);
if (i >= this.parameters.get$length()) {
var msg = MethodMember._argCountMsg(args.get$length(), this.parameters.get$length(), false);
return this._argError(context, node, target, args, msg, i);
}
- arg = arg.convertTo$3(context, this.parameters[i].get$type(), isDynamic);
+ arg = arg.convertTo$3(context, this.parameters.$index(i).get$type(), isDynamic);
argsCode.add$1(arg.get$code());
}
var namedArgsUsed = (0);
@@ -6250,16 +6266,16 @@ MethodMember.prototype.invoke = function(context, node, target, args, isDynamic)
this.genParameterValues();
for (var i = bareCount;
i < this.parameters.get$length(); i++) {
- var arg = args.getValue(this.parameters[i].get$name());
+ var arg = args.getValue(this.parameters.$index(i).get$name());
if (arg == null) {
- arg = this.parameters[i].get$value();
+ arg = this.parameters.$index(i).get$value();
}
else {
- arg = arg.convertTo$3(context, this.parameters[i].get$type(), isDynamic);
+ arg = arg.convertTo$3(context, this.parameters.$index(i).get$type(), isDynamic);
namedArgsUsed++;
}
- if (arg == null || !this.parameters[i].get$isOptional()) {
- var msg = MethodMember._argCountMsg(Math.min(i, args.get$length()), $add(i, (1)), true);
+ if (arg == null || !this.parameters.$index(i).get$isOptional()) {
+ var msg = MethodMember._argCountMsg(Math.min(i, args.get$length()), i + (1), true);
return this._argError(context, node, target, args, msg, i);
}
else {
@@ -6414,7 +6430,7 @@ MethodMember.prototype.resolve = function() {
if (this.definition.modifiers != null) {
var $$list = this.definition.modifiers;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var mod = $$list[$$i];
+ var mod = $$list.$index($$i);
if ($eq(mod.get$kind(), (85))) {
if (this.isStatic) {
$globals.world.error("duplicate static modifier", mod.get$span());
@@ -6486,7 +6502,7 @@ MethodMember.prototype.resolve = function() {
this.parameters = [];
var $$list = this.definition.formals;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var formal = $$list[$$i];
+ var formal = $$list.$index($$i);
var param = new Parameter(formal, this);
param.resolve$0();
this.parameters.add(param);
@@ -6511,6 +6527,9 @@ MethodMember.prototype._get$3 = function($0, $1, $2) {
};
MethodMember.prototype._get$3$isDynamic = MethodMember.prototype._get;
MethodMember.prototype._get$4 = MethodMember.prototype._get;
+MethodMember.prototype._set$4 = function($0, $1, $2, $3) {
+ return this._set($0, $1, $2, $3, false);
+};
MethodMember.prototype._set$4$isDynamic = MethodMember.prototype._set;
MethodMember.prototype._set$5 = MethodMember.prototype._set;
MethodMember.prototype.canInvoke$2 = MethodMember.prototype.canInvoke;
@@ -6540,14 +6559,20 @@ MemberSet.prototype.get$isVar = function() { return this.isVar; };
MemberSet.prototype.toString = function() {
return ("" + this.name + ":" + this.members.get$length());
}
+MemberSet.prototype.get$containsMethods = function() {
+ return this.members.some((function (m) {
+ return (m instanceof MethodMember);
+ })
+ );
+}
MemberSet.prototype.add = function(member) {
return this.members.add(member);
}
MemberSet.prototype.get$isStatic = function() {
- return this.members.get$length() == (1) && this.members[(0)].get$isStatic();
+ return this.members.get$length() == (1) && this.members.$index((0)).get$isStatic();
}
MemberSet.prototype.get$isOperator = function() {
- return this.members[(0)].get$isOperator();
+ return this.members.$index((0)).get$isOperator();
}
MemberSet.prototype.canInvoke = function(context, args) {
return this.members.some((function (m) {
@@ -6572,7 +6597,7 @@ MemberSet.prototype.get$treatAsField = function() {
));
var $$list = this.members;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var member = $$list[$$i];
+ var member = $$list.$index($$i);
if (this._treatAsField) {
member.provideFieldSyntax$0();
}
@@ -6585,9 +6610,6 @@ MemberSet.prototype.get$treatAsField = function() {
}
MemberSet.prototype._get = function(context, node, target, isDynamic) {
var returnValue;
- if (this.members.get$length() == (1) && !this.isVar) {
- return this.members[(0)]._get$4(context, node, target, isDynamic);
- }
var targets = this.members.filter$1((function (m) {
return m.get$canGet();
})
@@ -6601,7 +6623,7 @@ MemberSet.prototype._get = function(context, node, target, isDynamic) {
}
else {
if (this.members.get$length() == (1)) {
- return this.members[(0)]._get$4(context, node, target, isDynamic);
+ return this.members.$index((0))._get$4(context, node, target, isDynamic);
}
else if ($eq(targets.get$length(), (1))) {
return targets.$index((0))._get$4(context, node, target, isDynamic);
@@ -6626,9 +6648,6 @@ MemberSet.prototype._get = function(context, node, target, isDynamic) {
return returnValue;
}
MemberSet.prototype._set = function(context, node, target, value, isDynamic) {
- if (this.members.get$length() == (1) && !this.isVar) {
- return this.members[(0)]._set$5(context, node, target, value, isDynamic);
- }
var returnValue;
var targets = this.members.filter$1((function (m) {
return m.get$canSet();
@@ -6643,7 +6662,7 @@ MemberSet.prototype._set = function(context, node, target, value, isDynamic) {
}
else {
if (this.members.get$length() == (1)) {
- return this.members[(0)]._set$5(context, node, target, value, isDynamic);
+ return this.members.$index((0))._set$5(context, node, target, value, isDynamic);
}
else if ($eq(targets.get$length(), (1))) {
return targets.$index((0))._set$5(context, node, target, value, isDynamic);
@@ -6671,8 +6690,8 @@ MemberSet.prototype.invoke = function(context, node, target, args, isDynamic) {
if (this.isVar && !this.get$isOperator()) {
return this.invokeOnVar(context, node, target, args);
}
- if (this.members.get$length() == (1) && !this.isVar) {
- return this.members[(0)].invoke$5(context, node, target, args, isDynamic);
+ if (this.members.get$length() == (1)) {
+ return this.members.$index((0)).invoke$5(context, node, target, args, isDynamic);
}
var targets = this.members.filter$1((function (m) {
return m.canInvoke$2(context, args);
@@ -6682,18 +6701,13 @@ MemberSet.prototype.invoke = function(context, node, target, args, isDynamic) {
return targets.$index((0)).invoke$5(context, node, target, args, isDynamic);
}
var returnValue = null;
- if (targets.get$length() < (1000)) {
- for (var $$i = targets.iterator$0(); $$i.hasNext$0(); ) {
- var member = $$i.next$0();
- var res = member.invoke$4$isDynamic(context, node, target, args, true);
- returnValue = this._tryUnion(returnValue, res, node);
- }
- if (returnValue == null) {
- return this._makeError(node, target, "method");
- }
+ for (var $$i = targets.iterator$0(); $$i.hasNext$0(); ) {
+ var member = $$i.next$0();
+ var res = member.invoke$4$isDynamic(context, node, target, args, true);
+ returnValue = this._tryUnion(returnValue, res, node);
}
- else {
- returnValue = new Value($globals.world.varType, null, node.span);
+ if (returnValue == null) {
+ return this._makeError(node, target, "method");
}
if (returnValue.get$code() == null) {
if (this.name == ":call") {
@@ -6770,6 +6784,9 @@ MemberSet.prototype._get$3 = function($0, $1, $2) {
};
MemberSet.prototype._get$3$isDynamic = MemberSet.prototype._get;
MemberSet.prototype._get$4 = MemberSet.prototype._get;
+MemberSet.prototype._set$4 = function($0, $1, $2, $3) {
+ return this._set($0, $1, $2, $3, false);
+};
MemberSet.prototype._set$4$isDynamic = MemberSet.prototype._set;
MemberSet.prototype._set$5 = MemberSet.prototype._set;
MemberSet.prototype.add$1 = MemberSet.prototype.add;
@@ -6801,7 +6818,7 @@ FactoryMap.prototype.getFactory = function(typeName, name) {
FactoryMap.prototype.forEach = function(f) {
this.factories.forEach((function (_, constructors) {
constructors.forEach((function (_, member) {
- f.call$1(member);
+ f(member);
})
);
})
@@ -6879,11 +6896,11 @@ SourceFile.prototype.get$lineStarts = function() {
var starts = [(0)];
var index = (0);
while (index < this.get$text().length) {
- index = $add(this.get$text().indexOf("\n", index), (1));
+ index = this.get$text().indexOf("\n", index) + (1);
if (index <= (0)) break;
starts.add$1(index);
}
- starts.add$1($add(this.get$text().length, (1)));
+ starts.add$1(this.get$text().length + (1));
this._lineStarts = starts;
}
return this._lineStarts;
@@ -6897,7 +6914,7 @@ SourceFile.prototype.getLine = function(position) {
$globals.world.internalError("bad position");
}
SourceFile.prototype.getColumn = function(line, position) {
- return position - this.get$lineStarts()[line];
+ return position - this.get$lineStarts().$index(line);
}
SourceFile.prototype.getLocationMessage = function(message, start, end, includeText) {
var line = this.getLine(start);
@@ -6907,10 +6924,10 @@ SourceFile.prototype.getLocationMessage = function(message, start, end, includeT
buf.add$1("\n");
var textLine;
if (($add(line, (2))) < this._lineStarts.get$length()) {
- textLine = this.get$text().substring(this._lineStarts[line], this._lineStarts[$add(line, (1))]);
+ textLine = this.get$text().substring(this._lineStarts.$index(line), this._lineStarts.$index($add(line, (1))));
}
else {
- textLine = this.get$text().substring(this._lineStarts[line]) + "\n";
+ textLine = this.get$text().substring(this._lineStarts.$index(line)) + "\n";
}
var toColumn = Math.min($add(column, (end - start)), textLine.get$length());
if ($globals.options.useColors) {
@@ -7165,7 +7182,7 @@ TokenizerBase.prototype.readHex = function(hexLength) {
maxIndex = this._text.length - (1);
}
else {
- maxIndex = $add(this._lang_index, hexLength);
+ maxIndex = this._lang_index + hexLength;
if (maxIndex >= this._text.length) return (-1);
}
var result = (0);
@@ -7180,7 +7197,7 @@ TokenizerBase.prototype.readHex = function(hexLength) {
}
}
TokenizerBase._hexDigit(this._text.charCodeAt(this._lang_index));
- result = $add((result * (16)), digit);
+ result = (result * (16)) + digit;
this._lang_index++;
}
return result;
@@ -7224,12 +7241,12 @@ TokenizerBase.prototype._makeStringToken = function(buf, isPart) {
TokenizerBase.prototype._makeRawStringToken = function(isMultiline) {
var s;
if (isMultiline) {
- var start = $add(this._startIndex, (4));
+ var start = this._startIndex + (4);
if (this._source.get$text()[start] == "\n") start++;
s = this._source.get$text().substring(start, this._lang_index - (3));
}
else {
- s = this._source.get$text().substring($add(this._startIndex, (2)), this._lang_index - (1));
+ s = this._source.get$text().substring(this._startIndex + (2), this._lang_index - (1));
}
return new LiteralToken((58), this._source, this._startIndex, this._lang_index, s);
}
@@ -7274,7 +7291,7 @@ TokenizerBase.prototype._finishOpenBrace = function() {
this._interpStack.depth = (1);
}
else {
- ($0 = this._interpStack).depth = $add($0.depth, (1));
+ ($0 = this._interpStack).depth = $0.depth + (1);
}
}
return this._finishToken((6));
@@ -8485,7 +8502,7 @@ TokenKind.kindToString = function(kind) {
default:
- return "TokenKind(" + kind.toString$0() + ")";
+ return "TokenKind(" + kind.toString() + ")";
}
}
@@ -8823,7 +8840,7 @@ TokenKind.binaryMethodName = function(kind) {
TokenKind.kindFromAssign = function(kind) {
if (kind == (20)) return (0);
if (kind > (20) && kind <= (32)) {
- return $add(kind, (15));
+ return kind + (15);
}
return (-1);
}
@@ -9894,7 +9911,7 @@ Parser.prototype._eatLeftParen = function() {
}
Parser.prototype._peekAfterCloseParen = function() {
if (this._afterParensIndex < this._afterParens.get$length()) {
- return this._afterParens[this._afterParensIndex];
+ return this._afterParens.$index(this._afterParensIndex);
}
this._afterParensIndex = (0);
this._afterParens.clear();
@@ -10164,7 +10181,7 @@ Parser.prototype.addTypeArguments = function(baseType, depth) {
Parser.prototype._finishTypeArguments = function(baseType, depth, types) {
var delta = (-1);
do {
- var myType = this.type($add(depth, (1)));
+ var myType = this.type(depth + (1));
types.add$1(myType);
if ((myType instanceof GenericTypeReference) && myType.get$depth() <= depth) {
delta = depth - myType.get$depth();
@@ -10365,7 +10382,7 @@ function DivertedTokenSource(tokens, parser, previousTokenizer) {
this.previousTokenizer = previousTokenizer;
}
DivertedTokenSource.prototype.next = function() {
- var token = this.tokens[this._lang_pos];
+ var token = this.tokens.$index(this._lang_pos);
++this._lang_pos;
if (this._lang_pos == this.tokens.get$length()) {
this.parser.tokenizer = this.previousTokenizer;
@@ -10485,7 +10502,7 @@ VariableDefinition.prototype.set$type = function(value) { return this.type = val
VariableDefinition.prototype.get$names = function() { return this.names; };
VariableDefinition.prototype.set$names = function(value) { return this.names = value; };
VariableDefinition.prototype.visit = function(visitor) {
- return visitor.visitVariableDefinition$1(this);
+ return visitor.visitVariableDefinition(this);
}
VariableDefinition.prototype.visit$1 = VariableDefinition.prototype.visit;
// ********** Code for FunctionDefinition **************
@@ -10511,7 +10528,7 @@ FunctionDefinition.prototype.set$nativeBody = function(value) { return this.nati
FunctionDefinition.prototype.get$body = function() { return this.body; };
FunctionDefinition.prototype.set$body = function(value) { return this.body = value; };
FunctionDefinition.prototype.visit = function(visitor) {
- return visitor.visitFunctionDefinition$1(this);
+ return visitor.visitFunctionDefinition(this);
}
FunctionDefinition.prototype.visit$1 = FunctionDefinition.prototype.visit;
// ********** Code for ReturnStatement **************
@@ -10523,7 +10540,7 @@ function ReturnStatement(value, span) {
ReturnStatement.prototype.get$value = function() { return this.value; };
ReturnStatement.prototype.set$value = function(value) { return this.value = value; };
ReturnStatement.prototype.visit = function(visitor) {
- return visitor.visitReturnStatement$1(this);
+ return visitor.visitReturnStatement(this);
}
ReturnStatement.prototype.visit$1 = ReturnStatement.prototype.visit;
// ********** Code for ThrowStatement **************
@@ -10535,7 +10552,7 @@ function ThrowStatement(value, span) {
ThrowStatement.prototype.get$value = function() { return this.value; };
ThrowStatement.prototype.set$value = function(value) { return this.value = value; };
ThrowStatement.prototype.visit = function(visitor) {
- return visitor.visitThrowStatement$1(this);
+ return visitor.visitThrowStatement(this);
}
ThrowStatement.prototype.visit$1 = ThrowStatement.prototype.visit;
// ********** Code for AssertStatement **************
@@ -10545,7 +10562,7 @@ function AssertStatement(test, span) {
Statement.call(this, span);
}
AssertStatement.prototype.visit = function(visitor) {
- return visitor.visitAssertStatement$1(this);
+ return visitor.visitAssertStatement(this);
}
AssertStatement.prototype.visit$1 = AssertStatement.prototype.visit;
// ********** Code for BreakStatement **************
@@ -10557,7 +10574,7 @@ function BreakStatement(label, span) {
BreakStatement.prototype.get$label = function() { return this.label; };
BreakStatement.prototype.set$label = function(value) { return this.label = value; };
BreakStatement.prototype.visit = function(visitor) {
- return visitor.visitBreakStatement$1(this);
+ return visitor.visitBreakStatement(this);
}
BreakStatement.prototype.visit$1 = BreakStatement.prototype.visit;
// ********** Code for ContinueStatement **************
@@ -10569,7 +10586,7 @@ function ContinueStatement(label, span) {
ContinueStatement.prototype.get$label = function() { return this.label; };
ContinueStatement.prototype.set$label = function(value) { return this.label = value; };
ContinueStatement.prototype.visit = function(visitor) {
- return visitor.visitContinueStatement$1(this);
+ return visitor.visitContinueStatement(this);
}
ContinueStatement.prototype.visit$1 = ContinueStatement.prototype.visit;
// ********** Code for IfStatement **************
@@ -10581,7 +10598,7 @@ function IfStatement(test, trueBranch, falseBranch, span) {
Statement.call(this, span);
}
IfStatement.prototype.visit = function(visitor) {
- return visitor.visitIfStatement$1(this);
+ return visitor.visitIfStatement(this);
}
IfStatement.prototype.visit$1 = IfStatement.prototype.visit;
// ********** Code for WhileStatement **************
@@ -10594,7 +10611,7 @@ function WhileStatement(test, body, span) {
WhileStatement.prototype.get$body = function() { return this.body; };
WhileStatement.prototype.set$body = function(value) { return this.body = value; };
WhileStatement.prototype.visit = function(visitor) {
- return visitor.visitWhileStatement$1(this);
+ return visitor.visitWhileStatement(this);
}
WhileStatement.prototype.visit$1 = WhileStatement.prototype.visit;
// ********** Code for DoStatement **************
@@ -10607,7 +10624,7 @@ function DoStatement(body, test, span) {
DoStatement.prototype.get$body = function() { return this.body; };
DoStatement.prototype.set$body = function(value) { return this.body = value; };
DoStatement.prototype.visit = function(visitor) {
- return visitor.visitDoStatement$1(this);
+ return visitor.visitDoStatement(this);
}
DoStatement.prototype.visit$1 = DoStatement.prototype.visit;
// ********** Code for ForStatement **************
@@ -10622,7 +10639,7 @@ function ForStatement(init, test, step, body, span) {
ForStatement.prototype.get$body = function() { return this.body; };
ForStatement.prototype.set$body = function(value) { return this.body = value; };
ForStatement.prototype.visit = function(visitor) {
- return visitor.visitForStatement$1(this);
+ return visitor.visitForStatement(this);
}
ForStatement.prototype.visit$1 = ForStatement.prototype.visit;
// ********** Code for ForInStatement **************
@@ -10636,7 +10653,7 @@ function ForInStatement(item, list, body, span) {
ForInStatement.prototype.get$body = function() { return this.body; };
ForInStatement.prototype.set$body = function(value) { return this.body = value; };
ForInStatement.prototype.visit = function(visitor) {
- return visitor.visitForInStatement$1(this);
+ return visitor.visitForInStatement(this);
}
ForInStatement.prototype.visit$1 = ForInStatement.prototype.visit;
// ********** Code for TryStatement **************
@@ -10650,7 +10667,7 @@ function TryStatement(body, catches, finallyBlock, span) {
TryStatement.prototype.get$body = function() { return this.body; };
TryStatement.prototype.set$body = function(value) { return this.body = value; };
TryStatement.prototype.visit = function(visitor) {
- return visitor.visitTryStatement$1(this);
+ return visitor.visitTryStatement(this);
}
TryStatement.prototype.visit$1 = TryStatement.prototype.visit;
// ********** Code for SwitchStatement **************
@@ -10663,7 +10680,7 @@ function SwitchStatement(test, cases, span) {
SwitchStatement.prototype.get$cases = function() { return this.cases; };
SwitchStatement.prototype.set$cases = function(value) { return this.cases = value; };
SwitchStatement.prototype.visit = function(visitor) {
- return visitor.visitSwitchStatement$1(this);
+ return visitor.visitSwitchStatement(this);
}
SwitchStatement.prototype.visit$1 = SwitchStatement.prototype.visit;
// ********** Code for BlockStatement **************
@@ -10675,7 +10692,7 @@ function BlockStatement(body, span) {
BlockStatement.prototype.get$body = function() { return this.body; };
BlockStatement.prototype.set$body = function(value) { return this.body = value; };
BlockStatement.prototype.visit = function(visitor) {
- return visitor.visitBlockStatement$1(this);
+ return visitor.visitBlockStatement(this);
}
BlockStatement.prototype.visit$1 = BlockStatement.prototype.visit;
// ********** Code for LabeledStatement **************
@@ -10690,7 +10707,7 @@ LabeledStatement.prototype.set$name = function(value) { return this.name = value
LabeledStatement.prototype.get$body = function() { return this.body; };
LabeledStatement.prototype.set$body = function(value) { return this.body = value; };
LabeledStatement.prototype.visit = function(visitor) {
- return visitor.visitLabeledStatement$1(this);
+ return visitor.visitLabeledStatement(this);
}
LabeledStatement.prototype.visit$1 = LabeledStatement.prototype.visit;
// ********** Code for ExpressionStatement **************
@@ -10702,7 +10719,7 @@ function ExpressionStatement(body, span) {
ExpressionStatement.prototype.get$body = function() { return this.body; };
ExpressionStatement.prototype.set$body = function(value) { return this.body = value; };
ExpressionStatement.prototype.visit = function(visitor) {
- return visitor.visitExpressionStatement$1(this);
+ return visitor.visitExpressionStatement(this);
}
ExpressionStatement.prototype.visit$1 = ExpressionStatement.prototype.visit;
// ********** Code for EmptyStatement **************
@@ -10711,7 +10728,7 @@ function EmptyStatement(span) {
Statement.call(this, span);
}
EmptyStatement.prototype.visit = function(visitor) {
- return visitor.visitEmptyStatement$1(this);
+ return visitor.visitEmptyStatement(this);
}
EmptyStatement.prototype.visit$1 = EmptyStatement.prototype.visit;
// ********** Code for DietStatement **************
@@ -10720,7 +10737,7 @@ function DietStatement(span) {
Statement.call(this, span);
}
DietStatement.prototype.visit = function(visitor) {
- return visitor.visitDietStatement$1(this);
+ return visitor.visitDietStatement(this);
}
DietStatement.prototype.visit$1 = DietStatement.prototype.visit;
// ********** Code for LambdaExpression **************
@@ -10732,7 +10749,7 @@ function LambdaExpression(func, span) {
LambdaExpression.prototype.get$func = function() { return this.func; };
LambdaExpression.prototype.set$func = function(value) { return this.func = value; };
LambdaExpression.prototype.visit = function(visitor) {
- return visitor.visitLambdaExpression$1(this);
+ return visitor.visitLambdaExpression(this);
}
LambdaExpression.prototype.visit$1 = LambdaExpression.prototype.visit;
// ********** Code for CallExpression **************
@@ -10754,7 +10771,7 @@ function IndexExpression(target, index, span) {
Expression.call(this, span);
}
IndexExpression.prototype.visit = function(visitor) {
- return visitor.visitIndexExpression$1(this);
+ return visitor.visitIndexExpression(this);
}
IndexExpression.prototype.visit$1 = IndexExpression.prototype.visit;
// ********** Code for BinaryExpression **************
@@ -10821,7 +10838,7 @@ NewExpression.prototype.set$type = function(value) { return this.type = value; }
NewExpression.prototype.get$name = function() { return this.name; };
NewExpression.prototype.set$name = function(value) { return this.name = value; };
NewExpression.prototype.visit = function(visitor) {
- return visitor.visitNewExpression$1(this);
+ return visitor.visitNewExpression(this);
}
NewExpression.prototype.visit$1 = NewExpression.prototype.visit;
// ********** Code for ListExpression **************
@@ -10850,7 +10867,7 @@ function MapExpression(isConst, keyType, valueType, items, span) {
MapExpression.prototype.get$isConst = function() { return this.isConst; };
MapExpression.prototype.set$isConst = function(value) { return this.isConst = value; };
MapExpression.prototype.visit = function(visitor) {
- return visitor.visitMapExpression$1(this);
+ return visitor.visitMapExpression(this);
}
MapExpression.prototype.visit$1 = MapExpression.prototype.visit;
// ********** Code for ConditionalExpression **************
@@ -10959,7 +10976,7 @@ function LiteralExpression(value, span) {
LiteralExpression.prototype.get$value = function() { return this.value; };
LiteralExpression.prototype.set$value = function(value) { return this.value = value; };
LiteralExpression.prototype.visit = function(visitor) {
- return visitor.visitLiteralExpression$1(this);
+ return visitor.visitLiteralExpression(this);
}
LiteralExpression.prototype.visit$1 = LiteralExpression.prototype.visit;
// ********** Code for StringInterpExpression **************
@@ -11149,14 +11166,14 @@ DeclaredIdentifier.prototype.set$type = function(value) { return this.type = val
DeclaredIdentifier.prototype.get$name = function() { return this.name; };
DeclaredIdentifier.prototype.set$name = function(value) { return this.name = value; };
DeclaredIdentifier.prototype.visit = function(visitor) {
- return visitor.visitDeclaredIdentifier$1(this);
+ return visitor.visitDeclaredIdentifier(this);
}
DeclaredIdentifier.prototype.visit$1 = DeclaredIdentifier.prototype.visit;
// ********** Code for Type **************
$inherits(Type, Element);
function Type(name) {
this.isTested = false;
- this._foundMembers = new HashMapImplementation();
+ this._resolvedMembers = new HashMapImplementation();
this.isChecked = false;
this.isWritten = false;
this.varStubs = new HashMapImplementation();
@@ -11302,7 +11319,7 @@ Type.prototype._checkExtends = function() {
if (this.get$interfaces() != null) {
var $$list = this.get$interfaces();
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var i = $$list[$$i];
+ var i = $$list.$index($$i);
i._checkExtends$0();
}
}
@@ -11341,7 +11358,7 @@ Type.prototype._getMemberInParents = function(memberName) {
if (this.get$interfaces() != null && this.get$interfaces().get$length() > (0)) {
var $$list = this.get$interfaces();
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var i = $$list[$$i];
+ var i = $$list.$index($$i);
var ret = i.getMember$1(memberName);
if (ret != null) {
return ret;
@@ -11351,6 +11368,36 @@ Type.prototype._getMemberInParents = function(memberName) {
return $globals.world.objectType.getMember(memberName);
}
}
+Type.prototype.resolveMember = function(memberName) {
+ var ret = this._resolvedMembers.$index(memberName);
+ if (ret != null) return ret;
+ var member = this.getMember(memberName);
+ if (member == null) {
+ return null;
+ }
+ ret = new MemberSet(member, false);
+ this._resolvedMembers.$setindex(memberName, ret);
+ if (member.get$isStatic()) {
+ return ret;
+ }
+ else {
+ var $$list = this.get$subtypes();
+ for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
+ var t = $$i.next$0();
+ if (!this.get$isClass() && t.get$isClass()) {
+ var m = t.getMember$1(memberName);
+ if (m != null && ret.members.indexOf(m) == (-1)) {
+ ret.add(m);
+ }
+ }
+ else {
+ var m = t.get$members().$index(memberName);
+ if (m != null) ret.add(m);
+ }
+ }
+ return ret;
+ }
+}
Type.prototype.ensureSubtypeOf = function(other, span, typeErrors) {
if (!this.isSubtypeOf(other)) {
var msg = ("type " + this.name + " is not a subtype of " + other.name);
@@ -11499,6 +11546,9 @@ ParameterType.prototype.genMethod = function(method) {
ParameterType.prototype.isSubtypeOf = function(other) {
return true;
}
+ParameterType.prototype.resolveMember = function(memberName) {
+ return this.extendsType.resolveMember(memberName);
+}
ParameterType.prototype.getConstructor = function(constructorName) {
$globals.world.internalError("no constructors on type parameters yet");
}
@@ -11545,13 +11595,13 @@ NonNullableType.prototype.isSubtypeOf = function(other) {
return $eq(this, other) || $eq(this.type, other) || this.type.isSubtypeOf(other);
}
NonNullableType.prototype.resolveType = function(node, isRequired) {
- return this.type.resolveType$2(node, isRequired);
+ return this.type.resolveType(node, isRequired);
}
NonNullableType.prototype.resolveTypeParams = function(inType) {
return this.type.resolveTypeParams(inType);
}
NonNullableType.prototype.addDirectSubtype = function(subtype) {
- this.type.addDirectSubtype$1(subtype);
+ this.type.addDirectSubtype(subtype);
}
NonNullableType.prototype.markUsed = function() {
this.type.markUsed();
@@ -11562,6 +11612,9 @@ NonNullableType.prototype.genMethod = function(method) {
NonNullableType.prototype.get$span = function() {
return this.type.get$span();
}
+NonNullableType.prototype.resolveMember = function(name) {
+ return this.type.resolveMember(name);
+}
NonNullableType.prototype.getMember = function(name) {
return this.type.getMember(name);
}
@@ -11666,7 +11719,7 @@ ConcreteType.prototype.get$span = function() {
return this.genericType.get$span();
}
ConcreteType.prototype.get$hasTypeParams = function() {
- return this.typeArguments.getValues().some((function (e) {
+ return this.typeArguments.getValues$0().some$1((function (e) {
return (e instanceof ParameterType);
})
);
@@ -11684,7 +11737,7 @@ ConcreteType.prototype.resolveTypeParams = function(inType) {
var needsNewType = false;
var $$list = this.typeArgsInOrder;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var t = $$list[$$i];
+ var t = $$list.$index($$i);
var newType = t.resolveTypeParams$1(inType);
if ($ne(newType, t)) needsNewType = true;
newTypeArgs.add$1(newType);
@@ -11706,7 +11759,7 @@ ConcreteType.prototype.get$interfaces = function() {
this._interfaces = [];
var $$list = this.genericType.interfaces;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var i = $$list[$$i];
+ var i = $$list.$index($$i);
this._interfaces.add(i.resolveTypeParams$1(this));
}
}
@@ -11775,27 +11828,21 @@ ConcreteType.prototype.getConstructor = function(constructorName) {
return ret;
}
ConcreteType.prototype.getMember = function(memberName) {
- var member = this._foundMembers.$index(memberName);
- if (member != null) return member;
- member = this.members.$index(memberName);
+ var member = this.members.$index(memberName);
if (member != null) {
this._checkOverride(member);
- this._foundMembers.$setindex(memberName, member);
return member;
}
var genericMember = this.genericType.members.$index(memberName);
if (genericMember != null) {
member = new ConcreteMember(genericMember.get$name(), this, genericMember);
this.members.$setindex(memberName, member);
- this._foundMembers.$setindex(memberName, member);
return member;
}
- member = this._getMemberInParents(memberName);
- this._foundMembers.$setindex(memberName, member);
- return member;
+ return this._getMemberInParents(memberName);
}
ConcreteType.prototype.resolveType = function(node, isRequired) {
- var ret = this.genericType.resolveType$2(node, isRequired);
+ var ret = this.genericType.resolveType(node, isRequired);
return ret;
}
ConcreteType.prototype.addDirectSubtype = function(type) {
@@ -11927,7 +11974,7 @@ DefinedType.prototype.markUsed = function() {
if (this._lazyGenMethods != null) {
var $$list = orderValuesByKeys(this._lazyGenMethods);
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var method = $$list[$$i];
+ var method = $$list.$index($$i);
$globals.world.gen.genMethod(method);
}
this._lazyGenMethods = null;
@@ -11947,8 +11994,8 @@ DefinedType.prototype._resolveInterfaces = function(types) {
if (types == null) return [];
var interfaces = [];
for (var $$i = 0;$$i < types.get$length(); $$i++) {
- var type = types[$$i];
- var resolvedInterface = this.resolveType$2(type, true);
+ var type = types.$index($$i);
+ var resolvedInterface = this.resolveType(type, true);
if (resolvedInterface.get$isClosed() && !(this.library.get$isCore() || this.library.get$isCoreImpl())) {
$globals.world.error(("can not implement \"" + resolvedInterface.get$name() + "\": ") + "only native implementation allowed", type.get$span());
}
@@ -12003,14 +12050,14 @@ DefinedType.prototype._cycleInInterfaceExtends = function() {
var $$list = ancestor.get$interfaces();
for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
var parent = $$i.next$0();
- if (_helper.call$1(parent)) return true;
+ if (_helper(parent)) return true;
}
}
return false;
}
for (var i = (0);
i < this.interfaces.get$length(); i++) {
- if (_helper.call$1(this.interfaces[i])) return i;
+ if (_helper(this.interfaces.$index(i))) return i;
}
return (-1);
}
@@ -12020,18 +12067,18 @@ DefinedType.prototype.resolve = function() {
if (this.isClass) {
if (typeDef.extendsTypes != null && typeDef.extendsTypes.get$length() > (0)) {
if (typeDef.extendsTypes.get$length() > (1)) {
- $globals.world.error("more than one base class", typeDef.extendsTypes[(1)].get$span());
+ $globals.world.error("more than one base class", typeDef.extendsTypes.$index((1)).get$span());
}
- var extendsTypeRef = typeDef.extendsTypes[(0)];
+ var extendsTypeRef = typeDef.extendsTypes.$index((0));
if ((extendsTypeRef instanceof GenericTypeReference)) {
var g = extendsTypeRef;
- this.set$parent(this.resolveType$2(g.baseType, true));
+ this.set$parent(this.resolveType(g.baseType, true));
}
- this.set$parent(this.resolveType$2(extendsTypeRef, true));
+ this.set$parent(this.resolveType(extendsTypeRef, true));
if (!this.get$parent().get$isClass()) {
- $globals.world.error("class may not extend an interface - use implements", typeDef.extendsTypes[(0)].get$span());
+ $globals.world.error("class may not extend an interface - use implements", typeDef.extendsTypes.$index((0)).get$span());
}
- this.get$parent().addDirectSubtype$1(this);
+ this.get$parent().addDirectSubtype(this);
if (this._cycleInClassExtends()) {
$globals.world.error(("class \"" + this.name + "\" has a cycle in its inheritance chain"), extendsTypeRef.get$span());
}
@@ -12039,7 +12086,7 @@ DefinedType.prototype.resolve = function() {
else {
if (!this.get$isObject()) {
this.set$parent($globals.world.objectType);
- this.get$parent().addDirectSubtype$1(this);
+ this.get$parent().addDirectSubtype(this);
}
}
this.interfaces = this._resolveInterfaces(typeDef.implementsTypes);
@@ -12049,15 +12096,15 @@ DefinedType.prototype.resolve = function() {
}
else {
if (typeDef.implementsTypes != null && typeDef.implementsTypes.get$length() > (0)) {
- $globals.world.error("implements not allowed on interfaces (use extends)", typeDef.implementsTypes[(0)].get$span());
+ $globals.world.error("implements not allowed on interfaces (use extends)", typeDef.implementsTypes.$index((0)).get$span());
}
this.interfaces = this._resolveInterfaces(typeDef.extendsTypes);
var res = this._cycleInInterfaceExtends();
if (res >= (0)) {
- $globals.world.error(("interface \"" + this.name + "\" has a cycle in its inheritance chain"), typeDef.extendsTypes[res].get$span());
+ $globals.world.error(("interface \"" + this.name + "\" has a cycle in its inheritance chain"), typeDef.extendsTypes.$index(res).get$span());
}
if (typeDef.defaultType != null) {
- this.defaultType = this.resolveType$2(typeDef.defaultType.baseType, true);
+ this.defaultType = this.resolveType(typeDef.defaultType.baseType, true);
if (this.defaultType == null) {
$globals.world.warning("unresolved default class", typeDef.defaultType.span);
}
@@ -12073,12 +12120,12 @@ DefinedType.prototype.resolve = function() {
this._resolveTypeParams(this.typeParameters);
if (this.get$isObject()) this._createNotEqualMember();
$globals.world._addType(this);
- var $$list = this.constructors.getValues();
+ var $$list = this.constructors.getValues$0();
for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
var c = $$i.next$0();
c.resolve$0();
}
- var $$list = this.members.getValues();
+ var $$list = this.members.getValues$0();
for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
var m = $$i.next$0();
m.resolve$0();
@@ -12088,7 +12135,7 @@ DefinedType.prototype.resolve = function() {
})
);
if (this.get$isJsGlobalObject()) {
- var $$list = this.members.getValues();
+ var $$list = this.members.getValues$0();
for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
var m = $$i.next$0();
if (!m.get$isStatic()) $globals.world._addTopName(m);
@@ -12098,7 +12145,7 @@ DefinedType.prototype.resolve = function() {
DefinedType.prototype._resolveTypeParams = function(params) {
if (params == null) return;
for (var $$i = 0;$$i < params.get$length(); $$i++) {
- var tp = params[$$i];
+ var tp = params.$index($$i);
tp.set$enclosingElement(this);
tp.resolve$0();
}
@@ -12114,7 +12161,7 @@ DefinedType.prototype.addMethod = function(methodName, definition) {
this.constructors.$setindex(method.get$constructorName(), method);
return;
}
- if (definition.modifiers != null && definition.modifiers.get$length() == (1) && $eq(definition.modifiers[(0)].get$kind(), (74))) {
+ if (definition.modifiers != null && definition.modifiers.get$length() == (1) && $eq(definition.modifiers.$index((0)).get$kind(), (74))) {
if (this.factories.getFactory(method.get$constructorName(), method.get$name()) != null) {
$globals.world.error(("duplicate factory definition of \"" + method.get$name() + "\""), definition.span);
return;
@@ -12156,14 +12203,14 @@ DefinedType.prototype.addMethod = function(methodName, definition) {
DefinedType.prototype.addField = function(definition) {
for (var i = (0);
i < definition.names.get$length(); i++) {
- var name = definition.names[i].get$name();
+ var name = definition.names.$index(i).get$name();
if (this.members.containsKey(name)) {
$globals.world.error(("duplicate field definition of \"" + name + "\""), definition.span);
return;
}
var value = null;
if (definition.values != null) {
- value = definition.values[i];
+ value = definition.values.$index(i);
}
var field = new FieldMember(name, this, definition, value);
this.members.$setindex(name, field);
@@ -12202,9 +12249,9 @@ DefinedType.prototype._checkDefaultTypeParams = function() {
if (typeDef.defaultType.oldFactory) {
return;
}
- var interfaceParams = toList.call$1(this.typeParameters);
- var defaultParams = toList.call$1(typeDef.defaultType.typeParameters);
- var classParams = toList.call$1(this.defaultType.typeParameters);
+ var interfaceParams = toList(this.typeParameters);
+ var defaultParams = toList(typeDef.defaultType.typeParameters);
+ var classParams = toList(this.defaultType.typeParameters);
if ($ne(interfaceParams.get$length(), defaultParams.get$length()) || $ne(defaultParams.get$length(), classParams.get$length())) {
$globals.world.error("\"default\" must have the same number of type parameters as the class and interface do", this.get$span(), typeDef.defaultType.span, this.defaultType.get$span());
return;
@@ -12247,25 +12294,18 @@ DefinedType.prototype._tryCreateDefaultConstructor = function(name) {
return null;
}
DefinedType.prototype.getMember = function(memberName) {
- var member = this._foundMembers.$index(memberName);
- if (member != null) return member;
- member = this.members.$index(memberName);
+ var member = this.members.$index(memberName);
if (member != null) {
this._checkOverride(member);
- this._foundMembers.$setindex(memberName, member);
return member;
}
if (this.get$isTop()) {
var libType = this.library.findTypeByName(memberName);
if (libType != null) {
- member = libType.get$typeMember();
- this._foundMembers.$setindex(memberName, member);
- return member;
+ return libType.get$typeMember();
}
}
- member = this._getMemberInParents(memberName);
- this._foundMembers.$setindex(memberName, member);
- return member;
+ return this._getMemberInParents(memberName);
}
DefinedType.prototype.resolveTypeParams = function(inType) {
return this;
@@ -12276,10 +12316,10 @@ DefinedType.prototype.getOrMakeConcreteType = function(typeArgs) {
var typeMap = new HashMapImplementation();
for (var i = (0);
i < typeArgs.get$length(); i++) {
- var paramName = this.typeParameters[i].get$name();
- typeMap.$setindex(paramName, typeArgs[i]);
- names.add$1(typeArgs[i].get$name());
- jsnames.add$1(typeArgs[i].get$jsname());
+ var paramName = this.typeParameters.$index(i).get$name();
+ typeMap.$setindex(paramName, typeArgs.$index(i));
+ names.add$1(typeArgs.$index(i).get$name());
+ jsnames.add$1(typeArgs.$index(i).get$jsname());
}
var jsname = ("" + this.get$jsname() + "_" + Strings.join(jsnames, "$"));
var simpleName = ("" + this.name + "<" + Strings.join(names, ", ") + ">");
@@ -12362,6 +12402,9 @@ FixedCollection.prototype.some = function(f) {
FixedCollection.prototype.isEmpty = function() {
return this.length == (0);
}
+FixedCollection.prototype.every$1 = function($0) {
+ return this.every(to$call$1($0));
+};
FixedCollection.prototype.filter$1 = function($0) {
return this.filter(to$call$1($0));
};
@@ -12370,6 +12413,9 @@ FixedCollection.prototype.forEach$1 = function($0) {
};
FixedCollection.prototype.isEmpty$0 = FixedCollection.prototype.isEmpty;
FixedCollection.prototype.iterator$0 = FixedCollection.prototype.iterator;
+FixedCollection.prototype.some$1 = function($0) {
+ return this.some(to$call$1($0));
+};
// ********** Code for FixedCollection_Type **************
$inherits(FixedCollection_Type, FixedCollection);
function FixedCollection_Type(value, length) {
@@ -12496,6 +12542,9 @@ CopyOnWriteMap.prototype.forEach$1 = function($0) {
CopyOnWriteMap.prototype.getKeys$0 = CopyOnWriteMap.prototype.getKeys;
CopyOnWriteMap.prototype.getValues$0 = CopyOnWriteMap.prototype.getValues;
CopyOnWriteMap.prototype.isEmpty$0 = CopyOnWriteMap.prototype.isEmpty;
+CopyOnWriteMap.prototype.putIfAbsent$2 = function($0, $1) {
+ return this.putIfAbsent($0, to$call$0($1));
+};
// ********** Code for CopyOnWriteMap_K$V **************
$inherits(CopyOnWriteMap_K$V, CopyOnWriteMap);
function CopyOnWriteMap_K$V() {}
@@ -12563,9 +12612,6 @@ Value.prototype.get$needsTemp = function() {
Value.prototype.get$staticType = function() {
return this.get$type();
}
-Value.comma = function(x, y) {
- return new Value(y.get$type(), ("(" + x.get$code() + ", " + y.get$code() + ")"), null);
-}
Value.union = function(x, y) {
if (y == null || $eq(x, y)) return x;
if (x == null) return y;
@@ -12590,83 +12636,15 @@ Value.prototype.get_ = function(context, name, node) {
return this.invokeNoSuchMethod(context, ("get:" + name), node);
}
}
-Value.prototype.set_ = function(context, name, node, value, isDynamic, kind, returnKind) {
+Value.prototype.set_ = function(context, name, node, value, isDynamic) {
var member = this._resolveMember(context, name, node, isDynamic);
if (member != null) {
- var thisValue = this;
- var thisTmp = null;
- var retTmp = null;
- if (kind != (0)) {
- thisTmp = context.getTemp(thisValue);
- thisValue = context.assignTemp(thisTmp, thisValue);
- var lhs = member._get$3(context, node, thisTmp);
- if (returnKind == (3)) {
- retTmp = context.forceTemp(lhs);
- lhs = context.assignTemp(retTmp, lhs);
- }
- value = lhs.binop$4(kind, value, context, node);
- }
- if (returnKind == (2)) {
- retTmp = context.forceTemp(value);
- value = context.assignTemp(retTmp, value);
- }
- var ret = member._set$5(context, node, thisValue, value, isDynamic);
- if (thisTmp != null && $ne(thisTmp, this)) context.freeTemp(thisTmp);
- if (retTmp != null) {
- context.freeTemp(retTmp);
- return Value.comma(ret, retTmp);
- }
- else {
- return ret;
- }
+ return member._set$5(context, node, this, value, isDynamic);
}
else {
return this.invokeNoSuchMethod(context, ("set:" + name), node, new Arguments(null, [value]));
}
}
-Value.prototype.setIndex = function(context, index, node, value, isDynamic, kind, returnKind) {
- var member = this._resolveMember(context, ":setindex", node, isDynamic);
- if (member != null) {
- var thisValue = this;
- var indexValue = index;
- var thisTmp = null;
- var indexTmp = null;
- var retTmp = null;
- if (returnKind == (2)) {
- retTmp = context.forceTemp(value);
- }
- if (kind != (0)) {
- thisTmp = context.getTemp(this);
- indexTmp = context.getTemp(index);
- thisValue = context.assignTemp(thisTmp, thisValue);
- indexValue = context.assignTemp(indexTmp, indexValue);
- if (returnKind == (3)) {
- retTmp = context.forceTemp(value);
- }
- var lhs = thisTmp.invoke$4(context, ":index", node, new Arguments(null, [indexTmp]));
- if (returnKind == (3)) {
- lhs = context.assignTemp(retTmp, lhs);
- }
- value = lhs.binop$4(kind, value, context, node);
- }
- if (returnKind == (2)) {
- value = context.assignTemp(retTmp, value);
- }
- var ret = member.invoke$5(context, node, thisValue, new Arguments(null, [indexValue, value]), isDynamic);
- if (thisTmp != null && $ne(thisTmp, this)) context.freeTemp(thisTmp);
- if (indexTmp != null && $ne(indexTmp, index)) context.freeTemp(indexTmp);
- if (retTmp != null) {
- context.freeTemp(retTmp);
- return Value.comma(ret, retTmp);
- }
- else {
- return ret;
- }
- }
- else {
- return this.invokeNoSuchMethod(context, ":index", node, new Arguments(null, [index, value]));
- }
-}
Value.prototype.unop = function(kind, context, node) {
switch (kind) {
case (19):
@@ -12735,48 +12713,21 @@ Value.prototype.canInvoke = function(context, name, args) {
return member != null && member.canInvoke$2(context, args);
}
Value.prototype._hasOverriddenNoSuchMethod = function() {
- var m = this.get$type().getMember("noSuchMethod");
- return m != null && !m.get$declaringType().get$isObject();
-}
-Value.prototype.get$isPreciseType = function() {
- return this.get$isSuper() || this.get$isType();
-}
-Value.prototype._missingMemberError = function(context, name, isDynamic, node) {
- var onStaticType = false;
- if ($ne(this.get$type(), this.get$staticType())) {
- onStaticType = this.get$staticType().getMember(name) != null;
- }
- if (!onStaticType && !isDynamic && !this._isVarOrParameterType(this.get$staticType()) && !this._hasOverriddenNoSuchMethod()) {
- var typeName = this.get$staticType().name;
- if (typeName == null) typeName = this.get$staticType().get$library().name;
- var message = ("can not resolve \"" + name + "\" on \"" + typeName + "\"");
- if (this.get$isType()) {
- $globals.world.error(message, node.span);
- }
- else {
- $globals.world.warning(message, node.span);
- }
- }
-}
-Value.prototype._tryResolveMember = function(context, name, isDynamic, node) {
- var member = this.get$type().getMember(name);
- if (member == null) {
- this._missingMemberError(context, name, isDynamic, node);
- return null;
+ if (this.get$isSuper()) {
+ var m = this.get$staticType().getMember("noSuchMethod");
+ return m != null && !m.get$declaringType().get$isObject();
}
else {
- if (this.get$isType() && !member.get$isStatic()) {
- if (!isDynamic) {
- $globals.world.error("can not refer to instance member as static", node.span);
- }
- return null;
- }
+ var m = this.get$staticType().resolveMember("noSuchMethod");
+ return m != null && m.get$members().get$length() > (1);
}
- if (this.get$isPreciseType() || member.get$isStatic()) {
- return member.get$preciseMemberSet();
+}
+Value.prototype._tryResolveMember = function(context, resolvetype, name) {
+ if (this.get$isSuper()) {
+ return resolvetype.getMember(name);
}
else {
- return member.get$potentialMemberSet();
+ return resolvetype.resolveMember(name);
}
}
Value.prototype._isVarOrParameterType = function(t) {
@@ -12786,9 +12737,29 @@ Value.prototype._shouldBindDynamically = function() {
return this._isVarOrParameterType(this.get$type()) || $globals.options.forceDynamic && !this.get$isConst();
}
Value.prototype._resolveMember = function(context, name, node, isDynamic) {
- var member = null;
+ var member;
if (!this._shouldBindDynamically()) {
- member = this._tryResolveMember(context, name, isDynamic, node);
+ member = this._tryResolveMember(context, this.get$type(), name);
+ if (member == null && $ne(this.get$type(), this.get$staticType())) {
+ member = this._tryResolveMember(context, this.get$staticType(), name);
+ }
+ if (member != null && this.get$isType() && !member.get$isStatic()) {
+ if (!isDynamic) {
+ $globals.world.error("can not refer to instance member as static", node.span);
+ }
+ return null;
+ }
+ if (member == null && !isDynamic && !this._isVarOrParameterType(this.get$staticType()) && !this._hasOverriddenNoSuchMethod()) {
+ var typeName = this.get$staticType().name;
+ if (typeName == null) typeName = this.get$staticType().get$library().name;
+ var message = ("can not resolve \"" + name + "\" on \"" + typeName + "\"");
+ if (this.get$isType()) {
+ $globals.world.error(message, node.span);
+ }
+ else {
+ $globals.world.warning(message, node.span);
+ }
+ }
}
if (member == null && !this.get$isSuper() && !this.get$isType()) {
member = context.findMembers(name);
@@ -12891,7 +12862,7 @@ Value.prototype._typeAssert = function(context, toType, isDynamic) {
if (toType.get$isVoid()) {
check = ("$assert_void(" + this.get$code() + ")");
if (toType.typeCheckCode == null) {
- toType.typeCheckCode = ("function $assert_void(x) {\n if (x == null) return null;\n " + throwTypeError.call$1("x") + "\n}");
+ toType.typeCheckCode = ("function $assert_void(x) {\n if (x == null) return null;\n " + throwTypeError("x") + "\n}");
}
}
else if ($eq(toType, $globals.world.nonNullBool)) {
@@ -12901,7 +12872,7 @@ Value.prototype._typeAssert = function(context, toType, isDynamic) {
else if (toType.get$library().get$isCore() && toType.get$typeofName() != null) {
check = ("$assert_" + toType.name + "(" + this.get$code() + ")");
if (toType.typeCheckCode == null) {
- toType.typeCheckCode = ("function $assert_" + toType.name + "(x) {\n if (x == null || typeof(x) == \"" + toType.get$typeofName() + "\") return x;\n " + throwTypeError.call$1("x") + "\n}");
+ toType.typeCheckCode = ("function $assert_" + toType.name + "(x) {\n if (x == null || typeof(x) == \"" + toType.get$typeofName() + "\") return x;\n " + throwTypeError("x") + "\n}");
}
}
else {
@@ -12911,8 +12882,8 @@ Value.prototype._typeAssert = function(context, toType, isDynamic) {
check = ("(" + context.assignTemp(temp, this).get$code() + " == null ? null :");
check = check + (" " + temp.get$code() + "." + checkName + "())");
if ($ne(this, temp)) context.freeTemp(temp);
- $globals.world.objectType.varStubs.putIfAbsent(checkName, (function () {
- return new VarMethodStub(checkName, null, Arguments.get$EMPTY(), throwTypeError.call$1("this"));
+ $globals.world.objectType.varStubs.putIfAbsent$2(checkName, (function () {
+ return new VarMethodStub(checkName, null, Arguments.get$EMPTY(), throwTypeError("this"));
})
);
}
@@ -12968,20 +12939,17 @@ Value.prototype.convertWarning = function(toType) {
$globals.world.warning(("type \"" + this.get$type().name + "\" is not assignable to \"" + toType.name + "\""), this.span);
}
Value.prototype.invokeNoSuchMethod = function(context, name, node, args) {
- if (this.get$isType()) {
- $globals.world.error(("member lookup failed for \"" + name + "\""), node.span);
- }
var pos = "";
if (args != null) {
var argsCode = [];
for (var i = (0);
i < args.get$length(); i++) {
- argsCode.add$1(args.values[i].get$code());
+ argsCode.add$1(args.values.$index(i).get$code());
}
pos = Strings.join(argsCode, ", ");
}
var noSuchArgs = [new Value($globals.world.stringType, ("\"" + name + "\""), node.span), new Value($globals.world.listType, ("[" + pos + "]"), node.span)];
- return this._resolveMember(context, "noSuchMethod", node, false).invoke(context, node, this, new Arguments(null, noSuchArgs), false);
+ return this._resolveMember(context, "noSuchMethod", node, false).invoke$4(context, node, this, new Arguments(null, noSuchArgs));
}
Value.fromBool = function(value, span) {
return new BoolValue(value, true, span);
@@ -13016,11 +12984,8 @@ Value.prototype.invoke$4$isDynamic = Value.prototype.invoke;
Value.prototype.invoke$5 = Value.prototype.invoke;
Value.prototype.invokeNoSuchMethod$4 = Value.prototype.invokeNoSuchMethod;
Value.prototype.needsConversion$1 = Value.prototype.needsConversion;
-Value.prototype.setIndex$4$kind$returnKind = function($0, $1, $2, $3, kind, returnKind) {
- return this.setIndex($0, $1, $2, $3, false, kind, returnKind);
-};
-Value.prototype.set_$4$kind$returnKind = function($0, $1, $2, $3, kind, returnKind) {
- return this.set_($0, $1, $2, $3, false, kind, returnKind);
+Value.prototype.set_$4 = function($0, $1, $2, $3) {
+ return this.set_($0, $1, $2, $3, false);
};
Value.prototype.unop$3 = Value.prototype.unop;
// ********** Code for EvaluatedValue **************
@@ -13040,7 +13005,7 @@ EvaluatedValue.prototype.hashCode = function() {
return this.get$code().hashCode();
}
EvaluatedValue.prototype.$eq = function(other) {
- return (other instanceof EvaluatedValue) && $eq(other.get$type(), this.get$type()) && $eq(other.get$code(), this.get$code());
+ return (other instanceof EvaluatedValue) && $eq(other.get$type(), this.type) && $eq(other.get$code(), this.get$code());
}
EvaluatedValue.prototype.hashCode$0 = EvaluatedValue.prototype.hashCode;
// ********** Code for NullValue **************
@@ -13187,7 +13152,7 @@ IntValue.prototype.binop = function(kind, other, context, node) {
case (42):
- return new IntValue($add(x, y), c, s);
+ return new IntValue(x + y, c, s);
case (43):
@@ -13243,7 +13208,7 @@ IntValue.prototype.binop = function(kind, other, context, node) {
case (42):
- return new DoubleValue($add(x, y), c, s);
+ return new DoubleValue(x + y, c, s);
case (43):
@@ -13329,7 +13294,7 @@ DoubleValue.prototype.binop = function(kind, other, context, node) {
case (42):
- return new DoubleValue($add(x, y), c, s);
+ return new DoubleValue(x + y, c, s);
case (43):
@@ -13385,7 +13350,7 @@ DoubleValue.prototype.binop = function(kind, other, context, node) {
case (42):
- return new DoubleValue($add(x, y), c, s);
+ return new DoubleValue(x + y, c, s);
case (43):
@@ -13550,7 +13515,7 @@ ListValue.prototype.get$code = function() {
for (var i = (0);
i < this.values.get$length(); i = $add(i, (1))) {
if (i > (0)) buf.add$1(", ");
- buf.add$1(this.values[i].get$code());
+ buf.add$1(this.values.$index(i).get$code());
}
buf.add$1("]");
var listCode = buf.toString$0();
@@ -13565,11 +13530,11 @@ ListValue.prototype.binop = function(kind, other, context, node) {
switch (kind) {
case (50):
- return new BoolValue($eq(this.get$type(), other.get$type()) && this.get$code() == other.get$code(), this.isConst && other.get$isConst(), node.get$span());
+ return new BoolValue($eq(this.type, other.get$type()) && this.get$code() == other.get$code(), this.isConst && other.get$isConst(), node.get$span());
case (51):
- return new BoolValue($ne(this.get$type(), other.get$type()) || this.get$code() != other.get$code(), this.isConst && other.get$isConst(), node.get$span());
+ return new BoolValue($ne(this.type, other.get$type()) || this.get$code() != other.get$code(), this.isConst && other.get$isConst(), node.get$span());
}
return Value.prototype.binop.call(this, kind, other, context, node);
@@ -13600,11 +13565,11 @@ MapValue.prototype.binop = function(kind, other, context, node) {
switch (kind) {
case (50):
- return new BoolValue($eq(this.get$type(), other.get$type()) && this.get$code() == other.get$code(), this.isConst && other.get$isConst(), node.get$span());
+ return new BoolValue($eq(this.type, other.get$type()) && this.get$code() == other.get$code(), this.isConst && other.get$isConst(), node.get$span());
case (51):
- return new BoolValue($ne(this.get$type(), other.get$type()) || this.get$code() != other.get$code(), this.isConst && other.get$isConst(), node.get$span());
+ return new BoolValue($ne(this.type, other.get$type()) || this.get$code() != other.get$code(), this.isConst && other.get$isConst(), node.get$span());
}
return Value.prototype.binop.call(this, kind, other, context, node);
@@ -13626,7 +13591,7 @@ ObjectValue.prototype.get$code = function() {
return this._code;
}
ObjectValue.prototype.initFields = function() {
- var allMembers = $globals.world.gen._orderValues(this.get$type().getAllMembers());
+ var allMembers = $globals.world.gen._orderValues(this.type.getAllMembers());
for (var $$i = allMembers.iterator$0(); $$i.hasNext$0(); ) {
var f = $$i.next$0();
if (f.get$isField() && !f.get$isStatic() && f.get$declaringType().get$isClass()) {
@@ -13660,9 +13625,9 @@ ObjectValue.prototype.setField = function(field, value, duringInit) {
ObjectValue.prototype.validateInitialized = function(span) {
var buf = new StringBufferImpl("");
buf.add$1("Object.create(");
- buf.add$1(("" + this.get$type().get$jsname() + ".prototype, "));
+ buf.add$1(("" + this.type.get$jsname() + ".prototype, "));
buf.add$1("{");
- var $$list = this.fields.getKeys();
+ var $$list = this.fields.getKeys$0();
for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
var field = $$i.next$0();
buf.add$1(field.get$name());
@@ -13686,12 +13651,12 @@ ObjectValue.prototype.binop = function(kind, other, context, node) {
case (50):
case (48):
- return new BoolValue($eq(this.get$type(), other.get$type()) && this.get$code() == other.get$code(), this.isConst && other.get$isConst(), node.get$span());
+ return new BoolValue($eq(this.type, other.get$type()) && this.get$code() == other.get$code(), this.isConst && other.get$isConst(), node.get$span());
case (51):
case (49):
- return new BoolValue($ne(this.get$type(), other.get$type()) || this.get$code() != other.get$code(), this.isConst && other.get$isConst(), node.get$span());
+ return new BoolValue($ne(this.type, other.get$type()) || this.get$code() != other.get$code(), this.isConst && other.get$isConst(), node.get$span());
}
return Value.prototype.binop.call(this, kind, other, context, node);
@@ -13708,7 +13673,7 @@ function GlobalValue(type, code, isConst, field, name, exp, span, deps) {
this.isConst = isConst;
Value.call(this, type, code, span);
for (var $$i = 0;$$i < deps.get$length(); $$i++) {
- var dep = deps[$$i];
+ var dep = deps.$index($$i);
if ((dep instanceof GlobalValue)) {
this.dependencies.add(dep);
this.dependencies.addAll(dep.get$dependencies());
@@ -13774,18 +13739,23 @@ BareValue.prototype.get$code = function() {
return this._code;
}
BareValue.prototype._ensureCode = function() {
- if (this._code == null) this._code = this.isType ? this.get$type().get$jsname() : this.home._makeThisCode();
+ if (this._code == null) this._code = this.isType ? this.type.get$jsname() : this.home._makeThisCode();
}
-BareValue.prototype._tryResolveMember = function(context, name, isDynamic, node) {
- var member = this.get$type().getMember(name);
- if (member == null || $ne(member.get$declaringType(), this.get$type())) {
- var libMember = this.home.get$library().lookup(name, this.span);
- if (libMember != null) {
- return libMember.get$preciseMemberSet();
+BareValue.prototype._tryResolveMember = function(context, resolveType, name) {
+ var member = resolveType.resolveMember(name);
+ if (member != null) {
+ if ($globals.options.forceDynamic && !member.get$isStatic()) {
+ member = context.findMembers(name);
}
+ this._ensureCode();
+ return member;
+ }
+ member = this.home.get$library().lookup(name, this.span);
+ if (member != null) {
+ return member;
}
this._ensureCode();
- return Value.prototype._tryResolveMember.call(this, context, name, isDynamic, node);
+ return null;
}
// ********** Code for SuperValue **************
$inherits(SuperValue, Value);
@@ -13891,7 +13861,7 @@ VariableValue.prototype.get$isConst = function() {
return this.value != null ? this.value.get$isConst() : false;
}
VariableValue.prototype.replaceValue = function(v) {
- return new VariableValue(this.get$staticType(), this.get$code(), this.span, this.isFinal, v);
+ return new VariableValue(this.get$staticType(), this.code, this.span, this.isFinal, v);
}
VariableValue.prototype.unop = function(kind, context, node) {
if (this.value != null) {
@@ -13924,25 +13894,19 @@ CompilerException.prototype.toString = function() {
CompilerException.prototype.toString$0 = CompilerException.prototype.toString;
// ********** Code for CounterLog **************
function CounterLog() {
- this.msetN = (0);
this.objectProtoMembers = (0);
this.dynamicMethodCalls = (0);
this.typeAsserts = (0);
- this.invokeCalls = (0);
}
CounterLog.prototype.info = function() {
$globals.world.info(("Dynamically typed method calls: " + this.dynamicMethodCalls));
$globals.world.info(("Generated type assertions: " + this.typeAsserts));
$globals.world.info(("Members on Object.prototype: " + this.objectProtoMembers));
- $globals.world.info(("Invoke calls: " + this.invokeCalls));
- $globals.world.info(("msetN calls: " + this.msetN));
}
CounterLog.prototype.add = function(other) {
- this.dynamicMethodCalls = $add(this.dynamicMethodCalls, other.dynamicMethodCalls);
- this.typeAsserts = $add(this.typeAsserts, other.typeAsserts);
- this.objectProtoMembers = $add(this.objectProtoMembers, other.objectProtoMembers);
- this.invokeCalls = $add(this.invokeCalls, other.invokeCalls);
- this.msetN = $add(this.msetN, other.msetN);
+ this.dynamicMethodCalls += other.dynamicMethodCalls;
+ this.typeAsserts += other.typeAsserts;
+ this.objectProtoMembers += other.objectProtoMembers;
}
CounterLog.prototype.add$1 = CounterLog.prototype.add;
// ********** Code for World **************
@@ -14105,7 +14069,7 @@ World.prototype.runLeg = function() {
this.fatal("requested leg enabled, but no leg compiler available");
}
var res = this.withTiming("try leg compile", (function () {
- return $globals.legCompile.call$1($this);
+ return $globals.legCompile($this);
})
);
if (!res && $globals.options.legOnly) {
@@ -14140,7 +14104,7 @@ World.prototype.getGeneratedCode = function() {
World.prototype.readFile = function(filename) {
try {
var sourceFile = this.reader.readFile(filename);
- this.dartBytesRead = $add(this.dartBytesRead, sourceFile.get$text().get$length());
+ this.dartBytesRead = this.dartBytesRead + sourceFile.get$text().get$length();
return sourceFile;
} catch (e) {
e = _toDartException(e);
@@ -14184,12 +14148,12 @@ World.prototype.processDartScript = function(script) {
return library;
}
World.prototype.resolveAll = function() {
- var $$list = this.libraries.getValues();
+ var $$list = this.libraries.getValues$0();
for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
var lib = $$i.next$0();
lib.resolve$0();
}
- var $$list = this.libraries.getValues();
+ var $$list = this.libraries.getValues$0();
for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
var lib = $$i.next$0();
lib.postResolveChecks$0();
@@ -14199,10 +14163,22 @@ World.prototype.get$resolveAll = function() {
return this.resolveAll.bind(this);
}
World.prototype.findMainMethod = function(lib) {
- var main = lib.lookup("main", lib.get$span());
- if (main == null) {
+ var mainMembers = lib.topType.resolveMember("main");
+ var main = null;
+ if (mainMembers == null || $eq(mainMembers.get$members().get$length(), (0))) {
this.fatal("no main method specified");
}
+ else if (mainMembers.get$members().get$length() > (1)) {
+ var $$list = mainMembers.get$members();
+ for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) {
+ var m = $$i.next$0();
+ main = m;
+ this.error("more than one main member (using last?)", main.get$span());
+ }
+ }
+ else {
+ main = mainMembers.get$members().$index((0));
+ }
return main;
}
World.prototype.generateCode = function(lib) {
@@ -14271,7 +14247,7 @@ World.prototype.withoutForceDynamic = function(fn) {
var oldForceDynamic = $globals.options.forceDynamic;
$globals.options.forceDynamic = false;
try {
- return fn.call$0();
+ return fn();
} finally {
$globals.options.forceDynamic = oldForceDynamic;
}
@@ -14297,7 +14273,7 @@ World.prototype.printStatus = function() {
World.prototype.withTiming = function(name, f) {
var sw = new StopwatchImplementation();
sw.start$0();
- var result = f.call$0();
+ var result = f();
sw.stop$0();
this.info(("" + name + " in " + sw.elapsedInMs$0() + "msec"));
return result;
@@ -14339,7 +14315,7 @@ function FrogOptions(homedir, args, files) {
loop:
for (var i = (2);
i < args.get$length(); i++) {
- var arg = args[i];
+ var arg = args.$index(i);
switch (arg) {
case "--enable_leg":
@@ -14432,7 +14408,7 @@ function FrogOptions(homedir, args, files) {
if (arg.endsWith$1(".dart")) {
this.dartScript = arg;
- this.childArgs = args.getRange($add(i, (1)), args.get$length() - i - (1));
+ this.childArgs = args.getRange$2(i + (1), args.get$length() - i - (1));
break loop;
}
else if (arg.startsWith$1("--out=")) {
@@ -14590,7 +14566,7 @@ VarMethodStub.prototype.generate = function(code) {
VarMethodStub.prototype._needsExactTypeCheck = function() {
var $this = this; // closure support
if (this.member == null || this.member.declaringType.get$isObject()) return false;
- var members = this.member.get$potentialMemberSet().members;
+ var members = this.member.declaringType.resolveMember(this.member.name).members;
return members.filter$1((function (m) {
return $ne(m, $this.member) && m.get$declaringType().get$isHiddenNativeType();
})
@@ -14604,7 +14580,7 @@ VarMethodStub.prototype._useDirectCall = function(args) {
}
for (var i = args.get$length();
i < method.parameters.get$length(); i++) {
- if ($ne(method.parameters[i].get$value().get$code(), "null")) {
+ if ($ne(method.parameters.$index(i).get$value().get$code(), "null")) {
return false;
}
}
@@ -14637,7 +14613,7 @@ VarMethodSet.prototype._invokeMembers = function(context, node) {
var hasObjectType = false;
var $$list = this.members;
for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
- var member = $$list[$$i];
+ var member = $$list.$index($$i);
var type = member.get$declaringType();
var target = new Value(type, "this", node.span);
var result = member.invoke$4$isDynamic(context, node, target, this.args, true);
@@ -14668,13 +14644,13 @@ function map(source, mapper) {
result.set$length(list.get$length());
for (var i = (0);
i < list.get$length(); i++) {
- result.$setindex(i, mapper.call$1(list[i]));
+ result.$setindex(i, mapper(list.$index(i)));
}
}
else {
for (var $$i = source.iterator$0(); $$i.hasNext$0(); ) {
var item = $$i.next$0();
- result.add(mapper.call$1(item));
+ result.add(mapper(item));
}
}
return result;
@@ -14698,7 +14674,7 @@ function orderValuesByKeys(map) {
);
var values = [];
for (var $$i = 0;$$i < keys.get$length(); $$i++) {
- var k = keys[$$i];
+ var k = keys.$index($$i);
values.add$1(map.$index(k));
}
return values;
@@ -14735,11 +14711,11 @@ function _getCallStubName(name, args) {
// ********** Library minfrog **************
// ********** Code for top level **************
function main() {
- var homedir = path.dirname(fs.realpathSync(get$process().get$argv()[(1)]));
+ var homedir = path.dirname(fs.realpathSync(get$process().get$argv().$index((1))));
var argv = [];
for (var i = (0);
i < get$process().get$argv().get$length(); i++) {
- argv.add$1(get$process().get$argv()[i]);
+ argv.add$1(get$process().get$argv().$index(i));
if (i == (1)) {
var terminal = get$process().get$env().$index("TERM");
if (terminal == null || !terminal.startsWith$1("xterm")) {
« no previous file with comments | « frog/member.dart ('k') | frog/tests/frog/frog.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698