OLD | NEW |
1 #!/usr/bin/env node | 1 #!/usr/bin/env node |
2 // ********** Library dart:core ************** | 2 // ********** Library dart:core ************** |
3 // ********** Natives dart:core ************** | 3 // ********** Natives dart:core ************** |
4 function $throw(e) { | 4 function $throw(e) { |
5 // If e is not a value, we can use V8's captureStackTrace utility method. | 5 // If e is not a value, we can use V8's captureStackTrace utility method. |
6 // TODO(jmesserly): capture the stack trace on other JS engines. | 6 // TODO(jmesserly): capture the stack trace on other JS engines. |
7 if (e && (typeof e == 'object') && Error.captureStackTrace) { | 7 if (e && (typeof e == 'object') && Error.captureStackTrace) { |
8 // TODO(jmesserly): this will clobber the e.stack property | 8 // TODO(jmesserly): this will clobber the e.stack property |
9 Error.captureStackTrace(e, $throw); | 9 Error.captureStackTrace(e, $throw); |
10 } | 10 } |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 }, enumerable: false, writable: true, configurable: true }); | 94 }, enumerable: false, writable: true, configurable: true }); |
95 Object.defineProperty(Object.prototype, "_checkExtends$0", { value: function() { | 95 Object.defineProperty(Object.prototype, "_checkExtends$0", { value: function() { |
96 return this.noSuchMethod$2("_checkExtends", []); | 96 return this.noSuchMethod$2("_checkExtends", []); |
97 }, enumerable: false, writable: true, configurable: true }); | 97 }, enumerable: false, writable: true, configurable: true }); |
98 Object.defineProperty(Object.prototype, "_checkNonStatic$1", { value: function($
0) { | 98 Object.defineProperty(Object.prototype, "_checkNonStatic$1", { value: function($
0) { |
99 return this.noSuchMethod$2("_checkNonStatic", [$0]); | 99 return this.noSuchMethod$2("_checkNonStatic", [$0]); |
100 }, enumerable: false, writable: true, configurable: true }); | 100 }, enumerable: false, writable: true, configurable: true }); |
101 Object.defineProperty(Object.prototype, "_evalConstConstructor$2", { value: func
tion($0, $1) { | 101 Object.defineProperty(Object.prototype, "_evalConstConstructor$2", { value: func
tion($0, $1) { |
102 return this.noSuchMethod$2("_evalConstConstructor", [$0, $1]); | 102 return this.noSuchMethod$2("_evalConstConstructor", [$0, $1]); |
103 }, enumerable: false, writable: true, configurable: true }); | 103 }, enumerable: false, writable: true, configurable: true }); |
| 104 Object.defineProperty(Object.prototype, "_forEachKey$2", { value: function($0, $
1) { |
| 105 return this.noSuchMethod$2("_forEachKey", [$0, $1]); |
| 106 }, enumerable: false, writable: true, configurable: true }); |
104 Object.defineProperty(Object.prototype, "_get$3", { value: function($0, $1, $2)
{ | 107 Object.defineProperty(Object.prototype, "_get$3", { value: function($0, $1, $2)
{ |
105 return this.noSuchMethod$2("_get", [$0, $1, $2]); | 108 return this.noSuchMethod$2("_get", [$0, $1, $2]); |
106 }, enumerable: false, writable: true, configurable: true }); | 109 }, enumerable: false, writable: true, configurable: true }); |
107 Object.defineProperty(Object.prototype, "_get$3$isDynamic", { value: function($0
, $1, $2, isDynamic) { | 110 Object.defineProperty(Object.prototype, "_get$3$isDynamic", { value: function($0
, $1, $2, isDynamic) { |
108 return this.noSuchMethod$2("_get", [$0, $1, $2, isDynamic]); | 111 return this.noSuchMethod$2("_get", [$0, $1, $2, isDynamic]); |
109 }, enumerable: false, writable: true, configurable: true }); | 112 }, enumerable: false, writable: true, configurable: true }); |
110 Object.defineProperty(Object.prototype, "_get$4", { value: function($0, $1, $2,
$3) { | 113 Object.defineProperty(Object.prototype, "_get$4", { value: function($0, $1, $2,
$3) { |
111 return this.noSuchMethod$2("_get", [$0, $1, $2, $3]); | 114 return this.noSuchMethod$2("_get", [$0, $1, $2, $3]); |
112 }, enumerable: false, writable: true, configurable: true }); | 115 }, enumerable: false, writable: true, configurable: true }); |
113 Object.defineProperty(Object.prototype, "_pushBlock$1", { value: function($0) { | 116 Object.defineProperty(Object.prototype, "_pushBlock$1", { value: function($0) { |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 }, enumerable: false, writable: true, configurable: true }); | 187 }, enumerable: false, writable: true, configurable: true }); |
185 Object.defineProperty(Object.prototype, "endsWith$1", { value: function($0) { | 188 Object.defineProperty(Object.prototype, "endsWith$1", { value: function($0) { |
186 return this.noSuchMethod$2("endsWith", [$0]); | 189 return this.noSuchMethod$2("endsWith", [$0]); |
187 }, enumerable: false, writable: true, configurable: true }); | 190 }, enumerable: false, writable: true, configurable: true }); |
188 Object.defineProperty(Object.prototype, "ensureSubtypeOf$3", { value: function($
0, $1, $2) { | 191 Object.defineProperty(Object.prototype, "ensureSubtypeOf$3", { value: function($
0, $1, $2) { |
189 return this.noSuchMethod$2("ensureSubtypeOf", [$0, $1, $2]); | 192 return this.noSuchMethod$2("ensureSubtypeOf", [$0, $1, $2]); |
190 }, enumerable: false, writable: true, configurable: true }); | 193 }, enumerable: false, writable: true, configurable: true }); |
191 Object.defineProperty(Object.prototype, "evalBody$2", { value: function($0, $1)
{ | 194 Object.defineProperty(Object.prototype, "evalBody$2", { value: function($0, $1)
{ |
192 return this.noSuchMethod$2("evalBody", [$0, $1]); | 195 return this.noSuchMethod$2("evalBody", [$0, $1]); |
193 }, enumerable: false, writable: true, configurable: true }); | 196 }, enumerable: false, writable: true, configurable: true }); |
| 197 Object.defineProperty(Object.prototype, "every$1", { value: function($0) { |
| 198 return this.noSuchMethod$2("every", [$0]); |
| 199 }, enumerable: false, writable: true, configurable: true }); |
194 Object.defineProperty(Object.prototype, "filter$1", { value: function($0) { | 200 Object.defineProperty(Object.prototype, "filter$1", { value: function($0) { |
195 return this.noSuchMethod$2("filter", [$0]); | 201 return this.noSuchMethod$2("filter", [$0]); |
196 }, enumerable: false, writable: true, configurable: true }); | 202 }, enumerable: false, writable: true, configurable: true }); |
197 Object.defineProperty(Object.prototype, "findTypeByName$1", { value: function($0
) { | 203 Object.defineProperty(Object.prototype, "findTypeByName$1", { value: function($0
) { |
198 return this.noSuchMethod$2("findTypeByName", [$0]); | 204 return this.noSuchMethod$2("findTypeByName", [$0]); |
199 }, enumerable: false, writable: true, configurable: true }); | 205 }, enumerable: false, writable: true, configurable: true }); |
200 Object.defineProperty(Object.prototype, "forEach$1", { value: function($0) { | 206 Object.defineProperty(Object.prototype, "forEach$1", { value: function($0) { |
201 return this.noSuchMethod$2("forEach", [$0]); | 207 return this.noSuchMethod$2("forEach", [$0]); |
202 }, enumerable: false, writable: true, configurable: true }); | 208 }, enumerable: false, writable: true, configurable: true }); |
203 Object.defineProperty(Object.prototype, "genValue$2", { value: function($0, $1)
{ | 209 Object.defineProperty(Object.prototype, "genValue$2", { value: function($0, $1)
{ |
(...skipping 19 matching lines...) Expand all Loading... |
223 }, enumerable: false, writable: true, configurable: true }); | 229 }, enumerable: false, writable: true, configurable: true }); |
224 Object.defineProperty(Object.prototype, "getLine$1", { value: function($0) { | 230 Object.defineProperty(Object.prototype, "getLine$1", { value: function($0) { |
225 return this.noSuchMethod$2("getLine", [$0]); | 231 return this.noSuchMethod$2("getLine", [$0]); |
226 }, enumerable: false, writable: true, configurable: true }); | 232 }, enumerable: false, writable: true, configurable: true }); |
227 Object.defineProperty(Object.prototype, "getMember$1", { value: function($0) { | 233 Object.defineProperty(Object.prototype, "getMember$1", { value: function($0) { |
228 return this.noSuchMethod$2("getMember", [$0]); | 234 return this.noSuchMethod$2("getMember", [$0]); |
229 }, enumerable: false, writable: true, configurable: true }); | 235 }, enumerable: false, writable: true, configurable: true }); |
230 Object.defineProperty(Object.prototype, "getOrMakeConcreteType$1", { value: func
tion($0) { | 236 Object.defineProperty(Object.prototype, "getOrMakeConcreteType$1", { value: func
tion($0) { |
231 return this.noSuchMethod$2("getOrMakeConcreteType", [$0]); | 237 return this.noSuchMethod$2("getOrMakeConcreteType", [$0]); |
232 }, enumerable: false, writable: true, configurable: true }); | 238 }, enumerable: false, writable: true, configurable: true }); |
| 239 Object.defineProperty(Object.prototype, "getRange$2", { value: function($0, $1)
{ |
| 240 return this.noSuchMethod$2("getRange", [$0, $1]); |
| 241 }, enumerable: false, writable: true, configurable: true }); |
233 Object.defineProperty(Object.prototype, "getValues$0", { value: function() { | 242 Object.defineProperty(Object.prototype, "getValues$0", { value: function() { |
234 return this.noSuchMethod$2("getValues", []); | 243 return this.noSuchMethod$2("getValues", []); |
235 }, enumerable: false, writable: true, configurable: true }); | 244 }, enumerable: false, writable: true, configurable: true }); |
236 Object.defineProperty(Object.prototype, "get_$3", { value: function($0, $1, $2)
{ | 245 Object.defineProperty(Object.prototype, "get_$3", { value: function($0, $1, $2)
{ |
237 return this.noSuchMethod$2("get_", [$0, $1, $2]); | 246 return this.noSuchMethod$2("get_", [$0, $1, $2]); |
238 }, enumerable: false, writable: true, configurable: true }); | 247 }, enumerable: false, writable: true, configurable: true }); |
239 Object.defineProperty(Object.prototype, "hasNext$0", { value: function() { | 248 Object.defineProperty(Object.prototype, "hasNext$0", { value: function() { |
240 return this.noSuchMethod$2("hasNext", []); | 249 return this.noSuchMethod$2("hasNext", []); |
241 }, enumerable: false, writable: true, configurable: true }); | 250 }, enumerable: false, writable: true, configurable: true }); |
242 Object.defineProperty(Object.prototype, "hashCode$0", { value: function() { | 251 Object.defineProperty(Object.prototype, "hashCode$0", { value: function() { |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 }, enumerable: false, writable: true, configurable: true }); | 346 }, enumerable: false, writable: true, configurable: true }); |
338 Object.defineProperty(Object.prototype, "setDefinition$1", { value: function($0)
{ | 347 Object.defineProperty(Object.prototype, "setDefinition$1", { value: function($0)
{ |
339 return this.noSuchMethod$2("setDefinition", [$0]); | 348 return this.noSuchMethod$2("setDefinition", [$0]); |
340 }, enumerable: false, writable: true, configurable: true }); | 349 }, enumerable: false, writable: true, configurable: true }); |
341 Object.defineProperty(Object.prototype, "setIndex$4$kind$returnKind", { value: f
unction($0, $1, $2, $3, kind, returnKind) { | 350 Object.defineProperty(Object.prototype, "setIndex$4$kind$returnKind", { value: f
unction($0, $1, $2, $3, kind, returnKind) { |
342 return this.noSuchMethod$2("setIndex", [$0, $1, $2, $3, kind, returnKind]); | 351 return this.noSuchMethod$2("setIndex", [$0, $1, $2, $3, kind, returnKind]); |
343 }, enumerable: false, writable: true, configurable: true }); | 352 }, enumerable: false, writable: true, configurable: true }); |
344 Object.defineProperty(Object.prototype, "set_$4$kind$returnKind", { value: funct
ion($0, $1, $2, $3, kind, returnKind) { | 353 Object.defineProperty(Object.prototype, "set_$4$kind$returnKind", { value: funct
ion($0, $1, $2, $3, kind, returnKind) { |
345 return this.noSuchMethod$2("set_", [$0, $1, $2, $3, kind, returnKind]); | 354 return this.noSuchMethod$2("set_", [$0, $1, $2, $3, kind, returnKind]); |
346 }, enumerable: false, writable: true, configurable: true }); | 355 }, enumerable: false, writable: true, configurable: true }); |
| 356 Object.defineProperty(Object.prototype, "some$1", { value: function($0) { |
| 357 return this.noSuchMethod$2("some", [$0]); |
| 358 }, enumerable: false, writable: true, configurable: true }); |
347 Object.defineProperty(Object.prototype, "sort$1", { value: function($0) { | 359 Object.defineProperty(Object.prototype, "sort$1", { value: function($0) { |
348 return this.noSuchMethod$2("sort", [$0]); | 360 return this.noSuchMethod$2("sort", [$0]); |
349 }, enumerable: false, writable: true, configurable: true }); | 361 }, enumerable: false, writable: true, configurable: true }); |
350 Object.defineProperty(Object.prototype, "start$0", { value: function() { | 362 Object.defineProperty(Object.prototype, "start$0", { value: function() { |
351 return this.noSuchMethod$2("start", []); | 363 return this.noSuchMethod$2("start", []); |
352 }, enumerable: false, writable: true, configurable: true }); | 364 }, enumerable: false, writable: true, configurable: true }); |
353 Object.defineProperty(Object.prototype, "startsWith$1", { value: function($0) { | 365 Object.defineProperty(Object.prototype, "startsWith$1", { value: function($0) { |
354 return this.noSuchMethod$2("startsWith", [$0]); | 366 return this.noSuchMethod$2("startsWith", [$0]); |
355 }, enumerable: false, writable: true, configurable: true }); | 367 }, enumerable: false, writable: true, configurable: true }); |
356 Object.defineProperty(Object.prototype, "stop$0", { value: function() { | 368 Object.defineProperty(Object.prototype, "stop$0", { value: function() { |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 this._functionName = _functionName; | 498 this._functionName = _functionName; |
487 this._arguments = _arguments; | 499 this._arguments = _arguments; |
488 } | 500 } |
489 NoSuchMethodException.prototype.toString = function() { | 501 NoSuchMethodException.prototype.toString = function() { |
490 var sb = new StringBufferImpl(""); | 502 var sb = new StringBufferImpl(""); |
491 for (var i = (0); | 503 for (var i = (0); |
492 i < this._arguments.get$length(); i++) { | 504 i < this._arguments.get$length(); i++) { |
493 if (i > (0)) { | 505 if (i > (0)) { |
494 sb.add(", "); | 506 sb.add(", "); |
495 } | 507 } |
496 sb.add(this._arguments[i]); | 508 sb.add(this._arguments.$index(i)); |
497 } | 509 } |
498 sb.add("]"); | 510 sb.add("]"); |
499 return ("NoSuchMethodException - receiver: '" + this._receiver + "' ") + ("fun
ction name: '" + this._functionName + "' arguments: [" + sb + "]"); | 511 return ("NoSuchMethodException - receiver: '" + this._receiver + "' ") + ("fun
ction name: '" + this._functionName + "' arguments: [" + sb + "]"); |
500 } | 512 } |
501 NoSuchMethodException.prototype.toString$0 = NoSuchMethodException.prototype.toS
tring; | 513 NoSuchMethodException.prototype.toString$0 = NoSuchMethodException.prototype.toS
tring; |
502 // ********** Code for ClosureArgumentMismatchException ************** | 514 // ********** Code for ClosureArgumentMismatchException ************** |
503 function ClosureArgumentMismatchException() { | 515 function ClosureArgumentMismatchException() { |
504 | 516 |
505 } | 517 } |
506 ClosureArgumentMismatchException.prototype.toString = function() { | 518 ClosureArgumentMismatchException.prototype.toString = function() { |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
716 }, enumerable: false, writable: true, configurable: true }); | 728 }, enumerable: false, writable: true, configurable: true }); |
717 Object.defineProperty(ListFactory.prototype, "isEmpty", { value: function() { | 729 Object.defineProperty(ListFactory.prototype, "isEmpty", { value: function() { |
718 return this.get$length() == (0); | 730 return this.get$length() == (0); |
719 }, enumerable: false, writable: true, configurable: true }); | 731 }, enumerable: false, writable: true, configurable: true }); |
720 Object.defineProperty(ListFactory.prototype, "iterator", { value: function() { | 732 Object.defineProperty(ListFactory.prototype, "iterator", { value: function() { |
721 return new ListIterator(this); | 733 return new ListIterator(this); |
722 }, enumerable: false, writable: true, configurable: true }); | 734 }, enumerable: false, writable: true, configurable: true }); |
723 Object.defineProperty(ListFactory.prototype, "add$1", { value: ListFactory.proto
type.add, enumerable: false, writable: true, configurable: true }); | 735 Object.defineProperty(ListFactory.prototype, "add$1", { value: ListFactory.proto
type.add, enumerable: false, writable: true, configurable: true }); |
724 Object.defineProperty(ListFactory.prototype, "addAll$1", { value: ListFactory.pr
ototype.addAll, enumerable: false, writable: true, configurable: true }); | 736 Object.defineProperty(ListFactory.prototype, "addAll$1", { value: ListFactory.pr
ototype.addAll, enumerable: false, writable: true, configurable: true }); |
725 Object.defineProperty(ListFactory.prototype, "addLast$1", { value: ListFactory.p
rototype.addLast, enumerable: false, writable: true, configurable: true }); | 737 Object.defineProperty(ListFactory.prototype, "addLast$1", { value: ListFactory.p
rototype.addLast, enumerable: false, writable: true, configurable: true }); |
| 738 Object.defineProperty(ListFactory.prototype, "every$1", { value: function($0) { |
| 739 return this.every(to$call$1($0)); |
| 740 }, enumerable: false, writable: true, configurable: true }); |
726 Object.defineProperty(ListFactory.prototype, "filter$1", { value: function($0) { | 741 Object.defineProperty(ListFactory.prototype, "filter$1", { value: function($0) { |
727 return this.filter(to$call$1($0)); | 742 return this.filter(to$call$1($0)); |
728 }, enumerable: false, writable: true, configurable: true }); | 743 }, enumerable: false, writable: true, configurable: true }); |
729 Object.defineProperty(ListFactory.prototype, "forEach$1", { value: function($0)
{ | 744 Object.defineProperty(ListFactory.prototype, "forEach$1", { value: function($0)
{ |
730 return this.forEach(to$call$1($0)); | 745 return this.forEach(to$call$1($0)); |
731 }, enumerable: false, writable: true, configurable: true }); | 746 }, enumerable: false, writable: true, configurable: true }); |
| 747 Object.defineProperty(ListFactory.prototype, "getRange$2", { value: ListFactory.
prototype.getRange, enumerable: false, writable: true, configurable: true }); |
732 Object.defineProperty(ListFactory.prototype, "indexOf$1", { value: ListFactory.p
rototype.indexOf, enumerable: false, writable: true, configurable: true }); | 748 Object.defineProperty(ListFactory.prototype, "indexOf$1", { value: ListFactory.p
rototype.indexOf, enumerable: false, writable: true, configurable: true }); |
733 Object.defineProperty(ListFactory.prototype, "isEmpty$0", { value: ListFactory.p
rototype.isEmpty, enumerable: false, writable: true, configurable: true }); | 749 Object.defineProperty(ListFactory.prototype, "isEmpty$0", { value: ListFactory.p
rototype.isEmpty, enumerable: false, writable: true, configurable: true }); |
734 Object.defineProperty(ListFactory.prototype, "iterator$0", { value: ListFactory.
prototype.iterator, enumerable: false, writable: true, configurable: true }); | 750 Object.defineProperty(ListFactory.prototype, "iterator$0", { value: ListFactory.
prototype.iterator, enumerable: false, writable: true, configurable: true }); |
735 Object.defineProperty(ListFactory.prototype, "last$0", { value: ListFactory.prot
otype.last, enumerable: false, writable: true, configurable: true }); | 751 Object.defineProperty(ListFactory.prototype, "last$0", { value: ListFactory.prot
otype.last, enumerable: false, writable: true, configurable: true }); |
736 Object.defineProperty(ListFactory.prototype, "removeLast$0", { value: ListFactor
y.prototype.removeLast, enumerable: false, writable: true, configurable: true })
; | 752 Object.defineProperty(ListFactory.prototype, "removeLast$0", { value: ListFactor
y.prototype.removeLast, enumerable: false, writable: true, configurable: true })
; |
| 753 Object.defineProperty(ListFactory.prototype, "some$1", { value: function($0) { |
| 754 return this.some(to$call$1($0)); |
| 755 }, enumerable: false, writable: true, configurable: true }); |
737 Object.defineProperty(ListFactory.prototype, "sort$1", { value: function($0) { | 756 Object.defineProperty(ListFactory.prototype, "sort$1", { value: function($0) { |
738 return this.sort(to$call$2($0)); | 757 return this.sort(to$call$2($0)); |
739 }, enumerable: false, writable: true, configurable: true }); | 758 }, enumerable: false, writable: true, configurable: true }); |
740 ListFactory_E = ListFactory; | 759 ListFactory_E = ListFactory; |
741 ListFactory_Expression = ListFactory; | 760 ListFactory_Expression = ListFactory; |
742 ListFactory_K = ListFactory; | 761 ListFactory_K = ListFactory; |
743 ListFactory_dart_core_String = ListFactory; | 762 ListFactory_dart_core_String = ListFactory; |
744 ListFactory_V = ListFactory; | 763 ListFactory_V = ListFactory; |
745 ListFactory_VariableValue = ListFactory; | 764 ListFactory_VariableValue = ListFactory; |
746 ListFactory_int = ListFactory; | 765 ListFactory_int = ListFactory; |
747 // ********** Code for ListIterator ************** | 766 // ********** Code for ListIterator ************** |
748 function ListIterator(array) { | 767 function ListIterator(array) { |
749 this._array = array; | 768 this._array = array; |
750 this._pos = (0); | 769 this._pos = (0); |
751 } | 770 } |
752 ListIterator.prototype.hasNext = function() { | 771 ListIterator.prototype.hasNext = function() { |
753 return this._array.get$length() > this._pos; | 772 return this._array.get$length() > this._pos; |
754 } | 773 } |
755 ListIterator.prototype.next = function() { | 774 ListIterator.prototype.next = function() { |
756 if (!this.hasNext()) { | 775 if (!this.hasNext()) { |
757 $throw(const$0005); | 776 $throw(const$0005); |
758 } | 777 } |
759 return this._array[this._pos++]; | 778 return this._array.$index(this._pos++); |
760 } | 779 } |
761 ListIterator.prototype.hasNext$0 = ListIterator.prototype.hasNext; | 780 ListIterator.prototype.hasNext$0 = ListIterator.prototype.hasNext; |
762 ListIterator.prototype.next$0 = ListIterator.prototype.next; | 781 ListIterator.prototype.next$0 = ListIterator.prototype.next; |
763 // ********** Code for ImmutableList ************** | 782 // ********** Code for ImmutableList ************** |
764 /** Implements extends for Dart classes on JavaScript prototypes. */ | 783 /** Implements extends for Dart classes on JavaScript prototypes. */ |
765 function $inherits(child, parent) { | 784 function $inherits(child, parent) { |
766 if (child.prototype.__proto__) { | 785 if (child.prototype.__proto__) { |
767 child.prototype.__proto__ = parent.prototype; | 786 child.prototype.__proto__ = parent.prototype; |
768 } else { | 787 } else { |
769 function tmp() {}; | 788 function tmp() {}; |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
892 } | 911 } |
893 HashMapImplementation._nextProbe = function(currentProbe, numberOfProbes, length
) { | 912 HashMapImplementation._nextProbe = function(currentProbe, numberOfProbes, length
) { |
894 return (currentProbe + numberOfProbes) & (length - (1)); | 913 return (currentProbe + numberOfProbes) & (length - (1)); |
895 } | 914 } |
896 HashMapImplementation.prototype._probeForAdding = function(key) { | 915 HashMapImplementation.prototype._probeForAdding = function(key) { |
897 var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$
length()); | 916 var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$
length()); |
898 var numberOfProbes = (1); | 917 var numberOfProbes = (1); |
899 var initialHash = hash; | 918 var initialHash = hash; |
900 var insertionIndex = (-1); | 919 var insertionIndex = (-1); |
901 while (true) { | 920 while (true) { |
902 var existingKey = this._keys[hash]; | 921 var existingKey = this._keys.$index(hash); |
903 if (existingKey == null) { | 922 if (existingKey == null) { |
904 if (insertionIndex < (0)) return hash; | 923 if (insertionIndex < (0)) return hash; |
905 return insertionIndex; | 924 return insertionIndex; |
906 } | 925 } |
907 else if ($eq(existingKey, key)) { | 926 else if ($eq(existingKey, key)) { |
908 return hash; | 927 return hash; |
909 } | 928 } |
910 else if ((insertionIndex < (0)) && (const$0001 == existingKey)) { | 929 else if ((insertionIndex < (0)) && (const$0001 == existingKey)) { |
911 insertionIndex = hash; | 930 insertionIndex = hash; |
912 } | 931 } |
913 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); | 932 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); |
914 } | 933 } |
915 } | 934 } |
916 HashMapImplementation.prototype._probeForLookup = function(key) { | 935 HashMapImplementation.prototype._probeForLookup = function(key) { |
917 var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$
length()); | 936 var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$
length()); |
918 var numberOfProbes = (1); | 937 var numberOfProbes = (1); |
919 var initialHash = hash; | 938 var initialHash = hash; |
920 while (true) { | 939 while (true) { |
921 var existingKey = this._keys[hash]; | 940 var existingKey = this._keys.$index(hash); |
922 if (existingKey == null) return (-1); | 941 if (existingKey == null) return (-1); |
923 if ($eq(existingKey, key)) return hash; | 942 if ($eq(existingKey, key)) return hash; |
924 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); | 943 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); |
925 } | 944 } |
926 } | 945 } |
927 HashMapImplementation.prototype._ensureCapacity = function() { | 946 HashMapImplementation.prototype._ensureCapacity = function() { |
928 var newNumberOfEntries = this._numberOfEntries + (1); | 947 var newNumberOfEntries = this._numberOfEntries + (1); |
929 if (newNumberOfEntries >= this._loadLimit) { | 948 if (newNumberOfEntries >= this._loadLimit) { |
930 this._grow(this._keys.get$length() * (2)); | 949 this._grow(this._keys.get$length() * (2)); |
931 return; | 950 return; |
(...skipping 10 matching lines...) Expand all Loading... |
942 } | 961 } |
943 HashMapImplementation.prototype._grow = function(newCapacity) { | 962 HashMapImplementation.prototype._grow = function(newCapacity) { |
944 var capacity = this._keys.get$length(); | 963 var capacity = this._keys.get$length(); |
945 this._loadLimit = HashMapImplementation._computeLoadLimit(newCapacity); | 964 this._loadLimit = HashMapImplementation._computeLoadLimit(newCapacity); |
946 var oldKeys = this._keys; | 965 var oldKeys = this._keys; |
947 var oldValues = this._values; | 966 var oldValues = this._values; |
948 this._keys = new Array(newCapacity); | 967 this._keys = new Array(newCapacity); |
949 this._values = new Array(newCapacity); | 968 this._values = new Array(newCapacity); |
950 for (var i = (0); | 969 for (var i = (0); |
951 i < capacity; i++) { | 970 i < capacity; i++) { |
952 var key = oldKeys[i]; | 971 var key = oldKeys.$index(i); |
953 if (key == null || key == const$0001) { | 972 if (key == null || key == const$0001) { |
954 continue; | 973 continue; |
955 } | 974 } |
956 var value = oldValues[i]; | 975 var value = oldValues.$index(i); |
957 var newIndex = this._probeForAdding(key); | 976 var newIndex = this._probeForAdding(key); |
958 this._keys.$setindex(newIndex, key); | 977 this._keys.$setindex(newIndex, key); |
959 this._values.$setindex(newIndex, value); | 978 this._values.$setindex(newIndex, value); |
960 } | 979 } |
961 this._numberOfDeleted = (0); | 980 this._numberOfDeleted = (0); |
962 } | 981 } |
963 HashMapImplementation.prototype.$setindex = function(key, value) { | 982 HashMapImplementation.prototype.$setindex = function(key, value) { |
964 this._ensureCapacity(); | 983 this._ensureCapacity(); |
965 var index = this._probeForAdding(key); | 984 var index = this._probeForAdding(key); |
966 if ((this._keys[index] == null) || (this._keys[index] == const$0001)) { | 985 if ((this._keys.$index(index) == null) || (this._keys.$index(index) == const$0
001)) { |
967 this._numberOfEntries++; | 986 this._numberOfEntries++; |
968 } | 987 } |
969 this._keys.$setindex(index, key); | 988 this._keys.$setindex(index, key); |
970 this._values.$setindex(index, value); | 989 this._values.$setindex(index, value); |
971 } | 990 } |
972 HashMapImplementation.prototype.$index = function(key) { | 991 HashMapImplementation.prototype.$index = function(key) { |
973 var index = this._probeForLookup(key); | 992 var index = this._probeForLookup(key); |
974 if (index < (0)) return null; | 993 if (index < (0)) return null; |
975 return this._values[index]; | 994 return this._values.$index(index); |
976 } | 995 } |
977 HashMapImplementation.prototype.putIfAbsent = function(key, ifAbsent) { | 996 HashMapImplementation.prototype.putIfAbsent = function(key, ifAbsent) { |
978 var index = this._probeForLookup(key); | 997 var index = this._probeForLookup(key); |
979 if (index >= (0)) return this._values[index]; | 998 if (index >= (0)) return this._values.$index(index); |
980 var value = ifAbsent.call$0(); | 999 var value = ifAbsent.call$0(); |
981 this.$setindex(key, value); | 1000 this.$setindex(key, value); |
982 return value; | 1001 return value; |
983 } | 1002 } |
984 HashMapImplementation.prototype.isEmpty = function() { | 1003 HashMapImplementation.prototype.isEmpty = function() { |
985 return this._numberOfEntries == (0); | 1004 return this._numberOfEntries == (0); |
986 } | 1005 } |
987 HashMapImplementation.prototype.get$length = function() { | 1006 HashMapImplementation.prototype.get$length = function() { |
988 return this._numberOfEntries; | 1007 return this._numberOfEntries; |
989 } | 1008 } |
990 HashMapImplementation.prototype.forEach = function(f) { | 1009 HashMapImplementation.prototype.forEach = function(f) { |
991 var length = this._keys.get$length(); | 1010 var length = this._keys.get$length(); |
992 for (var i = (0); | 1011 for (var i = (0); |
993 i < length; i++) { | 1012 i < length; i++) { |
994 var key = this._keys[i]; | 1013 var key = this._keys.$index(i); |
995 if ((key != null) && (key != const$0001)) { | 1014 if ((key != null) && (key != const$0001)) { |
996 f.call$2(key, this._values[i]); | 1015 f.call$2(key, this._values.$index(i)); |
997 } | 1016 } |
998 } | 1017 } |
999 } | 1018 } |
1000 HashMapImplementation.prototype.getKeys = function() { | 1019 HashMapImplementation.prototype.getKeys = function() { |
1001 var list = new Array(this.get$length()); | 1020 var list = new Array(this.get$length()); |
1002 var i = (0); | 1021 var i = (0); |
1003 this.forEach(function _(key, value) { | 1022 this.forEach(function _(key, value) { |
1004 list.$setindex(i++, key); | 1023 list.$setindex(i++, key); |
1005 } | 1024 } |
1006 ); | 1025 ); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1042 } | 1061 } |
1043 HashMapImplementation_E$E._nextProbe = function(currentProbe, numberOfProbes, le
ngth) { | 1062 HashMapImplementation_E$E._nextProbe = function(currentProbe, numberOfProbes, le
ngth) { |
1044 return (currentProbe + numberOfProbes) & (length - (1)); | 1063 return (currentProbe + numberOfProbes) & (length - (1)); |
1045 } | 1064 } |
1046 HashMapImplementation_E$E.prototype._probeForAdding = function(key) { | 1065 HashMapImplementation_E$E.prototype._probeForAdding = function(key) { |
1047 var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$
length()); | 1066 var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$
length()); |
1048 var numberOfProbes = (1); | 1067 var numberOfProbes = (1); |
1049 var initialHash = hash; | 1068 var initialHash = hash; |
1050 var insertionIndex = (-1); | 1069 var insertionIndex = (-1); |
1051 while (true) { | 1070 while (true) { |
1052 var existingKey = this._keys[hash]; | 1071 var existingKey = this._keys.$index(hash); |
1053 if (existingKey == null) { | 1072 if (existingKey == null) { |
1054 if (insertionIndex < (0)) return hash; | 1073 if (insertionIndex < (0)) return hash; |
1055 return insertionIndex; | 1074 return insertionIndex; |
1056 } | 1075 } |
1057 else if ($eq(existingKey, key)) { | 1076 else if ($eq(existingKey, key)) { |
1058 return hash; | 1077 return hash; |
1059 } | 1078 } |
1060 else if ((insertionIndex < (0)) && (const$0001 == existingKey)) { | 1079 else if ((insertionIndex < (0)) && (const$0001 == existingKey)) { |
1061 insertionIndex = hash; | 1080 insertionIndex = hash; |
1062 } | 1081 } |
1063 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); | 1082 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); |
1064 } | 1083 } |
1065 } | 1084 } |
1066 HashMapImplementation_E$E.prototype._probeForLookup = function(key) { | 1085 HashMapImplementation_E$E.prototype._probeForLookup = function(key) { |
1067 var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$
length()); | 1086 var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$
length()); |
1068 var numberOfProbes = (1); | 1087 var numberOfProbes = (1); |
1069 var initialHash = hash; | 1088 var initialHash = hash; |
1070 while (true) { | 1089 while (true) { |
1071 var existingKey = this._keys[hash]; | 1090 var existingKey = this._keys.$index(hash); |
1072 if (existingKey == null) return (-1); | 1091 if (existingKey == null) return (-1); |
1073 if ($eq(existingKey, key)) return hash; | 1092 if ($eq(existingKey, key)) return hash; |
1074 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); | 1093 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); |
1075 } | 1094 } |
1076 } | 1095 } |
1077 HashMapImplementation_E$E.prototype._ensureCapacity = function() { | 1096 HashMapImplementation_E$E.prototype._ensureCapacity = function() { |
1078 var newNumberOfEntries = this._numberOfEntries + (1); | 1097 var newNumberOfEntries = this._numberOfEntries + (1); |
1079 if (newNumberOfEntries >= this._loadLimit) { | 1098 if (newNumberOfEntries >= this._loadLimit) { |
1080 this._grow(this._keys.get$length() * (2)); | 1099 this._grow(this._keys.get$length() * (2)); |
1081 return; | 1100 return; |
(...skipping 10 matching lines...) Expand all Loading... |
1092 } | 1111 } |
1093 HashMapImplementation_E$E.prototype._grow = function(newCapacity) { | 1112 HashMapImplementation_E$E.prototype._grow = function(newCapacity) { |
1094 var capacity = this._keys.get$length(); | 1113 var capacity = this._keys.get$length(); |
1095 this._loadLimit = HashMapImplementation._computeLoadLimit(newCapacity); | 1114 this._loadLimit = HashMapImplementation._computeLoadLimit(newCapacity); |
1096 var oldKeys = this._keys; | 1115 var oldKeys = this._keys; |
1097 var oldValues = this._values; | 1116 var oldValues = this._values; |
1098 this._keys = new Array(newCapacity); | 1117 this._keys = new Array(newCapacity); |
1099 this._values = new Array(newCapacity); | 1118 this._values = new Array(newCapacity); |
1100 for (var i = (0); | 1119 for (var i = (0); |
1101 i < capacity; i++) { | 1120 i < capacity; i++) { |
1102 var key = oldKeys[i]; | 1121 var key = oldKeys.$index(i); |
1103 if (key == null || key == const$0001) { | 1122 if (key == null || key == const$0001) { |
1104 continue; | 1123 continue; |
1105 } | 1124 } |
1106 var value = oldValues[i]; | 1125 var value = oldValues.$index(i); |
1107 var newIndex = this._probeForAdding(key); | 1126 var newIndex = this._probeForAdding(key); |
1108 this._keys.$setindex(newIndex, key); | 1127 this._keys.$setindex(newIndex, key); |
1109 this._values.$setindex(newIndex, value); | 1128 this._values.$setindex(newIndex, value); |
1110 } | 1129 } |
1111 this._numberOfDeleted = (0); | 1130 this._numberOfDeleted = (0); |
1112 } | 1131 } |
1113 HashMapImplementation_E$E.prototype.$setindex = function(key, value) { | 1132 HashMapImplementation_E$E.prototype.$setindex = function(key, value) { |
1114 this._ensureCapacity(); | 1133 this._ensureCapacity(); |
1115 var index = this._probeForAdding(key); | 1134 var index = this._probeForAdding(key); |
1116 if ((this._keys[index] == null) || (this._keys[index] == const$0001)) { | 1135 if ((this._keys.$index(index) == null) || (this._keys.$index(index) == const$0
001)) { |
1117 this._numberOfEntries++; | 1136 this._numberOfEntries++; |
1118 } | 1137 } |
1119 this._keys.$setindex(index, key); | 1138 this._keys.$setindex(index, key); |
1120 this._values.$setindex(index, value); | 1139 this._values.$setindex(index, value); |
1121 } | 1140 } |
1122 HashMapImplementation_E$E.prototype.isEmpty = function() { | 1141 HashMapImplementation_E$E.prototype.isEmpty = function() { |
1123 return this._numberOfEntries == (0); | 1142 return this._numberOfEntries == (0); |
1124 } | 1143 } |
1125 HashMapImplementation_E$E.prototype.forEach = function(f) { | 1144 HashMapImplementation_E$E.prototype.forEach = function(f) { |
1126 var length = this._keys.get$length(); | 1145 var length = this._keys.get$length(); |
1127 for (var i = (0); | 1146 for (var i = (0); |
1128 i < length; i++) { | 1147 i < length; i++) { |
1129 var key = this._keys[i]; | 1148 var key = this._keys.$index(i); |
1130 if ((key != null) && (key != const$0001)) { | 1149 if ((key != null) && (key != const$0001)) { |
1131 f.call$2(key, this._values[i]); | 1150 f.call$2(key, this._values.$index(i)); |
1132 } | 1151 } |
1133 } | 1152 } |
1134 } | 1153 } |
1135 HashMapImplementation_E$E.prototype.getKeys = function() { | 1154 HashMapImplementation_E$E.prototype.getKeys = function() { |
1136 var list = new Array(this.get$length()); | 1155 var list = new Array(this.get$length()); |
1137 var i = (0); | 1156 var i = (0); |
1138 this.forEach(function _(key, value) { | 1157 this.forEach(function _(key, value) { |
1139 list.$setindex(i++, key); | 1158 list.$setindex(i++, key); |
1140 } | 1159 } |
1141 ); | 1160 ); |
(...skipping 22 matching lines...) Expand all Loading... |
1164 } | 1183 } |
1165 HashMapImplementation_K$V._nextProbe = function(currentProbe, numberOfProbes, le
ngth) { | 1184 HashMapImplementation_K$V._nextProbe = function(currentProbe, numberOfProbes, le
ngth) { |
1166 return (currentProbe + numberOfProbes) & (length - (1)); | 1185 return (currentProbe + numberOfProbes) & (length - (1)); |
1167 } | 1186 } |
1168 HashMapImplementation_K$V.prototype._probeForAdding = function(key) { | 1187 HashMapImplementation_K$V.prototype._probeForAdding = function(key) { |
1169 var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$
length()); | 1188 var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$
length()); |
1170 var numberOfProbes = (1); | 1189 var numberOfProbes = (1); |
1171 var initialHash = hash; | 1190 var initialHash = hash; |
1172 var insertionIndex = (-1); | 1191 var insertionIndex = (-1); |
1173 while (true) { | 1192 while (true) { |
1174 var existingKey = this._keys[hash]; | 1193 var existingKey = this._keys.$index(hash); |
1175 if (existingKey == null) { | 1194 if (existingKey == null) { |
1176 if (insertionIndex < (0)) return hash; | 1195 if (insertionIndex < (0)) return hash; |
1177 return insertionIndex; | 1196 return insertionIndex; |
1178 } | 1197 } |
1179 else if ($eq(existingKey, key)) { | 1198 else if ($eq(existingKey, key)) { |
1180 return hash; | 1199 return hash; |
1181 } | 1200 } |
1182 else if ((insertionIndex < (0)) && (const$0001 == existingKey)) { | 1201 else if ((insertionIndex < (0)) && (const$0001 == existingKey)) { |
1183 insertionIndex = hash; | 1202 insertionIndex = hash; |
1184 } | 1203 } |
1185 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); | 1204 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); |
1186 } | 1205 } |
1187 } | 1206 } |
1188 HashMapImplementation_K$V.prototype._probeForLookup = function(key) { | 1207 HashMapImplementation_K$V.prototype._probeForLookup = function(key) { |
1189 var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$
length()); | 1208 var hash = HashMapImplementation._firstProbe(key.hashCode$0(), this._keys.get$
length()); |
1190 var numberOfProbes = (1); | 1209 var numberOfProbes = (1); |
1191 var initialHash = hash; | 1210 var initialHash = hash; |
1192 while (true) { | 1211 while (true) { |
1193 var existingKey = this._keys[hash]; | 1212 var existingKey = this._keys.$index(hash); |
1194 if (existingKey == null) return (-1); | 1213 if (existingKey == null) return (-1); |
1195 if ($eq(existingKey, key)) return hash; | 1214 if ($eq(existingKey, key)) return hash; |
1196 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); | 1215 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); |
1197 } | 1216 } |
1198 } | 1217 } |
1199 HashMapImplementation_K$V.prototype._ensureCapacity = function() { | 1218 HashMapImplementation_K$V.prototype._ensureCapacity = function() { |
1200 var newNumberOfEntries = this._numberOfEntries + (1); | 1219 var newNumberOfEntries = this._numberOfEntries + (1); |
1201 if (newNumberOfEntries >= this._loadLimit) { | 1220 if (newNumberOfEntries >= this._loadLimit) { |
1202 this._grow(this._keys.get$length() * (2)); | 1221 this._grow(this._keys.get$length() * (2)); |
1203 return; | 1222 return; |
(...skipping 10 matching lines...) Expand all Loading... |
1214 } | 1233 } |
1215 HashMapImplementation_K$V.prototype._grow = function(newCapacity) { | 1234 HashMapImplementation_K$V.prototype._grow = function(newCapacity) { |
1216 var capacity = this._keys.get$length(); | 1235 var capacity = this._keys.get$length(); |
1217 this._loadLimit = HashMapImplementation._computeLoadLimit(newCapacity); | 1236 this._loadLimit = HashMapImplementation._computeLoadLimit(newCapacity); |
1218 var oldKeys = this._keys; | 1237 var oldKeys = this._keys; |
1219 var oldValues = this._values; | 1238 var oldValues = this._values; |
1220 this._keys = new Array(newCapacity); | 1239 this._keys = new Array(newCapacity); |
1221 this._values = new Array(newCapacity); | 1240 this._values = new Array(newCapacity); |
1222 for (var i = (0); | 1241 for (var i = (0); |
1223 i < capacity; i++) { | 1242 i < capacity; i++) { |
1224 var key = oldKeys[i]; | 1243 var key = oldKeys.$index(i); |
1225 if (key == null || key == const$0001) { | 1244 if (key == null || key == const$0001) { |
1226 continue; | 1245 continue; |
1227 } | 1246 } |
1228 var value = oldValues[i]; | 1247 var value = oldValues.$index(i); |
1229 var newIndex = this._probeForAdding(key); | 1248 var newIndex = this._probeForAdding(key); |
1230 this._keys.$setindex(newIndex, key); | 1249 this._keys.$setindex(newIndex, key); |
1231 this._values.$setindex(newIndex, value); | 1250 this._values.$setindex(newIndex, value); |
1232 } | 1251 } |
1233 this._numberOfDeleted = (0); | 1252 this._numberOfDeleted = (0); |
1234 } | 1253 } |
1235 HashMapImplementation_K$V.prototype.$setindex = function(key, value) { | 1254 HashMapImplementation_K$V.prototype.$setindex = function(key, value) { |
1236 this._ensureCapacity(); | 1255 this._ensureCapacity(); |
1237 var index = this._probeForAdding(key); | 1256 var index = this._probeForAdding(key); |
1238 if ((this._keys[index] == null) || (this._keys[index] == const$0001)) { | 1257 if ((this._keys.$index(index) == null) || (this._keys.$index(index) == const$0
001)) { |
1239 this._numberOfEntries++; | 1258 this._numberOfEntries++; |
1240 } | 1259 } |
1241 this._keys.$setindex(index, key); | 1260 this._keys.$setindex(index, key); |
1242 this._values.$setindex(index, value); | 1261 this._values.$setindex(index, value); |
1243 } | 1262 } |
1244 HashMapImplementation_K$V.prototype.$index = function(key) { | 1263 HashMapImplementation_K$V.prototype.$index = function(key) { |
1245 var index = this._probeForLookup(key); | 1264 var index = this._probeForLookup(key); |
1246 if (index < (0)) return null; | 1265 if (index < (0)) return null; |
1247 return this._values[index]; | 1266 return this._values.$index(index); |
1248 } | 1267 } |
1249 HashMapImplementation_K$V.prototype.putIfAbsent = function(key, ifAbsent) { | 1268 HashMapImplementation_K$V.prototype.putIfAbsent = function(key, ifAbsent) { |
1250 var index = this._probeForLookup(key); | 1269 var index = this._probeForLookup(key); |
1251 if (index >= (0)) return this._values[index]; | 1270 if (index >= (0)) return this._values.$index(index); |
1252 var value = ifAbsent.call$0(); | 1271 var value = ifAbsent.call$0(); |
1253 this.$setindex(key, value); | 1272 this.$setindex(key, value); |
1254 return value; | 1273 return value; |
1255 } | 1274 } |
1256 HashMapImplementation_K$V.prototype.isEmpty = function() { | 1275 HashMapImplementation_K$V.prototype.isEmpty = function() { |
1257 return this._numberOfEntries == (0); | 1276 return this._numberOfEntries == (0); |
1258 } | 1277 } |
1259 HashMapImplementation_K$V.prototype.forEach = function(f) { | 1278 HashMapImplementation_K$V.prototype.forEach = function(f) { |
1260 var length = this._keys.get$length(); | 1279 var length = this._keys.get$length(); |
1261 for (var i = (0); | 1280 for (var i = (0); |
1262 i < length; i++) { | 1281 i < length; i++) { |
1263 var key = this._keys[i]; | 1282 var key = this._keys.$index(i); |
1264 if ((key != null) && (key != const$0001)) { | 1283 if ((key != null) && (key != const$0001)) { |
1265 f.call$2(key, this._values[i]); | 1284 f.call$2(key, this._values.$index(i)); |
1266 } | 1285 } |
1267 } | 1286 } |
1268 } | 1287 } |
1269 HashMapImplementation_K$V.prototype.getKeys = function() { | 1288 HashMapImplementation_K$V.prototype.getKeys = function() { |
1270 var list = new Array(this.get$length()); | 1289 var list = new Array(this.get$length()); |
1271 var i = (0); | 1290 var i = (0); |
1272 this.forEach(function _(key, value) { | 1291 this.forEach(function _(key, value) { |
1273 list.$setindex(i++, key); | 1292 list.$setindex(i++, key); |
1274 } | 1293 } |
1275 ); | 1294 ); |
(...skipping 28 matching lines...) Expand all Loading... |
1304 } | 1323 } |
1305 HashMapImplementation_dart_core_String$VariableValue._nextProbe = function(curre
ntProbe, numberOfProbes, length) { | 1324 HashMapImplementation_dart_core_String$VariableValue._nextProbe = function(curre
ntProbe, numberOfProbes, length) { |
1306 return (currentProbe + numberOfProbes) & (length - (1)); | 1325 return (currentProbe + numberOfProbes) & (length - (1)); |
1307 } | 1326 } |
1308 HashMapImplementation_dart_core_String$VariableValue.prototype._probeForAdding =
function(key) { | 1327 HashMapImplementation_dart_core_String$VariableValue.prototype._probeForAdding =
function(key) { |
1309 var hash = HashMapImplementation._firstProbe(key.hashCode(), this._keys.get$le
ngth()); | 1328 var hash = HashMapImplementation._firstProbe(key.hashCode(), this._keys.get$le
ngth()); |
1310 var numberOfProbes = (1); | 1329 var numberOfProbes = (1); |
1311 var initialHash = hash; | 1330 var initialHash = hash; |
1312 var insertionIndex = (-1); | 1331 var insertionIndex = (-1); |
1313 while (true) { | 1332 while (true) { |
1314 var existingKey = this._keys[hash]; | 1333 var existingKey = this._keys.$index(hash); |
1315 if (existingKey == null) { | 1334 if (existingKey == null) { |
1316 if (insertionIndex < (0)) return hash; | 1335 if (insertionIndex < (0)) return hash; |
1317 return insertionIndex; | 1336 return insertionIndex; |
1318 } | 1337 } |
1319 else if ($eq(existingKey, key)) { | 1338 else if ($eq(existingKey, key)) { |
1320 return hash; | 1339 return hash; |
1321 } | 1340 } |
1322 else if ((insertionIndex < (0)) && (const$0001 == existingKey)) { | 1341 else if ((insertionIndex < (0)) && (const$0001 == existingKey)) { |
1323 insertionIndex = hash; | 1342 insertionIndex = hash; |
1324 } | 1343 } |
1325 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); | 1344 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); |
1326 } | 1345 } |
1327 } | 1346 } |
1328 HashMapImplementation_dart_core_String$VariableValue.prototype._probeForLookup =
function(key) { | 1347 HashMapImplementation_dart_core_String$VariableValue.prototype._probeForLookup =
function(key) { |
1329 var hash = HashMapImplementation._firstProbe(key.hashCode(), this._keys.get$le
ngth()); | 1348 var hash = HashMapImplementation._firstProbe(key.hashCode(), this._keys.get$le
ngth()); |
1330 var numberOfProbes = (1); | 1349 var numberOfProbes = (1); |
1331 var initialHash = hash; | 1350 var initialHash = hash; |
1332 while (true) { | 1351 while (true) { |
1333 var existingKey = this._keys[hash]; | 1352 var existingKey = this._keys.$index(hash); |
1334 if (existingKey == null) return (-1); | 1353 if (existingKey == null) return (-1); |
1335 if ($eq(existingKey, key)) return hash; | 1354 if ($eq(existingKey, key)) return hash; |
1336 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); | 1355 hash = HashMapImplementation._nextProbe(hash, numberOfProbes++, this._keys.g
et$length()); |
1337 } | 1356 } |
1338 } | 1357 } |
1339 HashMapImplementation_dart_core_String$VariableValue.prototype._ensureCapacity =
function() { | 1358 HashMapImplementation_dart_core_String$VariableValue.prototype._ensureCapacity =
function() { |
1340 var newNumberOfEntries = this._numberOfEntries + (1); | 1359 var newNumberOfEntries = this._numberOfEntries + (1); |
1341 if (newNumberOfEntries >= this._loadLimit) { | 1360 if (newNumberOfEntries >= this._loadLimit) { |
1342 this._grow(this._keys.get$length() * (2)); | 1361 this._grow(this._keys.get$length() * (2)); |
1343 return; | 1362 return; |
(...skipping 10 matching lines...) Expand all Loading... |
1354 } | 1373 } |
1355 HashMapImplementation_dart_core_String$VariableValue.prototype._grow = function(
newCapacity) { | 1374 HashMapImplementation_dart_core_String$VariableValue.prototype._grow = function(
newCapacity) { |
1356 var capacity = this._keys.get$length(); | 1375 var capacity = this._keys.get$length(); |
1357 this._loadLimit = HashMapImplementation._computeLoadLimit(newCapacity); | 1376 this._loadLimit = HashMapImplementation._computeLoadLimit(newCapacity); |
1358 var oldKeys = this._keys; | 1377 var oldKeys = this._keys; |
1359 var oldValues = this._values; | 1378 var oldValues = this._values; |
1360 this._keys = new Array(newCapacity); | 1379 this._keys = new Array(newCapacity); |
1361 this._values = new Array(newCapacity); | 1380 this._values = new Array(newCapacity); |
1362 for (var i = (0); | 1381 for (var i = (0); |
1363 i < capacity; i++) { | 1382 i < capacity; i++) { |
1364 var key = oldKeys[i]; | 1383 var key = oldKeys.$index(i); |
1365 if (key == null || key == const$0001) { | 1384 if (key == null || key == const$0001) { |
1366 continue; | 1385 continue; |
1367 } | 1386 } |
1368 var value = oldValues[i]; | 1387 var value = oldValues.$index(i); |
1369 var newIndex = this._probeForAdding(key); | 1388 var newIndex = this._probeForAdding(key); |
1370 this._keys.$setindex(newIndex, key); | 1389 this._keys.$setindex(newIndex, key); |
1371 this._values.$setindex(newIndex, value); | 1390 this._values.$setindex(newIndex, value); |
1372 } | 1391 } |
1373 this._numberOfDeleted = (0); | 1392 this._numberOfDeleted = (0); |
1374 } | 1393 } |
1375 HashMapImplementation_dart_core_String$VariableValue.prototype.$setindex = funct
ion(key, value) { | 1394 HashMapImplementation_dart_core_String$VariableValue.prototype.$setindex = funct
ion(key, value) { |
1376 this._ensureCapacity(); | 1395 this._ensureCapacity(); |
1377 var index = this._probeForAdding(key); | 1396 var index = this._probeForAdding(key); |
1378 if ((this._keys[index] == null) || (this._keys[index] == const$0001)) { | 1397 if ((this._keys.$index(index) == null) || (this._keys.$index(index) == const$0
001)) { |
1379 this._numberOfEntries++; | 1398 this._numberOfEntries++; |
1380 } | 1399 } |
1381 this._keys.$setindex(index, key); | 1400 this._keys.$setindex(index, key); |
1382 this._values.$setindex(index, value); | 1401 this._values.$setindex(index, value); |
1383 } | 1402 } |
1384 HashMapImplementation_dart_core_String$VariableValue.prototype.$index = function
(key) { | 1403 HashMapImplementation_dart_core_String$VariableValue.prototype.$index = function
(key) { |
1385 var index = this._probeForLookup(key); | 1404 var index = this._probeForLookup(key); |
1386 if (index < (0)) return null; | 1405 if (index < (0)) return null; |
1387 return this._values[index]; | 1406 return this._values.$index(index); |
1388 } | 1407 } |
1389 HashMapImplementation_dart_core_String$VariableValue.prototype.forEach = functio
n(f) { | 1408 HashMapImplementation_dart_core_String$VariableValue.prototype.forEach = functio
n(f) { |
1390 var length = this._keys.get$length(); | 1409 var length = this._keys.get$length(); |
1391 for (var i = (0); | 1410 for (var i = (0); |
1392 i < length; i++) { | 1411 i < length; i++) { |
1393 var key = this._keys[i]; | 1412 var key = this._keys.$index(i); |
1394 if ((key != null) && (key != const$0001)) { | 1413 if ((key != null) && (key != const$0001)) { |
1395 f.call$2(key, this._values[i]); | 1414 f.call$2(key, this._values.$index(i)); |
1396 } | 1415 } |
1397 } | 1416 } |
1398 } | 1417 } |
1399 HashMapImplementation_dart_core_String$VariableValue.prototype.containsKey = fun
ction(key) { | 1418 HashMapImplementation_dart_core_String$VariableValue.prototype.containsKey = fun
ction(key) { |
1400 return (this._probeForLookup(key) != (-1)); | 1419 return (this._probeForLookup(key) != (-1)); |
1401 } | 1420 } |
1402 // ********** Code for HashSetImplementation ************** | 1421 // ********** Code for HashSetImplementation ************** |
1403 function HashSetImplementation() { | 1422 function HashSetImplementation() { |
1404 this._backingMap = new HashMapImplementation_E$E(); | 1423 this._backingMap = new HashMapImplementation_E$E(); |
1405 } | 1424 } |
(...skipping 13 matching lines...) Expand all Loading... |
1419 } | 1438 } |
1420 HashSetImplementation.prototype.addAll = function(collection) { | 1439 HashSetImplementation.prototype.addAll = function(collection) { |
1421 var $this = this; // closure support | 1440 var $this = this; // closure support |
1422 collection.forEach(function _(value) { | 1441 collection.forEach(function _(value) { |
1423 $this.add(value); | 1442 $this.add(value); |
1424 } | 1443 } |
1425 ); | 1444 ); |
1426 } | 1445 } |
1427 HashSetImplementation.prototype.forEach = function(f) { | 1446 HashSetImplementation.prototype.forEach = function(f) { |
1428 this._backingMap.forEach(function _(key, value) { | 1447 this._backingMap.forEach(function _(key, value) { |
1429 f.call$1(key); | 1448 f(key); |
1430 } | 1449 } |
1431 ); | 1450 ); |
1432 } | 1451 } |
1433 HashSetImplementation.prototype.filter = function(f) { | 1452 HashSetImplementation.prototype.filter = function(f) { |
1434 var result = new HashSetImplementation(); | 1453 var result = new HashSetImplementation(); |
1435 this._backingMap.forEach(function _(key, value) { | 1454 this._backingMap.forEach(function _(key, value) { |
1436 if (f.call$1(key)) result.add(key); | 1455 if (f(key)) result.add(key); |
1437 } | 1456 } |
1438 ); | 1457 ); |
1439 return result; | 1458 return result; |
1440 } | 1459 } |
1441 HashSetImplementation.prototype.every = function(f) { | 1460 HashSetImplementation.prototype.every = function(f) { |
1442 var keys = this._backingMap.getKeys(); | 1461 var keys = this._backingMap.getKeys(); |
1443 return keys.every(f); | 1462 return keys.every(f); |
1444 } | 1463 } |
1445 HashSetImplementation.prototype.some = function(f) { | 1464 HashSetImplementation.prototype.some = function(f) { |
1446 var keys = this._backingMap.getKeys(); | 1465 var keys = this._backingMap.getKeys(); |
1447 return keys.some(f); | 1466 return keys.some(f); |
1448 } | 1467 } |
1449 HashSetImplementation.prototype.isEmpty = function() { | 1468 HashSetImplementation.prototype.isEmpty = function() { |
1450 return this._backingMap.isEmpty(); | 1469 return this._backingMap.isEmpty(); |
1451 } | 1470 } |
1452 HashSetImplementation.prototype.get$length = function() { | 1471 HashSetImplementation.prototype.get$length = function() { |
1453 return this._backingMap.get$length(); | 1472 return this._backingMap.get$length(); |
1454 } | 1473 } |
1455 HashSetImplementation.prototype.iterator = function() { | 1474 HashSetImplementation.prototype.iterator = function() { |
1456 return new HashSetIterator_E(this); | 1475 return new HashSetIterator_E(this); |
1457 } | 1476 } |
1458 HashSetImplementation.prototype.add$1 = HashSetImplementation.prototype.add; | 1477 HashSetImplementation.prototype.add$1 = HashSetImplementation.prototype.add; |
1459 HashSetImplementation.prototype.addAll$1 = HashSetImplementation.prototype.addAl
l; | 1478 HashSetImplementation.prototype.addAll$1 = HashSetImplementation.prototype.addAl
l; |
1460 HashSetImplementation.prototype.contains$1 = HashSetImplementation.prototype.con
tains; | 1479 HashSetImplementation.prototype.contains$1 = HashSetImplementation.prototype.con
tains; |
| 1480 HashSetImplementation.prototype.every$1 = function($0) { |
| 1481 return this.every(to$call$1($0)); |
| 1482 }; |
1461 HashSetImplementation.prototype.filter$1 = function($0) { | 1483 HashSetImplementation.prototype.filter$1 = function($0) { |
1462 return this.filter(to$call$1($0)); | 1484 return this.filter(to$call$1($0)); |
1463 }; | 1485 }; |
1464 HashSetImplementation.prototype.forEach$1 = function($0) { | 1486 HashSetImplementation.prototype.forEach$1 = function($0) { |
1465 return this.forEach(to$call$1($0)); | 1487 return this.forEach(to$call$1($0)); |
1466 }; | 1488 }; |
1467 HashSetImplementation.prototype.isEmpty$0 = HashSetImplementation.prototype.isEm
pty; | 1489 HashSetImplementation.prototype.isEmpty$0 = HashSetImplementation.prototype.isEm
pty; |
1468 HashSetImplementation.prototype.iterator$0 = HashSetImplementation.prototype.ite
rator; | 1490 HashSetImplementation.prototype.iterator$0 = HashSetImplementation.prototype.ite
rator; |
| 1491 HashSetImplementation.prototype.some$1 = function($0) { |
| 1492 return this.some(to$call$1($0)); |
| 1493 }; |
1469 // ********** Code for HashSetImplementation_E ************** | 1494 // ********** Code for HashSetImplementation_E ************** |
1470 $inherits(HashSetImplementation_E, HashSetImplementation); | 1495 $inherits(HashSetImplementation_E, HashSetImplementation); |
1471 function HashSetImplementation_E() { | 1496 function HashSetImplementation_E() { |
1472 this._backingMap = new HashMapImplementation_E$E(); | 1497 this._backingMap = new HashMapImplementation_E$E(); |
1473 } | 1498 } |
1474 // ********** Code for HashSetImplementation_Library ************** | 1499 // ********** Code for HashSetImplementation_Library ************** |
1475 $inherits(HashSetImplementation_Library, HashSetImplementation); | 1500 $inherits(HashSetImplementation_Library, HashSetImplementation); |
1476 function HashSetImplementation_Library() {} | 1501 function HashSetImplementation_Library() {} |
1477 // ********** Code for HashSetImplementation_Member ************** | 1502 // ********** Code for HashSetImplementation_Member ************** |
1478 $inherits(HashSetImplementation_Member, HashSetImplementation); | 1503 $inherits(HashSetImplementation_Member, HashSetImplementation); |
1479 function HashSetImplementation_Member() {} | 1504 function HashSetImplementation_Member() {} |
1480 // ********** Code for HashSetImplementation_dart_core_String ************** | 1505 // ********** Code for HashSetImplementation_dart_core_String ************** |
1481 $inherits(HashSetImplementation_dart_core_String, HashSetImplementation); | 1506 $inherits(HashSetImplementation_dart_core_String, HashSetImplementation); |
1482 function HashSetImplementation_dart_core_String() {} | 1507 function HashSetImplementation_dart_core_String() {} |
1483 // ********** Code for HashSetImplementation_Type ************** | 1508 // ********** Code for HashSetImplementation_Type ************** |
1484 $inherits(HashSetImplementation_Type, HashSetImplementation); | 1509 $inherits(HashSetImplementation_Type, HashSetImplementation); |
1485 function HashSetImplementation_Type() {} | 1510 function HashSetImplementation_Type() {} |
1486 // ********** Code for HashSetIterator ************** | 1511 // ********** Code for HashSetIterator ************** |
1487 function HashSetIterator(set_) { | 1512 function HashSetIterator(set_) { |
1488 this._entries = set_._backingMap._keys; | 1513 this._entries = set_._backingMap._keys; |
1489 this._nextValidIndex = (-1); | 1514 this._nextValidIndex = (-1); |
1490 this._advance(); | 1515 this._advance(); |
1491 } | 1516 } |
1492 HashSetIterator.prototype.hasNext = function() { | 1517 HashSetIterator.prototype.hasNext = function() { |
1493 if (this._nextValidIndex >= this._entries.get$length()) return false; | 1518 if (this._nextValidIndex >= this._entries.get$length()) return false; |
1494 if (this._entries[this._nextValidIndex] == const$0001) { | 1519 if (this._entries.$index(this._nextValidIndex) == const$0001) { |
1495 this._advance(); | 1520 this._advance(); |
1496 } | 1521 } |
1497 return this._nextValidIndex < this._entries.get$length(); | 1522 return this._nextValidIndex < this._entries.get$length(); |
1498 } | 1523 } |
1499 HashSetIterator.prototype.next = function() { | 1524 HashSetIterator.prototype.next = function() { |
1500 if (!this.hasNext()) { | 1525 if (!this.hasNext()) { |
1501 $throw(const$0005); | 1526 $throw(const$0005); |
1502 } | 1527 } |
1503 var res = this._entries[this._nextValidIndex]; | 1528 var res = this._entries.$index(this._nextValidIndex); |
1504 this._advance(); | 1529 this._advance(); |
1505 return res; | 1530 return res; |
1506 } | 1531 } |
1507 HashSetIterator.prototype._advance = function() { | 1532 HashSetIterator.prototype._advance = function() { |
1508 var length = this._entries.get$length(); | 1533 var length = this._entries.get$length(); |
1509 var entry; | 1534 var entry; |
1510 var deletedKey = const$0001; | 1535 var deletedKey = const$0001; |
1511 do { | 1536 do { |
1512 if (++this._nextValidIndex >= length) break; | 1537 if (++this._nextValidIndex >= length) break; |
1513 entry = this._entries[this._nextValidIndex]; | 1538 entry = this._entries.$index(this._nextValidIndex); |
1514 } | 1539 } |
1515 while ((entry == null) || (entry == deletedKey)) | 1540 while ((entry == null) || (entry == deletedKey)) |
1516 } | 1541 } |
1517 HashSetIterator.prototype.hasNext$0 = HashSetIterator.prototype.hasNext; | 1542 HashSetIterator.prototype.hasNext$0 = HashSetIterator.prototype.hasNext; |
1518 HashSetIterator.prototype.next$0 = HashSetIterator.prototype.next; | 1543 HashSetIterator.prototype.next$0 = HashSetIterator.prototype.next; |
1519 // ********** Code for HashSetIterator_E ************** | 1544 // ********** Code for HashSetIterator_E ************** |
1520 $inherits(HashSetIterator_E, HashSetIterator); | 1545 $inherits(HashSetIterator_E, HashSetIterator); |
1521 function HashSetIterator_E(set_) { | 1546 function HashSetIterator_E(set_) { |
1522 this._nextValidIndex = (-1); | 1547 this._nextValidIndex = (-1); |
1523 this._entries = set_._backingMap._keys; | 1548 this._entries = set_._backingMap._keys; |
1524 this._advance(); | 1549 this._advance(); |
1525 } | 1550 } |
1526 HashSetIterator_E.prototype._advance = function() { | 1551 HashSetIterator_E.prototype._advance = function() { |
1527 var length = this._entries.get$length(); | 1552 var length = this._entries.get$length(); |
1528 var entry; | 1553 var entry; |
1529 var deletedKey = const$0001; | 1554 var deletedKey = const$0001; |
1530 do { | 1555 do { |
1531 if (++this._nextValidIndex >= length) break; | 1556 if (++this._nextValidIndex >= length) break; |
1532 entry = this._entries[this._nextValidIndex]; | 1557 entry = this._entries.$index(this._nextValidIndex); |
1533 } | 1558 } |
1534 while ((entry == null) || (entry == deletedKey)) | 1559 while ((entry == null) || (entry == deletedKey)) |
1535 } | 1560 } |
1536 // ********** Code for _DeletedKeySentinel ************** | 1561 // ********** Code for _DeletedKeySentinel ************** |
1537 function _DeletedKeySentinel() { | 1562 function _DeletedKeySentinel() { |
1538 | 1563 |
1539 } | 1564 } |
1540 // ********** Code for KeyValuePair ************** | 1565 // ********** Code for KeyValuePair ************** |
1541 function KeyValuePair(key, value) { | 1566 function KeyValuePair(key, value) { |
1542 this.value = value; | 1567 this.value = value; |
1543 this.key = key; | 1568 this.key = key; |
1544 } | 1569 } |
1545 KeyValuePair.prototype.get$value = function() { return this.value; }; | 1570 KeyValuePair.prototype.get$value = function() { return this.value; }; |
1546 KeyValuePair.prototype.set$value = function(value) { return this.value = value;
}; | 1571 KeyValuePair.prototype.set$value = function(value) { return this.value = value;
}; |
1547 // ********** Code for KeyValuePair_K$V ************** | 1572 // ********** Code for KeyValuePair_K$V ************** |
1548 $inherits(KeyValuePair_K$V, KeyValuePair); | 1573 $inherits(KeyValuePair_K$V, KeyValuePair); |
1549 function KeyValuePair_K$V(key, value) { | 1574 function KeyValuePair_K$V(key, value) { |
1550 this.key = key; | 1575 this.key = key; |
1551 this.value = value; | 1576 this.value = value; |
1552 } | 1577 } |
1553 // ********** Code for LinkedHashMapImplementation ************** | 1578 // ********** Code for LinkedHashMapImplementation ************** |
1554 function LinkedHashMapImplementation() { | 1579 function LinkedHashMapImplementation() { |
1555 this._map = new HashMapImplementation(); | 1580 this._dart_coreimpl_map = new HashMapImplementation(); |
1556 this._list = new DoubleLinkedQueue_KeyValuePair_K$V(); | 1581 this._dart_coreimpl_list = new DoubleLinkedQueue_KeyValuePair_K$V(); |
1557 } | 1582 } |
1558 LinkedHashMapImplementation.prototype.$setindex = function(key, value) { | 1583 LinkedHashMapImplementation.prototype.$setindex = function(key, value) { |
1559 if (this._map.containsKey(key)) { | 1584 if (this._dart_coreimpl_map.containsKey(key)) { |
1560 this._map.$index(key).get$element().set$value(value); | 1585 this._dart_coreimpl_map.$index(key).get$element().set$value(value); |
1561 } | 1586 } |
1562 else { | 1587 else { |
1563 this._list.addLast(new KeyValuePair_K$V(key, value)); | 1588 this._dart_coreimpl_list.addLast(new KeyValuePair_K$V(key, value)); |
1564 this._map.$setindex(key, this._list.lastEntry()); | 1589 this._dart_coreimpl_map.$setindex(key, this._dart_coreimpl_list.lastEntry())
; |
1565 } | 1590 } |
1566 } | 1591 } |
1567 LinkedHashMapImplementation.prototype.$index = function(key) { | 1592 LinkedHashMapImplementation.prototype.$index = function(key) { |
1568 var entry = this._map.$index(key); | 1593 var entry = this._dart_coreimpl_map.$index(key); |
1569 if (entry == null) return null; | 1594 if (entry == null) return null; |
1570 return entry.get$element().get$value(); | 1595 return entry.get$element().get$value(); |
1571 } | 1596 } |
1572 LinkedHashMapImplementation.prototype.putIfAbsent = function(key, ifAbsent) { | 1597 LinkedHashMapImplementation.prototype.putIfAbsent = function(key, ifAbsent) { |
1573 var value = this.$index(key); | 1598 var value = this.$index(key); |
1574 if ((this.$index(key) == null) && !(this.containsKey(key))) { | 1599 if ((this.$index(key) == null) && !(this.containsKey(key))) { |
1575 value = ifAbsent.call$0(); | 1600 value = ifAbsent.call$0(); |
1576 this.$setindex(key, value); | 1601 this.$setindex(key, value); |
1577 } | 1602 } |
1578 return value; | 1603 return value; |
1579 } | 1604 } |
1580 LinkedHashMapImplementation.prototype.getKeys = function() { | 1605 LinkedHashMapImplementation.prototype.getKeys = function() { |
1581 var list = new Array(this.get$length()); | 1606 var list = new Array(this.get$length()); |
1582 var index = (0); | 1607 var index = (0); |
1583 this._list.forEach(function _(entry) { | 1608 this._dart_coreimpl_list.forEach(function _(entry) { |
1584 list.$setindex(index++, entry.key); | 1609 list.$setindex(index++, entry.key); |
1585 } | 1610 } |
1586 ); | 1611 ); |
1587 return list; | 1612 return list; |
1588 } | 1613 } |
1589 LinkedHashMapImplementation.prototype.getValues = function() { | 1614 LinkedHashMapImplementation.prototype.getValues = function() { |
1590 var list = new Array(this.get$length()); | 1615 var list = new Array(this.get$length()); |
1591 var index = (0); | 1616 var index = (0); |
1592 this._list.forEach(function _(entry) { | 1617 this._dart_coreimpl_list.forEach(function _(entry) { |
1593 list.$setindex(index++, entry.value); | 1618 list.$setindex(index++, entry.value); |
1594 } | 1619 } |
1595 ); | 1620 ); |
1596 return list; | 1621 return list; |
1597 } | 1622 } |
1598 LinkedHashMapImplementation.prototype.forEach = function(f) { | 1623 LinkedHashMapImplementation.prototype.forEach = function(f) { |
1599 this._list.forEach(function _(entry) { | 1624 this._dart_coreimpl_list.forEach(function _(entry) { |
1600 f.call$2(entry.key, entry.value); | 1625 f.call$2(entry.key, entry.value); |
1601 } | 1626 } |
1602 ); | 1627 ); |
1603 } | 1628 } |
1604 LinkedHashMapImplementation.prototype.containsKey = function(key) { | 1629 LinkedHashMapImplementation.prototype.containsKey = function(key) { |
1605 return this._map.containsKey(key); | 1630 return this._dart_coreimpl_map.containsKey(key); |
1606 } | 1631 } |
1607 LinkedHashMapImplementation.prototype.get$length = function() { | 1632 LinkedHashMapImplementation.prototype.get$length = function() { |
1608 return this._map.get$length(); | 1633 return this._dart_coreimpl_map.get$length(); |
1609 } | 1634 } |
1610 LinkedHashMapImplementation.prototype.isEmpty = function() { | 1635 LinkedHashMapImplementation.prototype.isEmpty = function() { |
1611 return this.get$length() == (0); | 1636 return this.get$length() == (0); |
1612 } | 1637 } |
1613 LinkedHashMapImplementation.prototype.containsKey$1 = LinkedHashMapImplementatio
n.prototype.containsKey; | 1638 LinkedHashMapImplementation.prototype.containsKey$1 = LinkedHashMapImplementatio
n.prototype.containsKey; |
1614 LinkedHashMapImplementation.prototype.forEach$1 = function($0) { | 1639 LinkedHashMapImplementation.prototype.forEach$1 = function($0) { |
1615 return this.forEach(to$call$2($0)); | 1640 return this.forEach(to$call$2($0)); |
1616 }; | 1641 }; |
1617 LinkedHashMapImplementation.prototype.getKeys$0 = LinkedHashMapImplementation.pr
ototype.getKeys; | 1642 LinkedHashMapImplementation.prototype.getKeys$0 = LinkedHashMapImplementation.pr
ototype.getKeys; |
1618 LinkedHashMapImplementation.prototype.getValues$0 = LinkedHashMapImplementation.
prototype.getValues; | 1643 LinkedHashMapImplementation.prototype.getValues$0 = LinkedHashMapImplementation.
prototype.getValues; |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1766 ); | 1791 ); |
1767 return counter; | 1792 return counter; |
1768 } | 1793 } |
1769 DoubleLinkedQueue.prototype.isEmpty = function() { | 1794 DoubleLinkedQueue.prototype.isEmpty = function() { |
1770 return (this._sentinel._next == this._sentinel); | 1795 return (this._sentinel._next == this._sentinel); |
1771 } | 1796 } |
1772 DoubleLinkedQueue.prototype.forEach = function(f) { | 1797 DoubleLinkedQueue.prototype.forEach = function(f) { |
1773 var entry = this._sentinel._next; | 1798 var entry = this._sentinel._next; |
1774 while (entry != this._sentinel) { | 1799 while (entry != this._sentinel) { |
1775 var nextEntry = entry._next; | 1800 var nextEntry = entry._next; |
1776 f.call$1(entry._element); | 1801 f(entry._element); |
1777 entry = nextEntry; | 1802 entry = nextEntry; |
1778 } | 1803 } |
1779 } | 1804 } |
1780 DoubleLinkedQueue.prototype.every = function(f) { | 1805 DoubleLinkedQueue.prototype.every = function(f) { |
1781 var entry = this._sentinel._next; | 1806 var entry = this._sentinel._next; |
1782 while (entry != this._sentinel) { | 1807 while (entry != this._sentinel) { |
1783 var nextEntry = entry._next; | 1808 var nextEntry = entry._next; |
1784 if (!f.call$1(entry._element)) return false; | 1809 if (!f(entry._element)) return false; |
1785 entry = nextEntry; | 1810 entry = nextEntry; |
1786 } | 1811 } |
1787 return true; | 1812 return true; |
1788 } | 1813 } |
1789 DoubleLinkedQueue.prototype.some = function(f) { | 1814 DoubleLinkedQueue.prototype.some = function(f) { |
1790 var entry = this._sentinel._next; | 1815 var entry = this._sentinel._next; |
1791 while (entry != this._sentinel) { | 1816 while (entry != this._sentinel) { |
1792 var nextEntry = entry._next; | 1817 var nextEntry = entry._next; |
1793 if (f.call$1(entry._element)) return true; | 1818 if (f(entry._element)) return true; |
1794 entry = nextEntry; | 1819 entry = nextEntry; |
1795 } | 1820 } |
1796 return false; | 1821 return false; |
1797 } | 1822 } |
1798 DoubleLinkedQueue.prototype.filter = function(f) { | 1823 DoubleLinkedQueue.prototype.filter = function(f) { |
1799 var other = new DoubleLinkedQueue(); | 1824 var other = new DoubleLinkedQueue(); |
1800 var entry = this._sentinel._next; | 1825 var entry = this._sentinel._next; |
1801 while (entry != this._sentinel) { | 1826 while (entry != this._sentinel) { |
1802 var nextEntry = entry._next; | 1827 var nextEntry = entry._next; |
1803 if (f.call$1(entry._element)) other.addLast(entry._element); | 1828 if (f(entry._element)) other.addLast(entry._element); |
1804 entry = nextEntry; | 1829 entry = nextEntry; |
1805 } | 1830 } |
1806 return other; | 1831 return other; |
1807 } | 1832 } |
1808 DoubleLinkedQueue.prototype.iterator = function() { | 1833 DoubleLinkedQueue.prototype.iterator = function() { |
1809 return new _DoubleLinkedQueueIterator_E(this._sentinel); | 1834 return new _DoubleLinkedQueueIterator_E(this._sentinel); |
1810 } | 1835 } |
1811 DoubleLinkedQueue.prototype.add$1 = DoubleLinkedQueue.prototype.add; | 1836 DoubleLinkedQueue.prototype.add$1 = DoubleLinkedQueue.prototype.add; |
1812 DoubleLinkedQueue.prototype.addAll$1 = DoubleLinkedQueue.prototype.addAll; | 1837 DoubleLinkedQueue.prototype.addAll$1 = DoubleLinkedQueue.prototype.addAll; |
1813 DoubleLinkedQueue.prototype.addLast$1 = DoubleLinkedQueue.prototype.addLast; | 1838 DoubleLinkedQueue.prototype.addLast$1 = DoubleLinkedQueue.prototype.addLast; |
| 1839 DoubleLinkedQueue.prototype.every$1 = function($0) { |
| 1840 return this.every(to$call$1($0)); |
| 1841 }; |
1814 DoubleLinkedQueue.prototype.filter$1 = function($0) { | 1842 DoubleLinkedQueue.prototype.filter$1 = function($0) { |
1815 return this.filter(to$call$1($0)); | 1843 return this.filter(to$call$1($0)); |
1816 }; | 1844 }; |
1817 DoubleLinkedQueue.prototype.forEach$1 = function($0) { | 1845 DoubleLinkedQueue.prototype.forEach$1 = function($0) { |
1818 return this.forEach(to$call$1($0)); | 1846 return this.forEach(to$call$1($0)); |
1819 }; | 1847 }; |
1820 DoubleLinkedQueue.prototype.isEmpty$0 = DoubleLinkedQueue.prototype.isEmpty; | 1848 DoubleLinkedQueue.prototype.isEmpty$0 = DoubleLinkedQueue.prototype.isEmpty; |
1821 DoubleLinkedQueue.prototype.iterator$0 = DoubleLinkedQueue.prototype.iterator; | 1849 DoubleLinkedQueue.prototype.iterator$0 = DoubleLinkedQueue.prototype.iterator; |
1822 DoubleLinkedQueue.prototype.last$0 = DoubleLinkedQueue.prototype.last; | 1850 DoubleLinkedQueue.prototype.last$0 = DoubleLinkedQueue.prototype.last; |
1823 DoubleLinkedQueue.prototype.removeLast$0 = DoubleLinkedQueue.prototype.removeLas
t; | 1851 DoubleLinkedQueue.prototype.removeLast$0 = DoubleLinkedQueue.prototype.removeLas
t; |
| 1852 DoubleLinkedQueue.prototype.some$1 = function($0) { |
| 1853 return this.some(to$call$1($0)); |
| 1854 }; |
1824 // ********** Code for DoubleLinkedQueue_E ************** | 1855 // ********** Code for DoubleLinkedQueue_E ************** |
1825 $inherits(DoubleLinkedQueue_E, DoubleLinkedQueue); | 1856 $inherits(DoubleLinkedQueue_E, DoubleLinkedQueue); |
1826 function DoubleLinkedQueue_E() {} | 1857 function DoubleLinkedQueue_E() {} |
1827 // ********** Code for DoubleLinkedQueue_KeyValuePair_K$V ************** | 1858 // ********** Code for DoubleLinkedQueue_KeyValuePair_K$V ************** |
1828 $inherits(DoubleLinkedQueue_KeyValuePair_K$V, DoubleLinkedQueue); | 1859 $inherits(DoubleLinkedQueue_KeyValuePair_K$V, DoubleLinkedQueue); |
1829 function DoubleLinkedQueue_KeyValuePair_K$V() { | 1860 function DoubleLinkedQueue_KeyValuePair_K$V() { |
1830 this._sentinel = new _DoubleLinkedQueueEntrySentinel_KeyValuePair_K$V(); | 1861 this._sentinel = new _DoubleLinkedQueueEntrySentinel_KeyValuePair_K$V(); |
1831 } | 1862 } |
1832 DoubleLinkedQueue_KeyValuePair_K$V.prototype.addLast = function(value) { | 1863 DoubleLinkedQueue_KeyValuePair_K$V.prototype.addLast = function(value) { |
1833 this._sentinel.prepend(value); | 1864 this._sentinel.prepend(value); |
1834 } | 1865 } |
1835 DoubleLinkedQueue_KeyValuePair_K$V.prototype.lastEntry = function() { | 1866 DoubleLinkedQueue_KeyValuePair_K$V.prototype.lastEntry = function() { |
1836 return this._sentinel.previousEntry(); | 1867 return this._sentinel.previousEntry(); |
1837 } | 1868 } |
1838 DoubleLinkedQueue_KeyValuePair_K$V.prototype.forEach = function(f) { | 1869 DoubleLinkedQueue_KeyValuePair_K$V.prototype.forEach = function(f) { |
1839 var entry = this._sentinel._next; | 1870 var entry = this._sentinel._next; |
1840 while (entry != this._sentinel) { | 1871 while (entry != this._sentinel) { |
1841 var nextEntry = entry._next; | 1872 var nextEntry = entry._next; |
1842 f.call$1(entry._element); | 1873 f(entry._element); |
1843 entry = nextEntry; | 1874 entry = nextEntry; |
1844 } | 1875 } |
1845 } | 1876 } |
1846 // ********** Code for _DoubleLinkedQueueIterator ************** | 1877 // ********** Code for _DoubleLinkedQueueIterator ************** |
1847 function _DoubleLinkedQueueIterator(_sentinel) { | 1878 function _DoubleLinkedQueueIterator(_sentinel) { |
1848 this._sentinel = _sentinel; | 1879 this._sentinel = _sentinel; |
1849 this._currentEntry = this._sentinel; | 1880 this._currentEntry = this._sentinel; |
1850 } | 1881 } |
1851 _DoubleLinkedQueueIterator.prototype.hasNext = function() { | 1882 _DoubleLinkedQueueIterator.prototype.hasNext = function() { |
1852 return this._currentEntry._next != this._sentinel; | 1883 return this._currentEntry._next != this._sentinel; |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1905 } | 1936 } |
1906 StopwatchImplementation.prototype.elapsedInMs$0 = StopwatchImplementation.protot
ype.elapsedInMs; | 1937 StopwatchImplementation.prototype.elapsedInMs$0 = StopwatchImplementation.protot
ype.elapsedInMs; |
1907 StopwatchImplementation.prototype.start$0 = StopwatchImplementation.prototype.st
art; | 1938 StopwatchImplementation.prototype.start$0 = StopwatchImplementation.prototype.st
art; |
1908 StopwatchImplementation.prototype.stop$0 = StopwatchImplementation.prototype.sto
p; | 1939 StopwatchImplementation.prototype.stop$0 = StopwatchImplementation.prototype.sto
p; |
1909 // ********** Code for StringBufferImpl ************** | 1940 // ********** Code for StringBufferImpl ************** |
1910 function StringBufferImpl(content) { | 1941 function StringBufferImpl(content) { |
1911 this.clear(); | 1942 this.clear(); |
1912 this.add(content); | 1943 this.add(content); |
1913 } | 1944 } |
1914 StringBufferImpl.prototype.get$length = function() { | 1945 StringBufferImpl.prototype.get$length = function() { |
1915 return this._length; | 1946 return this._dart_coreimpl_length; |
1916 } | 1947 } |
1917 StringBufferImpl.prototype.isEmpty = function() { | 1948 StringBufferImpl.prototype.isEmpty = function() { |
1918 return this._length == (0); | 1949 return this._dart_coreimpl_length == (0); |
1919 } | 1950 } |
1920 StringBufferImpl.prototype.add = function(obj) { | 1951 StringBufferImpl.prototype.add = function(obj) { |
1921 var str = obj.toString$0(); | 1952 var str = obj.toString$0(); |
1922 if (str == null || str.isEmpty()) return this; | 1953 if (str == null || str.isEmpty()) return this; |
1923 this._buffer.add(str); | 1954 this._buffer.add(str); |
1924 this._length = this._length + str.length; | 1955 this._dart_coreimpl_length = this._dart_coreimpl_length + str.length; |
1925 return this; | 1956 return this; |
1926 } | 1957 } |
1927 StringBufferImpl.prototype.addAll = function(objects) { | 1958 StringBufferImpl.prototype.addAll = function(objects) { |
1928 for (var $$i = objects.iterator$0(); $$i.hasNext$0(); ) { | 1959 for (var $$i = objects.iterator$0(); $$i.hasNext$0(); ) { |
1929 var obj = $$i.next$0(); | 1960 var obj = $$i.next$0(); |
1930 this.add(obj); | 1961 this.add(obj); |
1931 } | 1962 } |
1932 return this; | 1963 return this; |
1933 } | 1964 } |
1934 StringBufferImpl.prototype.clear = function() { | 1965 StringBufferImpl.prototype.clear = function() { |
1935 this._buffer = new Array(); | 1966 this._buffer = new Array(); |
1936 this._length = (0); | 1967 this._dart_coreimpl_length = (0); |
1937 return this; | 1968 return this; |
1938 } | 1969 } |
1939 StringBufferImpl.prototype.toString = function() { | 1970 StringBufferImpl.prototype.toString = function() { |
1940 if (this._buffer.get$length() == (0)) return ""; | 1971 if (this._buffer.get$length() == (0)) return ""; |
1941 if (this._buffer.get$length() == (1)) return this._buffer[(0)]; | 1972 if (this._buffer.get$length() == (1)) return this._buffer.$index((0)); |
1942 var result = StringBase.concatAll(this._buffer); | 1973 var result = StringBase.concatAll(this._buffer); |
1943 this._buffer.clear(); | 1974 this._buffer.clear(); |
1944 this._buffer.add(result); | 1975 this._buffer.add(result); |
1945 return result; | 1976 return result; |
1946 } | 1977 } |
1947 StringBufferImpl.prototype.add$1 = StringBufferImpl.prototype.add; | 1978 StringBufferImpl.prototype.add$1 = StringBufferImpl.prototype.add; |
1948 StringBufferImpl.prototype.addAll$1 = StringBufferImpl.prototype.addAll; | 1979 StringBufferImpl.prototype.addAll$1 = StringBufferImpl.prototype.addAll; |
1949 StringBufferImpl.prototype.isEmpty$0 = StringBufferImpl.prototype.isEmpty; | 1980 StringBufferImpl.prototype.isEmpty$0 = StringBufferImpl.prototype.isEmpty; |
1950 StringBufferImpl.prototype.toString$0 = StringBufferImpl.prototype.toString; | 1981 StringBufferImpl.prototype.toString$0 = StringBufferImpl.prototype.toString; |
1951 // ********** Code for StringBase ************** | 1982 // ********** Code for StringBase ************** |
1952 function StringBase() {} | 1983 function StringBase() {} |
1953 StringBase.createFromCharCodes = function(charCodes) { | 1984 StringBase.createFromCharCodes = function(charCodes) { |
1954 if (Object.getPrototypeOf(charCodes) !== Array.prototype) { | 1985 if (Object.getPrototypeOf(charCodes) !== Array.prototype) { |
1955 charCodes = new ListFactory.ListFactory$from$factory(charCodes); | 1986 charCodes = new ListFactory.ListFactory$from$factory(charCodes); |
1956 } | 1987 } |
1957 return String.fromCharCode.apply(null, charCodes); | 1988 return String.fromCharCode.apply(null, charCodes); |
1958 } | 1989 } |
1959 StringBase.join = function(strings, separator) { | 1990 StringBase.join = function(strings, separator) { |
1960 if (strings.get$length() == (0)) return ""; | 1991 if (strings.get$length() == (0)) return ""; |
1961 var s = strings[(0)]; | 1992 var s = strings.$index((0)); |
1962 for (var i = (1); | 1993 for (var i = (1); |
1963 i < strings.get$length(); i++) { | 1994 i < strings.get$length(); i++) { |
1964 s = s + separator + strings[i]; | 1995 s = s + separator + strings.$index(i); |
1965 } | 1996 } |
1966 return s; | 1997 return s; |
1967 } | 1998 } |
1968 StringBase.concatAll = function(strings) { | 1999 StringBase.concatAll = function(strings) { |
1969 return StringBase.join(strings, ""); | 2000 return StringBase.join(strings, ""); |
1970 } | 2001 } |
1971 // ********** Code for StringImplementation ************** | 2002 // ********** Code for StringImplementation ************** |
1972 StringImplementation = String; | 2003 StringImplementation = String; |
1973 StringImplementation.prototype.get$length = function() { return this.length; }; | 2004 StringImplementation.prototype.get$length = function() { return this.length; }; |
1974 StringImplementation.prototype.endsWith = function(other) { | 2005 StringImplementation.prototype.endsWith = function(other) { |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2046 StringImplementation.prototype.isEmpty$0 = StringImplementation.prototype.isEmpt
y; | 2077 StringImplementation.prototype.isEmpty$0 = StringImplementation.prototype.isEmpt
y; |
2047 StringImplementation.prototype.replaceFirst$2 = StringImplementation.prototype.r
eplaceFirst; | 2078 StringImplementation.prototype.replaceFirst$2 = StringImplementation.prototype.r
eplaceFirst; |
2048 StringImplementation.prototype.startsWith$1 = StringImplementation.prototype.sta
rtsWith; | 2079 StringImplementation.prototype.startsWith$1 = StringImplementation.prototype.sta
rtsWith; |
2049 StringImplementation.prototype.substring$1 = StringImplementation.prototype.subs
tring; | 2080 StringImplementation.prototype.substring$1 = StringImplementation.prototype.subs
tring; |
2050 StringImplementation.prototype.substring$2 = StringImplementation.prototype.subs
tring; | 2081 StringImplementation.prototype.substring$2 = StringImplementation.prototype.subs
tring; |
2051 // ********** Code for Collections ************** | 2082 // ********** Code for Collections ************** |
2052 function Collections() {} | 2083 function Collections() {} |
2053 Collections.forEach = function(iterable, f) { | 2084 Collections.forEach = function(iterable, f) { |
2054 for (var $$i = iterable.iterator$0(); $$i.hasNext$0(); ) { | 2085 for (var $$i = iterable.iterator$0(); $$i.hasNext$0(); ) { |
2055 var e = $$i.next$0(); | 2086 var e = $$i.next$0(); |
2056 f.call$1(e); | 2087 f(e); |
2057 } | 2088 } |
2058 } | 2089 } |
2059 Collections.some = function(iterable, f) { | 2090 Collections.some = function(iterable, f) { |
2060 for (var $$i = iterable.iterator$0(); $$i.hasNext$0(); ) { | 2091 for (var $$i = iterable.iterator$0(); $$i.hasNext$0(); ) { |
2061 var e = $$i.next$0(); | 2092 var e = $$i.next$0(); |
2062 if (f.call$1(e)) return true; | 2093 if (f(e)) return true; |
2063 } | 2094 } |
2064 return false; | 2095 return false; |
2065 } | 2096 } |
2066 Collections.every = function(iterable, f) { | 2097 Collections.every = function(iterable, f) { |
2067 for (var $$i = iterable.iterator$0(); $$i.hasNext$0(); ) { | 2098 for (var $$i = iterable.iterator$0(); $$i.hasNext$0(); ) { |
2068 var e = $$i.next$0(); | 2099 var e = $$i.next$0(); |
2069 if (!f.call$1(e)) return false; | 2100 if (!f(e)) return false; |
2070 } | 2101 } |
2071 return true; | 2102 return true; |
2072 } | 2103 } |
2073 Collections.filter = function(source, destination, f) { | 2104 Collections.filter = function(source, destination, f) { |
2074 for (var $$i = source.iterator$0(); $$i.hasNext$0(); ) { | 2105 for (var $$i = source.iterator$0(); $$i.hasNext$0(); ) { |
2075 var e = $$i.next$0(); | 2106 var e = $$i.next$0(); |
2076 if (f.call$1(e)) destination.add(e); | 2107 if (f(e)) destination.add(e); |
2077 } | 2108 } |
2078 return destination; | 2109 return destination; |
2079 } | 2110 } |
2080 // ********** Code for _Worker ************** | 2111 // ********** Code for _Worker ************** |
2081 // ********** Code for _ArgumentMismatchException ************** | 2112 // ********** Code for _ArgumentMismatchException ************** |
2082 $inherits(_ArgumentMismatchException, ClosureArgumentMismatchException); | 2113 $inherits(_ArgumentMismatchException, ClosureArgumentMismatchException); |
2083 function _ArgumentMismatchException(_message) { | 2114 function _ArgumentMismatchException(_message) { |
2084 this._dart_coreimpl_message = _message; | 2115 this._dart_coreimpl_message = _message; |
2085 ClosureArgumentMismatchException.call(this); | 2116 ClosureArgumentMismatchException.call(this); |
2086 } | 2117 } |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2156 } | 2187 } |
2157 // ********** Code for top level ************** | 2188 // ********** Code for top level ************** |
2158 function _constList(other) { | 2189 function _constList(other) { |
2159 other.__proto__ = ImmutableList.prototype; | 2190 other.__proto__ = ImmutableList.prototype; |
2160 return other; | 2191 return other; |
2161 } | 2192 } |
2162 function _map(itemsAndKeys) { | 2193 function _map(itemsAndKeys) { |
2163 var ret = new LinkedHashMapImplementation(); | 2194 var ret = new LinkedHashMapImplementation(); |
2164 for (var i = (0); | 2195 for (var i = (0); |
2165 i < itemsAndKeys.get$length(); ) { | 2196 i < itemsAndKeys.get$length(); ) { |
2166 ret.$setindex(itemsAndKeys[i++], itemsAndKeys[i++]); | 2197 ret.$setindex(itemsAndKeys.$index(i++), itemsAndKeys.$index(i++)); |
2167 } | 2198 } |
2168 return ret; | 2199 return ret; |
2169 } | 2200 } |
2170 // ********** Library node ************** | 2201 // ********** Library nodeimpl ************** |
2171 // ********** Code for Process ************** | 2202 // ********** Code for NativeMapBase ************** |
2172 function Process(_process) { | 2203 function NativeMapBase(_map) { |
2173 this.SIGSYS = "SIGSYS"; | 2204 this._map = _map; |
2174 this.SIGALRM = "SIGALRM"; | |
2175 this.SIGXCPU = "SIGXCPU"; | |
2176 this.SIGTSTP = "SIGTSTP"; | |
2177 this.SIGSEGV = "SIGSEGV"; | |
2178 this.SIGQUIT = "SIGQUIT"; | |
2179 this.SIGABRT = "SIGABRT"; | |
2180 this.SIGKILL = "SIGKILL"; | |
2181 this.SIGHUP = "SIGHUP"; | |
2182 this.SIGUSR2 = "SIGUSR2"; | |
2183 this.SIGXFSZ = "SIGXFSZ"; | |
2184 this.SIGCONT = "SIGCONT"; | |
2185 this.SIGTTOU = "SIGTTOU"; | |
2186 this.SIGINT = "SIGINT"; | |
2187 this.SIGURG = "SIGURG"; | |
2188 this.SIGFPE = "SIGFPE"; | |
2189 this.SIGUSR1 = "SIGUSR1"; | |
2190 this.SIGEMT = "SIGEMT"; | |
2191 this.SIGPIPE = "SIGPIPE"; | |
2192 this.SIGTTIN = "SIGTTIN"; | |
2193 this.SIGTERM = "SIGTERM"; | |
2194 this._process = _process; | |
2195 this.SIGBUS = "SIGBUS"; | |
2196 this.SIGPROF = "SIGPROF"; | |
2197 this.SIGSTOP = "SIGSTOP"; | |
2198 this.SIGCHLD = "SIGCHLD"; | |
2199 this.SIGILL = "SIGILL"; | |
2200 this.SIGTRAP = "SIGTRAP"; | |
2201 this.SIGINFO = "SIGINFO"; | |
2202 this.SIGIO = "SIGIO"; | |
2203 this.SIGVTALRM = "SIGVTALRM"; | |
2204 this.SIGWINCH = "SIGWINCH"; | |
2205 } | 2205 } |
2206 Process.prototype.get$argv = function() { | 2206 NativeMapBase.prototype.get$length = function() { |
2207 return this._process.argv; | 2207 return this._length(this._map); |
2208 } | 2208 } |
2209 Process.prototype.set$argv = function(value) { | 2209 NativeMapBase.prototype._length = function(map) { |
2210 this._process.argv = value; | 2210 return map.length; |
2211 } | 2211 } |
2212 Process.prototype.get$env = function() { | 2212 NativeMapBase.prototype.isEmpty = function() { |
2213 return new EnvMap(this._process); | 2213 return this.get$length() == (0); |
2214 } | 2214 } |
2215 Process.prototype.exit = function(code) { | 2215 NativeMapBase.prototype.getKeys = function() { |
2216 this._process.exit(code); | 2216 var keys = new Array(); |
| 2217 this._forEachKey$2(this._map, (function (key) { |
| 2218 return keys.add(key); |
| 2219 }) |
| 2220 ); |
| 2221 return keys; |
2217 } | 2222 } |
2218 // ********** Code for EnvMap ************** | 2223 NativeMapBase.prototype.getValues = function() { |
2219 function EnvMap(_process) { | 2224 var $this = this; // closure support |
2220 this._process = _process; | 2225 var values = new Array(); |
| 2226 this._forEachKey$2(this._map, (function (key) { |
| 2227 return values.add($this.$index(key)); |
| 2228 }) |
| 2229 ); |
| 2230 return values; |
2221 } | 2231 } |
2222 EnvMap.prototype.$index = function(key) { | 2232 NativeMapBase.prototype.forEach = function(f) { |
2223 return this._process.env[key]; | 2233 var $this = this; // closure support |
| 2234 return this._forEachKey$2(this._map, (function (k) { |
| 2235 return f.call$2(k, $this.$index(k)); |
| 2236 }) |
| 2237 ); |
2224 } | 2238 } |
2225 // ********** Code for ReadableStream ************** | 2239 NativeMapBase.prototype._forEachKey = function(map, f) { |
2226 // ********** Code for WritableStream ************** | 2240 for (var i in map) { |
| 2241 if (map.hasOwnProperty(i)) { |
| 2242 f(i); |
| 2243 } |
| 2244 } |
| 2245 |
| 2246 } |
| 2247 NativeMapBase.prototype._forEachKey$2 = function($0, $1) { |
| 2248 return this._forEachKey($0, to$call$1($1)); |
| 2249 }; |
| 2250 NativeMapBase.prototype.forEach$1 = function($0) { |
| 2251 return this.forEach(to$call$2($0)); |
| 2252 }; |
| 2253 NativeMapBase.prototype.getKeys$0 = NativeMapBase.prototype.getKeys; |
| 2254 NativeMapBase.prototype.getValues$0 = NativeMapBase.prototype.getValues; |
| 2255 NativeMapBase.prototype.isEmpty$0 = NativeMapBase.prototype.isEmpty; |
| 2256 // ********** Code for NativeMapBase_dart_core_String ************** |
| 2257 $inherits(NativeMapBase_dart_core_String, NativeMapBase); |
| 2258 function NativeMapBase_dart_core_String(_map) { |
| 2259 this._map = _map; |
| 2260 } |
| 2261 NativeMapBase_dart_core_String.prototype.getKeys = function() { |
| 2262 var keys = new Array(); |
| 2263 this._forEachKey$2(this._map, (function (key) { |
| 2264 return keys.add(key); |
| 2265 }) |
| 2266 ); |
| 2267 return keys; |
| 2268 } |
| 2269 NativeMapBase_dart_core_String.prototype.getValues = function() { |
| 2270 var $this = this; // closure support |
| 2271 var values = new Array(); |
| 2272 this._forEachKey$2(this._map, (function (key) { |
| 2273 return values.add($this.$index(key)); |
| 2274 }) |
| 2275 ); |
| 2276 return values; |
| 2277 } |
| 2278 NativeMapBase_dart_core_String.prototype.forEach = function(f) { |
| 2279 var $this = this; // closure support |
| 2280 return this._forEachKey$2(this._map, (function (k) { |
| 2281 return f.call$2(k, $this.$index(k)); |
| 2282 }) |
| 2283 ); |
| 2284 } |
| 2285 NativeMapBase_dart_core_String.prototype._forEachKey = function(map, f) { |
| 2286 for (var i in map) { |
| 2287 if (map.hasOwnProperty(i)) { |
| 2288 f(i); |
| 2289 } |
| 2290 } |
| 2291 |
| 2292 } |
| 2293 // ********** Code for NativeMapBase_V ************** |
| 2294 $inherits(NativeMapBase_V, NativeMapBase); |
| 2295 function NativeMapBase_V(_map) { |
| 2296 this._map = _map; |
| 2297 } |
| 2298 NativeMapBase_V.prototype.getKeys = function() { |
| 2299 var keys = new Array(); |
| 2300 this._forEachKey$2(this._map, (function (key) { |
| 2301 return keys.add(key); |
| 2302 }) |
| 2303 ); |
| 2304 return keys; |
| 2305 } |
| 2306 NativeMapBase_V.prototype.getValues = function() { |
| 2307 var $this = this; // closure support |
| 2308 var values = new Array(); |
| 2309 this._forEachKey$2(this._map, (function (key) { |
| 2310 return values.add($this.$index(key)); |
| 2311 }) |
| 2312 ); |
| 2313 return values; |
| 2314 } |
| 2315 NativeMapBase_V.prototype.forEach = function(f) { |
| 2316 var $this = this; // closure support |
| 2317 return this._forEachKey$2(this._map, (function (k) { |
| 2318 return f.call$2(k, $this.$index(k)); |
| 2319 }) |
| 2320 ); |
| 2321 } |
| 2322 NativeMapBase_V.prototype._forEachKey = function(map, f) { |
| 2323 for (var i in map) { |
| 2324 if (map.hasOwnProperty(i)) { |
| 2325 f(i); |
| 2326 } |
| 2327 } |
| 2328 |
| 2329 } |
| 2330 // ********** Code for NativeMapPrimitiveValue ************** |
| 2331 $inherits(NativeMapPrimitiveValue, NativeMapBase_V); |
| 2332 function NativeMapPrimitiveValue(map) { |
| 2333 NativeMapBase_V.call(this, map); |
| 2334 } |
| 2335 NativeMapPrimitiveValue.prototype.$index = function(key) { |
| 2336 return this._at(this._map, key); |
| 2337 } |
| 2338 NativeMapPrimitiveValue.prototype._at = function(map, key) { |
| 2339 return map[key]; |
| 2340 } |
| 2341 // ********** Code for NativeMapPrimitiveValue_dart_core_String ************** |
| 2342 $inherits(NativeMapPrimitiveValue_dart_core_String, NativeMapPrimitiveValue); |
| 2343 function NativeMapPrimitiveValue_dart_core_String(map) { |
| 2344 NativeMapBase_dart_core_String.call(this, map); |
| 2345 } |
| 2346 NativeMapPrimitiveValue_dart_core_String.prototype.$index = function(key) { |
| 2347 return this._at(this._map, key); |
| 2348 } |
| 2349 NativeMapPrimitiveValue_dart_core_String.prototype._at = function(map, key) { |
| 2350 return map[key]; |
| 2351 } |
| 2352 // ********** Code for top level ************** |
| 2353 // ********** Library fs ************** |
| 2354 // ********** Code for fs_ReadStream ************** |
| 2355 // ********** Code for fs_WriteStream ************** |
2227 Object.defineProperty(Object.prototype, '$typeNameOf', { value: function() { | 2356 Object.defineProperty(Object.prototype, '$typeNameOf', { value: function() { |
2228 if ((typeof(window) != 'undefined' && window.constructor.name == 'DOMWindow') | 2357 if ((typeof(window) != 'undefined' && window.constructor.name == 'DOMWindow') |
2229 || typeof(process) != 'undefined') { // fast-path for Chrome and Node | 2358 || typeof(process) != 'undefined') { // fast-path for Chrome and Node |
2230 return this.constructor.name; | 2359 return this.constructor.name; |
2231 } | 2360 } |
2232 var str = Object.prototype.toString.call(this); | 2361 var str = Object.prototype.toString.call(this); |
2233 str = str.substring(8, str.length - 1); | 2362 str = str.substring(8, str.length - 1); |
2234 if (str == 'Window') { | 2363 if (str == 'Window') { |
2235 str = 'DOMWindow'; | 2364 str = 'DOMWindow'; |
2236 } else if (str == 'Document') { | 2365 } else if (str == 'Document') { |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2288 map[tagNames[j]] = true; | 2417 map[tagNames[j]] = true; |
2289 } | 2418 } |
2290 table.push({tag: tag, tags: tags, map: map}); | 2419 table.push({tag: tag, tags: tags, map: map}); |
2291 } | 2420 } |
2292 $dynamicMetadata = table; | 2421 $dynamicMetadata = table; |
2293 } | 2422 } |
2294 $dynamic("get$end").WriteStream = function() { | 2423 $dynamic("get$end").WriteStream = function() { |
2295 return this.end.bind(this); | 2424 return this.end.bind(this); |
2296 } | 2425 } |
2297 $dynamic("end$0").WriteStream = function() { | 2426 $dynamic("end$0").WriteStream = function() { |
2298 return this.end(null, "utf8"); | 2427 return this.end(); |
2299 }; | 2428 }; |
2300 $dynamic("write$1").WriteStream = function($0) { | 2429 $dynamic("write$1").WriteStream = function($0) { |
2301 return this.write($0, "utf8"); | 2430 return this.write($0, "utf8"); |
2302 }; | 2431 }; |
2303 // ********** Code for vm ************** | 2432 // ********** Code for fs_FSWatcher ************** |
2304 vm = require('vm'); | 2433 // ********** Code for top level ************** |
2305 // ********** Code for fs ************** | 2434 function get$fs() { |
2306 fs = require('fs'); | 2435 return require("fs"); |
2307 // ********** Code for path ************** | 2436 } |
2308 path = require('path'); | 2437 // ********** Library node ************** |
| 2438 // ********** Code for Process ************** |
| 2439 function Process(_process) { |
| 2440 this.SIGSYS = "SIGSYS"; |
| 2441 this.SIGALRM = "SIGALRM"; |
| 2442 this.SIGXCPU = "SIGXCPU"; |
| 2443 this.SIGTSTP = "SIGTSTP"; |
| 2444 this.SIGSEGV = "SIGSEGV"; |
| 2445 this.SIGQUIT = "SIGQUIT"; |
| 2446 this.SIGABRT = "SIGABRT"; |
| 2447 this.SIGKILL = "SIGKILL"; |
| 2448 this.SIGHUP = "SIGHUP"; |
| 2449 this.SIGUSR2 = "SIGUSR2"; |
| 2450 this.SIGXFSZ = "SIGXFSZ"; |
| 2451 this.SIGCONT = "SIGCONT"; |
| 2452 this.SIGTTOU = "SIGTTOU"; |
| 2453 this.SIGINT = "SIGINT"; |
| 2454 this.SIGURG = "SIGURG"; |
| 2455 this.SIGFPE = "SIGFPE"; |
| 2456 this.SIGUSR1 = "SIGUSR1"; |
| 2457 this.SIGEMT = "SIGEMT"; |
| 2458 this.SIGPIPE = "SIGPIPE"; |
| 2459 this.SIGTTIN = "SIGTTIN"; |
| 2460 this.SIGTERM = "SIGTERM"; |
| 2461 this._process = _process; |
| 2462 this.SIGBUS = "SIGBUS"; |
| 2463 this.SIGPROF = "SIGPROF"; |
| 2464 this.SIGSTOP = "SIGSTOP"; |
| 2465 this.SIGCHLD = "SIGCHLD"; |
| 2466 this.SIGILL = "SIGILL"; |
| 2467 this.SIGTRAP = "SIGTRAP"; |
| 2468 this.SIGINFO = "SIGINFO"; |
| 2469 this.SIGIO = "SIGIO"; |
| 2470 this.SIGVTALRM = "SIGVTALRM"; |
| 2471 this.SIGWINCH = "SIGWINCH"; |
| 2472 } |
| 2473 Process.prototype.get$argv = function() { |
| 2474 return this._process.argv; |
| 2475 } |
| 2476 Process.prototype.set$argv = function(value) { |
| 2477 this._process.argv = value; |
| 2478 } |
| 2479 Process.prototype.get$env = function() { |
| 2480 return new _EnvMap(this._env()); |
| 2481 } |
| 2482 Process.prototype._env = function() { |
| 2483 return this._process.env; |
| 2484 } |
| 2485 Process.prototype.exit = function(code) { |
| 2486 this._process.exit(code); |
| 2487 } |
| 2488 // ********** Code for _EnvMap ************** |
| 2489 $inherits(_EnvMap, NativeMapPrimitiveValue_dart_core_String); |
| 2490 function _EnvMap(env) { |
| 2491 NativeMapPrimitiveValue_dart_core_String.call(this, env); |
| 2492 } |
| 2493 _EnvMap.prototype._node_forEachKey = function(map, f) { |
| 2494 for (var i in map) { |
| 2495 f(i); |
| 2496 } |
| 2497 |
| 2498 } |
2309 // ********** Code for top level ************** | 2499 // ********** Code for top level ************** |
2310 function createSandbox() { | 2500 function createSandbox() { |
2311 return {'require': require, 'process': process, 'console': console, | 2501 return { |
| 2502 'require': require, |
| 2503 'process': process, |
| 2504 'console': console, |
2312 'Buffer' : Buffer, | 2505 'Buffer' : Buffer, |
2313 'setTimeout': setTimeout, 'clearTimeout': clearTimeout}; | 2506 'setTimeout': setTimeout, |
| 2507 'clearTimeout': clearTimeout, |
| 2508 'setInterval': setInterval, |
| 2509 'clearInterval': clearInterval, |
| 2510 'module' : module, |
| 2511 'ArrayBuffer': ArrayBuffer, |
| 2512 'Int8Array': Int8Array, |
| 2513 'Uint8Array': Uint8Array, |
| 2514 'Int16Array': Int16Array, |
| 2515 'Uint16Array': Uint16Array, |
| 2516 'Int32Array': Int32Array, |
| 2517 'Uint32Array': Uint32Array, |
| 2518 'Float32Array': Float32Array, |
| 2519 'Float64Array': Float64Array, |
| 2520 'DataView': DataView |
| 2521 }; |
2314 } | 2522 } |
2315 function get$_process() { | 2523 function get$_process() { |
2316 return process; | 2524 return process; |
2317 } | 2525 } |
2318 function get$process() { | 2526 function get$process() { |
2319 return new Process(get$_process()); | 2527 return new Process(get$_process()); |
2320 } | 2528 } |
| 2529 // ********** Library path ************** |
| 2530 // ********** Code for path ************** |
| 2531 path = require('path'); |
| 2532 // ********** Code for top level ************** |
| 2533 // ********** Library vm ************** |
| 2534 // ********** Code for vm ************** |
| 2535 vm = require('vm'); |
| 2536 // ********** Code for top level ************** |
2321 // ********** Library file_system ************** | 2537 // ********** Library file_system ************** |
2322 // ********** Code for top level ************** | 2538 // ********** Code for top level ************** |
2323 function canonicalizePath(path) { | 2539 function canonicalizePath(path) { |
2324 return path.replaceAll("\\", "/"); | 2540 return path.replaceAll("\\", "/"); |
2325 } | 2541 } |
2326 function joinPaths(path1, path2) { | 2542 function joinPaths(path1, path2) { |
2327 path1 = canonicalizePath(path1); | 2543 path1 = canonicalizePath(path1); |
2328 path2 = canonicalizePath(path2); | 2544 path2 = canonicalizePath(path2); |
2329 var pieces = path1.split("/"); | 2545 var pieces = path1.split("/"); |
2330 var $$list = path2.split("/"); | 2546 var $$list = path2.split("/"); |
2331 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 2547 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
2332 var piece = $$list[$$i]; | 2548 var piece = $$list.$index($$i); |
2333 if ($eq(piece, "..") && pieces.get$length() > (0) && $ne(pieces.last$0(), ".
") && $ne(pieces.last$0(), "..")) { | 2549 if ($eq(piece, "..") && pieces.get$length() > (0) && $ne(pieces.last$0(), ".
") && $ne(pieces.last$0(), "..")) { |
2334 pieces.removeLast$0(); | 2550 pieces.removeLast$0(); |
2335 } | 2551 } |
2336 else if ($ne(piece, "")) { | 2552 else if ($ne(piece, "")) { |
2337 if (pieces.get$length() > (0) && $eq(pieces.last$0(), ".")) { | 2553 if (pieces.get$length() > (0) && $eq(pieces.last$0(), ".")) { |
2338 pieces.removeLast$0(); | 2554 pieces.removeLast$0(); |
2339 } | 2555 } |
2340 pieces.add$1(piece); | 2556 pieces.add$1(piece); |
2341 } | 2557 } |
2342 } | 2558 } |
(...skipping 18 matching lines...) Expand all Loading... |
2361 else { | 2577 else { |
2362 return path.substring(lastSlash + (1)); | 2578 return path.substring(lastSlash + (1)); |
2363 } | 2579 } |
2364 } | 2580 } |
2365 // ********** Library file_system_node ************** | 2581 // ********** Library file_system_node ************** |
2366 // ********** Code for NodeFileSystem ************** | 2582 // ********** Code for NodeFileSystem ************** |
2367 function NodeFileSystem() { | 2583 function NodeFileSystem() { |
2368 | 2584 |
2369 } | 2585 } |
2370 NodeFileSystem.prototype.writeString = function(outfile, text) { | 2586 NodeFileSystem.prototype.writeString = function(outfile, text) { |
2371 fs.writeFileSync(outfile, text); | 2587 get$fs().writeFileSync(outfile, text, "utf8"); |
2372 } | 2588 } |
2373 NodeFileSystem.prototype.readAll = function(filename) { | 2589 NodeFileSystem.prototype.readAll = function(filename) { |
2374 return fs.readFileSync(filename, "utf8"); | 2590 return get$fs().readFileSync(filename, "utf8"); |
2375 } | 2591 } |
2376 NodeFileSystem.prototype.fileExists = function(filename) { | 2592 NodeFileSystem.prototype.fileExists = function(filename) { |
2377 return path.existsSync(filename); | 2593 return path.existsSync(filename); |
2378 } | 2594 } |
2379 // ********** Code for top level ************** | 2595 // ********** Code for top level ************** |
2380 // ********** Library lang ************** | 2596 // ********** Library lang ************** |
2381 // ********** Code for BlockScope ************** | 2597 // ********** Code for BlockScope ************** |
2382 function BlockScope(enclosingMethod, parent, node, reentrant) { | 2598 function BlockScope(enclosingMethod, parent, node, reentrant) { |
2383 this.enclosingMethod = enclosingMethod; | 2599 this.enclosingMethod = enclosingMethod; |
2384 this._vars = new CopyOnWriteMap_dart_core_String$VariableValue(); | 2600 this._vars = new CopyOnWriteMap_dart_core_String$VariableValue(); |
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2698 else { | 2914 else { |
2699 if (this.useWrap0) { | 2915 if (this.useWrap0) { |
2700 w.writeln("function $wrap_call$0(fn) { return fn; }"); | 2916 w.writeln("function $wrap_call$0(fn) { return fn; }"); |
2701 } | 2917 } |
2702 if (this.useWrap1) { | 2918 if (this.useWrap1) { |
2703 w.writeln("function $wrap_call$1(fn) { return fn; }"); | 2919 w.writeln("function $wrap_call$1(fn) { return fn; }"); |
2704 } | 2920 } |
2705 } | 2921 } |
2706 var $$list = orderValuesByKeys(this._usedOperators); | 2922 var $$list = orderValuesByKeys(this._usedOperators); |
2707 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 2923 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
2708 var opImpl = $$list[$$i]; | 2924 var opImpl = $$list.$index($$i); |
2709 w.writeln(opImpl); | 2925 w.writeln(opImpl); |
2710 } | 2926 } |
2711 if ($globals.world.dom != null) { | 2927 if ($globals.world.dom != null) { |
2712 this.ensureTypeNameOf(); | 2928 this.ensureTypeNameOf(); |
2713 w.writeln("Object.defineProperty(Object.prototype, \"get$typeName\", { value
: Object.prototype.$typeNameOf, enumerable: false, writable: true, configurable:
true});"); | 2929 w.writeln("Object.defineProperty(Object.prototype, \"get$typeName\", { value
: Object.prototype.$typeNameOf, enumerable: false, writable: true, configurable:
true});"); |
2714 } | 2930 } |
2715 } | 2931 } |
2716 CoreJs.prototype.generate$1 = CoreJs.prototype.generate; | 2932 CoreJs.prototype.generate$1 = CoreJs.prototype.generate; |
2717 // ********** Code for Element ************** | 2933 // ********** Code for Element ************** |
2718 function Element(name, _enclosingElement) { | 2934 function Element(name, _enclosingElement) { |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2761 var $0; | 2977 var $0; |
2762 return (this._enclosingElement = ($0 = e), $0); | 2978 return (this._enclosingElement = ($0 = e), $0); |
2763 } | 2979 } |
2764 Element.prototype.resolveType = function(node, typeErrors) { | 2980 Element.prototype.resolveType = function(node, typeErrors) { |
2765 if (node == null) return $globals.world.varType; | 2981 if (node == null) return $globals.world.varType; |
2766 if (node.type != null) return node.type; | 2982 if (node.type != null) return node.type; |
2767 if ((node instanceof NameTypeReference)) { | 2983 if ((node instanceof NameTypeReference)) { |
2768 var typeRef = node; | 2984 var typeRef = node; |
2769 var name; | 2985 var name; |
2770 if (typeRef.names != null) { | 2986 if (typeRef.names != null) { |
2771 name = typeRef.names.last().get$name(); | 2987 name = typeRef.names.last$0().get$name(); |
2772 } | 2988 } |
2773 else { | 2989 else { |
2774 name = typeRef.name.name; | 2990 name = typeRef.name.name; |
2775 } | 2991 } |
2776 if (this.get$typeParameters() != null) { | 2992 if (this.get$typeParameters() != null) { |
2777 var $$list = this.get$typeParameters(); | 2993 var $$list = this.get$typeParameters(); |
2778 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 2994 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
2779 var tp = $$list[$$i]; | 2995 var tp = $$list.$index($$i); |
2780 if ($eq(tp.get$name(), name)) { | 2996 if ($eq(tp.get$name(), name)) { |
2781 typeRef.type = tp; | 2997 typeRef.type = tp; |
2782 } | 2998 } |
2783 } | 2999 } |
2784 } | 3000 } |
2785 if (typeRef.type != null) { | 3001 if (typeRef.type != null) { |
2786 return typeRef.type; | 3002 return typeRef.type; |
2787 } | 3003 } |
2788 return this.get$enclosingElement().resolveType$2(node, typeErrors); | 3004 return this.get$enclosingElement().resolveType$2(node, typeErrors); |
2789 } | 3005 } |
2790 else if ((node instanceof GenericTypeReference)) { | 3006 else if ((node instanceof GenericTypeReference)) { |
2791 var typeRef = node; | 3007 var typeRef = node; |
2792 var baseType = this.resolveType$2(typeRef.baseType, typeErrors); | 3008 var baseType = this.resolveType$2(typeRef.baseType, typeErrors); |
2793 if (!baseType.get$isGeneric()) { | 3009 if (!baseType.get$isGeneric()) { |
2794 $globals.world.error(("" + baseType.get$name() + " is not generic"), typeR
ef.span); | 3010 $globals.world.error(("" + baseType.get$name() + " is not generic"), typeR
ef.span); |
2795 return null; | 3011 return null; |
2796 } | 3012 } |
2797 if (typeRef.typeArguments.get$length() != baseType.get$typeParameters().get$
length()) { | 3013 if (typeRef.typeArguments.get$length() != baseType.get$typeParameters().get$
length()) { |
2798 $globals.world.error("wrong number of type arguments", typeRef.span); | 3014 $globals.world.error("wrong number of type arguments", typeRef.span); |
2799 return null; | 3015 return null; |
2800 } | 3016 } |
2801 var typeArgs = []; | 3017 var typeArgs = []; |
2802 for (var i = (0); | 3018 for (var i = (0); |
2803 i < typeRef.typeArguments.get$length(); i++) { | 3019 i < typeRef.typeArguments.get$length(); i++) { |
2804 typeArgs.add$1(this.resolveType$2(typeRef.typeArguments[i], typeErrors)); | 3020 typeArgs.add$1(this.resolveType$2(typeRef.typeArguments.$index(i), typeErr
ors)); |
2805 } | 3021 } |
2806 typeRef.type = baseType.getOrMakeConcreteType$1(typeArgs); | 3022 typeRef.type = baseType.getOrMakeConcreteType$1(typeArgs); |
2807 } | 3023 } |
2808 else if ((node instanceof FunctionTypeReference)) { | 3024 else if ((node instanceof FunctionTypeReference)) { |
2809 var typeRef = node; | 3025 var typeRef = node; |
2810 var name = ""; | 3026 var name = ""; |
2811 if (typeRef.func.name != null) { | 3027 if (typeRef.func.name != null) { |
2812 name = typeRef.func.name.name; | 3028 name = typeRef.func.name.name; |
2813 } | 3029 } |
2814 typeRef.type = this.get$library().getOrAddFunctionType(this, name, typeRef.f
unc); | 3030 typeRef.type = this.get$library().getOrAddFunctionType(this, name, typeRef.f
unc); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2875 this.writeGlobals(); | 3091 this.writeGlobals(); |
2876 this.writer.writeln(("" + mainCall.get$code() + ";")); | 3092 this.writer.writeln(("" + mainCall.get$code() + ";")); |
2877 } | 3093 } |
2878 WorldGenerator.prototype.markLibrariesUsed = function(libs) { | 3094 WorldGenerator.prototype.markLibrariesUsed = function(libs) { |
2879 return this.getAllTypes(libs).forEach(this.get$markTypeUsed()); | 3095 return this.getAllTypes(libs).forEach(this.get$markTypeUsed()); |
2880 } | 3096 } |
2881 WorldGenerator.prototype.markTypeUsed = function(type) { | 3097 WorldGenerator.prototype.markTypeUsed = function(type) { |
2882 if (!type.get$isClass()) return; | 3098 if (!type.get$isClass()) return; |
2883 type.markUsed(); | 3099 type.markUsed(); |
2884 type.isTested = true; | 3100 type.isTested = true; |
2885 type.isTested = !type.get$isTop() && !(type.get$isNative() && type.get$members
().getValues().every((function (m) { | 3101 type.isTested = !type.get$isTop() && !(type.get$isNative() && type.get$members
().getValues$0().every$1((function (m) { |
2886 return m.get$isStatic() && !m.get$isFactory(); | 3102 return m.get$isStatic() && !m.get$isFactory(); |
2887 }) | 3103 }) |
2888 )); | 3104 )); |
2889 var members = ListFactory.ListFactory$from$factory(type.get$members().getValue
s()); | 3105 var members = ListFactory.ListFactory$from$factory(type.get$members().getValue
s$0()); |
2890 members.addAll$1(type.get$constructors().getValues()); | 3106 members.addAll$1(type.get$constructors().getValues$0()); |
2891 type.get$factories().forEach((function (f) { | 3107 type.get$factories().forEach((function (f) { |
2892 return members.add$1(f); | 3108 return members.add$1(f); |
2893 }) | 3109 }) |
2894 ); | 3110 ); |
2895 for (var $$i = members.iterator$0(); $$i.hasNext$0(); ) { | 3111 for (var $$i = members.iterator$0(); $$i.hasNext$0(); ) { |
2896 var member = $$i.next$0(); | 3112 var member = $$i.next$0(); |
2897 if ((member instanceof PropertyMember)) { | 3113 if ((member instanceof PropertyMember)) { |
2898 if (member.get$getter() != null) this.genMethod(member.get$getter()); | 3114 if (member.get$getter() != null) this.genMethod(member.get$getter()); |
2899 if (member.get$setter() != null) this.genMethod(member.get$setter()); | 3115 if (member.get$setter() != null) this.genMethod(member.get$setter()); |
2900 } | 3116 } |
2901 if ((member instanceof MethodMember)) this.genMethod(member); | 3117 if ((member instanceof MethodMember)) this.genMethod(member); |
2902 } | 3118 } |
2903 } | 3119 } |
2904 WorldGenerator.prototype.get$markTypeUsed = function() { | 3120 WorldGenerator.prototype.get$markTypeUsed = function() { |
2905 return this.markTypeUsed.bind(this); | 3121 return this.markTypeUsed.bind(this); |
2906 } | 3122 } |
2907 WorldGenerator.prototype.getAllTypes = function(libs) { | 3123 WorldGenerator.prototype.getAllTypes = function(libs) { |
2908 var types = []; | 3124 var types = []; |
2909 var seen = new HashSetImplementation(); | 3125 var seen = new HashSetImplementation(); |
2910 for (var $$i = 0;$$i < libs.get$length(); $$i++) { | 3126 for (var $$i = 0;$$i < libs.get$length(); $$i++) { |
2911 var mainLib = libs[$$i]; | 3127 var mainLib = libs.$index($$i); |
2912 var toCheck = DoubleLinkedQueue.DoubleLinkedQueue$from$factory([mainLib]); | 3128 var toCheck = DoubleLinkedQueue.DoubleLinkedQueue$from$factory([mainLib]); |
2913 while (!toCheck.isEmpty()) { | 3129 while (!toCheck.isEmpty()) { |
2914 var lib = toCheck.removeFirst(); | 3130 var lib = toCheck.removeFirst(); |
2915 if (seen.contains(lib)) continue; | 3131 if (seen.contains(lib)) continue; |
2916 seen.add(lib); | 3132 seen.add(lib); |
2917 lib.get$imports().forEach$1((function (lib, toCheck, i) { | 3133 lib.get$imports().forEach$1((function (lib, toCheck, i) { |
2918 return toCheck.addLast(lib); | 3134 return toCheck.addLast(lib); |
2919 }).bind(null, lib, toCheck) | 3135 }).bind(null, lib, toCheck) |
2920 ); | 3136 ); |
2921 lib.get$types().getValues$0().forEach$1((function (t) { | 3137 lib.get$types().getValues$0().forEach$1((function (t) { |
(...skipping 24 matching lines...) Expand all Loading... |
2946 ret = new GlobalValue(exp.get$type(), name, true, null, name, exp, exp.span,
dependencies); | 3162 ret = new GlobalValue(exp.get$type(), name, true, null, name, exp, exp.span,
dependencies); |
2947 this.globals.$setindex(key, ret); | 3163 this.globals.$setindex(key, ret); |
2948 } | 3164 } |
2949 return ret; | 3165 return ret; |
2950 } | 3166 } |
2951 WorldGenerator.prototype.writeTypes = function(lib) { | 3167 WorldGenerator.prototype.writeTypes = function(lib) { |
2952 if (lib.isWritten) return; | 3168 if (lib.isWritten) return; |
2953 lib.isWritten = true; | 3169 lib.isWritten = true; |
2954 var $$list = lib.imports; | 3170 var $$list = lib.imports; |
2955 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 3171 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
2956 var import_ = $$list[$$i]; | 3172 var import_ = $$list.$index($$i); |
2957 this.writeTypes(import_.get$library()); | 3173 this.writeTypes(import_.get$library()); |
2958 } | 3174 } |
2959 for (var i = (0); | 3175 for (var i = (0); |
2960 i < lib.sources.get$length(); i++) { | 3176 i < lib.sources.get$length(); i++) { |
2961 lib.sources[i].set$orderInLibrary(i); | 3177 lib.sources.$index(i).set$orderInLibrary(i); |
2962 } | 3178 } |
2963 this.writer.comment(("// ********** Library " + lib.name + " **************")
); | 3179 this.writer.comment(("// ********** Library " + lib.name + " **************")
); |
2964 if (lib.get$isCore()) { | 3180 if (lib.get$isCore()) { |
2965 this.writer.comment("// ********** Natives dart:core **************"); | 3181 this.writer.comment("// ********** Natives dart:core **************"); |
2966 this.corejs.generate(this.writer); | 3182 this.corejs.generate(this.writer); |
2967 } | 3183 } |
2968 var $$list = lib.natives; | 3184 var $$list = lib.natives; |
2969 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 3185 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
2970 var file = $$list[$$i]; | 3186 var file = $$list.$index($$i); |
2971 var filename = basename(file.get$filename()); | 3187 var filename = basename(file.get$filename()); |
2972 this.writer.comment(("// ********** Natives " + filename + " **************
")); | 3188 this.writer.comment(("// ********** Natives " + filename + " **************
")); |
2973 this.writer.writeln(file.get$text()); | 3189 this.writer.writeln(file.get$text()); |
2974 } | 3190 } |
2975 lib.topType.markUsed(); | 3191 lib.topType.markUsed(); |
2976 var orderedTypes = this._orderValues(lib.types); | 3192 var orderedTypes = this._orderValues(lib.types); |
2977 for (var $$i = orderedTypes.iterator$0(); $$i.hasNext$0(); ) { | 3193 for (var $$i = orderedTypes.iterator$0(); $$i.hasNext$0(); ) { |
2978 var type = $$i.next$0(); | 3194 var type = $$i.next$0(); |
2979 if ((type.get$library().get$isDom() || type.get$isHiddenNativeType()) && typ
e.get$isClass()) { | 3195 if ((type.get$library().get$isDom() || type.get$isHiddenNativeType()) && typ
e.get$isClass()) { |
2980 type.markUsed$0(); | 3196 type.markUsed$0(); |
2981 } | 3197 } |
2982 } | 3198 } |
2983 for (var $$i = orderedTypes.iterator$0(); $$i.hasNext$0(); ) { | 3199 for (var $$i = orderedTypes.iterator$0(); $$i.hasNext$0(); ) { |
2984 var type = $$i.next$0(); | 3200 var type = $$i.next$0(); |
2985 if (type.get$isUsed() && type.get$isClass()) { | 3201 if (type.get$isUsed() && type.get$isClass()) { |
2986 this.writeType(type); | 3202 this.writeType(type); |
2987 if (type.get$isGeneric()) { | 3203 if (type.get$isGeneric()) { |
2988 var $$list = this._orderValues(type.get$_concreteTypes()); | 3204 var $$list = this._orderValues(type.get$_concreteTypes()); |
2989 for (var $i0 = 0;$i0 < $$list.get$length(); $i0++) { | 3205 for (var $i0 = 0;$i0 < $$list.get$length(); $i0++) { |
2990 var ct = $$list[$i0]; | 3206 var ct = $$list.$index($i0); |
2991 this.writeType(ct); | 3207 this.writeType(ct); |
2992 } | 3208 } |
2993 } | 3209 } |
2994 } | 3210 } |
2995 else if (type.get$isFunction() && type.get$varStubs().get$length() > (0)) { | 3211 else if (type.get$isFunction() && type.get$varStubs().get$length() > (0)) { |
2996 this.writer.comment(("// ********** Code for " + type.get$jsname() + " ***
***********")); | 3212 this.writer.comment(("// ********** Code for " + type.get$jsname() + " ***
***********")); |
2997 this._writeDynamicStubs(type); | 3213 this._writeDynamicStubs(type); |
2998 } | 3214 } |
2999 if (type.get$typeCheckCode() != null) { | 3215 if (type.get$typeCheckCode() != null) { |
3000 this.writer.writeln(type.get$typeCheckCode()); | 3216 this.writer.writeln(type.get$typeCheckCode()); |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3115 else { | 3331 else { |
3116 var standardConstructor = type.get$constructors().$index(""); | 3332 var standardConstructor = type.get$constructors().$index(""); |
3117 if (standardConstructor == null || standardConstructor.generator == null) { | 3333 if (standardConstructor == null || standardConstructor.generator == null) { |
3118 if (!type.get$isNative()) { | 3334 if (!type.get$isNative()) { |
3119 this.writer.writeln(("function " + type.get$jsname() + "() {}")); | 3335 this.writer.writeln(("function " + type.get$jsname() + "() {}")); |
3120 } | 3336 } |
3121 } | 3337 } |
3122 else { | 3338 else { |
3123 standardConstructor.generator.writeDefinition(this.writer, null); | 3339 standardConstructor.generator.writeDefinition(this.writer, null); |
3124 } | 3340 } |
3125 var $$list = type.get$constructors().getValues(); | 3341 var $$list = type.get$constructors().getValues$0(); |
3126 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 3342 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
3127 var c = $$i.next$0(); | 3343 var c = $$i.next$0(); |
3128 if (c.get$generator() != null && $ne(c, standardConstructor)) { | 3344 if (c.get$generator() != null && $ne(c, standardConstructor)) { |
3129 c.get$generator().writeDefinition$2(this.writer); | 3345 c.get$generator().writeDefinition$2(this.writer); |
3130 } | 3346 } |
3131 } | 3347 } |
3132 } | 3348 } |
3133 if (!(type instanceof ConcreteType)) { | 3349 if (!(type instanceof ConcreteType)) { |
3134 this._maybeIsTest(type, type); | 3350 this._maybeIsTest(type, type); |
3135 } | 3351 } |
3136 if (type.get$genericType()._concreteTypes != null) { | 3352 if (type.get$genericType()._concreteTypes != null) { |
3137 var $$list = this._orderValues(type.get$genericType()._concreteTypes); | 3353 var $$list = this._orderValues(type.get$genericType()._concreteTypes); |
3138 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 3354 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
3139 var ct = $$list[$$i]; | 3355 var ct = $$list.$index($$i); |
3140 this._maybeIsTest(type, ct); | 3356 this._maybeIsTest(type, ct); |
3141 } | 3357 } |
3142 } | 3358 } |
3143 if (type.get$interfaces() != null) { | 3359 if (type.get$interfaces() != null) { |
3144 var seen = new HashSetImplementation(); | 3360 var seen = new HashSetImplementation(); |
3145 var worklist = []; | 3361 var worklist = []; |
3146 worklist.addAll$1(type.get$interfaces()); | 3362 worklist.addAll$1(type.get$interfaces()); |
3147 seen.addAll$1(type.get$interfaces()); | 3363 seen.addAll$1(type.get$interfaces()); |
3148 while (!worklist.isEmpty$0()) { | 3364 while (!worklist.isEmpty$0()) { |
3149 var interface_ = worklist.removeLast$0(); | 3365 var interface_ = worklist.removeLast$0(); |
3150 this._maybeIsTest(type, interface_.get$genericType()); | 3366 this._maybeIsTest(type, interface_.get$genericType()); |
3151 if (interface_.get$genericType().get$_concreteTypes() != null) { | 3367 if (interface_.get$genericType().get$_concreteTypes() != null) { |
3152 var $$list = this._orderValues(interface_.get$genericType().get$_concret
eTypes()); | 3368 var $$list = this._orderValues(interface_.get$genericType().get$_concret
eTypes()); |
3153 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 3369 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
3154 var ct = $$list[$$i]; | 3370 var ct = $$list.$index($$i); |
3155 this._maybeIsTest(type, ct); | 3371 this._maybeIsTest(type, ct); |
3156 } | 3372 } |
3157 } | 3373 } |
3158 var $$list = interface_.get$interfaces(); | 3374 var $$list = interface_.get$interfaces(); |
3159 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 3375 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
3160 var other = $$i.next$0(); | 3376 var other = $$i.next$0(); |
3161 if (!seen.contains$1(other)) { | 3377 if (!seen.contains$1(other)) { |
3162 worklist.addLast$1(other); | 3378 worklist.addLast$1(other); |
3163 seen.add$1(other); | 3379 seen.add$1(other); |
3164 } | 3380 } |
3165 } | 3381 } |
3166 } | 3382 } |
3167 } | 3383 } |
3168 type.get$factories().forEach(this.get$_writeMethod()); | 3384 type.get$factories().forEach(this.get$_writeMethod()); |
3169 var $$list = this._orderValues(type.get$members()); | 3385 var $$list = this._orderValues(type.get$members()); |
3170 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 3386 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
3171 var member = $$list[$$i]; | 3387 var member = $$list.$index($$i); |
3172 if ((member instanceof FieldMember)) { | 3388 if ((member instanceof FieldMember)) { |
3173 this._writeField(member); | 3389 this._writeField(member); |
3174 } | 3390 } |
3175 if ((member instanceof PropertyMember)) { | 3391 if ((member instanceof PropertyMember)) { |
3176 this._writeProperty(member); | 3392 this._writeProperty(member); |
3177 } | 3393 } |
3178 if (member.get$isMethod()) { | 3394 if (member.get$isMethod()) { |
3179 this._writeMethod(member); | 3395 this._writeMethod(member); |
3180 } | 3396 } |
3181 } | 3397 } |
3182 this._writeDynamicStubs(type); | 3398 this._writeDynamicStubs(type); |
3183 } | 3399 } |
3184 WorldGenerator.prototype._typeNeedsHolderForStaticMethods = function(type) { | 3400 WorldGenerator.prototype._typeNeedsHolderForStaticMethods = function(type) { |
3185 var $$list = type.get$members().getValues(); | 3401 var $$list = type.get$members().getValues$0(); |
3186 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 3402 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
3187 var member = $$i.next$0(); | 3403 var member = $$i.next$0(); |
3188 if (member.get$isMethod()) { | 3404 if (member.get$isMethod()) { |
3189 if (member.get$isConstructor() || member.get$isStatic()) { | 3405 if (member.get$isConstructor() || member.get$isStatic()) { |
3190 if (member.get$isGenerated()) { | 3406 if (member.get$isGenerated()) { |
3191 return true; | 3407 return true; |
3192 } | 3408 } |
3193 } | 3409 } |
3194 } | 3410 } |
3195 } | 3411 } |
3196 return false; | 3412 return false; |
3197 } | 3413 } |
3198 WorldGenerator.prototype._ensureInheritMembersHelper = function() { | 3414 WorldGenerator.prototype._ensureInheritMembersHelper = function() { |
3199 if (this._mixins != null) return; | 3415 if (this._mixins != null) return; |
3200 this._mixins = new CodeWriter(); | 3416 this._mixins = new CodeWriter(); |
3201 this._mixins.comment("// ********** Generic Type Inheritance **************"); | 3417 this._mixins.comment("// ********** Generic Type Inheritance **************"); |
3202 this._mixins.writeln("/** Implements extends for generic types. */\nfunction $
inheritsMembers(child, parent) {\n child = child.prototype;\n parent = parent.
prototype;\n Object.getOwnPropertyNames(parent).forEach(function(name) {\n i
f (typeof(child[name]) == 'undefined') child[name] = parent[name];\n });\n}"); | 3418 this._mixins.writeln("/** Implements extends for generic types. */\nfunction $
inheritsMembers(child, parent) {\n child = child.prototype;\n parent = parent.
prototype;\n Object.getOwnPropertyNames(parent).forEach(function(name) {\n i
f (typeof(child[name]) == 'undefined') child[name] = parent[name];\n });\n}"); |
3203 } | 3419 } |
3204 WorldGenerator.prototype._writeDynamicStubs = function(type) { | 3420 WorldGenerator.prototype._writeDynamicStubs = function(type) { |
3205 var $$list = orderValuesByKeys(type.varStubs); | 3421 var $$list = orderValuesByKeys(type.varStubs); |
3206 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 3422 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
3207 var stub = $$list[$$i]; | 3423 var stub = $$list.$index($$i); |
3208 if (!stub.get$isGenerated()) stub.generate$1(this.writer); | 3424 if (!stub.get$isGenerated()) stub.generate$1(this.writer); |
3209 } | 3425 } |
3210 } | 3426 } |
3211 WorldGenerator.prototype._writeStaticField = function(field) { | 3427 WorldGenerator.prototype._writeStaticField = function(field) { |
3212 if (field.isFinal) return; | 3428 if (field.isFinal) return; |
3213 var fullname = ("" + field.declaringType.get$jsname() + "." + field.get$jsname
()); | 3429 var fullname = ("" + field.declaringType.get$jsname() + "." + field.get$jsname
()); |
3214 if (this.globals.containsKey(fullname)) { | 3430 if (this.globals.containsKey(fullname)) { |
3215 var value = this.globals.$index(fullname); | 3431 var value = this.globals.$index(fullname); |
3216 if (field.declaringType.get$isTop() && !field.isNative) { | 3432 if (field.declaringType.get$isTop() && !field.isNative) { |
3217 this.writer.writeln(("$globals." + field.get$jsname() + " = " + value.get$
exp().get$code() + ";")); | 3433 this.writer.writeln(("$globals." + field.get$jsname() + " = " + value.get$
exp().get$code() + ";")); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3254 else if ((m instanceof MethodMember) && m.get$isNative() && m._provideProperty
Syntax && !m._provideFieldSyntax) { | 3470 else if ((m instanceof MethodMember) && m.get$isNative() && m._provideProperty
Syntax && !m._provideFieldSyntax) { |
3255 MethodGenerator._maybeGenerateBoundGetter(m, this.writer); | 3471 MethodGenerator._maybeGenerateBoundGetter(m, this.writer); |
3256 } | 3472 } |
3257 } | 3473 } |
3258 WorldGenerator.prototype.get$_writeMethod = function() { | 3474 WorldGenerator.prototype.get$_writeMethod = function() { |
3259 return this._writeMethod.bind(this); | 3475 return this._writeMethod.bind(this); |
3260 } | 3476 } |
3261 WorldGenerator.prototype.writeGlobals = function() { | 3477 WorldGenerator.prototype.writeGlobals = function() { |
3262 if (this.globals.get$length() > (0)) { | 3478 if (this.globals.get$length() > (0)) { |
3263 this.writer.comment("// ********** Globals **************"); | 3479 this.writer.comment("// ********** Globals **************"); |
3264 var list = this.globals.getValues(); | 3480 var list = this.globals.getValues$0(); |
3265 list.sort$1((function (a, b) { | 3481 list.sort$1((function (a, b) { |
3266 return a.compareTo$1(b); | 3482 return a.compareTo$1(b); |
3267 }) | 3483 }) |
3268 ); | 3484 ); |
3269 this.writer.enterBlock("function $static_init(){"); | 3485 this.writer.enterBlock("function $static_init(){"); |
3270 for (var $$i = list.iterator$0(); $$i.hasNext$0(); ) { | 3486 for (var $$i = list.iterator$0(); $$i.hasNext$0(); ) { |
3271 var global = $$i.next$0(); | 3487 var global = $$i.next$0(); |
3272 if (global.get$field() != null) { | 3488 if (global.get$field() != null) { |
3273 this._writeStaticField(global.get$field()); | 3489 this._writeStaticField(global.get$field()); |
3274 } | 3490 } |
(...skipping 23 matching lines...) Expand all Loading... |
3298 var $this = this; // closure support | 3514 var $this = this; // closure support |
3299 if (this.typesWithDynamicDispatch == null) return; | 3515 if (this.typesWithDynamicDispatch == null) return; |
3300 this.writer.comment(("// " + this.typesWithDynamicDispatch.get$length() + " dy
namic types.")); | 3516 this.writer.comment(("// " + this.typesWithDynamicDispatch.get$length() + " dy
namic types.")); |
3301 var seen = new HashSetImplementation(); | 3517 var seen = new HashSetImplementation(); |
3302 var types = []; | 3518 var types = []; |
3303 function visit(type) { | 3519 function visit(type) { |
3304 if (seen.contains$1(type)) return; | 3520 if (seen.contains$1(type)) return; |
3305 seen.add$1(type); | 3521 seen.add$1(type); |
3306 var $$list = $this._orderCollectionValues(type.get$directSubtypes()); | 3522 var $$list = $this._orderCollectionValues(type.get$directSubtypes()); |
3307 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 3523 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
3308 var subtype = $$list[$$i]; | 3524 var subtype = $$list.$index($$i); |
3309 visit.call$1(subtype); | 3525 visit(subtype); |
3310 } | 3526 } |
3311 types.add$1(type); | 3527 types.add$1(type); |
3312 } | 3528 } |
3313 var $$list = this._orderCollectionValues(this.typesWithDynamicDispatch); | 3529 var $$list = this._orderCollectionValues(this.typesWithDynamicDispatch); |
3314 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 3530 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
3315 var type = $$list[$$i]; | 3531 var type = $$list.$index($$i); |
3316 visit.call$1(type); | 3532 visit(type); |
3317 } | 3533 } |
3318 var dispatchTypes = types.filter$1((function (type) { | 3534 var dispatchTypes = types.filter$1((function (type) { |
3319 return !type.get$directSubtypes().isEmpty$0() && $this.typesWithDynamicDispa
tch.contains(type); | 3535 return !type.get$directSubtypes().isEmpty$0() && $this.typesWithDynamicDispa
tch.contains(type); |
3320 }) | 3536 }) |
3321 ); | 3537 ); |
3322 this.writer.comment(("// " + types.get$length() + " types")); | 3538 this.writer.comment(("// " + types.get$length() + " types")); |
3323 this.writer.comment(("// " + types.filter$1((function (t) { | 3539 this.writer.comment(("// " + types.filter$1((function (t) { |
3324 return !t.get$directSubtypes().isEmpty$0(); | 3540 return !t.get$directSubtypes().isEmpty$0(); |
3325 }) | 3541 }) |
3326 ).get$length() + " !leaf")); | 3542 ).get$length() + " !leaf")); |
3327 var varNames = []; | 3543 var varNames = []; |
3328 var varDefns = new HashMapImplementation(); | 3544 var varDefns = new HashMapImplementation(); |
3329 var tagDefns = new HashMapImplementation(); | 3545 var tagDefns = new HashMapImplementation(); |
3330 function makeExpression(type) { | 3546 function makeExpression(type) { |
3331 var expressions = []; | 3547 var expressions = []; |
3332 var subtags = [type.get$nativeName()]; | 3548 var subtags = [type.get$nativeName()]; |
3333 function walk(type) { | 3549 function walk(type) { |
3334 var $$list = $this._orderCollectionValues(type.get$directSubtypes()); | 3550 var $$list = $this._orderCollectionValues(type.get$directSubtypes()); |
3335 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 3551 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
3336 var subtype = $$list[$$i]; | 3552 var subtype = $$list.$index($$i); |
3337 var tag = subtype.get$nativeName(); | 3553 var tag = subtype.get$nativeName(); |
3338 var existing = tagDefns.$index(tag); | 3554 var existing = tagDefns.$index(tag); |
3339 if (existing == null) { | 3555 if (existing == null) { |
3340 subtags.add$1(tag); | 3556 subtags.add$1(tag); |
3341 walk.call$1(subtype); | 3557 walk(subtype); |
3342 } | 3558 } |
3343 else { | 3559 else { |
3344 if (varDefns.containsKey$1(existing)) { | 3560 if (varDefns.containsKey$1(existing)) { |
3345 expressions.add$1(existing); | 3561 expressions.add$1(existing); |
3346 } | 3562 } |
3347 else { | 3563 else { |
3348 var varName = ("v" + varNames.get$length() + "/*" + tag + "*/"); | 3564 var varName = ("v" + varNames.get$length() + "/*" + tag + "*/"); |
3349 varNames.add$1(varName); | 3565 varNames.add$1(varName); |
3350 varDefns.$setindex(varName, existing); | 3566 varDefns.$setindex(varName, existing); |
3351 tagDefns.$setindex(tag, varName); | 3567 tagDefns.$setindex(tag, varName); |
3352 expressions.add$1(varName); | 3568 expressions.add$1(varName); |
3353 } | 3569 } |
3354 } | 3570 } |
3355 } | 3571 } |
3356 } | 3572 } |
3357 walk.call$1(type); | 3573 walk(type); |
3358 var constantPart = ("'" + Strings.join(subtags, "|") + "'"); | 3574 var constantPart = ("'" + Strings.join(subtags, "|") + "'"); |
3359 if ($ne(constantPart, "''")) expressions.add$1(constantPart); | 3575 if ($ne(constantPart, "''")) expressions.add$1(constantPart); |
3360 var expression; | 3576 var expression; |
3361 if ($eq(expressions.get$length(), (1))) { | 3577 if ($eq(expressions.get$length(), (1))) { |
3362 expression = expressions.$index((0)); | 3578 expression = expressions.$index((0)); |
3363 } | 3579 } |
3364 else { | 3580 else { |
3365 expression = ("[" + Strings.join(expressions, ",") + "].join('|')"); | 3581 expression = ("[" + Strings.join(expressions, ",") + "].join('|')"); |
3366 } | 3582 } |
3367 return expression; | 3583 return expression; |
3368 } | 3584 } |
3369 for (var $$i = dispatchTypes.iterator$0(); $$i.hasNext$0(); ) { | 3585 for (var $$i = dispatchTypes.iterator$0(); $$i.hasNext$0(); ) { |
3370 var type = $$i.next$0(); | 3586 var type = $$i.next$0(); |
3371 tagDefns.$setindex(type.get$nativeName(), makeExpression.call$1(type)); | 3587 tagDefns.$setindex(type.get$nativeName(), makeExpression(type)); |
3372 } | 3588 } |
3373 if (!tagDefns.isEmpty$0()) { | 3589 if (!tagDefns.isEmpty$0()) { |
3374 this.writer.enterBlock("(function(){"); | 3590 this.writer.enterBlock("(function(){"); |
3375 for (var $$i = varNames.iterator$0(); $$i.hasNext$0(); ) { | 3591 for (var $$i = varNames.iterator$0(); $$i.hasNext$0(); ) { |
3376 var varName = $$i.next$0(); | 3592 var varName = $$i.next$0(); |
3377 this.writer.writeln(("var " + varName + " = " + varDefns.$index(varName) +
";")); | 3593 this.writer.writeln(("var " + varName + " = " + varDefns.$index(varName) +
";")); |
3378 } | 3594 } |
3379 this.writer.enterBlock("var table = ["); | 3595 this.writer.enterBlock("var table = ["); |
3380 this.writer.comment("// [dynamic-dispatch-tag, tags of classes implementing
dynamic-dispatch-tag]"); | 3596 this.writer.comment("// [dynamic-dispatch-tag, tags of classes implementing
dynamic-dispatch-tag]"); |
3381 for (var $$i = dispatchTypes.iterator$0(); $$i.hasNext$0(); ) { | 3597 for (var $$i = dispatchTypes.iterator$0(); $$i.hasNext$0(); ) { |
3382 var type = $$i.next$0(); | 3598 var type = $$i.next$0(); |
3383 this.writer.writeln(("['" + type.get$nativeName() + "', " + tagDefns.$inde
x(type.get$nativeName()) + "],")); | 3599 this.writer.writeln(("['" + type.get$nativeName() + "', " + tagDefns.$inde
x(type.get$nativeName()) + "],")); |
3384 } | 3600 } |
3385 this.writer.exitBlock("];"); | 3601 this.writer.exitBlock("];"); |
3386 this.writer.writeln("$dynamicSetMetadata(table);"); | 3602 this.writer.writeln("$dynamicSetMetadata(table);"); |
3387 this.writer.exitBlock("})();"); | 3603 this.writer.exitBlock("})();"); |
3388 } | 3604 } |
3389 } | 3605 } |
3390 WorldGenerator.prototype._orderValues = function(map) { | 3606 WorldGenerator.prototype._orderValues = function(map) { |
3391 var values = map.getValues(); | 3607 var values = map.getValues$0(); |
3392 values.sort(this.get$_compareMembers()); | 3608 values.sort(this.get$_compareMembers()); |
3393 return values; | 3609 return values; |
3394 } | 3610 } |
3395 WorldGenerator.prototype._orderCollectionValues = function(collection) { | 3611 WorldGenerator.prototype._orderCollectionValues = function(collection) { |
3396 var values = ListFactory.ListFactory$from$factory(collection); | 3612 var values = ListFactory.ListFactory$from$factory(collection); |
3397 values.sort(this.get$_compareMembers()); | 3613 values.sort(this.get$_compareMembers()); |
3398 return values; | 3614 return values; |
3399 } | 3615 } |
3400 WorldGenerator.prototype._compareMembers = function(x, y) { | 3616 WorldGenerator.prototype._compareMembers = function(x, y) { |
3401 if (x.get$span() != null && y.get$span() != null) { | 3617 if (x.get$span() != null && y.get$span() != null) { |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3446 } | 3662 } |
3447 MethodGenerator.prototype.get$isStatic = function() { | 3663 MethodGenerator.prototype.get$isStatic = function() { |
3448 return this.method.get$isStatic(); | 3664 return this.method.get$isStatic(); |
3449 } | 3665 } |
3450 MethodGenerator.prototype.getTemp = function(value) { | 3666 MethodGenerator.prototype.getTemp = function(value) { |
3451 return value.get$needsTemp() ? this.forceTemp(value) : value; | 3667 return value.get$needsTemp() ? this.forceTemp(value) : value; |
3452 } | 3668 } |
3453 MethodGenerator.prototype.forceTemp = function(value) { | 3669 MethodGenerator.prototype.forceTemp = function(value) { |
3454 var name; | 3670 var name; |
3455 if (this._freeTemps.get$length() > (0)) { | 3671 if (this._freeTemps.get$length() > (0)) { |
3456 name = this._freeTemps.removeLast(); | 3672 name = this._freeTemps.removeLast$0(); |
3457 } | 3673 } |
3458 else { | 3674 else { |
3459 name = "$" + this._usedTemps.get$length(); | 3675 name = "$" + this._usedTemps.get$length(); |
3460 } | 3676 } |
3461 this._usedTemps.add(name); | 3677 this._usedTemps.add(name); |
3462 return new VariableValue(value.get$staticType(), name, value.span, false, valu
e); | 3678 return new VariableValue(value.get$staticType(), name, value.span, false, valu
e); |
3463 } | 3679 } |
3464 MethodGenerator.prototype.assignTemp = function(tmp, v) { | 3680 MethodGenerator.prototype.assignTemp = function(tmp, v) { |
3465 if ($eq(tmp, v)) { | 3681 if ($eq(tmp, v)) { |
3466 return v; | 3682 return v; |
(...skipping 13 matching lines...) Expand all Loading... |
3480 if (this.method.get$isConstructor()) { | 3696 if (this.method.get$isConstructor()) { |
3481 thisObject = new ObjectValue(false, this.method.declaringType, this.method.g
et$span()); | 3697 thisObject = new ObjectValue(false, this.method.declaringType, this.method.g
et$span()); |
3482 thisObject.initFields$0(); | 3698 thisObject.initFields$0(); |
3483 } | 3699 } |
3484 else { | 3700 else { |
3485 thisObject = new Value(this.method.declaringType, "this", null); | 3701 thisObject = new Value(this.method.declaringType, "this", null); |
3486 } | 3702 } |
3487 var values = []; | 3703 var values = []; |
3488 var $$list = this.method.get$parameters(); | 3704 var $$list = this.method.get$parameters(); |
3489 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 3705 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
3490 var p = $$list[$$i]; | 3706 var p = $$list.$index($$i); |
3491 values.add$1(new Value(p.get$type(), p.get$name(), null)); | 3707 values.add$1(new Value(p.get$type(), p.get$name(), null)); |
3492 } | 3708 } |
3493 var args = new Arguments(null, values); | 3709 var args = new Arguments(null, values); |
3494 this.evalBody(thisObject, args); | 3710 this.evalBody(thisObject, args); |
3495 if (this.method.get$definition().get$nativeBody() != null) { | 3711 if (this.method.get$definition().get$nativeBody() != null) { |
3496 this.writer = new CodeWriter(); | 3712 this.writer = new CodeWriter(); |
3497 if ($eq(this.method.get$definition().get$nativeBody(), "")) { | 3713 if ($eq(this.method.get$definition().get$nativeBody(), "")) { |
3498 this.method.generator = null; | 3714 this.method.generator = null; |
3499 } | 3715 } |
3500 else { | 3716 else { |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3598 } | 3814 } |
3599 MethodGenerator.prototype._provideOptionalParamInfo = function(defWriter) { | 3815 MethodGenerator.prototype._provideOptionalParamInfo = function(defWriter) { |
3600 if ((this.method instanceof MethodMember)) { | 3816 if ((this.method instanceof MethodMember)) { |
3601 var meth = this.method; | 3817 var meth = this.method; |
3602 if (meth._provideOptionalParamInfo) { | 3818 if (meth._provideOptionalParamInfo) { |
3603 var optNames = []; | 3819 var optNames = []; |
3604 var optValues = []; | 3820 var optValues = []; |
3605 meth.genParameterValues(); | 3821 meth.genParameterValues(); |
3606 var $$list = meth.parameters; | 3822 var $$list = meth.parameters; |
3607 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 3823 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
3608 var param = $$list[$$i]; | 3824 var param = $$list.$index($$i); |
3609 if (param.get$isOptional()) { | 3825 if (param.get$isOptional()) { |
3610 optNames.add$1(param.get$name()); | 3826 optNames.add$1(param.get$name()); |
3611 optValues.add$1(MethodGenerator._escapeString(param.get$value().get$co
de())); | 3827 optValues.add$1(MethodGenerator._escapeString(param.get$value().get$co
de())); |
3612 } | 3828 } |
3613 } | 3829 } |
3614 if (optNames.get$length() > (0)) { | 3830 if (optNames.get$length() > (0)) { |
3615 var start = ""; | 3831 var start = ""; |
3616 if (meth.isStatic) { | 3832 if (meth.isStatic) { |
3617 if (!meth.declaringType.get$isTop()) { | 3833 if (!meth.declaringType.get$isTop()) { |
3618 start = meth.declaringType.get$jsname() + "."; | 3834 start = meth.declaringType.get$jsname() + "."; |
(...skipping 20 matching lines...) Expand all Loading... |
3639 return newObject.setField(field, value, true); | 3855 return newObject.setField(field, value, true); |
3640 } | 3856 } |
3641 MethodGenerator.prototype.evalBody = function(newObject, args) { | 3857 MethodGenerator.prototype.evalBody = function(newObject, args) { |
3642 var fieldsSet = false; | 3858 var fieldsSet = false; |
3643 if (this.method.get$isNative() && this.method.get$isConstructor() && (newObjec
t instanceof ObjectValue)) { | 3859 if (this.method.get$isNative() && this.method.get$isConstructor() && (newObjec
t instanceof ObjectValue)) { |
3644 newObject.get$dynamic().set$seenNativeInitializer(true); | 3860 newObject.get$dynamic().set$seenNativeInitializer(true); |
3645 } | 3861 } |
3646 this._paramCode = []; | 3862 this._paramCode = []; |
3647 for (var i = (0); | 3863 for (var i = (0); |
3648 i < this.method.get$parameters().get$length(); i++) { | 3864 i < this.method.get$parameters().get$length(); i++) { |
3649 var p = this.method.get$parameters()[i]; | 3865 var p = this.method.get$parameters().$index(i); |
3650 var currentArg = null; | 3866 var currentArg = null; |
3651 if (i < args.get$bareCount()) { | 3867 if (i < args.get$bareCount()) { |
3652 currentArg = args.values[i]; | 3868 currentArg = args.values.$index(i); |
3653 } | 3869 } |
3654 else { | 3870 else { |
3655 currentArg = args.getValue(p.get$name()); | 3871 currentArg = args.getValue(p.get$name()); |
3656 if (currentArg == null) { | 3872 if (currentArg == null) { |
3657 p.genValue$2(this.method, this.method.generator); | 3873 p.genValue$2(this.method, this.method.generator); |
3658 currentArg = p.get$value(); | 3874 currentArg = p.get$value(); |
3659 } | 3875 } |
3660 } | 3876 } |
3661 if (p.get$isInitializer()) { | 3877 if (p.get$isInitializer()) { |
3662 this._paramCode.add(p.get$name()); | 3878 this._paramCode.add(p.get$name()); |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3785 var value = m.invoke$4(this, node, target, newArgs); | 4001 var value = m.invoke$4(this, node, target, newArgs); |
3786 if ($ne(target.get$type(), $globals.world.objectType)) { | 4002 if ($ne(target.get$type(), $globals.world.objectType)) { |
3787 this.writer.writeln(("" + value.get$code() + ";")); | 4003 this.writer.writeln(("" + value.get$code() + ";")); |
3788 } | 4004 } |
3789 } | 4005 } |
3790 } | 4006 } |
3791 MethodGenerator.prototype._makeArgs = function(arguments) { | 4007 MethodGenerator.prototype._makeArgs = function(arguments) { |
3792 var args = []; | 4008 var args = []; |
3793 var seenLabel = false; | 4009 var seenLabel = false; |
3794 for (var $$i = 0;$$i < arguments.get$length(); $$i++) { | 4010 for (var $$i = 0;$$i < arguments.get$length(); $$i++) { |
3795 var arg = arguments[$$i]; | 4011 var arg = arguments.$index($$i); |
3796 if (arg.get$label() != null) { | 4012 if (arg.get$label() != null) { |
3797 seenLabel = true; | 4013 seenLabel = true; |
3798 } | 4014 } |
3799 else if (seenLabel) { | 4015 else if (seenLabel) { |
3800 $globals.world.error("bare argument can not follow named arguments", arg.g
et$span()); | 4016 $globals.world.error("bare argument can not follow named arguments", arg.g
et$span()); |
3801 } | 4017 } |
3802 args.add$1(this.visitValue(arg.get$value())); | 4018 args.add$1(this.visitValue(arg.get$value())); |
3803 } | 4019 } |
3804 return new Arguments(arguments, args); | 4020 return new Arguments(arguments, args); |
3805 } | 4021 } |
3806 MethodGenerator.prototype._invokeNative = function(name, arguments) { | 4022 MethodGenerator.prototype._invokeNative = function(name, arguments) { |
3807 var args = Arguments.get$EMPTY(); | 4023 var args = Arguments.get$EMPTY(); |
3808 if (arguments.get$length() > (0)) { | 4024 if (arguments.get$length() > (0)) { |
3809 args = new Arguments(null, arguments); | 4025 args = new Arguments(null, arguments); |
3810 } | 4026 } |
3811 var method = $globals.world.corelib.topType.members.$index(name); | 4027 var method = $globals.world.corelib.topType.members.$index(name); |
3812 return method.invoke$4(this, method.get$definition(), new Value($globals.world
.corelib.topType, null, null), args); | 4028 return method.invoke$4(this, method.get$definition(), new Value($globals.world
.corelib.topType, null, null), args); |
3813 } | 4029 } |
3814 MethodGenerator._escapeString = function(text) { | 4030 MethodGenerator._escapeString = function(text) { |
3815 return text.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"").replaceAll("\n",
"\\n").replaceAll("\r", "\\r"); | 4031 return text.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"").replaceAll("\n",
"\\n").replaceAll("\r", "\\r"); |
3816 } | 4032 } |
3817 MethodGenerator.prototype.visitStatementsInBlock = function(body) { | 4033 MethodGenerator.prototype.visitStatementsInBlock = function(body) { |
3818 if ((body instanceof BlockStatement)) { | 4034 if ((body instanceof BlockStatement)) { |
3819 var block = body; | 4035 var block = body; |
3820 var $$list = block.body; | 4036 var $$list = block.body; |
3821 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 4037 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
3822 var stmt = $$list[$$i]; | 4038 var stmt = $$list.$index($$i); |
3823 stmt.visit$1(this); | 4039 stmt.visit$1(this); |
3824 } | 4040 } |
3825 } | 4041 } |
3826 else { | 4042 else { |
3827 if (body != null) body.visit(this); | 4043 if (body != null) body.visit(this); |
3828 } | 4044 } |
3829 return false; | 4045 return false; |
3830 } | 4046 } |
3831 MethodGenerator.prototype._pushBlock = function(node, reentrant) { | 4047 MethodGenerator.prototype._pushBlock = function(node, reentrant) { |
3832 this._scope = new BlockScope(this, this._scope, node, reentrant); | 4048 this._scope = new BlockScope(this, this._scope, node, reentrant); |
3833 } | 4049 } |
3834 MethodGenerator.prototype._popBlock = function(node) { | 4050 MethodGenerator.prototype._popBlock = function(node) { |
3835 if (this._scope.node != node) { | 4051 if (this._scope.node != node) { |
3836 function spanOf(n) { | 4052 function spanOf(n) { |
3837 return n != null ? n.get$span() : null; | 4053 return n != null ? n.get$span() : null; |
3838 } | 4054 } |
3839 $globals.world.internalError(("scope mismatch. Trying to pop \"" + node + "\
" but found ") + (" \"" + this._scope.node + "\""), spanOf.call$1(node), spanOf.
call$1(this._scope.node)); | 4055 $globals.world.internalError(("scope mismatch. Trying to pop \"" + node + "\
" but found ") + (" \"" + this._scope.node + "\""), spanOf(node), spanOf(this._s
cope.node)); |
3840 } | 4056 } |
3841 this._scope = this._scope.parent; | 4057 this._scope = this._scope.parent; |
3842 } | 4058 } |
3843 MethodGenerator.prototype._visitLoop = function(node, visitBody) { | 4059 MethodGenerator.prototype._visitLoop = function(node, visitBody) { |
3844 if (this._scope.inferTypes) { | 4060 if (this._scope.inferTypes) { |
3845 this._loopFixedPoint(node, visitBody); | 4061 this._loopFixedPoint(node, visitBody); |
3846 } | 4062 } |
3847 else { | 4063 else { |
3848 this._pushBlock(node, true); | 4064 this._pushBlock(node, true); |
3849 visitBody.call$0(); | 4065 visitBody.call$0(); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3908 } | 4124 } |
3909 return this.visitValue(node); | 4125 return this.visitValue(node); |
3910 } | 4126 } |
3911 MethodGenerator.prototype.visitDietStatement = function(node) { | 4127 MethodGenerator.prototype.visitDietStatement = function(node) { |
3912 var parser = new Parser(node.span.file, false, false, false, node.span.start); | 4128 var parser = new Parser(node.span.file, false, false, false, node.span.start); |
3913 this.visitStatementsInBlock(parser.block$0()); | 4129 this.visitStatementsInBlock(parser.block$0()); |
3914 return false; | 4130 return false; |
3915 } | 4131 } |
3916 MethodGenerator.prototype.visitVariableDefinition = function(node) { | 4132 MethodGenerator.prototype.visitVariableDefinition = function(node) { |
3917 var isFinal = false; | 4133 var isFinal = false; |
3918 if (node.modifiers != null && $eq(node.modifiers[(0)].get$kind(), (99))) { | 4134 if (node.modifiers != null && $eq(node.modifiers.$index((0)).get$kind(), (99))
) { |
3919 isFinal = true; | 4135 isFinal = true; |
3920 } | 4136 } |
3921 this.writer.write("var "); | 4137 this.writer.write("var "); |
3922 var type = this.method.resolveType$2(node.type, false); | 4138 var type = this.method.resolveType$2(node.type, false); |
3923 for (var i = (0); | 4139 for (var i = (0); |
3924 i < node.names.get$length(); i++) { | 4140 i < node.names.get$length(); i++) { |
3925 if (i > (0)) { | 4141 if (i > (0)) { |
3926 this.writer.write(", "); | 4142 this.writer.write(", "); |
3927 } | 4143 } |
3928 var name = node.names[i].get$name(); | 4144 var name = node.names.$index(i).get$name(); |
3929 var value = this.visitValue(node.values[i]); | 4145 var value = this.visitValue(node.values.$index(i)); |
3930 if (isFinal && value == null) { | 4146 if (isFinal && value == null) { |
3931 $globals.world.error("no value specified for final variable", node.span); | 4147 $globals.world.error("no value specified for final variable", node.span); |
3932 } | 4148 } |
3933 var val = this._scope.create(name, type, node.names[i].get$span(), isFinal,
false); | 4149 var val = this._scope.create(name, type, node.names.$index(i).get$span(), is
Final, false); |
3934 if (value == null) { | 4150 if (value == null) { |
3935 if (this._scope.reentrant) { | 4151 if (this._scope.reentrant) { |
3936 this.writer.write(("" + val.get$code() + " = null")); | 4152 this.writer.write(("" + val.get$code() + " = null")); |
3937 } | 4153 } |
3938 else { | 4154 else { |
3939 this.writer.write(("" + val.get$code())); | 4155 this.writer.write(("" + val.get$code())); |
3940 } | 4156 } |
3941 } | 4157 } |
3942 else { | 4158 else { |
3943 value = value.convertTo$2(this, type); | 4159 value = value.convertTo$2(this, type); |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4065 if (node.test != null) { | 4281 if (node.test != null) { |
4066 var test = $this.visitBool(node.test); | 4282 var test = $this.visitBool(node.test); |
4067 $this.writer.write((" " + test.get$code() + "; ")); | 4283 $this.writer.write((" " + test.get$code() + "; ")); |
4068 } | 4284 } |
4069 else { | 4285 else { |
4070 $this.writer.write("; "); | 4286 $this.writer.write("; "); |
4071 } | 4287 } |
4072 var needsComma = false; | 4288 var needsComma = false; |
4073 var $$list = node.step; | 4289 var $$list = node.step; |
4074 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 4290 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
4075 var s = $$list[$$i]; | 4291 var s = $$list.$index($$i); |
4076 if (needsComma) $this.writer.write(", "); | 4292 if (needsComma) $this.writer.write(", "); |
4077 var sv = $this.visitVoid(s); | 4293 var sv = $this.visitVoid(s); |
4078 $this.writer.write(sv.get$code()); | 4294 $this.writer.write(sv.get$code()); |
4079 needsComma = true; | 4295 needsComma = true; |
4080 } | 4296 } |
4081 $this.writer.write(") "); | 4297 $this.writer.write(") "); |
4082 $this._pushBlock(node.body, false); | 4298 $this._pushBlock(node.body, false); |
4083 node.body.visit($this); | 4299 node.body.visit($this); |
4084 $this._popBlock(node.body); | 4300 $this._popBlock(node.body); |
4085 }) | 4301 }) |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4137 MethodGenerator.prototype._genStackTraceOf = function(trace, ex) { | 4353 MethodGenerator.prototype._genStackTraceOf = function(trace, ex) { |
4138 var result = this._invokeNative("_stackTraceOf", [ex]); | 4354 var result = this._invokeNative("_stackTraceOf", [ex]); |
4139 this.writer.writeln(("var " + trace.get$code() + " = " + result.get$code() + "
;")); | 4355 this.writer.writeln(("var " + trace.get$code() + " = " + result.get$code() + "
;")); |
4140 } | 4356 } |
4141 MethodGenerator.prototype.visitTryStatement = function(node) { | 4357 MethodGenerator.prototype.visitTryStatement = function(node) { |
4142 this.writer.enterBlock("try {"); | 4358 this.writer.enterBlock("try {"); |
4143 this._pushBlock(node.body, false); | 4359 this._pushBlock(node.body, false); |
4144 this.visitStatementsInBlock(node.body); | 4360 this.visitStatementsInBlock(node.body); |
4145 this._popBlock(node.body); | 4361 this._popBlock(node.body); |
4146 if (node.catches.get$length() == (1)) { | 4362 if (node.catches.get$length() == (1)) { |
4147 var catch_ = node.catches[(0)]; | 4363 var catch_ = node.catches.$index((0)); |
4148 this._pushBlock(catch_, false); | 4364 this._pushBlock(catch_, false); |
4149 var exType = this.method.resolveType$2(catch_.get$exception().get$type(), fa
lse); | 4365 var exType = this.method.resolveType$2(catch_.get$exception().get$type(), fa
lse); |
4150 var ex = this._scope.declare(catch_.get$exception()); | 4366 var ex = this._scope.declare(catch_.get$exception()); |
4151 this._scope.rethrow = ex.get$code(); | 4367 this._scope.rethrow = ex.get$code(); |
4152 this.writer.nextBlock(("} catch (" + ex.get$code() + ") {")); | 4368 this.writer.nextBlock(("} catch (" + ex.get$code() + ") {")); |
4153 if (catch_.get$trace() != null) { | 4369 if (catch_.get$trace() != null) { |
4154 var trace = this._scope.declare(catch_.get$trace()); | 4370 var trace = this._scope.declare(catch_.get$trace()); |
4155 this._genStackTraceOf(trace, ex); | 4371 this._genStackTraceOf(trace, ex); |
4156 } | 4372 } |
4157 this._genToDartException(ex); | 4373 this._genToDartException(ex); |
4158 if (!exType.get$isVarOrObject()) { | 4374 if (!exType.get$isVarOrObject()) { |
4159 var test = ex.instanceOf$3$isTrue$forceCheck(this, exType, catch_.get$exce
ption().get$span(), false, true); | 4375 var test = ex.instanceOf$3$isTrue$forceCheck(this, exType, catch_.get$exce
ption().get$span(), false, true); |
4160 this.writer.writeln(("if (" + test.get$code() + ") throw " + ex.get$code()
+ ";")); | 4376 this.writer.writeln(("if (" + test.get$code() + ") throw " + ex.get$code()
+ ";")); |
4161 } | 4377 } |
4162 this.visitStatementsInBlock(node.catches[(0)].get$body()); | 4378 this.visitStatementsInBlock(node.catches.$index((0)).get$body()); |
4163 this._popBlock(catch_); | 4379 this._popBlock(catch_); |
4164 } | 4380 } |
4165 else if (node.catches.get$length() > (0)) { | 4381 else if (node.catches.get$length() > (0)) { |
4166 this._pushBlock(node, false); | 4382 this._pushBlock(node, false); |
4167 var ex = this._scope.create("$ex", $globals.world.varType, null, false, fals
e); | 4383 var ex = this._scope.create("$ex", $globals.world.varType, null, false, fals
e); |
4168 this._scope.rethrow = ex.get$code(); | 4384 this._scope.rethrow = ex.get$code(); |
4169 this.writer.nextBlock(("} catch (" + ex.get$code() + ") {")); | 4385 this.writer.nextBlock(("} catch (" + ex.get$code() + ") {")); |
4170 var trace = null; | 4386 var trace = null; |
4171 if (node.catches.some((function (c) { | 4387 if (node.catches.some((function (c) { |
4172 return c.get$trace() != null; | 4388 return c.get$trace() != null; |
4173 }) | 4389 }) |
4174 )) { | 4390 )) { |
4175 trace = this._scope.create("$trace", $globals.world.varType, null, false,
false); | 4391 trace = this._scope.create("$trace", $globals.world.varType, null, false,
false); |
4176 this._genStackTraceOf(trace, ex); | 4392 this._genStackTraceOf(trace, ex); |
4177 } | 4393 } |
4178 this._genToDartException(ex); | 4394 this._genToDartException(ex); |
4179 var needsRethrow = true; | 4395 var needsRethrow = true; |
4180 for (var i = (0); | 4396 for (var i = (0); |
4181 i < node.catches.get$length(); i++) { | 4397 i < node.catches.get$length(); i++) { |
4182 var catch_ = node.catches[i]; | 4398 var catch_ = node.catches.$index(i); |
4183 this._pushBlock(catch_, false); | 4399 this._pushBlock(catch_, false); |
4184 var tmpType = this.method.resolveType$2(catch_.get$exception().get$type(),
false); | 4400 var tmpType = this.method.resolveType$2(catch_.get$exception().get$type(),
false); |
4185 var tmp = this._scope.declare(catch_.get$exception()); | 4401 var tmp = this._scope.declare(catch_.get$exception()); |
4186 if (!tmpType.get$isVarOrObject()) { | 4402 if (!tmpType.get$isVarOrObject()) { |
4187 var test = ex.instanceOf$3$isTrue$forceCheck(this, tmpType, catch_.get$e
xception().get$span(), true, true); | 4403 var test = ex.instanceOf$3$isTrue$forceCheck(this, tmpType, catch_.get$e
xception().get$span(), true, true); |
4188 if (i == (0)) { | 4404 if (i == (0)) { |
4189 this.writer.enterBlock(("if (" + test.get$code() + ") {")); | 4405 this.writer.enterBlock(("if (" + test.get$code() + ") {")); |
4190 } | 4406 } |
4191 else { | 4407 else { |
4192 this.writer.nextBlock(("} else if (" + test.get$code() + ") {")); | 4408 this.writer.nextBlock(("} else if (" + test.get$code() + ") {")); |
4193 } | 4409 } |
4194 } | 4410 } |
4195 else if (i > (0)) { | 4411 else if (i > (0)) { |
4196 this.writer.nextBlock("} else {"); | 4412 this.writer.nextBlock("} else {"); |
4197 } | 4413 } |
4198 this.writer.writeln(("var " + tmp.get$code() + " = " + ex.get$code() + ";"
)); | 4414 this.writer.writeln(("var " + tmp.get$code() + " = " + ex.get$code() + ";"
)); |
4199 if (catch_.get$trace() != null) { | 4415 if (catch_.get$trace() != null) { |
4200 var tmptrace = this._scope.declare(catch_.get$trace()); | 4416 var tmptrace = this._scope.declare(catch_.get$trace()); |
4201 this.writer.writeln(("var " + tmptrace.get$code() + " = " + trace.get$co
de() + ";")); | 4417 this.writer.writeln(("var " + tmptrace.get$code() + " = " + trace.get$co
de() + ";")); |
4202 } | 4418 } |
4203 this.visitStatementsInBlock(catch_.get$body()); | 4419 this.visitStatementsInBlock(catch_.get$body()); |
4204 this._popBlock(catch_); | 4420 this._popBlock(catch_); |
4205 if (tmpType.get$isVarOrObject()) { | 4421 if (tmpType.get$isVarOrObject()) { |
4206 if (i + (1) < node.catches.get$length()) { | 4422 if (i + (1) < node.catches.get$length()) { |
4207 $globals.world.error("Unreachable catch clause", node.catches[i + (1)]
.get$span()); | 4423 $globals.world.error("Unreachable catch clause", node.catches.$index(i
+ (1)).get$span()); |
4208 } | 4424 } |
4209 if (i > (0)) { | 4425 if (i > (0)) { |
4210 this.writer.exitBlock("}"); | 4426 this.writer.exitBlock("}"); |
4211 } | 4427 } |
4212 needsRethrow = false; | 4428 needsRethrow = false; |
4213 break; | 4429 break; |
4214 } | 4430 } |
4215 } | 4431 } |
4216 if (needsRethrow) { | 4432 if (needsRethrow) { |
4217 this.writer.nextBlock("} else {"); | 4433 this.writer.nextBlock("} else {"); |
4218 this.writer.writeln(("throw " + ex.get$code() + ";")); | 4434 this.writer.writeln(("throw " + ex.get$code() + ";")); |
4219 this.writer.exitBlock("}"); | 4435 this.writer.exitBlock("}"); |
4220 } | 4436 } |
4221 this._popBlock(node); | 4437 this._popBlock(node); |
4222 } | 4438 } |
4223 if (node.finallyBlock != null) { | 4439 if (node.finallyBlock != null) { |
4224 this.writer.nextBlock("} finally {"); | 4440 this.writer.nextBlock("} finally {"); |
4225 this._pushBlock(node.finallyBlock, false); | 4441 this._pushBlock(node.finallyBlock, false); |
4226 this.visitStatementsInBlock(node.finallyBlock); | 4442 this.visitStatementsInBlock(node.finallyBlock); |
4227 this._popBlock(node.finallyBlock); | 4443 this._popBlock(node.finallyBlock); |
4228 } | 4444 } |
4229 this.writer.exitBlock("}"); | 4445 this.writer.exitBlock("}"); |
4230 return false; | 4446 return false; |
4231 } | 4447 } |
4232 MethodGenerator.prototype.visitSwitchStatement = function(node) { | 4448 MethodGenerator.prototype.visitSwitchStatement = function(node) { |
4233 var test = this.visitValue(node.test); | 4449 var test = this.visitValue(node.test); |
4234 this.writer.enterBlock(("switch (" + test.get$code() + ") {")); | 4450 this.writer.enterBlock(("switch (" + test.get$code() + ") {")); |
4235 var $$list = node.cases; | 4451 var $$list = node.cases; |
4236 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 4452 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
4237 var case_ = $$list[$$i]; | 4453 var case_ = $$list.$index($$i); |
4238 if (case_.get$label() != null) { | 4454 if (case_.get$label() != null) { |
4239 $globals.world.error("unimplemented: labeled case statement", case_.get$sp
an()); | 4455 $globals.world.error("unimplemented: labeled case statement", case_.get$sp
an()); |
4240 } | 4456 } |
4241 this._pushBlock(case_, false); | 4457 this._pushBlock(case_, false); |
4242 for (var i = (0); | 4458 for (var i = (0); |
4243 i < case_.get$cases().get$length(); i++) { | 4459 i < case_.get$cases().get$length(); i++) { |
4244 var expr = case_.get$cases().$index(i); | 4460 var expr = case_.get$cases().$index(i); |
4245 if (expr == null) { | 4461 if (expr == null) { |
4246 if (i < case_.get$cases().get$length() - (1)) { | 4462 if (i < case_.get$cases().get$length() - (1)) { |
4247 $globals.world.error("default clause must be the last case", case_.get
$span()); | 4463 $globals.world.error("default clause must be the last case", case_.get
$span()); |
4248 } | 4464 } |
4249 this.writer.writeln("default:"); | 4465 this.writer.writeln("default:"); |
4250 } | 4466 } |
4251 else { | 4467 else { |
4252 var value = this.visitValue(expr); | 4468 var value = this.visitValue(expr); |
4253 this.writer.writeln(("case " + value.get$code() + ":")); | 4469 this.writer.writeln(("case " + value.get$code() + ":")); |
4254 } | 4470 } |
4255 } | 4471 } |
4256 this.writer.enterBlock(""); | 4472 this.writer.enterBlock(""); |
4257 var caseExits = this._visitAllStatements(case_.get$statements(), false); | 4473 var caseExits = this._visitAllStatements(case_.get$statements(), false); |
4258 if ($ne(case_, node.cases[node.cases.get$length() - (1)]) && !caseExits) { | 4474 if ($ne(case_, node.cases.$index(node.cases.get$length() - (1))) && !caseExi
ts) { |
4259 var span = case_.get$statements().$index(case_.get$statements().get$length
() - (1)).get$span(); | 4475 var span = case_.get$statements().$index(case_.get$statements().get$length
() - (1)).get$span(); |
4260 this.writer.writeln("$throw(new FallThroughError());"); | 4476 this.writer.writeln("$throw(new FallThroughError());"); |
4261 $globals.world.gen.corejs.useThrow = true; | 4477 $globals.world.gen.corejs.useThrow = true; |
4262 } | 4478 } |
4263 this.writer.exitBlock(""); | 4479 this.writer.exitBlock(""); |
4264 this._popBlock(case_); | 4480 this._popBlock(case_); |
4265 } | 4481 } |
4266 this.writer.exitBlock("}"); | 4482 this.writer.exitBlock("}"); |
4267 return false; | 4483 return false; |
4268 } | 4484 } |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4542 } | 4758 } |
4543 $globals.world.error(("no matching constructor for " + name), node.span); | 4759 $globals.world.error(("no matching constructor for " + name), node.span); |
4544 return this._makeMissingValue(name); | 4760 return this._makeMissingValue(name); |
4545 } | 4761 } |
4546 if (node.isConst) { | 4762 if (node.isConst) { |
4547 if (!m.get$isConst()) { | 4763 if (!m.get$isConst()) { |
4548 $globals.world.error("can't use const on a non-const constructor", node.sp
an); | 4764 $globals.world.error("can't use const on a non-const constructor", node.sp
an); |
4549 } | 4765 } |
4550 var $$list = node.arguments; | 4766 var $$list = node.arguments; |
4551 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 4767 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
4552 var arg = $$list[$$i]; | 4768 var arg = $$list.$index($$i); |
4553 if (!this.visitValue(arg.get$value()).get$isConst()) { | 4769 if (!this.visitValue(arg.get$value()).get$isConst()) { |
4554 $globals.world.error("const constructor expects const arguments", arg.ge
t$span()); | 4770 $globals.world.error("const constructor expects const arguments", arg.ge
t$span()); |
4555 } | 4771 } |
4556 } | 4772 } |
4557 } | 4773 } |
4558 var target = new TypeValue(type, typeRef.get$span()); | 4774 var target = new TypeValue(type, typeRef.get$span()); |
4559 return m.invoke$4(this, node, target, this._makeArgs(node.arguments)); | 4775 return m.invoke$4(this, node, target, this._makeArgs(node.arguments)); |
4560 } | 4776 } |
4561 MethodGenerator.prototype.visitListExpression = function(node) { | 4777 MethodGenerator.prototype.visitListExpression = function(node) { |
4562 var argValues = []; | 4778 var argValues = []; |
4563 var listType = $globals.world.listType; | 4779 var listType = $globals.world.listType; |
4564 var type = $globals.world.varType; | 4780 var type = $globals.world.varType; |
4565 if (node.itemType != null) { | 4781 if (node.itemType != null) { |
4566 type = this.method.resolveType$2(node.itemType, true); | 4782 type = this.method.resolveType$2(node.itemType, true); |
4567 if (node.isConst && ((type instanceof ParameterType) || type.get$hasTypePara
ms())) { | 4783 if (node.isConst && ((type instanceof ParameterType) || type.get$hasTypePara
ms())) { |
4568 $globals.world.error("type parameter cannot be used in const list literals
"); | 4784 $globals.world.error("type parameter cannot be used in const list literals
"); |
4569 } | 4785 } |
4570 listType = listType.getOrMakeConcreteType$1([type]); | 4786 listType = listType.getOrMakeConcreteType$1([type]); |
4571 } | 4787 } |
4572 var $$list = node.values; | 4788 var $$list = node.values; |
4573 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 4789 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
4574 var item = $$list[$$i]; | 4790 var item = $$list.$index($$i); |
4575 var arg = this.visitTypedValue(item, type); | 4791 var arg = this.visitTypedValue(item, type); |
4576 argValues.add$1(arg); | 4792 argValues.add$1(arg); |
4577 if (node.isConst && !arg.get$isConst()) { | 4793 if (node.isConst && !arg.get$isConst()) { |
4578 $globals.world.error("const list can only contain const values", arg.get$s
pan()); | 4794 $globals.world.error("const list can only contain const values", arg.get$s
pan()); |
4579 } | 4795 } |
4580 } | 4796 } |
4581 $globals.world.listFactoryType.markUsed(); | 4797 $globals.world.listFactoryType.markUsed(); |
4582 var ret = new ListValue(argValues, node.isConst, listType, node.span); | 4798 var ret = new ListValue(argValues, node.isConst, listType, node.span); |
4583 if (ret.get$isConst()) return ret.getGlobalValue$0(); | 4799 if (ret.get$isConst()) return ret.getGlobalValue$0(); |
4584 return ret; | 4800 return ret; |
(...skipping 16 matching lines...) Expand all Loading... |
4601 } | 4817 } |
4602 } | 4818 } |
4603 valueType = this.method.resolveType$2(node.valueType, true); | 4819 valueType = this.method.resolveType$2(node.valueType, true); |
4604 if (node.isConst && ((valueType instanceof ParameterType) || valueType.get$h
asTypeParams())) { | 4820 if (node.isConst && ((valueType instanceof ParameterType) || valueType.get$h
asTypeParams())) { |
4605 $globals.world.error("type parameter cannot be used in const map literals"
); | 4821 $globals.world.error("type parameter cannot be used in const map literals"
); |
4606 } | 4822 } |
4607 mapType = mapType.getOrMakeConcreteType$1([keyType, valueType]); | 4823 mapType = mapType.getOrMakeConcreteType$1([keyType, valueType]); |
4608 } | 4824 } |
4609 for (var i = (0); | 4825 for (var i = (0); |
4610 i < node.items.get$length(); i += (2)) { | 4826 i < node.items.get$length(); i += (2)) { |
4611 var key = this.visitTypedValue(node.items[i], keyType); | 4827 var key = this.visitTypedValue(node.items.$index(i), keyType); |
4612 if (node.isConst && !key.get$isConst()) { | 4828 if (node.isConst && !key.get$isConst()) { |
4613 $globals.world.error("const map can only contain const keys", key.get$span
()); | 4829 $globals.world.error("const map can only contain const keys", key.get$span
()); |
4614 } | 4830 } |
4615 values.add$1(key); | 4831 values.add$1(key); |
4616 var value = this.visitTypedValue(node.items[i + (1)], valueType); | 4832 var value = this.visitTypedValue(node.items.$index(i + (1)), valueType); |
4617 if (node.isConst && !value.get$isConst()) { | 4833 if (node.isConst && !value.get$isConst()) { |
4618 $globals.world.error("const map can only contain const values", value.get$
span()); | 4834 $globals.world.error("const map can only contain const values", value.get$
span()); |
4619 } | 4835 } |
4620 values.add$1(value); | 4836 values.add$1(value); |
4621 } | 4837 } |
4622 var ret = new MapValue(values, node.isConst, mapType, node.span); | 4838 var ret = new MapValue(values, node.isConst, mapType, node.span); |
4623 if (ret.get$isConst()) return ret.getGlobalValue$0(); | 4839 if (ret.get$isConst()) return ret.getGlobalValue$0(); |
4624 return ret; | 4840 return ret; |
4625 } | 4841 } |
4626 MethodGenerator.prototype.visitConditionalExpression = function(node) { | 4842 MethodGenerator.prototype.visitConditionalExpression = function(node) { |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4670 return u.op.kind == (16) || u.op.kind == (17); | 4886 return u.op.kind == (16) || u.op.kind == (17); |
4671 } | 4887 } |
4672 else { | 4888 else { |
4673 return false; | 4889 return false; |
4674 } | 4890 } |
4675 } | 4891 } |
4676 MethodGenerator.prototype.visitStringInterpExpression = function(node) { | 4892 MethodGenerator.prototype.visitStringInterpExpression = function(node) { |
4677 var items = []; | 4893 var items = []; |
4678 var $$list = node.pieces; | 4894 var $$list = node.pieces; |
4679 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 4895 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
4680 var item = $$list[$$i]; | 4896 var item = $$list.$index($$i); |
4681 var val = this.visitValue(item); | 4897 var val = this.visitValue(item); |
4682 val.invoke$4(this, "toString", item, Arguments.get$EMPTY()); | 4898 val.invoke$4(this, "toString", item, Arguments.get$EMPTY()); |
4683 var code = val.get$code(); | 4899 var code = val.get$code(); |
4684 if (this._expressionNeedsParens(item)) { | 4900 if (this._expressionNeedsParens(item)) { |
4685 code = ("(" + code + ")"); | 4901 code = ("(" + code + ")"); |
4686 } | 4902 } |
4687 if ($eq(items.get$length(), (0)) || ($ne(code, "''") && $ne(code, "\"\"")))
{ | 4903 if ($eq(items.get$length(), (0)) || ($ne(code, "''") && $ne(code, "\"\"")))
{ |
4688 items.add$1(code); | 4904 items.add$1(code); |
4689 } | 4905 } |
4690 } | 4906 } |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4750 Arguments.prototype.get$nameCount = function() { | 4966 Arguments.prototype.get$nameCount = function() { |
4751 return this.get$length() - this.get$bareCount(); | 4967 return this.get$length() - this.get$bareCount(); |
4752 } | 4968 } |
4753 Arguments.prototype.get$hasNames = function() { | 4969 Arguments.prototype.get$hasNames = function() { |
4754 return this.get$bareCount() < this.get$length(); | 4970 return this.get$bareCount() < this.get$length(); |
4755 } | 4971 } |
4756 Arguments.prototype.get$length = function() { | 4972 Arguments.prototype.get$length = function() { |
4757 return this.values.get$length(); | 4973 return this.values.get$length(); |
4758 } | 4974 } |
4759 Arguments.prototype.getName = function(i) { | 4975 Arguments.prototype.getName = function(i) { |
4760 return this.nodes[i].get$label().get$name(); | 4976 return this.nodes.$index(i).get$label().get$name(); |
4761 } | 4977 } |
4762 Arguments.prototype.getIndexOfName = function(name) { | 4978 Arguments.prototype.getIndexOfName = function(name) { |
4763 for (var i = this.get$bareCount(); | 4979 for (var i = this.get$bareCount(); |
4764 i < this.get$length(); i++) { | 4980 i < this.get$length(); i++) { |
4765 if (this.getName(i) == name) { | 4981 if (this.getName(i) == name) { |
4766 return i; | 4982 return i; |
4767 } | 4983 } |
4768 } | 4984 } |
4769 return (-1); | 4985 return (-1); |
4770 } | 4986 } |
4771 Arguments.prototype.getValue = function(name) { | 4987 Arguments.prototype.getValue = function(name) { |
4772 var i = this.getIndexOfName(name); | 4988 var i = this.getIndexOfName(name); |
4773 return i >= (0) ? this.values[i] : null; | 4989 return i >= (0) ? this.values.$index(i) : null; |
4774 } | 4990 } |
4775 Arguments.prototype.get$bareCount = function() { | 4991 Arguments.prototype.get$bareCount = function() { |
4776 if (this._bareCount == null) { | 4992 if (this._bareCount == null) { |
4777 this._bareCount = this.get$length(); | 4993 this._bareCount = this.get$length(); |
4778 if (this.nodes != null) { | 4994 if (this.nodes != null) { |
4779 for (var i = (0); | 4995 for (var i = (0); |
4780 i < this.nodes.get$length(); i++) { | 4996 i < this.nodes.get$length(); i++) { |
4781 if (this.nodes[i].get$label() != null) { | 4997 if (this.nodes.$index(i).get$label() != null) { |
4782 this._bareCount = i; | 4998 this._bareCount = i; |
4783 break; | 4999 break; |
4784 } | 5000 } |
4785 } | 5001 } |
4786 } | 5002 } |
4787 } | 5003 } |
4788 return this._bareCount; | 5004 return this._bareCount; |
4789 } | 5005 } |
4790 Arguments.prototype.getCode = function() { | 5006 Arguments.prototype.getCode = function() { |
4791 var argsCode = []; | 5007 var argsCode = []; |
4792 for (var i = (0); | 5008 for (var i = (0); |
4793 i < this.get$length(); i++) { | 5009 i < this.get$length(); i++) { |
4794 argsCode.add$1(this.values[i].get$code()); | 5010 argsCode.add$1(this.values.$index(i).get$code()); |
4795 } | 5011 } |
4796 Arguments.removeTrailingNulls(argsCode); | 5012 Arguments.removeTrailingNulls(argsCode); |
4797 return Strings.join(argsCode, ", "); | 5013 return Strings.join(argsCode, ", "); |
4798 } | 5014 } |
4799 Arguments.removeTrailingNulls = function(argsCode) { | 5015 Arguments.removeTrailingNulls = function(argsCode) { |
4800 while (argsCode.get$length() > (0) && $eq(argsCode.last(), "null")) { | 5016 while (argsCode.get$length() > (0) && $eq(argsCode.last$0(), "null")) { |
4801 argsCode.removeLast(); | 5017 argsCode.removeLast$0(); |
4802 } | 5018 } |
4803 } | 5019 } |
4804 Arguments.prototype.getNames = function() { | 5020 Arguments.prototype.getNames = function() { |
4805 var names = []; | 5021 var names = []; |
4806 for (var i = this.get$bareCount(); | 5022 for (var i = this.get$bareCount(); |
4807 i < this.get$length(); i++) { | 5023 i < this.get$length(); i++) { |
4808 names.add$1(this.getName(i)); | 5024 names.add$1(this.getName(i)); |
4809 } | 5025 } |
4810 return names; | 5026 return names; |
4811 } | 5027 } |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5096 Library.prototype._addMember = function(member) { | 5312 Library.prototype._addMember = function(member) { |
5097 if (member.get$isPrivate()) { | 5313 if (member.get$isPrivate()) { |
5098 if (member.get$isStatic()) { | 5314 if (member.get$isStatic()) { |
5099 if (member.declaringType.get$isTop()) { | 5315 if (member.declaringType.get$isTop()) { |
5100 $globals.world._addTopName(member); | 5316 $globals.world._addTopName(member); |
5101 } | 5317 } |
5102 return; | 5318 return; |
5103 } | 5319 } |
5104 var mset = this._privateMembers.$index(member.name); | 5320 var mset = this._privateMembers.$index(member.name); |
5105 if (mset == null) { | 5321 if (mset == null) { |
5106 var $$list = $globals.world.libraries.getValues(); | 5322 var $$list = $globals.world.libraries.getValues$0(); |
5107 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 5323 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
5108 var lib = $$i.next$0(); | 5324 var lib = $$i.next$0(); |
5109 if (lib.get$_privateMembers().containsKey$1(member.get$jsname())) { | 5325 if (lib.get$_privateMembers().containsKey$1(member.get$jsname())) { |
5110 member._jsname = ("_" + this.get$jsname() + member.get$jsname()); | 5326 member._jsname = ("_" + this.get$jsname() + member.get$jsname()); |
5111 break; | 5327 break; |
5112 } | 5328 } |
5113 } | 5329 } |
5114 mset = new MemberSet(member, true); | 5330 mset = new MemberSet(member, true); |
5115 this._privateMembers.$setindex(member.name, mset); | 5331 this._privateMembers.$setindex(member.name, mset); |
5116 } | 5332 } |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5150 Library.prototype.findType = function(type) { | 5366 Library.prototype.findType = function(type) { |
5151 var result = this.findTypeByName(type.name.name); | 5367 var result = this.findTypeByName(type.name.name); |
5152 if (result == null) return null; | 5368 if (result == null) return null; |
5153 if (type.names != null) { | 5369 if (type.names != null) { |
5154 if (type.names.get$length() > (1)) { | 5370 if (type.names.get$length() > (1)) { |
5155 return null; | 5371 return null; |
5156 } | 5372 } |
5157 if (!result.get$isTop()) { | 5373 if (!result.get$isTop()) { |
5158 return null; | 5374 return null; |
5159 } | 5375 } |
5160 return result.get$library().findTypeByName(type.names[(0)].get$name()); | 5376 return result.get$library().findTypeByName(type.names.$index((0)).get$name()
); |
5161 } | 5377 } |
5162 return result; | 5378 return result; |
5163 } | 5379 } |
5164 Library.prototype.findTypeByName = function(name) { | 5380 Library.prototype.findTypeByName = function(name) { |
5165 var ret = this.types.$index(name); | 5381 var ret = this.types.$index(name); |
5166 var $$list = this.imports; | 5382 var $$list = this.imports; |
5167 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 5383 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
5168 var imported = $$list[$$i]; | 5384 var imported = $$list.$index($$i); |
5169 var newRet = null; | 5385 var newRet = null; |
5170 if (imported.get$prefix() == null) { | 5386 if (imported.get$prefix() == null) { |
5171 newRet = imported.get$library().get$types().$index(name); | 5387 newRet = imported.get$library().get$types().$index(name); |
5172 } | 5388 } |
5173 else if ($eq(imported.get$prefix(), name)) { | 5389 else if ($eq(imported.get$prefix(), name)) { |
5174 newRet = imported.get$library().get$topType(); | 5390 newRet = imported.get$library().get$topType(); |
5175 } | 5391 } |
5176 if (newRet != null) { | 5392 if (newRet != null) { |
5177 if (ret != null && $ne(ret, newRet)) { | 5393 if (ret != null && $ne(ret, newRet)) { |
5178 $globals.world.error(("conflicting types for \"" + name + "\""), ret.get
$span(), newRet.get$span()); | 5394 $globals.world.error(("conflicting types for \"" + name + "\""), ret.get
$span(), newRet.get$span()); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5222 var index = this.name.lastIndexOf("/", this.name.length); | 5438 var index = this.name.lastIndexOf("/", this.name.length); |
5223 if (index >= (0)) { | 5439 if (index >= (0)) { |
5224 this.name = this.name.substring($add(index, (1))); | 5440 this.name = this.name.substring($add(index, (1))); |
5225 } | 5441 } |
5226 index = this.name.indexOf("."); | 5442 index = this.name.indexOf("."); |
5227 if (index > (0)) { | 5443 if (index > (0)) { |
5228 this.name = this.name.substring((0), index); | 5444 this.name = this.name.substring((0), index); |
5229 } | 5445 } |
5230 } | 5446 } |
5231 this._jsname = this.name.replaceAll(".", "_").replaceAll(":", "_").replaceAll(
" ", "_"); | 5447 this._jsname = this.name.replaceAll(".", "_").replaceAll(":", "_").replaceAll(
" ", "_"); |
5232 var $$list = this.types.getValues(); | 5448 var $$list = this.types.getValues$0(); |
5233 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 5449 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
5234 var type = $$i.next$0(); | 5450 var type = $$i.next$0(); |
5235 type.resolve$0(); | 5451 type.resolve$0(); |
5236 } | 5452 } |
5237 } | 5453 } |
5238 Library.prototype._addTopName = function(name, member, localSpan) { | 5454 Library.prototype._addTopName = function(name, member, localSpan) { |
5239 var existing = this._topNames.$index(name); | 5455 var existing = this._topNames.$index(name); |
5240 if (existing == null) { | 5456 if (existing == null) { |
5241 this._topNames.$setindex(name, member); | 5457 this._topNames.$setindex(name, member); |
5242 } | 5458 } |
5243 else { | 5459 else { |
5244 if ((existing instanceof AmbiguousMember)) { | 5460 if ((existing instanceof AmbiguousMember)) { |
5245 existing.get$members().add$1(member); | 5461 existing.get$members().add$1(member); |
5246 } | 5462 } |
5247 else { | 5463 else { |
5248 var newMember = new AmbiguousMember(name, [existing, member]); | 5464 var newMember = new AmbiguousMember(name, [existing, member]); |
5249 $globals.world.error(("conflicting members for \"" + name + "\""), existin
g.get$span(), member.get$span(), localSpan); | 5465 $globals.world.error(("conflicting members for \"" + name + "\""), existin
g.get$span(), member.get$span(), localSpan); |
5250 this._topNames.$setindex(name, newMember); | 5466 this._topNames.$setindex(name, newMember); |
5251 } | 5467 } |
5252 } | 5468 } |
5253 } | 5469 } |
5254 Library.prototype._addTopNames = function(lib) { | 5470 Library.prototype._addTopNames = function(lib) { |
5255 var $$list = lib.topType.members.getValues(); | 5471 var $$list = lib.topType.members.getValues$0(); |
5256 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 5472 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
5257 var member = $$i.next$0(); | 5473 var member = $$i.next$0(); |
5258 if (member.get$isPrivate() && $ne(lib, this)) continue; | 5474 if (member.get$isPrivate() && $ne(lib, this)) continue; |
5259 this._addTopName(member.get$name(), member); | 5475 this._addTopName(member.get$name(), member); |
5260 } | 5476 } |
5261 var $$list = lib.types.getValues(); | 5477 var $$list = lib.types.getValues$0(); |
5262 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 5478 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
5263 var type = $$i.next$0(); | 5479 var type = $$i.next$0(); |
5264 if (!type.get$isTop()) { | 5480 if (!type.get$isTop()) { |
5265 if ($ne(lib, this) && type.get$typeMember().get$isPrivate()) continue; | 5481 if ($ne(lib, this) && type.get$typeMember().get$isPrivate()) continue; |
5266 this._addTopName(type.get$name(), type.get$typeMember()); | 5482 this._addTopName(type.get$name(), type.get$typeMember()); |
5267 } | 5483 } |
5268 } | 5484 } |
5269 } | 5485 } |
5270 Library.prototype.postResolveChecks = function() { | 5486 Library.prototype.postResolveChecks = function() { |
5271 this._topNames = new HashMapImplementation(); | 5487 this._topNames = new HashMapImplementation(); |
5272 this._addTopNames(this); | 5488 this._addTopNames(this); |
5273 var $$list = this.imports; | 5489 var $$list = this.imports; |
5274 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 5490 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
5275 var imported = $$list[$$i]; | 5491 var imported = $$list.$index($$i); |
5276 if (imported.get$prefix() == null) { | 5492 if (imported.get$prefix() == null) { |
5277 this._addTopNames(imported.get$library()); | 5493 this._addTopNames(imported.get$library()); |
5278 } | 5494 } |
5279 else { | 5495 else { |
5280 this._addTopName(imported.get$prefix(), imported.get$library().get$topType
().get$typeMember(), imported.get$span()); | 5496 this._addTopName(imported.get$prefix(), imported.get$library().get$topType
().get$typeMember(), imported.get$span()); |
5281 } | 5497 } |
5282 } | 5498 } |
5283 } | 5499 } |
5284 Library.prototype.visitSources = function() { | 5500 Library.prototype.visitSources = function() { |
5285 var visitor = new _LibraryVisitor(this); | 5501 var visitor = new _LibraryVisitor(this); |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5436 _LibraryVisitor.prototype.getSingleStringArg = function(node) { | 5652 _LibraryVisitor.prototype.getSingleStringArg = function(node) { |
5437 if (node.arguments.get$length() != (1)) { | 5653 if (node.arguments.get$length() != (1)) { |
5438 $globals.world.error(("expected exactly one argument but found " + node.argu
ments.get$length()), node.span); | 5654 $globals.world.error(("expected exactly one argument but found " + node.argu
ments.get$length()), node.span); |
5439 } | 5655 } |
5440 return this.getFirstStringArg(node); | 5656 return this.getFirstStringArg(node); |
5441 } | 5657 } |
5442 _LibraryVisitor.prototype.getFirstStringArg = function(node) { | 5658 _LibraryVisitor.prototype.getFirstStringArg = function(node) { |
5443 if (node.arguments.get$length() < (1)) { | 5659 if (node.arguments.get$length() < (1)) { |
5444 $globals.world.error(("expected at least one argument but found " + node.arg
uments.get$length()), node.span); | 5660 $globals.world.error(("expected at least one argument but found " + node.arg
uments.get$length()), node.span); |
5445 } | 5661 } |
5446 var arg = node.arguments[(0)]; | 5662 var arg = node.arguments.$index((0)); |
5447 if (arg.get$label() != null) { | 5663 if (arg.get$label() != null) { |
5448 $globals.world.error("label not allowed for directive", node.span); | 5664 $globals.world.error("label not allowed for directive", node.span); |
5449 } | 5665 } |
5450 return this._parseStringArgument(arg); | 5666 return this._parseStringArgument(arg); |
5451 } | 5667 } |
5452 _LibraryVisitor.prototype.tryGetNamedStringArg = function(node, argName) { | 5668 _LibraryVisitor.prototype.tryGetNamedStringArg = function(node, argName) { |
5453 var args = node.arguments.filter$1((function (a) { | 5669 var args = node.arguments.filter$1((function (a) { |
5454 return a.get$label() != null && $eq(a.get$label().get$name(), argName); | 5670 return a.get$label() != null && $eq(a.get$label().get$name(), argName); |
5455 }) | 5671 }) |
5456 ); | 5672 ); |
(...skipping 13 matching lines...) Expand all Loading... |
5470 if (!(expr instanceof LiteralExpression) || !expr.get$value().get$type().get$i
sString()) { | 5686 if (!(expr instanceof LiteralExpression) || !expr.get$value().get$type().get$i
sString()) { |
5471 $globals.world.error("expected string literal", expr.get$span()); | 5687 $globals.world.error("expected string literal", expr.get$span()); |
5472 } | 5688 } |
5473 return expr.get$value().get$actualValue(); | 5689 return expr.get$value().get$actualValue(); |
5474 } | 5690 } |
5475 _LibraryVisitor.prototype.visitTypeDefinition = function(node) { | 5691 _LibraryVisitor.prototype.visitTypeDefinition = function(node) { |
5476 var oldType = this.currentType; | 5692 var oldType = this.currentType; |
5477 this.currentType = this.library.addType(node.name.name, node, node.isClass); | 5693 this.currentType = this.library.addType(node.name.name, node, node.isClass); |
5478 var $$list = node.body; | 5694 var $$list = node.body; |
5479 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 5695 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
5480 var member = $$list[$$i]; | 5696 var member = $$list.$index($$i); |
5481 member.visit$1(this); | 5697 member.visit$1(this); |
5482 } | 5698 } |
5483 this.currentType = oldType; | 5699 this.currentType = oldType; |
5484 } | 5700 } |
5485 _LibraryVisitor.prototype.visitVariableDefinition = function(node) { | 5701 _LibraryVisitor.prototype.visitVariableDefinition = function(node) { |
5486 this.currentType.addField(node); | 5702 this.currentType.addField(node); |
5487 } | 5703 } |
5488 _LibraryVisitor.prototype.visitFunctionDefinition = function(node) { | 5704 _LibraryVisitor.prototype.visitFunctionDefinition = function(node) { |
5489 this.currentType.addMethod(node.name.name, node); | 5705 this.currentType.addMethod(node.name.name, node); |
5490 } | 5706 } |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5662 } | 5878 } |
5663 FieldMember.prototype.get$isField = function() { | 5879 FieldMember.prototype.get$isField = function() { |
5664 return true; | 5880 return true; |
5665 } | 5881 } |
5666 FieldMember.prototype.resolve = function() { | 5882 FieldMember.prototype.resolve = function() { |
5667 this.isStatic = this.declaringType.get$isTop(); | 5883 this.isStatic = this.declaringType.get$isTop(); |
5668 this.isFinal = false; | 5884 this.isFinal = false; |
5669 if (this.definition.modifiers != null) { | 5885 if (this.definition.modifiers != null) { |
5670 var $$list = this.definition.modifiers; | 5886 var $$list = this.definition.modifiers; |
5671 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 5887 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
5672 var mod = $$list[$$i]; | 5888 var mod = $$list.$index($$i); |
5673 if ($eq(mod.get$kind(), (85))) { | 5889 if ($eq(mod.get$kind(), (85))) { |
5674 if (this.isStatic) { | 5890 if (this.isStatic) { |
5675 $globals.world.error("duplicate static modifier", mod.get$span()); | 5891 $globals.world.error("duplicate static modifier", mod.get$span()); |
5676 } | 5892 } |
5677 this.isStatic = true; | 5893 this.isStatic = true; |
5678 } | 5894 } |
5679 else if ($eq(mod.get$kind(), (99))) { | 5895 else if ($eq(mod.get$kind(), (99))) { |
5680 if (this.isFinal) { | 5896 if (this.isFinal) { |
5681 $globals.world.error("duplicate final modifier", mod.get$span()); | 5897 $globals.world.error("duplicate final modifier", mod.get$span()); |
5682 } | 5898 } |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5894 PropertyMember.prototype.resolve$0 = PropertyMember.prototype.resolve; | 6110 PropertyMember.prototype.resolve$0 = PropertyMember.prototype.resolve; |
5895 // ********** Code for ConcreteMember ************** | 6111 // ********** Code for ConcreteMember ************** |
5896 $inherits(ConcreteMember, Member); | 6112 $inherits(ConcreteMember, Member); |
5897 function ConcreteMember(name, declaringType, baseMember) { | 6113 function ConcreteMember(name, declaringType, baseMember) { |
5898 this.baseMember = baseMember; | 6114 this.baseMember = baseMember; |
5899 Member.call(this, name, declaringType); | 6115 Member.call(this, name, declaringType); |
5900 this.parameters = []; | 6116 this.parameters = []; |
5901 this.returnType = this.baseMember.get$returnType().resolveTypeParams(declaring
Type); | 6117 this.returnType = this.baseMember.get$returnType().resolveTypeParams(declaring
Type); |
5902 var $$list = this.baseMember.get$parameters(); | 6118 var $$list = this.baseMember.get$parameters(); |
5903 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 6119 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
5904 var p = $$list[$$i]; | 6120 var p = $$list.$index($$i); |
5905 var newType = p.get$type().resolveTypeParams$1(declaringType); | 6121 var newType = p.get$type().resolveTypeParams$1(declaringType); |
5906 if ($ne(newType, p.get$type())) { | 6122 if ($ne(newType, p.get$type())) { |
5907 this.parameters.add(p.copyWithNewType$2(this, newType)); | 6123 this.parameters.add(p.copyWithNewType$2(this, newType)); |
5908 } | 6124 } |
5909 else { | 6125 else { |
5910 this.parameters.add(p); | 6126 this.parameters.add(p); |
5911 } | 6127 } |
5912 } | 6128 } |
5913 } | 6129 } |
5914 ConcreteMember.prototype.get$returnType = function() { return this.returnType; }
; | 6130 ConcreteMember.prototype.get$returnType = function() { return this.returnType; }
; |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6118 return false; | 6334 return false; |
6119 } | 6335 } |
6120 } | 6336 } |
6121 MethodMember.prototype.canInvoke = function(context, args) { | 6337 MethodMember.prototype.canInvoke = function(context, args) { |
6122 var bareCount = args.get$bareCount(); | 6338 var bareCount = args.get$bareCount(); |
6123 if (bareCount > this.parameters.get$length()) return false; | 6339 if (bareCount > this.parameters.get$length()) return false; |
6124 if (bareCount == this.parameters.get$length()) { | 6340 if (bareCount == this.parameters.get$length()) { |
6125 if (bareCount != args.get$length()) return false; | 6341 if (bareCount != args.get$length()) return false; |
6126 } | 6342 } |
6127 else { | 6343 else { |
6128 if (!this.parameters[bareCount].get$isOptional()) return false; | 6344 if (!this.parameters.$index(bareCount).get$isOptional()) return false; |
6129 for (var i = bareCount; | 6345 for (var i = bareCount; |
6130 i < args.get$length(); i++) { | 6346 i < args.get$length(); i++) { |
6131 if (this.indexOfParameter(args.getName(i)) < (0)) { | 6347 if (this.indexOfParameter(args.getName(i)) < (0)) { |
6132 return false; | 6348 return false; |
6133 } | 6349 } |
6134 } | 6350 } |
6135 } | 6351 } |
6136 return true; | 6352 return true; |
6137 } | 6353 } |
6138 MethodMember.prototype.indexOfParameter = function(name) { | 6354 MethodMember.prototype.indexOfParameter = function(name) { |
6139 for (var i = (0); | 6355 for (var i = (0); |
6140 i < this.parameters.get$length(); i++) { | 6356 i < this.parameters.get$length(); i++) { |
6141 var p = this.parameters[i]; | 6357 var p = this.parameters.$index(i); |
6142 if (p.get$isOptional() && $eq(p.get$name(), name)) { | 6358 if (p.get$isOptional() && $eq(p.get$name(), name)) { |
6143 return i; | 6359 return i; |
6144 } | 6360 } |
6145 } | 6361 } |
6146 return (-1); | 6362 return (-1); |
6147 } | 6363 } |
6148 MethodMember.prototype.provideFieldSyntax = function() { | 6364 MethodMember.prototype.provideFieldSyntax = function() { |
6149 this._provideFieldSyntax = true; | 6365 this._provideFieldSyntax = true; |
6150 } | 6366 } |
6151 MethodMember.prototype.providePropertySyntax = function() { | 6367 MethodMember.prototype.providePropertySyntax = function() { |
(...skipping 13 matching lines...) Expand all Loading... |
6165 this._providePropertySyntax = true; | 6381 this._providePropertySyntax = true; |
6166 return new Value(this.get$functionType(), ("" + target.get$code() + ".get$" +
this.get$jsname() + "()"), node.span); | 6382 return new Value(this.get$functionType(), ("" + target.get$code() + ".get$" +
this.get$jsname() + "()"), node.span); |
6167 } | 6383 } |
6168 MethodMember.prototype.namesInHomePositions = function(args) { | 6384 MethodMember.prototype.namesInHomePositions = function(args) { |
6169 if (!args.get$hasNames()) return true; | 6385 if (!args.get$hasNames()) return true; |
6170 for (var i = args.get$bareCount(); | 6386 for (var i = args.get$bareCount(); |
6171 i < args.values.get$length(); i++) { | 6387 i < args.values.get$length(); i++) { |
6172 if (i >= this.parameters.get$length()) { | 6388 if (i >= this.parameters.get$length()) { |
6173 return false; | 6389 return false; |
6174 } | 6390 } |
6175 if (args.getName(i) != this.parameters[i].get$name()) { | 6391 if (args.getName(i) != this.parameters.$index(i).get$name()) { |
6176 return false; | 6392 return false; |
6177 } | 6393 } |
6178 } | 6394 } |
6179 return true; | 6395 return true; |
6180 } | 6396 } |
6181 MethodMember.prototype.namesInOrder = function(args) { | 6397 MethodMember.prototype.namesInOrder = function(args) { |
6182 if (!args.get$hasNames()) return true; | 6398 if (!args.get$hasNames()) return true; |
6183 var lastParameter = null; | 6399 var lastParameter = null; |
6184 for (var i = args.get$bareCount(); | 6400 for (var i = args.get$bareCount(); |
6185 i < this.parameters.get$length(); i++) { | 6401 i < this.parameters.get$length(); i++) { |
6186 var p = args.getIndexOfName(this.parameters[i].get$name()); | 6402 var p = args.getIndexOfName(this.parameters.$index(i).get$name()); |
6187 if (p >= (0) && args.values[p].get$needsTemp()) { | 6403 if (p >= (0) && args.values.$index(p).get$needsTemp()) { |
6188 if (lastParameter != null && lastParameter > p) { | 6404 if (lastParameter != null && lastParameter > p) { |
6189 return false; | 6405 return false; |
6190 } | 6406 } |
6191 lastParameter = p; | 6407 lastParameter = p; |
6192 } | 6408 } |
6193 } | 6409 } |
6194 return true; | 6410 return true; |
6195 } | 6411 } |
6196 MethodMember.prototype.needsArgumentConversion = function(args) { | 6412 MethodMember.prototype.needsArgumentConversion = function(args) { |
6197 var bareCount = args.get$bareCount(); | 6413 var bareCount = args.get$bareCount(); |
6198 for (var i = (0); | 6414 for (var i = (0); |
6199 i < bareCount; i++) { | 6415 i < bareCount; i++) { |
6200 var arg = args.values[i]; | 6416 var arg = args.values.$index(i); |
6201 if (arg.needsConversion$1(this.parameters[i].get$type())) { | 6417 if (arg.needsConversion$1(this.parameters.$index(i).get$type())) { |
6202 return true; | 6418 return true; |
6203 } | 6419 } |
6204 } | 6420 } |
6205 if (bareCount < this.parameters.get$length()) { | 6421 if (bareCount < this.parameters.get$length()) { |
6206 this.genParameterValues(); | 6422 this.genParameterValues(); |
6207 for (var i = bareCount; | 6423 for (var i = bareCount; |
6208 i < this.parameters.get$length(); i++) { | 6424 i < this.parameters.get$length(); i++) { |
6209 var arg = args.getValue(this.parameters[i].get$name()); | 6425 var arg = args.getValue(this.parameters.$index(i).get$name()); |
6210 if (arg != null && arg.needsConversion$1(this.parameters[i].get$type())) { | 6426 if (arg != null && arg.needsConversion$1(this.parameters.$index(i).get$typ
e())) { |
6211 return true; | 6427 return true; |
6212 } | 6428 } |
6213 } | 6429 } |
6214 } | 6430 } |
6215 return false; | 6431 return false; |
6216 } | 6432 } |
6217 MethodMember._argCountMsg = function(actual, expected, atLeast) { | 6433 MethodMember._argCountMsg = function(actual, expected, atLeast) { |
6218 return "wrong number of positional arguments, expected " + ("" + (atLeast ? "a
t least " : "") + expected + " but found " + actual); | 6434 return "wrong number of positional arguments, expected " + ("" + (atLeast ? "a
t least " : "") + expected + " but found " + actual); |
6219 } | 6435 } |
6220 MethodMember.prototype._argError = function(context, node, target, args, msg, ar
gIndex) { | 6436 MethodMember.prototype._argError = function(context, node, target, args, msg, ar
gIndex) { |
6221 var span; | 6437 var span; |
6222 if ((args.nodes == null) || (argIndex >= args.nodes.get$length())) { | 6438 if ((args.nodes == null) || (argIndex >= args.nodes.get$length())) { |
6223 span = node.span; | 6439 span = node.span; |
6224 } | 6440 } |
6225 else { | 6441 else { |
6226 span = args.nodes[argIndex].get$span(); | 6442 span = args.nodes.$index(argIndex).get$span(); |
6227 } | 6443 } |
6228 if (this.isStatic || this.get$isConstructor()) { | 6444 if (this.isStatic || this.get$isConstructor()) { |
6229 $globals.world.error(msg, span); | 6445 $globals.world.error(msg, span); |
6230 } | 6446 } |
6231 else { | 6447 else { |
6232 $globals.world.warning(msg, span); | 6448 $globals.world.warning(msg, span); |
6233 } | 6449 } |
6234 return target.invokeNoSuchMethod(context, this.name, node, args); | 6450 return target.invokeNoSuchMethod(context, this.name, node, args); |
6235 } | 6451 } |
6236 MethodMember.prototype.genParameterValues = function() { | 6452 MethodMember.prototype.genParameterValues = function() { |
6237 var $$list = this.parameters; | 6453 var $$list = this.parameters; |
6238 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 6454 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
6239 var p = $$list[$$i]; | 6455 var p = $$list.$index($$i); |
6240 p.genValue$2(this, this.generator); | 6456 p.genValue$2(this, this.generator); |
6241 } | 6457 } |
6242 } | 6458 } |
6243 MethodMember.prototype.invoke = function(context, node, target, args, isDynamic)
{ | 6459 MethodMember.prototype.invoke = function(context, node, target, args, isDynamic)
{ |
6244 if (this.parameters == null) { | 6460 if (this.parameters == null) { |
6245 $globals.world.info(("surprised to need to resolve: " + this.declaringType.n
ame + "." + this.name)); | 6461 $globals.world.info(("surprised to need to resolve: " + this.declaringType.n
ame + "." + this.name)); |
6246 this.resolve(); | 6462 this.resolve(); |
6247 } | 6463 } |
6248 this.declaringType.genMethod(this); | 6464 this.declaringType.genMethod(this); |
6249 if (this.isStatic || this.isFactory) { | 6465 if (this.isStatic || this.isFactory) { |
6250 this.declaringType.markUsed(); | 6466 this.declaringType.markUsed(); |
6251 } | 6467 } |
6252 if (this.get$isNative() && this.returnType != null) this.returnType.markUsed()
; | 6468 if (this.get$isNative() && this.returnType != null) this.returnType.markUsed()
; |
6253 if (!this.namesInOrder(args)) { | 6469 if (!this.namesInOrder(args)) { |
6254 return context.findMembers(this.name).invokeOnVar(context, node, target, arg
s); | 6470 return context.findMembers(this.name).invokeOnVar(context, node, target, arg
s); |
6255 } | 6471 } |
6256 var argsCode = []; | 6472 var argsCode = []; |
6257 if (!target.get$isType() && (this.get$isConstructor() || target.get$isSuper())
) { | 6473 if (!target.get$isType() && (this.get$isConstructor() || target.get$isSuper())
) { |
6258 argsCode.add$1("this"); | 6474 argsCode.add$1("this"); |
6259 } | 6475 } |
6260 var bareCount = args.get$bareCount(); | 6476 var bareCount = args.get$bareCount(); |
6261 for (var i = (0); | 6477 for (var i = (0); |
6262 i < bareCount; i++) { | 6478 i < bareCount; i++) { |
6263 var arg = args.values[i]; | 6479 var arg = args.values.$index(i); |
6264 if (i >= this.parameters.get$length()) { | 6480 if (i >= this.parameters.get$length()) { |
6265 var msg = MethodMember._argCountMsg(args.get$length(), this.parameters.get
$length(), false); | 6481 var msg = MethodMember._argCountMsg(args.get$length(), this.parameters.get
$length(), false); |
6266 return this._argError(context, node, target, args, msg, i); | 6482 return this._argError(context, node, target, args, msg, i); |
6267 } | 6483 } |
6268 arg = arg.convertTo$3(context, this.parameters[i].get$type(), isDynamic); | 6484 arg = arg.convertTo$3(context, this.parameters.$index(i).get$type(), isDynam
ic); |
6269 argsCode.add$1(arg.get$code()); | 6485 argsCode.add$1(arg.get$code()); |
6270 } | 6486 } |
6271 var namedArgsUsed = (0); | 6487 var namedArgsUsed = (0); |
6272 if (bareCount < this.parameters.get$length()) { | 6488 if (bareCount < this.parameters.get$length()) { |
6273 this.genParameterValues(); | 6489 this.genParameterValues(); |
6274 for (var i = bareCount; | 6490 for (var i = bareCount; |
6275 i < this.parameters.get$length(); i++) { | 6491 i < this.parameters.get$length(); i++) { |
6276 var arg = args.getValue(this.parameters[i].get$name()); | 6492 var arg = args.getValue(this.parameters.$index(i).get$name()); |
6277 if (arg == null) { | 6493 if (arg == null) { |
6278 arg = this.parameters[i].get$value(); | 6494 arg = this.parameters.$index(i).get$value(); |
6279 } | 6495 } |
6280 else { | 6496 else { |
6281 arg = arg.convertTo$3(context, this.parameters[i].get$type(), isDynamic)
; | 6497 arg = arg.convertTo$3(context, this.parameters.$index(i).get$type(), isD
ynamic); |
6282 namedArgsUsed++; | 6498 namedArgsUsed++; |
6283 } | 6499 } |
6284 if (arg == null || !this.parameters[i].get$isOptional()) { | 6500 if (arg == null || !this.parameters.$index(i).get$isOptional()) { |
6285 var msg = MethodMember._argCountMsg(Math.min(i, args.get$length()), i +
(1), true); | 6501 var msg = MethodMember._argCountMsg(Math.min(i, args.get$length()), i +
(1), true); |
6286 return this._argError(context, node, target, args, msg, i); | 6502 return this._argError(context, node, target, args, msg, i); |
6287 } | 6503 } |
6288 else { | 6504 else { |
6289 argsCode.add$1(arg.get$code()); | 6505 argsCode.add$1(arg.get$code()); |
6290 } | 6506 } |
6291 } | 6507 } |
6292 Arguments.removeTrailingNulls(argsCode); | 6508 Arguments.removeTrailingNulls(argsCode); |
6293 } | 6509 } |
6294 if (namedArgsUsed < args.get$nameCount()) { | 6510 if (namedArgsUsed < args.get$nameCount()) { |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6430 return new Value(this.get$inferredResult(), ("" + target.get$code() + "." + th
is.get$jsname() + "(" + argsString + ")"), node.span); | 6646 return new Value(this.get$inferredResult(), ("" + target.get$code() + "." + th
is.get$jsname() + "(" + argsString + ")"), node.span); |
6431 } | 6647 } |
6432 MethodMember.prototype.resolve = function() { | 6648 MethodMember.prototype.resolve = function() { |
6433 this.isStatic = this.declaringType.get$isTop(); | 6649 this.isStatic = this.declaringType.get$isTop(); |
6434 this.isConst = false; | 6650 this.isConst = false; |
6435 this.isFactory = false; | 6651 this.isFactory = false; |
6436 this.isAbstract = !this.declaringType.get$isClass(); | 6652 this.isAbstract = !this.declaringType.get$isClass(); |
6437 if (this.definition.modifiers != null) { | 6653 if (this.definition.modifiers != null) { |
6438 var $$list = this.definition.modifiers; | 6654 var $$list = this.definition.modifiers; |
6439 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 6655 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
6440 var mod = $$list[$$i]; | 6656 var mod = $$list.$index($$i); |
6441 if ($eq(mod.get$kind(), (85))) { | 6657 if ($eq(mod.get$kind(), (85))) { |
6442 if (this.isStatic) { | 6658 if (this.isStatic) { |
6443 $globals.world.error("duplicate static modifier", mod.get$span()); | 6659 $globals.world.error("duplicate static modifier", mod.get$span()); |
6444 } | 6660 } |
6445 this.isStatic = true; | 6661 this.isStatic = true; |
6446 } | 6662 } |
6447 else if (this.get$isConstructor() && $eq(mod.get$kind(), (92))) { | 6663 else if (this.get$isConstructor() && $eq(mod.get$kind(), (92))) { |
6448 if (this.isConst) { | 6664 if (this.isConst) { |
6449 $globals.world.error("duplicate const modifier", mod.get$span()); | 6665 $globals.world.error("duplicate const modifier", mod.get$span()); |
6450 } | 6666 } |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6502 } | 6718 } |
6503 if (this.get$isConstructor() && !this.isFactory) { | 6719 if (this.get$isConstructor() && !this.isFactory) { |
6504 this.returnType = this.declaringType; | 6720 this.returnType = this.declaringType; |
6505 } | 6721 } |
6506 else { | 6722 else { |
6507 this.returnType = this.resolveType(this.definition.returnType, false, true); | 6723 this.returnType = this.resolveType(this.definition.returnType, false, true); |
6508 } | 6724 } |
6509 this.parameters = []; | 6725 this.parameters = []; |
6510 var $$list = this.definition.formals; | 6726 var $$list = this.definition.formals; |
6511 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 6727 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
6512 var formal = $$list[$$i]; | 6728 var formal = $$list.$index($$i); |
6513 var param = new Parameter(formal, this); | 6729 var param = new Parameter(formal, this); |
6514 param.resolve$0(); | 6730 param.resolve$0(); |
6515 this.parameters.add(param); | 6731 this.parameters.add(param); |
6516 } | 6732 } |
6517 if (!this.isLambda) { | 6733 if (!this.isLambda) { |
6518 this.get$library()._addMember(this); | 6734 this.get$library()._addMember(this); |
6519 } | 6735 } |
6520 } | 6736 } |
6521 MethodMember.prototype.resolveType = function(node, typeErrors, allowVoid) { | 6737 MethodMember.prototype.resolveType = function(node, typeErrors, allowVoid) { |
6522 var t = Element.prototype.resolveType.call(this, node, typeErrors); | 6738 var t = Element.prototype.resolveType.call(this, node, typeErrors); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6560 MemberSet.prototype.get$members = function() { return this.members; }; | 6776 MemberSet.prototype.get$members = function() { return this.members; }; |
6561 MemberSet.prototype.get$jsname = function() { return this.jsname; }; | 6777 MemberSet.prototype.get$jsname = function() { return this.jsname; }; |
6562 MemberSet.prototype.get$isVar = function() { return this.isVar; }; | 6778 MemberSet.prototype.get$isVar = function() { return this.isVar; }; |
6563 MemberSet.prototype.toString = function() { | 6779 MemberSet.prototype.toString = function() { |
6564 return ("" + this.name + ":" + this.members.get$length()); | 6780 return ("" + this.name + ":" + this.members.get$length()); |
6565 } | 6781 } |
6566 MemberSet.prototype.add = function(member) { | 6782 MemberSet.prototype.add = function(member) { |
6567 return this.members.add(member); | 6783 return this.members.add(member); |
6568 } | 6784 } |
6569 MemberSet.prototype.get$isStatic = function() { | 6785 MemberSet.prototype.get$isStatic = function() { |
6570 return this.members.get$length() == (1) && this.members[(0)].get$isStatic(); | 6786 return this.members.get$length() == (1) && this.members.$index((0)).get$isStat
ic(); |
6571 } | 6787 } |
6572 MemberSet.prototype.get$isOperator = function() { | 6788 MemberSet.prototype.get$isOperator = function() { |
6573 return this.members[(0)].get$isOperator(); | 6789 return this.members.$index((0)).get$isOperator(); |
6574 } | 6790 } |
6575 MemberSet.prototype.canInvoke = function(context, args) { | 6791 MemberSet.prototype.canInvoke = function(context, args) { |
6576 return this.members.some((function (m) { | 6792 return this.members.some((function (m) { |
6577 return m.canInvoke$2(context, args); | 6793 return m.canInvoke$2(context, args); |
6578 }) | 6794 }) |
6579 ); | 6795 ); |
6580 } | 6796 } |
6581 MemberSet.prototype._makeError = function(node, target, action) { | 6797 MemberSet.prototype._makeError = function(node, target, action) { |
6582 if (!target.get$type().get$isVar()) { | 6798 if (!target.get$type().get$isVar()) { |
6583 $globals.world.warning(("could not find applicable " + action + " for \"" +
this.name + "\""), node.span); | 6799 $globals.world.warning(("could not find applicable " + action + " for \"" +
this.name + "\""), node.span); |
6584 } | 6800 } |
6585 return new Value($globals.world.varType, ("" + target.get$code() + "." + this.
jsname + "() /*no applicable " + action + "*/"), node.span); | 6801 return new Value($globals.world.varType, ("" + target.get$code() + "." + this.
jsname + "() /*no applicable " + action + "*/"), node.span); |
6586 } | 6802 } |
6587 MemberSet.prototype.get$treatAsField = function() { | 6803 MemberSet.prototype.get$treatAsField = function() { |
6588 if (this._treatAsField == null) { | 6804 if (this._treatAsField == null) { |
6589 this._treatAsField = !this.isVar && (this.members.some((function (m) { | 6805 this._treatAsField = !this.isVar && (this.members.some((function (m) { |
6590 return m.get$requiresFieldSyntax(); | 6806 return m.get$requiresFieldSyntax(); |
6591 }) | 6807 }) |
6592 ) || this.members.every((function (m) { | 6808 ) || this.members.every((function (m) { |
6593 return !m.get$requiresPropertySyntax(); | 6809 return !m.get$requiresPropertySyntax(); |
6594 }) | 6810 }) |
6595 )); | 6811 )); |
6596 var $$list = this.members; | 6812 var $$list = this.members; |
6597 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 6813 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
6598 var member = $$list[$$i]; | 6814 var member = $$list.$index($$i); |
6599 if (this._treatAsField) { | 6815 if (this._treatAsField) { |
6600 member.provideFieldSyntax$0(); | 6816 member.provideFieldSyntax$0(); |
6601 } | 6817 } |
6602 else { | 6818 else { |
6603 member.providePropertySyntax$0(); | 6819 member.providePropertySyntax$0(); |
6604 } | 6820 } |
6605 } | 6821 } |
6606 } | 6822 } |
6607 return this._treatAsField; | 6823 return this._treatAsField; |
6608 } | 6824 } |
6609 MemberSet.prototype._get = function(context, node, target, isDynamic) { | 6825 MemberSet.prototype._get = function(context, node, target, isDynamic) { |
6610 var returnValue; | 6826 var returnValue; |
6611 if (this.members.get$length() == (1) && !this.isVar) { | 6827 if (this.members.get$length() == (1) && !this.isVar) { |
6612 return this.members[(0)]._get$4(context, node, target, isDynamic); | 6828 return this.members.$index((0))._get$4(context, node, target, isDynamic); |
6613 } | 6829 } |
6614 var targets = this.members.filter$1((function (m) { | 6830 var targets = this.members.filter$1((function (m) { |
6615 return m.get$canGet(); | 6831 return m.get$canGet(); |
6616 }) | 6832 }) |
6617 ); | 6833 ); |
6618 if (this.isVar) { | 6834 if (this.isVar) { |
6619 targets.forEach$1((function (m) { | 6835 targets.forEach$1((function (m) { |
6620 return m._get$3$isDynamic(context, node, target, true); | 6836 return m._get$3$isDynamic(context, node, target, true); |
6621 }) | 6837 }) |
6622 ); | 6838 ); |
6623 returnValue = new Value(this._foldTypes(targets), null, node.span); | 6839 returnValue = new Value(this._foldTypes(targets), null, node.span); |
6624 } | 6840 } |
6625 else { | 6841 else { |
6626 if (this.members.get$length() == (1)) { | 6842 if (this.members.get$length() == (1)) { |
6627 return this.members[(0)]._get$4(context, node, target, isDynamic); | 6843 return this.members.$index((0))._get$4(context, node, target, isDynamic); |
6628 } | 6844 } |
6629 else if ($eq(targets.get$length(), (1))) { | 6845 else if ($eq(targets.get$length(), (1))) { |
6630 return targets.$index((0))._get$4(context, node, target, isDynamic); | 6846 return targets.$index((0))._get$4(context, node, target, isDynamic); |
6631 } | 6847 } |
6632 for (var $$i = targets.iterator$0(); $$i.hasNext$0(); ) { | 6848 for (var $$i = targets.iterator$0(); $$i.hasNext$0(); ) { |
6633 var member = $$i.next$0(); | 6849 var member = $$i.next$0(); |
6634 var value = member._get$3$isDynamic(context, node, target, true); | 6850 var value = member._get$3$isDynamic(context, node, target, true); |
6635 returnValue = this._tryUnion(returnValue, value, node); | 6851 returnValue = this._tryUnion(returnValue, value, node); |
6636 } | 6852 } |
6637 if (returnValue == null) { | 6853 if (returnValue == null) { |
6638 return this._makeError(node, target, "getter"); | 6854 return this._makeError(node, target, "getter"); |
6639 } | 6855 } |
6640 } | 6856 } |
6641 if (returnValue.get$code() == null) { | 6857 if (returnValue.get$code() == null) { |
6642 if (this.get$treatAsField()) { | 6858 if (this.get$treatAsField()) { |
6643 return new Value(returnValue.get$type(), ("" + target.get$code() + "." + t
his.jsname), node.span); | 6859 return new Value(returnValue.get$type(), ("" + target.get$code() + "." + t
his.jsname), node.span); |
6644 } | 6860 } |
6645 else { | 6861 else { |
6646 return new Value(returnValue.get$type(), ("" + target.get$code() + ".get$"
+ this.jsname + "()"), node.span); | 6862 return new Value(returnValue.get$type(), ("" + target.get$code() + ".get$"
+ this.jsname + "()"), node.span); |
6647 } | 6863 } |
6648 } | 6864 } |
6649 return returnValue; | 6865 return returnValue; |
6650 } | 6866 } |
6651 MemberSet.prototype._set = function(context, node, target, value, isDynamic) { | 6867 MemberSet.prototype._set = function(context, node, target, value, isDynamic) { |
6652 if (this.members.get$length() == (1) && !this.isVar) { | 6868 if (this.members.get$length() == (1) && !this.isVar) { |
6653 return this.members[(0)]._set$5(context, node, target, value, isDynamic); | 6869 return this.members.$index((0))._set$5(context, node, target, value, isDynam
ic); |
6654 } | 6870 } |
6655 var returnValue; | 6871 var returnValue; |
6656 var targets = this.members.filter$1((function (m) { | 6872 var targets = this.members.filter$1((function (m) { |
6657 return m.get$canSet(); | 6873 return m.get$canSet(); |
6658 }) | 6874 }) |
6659 ); | 6875 ); |
6660 if (this.isVar) { | 6876 if (this.isVar) { |
6661 targets.forEach$1((function (m) { | 6877 targets.forEach$1((function (m) { |
6662 return m._set$4$isDynamic(context, node, target, value, true); | 6878 return m._set$4$isDynamic(context, node, target, value, true); |
6663 }) | 6879 }) |
6664 ); | 6880 ); |
6665 returnValue = new Value(this._foldTypes(targets), null, node.span); | 6881 returnValue = new Value(this._foldTypes(targets), null, node.span); |
6666 } | 6882 } |
6667 else { | 6883 else { |
6668 if (this.members.get$length() == (1)) { | 6884 if (this.members.get$length() == (1)) { |
6669 return this.members[(0)]._set$5(context, node, target, value, isDynamic); | 6885 return this.members.$index((0))._set$5(context, node, target, value, isDyn
amic); |
6670 } | 6886 } |
6671 else if ($eq(targets.get$length(), (1))) { | 6887 else if ($eq(targets.get$length(), (1))) { |
6672 return targets.$index((0))._set$5(context, node, target, value, isDynamic)
; | 6888 return targets.$index((0))._set$5(context, node, target, value, isDynamic)
; |
6673 } | 6889 } |
6674 for (var $$i = targets.iterator$0(); $$i.hasNext$0(); ) { | 6890 for (var $$i = targets.iterator$0(); $$i.hasNext$0(); ) { |
6675 var member = $$i.next$0(); | 6891 var member = $$i.next$0(); |
6676 var res = member._set$4$isDynamic(context, node, target, value, true); | 6892 var res = member._set$4$isDynamic(context, node, target, value, true); |
6677 returnValue = this._tryUnion(returnValue, res, node); | 6893 returnValue = this._tryUnion(returnValue, res, node); |
6678 } | 6894 } |
6679 if (returnValue == null) { | 6895 if (returnValue == null) { |
6680 return this._makeError(node, target, "setter"); | 6896 return this._makeError(node, target, "setter"); |
6681 } | 6897 } |
6682 } | 6898 } |
6683 if (returnValue.get$code() == null) { | 6899 if (returnValue.get$code() == null) { |
6684 if (this.get$treatAsField()) { | 6900 if (this.get$treatAsField()) { |
6685 return new Value(returnValue.get$type(), ("" + target.get$code() + "." + t
his.jsname + " = " + value.get$code()), node.span); | 6901 return new Value(returnValue.get$type(), ("" + target.get$code() + "." + t
his.jsname + " = " + value.get$code()), node.span); |
6686 } | 6902 } |
6687 else { | 6903 else { |
6688 return new Value(returnValue.get$type(), ("" + target.get$code() + ".set$"
+ this.jsname + "(" + value.get$code() + ")"), node.span); | 6904 return new Value(returnValue.get$type(), ("" + target.get$code() + ".set$"
+ this.jsname + "(" + value.get$code() + ")"), node.span); |
6689 } | 6905 } |
6690 } | 6906 } |
6691 return returnValue; | 6907 return returnValue; |
6692 } | 6908 } |
6693 MemberSet.prototype.invoke = function(context, node, target, args, isDynamic) { | 6909 MemberSet.prototype.invoke = function(context, node, target, args, isDynamic) { |
6694 if (this.isVar && !this.get$isOperator()) { | 6910 if (this.isVar && !this.get$isOperator()) { |
6695 return this.invokeOnVar(context, node, target, args); | 6911 return this.invokeOnVar(context, node, target, args); |
6696 } | 6912 } |
6697 if (this.members.get$length() == (1) && !this.isVar) { | 6913 if (this.members.get$length() == (1) && !this.isVar) { |
6698 return this.members[(0)].invoke$5(context, node, target, args, isDynamic); | 6914 return this.members.$index((0)).invoke$5(context, node, target, args, isDyna
mic); |
6699 } | 6915 } |
6700 var targets = this.members.filter$1((function (m) { | 6916 var targets = this.members.filter$1((function (m) { |
6701 return m.canInvoke$2(context, args); | 6917 return m.canInvoke$2(context, args); |
6702 }) | 6918 }) |
6703 ); | 6919 ); |
6704 if ($eq(targets.get$length(), (1))) { | 6920 if ($eq(targets.get$length(), (1))) { |
6705 return targets.$index((0)).invoke$5(context, node, target, args, isDynamic); | 6921 return targets.$index((0)).invoke$5(context, node, target, args, isDynamic); |
6706 } | 6922 } |
6707 var returnValue = null; | 6923 var returnValue = null; |
6708 if (targets.get$length() < (1000)) { | 6924 if (targets.get$length() < (1000)) { |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6823 } | 7039 } |
6824 FactoryMap.prototype.addFactory = function(typeName, name, member) { | 7040 FactoryMap.prototype.addFactory = function(typeName, name, member) { |
6825 this.getFactoriesFor(typeName).$setindex(name, member); | 7041 this.getFactoriesFor(typeName).$setindex(name, member); |
6826 } | 7042 } |
6827 FactoryMap.prototype.getFactory = function(typeName, name) { | 7043 FactoryMap.prototype.getFactory = function(typeName, name) { |
6828 return this.getFactoriesFor(typeName).$index(name); | 7044 return this.getFactoriesFor(typeName).$index(name); |
6829 } | 7045 } |
6830 FactoryMap.prototype.forEach = function(f) { | 7046 FactoryMap.prototype.forEach = function(f) { |
6831 this.factories.forEach((function (_, constructors) { | 7047 this.factories.forEach((function (_, constructors) { |
6832 constructors.forEach((function (_, member) { | 7048 constructors.forEach((function (_, member) { |
6833 f.call$1(member); | 7049 f(member); |
6834 }) | 7050 }) |
6835 ); | 7051 ); |
6836 }) | 7052 }) |
6837 ); | 7053 ); |
6838 } | 7054 } |
6839 FactoryMap.prototype.forEach$1 = function($0) { | 7055 FactoryMap.prototype.forEach$1 = function($0) { |
6840 return this.forEach(to$call$1($0)); | 7056 return this.forEach(to$call$1($0)); |
6841 }; | 7057 }; |
6842 FactoryMap.prototype.getFactory$2 = FactoryMap.prototype.getFactory; | 7058 FactoryMap.prototype.getFactory$2 = FactoryMap.prototype.getFactory; |
6843 // ********** Code for Token ************** | 7059 // ********** Code for Token ************** |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6919 } | 7135 } |
6920 SourceFile.prototype.getLine = function(position) { | 7136 SourceFile.prototype.getLine = function(position) { |
6921 var starts = this.get$lineStarts(); | 7137 var starts = this.get$lineStarts(); |
6922 for (var i = (0); | 7138 for (var i = (0); |
6923 i < starts.get$length(); i++) { | 7139 i < starts.get$length(); i++) { |
6924 if (starts.$index(i) > position) return i - (1); | 7140 if (starts.$index(i) > position) return i - (1); |
6925 } | 7141 } |
6926 $globals.world.internalError("bad position"); | 7142 $globals.world.internalError("bad position"); |
6927 } | 7143 } |
6928 SourceFile.prototype.getColumn = function(line, position) { | 7144 SourceFile.prototype.getColumn = function(line, position) { |
6929 return position - this.get$lineStarts()[line]; | 7145 return position - this.get$lineStarts().$index(line); |
6930 } | 7146 } |
6931 SourceFile.prototype.getLocationMessage = function(message, start, end, includeT
ext) { | 7147 SourceFile.prototype.getLocationMessage = function(message, start, end, includeT
ext) { |
6932 var line = this.getLine(start); | 7148 var line = this.getLine(start); |
6933 var column = this.getColumn(line, start); | 7149 var column = this.getColumn(line, start); |
6934 var buf = new StringBufferImpl(("" + this.filename + ":" + ($add(line, (1))) +
":" + ($add(column, (1))) + ": " + message)); | 7150 var buf = new StringBufferImpl(("" + this.filename + ":" + ($add(line, (1))) +
":" + ($add(column, (1))) + ": " + message)); |
6935 if (includeText) { | 7151 if (includeText) { |
6936 buf.add$1("\n"); | 7152 buf.add$1("\n"); |
6937 var textLine; | 7153 var textLine; |
6938 if (($add(line, (2))) < this._lineStarts.get$length()) { | 7154 if (($add(line, (2))) < this._lineStarts.get$length()) { |
6939 textLine = this.get$text().substring(this._lineStarts[line], this._lineSta
rts[$add(line, (1))]); | 7155 textLine = this.get$text().substring(this._lineStarts.$index(line), this._
lineStarts.$index($add(line, (1)))); |
6940 } | 7156 } |
6941 else { | 7157 else { |
6942 textLine = this.get$text().substring(this._lineStarts[line]) + "\n"; | 7158 textLine = this.get$text().substring(this._lineStarts.$index(line)) + "\n"
; |
6943 } | 7159 } |
6944 var toColumn = Math.min($add(column, (end - start)), textLine.get$length()); | 7160 var toColumn = Math.min($add(column, (end - start)), textLine.get$length()); |
6945 if ($globals.options.useColors) { | 7161 if ($globals.options.useColors) { |
6946 buf.add$1(textLine.substring$2((0), column)); | 7162 buf.add$1(textLine.substring$2((0), column)); |
6947 buf.add$1($globals._RED_COLOR); | 7163 buf.add$1($globals._RED_COLOR); |
6948 buf.add$1(textLine.substring$2(column, toColumn)); | 7164 buf.add$1(textLine.substring$2(column, toColumn)); |
6949 buf.add$1($globals._NO_COLOR); | 7165 buf.add$1($globals._NO_COLOR); |
6950 buf.add$1(textLine.substring$1(toColumn)); | 7166 buf.add$1(textLine.substring$1(toColumn)); |
6951 } | 7167 } |
6952 else { | 7168 else { |
(...skipping 2963 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9916 if (this._inhibitLambda) return false; | 10132 if (this._inhibitLambda) return false; |
9917 var after = this._peekAfterCloseParen(); | 10133 var after = this._peekAfterCloseParen(); |
9918 return after.kind == (9) || after.kind == (6); | 10134 return after.kind == (9) || after.kind == (6); |
9919 } | 10135 } |
9920 Parser.prototype._eatLeftParen = function() { | 10136 Parser.prototype._eatLeftParen = function() { |
9921 this._eat((2)); | 10137 this._eat((2)); |
9922 this._afterParensIndex++; | 10138 this._afterParensIndex++; |
9923 } | 10139 } |
9924 Parser.prototype._peekAfterCloseParen = function() { | 10140 Parser.prototype._peekAfterCloseParen = function() { |
9925 if (this._afterParensIndex < this._afterParens.get$length()) { | 10141 if (this._afterParensIndex < this._afterParens.get$length()) { |
9926 return this._afterParens[this._afterParensIndex]; | 10142 return this._afterParens.$index(this._afterParensIndex); |
9927 } | 10143 } |
9928 this._afterParensIndex = (0); | 10144 this._afterParensIndex = (0); |
9929 this._afterParens.clear(); | 10145 this._afterParens.clear(); |
9930 var tokens = [this._lang_next()]; | 10146 var tokens = [this._lang_next()]; |
9931 this._lookaheadAfterParens(tokens); | 10147 this._lookaheadAfterParens(tokens); |
9932 var after = this._peekToken; | 10148 var after = this._peekToken; |
9933 tokens.add$1(after); | 10149 tokens.add$1(after); |
9934 this.tokenizer = new DivertedTokenSource(tokens, this, this.tokenizer); | 10150 this.tokenizer = new DivertedTokenSource(tokens, this, this.tokenizer); |
9935 this._lang_next(); | 10151 this._lang_next(); |
9936 return after; | 10152 return after; |
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10387 } | 10603 } |
10388 IncompleteSourceException.prototype.toString$0 = IncompleteSourceException.proto
type.toString; | 10604 IncompleteSourceException.prototype.toString$0 = IncompleteSourceException.proto
type.toString; |
10389 // ********** Code for DivertedTokenSource ************** | 10605 // ********** Code for DivertedTokenSource ************** |
10390 function DivertedTokenSource(tokens, parser, previousTokenizer) { | 10606 function DivertedTokenSource(tokens, parser, previousTokenizer) { |
10391 this.parser = parser; | 10607 this.parser = parser; |
10392 this._lang_pos = (0); | 10608 this._lang_pos = (0); |
10393 this.tokens = tokens; | 10609 this.tokens = tokens; |
10394 this.previousTokenizer = previousTokenizer; | 10610 this.previousTokenizer = previousTokenizer; |
10395 } | 10611 } |
10396 DivertedTokenSource.prototype.next = function() { | 10612 DivertedTokenSource.prototype.next = function() { |
10397 var token = this.tokens[this._lang_pos]; | 10613 var token = this.tokens.$index(this._lang_pos); |
10398 ++this._lang_pos; | 10614 ++this._lang_pos; |
10399 if (this._lang_pos == this.tokens.get$length()) { | 10615 if (this._lang_pos == this.tokens.get$length()) { |
10400 this.parser.tokenizer = this.previousTokenizer; | 10616 this.parser.tokenizer = this.previousTokenizer; |
10401 } | 10617 } |
10402 return token; | 10618 return token; |
10403 } | 10619 } |
10404 DivertedTokenSource.prototype.next$0 = DivertedTokenSource.prototype.next; | 10620 DivertedTokenSource.prototype.next$0 = DivertedTokenSource.prototype.next; |
10405 // ********** Code for Node ************** | 10621 // ********** Code for Node ************** |
10406 function Node(span) { | 10622 function Node(span) { |
10407 this.span = span; | 10623 this.span = span; |
(...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11324 var typeParam = params.next$0(); | 11540 var typeParam = params.next$0(); |
11325 var typeArg = args.next$0(); | 11541 var typeArg = args.next$0(); |
11326 if (typeParam.get$extendsType() != null && typeArg != null) { | 11542 if (typeParam.get$extendsType() != null && typeArg != null) { |
11327 typeArg.ensureSubtypeOf$3(typeParam.get$extendsType(), typeParam.get$spa
n(), true); | 11543 typeArg.ensureSubtypeOf$3(typeParam.get$extendsType(), typeParam.get$spa
n(), true); |
11328 } | 11544 } |
11329 } | 11545 } |
11330 } | 11546 } |
11331 if (this.get$interfaces() != null) { | 11547 if (this.get$interfaces() != null) { |
11332 var $$list = this.get$interfaces(); | 11548 var $$list = this.get$interfaces(); |
11333 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 11549 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
11334 var i = $$list[$$i]; | 11550 var i = $$list.$index($$i); |
11335 i._checkExtends$0(); | 11551 i._checkExtends$0(); |
11336 } | 11552 } |
11337 } | 11553 } |
11338 } | 11554 } |
11339 Type.prototype._checkOverride = function(member) { | 11555 Type.prototype._checkOverride = function(member) { |
11340 var parentMember = this._getMemberInParents(member.name); | 11556 var parentMember = this._getMemberInParents(member.name); |
11341 if (parentMember != null) { | 11557 if (parentMember != null) { |
11342 if (!member.get$isPrivate() || $eq(member.get$library(), parentMember.get$li
brary())) { | 11558 if (!member.get$isPrivate() || $eq(member.get$library(), parentMember.get$li
brary())) { |
11343 member.override(parentMember); | 11559 member.override(parentMember); |
11344 } | 11560 } |
(...skipping 18 matching lines...) Expand all Loading... |
11363 return this.get$parent().getMember(memberName); | 11579 return this.get$parent().getMember(memberName); |
11364 } | 11580 } |
11365 else { | 11581 else { |
11366 return null; | 11582 return null; |
11367 } | 11583 } |
11368 } | 11584 } |
11369 else { | 11585 else { |
11370 if (this.get$interfaces() != null && this.get$interfaces().get$length() > (0
)) { | 11586 if (this.get$interfaces() != null && this.get$interfaces().get$length() > (0
)) { |
11371 var $$list = this.get$interfaces(); | 11587 var $$list = this.get$interfaces(); |
11372 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 11588 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
11373 var i = $$list[$$i]; | 11589 var i = $$list.$index($$i); |
11374 var ret = i.getMember$1(memberName); | 11590 var ret = i.getMember$1(memberName); |
11375 if (ret != null) { | 11591 if (ret != null) { |
11376 return ret; | 11592 return ret; |
11377 } | 11593 } |
11378 } | 11594 } |
11379 } | 11595 } |
11380 return $globals.world.objectType.getMember(memberName); | 11596 return $globals.world.objectType.getMember(memberName); |
11381 } | 11597 } |
11382 } | 11598 } |
11383 Type.prototype.ensureSubtypeOf = function(other, span, typeErrors) { | 11599 Type.prototype.ensureSubtypeOf = function(other, span, typeErrors) { |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11688 ConcreteType.prototype.get$isClass = function() { | 11904 ConcreteType.prototype.get$isClass = function() { |
11689 return this.genericType.isClass; | 11905 return this.genericType.isClass; |
11690 } | 11906 } |
11691 ConcreteType.prototype.get$library = function() { | 11907 ConcreteType.prototype.get$library = function() { |
11692 return this.genericType.library; | 11908 return this.genericType.library; |
11693 } | 11909 } |
11694 ConcreteType.prototype.get$span = function() { | 11910 ConcreteType.prototype.get$span = function() { |
11695 return this.genericType.get$span(); | 11911 return this.genericType.get$span(); |
11696 } | 11912 } |
11697 ConcreteType.prototype.get$hasTypeParams = function() { | 11913 ConcreteType.prototype.get$hasTypeParams = function() { |
11698 return this.typeArguments.getValues().some((function (e) { | 11914 return this.typeArguments.getValues$0().some$1((function (e) { |
11699 return (e instanceof ParameterType); | 11915 return (e instanceof ParameterType); |
11700 }) | 11916 }) |
11701 ); | 11917 ); |
11702 } | 11918 } |
11703 ConcreteType.prototype.get$isUsed = function() { return this.isUsed; }; | 11919 ConcreteType.prototype.get$isUsed = function() { return this.isUsed; }; |
11704 ConcreteType.prototype.set$isUsed = function(value) { return this.isUsed = value
; }; | 11920 ConcreteType.prototype.set$isUsed = function(value) { return this.isUsed = value
; }; |
11705 ConcreteType.prototype.get$members = function() { return this.members; }; | 11921 ConcreteType.prototype.get$members = function() { return this.members; }; |
11706 ConcreteType.prototype.set$members = function(value) { return this.members = val
ue; }; | 11922 ConcreteType.prototype.set$members = function(value) { return this.members = val
ue; }; |
11707 ConcreteType.prototype.get$constructors = function() { return this.constructors;
}; | 11923 ConcreteType.prototype.get$constructors = function() { return this.constructors;
}; |
11708 ConcreteType.prototype.set$constructors = function(value) { return this.construc
tors = value; }; | 11924 ConcreteType.prototype.set$constructors = function(value) { return this.construc
tors = value; }; |
11709 ConcreteType.prototype.get$factories = function() { return this.factories; }; | 11925 ConcreteType.prototype.get$factories = function() { return this.factories; }; |
11710 ConcreteType.prototype.set$factories = function(value) { return this.factories =
value; }; | 11926 ConcreteType.prototype.set$factories = function(value) { return this.factories =
value; }; |
11711 ConcreteType.prototype.resolveTypeParams = function(inType) { | 11927 ConcreteType.prototype.resolveTypeParams = function(inType) { |
11712 var newTypeArgs = []; | 11928 var newTypeArgs = []; |
11713 var needsNewType = false; | 11929 var needsNewType = false; |
11714 var $$list = this.typeArgsInOrder; | 11930 var $$list = this.typeArgsInOrder; |
11715 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 11931 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
11716 var t = $$list[$$i]; | 11932 var t = $$list.$index($$i); |
11717 var newType = t.resolveTypeParams$1(inType); | 11933 var newType = t.resolveTypeParams$1(inType); |
11718 if ($ne(newType, t)) needsNewType = true; | 11934 if ($ne(newType, t)) needsNewType = true; |
11719 newTypeArgs.add$1(newType); | 11935 newTypeArgs.add$1(newType); |
11720 } | 11936 } |
11721 if (!needsNewType) return this; | 11937 if (!needsNewType) return this; |
11722 return this.genericType.getOrMakeConcreteType(newTypeArgs); | 11938 return this.genericType.getOrMakeConcreteType(newTypeArgs); |
11723 } | 11939 } |
11724 ConcreteType.prototype.getOrMakeConcreteType = function(typeArgs) { | 11940 ConcreteType.prototype.getOrMakeConcreteType = function(typeArgs) { |
11725 return this.genericType.getOrMakeConcreteType(typeArgs); | 11941 return this.genericType.getOrMakeConcreteType(typeArgs); |
11726 } | 11942 } |
11727 ConcreteType.prototype.get$parent = function() { | 11943 ConcreteType.prototype.get$parent = function() { |
11728 if (this._parent == null && this.genericType.get$parent() != null) { | 11944 if (this._parent == null && this.genericType.get$parent() != null) { |
11729 this._parent = this.genericType.get$parent().resolveTypeParams(this); | 11945 this._parent = this.genericType.get$parent().resolveTypeParams(this); |
11730 } | 11946 } |
11731 return this._parent; | 11947 return this._parent; |
11732 } | 11948 } |
11733 ConcreteType.prototype.get$interfaces = function() { | 11949 ConcreteType.prototype.get$interfaces = function() { |
11734 if (this._interfaces == null && this.genericType.interfaces != null) { | 11950 if (this._interfaces == null && this.genericType.interfaces != null) { |
11735 this._interfaces = []; | 11951 this._interfaces = []; |
11736 var $$list = this.genericType.interfaces; | 11952 var $$list = this.genericType.interfaces; |
11737 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 11953 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
11738 var i = $$list[$$i]; | 11954 var i = $$list.$index($$i); |
11739 this._interfaces.add(i.resolveTypeParams$1(this)); | 11955 this._interfaces.add(i.resolveTypeParams$1(this)); |
11740 } | 11956 } |
11741 } | 11957 } |
11742 return this._interfaces; | 11958 return this._interfaces; |
11743 } | 11959 } |
11744 ConcreteType.prototype.get$subtypes = function() { | 11960 ConcreteType.prototype.get$subtypes = function() { |
11745 if (this._subtypes == null) { | 11961 if (this._subtypes == null) { |
11746 this._subtypes = new HashSetImplementation(); | 11962 this._subtypes = new HashSetImplementation(); |
11747 var $$list = this.genericType.get$subtypes(); | 11963 var $$list = this.genericType.get$subtypes(); |
11748 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 11964 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11949 DefinedType.prototype.getAllMembers = function() { | 12165 DefinedType.prototype.getAllMembers = function() { |
11950 return HashMapImplementation.HashMapImplementation$from$factory(this.members); | 12166 return HashMapImplementation.HashMapImplementation$from$factory(this.members); |
11951 } | 12167 } |
11952 DefinedType.prototype.markUsed = function() { | 12168 DefinedType.prototype.markUsed = function() { |
11953 if (this.isUsed) return; | 12169 if (this.isUsed) return; |
11954 this.isUsed = true; | 12170 this.isUsed = true; |
11955 this._checkExtends(); | 12171 this._checkExtends(); |
11956 if (this._lazyGenMethods != null) { | 12172 if (this._lazyGenMethods != null) { |
11957 var $$list = orderValuesByKeys(this._lazyGenMethods); | 12173 var $$list = orderValuesByKeys(this._lazyGenMethods); |
11958 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 12174 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
11959 var method = $$list[$$i]; | 12175 var method = $$list.$index($$i); |
11960 $globals.world.gen.genMethod(method); | 12176 $globals.world.gen.genMethod(method); |
11961 } | 12177 } |
11962 this._lazyGenMethods = null; | 12178 this._lazyGenMethods = null; |
11963 } | 12179 } |
11964 if (this.get$parent() != null) this.get$parent().markUsed(); | 12180 if (this.get$parent() != null) this.get$parent().markUsed(); |
11965 } | 12181 } |
11966 DefinedType.prototype.genMethod = function(method) { | 12182 DefinedType.prototype.genMethod = function(method) { |
11967 if (this.isUsed) { | 12183 if (this.isUsed) { |
11968 $globals.world.gen.genMethod(method); | 12184 $globals.world.gen.genMethod(method); |
11969 } | 12185 } |
11970 else if (this.isClass) { | 12186 else if (this.isClass) { |
11971 if (this._lazyGenMethods == null) this._lazyGenMethods = new HashMapImplemen
tation(); | 12187 if (this._lazyGenMethods == null) this._lazyGenMethods = new HashMapImplemen
tation(); |
11972 this._lazyGenMethods.$setindex(method.name, method); | 12188 this._lazyGenMethods.$setindex(method.name, method); |
11973 } | 12189 } |
11974 } | 12190 } |
11975 DefinedType.prototype._resolveInterfaces = function(types) { | 12191 DefinedType.prototype._resolveInterfaces = function(types) { |
11976 if (types == null) return []; | 12192 if (types == null) return []; |
11977 var interfaces = []; | 12193 var interfaces = []; |
11978 for (var $$i = 0;$$i < types.get$length(); $$i++) { | 12194 for (var $$i = 0;$$i < types.get$length(); $$i++) { |
11979 var type = types[$$i]; | 12195 var type = types.$index($$i); |
11980 var resolvedInterface = this.resolveType$2(type, true); | 12196 var resolvedInterface = this.resolveType$2(type, true); |
11981 if (resolvedInterface.get$isClosed() && !(this.library.get$isCore() || this.
library.get$isCoreImpl())) { | 12197 if (resolvedInterface.get$isClosed() && !(this.library.get$isCore() || this.
library.get$isCoreImpl())) { |
11982 $globals.world.error(("can not implement \"" + resolvedInterface.get$name(
) + "\": ") + "only native implementation allowed", type.get$span()); | 12198 $globals.world.error(("can not implement \"" + resolvedInterface.get$name(
) + "\": ") + "only native implementation allowed", type.get$span()); |
11983 } | 12199 } |
11984 resolvedInterface.addDirectSubtype$1(this); | 12200 resolvedInterface.addDirectSubtype$1(this); |
11985 interfaces.add$1(resolvedInterface); | 12201 interfaces.add$1(resolvedInterface); |
11986 } | 12202 } |
11987 return interfaces; | 12203 return interfaces; |
11988 } | 12204 } |
11989 DefinedType.prototype.addDirectSubtype = function(type) { | 12205 DefinedType.prototype.addDirectSubtype = function(type) { |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12025 if (ancestor == null) return false; | 12241 if (ancestor == null) return false; |
12026 if (ancestor == $this) return true; | 12242 if (ancestor == $this) return true; |
12027 if (seen.contains$1(ancestor)) { | 12243 if (seen.contains$1(ancestor)) { |
12028 return false; | 12244 return false; |
12029 } | 12245 } |
12030 seen.add$1(ancestor); | 12246 seen.add$1(ancestor); |
12031 if (ancestor.get$interfaces() != null) { | 12247 if (ancestor.get$interfaces() != null) { |
12032 var $$list = ancestor.get$interfaces(); | 12248 var $$list = ancestor.get$interfaces(); |
12033 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 12249 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
12034 var parent = $$i.next$0(); | 12250 var parent = $$i.next$0(); |
12035 if (_helper.call$1(parent)) return true; | 12251 if (_helper(parent)) return true; |
12036 } | 12252 } |
12037 } | 12253 } |
12038 return false; | 12254 return false; |
12039 } | 12255 } |
12040 for (var i = (0); | 12256 for (var i = (0); |
12041 i < this.interfaces.get$length(); i++) { | 12257 i < this.interfaces.get$length(); i++) { |
12042 if (_helper.call$1(this.interfaces[i])) return i; | 12258 if (_helper(this.interfaces.$index(i))) return i; |
12043 } | 12259 } |
12044 return (-1); | 12260 return (-1); |
12045 } | 12261 } |
12046 DefinedType.prototype.resolve = function() { | 12262 DefinedType.prototype.resolve = function() { |
12047 if ((this.definition instanceof TypeDefinition)) { | 12263 if ((this.definition instanceof TypeDefinition)) { |
12048 var typeDef = this.definition; | 12264 var typeDef = this.definition; |
12049 if (this.isClass) { | 12265 if (this.isClass) { |
12050 if (typeDef.extendsTypes != null && typeDef.extendsTypes.get$length() > (0
)) { | 12266 if (typeDef.extendsTypes != null && typeDef.extendsTypes.get$length() > (0
)) { |
12051 if (typeDef.extendsTypes.get$length() > (1)) { | 12267 if (typeDef.extendsTypes.get$length() > (1)) { |
12052 $globals.world.error("more than one base class", typeDef.extendsTypes[
(1)].get$span()); | 12268 $globals.world.error("more than one base class", typeDef.extendsTypes.
$index((1)).get$span()); |
12053 } | 12269 } |
12054 var extendsTypeRef = typeDef.extendsTypes[(0)]; | 12270 var extendsTypeRef = typeDef.extendsTypes.$index((0)); |
12055 if ((extendsTypeRef instanceof GenericTypeReference)) { | 12271 if ((extendsTypeRef instanceof GenericTypeReference)) { |
12056 var g = extendsTypeRef; | 12272 var g = extendsTypeRef; |
12057 this.set$parent(this.resolveType$2(g.baseType, true)); | 12273 this.set$parent(this.resolveType$2(g.baseType, true)); |
12058 } | 12274 } |
12059 this.set$parent(this.resolveType$2(extendsTypeRef, true)); | 12275 this.set$parent(this.resolveType$2(extendsTypeRef, true)); |
12060 if (!this.get$parent().get$isClass()) { | 12276 if (!this.get$parent().get$isClass()) { |
12061 $globals.world.error("class may not extend an interface - use implemen
ts", typeDef.extendsTypes[(0)].get$span()); | 12277 $globals.world.error("class may not extend an interface - use implemen
ts", typeDef.extendsTypes.$index((0)).get$span()); |
12062 } | 12278 } |
12063 this.get$parent().addDirectSubtype$1(this); | 12279 this.get$parent().addDirectSubtype$1(this); |
12064 if (this._cycleInClassExtends()) { | 12280 if (this._cycleInClassExtends()) { |
12065 $globals.world.error(("class \"" + this.name + "\" has a cycle in its
inheritance chain"), extendsTypeRef.get$span()); | 12281 $globals.world.error(("class \"" + this.name + "\" has a cycle in its
inheritance chain"), extendsTypeRef.get$span()); |
12066 } | 12282 } |
12067 } | 12283 } |
12068 else { | 12284 else { |
12069 if (!this.get$isObject()) { | 12285 if (!this.get$isObject()) { |
12070 this.set$parent($globals.world.objectType); | 12286 this.set$parent($globals.world.objectType); |
12071 this.get$parent().addDirectSubtype$1(this); | 12287 this.get$parent().addDirectSubtype$1(this); |
12072 } | 12288 } |
12073 } | 12289 } |
12074 this.interfaces = this._resolveInterfaces(typeDef.implementsTypes); | 12290 this.interfaces = this._resolveInterfaces(typeDef.implementsTypes); |
12075 if (typeDef.defaultType != null) { | 12291 if (typeDef.defaultType != null) { |
12076 $globals.world.error("default not allowed on classes", typeDef.defaultTy
pe.span); | 12292 $globals.world.error("default not allowed on classes", typeDef.defaultTy
pe.span); |
12077 } | 12293 } |
12078 } | 12294 } |
12079 else { | 12295 else { |
12080 if (typeDef.implementsTypes != null && typeDef.implementsTypes.get$length(
) > (0)) { | 12296 if (typeDef.implementsTypes != null && typeDef.implementsTypes.get$length(
) > (0)) { |
12081 $globals.world.error("implements not allowed on interfaces (use extends)
", typeDef.implementsTypes[(0)].get$span()); | 12297 $globals.world.error("implements not allowed on interfaces (use extends)
", typeDef.implementsTypes.$index((0)).get$span()); |
12082 } | 12298 } |
12083 this.interfaces = this._resolveInterfaces(typeDef.extendsTypes); | 12299 this.interfaces = this._resolveInterfaces(typeDef.extendsTypes); |
12084 var res = this._cycleInInterfaceExtends(); | 12300 var res = this._cycleInInterfaceExtends(); |
12085 if (res >= (0)) { | 12301 if (res >= (0)) { |
12086 $globals.world.error(("interface \"" + this.name + "\" has a cycle in it
s inheritance chain"), typeDef.extendsTypes[res].get$span()); | 12302 $globals.world.error(("interface \"" + this.name + "\" has a cycle in it
s inheritance chain"), typeDef.extendsTypes.$index(res).get$span()); |
12087 } | 12303 } |
12088 if (typeDef.defaultType != null) { | 12304 if (typeDef.defaultType != null) { |
12089 this.defaultType = this.resolveType$2(typeDef.defaultType.baseType, true
); | 12305 this.defaultType = this.resolveType$2(typeDef.defaultType.baseType, true
); |
12090 if (this.defaultType == null) { | 12306 if (this.defaultType == null) { |
12091 $globals.world.warning("unresolved default class", typeDef.defaultType
.span); | 12307 $globals.world.warning("unresolved default class", typeDef.defaultType
.span); |
12092 } | 12308 } |
12093 else { | 12309 else { |
12094 this.defaultType._resolveTypeParams(typeDef.defaultType.typeParameters
); | 12310 this.defaultType._resolveTypeParams(typeDef.defaultType.typeParameters
); |
12095 } | 12311 } |
12096 } | 12312 } |
12097 } | 12313 } |
12098 } | 12314 } |
12099 else if ((this.definition instanceof FunctionTypeDefinition)) { | 12315 else if ((this.definition instanceof FunctionTypeDefinition)) { |
12100 this.interfaces = [$globals.world.functionType]; | 12316 this.interfaces = [$globals.world.functionType]; |
12101 } | 12317 } |
12102 this._resolveTypeParams(this.typeParameters); | 12318 this._resolveTypeParams(this.typeParameters); |
12103 if (this.get$isObject()) this._createNotEqualMember(); | 12319 if (this.get$isObject()) this._createNotEqualMember(); |
12104 $globals.world._addType(this); | 12320 $globals.world._addType(this); |
12105 var $$list = this.constructors.getValues(); | 12321 var $$list = this.constructors.getValues$0(); |
12106 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 12322 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
12107 var c = $$i.next$0(); | 12323 var c = $$i.next$0(); |
12108 c.resolve$0(); | 12324 c.resolve$0(); |
12109 } | 12325 } |
12110 var $$list = this.members.getValues(); | 12326 var $$list = this.members.getValues$0(); |
12111 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 12327 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
12112 var m = $$i.next$0(); | 12328 var m = $$i.next$0(); |
12113 m.resolve$0(); | 12329 m.resolve$0(); |
12114 } | 12330 } |
12115 this.factories.forEach((function (f) { | 12331 this.factories.forEach((function (f) { |
12116 return f.resolve$0(); | 12332 return f.resolve$0(); |
12117 }) | 12333 }) |
12118 ); | 12334 ); |
12119 if (this.get$isJsGlobalObject()) { | 12335 if (this.get$isJsGlobalObject()) { |
12120 var $$list = this.members.getValues(); | 12336 var $$list = this.members.getValues$0(); |
12121 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 12337 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
12122 var m = $$i.next$0(); | 12338 var m = $$i.next$0(); |
12123 if (!m.get$isStatic()) $globals.world._addTopName(new ExistingJsGlobal(m.g
et$name(), m)); | 12339 if (!m.get$isStatic()) $globals.world._addTopName(new ExistingJsGlobal(m.g
et$name(), m)); |
12124 } | 12340 } |
12125 } | 12341 } |
12126 } | 12342 } |
12127 DefinedType.prototype._resolveTypeParams = function(params) { | 12343 DefinedType.prototype._resolveTypeParams = function(params) { |
12128 if (params == null) return; | 12344 if (params == null) return; |
12129 for (var $$i = 0;$$i < params.get$length(); $$i++) { | 12345 for (var $$i = 0;$$i < params.get$length(); $$i++) { |
12130 var tp = params[$$i]; | 12346 var tp = params.$index($$i); |
12131 tp.set$enclosingElement(this); | 12347 tp.set$enclosingElement(this); |
12132 tp.resolve$0(); | 12348 tp.resolve$0(); |
12133 } | 12349 } |
12134 } | 12350 } |
12135 DefinedType.prototype.addMethod = function(methodName, definition) { | 12351 DefinedType.prototype.addMethod = function(methodName, definition) { |
12136 if (methodName == null) methodName = definition.name.name; | 12352 if (methodName == null) methodName = definition.name.name; |
12137 var method = new MethodMember(methodName, this, definition); | 12353 var method = new MethodMember(methodName, this, definition); |
12138 if (method.get$isConstructor()) { | 12354 if (method.get$isConstructor()) { |
12139 if (this.constructors.containsKey(method.get$constructorName())) { | 12355 if (this.constructors.containsKey(method.get$constructorName())) { |
12140 $globals.world.error(("duplicate constructor definition of " + method.get$
name()), definition.span); | 12356 $globals.world.error(("duplicate constructor definition of " + method.get$
name()), definition.span); |
12141 return; | 12357 return; |
12142 } | 12358 } |
12143 this.constructors.$setindex(method.get$constructorName(), method); | 12359 this.constructors.$setindex(method.get$constructorName(), method); |
12144 return; | 12360 return; |
12145 } | 12361 } |
12146 if (definition.modifiers != null && definition.modifiers.get$length() == (1) &
& $eq(definition.modifiers[(0)].get$kind(), (74))) { | 12362 if (definition.modifiers != null && definition.modifiers.get$length() == (1) &
& $eq(definition.modifiers.$index((0)).get$kind(), (74))) { |
12147 if (this.factories.getFactory(method.get$constructorName(), method.get$name(
)) != null) { | 12363 if (this.factories.getFactory(method.get$constructorName(), method.get$name(
)) != null) { |
12148 $globals.world.error(("duplicate factory definition of \"" + method.get$na
me() + "\""), definition.span); | 12364 $globals.world.error(("duplicate factory definition of \"" + method.get$na
me() + "\""), definition.span); |
12149 return; | 12365 return; |
12150 } | 12366 } |
12151 this.factories.addFactory(method.get$constructorName(), method.get$name(), m
ethod); | 12367 this.factories.addFactory(method.get$constructorName(), method.get$name(), m
ethod); |
12152 return; | 12368 return; |
12153 } | 12369 } |
12154 if (methodName.startsWith("get:") || methodName.startsWith("set:")) { | 12370 if (methodName.startsWith("get:") || methodName.startsWith("set:")) { |
12155 var propName = methodName.substring((4)); | 12371 var propName = methodName.substring((4)); |
12156 var prop = this.members.$index(propName); | 12372 var prop = this.members.$index(propName); |
(...skipping 21 matching lines...) Expand all Loading... |
12178 } | 12394 } |
12179 if (this.members.containsKey(methodName)) { | 12395 if (this.members.containsKey(methodName)) { |
12180 $globals.world.error(("duplicate method definition of \"" + method.get$name(
) + "\""), definition.span); | 12396 $globals.world.error(("duplicate method definition of \"" + method.get$name(
) + "\""), definition.span); |
12181 return; | 12397 return; |
12182 } | 12398 } |
12183 this.members.$setindex(methodName, method); | 12399 this.members.$setindex(methodName, method); |
12184 } | 12400 } |
12185 DefinedType.prototype.addField = function(definition) { | 12401 DefinedType.prototype.addField = function(definition) { |
12186 for (var i = (0); | 12402 for (var i = (0); |
12187 i < definition.names.get$length(); i++) { | 12403 i < definition.names.get$length(); i++) { |
12188 var name = definition.names[i].get$name(); | 12404 var name = definition.names.$index(i).get$name(); |
12189 if (this.members.containsKey(name)) { | 12405 if (this.members.containsKey(name)) { |
12190 $globals.world.error(("duplicate field definition of \"" + name + "\""), d
efinition.span); | 12406 $globals.world.error(("duplicate field definition of \"" + name + "\""), d
efinition.span); |
12191 return; | 12407 return; |
12192 } | 12408 } |
12193 var value = null; | 12409 var value = null; |
12194 if (definition.values != null) { | 12410 if (definition.values != null) { |
12195 value = definition.values[i]; | 12411 value = definition.values.$index(i); |
12196 } | 12412 } |
12197 var field = new FieldMember(name, this, definition, value); | 12413 var field = new FieldMember(name, this, definition, value); |
12198 this.members.$setindex(name, field); | 12414 this.members.$setindex(name, field); |
12199 if (this.isNative) { | 12415 if (this.isNative) { |
12200 field.set$isNative(true); | 12416 field.set$isNative(true); |
12201 } | 12417 } |
12202 } | 12418 } |
12203 } | 12419 } |
12204 DefinedType.prototype.getFactory = function(type, constructorName) { | 12420 DefinedType.prototype.getFactory = function(type, constructorName) { |
12205 var ret = this.factories.getFactory(type.name, constructorName); | 12421 var ret = this.factories.getFactory(type.name, constructorName); |
(...skipping 18 matching lines...) Expand all Loading... |
12224 return this._tryCreateDefaultConstructor(constructorName); | 12440 return this._tryCreateDefaultConstructor(constructorName); |
12225 } | 12441 } |
12226 DefinedType.prototype._checkDefaultTypeParams = function() { | 12442 DefinedType.prototype._checkDefaultTypeParams = function() { |
12227 function toList(list) { | 12443 function toList(list) { |
12228 return (list != null ? list : const$0008); | 12444 return (list != null ? list : const$0008); |
12229 } | 12445 } |
12230 var typeDef = this.definition; | 12446 var typeDef = this.definition; |
12231 if (typeDef.defaultType.oldFactory) { | 12447 if (typeDef.defaultType.oldFactory) { |
12232 return; | 12448 return; |
12233 } | 12449 } |
12234 var interfaceParams = toList.call$1(this.typeParameters); | 12450 var interfaceParams = toList(this.typeParameters); |
12235 var defaultParams = toList.call$1(typeDef.defaultType.typeParameters); | 12451 var defaultParams = toList(typeDef.defaultType.typeParameters); |
12236 var classParams = toList.call$1(this.defaultType.typeParameters); | 12452 var classParams = toList(this.defaultType.typeParameters); |
12237 if ($ne(interfaceParams.get$length(), defaultParams.get$length()) || $ne(defau
ltParams.get$length(), classParams.get$length())) { | 12453 if ($ne(interfaceParams.get$length(), defaultParams.get$length()) || $ne(defau
ltParams.get$length(), classParams.get$length())) { |
12238 $globals.world.error("\"default\" must have the same number of type paramete
rs as the class and interface do", this.get$span(), typeDef.defaultType.span, th
is.defaultType.get$span()); | 12454 $globals.world.error("\"default\" must have the same number of type paramete
rs as the class and interface do", this.get$span(), typeDef.defaultType.span, th
is.defaultType.get$span()); |
12239 return; | 12455 return; |
12240 } | 12456 } |
12241 for (var i = (0); | 12457 for (var i = (0); |
12242 i < interfaceParams.get$length(); i++) { | 12458 i < interfaceParams.get$length(); i++) { |
12243 var ip = interfaceParams.$index(i); | 12459 var ip = interfaceParams.$index(i); |
12244 var dp = defaultParams.$index(i); | 12460 var dp = defaultParams.$index(i); |
12245 var cp = classParams.$index(i); | 12461 var cp = classParams.$index(i); |
12246 dp.resolve$0(); | 12462 dp.resolve$0(); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12298 } | 12514 } |
12299 DefinedType.prototype.resolveTypeParams = function(inType) { | 12515 DefinedType.prototype.resolveTypeParams = function(inType) { |
12300 return this; | 12516 return this; |
12301 } | 12517 } |
12302 DefinedType.prototype.getOrMakeConcreteType = function(typeArgs) { | 12518 DefinedType.prototype.getOrMakeConcreteType = function(typeArgs) { |
12303 var jsnames = []; | 12519 var jsnames = []; |
12304 var names = []; | 12520 var names = []; |
12305 var typeMap = new HashMapImplementation(); | 12521 var typeMap = new HashMapImplementation(); |
12306 for (var i = (0); | 12522 for (var i = (0); |
12307 i < typeArgs.get$length(); i++) { | 12523 i < typeArgs.get$length(); i++) { |
12308 var paramName = this.typeParameters[i].get$name(); | 12524 var paramName = this.typeParameters.$index(i).get$name(); |
12309 typeMap.$setindex(paramName, typeArgs[i]); | 12525 typeMap.$setindex(paramName, typeArgs.$index(i)); |
12310 names.add$1(typeArgs[i].get$name()); | 12526 names.add$1(typeArgs.$index(i).get$name()); |
12311 jsnames.add$1(typeArgs[i].get$jsname()); | 12527 jsnames.add$1(typeArgs.$index(i).get$jsname()); |
12312 } | 12528 } |
12313 var jsname = ("" + this.get$jsname() + "_" + Strings.join(jsnames, "$")); | 12529 var jsname = ("" + this.get$jsname() + "_" + Strings.join(jsnames, "$")); |
12314 var simpleName = ("" + this.name + "<" + Strings.join(names, ", ") + ">"); | 12530 var simpleName = ("" + this.name + "<" + Strings.join(names, ", ") + ">"); |
12315 var key = Strings.join(names, "$"); | 12531 var key = Strings.join(names, "$"); |
12316 var ret = this._concreteTypes.$index(key); | 12532 var ret = this._concreteTypes.$index(key); |
12317 if (ret == null) { | 12533 if (ret == null) { |
12318 ret = new ConcreteType(simpleName, this, typeMap, typeArgs); | 12534 ret = new ConcreteType(simpleName, this, typeMap, typeArgs); |
12319 ret.set$_jsname(jsname); | 12535 ret.set$_jsname(jsname); |
12320 this._concreteTypes.$setindex(key, ret); | 12536 this._concreteTypes.$setindex(key, ret); |
12321 } | 12537 } |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12384 } | 12600 } |
12385 FixedCollection.prototype.every = function(f) { | 12601 FixedCollection.prototype.every = function(f) { |
12386 return Collections.every(this, f); | 12602 return Collections.every(this, f); |
12387 } | 12603 } |
12388 FixedCollection.prototype.some = function(f) { | 12604 FixedCollection.prototype.some = function(f) { |
12389 return Collections.some(this, f); | 12605 return Collections.some(this, f); |
12390 } | 12606 } |
12391 FixedCollection.prototype.isEmpty = function() { | 12607 FixedCollection.prototype.isEmpty = function() { |
12392 return this.length == (0); | 12608 return this.length == (0); |
12393 } | 12609 } |
| 12610 FixedCollection.prototype.every$1 = function($0) { |
| 12611 return this.every(to$call$1($0)); |
| 12612 }; |
12394 FixedCollection.prototype.filter$1 = function($0) { | 12613 FixedCollection.prototype.filter$1 = function($0) { |
12395 return this.filter(to$call$1($0)); | 12614 return this.filter(to$call$1($0)); |
12396 }; | 12615 }; |
12397 FixedCollection.prototype.forEach$1 = function($0) { | 12616 FixedCollection.prototype.forEach$1 = function($0) { |
12398 return this.forEach(to$call$1($0)); | 12617 return this.forEach(to$call$1($0)); |
12399 }; | 12618 }; |
12400 FixedCollection.prototype.isEmpty$0 = FixedCollection.prototype.isEmpty; | 12619 FixedCollection.prototype.isEmpty$0 = FixedCollection.prototype.isEmpty; |
12401 FixedCollection.prototype.iterator$0 = FixedCollection.prototype.iterator; | 12620 FixedCollection.prototype.iterator$0 = FixedCollection.prototype.iterator; |
| 12621 FixedCollection.prototype.some$1 = function($0) { |
| 12622 return this.some(to$call$1($0)); |
| 12623 }; |
12402 // ********** Code for FixedCollection_Type ************** | 12624 // ********** Code for FixedCollection_Type ************** |
12403 $inherits(FixedCollection_Type, FixedCollection); | 12625 $inherits(FixedCollection_Type, FixedCollection); |
12404 function FixedCollection_Type(value, length) { | 12626 function FixedCollection_Type(value, length) { |
12405 this.value = value; | 12627 this.value = value; |
12406 this.length = length; | 12628 this.length = length; |
12407 } | 12629 } |
12408 // ********** Code for FixedIterator ************** | 12630 // ********** Code for FixedIterator ************** |
12409 function FixedIterator(value, length) { | 12631 function FixedIterator(value, length) { |
12410 this.length = length; | 12632 this.length = length; |
12411 this._index = (0); | 12633 this._index = (0); |
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12913 $globals.world.gen.corejs.useThrow = true; | 13135 $globals.world.gen.corejs.useThrow = true; |
12914 return ("$throw(" + result.get$code() + ")"); | 13136 return ("$throw(" + result.get$code() + ")"); |
12915 }) | 13137 }) |
12916 ); | 13138 ); |
12917 } | 13139 } |
12918 if (toType.get$isNum()) toType = $globals.world.numType; | 13140 if (toType.get$isNum()) toType = $globals.world.numType; |
12919 var check; | 13141 var check; |
12920 if (toType.get$isVoid()) { | 13142 if (toType.get$isVoid()) { |
12921 check = ("$assert_void(" + this.get$code() + ")"); | 13143 check = ("$assert_void(" + this.get$code() + ")"); |
12922 if (toType.typeCheckCode == null) { | 13144 if (toType.typeCheckCode == null) { |
12923 toType.typeCheckCode = ("function $assert_void(x) {\n if (x == null) retu
rn null;\n " + throwTypeError.call$1("x") + "\n}"); | 13145 toType.typeCheckCode = ("function $assert_void(x) {\n if (x == null) retu
rn null;\n " + throwTypeError("x") + "\n}"); |
12924 } | 13146 } |
12925 } | 13147 } |
12926 else if ($eq(toType, $globals.world.nonNullBool)) { | 13148 else if ($eq(toType, $globals.world.nonNullBool)) { |
12927 $globals.world.gen.corejs.useNotNullBool = true; | 13149 $globals.world.gen.corejs.useNotNullBool = true; |
12928 check = ("$notnull_bool(" + this.get$code() + ")"); | 13150 check = ("$notnull_bool(" + this.get$code() + ")"); |
12929 } | 13151 } |
12930 else if (toType.get$library().get$isCore() && toType.get$typeofName() != null)
{ | 13152 else if (toType.get$library().get$isCore() && toType.get$typeofName() != null)
{ |
12931 check = ("$assert_" + toType.name + "(" + this.get$code() + ")"); | 13153 check = ("$assert_" + toType.name + "(" + this.get$code() + ")"); |
12932 if (toType.typeCheckCode == null) { | 13154 if (toType.typeCheckCode == null) { |
12933 toType.typeCheckCode = ("function $assert_" + toType.name + "(x) {\n if (
x == null || typeof(x) == \"" + toType.get$typeofName() + "\") return x;\n " +
throwTypeError.call$1("x") + "\n}"); | 13155 toType.typeCheckCode = ("function $assert_" + toType.name + "(x) {\n if (
x == null || typeof(x) == \"" + toType.get$typeofName() + "\") return x;\n " +
throwTypeError("x") + "\n}"); |
12934 } | 13156 } |
12935 } | 13157 } |
12936 else { | 13158 else { |
12937 toType.isChecked = true; | 13159 toType.isChecked = true; |
12938 var checkName = "assert$" + toType.get$jsname(); | 13160 var checkName = "assert$" + toType.get$jsname(); |
12939 var temp = context.getTemp(this); | 13161 var temp = context.getTemp(this); |
12940 check = ("(" + context.assignTemp(temp, this).get$code() + " == null ? null
:"); | 13162 check = ("(" + context.assignTemp(temp, this).get$code() + " == null ? null
:"); |
12941 check = check + (" " + temp.get$code() + "." + checkName + "())"); | 13163 check = check + (" " + temp.get$code() + "." + checkName + "())"); |
12942 if ($ne(this, temp)) context.freeTemp(temp); | 13164 if ($ne(this, temp)) context.freeTemp(temp); |
12943 $globals.world.objectType.varStubs.putIfAbsent(checkName, (function () { | 13165 $globals.world.objectType.varStubs.putIfAbsent(checkName, (function () { |
12944 return new VarMethodStub(checkName, null, Arguments.get$EMPTY(), throwType
Error.call$1("this")); | 13166 return new VarMethodStub(checkName, null, Arguments.get$EMPTY(), throwType
Error("this")); |
12945 }) | 13167 }) |
12946 ); | 13168 ); |
12947 } | 13169 } |
12948 context.counters.typeAsserts++; | 13170 context.counters.typeAsserts++; |
12949 return new Value(toType, check, this.span); | 13171 return new Value(toType, check, this.span); |
12950 } | 13172 } |
12951 Value.prototype.instanceOf = function(context, toType, span, isTrue, forceCheck)
{ | 13173 Value.prototype.instanceOf = function(context, toType, span, isTrue, forceCheck)
{ |
12952 if (toType.get$isVar()) { | 13174 if (toType.get$isVar()) { |
12953 $globals.world.error("can not resolve type", span); | 13175 $globals.world.error("can not resolve type", span); |
12954 } | 13176 } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12998 } | 13220 } |
12999 Value.prototype.invokeNoSuchMethod = function(context, name, node, args) { | 13221 Value.prototype.invokeNoSuchMethod = function(context, name, node, args) { |
13000 if (this.get$isType()) { | 13222 if (this.get$isType()) { |
13001 $globals.world.error(("member lookup failed for \"" + name + "\""), node.spa
n); | 13223 $globals.world.error(("member lookup failed for \"" + name + "\""), node.spa
n); |
13002 } | 13224 } |
13003 var pos = ""; | 13225 var pos = ""; |
13004 if (args != null) { | 13226 if (args != null) { |
13005 var argsCode = []; | 13227 var argsCode = []; |
13006 for (var i = (0); | 13228 for (var i = (0); |
13007 i < args.get$length(); i++) { | 13229 i < args.get$length(); i++) { |
13008 argsCode.add$1(args.values[i].get$code()); | 13230 argsCode.add$1(args.values.$index(i).get$code()); |
13009 } | 13231 } |
13010 pos = Strings.join(argsCode, ", "); | 13232 pos = Strings.join(argsCode, ", "); |
13011 } | 13233 } |
13012 var noSuchArgs = [new Value($globals.world.stringType, ("\"" + name + "\""), n
ode.span), new Value($globals.world.listType, ("[" + pos + "]"), node.span)]; | 13234 var noSuchArgs = [new Value($globals.world.stringType, ("\"" + name + "\""), n
ode.span), new Value($globals.world.listType, ("[" + pos + "]"), node.span)]; |
13013 return this._resolveMember(context, "noSuchMethod", node, false).invoke(contex
t, node, this, new Arguments(null, noSuchArgs), false); | 13235 return this._resolveMember(context, "noSuchMethod", node, false).invoke(contex
t, node, this, new Arguments(null, noSuchArgs), false); |
13014 } | 13236 } |
13015 Value.fromBool = function(value, span) { | 13237 Value.fromBool = function(value, span) { |
13016 return new BoolValue(value, true, span); | 13238 return new BoolValue(value, true, span); |
13017 } | 13239 } |
13018 Value.fromInt = function(value, span) { | 13240 Value.fromInt = function(value, span) { |
(...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13572 function ListValue(values, isConst, type, span) { | 13794 function ListValue(values, isConst, type, span) { |
13573 this.values = values; | 13795 this.values = values; |
13574 EvaluatedValue.call(this, isConst, type, span); | 13796 EvaluatedValue.call(this, isConst, type, span); |
13575 } | 13797 } |
13576 ListValue.prototype.get$code = function() { | 13798 ListValue.prototype.get$code = function() { |
13577 var buf = new StringBufferImpl(""); | 13799 var buf = new StringBufferImpl(""); |
13578 buf.add$1("["); | 13800 buf.add$1("["); |
13579 for (var i = (0); | 13801 for (var i = (0); |
13580 i < this.values.get$length(); i = $add(i, (1))) { | 13802 i < this.values.get$length(); i = $add(i, (1))) { |
13581 if (i > (0)) buf.add$1(", "); | 13803 if (i > (0)) buf.add$1(", "); |
13582 buf.add$1(this.values[i].get$code()); | 13804 buf.add$1(this.values.$index(i).get$code()); |
13583 } | 13805 } |
13584 buf.add$1("]"); | 13806 buf.add$1("]"); |
13585 var listCode = buf.toString$0(); | 13807 var listCode = buf.toString$0(); |
13586 if (!this.isConst) return listCode; | 13808 if (!this.isConst) return listCode; |
13587 var v = new Value($globals.world.listType, listCode, this.span); | 13809 var v = new Value($globals.world.listType, listCode, this.span); |
13588 var immutableListCtor = $globals.world.immutableListType.getConstructor("from"
); | 13810 var immutableListCtor = $globals.world.immutableListType.getConstructor("from"
); |
13589 var result = immutableListCtor.invoke$4(null, null, new TypeValue(v.get$type()
, this.span), new Arguments(null, [v])); | 13811 var result = immutableListCtor.invoke$4(null, null, new TypeValue(v.get$type()
, this.span), new Arguments(null, [v])); |
13590 return result.get$code(); | 13812 return result.get$code(); |
13591 } | 13813 } |
13592 ListValue.prototype.binop = function(kind, other, context, node) { | 13814 ListValue.prototype.binop = function(kind, other, context, node) { |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13684 else { | 13906 else { |
13685 this.fields.$setindex(field, value); | 13907 this.fields.$setindex(field, value); |
13686 } | 13908 } |
13687 } | 13909 } |
13688 } | 13910 } |
13689 ObjectValue.prototype.validateInitialized = function(span) { | 13911 ObjectValue.prototype.validateInitialized = function(span) { |
13690 var buf = new StringBufferImpl(""); | 13912 var buf = new StringBufferImpl(""); |
13691 buf.add$1("Object.create("); | 13913 buf.add$1("Object.create("); |
13692 buf.add$1(("" + this.get$type().get$jsname() + ".prototype, ")); | 13914 buf.add$1(("" + this.get$type().get$jsname() + ".prototype, ")); |
13693 buf.add$1("{"); | 13915 buf.add$1("{"); |
13694 var $$list = this.fields.getKeys(); | 13916 var $$list = this.fields.getKeys$0(); |
13695 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 13917 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
13696 var field = $$i.next$0(); | 13918 var field = $$i.next$0(); |
13697 buf.add$1(field.get$name()); | 13919 buf.add$1(field.get$name()); |
13698 buf.add$1(": "); | 13920 buf.add$1(": "); |
13699 buf.add$1("{\"value\": "); | 13921 buf.add$1("{\"value\": "); |
13700 if (this.fields.$index(field) == null) { | 13922 if (this.fields.$index(field) == null) { |
13701 $globals.world.error(("Required field \"" + field.get$name() + "\" was not
initialized"), span, field.get$span()); | 13923 $globals.world.error(("Required field \"" + field.get$name() + "\" was not
initialized"), span, field.get$span()); |
13702 buf.add$1("null"); | 13924 buf.add$1("null"); |
13703 } | 13925 } |
13704 else { | 13926 else { |
(...skipping 25 matching lines...) Expand all Loading... |
13730 // ********** Code for GlobalValue ************** | 13952 // ********** Code for GlobalValue ************** |
13731 $inherits(GlobalValue, Value); | 13953 $inherits(GlobalValue, Value); |
13732 function GlobalValue(type, code, isConst, field, name, exp, span, deps) { | 13954 function GlobalValue(type, code, isConst, field, name, exp, span, deps) { |
13733 this.exp = exp; | 13955 this.exp = exp; |
13734 this.field = field; | 13956 this.field = field; |
13735 this.name = name; | 13957 this.name = name; |
13736 this.dependencies = []; | 13958 this.dependencies = []; |
13737 this.isConst = isConst; | 13959 this.isConst = isConst; |
13738 Value.call(this, type, code, span); | 13960 Value.call(this, type, code, span); |
13739 for (var $$i = 0;$$i < deps.get$length(); $$i++) { | 13961 for (var $$i = 0;$$i < deps.get$length(); $$i++) { |
13740 var dep = deps[$$i]; | 13962 var dep = deps.$index($$i); |
13741 if ((dep instanceof GlobalValue)) { | 13963 if ((dep instanceof GlobalValue)) { |
13742 this.dependencies.add(dep); | 13964 this.dependencies.add(dep); |
13743 this.dependencies.addAll(dep.get$dependencies()); | 13965 this.dependencies.addAll(dep.get$dependencies()); |
13744 } | 13966 } |
13745 } | 13967 } |
13746 } | 13968 } |
13747 GlobalValue.prototype.get$field = function() { return this.field; }; | 13969 GlobalValue.prototype.get$field = function() { return this.field; }; |
13748 GlobalValue.prototype.get$name = function() { return this.name; }; | 13970 GlobalValue.prototype.get$name = function() { return this.name; }; |
13749 GlobalValue.prototype.get$exp = function() { return this.exp; }; | 13971 GlobalValue.prototype.get$exp = function() { return this.exp; }; |
13750 GlobalValue.prototype.get$isConst = function() { return this.isConst; }; | 13972 GlobalValue.prototype.get$isConst = function() { return this.isConst; }; |
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14129 this.printStatus(); | 14351 this.printStatus(); |
14130 return !this.get$hasErrors(); | 14352 return !this.get$hasErrors(); |
14131 } | 14353 } |
14132 World.prototype.runLeg = function() { | 14354 World.prototype.runLeg = function() { |
14133 var $this = this; // closure support | 14355 var $this = this; // closure support |
14134 if (!$globals.options.enableLeg) return false; | 14356 if (!$globals.options.enableLeg) return false; |
14135 if ($globals.legCompile == null) { | 14357 if ($globals.legCompile == null) { |
14136 this.fatal("requested leg enabled, but no leg compiler available"); | 14358 this.fatal("requested leg enabled, but no leg compiler available"); |
14137 } | 14359 } |
14138 var res = this.withTiming("try leg compile", (function () { | 14360 var res = this.withTiming("try leg compile", (function () { |
14139 return $globals.legCompile.call$1($this); | 14361 return $globals.legCompile($this); |
14140 }) | 14362 }) |
14141 ); | 14363 ); |
14142 if (!res && $globals.options.legOnly) { | 14364 if (!res && $globals.options.legOnly) { |
14143 this.fatal(("Leg could not compile " + $globals.options.dartScript)); | 14365 this.fatal(("Leg could not compile " + $globals.options.dartScript)); |
14144 return true; | 14366 return true; |
14145 } | 14367 } |
14146 return res; | 14368 return res; |
14147 } | 14369 } |
14148 World.prototype.runCompilationPhases = function() { | 14370 World.prototype.runCompilationPhases = function() { |
14149 var $this = this; // closure support | 14371 var $this = this; // closure support |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14208 } | 14430 } |
14209 } | 14431 } |
14210 } | 14432 } |
14211 World.prototype.processDartScript = function(script) { | 14433 World.prototype.processDartScript = function(script) { |
14212 if (script == null) script = $globals.options.dartScript; | 14434 if (script == null) script = $globals.options.dartScript; |
14213 var library = this.getOrAddLibrary(script); | 14435 var library = this.getOrAddLibrary(script); |
14214 this.process(); | 14436 this.process(); |
14215 return library; | 14437 return library; |
14216 } | 14438 } |
14217 World.prototype.resolveAll = function() { | 14439 World.prototype.resolveAll = function() { |
14218 var $$list = this.libraries.getValues(); | 14440 var $$list = this.libraries.getValues$0(); |
14219 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 14441 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
14220 var lib = $$i.next$0(); | 14442 var lib = $$i.next$0(); |
14221 lib.resolve$0(); | 14443 lib.resolve$0(); |
14222 } | 14444 } |
14223 var $$list = this.libraries.getValues(); | 14445 var $$list = this.libraries.getValues$0(); |
14224 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { | 14446 for (var $$i = $$list.iterator$0(); $$i.hasNext$0(); ) { |
14225 var lib = $$i.next$0(); | 14447 var lib = $$i.next$0(); |
14226 lib.postResolveChecks$0(); | 14448 lib.postResolveChecks$0(); |
14227 } | 14449 } |
14228 } | 14450 } |
14229 World.prototype.get$resolveAll = function() { | 14451 World.prototype.get$resolveAll = function() { |
14230 return this.resolveAll.bind(this); | 14452 return this.resolveAll.bind(this); |
14231 } | 14453 } |
14232 World.prototype.findMainMethod = function(lib) { | 14454 World.prototype.findMainMethod = function(lib) { |
14233 var main = lib.lookup("main", lib.get$span()); | 14455 var main = lib.lookup("main", lib.get$span()); |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14363 else { | 14585 else { |
14364 $globals.world.error(("Invalid configuration " + this.config)); | 14586 $globals.world.error(("Invalid configuration " + this.config)); |
14365 $throw("Invalid configuration"); | 14587 $throw("Invalid configuration"); |
14366 } | 14588 } |
14367 var ignoreUnrecognizedFlags = false; | 14589 var ignoreUnrecognizedFlags = false; |
14368 var passedLibDir = false; | 14590 var passedLibDir = false; |
14369 this.childArgs = []; | 14591 this.childArgs = []; |
14370 loop: | 14592 loop: |
14371 for (var i = (2); | 14593 for (var i = (2); |
14372 i < args.get$length(); i++) { | 14594 i < args.get$length(); i++) { |
14373 var arg = args[i]; | 14595 var arg = args.$index(i); |
14374 switch (arg) { | 14596 switch (arg) { |
14375 case "--enable_leg": | 14597 case "--enable_leg": |
14376 | 14598 |
14377 this.enableLeg = true; | 14599 this.enableLeg = true; |
14378 break; | 14600 break; |
14379 | 14601 |
14380 case "--leg_only": | 14602 case "--leg_only": |
14381 | 14603 |
14382 this.enableLeg = true; | 14604 this.enableLeg = true; |
14383 this.legOnly = true; | 14605 this.legOnly = true; |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14456 | 14678 |
14457 case "--Xinfer_types": | 14679 case "--Xinfer_types": |
14458 | 14680 |
14459 this.inferTypes = true; | 14681 this.inferTypes = true; |
14460 break; | 14682 break; |
14461 | 14683 |
14462 default: | 14684 default: |
14463 | 14685 |
14464 if (arg.endsWith$1(".dart")) { | 14686 if (arg.endsWith$1(".dart")) { |
14465 this.dartScript = arg; | 14687 this.dartScript = arg; |
14466 this.childArgs = args.getRange(i + (1), args.get$length() - i - (1)); | 14688 this.childArgs = args.getRange$2(i + (1), args.get$length() - i - (1))
; |
14467 break loop; | 14689 break loop; |
14468 } | 14690 } |
14469 else if (arg.startsWith$1("--out=")) { | 14691 else if (arg.startsWith$1("--out=")) { |
14470 this.outfile = arg.substring$1("--out=".length); | 14692 this.outfile = arg.substring$1("--out=".length); |
14471 } | 14693 } |
14472 else if (arg.startsWith$1("--libdir=")) { | 14694 else if (arg.startsWith$1("--libdir=")) { |
14473 this.libDir = arg.substring$1("--libdir=".length); | 14695 this.libDir = arg.substring$1("--libdir=".length); |
14474 passedLibDir = true; | 14696 passedLibDir = true; |
14475 } | 14697 } |
14476 else { | 14698 else { |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14628 ).get$length() >= (1); | 14850 ).get$length() >= (1); |
14629 } | 14851 } |
14630 VarMethodStub.prototype._useDirectCall = function(args) { | 14852 VarMethodStub.prototype._useDirectCall = function(args) { |
14631 if ((this.member instanceof MethodMember) && !this.member.declaringType.get$ha
sNativeSubtypes()) { | 14853 if ((this.member instanceof MethodMember) && !this.member.declaringType.get$ha
sNativeSubtypes()) { |
14632 var method = this.member; | 14854 var method = this.member; |
14633 if (method.needsArgumentConversion(args)) { | 14855 if (method.needsArgumentConversion(args)) { |
14634 return false; | 14856 return false; |
14635 } | 14857 } |
14636 for (var i = args.get$length(); | 14858 for (var i = args.get$length(); |
14637 i < method.parameters.get$length(); i++) { | 14859 i < method.parameters.get$length(); i++) { |
14638 if ($ne(method.parameters[i].get$value().get$code(), "null")) { | 14860 if ($ne(method.parameters.$index(i).get$value().get$code(), "null")) { |
14639 return false; | 14861 return false; |
14640 } | 14862 } |
14641 } | 14863 } |
14642 return method.namesInHomePositions(args); | 14864 return method.namesInHomePositions(args); |
14643 } | 14865 } |
14644 else { | 14866 else { |
14645 return false; | 14867 return false; |
14646 } | 14868 } |
14647 } | 14869 } |
14648 VarMethodStub.prototype.generate$1 = VarMethodStub.prototype.generate; | 14870 VarMethodStub.prototype.generate$1 = VarMethodStub.prototype.generate; |
(...skipping 12 matching lines...) Expand all Loading... |
14661 VarMethodSet.prototype.invoke = function(context, node, target, args) { | 14883 VarMethodSet.prototype.invoke = function(context, node, target, args) { |
14662 this._invokeMembers(context, node); | 14884 this._invokeMembers(context, node); |
14663 return VarMember.prototype.invoke.call(this, context, node, target, args); | 14885 return VarMember.prototype.invoke.call(this, context, node, target, args); |
14664 } | 14886 } |
14665 VarMethodSet.prototype._invokeMembers = function(context, node) { | 14887 VarMethodSet.prototype._invokeMembers = function(context, node) { |
14666 if (this.invoked) return; | 14888 if (this.invoked) return; |
14667 this.invoked = true; | 14889 this.invoked = true; |
14668 var hasObjectType = false; | 14890 var hasObjectType = false; |
14669 var $$list = this.members; | 14891 var $$list = this.members; |
14670 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { | 14892 for (var $$i = 0;$$i < $$list.get$length(); $$i++) { |
14671 var member = $$list[$$i]; | 14893 var member = $$list.$index($$i); |
14672 var type = member.get$declaringType(); | 14894 var type = member.get$declaringType(); |
14673 var target = new Value(type, "this", node.span); | 14895 var target = new Value(type, "this", node.span); |
14674 var result = member.invoke$4$isDynamic(context, node, target, this.args, tru
e); | 14896 var result = member.invoke$4$isDynamic(context, node, target, this.args, tru
e); |
14675 var stub = new VarMethodStub(this.name, member, this.args, "return " + resul
t.get$code()); | 14897 var stub = new VarMethodStub(this.name, member, this.args, "return " + resul
t.get$code()); |
14676 type.get$varStubs().$setindex(stub.get$name(), stub); | 14898 type.get$varStubs().$setindex(stub.get$name(), stub); |
14677 if (type.get$isObject()) hasObjectType = true; | 14899 if (type.get$isObject()) hasObjectType = true; |
14678 } | 14900 } |
14679 if (!hasObjectType) { | 14901 if (!hasObjectType) { |
14680 var target = new Value($globals.world.objectType, "this", node.span); | 14902 var target = new Value($globals.world.objectType, "this", node.span); |
14681 var result = target.invokeNoSuchMethod$4(context, this.baseName, node, this.
args); | 14903 var result = target.invokeNoSuchMethod$4(context, this.baseName, node, this.
args); |
(...skipping 10 matching lines...) Expand all Loading... |
14692 function _otherOperator(jsname, op) { | 14914 function _otherOperator(jsname, op) { |
14693 return ("function " + jsname + "(x, y) {\n return (typeof(x) == 'number' && t
ypeof(y) == 'number')\n ? x " + op + " y : x." + jsname + "(y);\n}"); | 14915 return ("function " + jsname + "(x, y) {\n return (typeof(x) == 'number' && t
ypeof(y) == 'number')\n ? x " + op + " y : x." + jsname + "(y);\n}"); |
14694 } | 14916 } |
14695 function map(source, mapper) { | 14917 function map(source, mapper) { |
14696 var result = new Array(); | 14918 var result = new Array(); |
14697 if (!!(source && source.is$List())) { | 14919 if (!!(source && source.is$List())) { |
14698 var list = source; | 14920 var list = source; |
14699 result.set$length(list.get$length()); | 14921 result.set$length(list.get$length()); |
14700 for (var i = (0); | 14922 for (var i = (0); |
14701 i < list.get$length(); i++) { | 14923 i < list.get$length(); i++) { |
14702 result.$setindex(i, mapper.call$1(list[i])); | 14924 result.$setindex(i, mapper(list.$index(i))); |
14703 } | 14925 } |
14704 } | 14926 } |
14705 else { | 14927 else { |
14706 for (var $$i = source.iterator$0(); $$i.hasNext$0(); ) { | 14928 for (var $$i = source.iterator$0(); $$i.hasNext$0(); ) { |
14707 var item = $$i.next$0(); | 14929 var item = $$i.next$0(); |
14708 result.add(mapper.call$1(item)); | 14930 result.add(mapper(item)); |
14709 } | 14931 } |
14710 } | 14932 } |
14711 return result; | 14933 return result; |
14712 } | 14934 } |
14713 function reduce(source, callback, initialValue) { | 14935 function reduce(source, callback, initialValue) { |
14714 var i = source.iterator$0(); | 14936 var i = source.iterator$0(); |
14715 var current = initialValue; | 14937 var current = initialValue; |
14716 if (current == null && i.hasNext$0()) { | 14938 if (current == null && i.hasNext$0()) { |
14717 current = i.next$0(); | 14939 current = i.next$0(); |
14718 } | 14940 } |
14719 while (i.hasNext$0()) { | 14941 while (i.hasNext$0()) { |
14720 current = callback.call$2(current, i.next$0()); | 14942 current = callback.call$2(current, i.next$0()); |
14721 } | 14943 } |
14722 return current; | 14944 return current; |
14723 } | 14945 } |
14724 function orderValuesByKeys(map) { | 14946 function orderValuesByKeys(map) { |
14725 var keys = map.getKeys(); | 14947 var keys = map.getKeys$0(); |
14726 keys.sort((function (x, y) { | 14948 keys.sort((function (x, y) { |
14727 return x.compareTo$1(y); | 14949 return x.compareTo$1(y); |
14728 }) | 14950 }) |
14729 ); | 14951 ); |
14730 var values = []; | 14952 var values = []; |
14731 for (var $$i = 0;$$i < keys.get$length(); $$i++) { | 14953 for (var $$i = 0;$$i < keys.get$length(); $$i++) { |
14732 var k = keys[$$i]; | 14954 var k = keys.$index($$i); |
14733 values.add$1(map.$index(k)); | 14955 values.add$1(map.$index(k)); |
14734 } | 14956 } |
14735 return values; | 14957 return values; |
14736 } | 14958 } |
14737 var world; | 14959 var world; |
14738 var experimentalAwaitPhase; | 14960 var experimentalAwaitPhase; |
14739 var legCompile; | 14961 var legCompile; |
14740 function initializeWorld(files) { | 14962 function initializeWorld(files) { |
14741 $globals.world = new World(files); | 14963 $globals.world = new World(files); |
14742 $globals.world.init(); | 14964 $globals.world.init(); |
(...skipping 16 matching lines...) Expand all Loading... |
14759 if (name0.contains$1("$")) { | 14981 if (name0.contains$1("$")) { |
14760 nameBuilder.add$1(("" + name0.get$length())); | 14982 nameBuilder.add$1(("" + name0.get$length())); |
14761 } | 14983 } |
14762 nameBuilder.add$1(name0); | 14984 nameBuilder.add$1(name0); |
14763 } | 14985 } |
14764 return nameBuilder.toString$0(); | 14986 return nameBuilder.toString$0(); |
14765 } | 14987 } |
14766 // ********** Library minfrog ************** | 14988 // ********** Library minfrog ************** |
14767 // ********** Code for top level ************** | 14989 // ********** Code for top level ************** |
14768 function main() { | 14990 function main() { |
14769 var homedir = path.dirname(fs.realpathSync(get$process().get$argv()[(1)])); | 14991 var homedir = path.dirname(get$fs().realpathSync(get$process().get$argv().$ind
ex((1)))); |
14770 var argv = []; | 14992 var argv = []; |
14771 for (var i = (0); | 14993 for (var i = (0); |
14772 i < get$process().get$argv().get$length(); i++) { | 14994 i < get$process().get$argv().get$length(); i++) { |
14773 argv.add$1(get$process().get$argv()[i]); | 14995 argv.add$1(get$process().get$argv().$index(i)); |
14774 if (i == (1)) { | 14996 if (i == (1)) { |
14775 var terminal = get$process().get$env().$index("TERM"); | 14997 var terminal = get$process().get$env().$index("TERM"); |
14776 if (terminal == null || !terminal.startsWith$1("xterm")) { | 14998 if (terminal == null || !terminal.startsWith$1("xterm")) { |
14777 argv.add$1("--no_colors"); | 14999 argv.add$1("--no_colors"); |
14778 } | 15000 } |
14779 } | 15001 } |
14780 } | 15002 } |
14781 if (compile(homedir, argv, new NodeFileSystem())) { | 15003 if (compile(homedir, argv, new NodeFileSystem())) { |
14782 var code = $globals.world.getGeneratedCode(); | 15004 var code = $globals.world.getGeneratedCode(); |
14783 if ($globals.options.compileOnly) { | 15005 if ($globals.options.compileOnly) { |
(...skipping 18 matching lines...) Expand all Loading... |
14802 /** Implements extends for generic types. */ | 15024 /** Implements extends for generic types. */ |
14803 function $inheritsMembers(child, parent) { | 15025 function $inheritsMembers(child, parent) { |
14804 child = child.prototype; | 15026 child = child.prototype; |
14805 parent = parent.prototype; | 15027 parent = parent.prototype; |
14806 Object.getOwnPropertyNames(parent).forEach(function(name) { | 15028 Object.getOwnPropertyNames(parent).forEach(function(name) { |
14807 if (typeof(child[name]) == 'undefined') child[name] = parent[name]; | 15029 if (typeof(child[name]) == 'undefined') child[name] = parent[name]; |
14808 }); | 15030 }); |
14809 } | 15031 } |
14810 $inheritsMembers(_DoubleLinkedQueueEntrySentinel_E, DoubleLinkedQueueEntry_E); | 15032 $inheritsMembers(_DoubleLinkedQueueEntrySentinel_E, DoubleLinkedQueueEntry_E); |
14811 $inheritsMembers(_DoubleLinkedQueueEntrySentinel_KeyValuePair_K$V, DoubleLinkedQ
ueueEntry_KeyValuePair_K$V); | 15033 $inheritsMembers(_DoubleLinkedQueueEntrySentinel_KeyValuePair_K$V, DoubleLinkedQ
ueueEntry_KeyValuePair_K$V); |
| 15034 $inheritsMembers(NativeMapPrimitiveValue_dart_core_String, NativeMapBase_dart_co
re_String); |
14812 $inheritsMembers(_SharedBackingMap_K$V, HashMapImplementation_K$V); | 15035 $inheritsMembers(_SharedBackingMap_K$V, HashMapImplementation_K$V); |
14813 $inheritsMembers(_SharedBackingMap_dart_core_String$VariableValue, HashMapImplem
entation_dart_core_String$VariableValue); | 15036 $inheritsMembers(_SharedBackingMap_dart_core_String$VariableValue, HashMapImplem
entation_dart_core_String$VariableValue); |
14814 // 1 dynamic types. | 15037 // 1 dynamic types. |
14815 // 1 types | 15038 // 1 types |
14816 // 0 !leaf | 15039 // 0 !leaf |
14817 // ********** Globals ************** | 15040 // ********** Globals ************** |
14818 function $static_init(){ | 15041 function $static_init(){ |
14819 $globals._GREEN_COLOR = "\x1b[32m"; | 15042 $globals._GREEN_COLOR = "\x1b[32m"; |
14820 $globals._MAGENTA_COLOR = "\x1b[35m"; | 15043 $globals._MAGENTA_COLOR = "\x1b[35m"; |
14821 $globals._NO_COLOR = "\x1b[0m"; | 15044 $globals._NO_COLOR = "\x1b[0m"; |
14822 $globals._RED_COLOR = "\x1b[31m"; | 15045 $globals._RED_COLOR = "\x1b[31m"; |
14823 } | 15046 } |
14824 var const$0000 = Object.create(EmptyQueueException.prototype, {}); | 15047 var const$0000 = Object.create(EmptyQueueException.prototype, {}); |
14825 var const$0001 = Object.create(_DeletedKeySentinel.prototype, {}); | 15048 var const$0001 = Object.create(_DeletedKeySentinel.prototype, {}); |
14826 var const$0005 = Object.create(NoMoreElementsException.prototype, {}); | 15049 var const$0005 = Object.create(NoMoreElementsException.prototype, {}); |
14827 var const$0007 = Object.create(IllegalAccessException.prototype, {}); | 15050 var const$0007 = Object.create(IllegalAccessException.prototype, {}); |
14828 var const$0008 = ImmutableList.ImmutableList$from$factory([]); | 15051 var const$0008 = ImmutableList.ImmutableList$from$factory([]); |
14829 var $globals = {}; | 15052 var $globals = {}; |
14830 $static_init(); | 15053 $static_init(); |
14831 main(); | 15054 main(); |
OLD | NEW |