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

Side by Side Diff: lib/runtime/dart/_js_helper.js

Issue 1047023002: use == and != to enable handling null/undefined (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/runtime/dart/_isolate_helper.js ('k') | lib/runtime/dart/_native_typed_data.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 var _js_helper; 1 var _js_helper;
2 (function(exports) { 2 (function(exports) {
3 'use strict'; 3 'use strict';
4 class NoSideEffects extends core.Object { 4 class NoSideEffects extends core.Object {
5 NoSideEffects() { 5 NoSideEffects() {
6 } 6 }
7 } 7 }
8 class NoThrows extends core.Object { 8 class NoThrows extends core.Object {
9 NoThrows() { 9 NoThrows() {
10 } 10 }
(...skipping 12 matching lines...) Expand all
23 this.name = name; 23 this.name = name;
24 } 24 }
25 } 25 }
26 let _$ = Symbol('_'); 26 let _$ = Symbol('_');
27 let _throwUnmodifiable = Symbol('_throwUnmodifiable'); 27 let _throwUnmodifiable = Symbol('_throwUnmodifiable');
28 let ConstantMap$ = dart.generic(function(K, V) { 28 let ConstantMap$ = dart.generic(function(K, V) {
29 class ConstantMap extends core.Object { 29 class ConstantMap extends core.Object {
30 [_$]() { 30 [_$]() {
31 } 31 }
32 get isEmpty() { 32 get isEmpty() {
33 return this.length === 0; 33 return this.length == 0;
34 } 34 }
35 get isNotEmpty() { 35 get isNotEmpty() {
36 return !dart.notNull(this.isEmpty); 36 return !dart.notNull(this.isEmpty);
37 } 37 }
38 toString() { 38 toString() {
39 return collection.Maps.mapToString(this); 39 return collection.Maps.mapToString(this);
40 } 40 }
41 [_throwUnmodifiable]() { 41 [_throwUnmodifiable]() {
42 throw new core.UnsupportedError("Cannot modify unmodifiable Map"); 42 throw new core.UnsupportedError("Cannot modify unmodifiable Map");
43 } 43 }
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 } 182 }
183 get length() { 183 get length() {
184 return this[_getMap]().length; 184 return this[_getMap]().length;
185 } 185 }
186 } 186 }
187 return GeneralConstantMap; 187 return GeneralConstantMap;
188 }); 188 });
189 let GeneralConstantMap = GeneralConstantMap$(dart.dynamic, dart.dynamic); 189 let GeneralConstantMap = GeneralConstantMap$(dart.dynamic, dart.dynamic);
190 // Function contains: (String, String) → bool 190 // Function contains: (String, String) → bool
191 function contains(userAgent, name) { 191 function contains(userAgent, name) {
192 return userAgent.indexOf(name) !== -1; 192 return userAgent.indexOf(name) != -1;
193 } 193 }
194 // Function arrayLength: (List<dynamic>) → int 194 // Function arrayLength: (List<dynamic>) → int
195 function arrayLength(array) { 195 function arrayLength(array) {
196 return array.length; 196 return array.length;
197 } 197 }
198 // Function arrayGet: (List<dynamic>, int) → dynamic 198 // Function arrayGet: (List<dynamic>, int) → dynamic
199 function arrayGet(array, index) { 199 function arrayGet(array, index) {
200 return array[index]; 200 return array[index];
201 } 201 }
202 // Function arraySet: (List<dynamic>, int, dynamic) → void 202 // Function arraySet: (List<dynamic>, int, dynamic) → void
(...skipping 14 matching lines...) Expand all
217 } 217 }
218 // Function getPropertyFromPrototype: (dynamic, String) → dynamic 218 // Function getPropertyFromPrototype: (dynamic, String) → dynamic
219 function getPropertyFromPrototype(object, name) { 219 function getPropertyFromPrototype(object, name) {
220 return Object.getPrototypeOf(object)[name]; 220 return Object.getPrototypeOf(object)[name];
221 } 221 }
222 exports.getTagFunction = null; 222 exports.getTagFunction = null;
223 exports.alternateTagFunction = null; 223 exports.alternateTagFunction = null;
224 exports.prototypeForTagFunction = null; 224 exports.prototypeForTagFunction = null;
225 // Function toStringForNativeObject: (dynamic) → String 225 // Function toStringForNativeObject: (dynamic) → String
226 function toStringForNativeObject(obj) { 226 function toStringForNativeObject(obj) {
227 let name = exports.getTagFunction === null ? '<Unknown>' : dart.dinvokef(exp orts.getTagFunction, obj); 227 let name = exports.getTagFunction == null ? '<Unknown>' : dart.dinvokef(expo rts.getTagFunction, obj);
228 return `Instance of ${name}`; 228 return `Instance of ${name}`;
229 } 229 }
230 // Function hashCodeForNativeObject: (dynamic) → int 230 // Function hashCodeForNativeObject: (dynamic) → int
231 function hashCodeForNativeObject(object) { 231 function hashCodeForNativeObject(object) {
232 return Primitives.objectHashCode(object); 232 return Primitives.objectHashCode(object);
233 } 233 }
234 // Function defineProperty: (dynamic, String, dynamic) → void 234 // Function defineProperty: (dynamic, String, dynamic) → void
235 function defineProperty(obj, property, value) { 235 function defineProperty(obj, property, value) {
236 Object.defineProperty(obj, property, {value: value, enumerable: false, writa ble: true, configurable: true}); 236 Object.defineProperty(obj, property, {value: value, enumerable: false, writa ble: true, configurable: true});
237 } 237 }
(...skipping 22 matching lines...) Expand all
260 let UNCACHED_MARK = '~'; 260 let UNCACHED_MARK = '~';
261 let INSTANCE_CACHED_MARK = '!'; 261 let INSTANCE_CACHED_MARK = '!';
262 let LEAF_MARK = '-'; 262 let LEAF_MARK = '-';
263 let INTERIOR_MARK = '+'; 263 let INTERIOR_MARK = '+';
264 let DISCRIMINATED_MARK = '*'; 264 let DISCRIMINATED_MARK = '*';
265 // Function lookupAndCacheInterceptor: (dynamic) → dynamic 265 // Function lookupAndCacheInterceptor: (dynamic) → dynamic
266 function lookupAndCacheInterceptor(obj) { 266 function lookupAndCacheInterceptor(obj) {
267 dart.assert(!dart.notNull(isDartObject(obj))); 267 dart.assert(!dart.notNull(isDartObject(obj)));
268 let tag = dart.as(dart.dinvokef(exports.getTagFunction, obj), core.String); 268 let tag = dart.as(dart.dinvokef(exports.getTagFunction, obj), core.String);
269 let record = propertyGet(exports.dispatchRecordsForInstanceTags, tag); 269 let record = propertyGet(exports.dispatchRecordsForInstanceTags, tag);
270 if (record !== null) 270 if (record != null)
271 return patchInstance(obj, record); 271 return patchInstance(obj, record);
272 let interceptor = propertyGet(exports.interceptorsForUncacheableTags, tag); 272 let interceptor = propertyGet(exports.interceptorsForUncacheableTags, tag);
273 if (interceptor !== null) 273 if (interceptor != null)
274 return interceptor; 274 return interceptor;
275 let interceptorClass = lookupInterceptor(tag); 275 let interceptorClass = lookupInterceptor(tag);
276 if (interceptorClass === null) { 276 if (interceptorClass == null) {
277 tag = dart.as(dart.dinvokef(exports.alternateTagFunction, obj, tag), core. String); 277 tag = dart.as(dart.dinvokef(exports.alternateTagFunction, obj, tag), core. String);
278 if (tag !== null) { 278 if (tag != null) {
279 record = propertyGet(exports.dispatchRecordsForInstanceTags, tag); 279 record = propertyGet(exports.dispatchRecordsForInstanceTags, tag);
280 if (record !== null) 280 if (record != null)
281 return patchInstance(obj, record); 281 return patchInstance(obj, record);
282 interceptor = propertyGet(exports.interceptorsForUncacheableTags, tag); 282 interceptor = propertyGet(exports.interceptorsForUncacheableTags, tag);
283 if (interceptor !== null) 283 if (interceptor != null)
284 return interceptor; 284 return interceptor;
285 interceptorClass = lookupInterceptor(tag); 285 interceptorClass = lookupInterceptor(tag);
286 } 286 }
287 } 287 }
288 if (interceptorClass === null) { 288 if (interceptorClass == null) {
289 return null; 289 return null;
290 } 290 }
291 interceptor = interceptorClass.prototype; 291 interceptor = interceptorClass.prototype;
292 let mark = tag[0]; 292 let mark = tag[0];
293 if (dart.equals(mark, INSTANCE_CACHED_MARK)) { 293 if (dart.equals(mark, INSTANCE_CACHED_MARK)) {
294 record = makeLeafDispatchRecord(interceptor); 294 record = makeLeafDispatchRecord(interceptor);
295 propertySet(exports.dispatchRecordsForInstanceTags, tag, record); 295 propertySet(exports.dispatchRecordsForInstanceTags, tag, record);
296 return patchInstance(obj, record); 296 return patchInstance(obj, record);
297 } 297 }
298 if (dart.equals(mark, UNCACHED_MARK)) { 298 if (dart.equals(mark, UNCACHED_MARK)) {
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 function setNativeSubclassDispatchRecord(proto, interceptor) { 352 function setNativeSubclassDispatchRecord(proto, interceptor) {
353 _interceptors.setDispatchProperty(proto, makeLeafDispatchRecord(interceptor) ); 353 _interceptors.setDispatchProperty(proto, makeLeafDispatchRecord(interceptor) );
354 } 354 }
355 // Function constructorNameFallback: (dynamic) → String 355 // Function constructorNameFallback: (dynamic) → String
356 function constructorNameFallback(object) { 356 function constructorNameFallback(object) {
357 return _constructorNameFallback(object); 357 return _constructorNameFallback(object);
358 } 358 }
359 exports.initNativeDispatchFlag = null; 359 exports.initNativeDispatchFlag = null;
360 // Function initNativeDispatch: () → void 360 // Function initNativeDispatch: () → void
361 function initNativeDispatch() { 361 function initNativeDispatch() {
362 if (true === exports.initNativeDispatchFlag) 362 if (dart.equals(true, exports.initNativeDispatchFlag))
363 return; 363 return;
364 exports.initNativeDispatchFlag = true; 364 exports.initNativeDispatchFlag = true;
365 initNativeDispatchContinue(); 365 initNativeDispatchContinue();
366 } 366 }
367 // Function initNativeDispatchContinue: () → void 367 // Function initNativeDispatchContinue: () → void
368 function initNativeDispatchContinue() { 368 function initNativeDispatchContinue() {
369 exports.dispatchRecordsForInstanceTags = Object.create(null); 369 exports.dispatchRecordsForInstanceTags = Object.create(null);
370 exports.interceptorsForUncacheableTags = Object.create(null); 370 exports.interceptorsForUncacheableTags = Object.create(null);
371 initHooks(); 371 initHooks();
372 let map = exports.interceptorsByTag; 372 let map = exports.interceptorsByTag;
373 let tags = Object.getOwnPropertyNames(map); 373 let tags = Object.getOwnPropertyNames(map);
374 if (typeof window != "undefined") { 374 if (typeof window != "undefined") {
375 let context = window; 375 let context = window;
376 let fun = function() { 376 let fun = function() {
377 }; 377 };
378 for (let i = 0; i['<'](dart.dload(tags, 'length')); i = dart.notNull(i) + 1) { 378 for (let i = 0; i['<'](dart.dload(tags, 'length')); i = dart.notNull(i) + 1) {
379 let tag = dart.dindex(tags, i); 379 let tag = dart.dindex(tags, i);
380 let proto = dart.dinvokef(exports.prototypeForTagFunction, tag); 380 let proto = dart.dinvokef(exports.prototypeForTagFunction, tag);
381 if (proto !== null) { 381 if (proto != null) {
382 let interceptorClass = map[tag]; 382 let interceptorClass = map[tag];
383 let record = makeDefaultDispatchRecord(tag, interceptorClass, proto); 383 let record = makeDefaultDispatchRecord(tag, interceptorClass, proto);
384 if (record !== null) { 384 if (record != null) {
385 _interceptors.setDispatchProperty(proto, record); 385 _interceptors.setDispatchProperty(proto, record);
386 fun.prototype = proto; 386 fun.prototype = proto;
387 } 387 }
388 } 388 }
389 } 389 }
390 } 390 }
391 for (let i = 0; i['<'](dart.dload(tags, 'length')); i = dart.notNull(i) + 1) { 391 for (let i = 0; i['<'](dart.dload(tags, 'length')); i = dart.notNull(i) + 1) {
392 let tag = tags[i]; 392 let tag = tags[i];
393 if (/^[A-Za-z_]/.test(tag)) { 393 if (/^[A-Za-z_]/.test(tag)) {
394 let interceptorClass = propertyGet(map, tag); 394 let interceptorClass = propertyGet(map, tag);
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 } 477 }
478 JSSyntaxRegExp(source, opts) { 478 JSSyntaxRegExp(source, opts) {
479 let multiLine = opts && 'multiLine' in opts ? opts.multiLine : false; 479 let multiLine = opts && 'multiLine' in opts ? opts.multiLine : false;
480 let caseSensitive = opts && 'caseSensitive' in opts ? opts.caseSensitive : true; 480 let caseSensitive = opts && 'caseSensitive' in opts ? opts.caseSensitive : true;
481 this.pattern = source; 481 this.pattern = source;
482 this[_nativeRegExp] = JSSyntaxRegExp.makeNative(source, multiLine, caseSen sitive, false); 482 this[_nativeRegExp] = JSSyntaxRegExp.makeNative(source, multiLine, caseSen sitive, false);
483 this[_nativeGlobalRegExp] = null; 483 this[_nativeGlobalRegExp] = null;
484 this[_nativeAnchoredRegExp] = null; 484 this[_nativeAnchoredRegExp] = null;
485 } 485 }
486 get [_nativeGlobalVersion]() { 486 get [_nativeGlobalVersion]() {
487 if (this[_nativeGlobalRegExp] !== null) 487 if (this[_nativeGlobalRegExp] != null)
488 return this[_nativeGlobalRegExp]; 488 return this[_nativeGlobalRegExp];
489 return this[_nativeGlobalRegExp] = JSSyntaxRegExp.makeNative(this.pattern, this[_isMultiLine], this[_isCaseSensitive], true); 489 return this[_nativeGlobalRegExp] = JSSyntaxRegExp.makeNative(this.pattern, this[_isMultiLine], this[_isCaseSensitive], true);
490 } 490 }
491 get [_nativeAnchoredVersion]() { 491 get [_nativeAnchoredVersion]() {
492 if (this[_nativeAnchoredRegExp] !== null) 492 if (this[_nativeAnchoredRegExp] != null)
493 return this[_nativeAnchoredRegExp]; 493 return this[_nativeAnchoredRegExp];
494 return this[_nativeAnchoredRegExp] = JSSyntaxRegExp.makeNative(`${this.pat tern}|()`, this[_isMultiLine], this[_isCaseSensitive], true); 494 return this[_nativeAnchoredRegExp] = JSSyntaxRegExp.makeNative(`${this.pat tern}|()`, this[_isMultiLine], this[_isCaseSensitive], true);
495 } 495 }
496 get [_isMultiLine]() { 496 get [_isMultiLine]() {
497 return this[_nativeRegExp].multiline; 497 return this[_nativeRegExp].multiline;
498 } 498 }
499 get [_isCaseSensitive]() { 499 get [_isCaseSensitive]() {
500 return !this[_nativeRegExp].ignoreCase; 500 return !this[_nativeRegExp].ignoreCase;
501 } 501 }
502 static makeNative(source, multiLine, caseSensitive, global) { 502 static makeNative(source, multiLine, caseSensitive, global) {
503 checkString(source); 503 checkString(source);
504 let m = multiLine ? 'm' : ''; 504 let m = multiLine ? 'm' : '';
505 let i = caseSensitive ? '' : 'i'; 505 let i = caseSensitive ? '' : 'i';
506 let g = global ? 'g' : ''; 506 let g = global ? 'g' : '';
507 let regexp = function() { 507 let regexp = function() {
508 try { 508 try {
509 return new RegExp(source, m + i + g); 509 return new RegExp(source, m + i + g);
510 } catch (e) { 510 } catch (e) {
511 return e; 511 return e;
512 } 512 }
513 513
514 }(); 514 }();
515 if (regexp instanceof RegExp) 515 if (regexp instanceof RegExp)
516 return regexp; 516 return regexp;
517 let errorMessage = String(regexp); 517 let errorMessage = String(regexp);
518 throw new core.FormatException(`Illegal RegExp pattern: ${source}, ${error Message}`); 518 throw new core.FormatException(`Illegal RegExp pattern: ${source}, ${error Message}`);
519 } 519 }
520 firstMatch(string) { 520 firstMatch(string) {
521 let m = dart.as(this[_nativeRegExp].exec(checkString(string)), core.List$( core.String)); 521 let m = dart.as(this[_nativeRegExp].exec(checkString(string)), core.List$( core.String));
522 if (m === null) 522 if (m == null)
523 return null; 523 return null;
524 return new _MatchImplementation(this, m); 524 return new _MatchImplementation(this, m);
525 } 525 }
526 hasMatch(string) { 526 hasMatch(string) {
527 return this[_nativeRegExp].test(checkString(string)); 527 return this[_nativeRegExp].test(checkString(string));
528 } 528 }
529 stringMatch(string) { 529 stringMatch(string) {
530 let match = this.firstMatch(string); 530 let match = this.firstMatch(string);
531 if (match !== null) 531 if (match != null)
532 return match.group(0); 532 return match.group(0);
533 return null; 533 return null;
534 } 534 }
535 allMatches(string, start) { 535 allMatches(string, start) {
536 if (start === void 0) 536 if (start === void 0)
537 start = 0; 537 start = 0;
538 checkString(string); 538 checkString(string);
539 checkInt(start); 539 checkInt(start);
540 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(string.l ength)) { 540 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(string.l ength)) {
541 throw new core.RangeError.range(start, 0, string.length); 541 throw new core.RangeError.range(start, 0, string.length);
542 } 542 }
543 return new _AllMatchesIterable(this, string, start); 543 return new _AllMatchesIterable(this, string, start);
544 } 544 }
545 [_execGlobal](string, start) { 545 [_execGlobal](string, start) {
546 let regexp = this[_nativeGlobalVersion]; 546 let regexp = this[_nativeGlobalVersion];
547 regexp.lastIndex = start; 547 regexp.lastIndex = start;
548 let match = dart.as(regexp.exec(string), core.List); 548 let match = dart.as(regexp.exec(string), core.List);
549 if (match === null) 549 if (match == null)
550 return null; 550 return null;
551 return new _MatchImplementation(this, dart.as(match, core.List$(core.Strin g))); 551 return new _MatchImplementation(this, dart.as(match, core.List$(core.Strin g)));
552 } 552 }
553 [_execAnchored](string, start) { 553 [_execAnchored](string, start) {
554 let regexp = this[_nativeAnchoredVersion]; 554 let regexp = this[_nativeAnchoredVersion];
555 regexp.lastIndex = start; 555 regexp.lastIndex = start;
556 let match = dart.as(regexp.exec(string), core.List); 556 let match = dart.as(regexp.exec(string), core.List);
557 if (match === null) 557 if (match == null)
558 return null; 558 return null;
559 if (match.get(dart.notNull(match.length) - 1) !== null) 559 if (match.get(dart.notNull(match.length) - 1) != null)
560 return null; 560 return null;
561 match.length = 1; 561 match.length = 1;
562 return new _MatchImplementation(this, dart.as(match, core.List$(core.Strin g))); 562 return new _MatchImplementation(this, dart.as(match, core.List$(core.Strin g)));
563 } 563 }
564 matchAsPrefix(string, start) { 564 matchAsPrefix(string, start) {
565 if (start === void 0) 565 if (start === void 0)
566 start = 0; 566 start = 0;
567 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(string.l ength)) { 567 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(string.l ength)) {
568 throw new core.RangeError.range(start, 0, string.length); 568 throw new core.RangeError.range(start, 0, string.length);
569 } 569 }
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 _AllMatchesIterator(regExp$, string$, nextIndex$) { 631 _AllMatchesIterator(regExp$, string$, nextIndex$) {
632 this[_regExp] = regExp$; 632 this[_regExp] = regExp$;
633 this[_string] = string$; 633 this[_string] = string$;
634 this[_nextIndex] = nextIndex$; 634 this[_nextIndex] = nextIndex$;
635 this[_current] = null; 635 this[_current] = null;
636 } 636 }
637 get current() { 637 get current() {
638 return this[_current]; 638 return this[_current];
639 } 639 }
640 moveNext() { 640 moveNext() {
641 if (this[_string] === null) 641 if (this[_string] == null)
642 return false; 642 return false;
643 if (dart.notNull(this[_nextIndex]) <= dart.notNull(this[_string].length)) { 643 if (dart.notNull(this[_nextIndex]) <= dart.notNull(this[_string].length)) {
644 let match = this[_regExp]._execGlobal(this[_string], this[_nextIndex]); 644 let match = this[_regExp]._execGlobal(this[_string], this[_nextIndex]);
645 if (match !== null) { 645 if (match != null) {
646 this[_current] = match; 646 this[_current] = match;
647 let nextIndex = match.end; 647 let nextIndex = match.end;
648 if (match.start === nextIndex) { 648 if (match.start == nextIndex) {
649 nextIndex = dart.notNull(nextIndex) + 1; 649 nextIndex = dart.notNull(nextIndex) + 1;
650 } 650 }
651 this[_nextIndex] = nextIndex; 651 this[_nextIndex] = nextIndex;
652 return true; 652 return true;
653 } 653 }
654 } 654 }
655 this[_current] = null; 655 this[_current] = null;
656 this[_string] = null; 656 this[_string] = null;
657 return false; 657 return false;
658 } 658 }
(...skipping 11 matching lines...) Expand all
670 get end() { 670 get end() {
671 return dart.notNull(this.start) + dart.notNull(this.pattern.length); 671 return dart.notNull(this.start) + dart.notNull(this.pattern.length);
672 } 672 }
673 get(g) { 673 get(g) {
674 return this.group(g); 674 return this.group(g);
675 } 675 }
676 get groupCount() { 676 get groupCount() {
677 return 0; 677 return 0;
678 } 678 }
679 group(group_) { 679 group(group_) {
680 if (group_ !== 0) { 680 if (group_ != 0) {
681 throw new core.RangeError.value(group_); 681 throw new core.RangeError.value(group_);
682 } 682 }
683 return this.pattern; 683 return this.pattern;
684 } 684 }
685 groups(groups_) { 685 groups(groups_) {
686 let result = new core.List(); 686 let result = new core.List();
687 for (let g of groups_) { 687 for (let g of groups_) {
688 result.add(this.group(g)); 688 result.add(this.group(g));
689 } 689 }
690 return result; 690 return result;
691 } 691 }
692 } 692 }
693 // Function allMatchesInStringUnchecked: (String, String, int) → List<Match> 693 // Function allMatchesInStringUnchecked: (String, String, int) → List<Match>
694 function allMatchesInStringUnchecked(needle, haystack, startIndex) { 694 function allMatchesInStringUnchecked(needle, haystack, startIndex) {
695 let result = new core.List(); 695 let result = new core.List();
696 let length = haystack.length; 696 let length = haystack.length;
697 let patternLength = needle.length; 697 let patternLength = needle.length;
698 while (true) { 698 while (true) {
699 let position = haystack.indexOf(needle, startIndex); 699 let position = haystack.indexOf(needle, startIndex);
700 if (position === -1) { 700 if (position == -1) {
701 break; 701 break;
702 } 702 }
703 result.add(new StringMatch(position, haystack, needle)); 703 result.add(new StringMatch(position, haystack, needle));
704 let endIndex = dart.notNull(position) + dart.notNull(patternLength); 704 let endIndex = dart.notNull(position) + dart.notNull(patternLength);
705 if (endIndex === length) { 705 if (endIndex == length) {
706 break; 706 break;
707 } else if (position === endIndex) { 707 } else if (position == endIndex) {
708 startIndex = dart.notNull(startIndex) + 1; 708 startIndex = dart.notNull(startIndex) + 1;
709 } else { 709 } else {
710 startIndex = endIndex; 710 startIndex = endIndex;
711 } 711 }
712 } 712 }
713 return result; 713 return result;
714 } 714 }
715 // Function stringContainsUnchecked: (dynamic, dynamic, dynamic) → dynamic 715 // Function stringContainsUnchecked: (dynamic, dynamic, dynamic) → dynamic
716 function stringContainsUnchecked(receiver, other, startIndex) { 716 function stringContainsUnchecked(receiver, other, startIndex) {
717 if (typeof other == 'string') { 717 if (typeof other == 'string') {
718 return !dart.equals(dart.dinvoke(receiver, 'indexOf', other, startIndex), -1); 718 return !dart.equals(dart.dinvoke(receiver, 'indexOf', other, startIndex), -1);
719 } else if (dart.is(other, JSSyntaxRegExp)) { 719 } else if (dart.is(other, JSSyntaxRegExp)) {
720 return dart.dinvoke(other, 'hasMatch', dart.dinvoke(receiver, 'substring', startIndex)); 720 return dart.dinvoke(other, 'hasMatch', dart.dinvoke(receiver, 'substring', startIndex));
721 } else { 721 } else {
722 let substr = dart.dinvoke(receiver, 'substring', startIndex); 722 let substr = dart.dinvoke(receiver, 'substring', startIndex);
723 return dart.dload(dart.dinvoke(other, 'allMatches', substr), 'isNotEmpty') ; 723 return dart.dload(dart.dinvoke(other, 'allMatches', substr), 'isNotEmpty') ;
724 } 724 }
725 } 725 }
726 // Function stringReplaceJS: (dynamic, dynamic, dynamic) → dynamic 726 // Function stringReplaceJS: (dynamic, dynamic, dynamic) → dynamic
727 function stringReplaceJS(receiver, replacer, to) { 727 function stringReplaceJS(receiver, replacer, to) {
728 to = to.replace(/\$/g, "$$$$"); 728 to = to.replace(/\$/g, "$$$$");
729 return receiver.replace(replacer, to); 729 return receiver.replace(replacer, to);
730 } 730 }
731 // Function stringReplaceFirstRE: (dynamic, dynamic, dynamic, dynamic) → dynam ic 731 // Function stringReplaceFirstRE: (dynamic, dynamic, dynamic, dynamic) → dynam ic
732 function stringReplaceFirstRE(receiver, regexp, to, startIndex) { 732 function stringReplaceFirstRE(receiver, regexp, to, startIndex) {
733 let match = dart.dinvoke(regexp, '_execGlobal', receiver, startIndex); 733 let match = dart.dinvoke(regexp, '_execGlobal', receiver, startIndex);
734 if (match === null) 734 if (match == null)
735 return receiver; 735 return receiver;
736 let start = dart.dload(match, 'start'); 736 let start = dart.dload(match, 'start');
737 let end = dart.dload(match, 'end'); 737 let end = dart.dload(match, 'end');
738 return `${dart.dinvoke(receiver, 'substring', 0, start)}${to}${dart.dinvoke( receiver, 'substring', end)}`; 738 return `${dart.dinvoke(receiver, 'substring', 0, start)}${to}${dart.dinvoke( receiver, 'substring', end)}`;
739 } 739 }
740 let ESCAPE_REGEXP = '[[\\]{}()*+?.\\\\^$|]'; 740 let ESCAPE_REGEXP = '[[\\]{}()*+?.\\\\^$|]';
741 // Function stringReplaceAllUnchecked: (dynamic, dynamic, dynamic) → dynamic 741 // Function stringReplaceAllUnchecked: (dynamic, dynamic, dynamic) → dynamic
742 function stringReplaceAllUnchecked(receiver, from, to) { 742 function stringReplaceAllUnchecked(receiver, from, to) {
743 checkString(to); 743 checkString(to);
744 if (typeof from == 'string') { 744 if (typeof from == 'string') {
(...skipping 30 matching lines...) Expand all
775 } 775 }
776 // Function _stringIdentity: (String) → String 776 // Function _stringIdentity: (String) → String
777 function _stringIdentity(string) { 777 function _stringIdentity(string) {
778 return string; 778 return string;
779 } 779 }
780 // Function stringReplaceAllFuncUnchecked: (dynamic, dynamic, dynamic, dynamic ) → dynamic 780 // Function stringReplaceAllFuncUnchecked: (dynamic, dynamic, dynamic, dynamic ) → dynamic
781 function stringReplaceAllFuncUnchecked(receiver, pattern, onMatch, onNonMatch) { 781 function stringReplaceAllFuncUnchecked(receiver, pattern, onMatch, onNonMatch) {
782 if (!dart.is(pattern, core.Pattern)) { 782 if (!dart.is(pattern, core.Pattern)) {
783 throw new core.ArgumentError(`${pattern} is not a Pattern`); 783 throw new core.ArgumentError(`${pattern} is not a Pattern`);
784 } 784 }
785 if (onMatch === null) 785 if (onMatch == null)
786 onMatch = _matchString; 786 onMatch = _matchString;
787 if (onNonMatch === null) 787 if (onNonMatch == null)
788 onNonMatch = _stringIdentity; 788 onNonMatch = _stringIdentity;
789 if (typeof pattern == 'string') { 789 if (typeof pattern == 'string') {
790 return stringReplaceAllStringFuncUnchecked(receiver, pattern, onMatch, onN onMatch); 790 return stringReplaceAllStringFuncUnchecked(receiver, pattern, onMatch, onN onMatch);
791 } 791 }
792 let buffer = new core.StringBuffer(); 792 let buffer = new core.StringBuffer();
793 let startIndex = 0; 793 let startIndex = 0;
794 for (let match of dart.dinvoke(pattern, 'allMatches', receiver)) { 794 for (let match of dart.dinvoke(pattern, 'allMatches', receiver)) {
795 buffer.write(dart.dinvokef(onNonMatch, dart.dinvoke(receiver, 'substring', startIndex, match.start))); 795 buffer.write(dart.dinvokef(onNonMatch, dart.dinvoke(receiver, 'substring', startIndex, match.start)));
796 buffer.write(dart.dinvokef(onMatch, match)); 796 buffer.write(dart.dinvokef(onMatch, match));
797 startIndex = match.end; 797 startIndex = match.end;
798 } 798 }
799 buffer.write(dart.dinvokef(onNonMatch, dart.dinvoke(receiver, 'substring', s tartIndex))); 799 buffer.write(dart.dinvokef(onNonMatch, dart.dinvoke(receiver, 'substring', s tartIndex)));
800 return buffer.toString(); 800 return buffer.toString();
801 } 801 }
802 // Function stringReplaceAllEmptyFuncUnchecked: (dynamic, dynamic, dynamic) → dynamic 802 // Function stringReplaceAllEmptyFuncUnchecked: (dynamic, dynamic, dynamic) → dynamic
803 function stringReplaceAllEmptyFuncUnchecked(receiver, onMatch, onNonMatch) { 803 function stringReplaceAllEmptyFuncUnchecked(receiver, onMatch, onNonMatch) {
804 let buffer = new core.StringBuffer(); 804 let buffer = new core.StringBuffer();
805 let length = dart.as(dart.dload(receiver, 'length'), core.int); 805 let length = dart.as(dart.dload(receiver, 'length'), core.int);
806 let i = 0; 806 let i = 0;
807 buffer.write(dart.dinvokef(onNonMatch, "")); 807 buffer.write(dart.dinvokef(onNonMatch, ""));
808 while (dart.notNull(i) < dart.notNull(length)) { 808 while (dart.notNull(i) < dart.notNull(length)) {
809 buffer.write(dart.dinvokef(onMatch, new StringMatch(i, dart.as(receiver, c ore.String), ""))); 809 buffer.write(dart.dinvokef(onMatch, new StringMatch(i, dart.as(receiver, c ore.String), "")));
810 let code = dart.as(dart.dinvoke(receiver, 'codeUnitAt', i), core.int); 810 let code = dart.as(dart.dinvoke(receiver, 'codeUnitAt', i), core.int);
811 if ((dart.notNull(code) & ~1023) === 55296 && dart.notNull(length) > dart. notNull(i) + 1) { 811 if ((dart.notNull(code) & ~1023) == 55296 && dart.notNull(length) > dart.n otNull(i) + 1) {
812 code = dart.as(dart.dinvoke(receiver, 'codeUnitAt', dart.notNull(i) + 1) , core.int); 812 code = dart.as(dart.dinvoke(receiver, 'codeUnitAt', dart.notNull(i) + 1) , core.int);
813 if ((dart.notNull(code) & ~1023) === 56320) { 813 if ((dart.notNull(code) & ~1023) == 56320) {
814 buffer.write(dart.dinvokef(onNonMatch, dart.dinvoke(receiver, 'substri ng', i, dart.notNull(i) + 2))); 814 buffer.write(dart.dinvokef(onNonMatch, dart.dinvoke(receiver, 'substri ng', i, dart.notNull(i) + 2)));
815 i = 2; 815 i = 2;
816 continue; 816 continue;
817 } 817 }
818 } 818 }
819 buffer.write(dart.dinvokef(onNonMatch, dart.dindex(receiver, i))); 819 buffer.write(dart.dinvokef(onNonMatch, dart.dindex(receiver, i)));
820 i = dart.notNull(i) + 1; 820 i = dart.notNull(i) + 1;
821 } 821 }
822 buffer.write(dart.dinvokef(onMatch, new StringMatch(i, dart.as(receiver, cor e.String), ""))); 822 buffer.write(dart.dinvokef(onMatch, new StringMatch(i, dart.as(receiver, cor e.String), "")));
823 buffer.write(dart.dinvokef(onNonMatch, "")); 823 buffer.write(dart.dinvokef(onNonMatch, ""));
824 return buffer.toString(); 824 return buffer.toString();
825 } 825 }
826 // Function stringReplaceAllStringFuncUnchecked: (dynamic, dynamic, dynamic, d ynamic) → dynamic 826 // Function stringReplaceAllStringFuncUnchecked: (dynamic, dynamic, dynamic, d ynamic) → dynamic
827 function stringReplaceAllStringFuncUnchecked(receiver, pattern, onMatch, onNon Match) { 827 function stringReplaceAllStringFuncUnchecked(receiver, pattern, onMatch, onNon Match) {
828 let patternLength = dart.as(dart.dload(pattern, 'length'), core.int); 828 let patternLength = dart.as(dart.dload(pattern, 'length'), core.int);
829 if (patternLength === 0) { 829 if (patternLength == 0) {
830 return stringReplaceAllEmptyFuncUnchecked(receiver, onMatch, onNonMatch); 830 return stringReplaceAllEmptyFuncUnchecked(receiver, onMatch, onNonMatch);
831 } 831 }
832 let length = dart.as(dart.dload(receiver, 'length'), core.int); 832 let length = dart.as(dart.dload(receiver, 'length'), core.int);
833 let buffer = new core.StringBuffer(); 833 let buffer = new core.StringBuffer();
834 let startIndex = 0; 834 let startIndex = 0;
835 while (dart.notNull(startIndex) < dart.notNull(length)) { 835 while (dart.notNull(startIndex) < dart.notNull(length)) {
836 let position = dart.as(dart.dinvoke(receiver, 'indexOf', pattern, startInd ex), core.int); 836 let position = dart.as(dart.dinvoke(receiver, 'indexOf', pattern, startInd ex), core.int);
837 if (position === -1) { 837 if (position == -1) {
838 break; 838 break;
839 } 839 }
840 buffer.write(dart.dinvokef(onNonMatch, dart.dinvoke(receiver, 'substring', startIndex, position))); 840 buffer.write(dart.dinvokef(onNonMatch, dart.dinvoke(receiver, 'substring', startIndex, position)));
841 buffer.write(dart.dinvokef(onMatch, new StringMatch(position, dart.as(rece iver, core.String), dart.as(pattern, core.String)))); 841 buffer.write(dart.dinvokef(onMatch, new StringMatch(position, dart.as(rece iver, core.String), dart.as(pattern, core.String))));
842 startIndex = dart.notNull(position) + dart.notNull(patternLength); 842 startIndex = dart.notNull(position) + dart.notNull(patternLength);
843 } 843 }
844 buffer.write(dart.dinvokef(onNonMatch, dart.dinvoke(receiver, 'substring', s tartIndex))); 844 buffer.write(dart.dinvokef(onNonMatch, dart.dinvoke(receiver, 'substring', s tartIndex)));
845 return buffer.toString(); 845 return buffer.toString();
846 } 846 }
847 // Function stringReplaceFirstUnchecked: (dynamic, dynamic, dynamic, [int]) → dynamic 847 // Function stringReplaceFirstUnchecked: (dynamic, dynamic, dynamic, [int]) → dynamic
848 function stringReplaceFirstUnchecked(receiver, from, to, startIndex) { 848 function stringReplaceFirstUnchecked(receiver, from, to, startIndex) {
849 if (startIndex === void 0) 849 if (startIndex === void 0)
850 startIndex = 0; 850 startIndex = 0;
851 if (typeof from == 'string') { 851 if (typeof from == 'string') {
852 let index = dart.dinvoke(receiver, 'indexOf', from, startIndex); 852 let index = dart.dinvoke(receiver, 'indexOf', from, startIndex);
853 if (dart.dbinary(index, '<', 0)) 853 if (dart.dbinary(index, '<', 0))
854 return receiver; 854 return receiver;
855 return `${dart.dinvoke(receiver, 'substring', 0, index)}${to}` + `${dart.d invoke(receiver, 'substring', dart.dbinary(index, '+', dart.dload(from, 'length' )))}`; 855 return `${dart.dinvoke(receiver, 'substring', 0, index)}${to}` + `${dart.d invoke(receiver, 'substring', dart.dbinary(index, '+', dart.dload(from, 'length' )))}`;
856 } else if (dart.is(from, JSSyntaxRegExp)) { 856 } else if (dart.is(from, JSSyntaxRegExp)) {
857 return startIndex === 0 ? stringReplaceJS(receiver, regExpGetNative(dart.a s(from, JSSyntaxRegExp)), to) : stringReplaceFirstRE(receiver, from, to, startIn dex); 857 return startIndex == 0 ? stringReplaceJS(receiver, regExpGetNative(dart.as (from, JSSyntaxRegExp)), to) : stringReplaceFirstRE(receiver, from, to, startInd ex);
858 } else { 858 } else {
859 checkNull(from); 859 checkNull(from);
860 throw "String.replace(Pattern) UNIMPLEMENTED"; 860 throw "String.replace(Pattern) UNIMPLEMENTED";
861 } 861 }
862 } 862 }
863 // Function stringJoinUnchecked: (dynamic, dynamic) → dynamic 863 // Function stringJoinUnchecked: (dynamic, dynamic) → dynamic
864 function stringJoinUnchecked(array, separator) { 864 function stringJoinUnchecked(array, separator) {
865 return array.join(separator); 865 return array.join(separator);
866 } 866 }
867 // Function createRuntimeType: (String) → Type 867 // Function createRuntimeType: (String) → Type
868 function createRuntimeType(name) { 868 function createRuntimeType(name) {
869 return new TypeImpl(name); 869 return new TypeImpl(name);
870 } 870 }
871 let _typeName = Symbol('_typeName'); 871 let _typeName = Symbol('_typeName');
872 let _unmangledName = Symbol('_unmangledName'); 872 let _unmangledName = Symbol('_unmangledName');
873 class TypeImpl extends core.Object { 873 class TypeImpl extends core.Object {
874 TypeImpl(typeName$) { 874 TypeImpl(typeName$) {
875 this[_typeName] = typeName$; 875 this[_typeName] = typeName$;
876 this[_unmangledName] = null; 876 this[_unmangledName] = null;
877 } 877 }
878 toString() { 878 toString() {
879 if (this[_unmangledName] !== null) 879 if (this[_unmangledName] != null)
880 return this[_unmangledName]; 880 return this[_unmangledName];
881 let unmangledName = _js_names.unmangleAllIdentifiersIfPreservedAnyways(thi s[_typeName]); 881 let unmangledName = _js_names.unmangleAllIdentifiersIfPreservedAnyways(thi s[_typeName]);
882 return this[_unmangledName] = unmangledName; 882 return this[_unmangledName] = unmangledName;
883 } 883 }
884 get hashCode() { 884 get hashCode() {
885 return this[_typeName].hashCode; 885 return this[_typeName].hashCode;
886 } 886 }
887 ['=='](other) { 887 ['=='](other) {
888 return dart.notNull(dart.is(other, TypeImpl)) && dart.notNull(dart.equals( this[_typeName], dart.dload(other, '_typeName'))); 888 return dart.notNull(dart.is(other, TypeImpl)) && dart.notNull(dart.equals( this[_typeName], dart.dload(other, '_typeName')));
889 } 889 }
890 } 890 }
891 class TypeVariable extends core.Object { 891 class TypeVariable extends core.Object {
892 TypeVariable(owner, name, bound) { 892 TypeVariable(owner, name, bound) {
893 this.owner = owner; 893 this.owner = owner;
894 this.name = name; 894 this.name = name;
895 this.bound = bound; 895 this.bound = bound;
896 } 896 }
897 } 897 }
898 // Function getMangledTypeName: (TypeImpl) → dynamic 898 // Function getMangledTypeName: (TypeImpl) → dynamic
899 function getMangledTypeName(type) { 899 function getMangledTypeName(type) {
900 return type[_typeName]; 900 return type[_typeName];
901 } 901 }
902 // Function setRuntimeTypeInfo: (Object, dynamic) → Object 902 // Function setRuntimeTypeInfo: (Object, dynamic) → Object
903 function setRuntimeTypeInfo(target, typeInfo) { 903 function setRuntimeTypeInfo(target, typeInfo) {
904 dart.assert(dart.notNull(typeInfo === null) || dart.notNull(isJsArray(typeIn fo))); 904 dart.assert(dart.notNull(typeInfo == null) || dart.notNull(isJsArray(typeInf o)));
905 if (target !== null) 905 if (target != null)
906 target.$builtinTypeInfo = typeInfo; 906 target.$builtinTypeInfo = typeInfo;
907 return target; 907 return target;
908 } 908 }
909 // Function getRuntimeTypeInfo: (Object) → dynamic 909 // Function getRuntimeTypeInfo: (Object) → dynamic
910 function getRuntimeTypeInfo(target) { 910 function getRuntimeTypeInfo(target) {
911 if (target === null) 911 if (target == null)
912 return null; 912 return null;
913 return target.$builtinTypeInfo; 913 return target.$builtinTypeInfo;
914 } 914 }
915 // Function getRuntimeTypeArguments: (dynamic, dynamic) → dynamic 915 // Function getRuntimeTypeArguments: (dynamic, dynamic) → dynamic
916 function getRuntimeTypeArguments(target, substitutionName) { 916 function getRuntimeTypeArguments(target, substitutionName) {
917 let substitution = getField(target, `${_foreign_helper.JS_OPERATOR_AS_PREFIX ()}${substitutionName}`); 917 let substitution = getField(target, `${_foreign_helper.JS_OPERATOR_AS_PREFIX ()}${substitutionName}`);
918 return substitute(substitution, getRuntimeTypeInfo(target)); 918 return substitute(substitution, getRuntimeTypeInfo(target));
919 } 919 }
920 // Function getRuntimeTypeArgument: (Object, String, int) → dynamic 920 // Function getRuntimeTypeArgument: (Object, String, int) → dynamic
921 function getRuntimeTypeArgument(target, substitutionName, index) { 921 function getRuntimeTypeArgument(target, substitutionName, index) {
922 let arguments$ = getRuntimeTypeArguments(target, substitutionName); 922 let arguments$ = getRuntimeTypeArguments(target, substitutionName);
923 return arguments$ === null ? null : getIndex(arguments$, index); 923 return arguments$ == null ? null : getIndex(arguments$, index);
924 } 924 }
925 // Function getTypeArgumentByIndex: (Object, int) → dynamic 925 // Function getTypeArgumentByIndex: (Object, int) → dynamic
926 function getTypeArgumentByIndex(target, index) { 926 function getTypeArgumentByIndex(target, index) {
927 let rti = getRuntimeTypeInfo(target); 927 let rti = getRuntimeTypeInfo(target);
928 return rti === null ? null : getIndex(rti, index); 928 return rti == null ? null : getIndex(rti, index);
929 } 929 }
930 // Function copyTypeArguments: (Object, Object) → void 930 // Function copyTypeArguments: (Object, Object) → void
931 function copyTypeArguments(source, target) { 931 function copyTypeArguments(source, target) {
932 target.$builtinTypeInfo = source.$builtinTypeInfo; 932 target.$builtinTypeInfo = source.$builtinTypeInfo;
933 } 933 }
934 // Function getClassName: (dynamic) → String 934 // Function getClassName: (dynamic) → String
935 function getClassName(object) { 935 function getClassName(object) {
936 return _interceptors.getInterceptor(object).constructor.builtin$cls; 936 return _interceptors.getInterceptor(object).constructor.builtin$cls;
937 } 937 }
938 // Function getRuntimeTypeAsString: (dynamic, {onTypeVariable: (int) → String} ) → String 938 // Function getRuntimeTypeAsString: (dynamic, {onTypeVariable: (int) → String} ) → String
939 function getRuntimeTypeAsString(runtimeType, opts) { 939 function getRuntimeTypeAsString(runtimeType, opts) {
940 let onTypeVariable = opts && 'onTypeVariable' in opts ? opts.onTypeVariable : null; 940 let onTypeVariable = opts && 'onTypeVariable' in opts ? opts.onTypeVariable : null;
941 dart.assert(isJsArray(runtimeType)); 941 dart.assert(isJsArray(runtimeType));
942 let className = getConstructorName(getIndex(runtimeType, 0)); 942 let className = getConstructorName(getIndex(runtimeType, 0));
943 return `${className}` + `${joinArguments(runtimeType, 1, {onTypeVariable: on TypeVariable})}`; 943 return `${className}` + `${joinArguments(runtimeType, 1, {onTypeVariable: on TypeVariable})}`;
944 } 944 }
945 // Function getConstructorName: (dynamic) → String 945 // Function getConstructorName: (dynamic) → String
946 function getConstructorName(type) { 946 function getConstructorName(type) {
947 return type.builtin$cls; 947 return type.builtin$cls;
948 } 948 }
949 // Function runtimeTypeToString: (dynamic, {onTypeVariable: (int) → String}) → String 949 // Function runtimeTypeToString: (dynamic, {onTypeVariable: (int) → String}) → String
950 function runtimeTypeToString(type, opts) { 950 function runtimeTypeToString(type, opts) {
951 let onTypeVariable = opts && 'onTypeVariable' in opts ? opts.onTypeVariable : null; 951 let onTypeVariable = opts && 'onTypeVariable' in opts ? opts.onTypeVariable : null;
952 if (type === null) { 952 if (type == null) {
953 return 'dynamic'; 953 return 'dynamic';
954 } else if (isJsArray(type)) { 954 } else if (isJsArray(type)) {
955 return getRuntimeTypeAsString(type, {onTypeVariable: onTypeVariable}); 955 return getRuntimeTypeAsString(type, {onTypeVariable: onTypeVariable});
956 } else if (isJsFunction(type)) { 956 } else if (isJsFunction(type)) {
957 return getConstructorName(type); 957 return getConstructorName(type);
958 } else if (typeof type == 'number') { 958 } else if (typeof type == 'number') {
959 if (onTypeVariable === null) { 959 if (onTypeVariable == null) {
960 return dart.as(dart.dinvoke(type, 'toString'), core.String); 960 return dart.as(dart.dinvoke(type, 'toString'), core.String);
961 } else { 961 } else {
962 return onTypeVariable(dart.as(type, core.int)); 962 return onTypeVariable(dart.as(type, core.int));
963 } 963 }
964 } else { 964 } else {
965 return null; 965 return null;
966 } 966 }
967 } 967 }
968 // Function joinArguments: (dynamic, int, {onTypeVariable: (int) → String}) → String 968 // Function joinArguments: (dynamic, int, {onTypeVariable: (int) → String}) → String
969 function joinArguments(types, startIndex, opts) { 969 function joinArguments(types, startIndex, opts) {
970 let onTypeVariable = opts && 'onTypeVariable' in opts ? opts.onTypeVariable : null; 970 let onTypeVariable = opts && 'onTypeVariable' in opts ? opts.onTypeVariable : null;
971 if (types === null) 971 if (types == null)
972 return ''; 972 return '';
973 dart.assert(isJsArray(types)); 973 dart.assert(isJsArray(types));
974 let firstArgument = true; 974 let firstArgument = true;
975 let allDynamic = true; 975 let allDynamic = true;
976 let buffer = new core.StringBuffer(); 976 let buffer = new core.StringBuffer();
977 for (let index = startIndex; dart.notNull(index) < dart.notNull(getLength(ty pes)); index = dart.notNull(index) + 1) { 977 for (let index = startIndex; dart.notNull(index) < dart.notNull(getLength(ty pes)); index = dart.notNull(index) + 1) {
978 if (firstArgument) { 978 if (firstArgument) {
979 firstArgument = false; 979 firstArgument = false;
980 } else { 980 } else {
981 buffer.write(', '); 981 buffer.write(', ');
982 } 982 }
983 let argument = getIndex(types, index); 983 let argument = getIndex(types, index);
984 if (argument !== null) { 984 if (argument != null) {
985 allDynamic = false; 985 allDynamic = false;
986 } 986 }
987 buffer.write(runtimeTypeToString(argument, {onTypeVariable: onTypeVariable })); 987 buffer.write(runtimeTypeToString(argument, {onTypeVariable: onTypeVariable }));
988 } 988 }
989 return allDynamic ? '' : `<${buffer}>`; 989 return allDynamic ? '' : `<${buffer}>`;
990 } 990 }
991 // Function getRuntimeTypeString: (dynamic) → String 991 // Function getRuntimeTypeString: (dynamic) → String
992 function getRuntimeTypeString(object) { 992 function getRuntimeTypeString(object) {
993 let className = getClassName(object); 993 let className = getClassName(object);
994 if (object === null) 994 if (object == null)
995 return className; 995 return className;
996 let typeInfo = object.$builtinTypeInfo; 996 let typeInfo = object.$builtinTypeInfo;
997 return `${className}${joinArguments(typeInfo, 0)}`; 997 return `${className}${joinArguments(typeInfo, 0)}`;
998 } 998 }
999 // Function getRuntimeType: (dynamic) → Type 999 // Function getRuntimeType: (dynamic) → Type
1000 function getRuntimeType(object) { 1000 function getRuntimeType(object) {
1001 let type = getRuntimeTypeString(object); 1001 let type = getRuntimeTypeString(object);
1002 return new TypeImpl(type); 1002 return new TypeImpl(type);
1003 } 1003 }
1004 // Function substitute: (dynamic, dynamic) → dynamic 1004 // Function substitute: (dynamic, dynamic) → dynamic
1005 function substitute(substitution, arguments$) { 1005 function substitute(substitution, arguments$) {
1006 dart.assert(dart.notNull(substitution === null) || dart.notNull(isJsFunction (substitution))); 1006 dart.assert(dart.notNull(substitution == null) || dart.notNull(isJsFunction( substitution)));
1007 dart.assert(dart.notNull(arguments$ === null) || dart.notNull(isJsArray(argu ments$))); 1007 dart.assert(dart.notNull(arguments$ == null) || dart.notNull(isJsArray(argum ents$)));
1008 if (isJsFunction(substitution)) { 1008 if (isJsFunction(substitution)) {
1009 substitution = invoke(substitution, arguments$); 1009 substitution = invoke(substitution, arguments$);
1010 if (isJsArray(substitution)) { 1010 if (isJsArray(substitution)) {
1011 arguments$ = substitution; 1011 arguments$ = substitution;
1012 } else if (isJsFunction(substitution)) { 1012 } else if (isJsFunction(substitution)) {
1013 arguments$ = invoke(substitution, arguments$); 1013 arguments$ = invoke(substitution, arguments$);
1014 } 1014 }
1015 } 1015 }
1016 return arguments$; 1016 return arguments$;
1017 } 1017 }
1018 // Function checkSubtype: (Object, String, List<dynamic>, String) → bool 1018 // Function checkSubtype: (Object, String, List<dynamic>, String) → bool
1019 function checkSubtype(object, isField, checks, asField) { 1019 function checkSubtype(object, isField, checks, asField) {
1020 if (object === null) 1020 if (object == null)
1021 return false; 1021 return false;
1022 let arguments$ = getRuntimeTypeInfo(object); 1022 let arguments$ = getRuntimeTypeInfo(object);
1023 let interceptor = _interceptors.getInterceptor(object); 1023 let interceptor = _interceptors.getInterceptor(object);
1024 let isSubclass = getField(interceptor, isField); 1024 let isSubclass = getField(interceptor, isField);
1025 if (isSubclass === null) 1025 if (isSubclass == null)
1026 return false; 1026 return false;
1027 let substitution = getField(interceptor, asField); 1027 let substitution = getField(interceptor, asField);
1028 return checkArguments(substitution, arguments$, checks); 1028 return checkArguments(substitution, arguments$, checks);
1029 } 1029 }
1030 // Function computeTypeName: (String, List<dynamic>) → String 1030 // Function computeTypeName: (String, List<dynamic>) → String
1031 function computeTypeName(isField, arguments$) { 1031 function computeTypeName(isField, arguments$) {
1032 let prefixLength = _foreign_helper.JS_OPERATOR_IS_PREFIX().length; 1032 let prefixLength = _foreign_helper.JS_OPERATOR_IS_PREFIX().length;
1033 return Primitives.formatType(isField.substring(prefixLength, isField.length) , arguments$); 1033 return Primitives.formatType(isField.substring(prefixLength, isField.length) , arguments$);
1034 } 1034 }
1035 // Function subtypeCast: (Object, String, List<dynamic>, String) → Object 1035 // Function subtypeCast: (Object, String, List<dynamic>, String) → Object
1036 function subtypeCast(object, isField, checks, asField) { 1036 function subtypeCast(object, isField, checks, asField) {
1037 if (dart.notNull(object !== null) && !dart.notNull(checkSubtype(object, isFi eld, checks, asField))) { 1037 if (dart.notNull(object != null) && !dart.notNull(checkSubtype(object, isFie ld, checks, asField))) {
1038 let actualType = Primitives.objectTypeName(object); 1038 let actualType = Primitives.objectTypeName(object);
1039 let typeName = computeTypeName(isField, checks); 1039 let typeName = computeTypeName(isField, checks);
1040 throw new CastErrorImplementation(actualType, typeName); 1040 throw new CastErrorImplementation(actualType, typeName);
1041 } 1041 }
1042 return object; 1042 return object;
1043 } 1043 }
1044 // Function assertSubtype: (Object, String, List<dynamic>, String) → Object 1044 // Function assertSubtype: (Object, String, List<dynamic>, String) → Object
1045 function assertSubtype(object, isField, checks, asField) { 1045 function assertSubtype(object, isField, checks, asField) {
1046 if (dart.notNull(object !== null) && !dart.notNull(checkSubtype(object, isFi eld, checks, asField))) { 1046 if (dart.notNull(object != null) && !dart.notNull(checkSubtype(object, isFie ld, checks, asField))) {
1047 let typeName = computeTypeName(isField, checks); 1047 let typeName = computeTypeName(isField, checks);
1048 throw new TypeErrorImplementation(object, typeName); 1048 throw new TypeErrorImplementation(object, typeName);
1049 } 1049 }
1050 return object; 1050 return object;
1051 } 1051 }
1052 // Function assertIsSubtype: (dynamic, dynamic, String) → dynamic 1052 // Function assertIsSubtype: (dynamic, dynamic, String) → dynamic
1053 function assertIsSubtype(subtype, supertype, message) { 1053 function assertIsSubtype(subtype, supertype, message) {
1054 if (!dart.notNull(isSubtype(subtype, supertype))) { 1054 if (!dart.notNull(isSubtype(subtype, supertype))) {
1055 throwTypeError(message); 1055 throwTypeError(message);
1056 } 1056 }
1057 } 1057 }
1058 // Function throwTypeError: (dynamic) → dynamic 1058 // Function throwTypeError: (dynamic) → dynamic
1059 function throwTypeError(message) { 1059 function throwTypeError(message) {
1060 throw new TypeErrorImplementation.fromMessage(dart.as(message, core.String)) ; 1060 throw new TypeErrorImplementation.fromMessage(dart.as(message, core.String)) ;
1061 } 1061 }
1062 // Function checkArguments: (dynamic, dynamic, dynamic) → bool 1062 // Function checkArguments: (dynamic, dynamic, dynamic) → bool
1063 function checkArguments(substitution, arguments$, checks) { 1063 function checkArguments(substitution, arguments$, checks) {
1064 return areSubtypes(substitute(substitution, arguments$), checks); 1064 return areSubtypes(substitute(substitution, arguments$), checks);
1065 } 1065 }
1066 // Function areSubtypes: (dynamic, dynamic) → bool 1066 // Function areSubtypes: (dynamic, dynamic) → bool
1067 function areSubtypes(s, t) { 1067 function areSubtypes(s, t) {
1068 if (dart.notNull(s === null) || dart.notNull(t === null)) 1068 if (dart.notNull(s == null) || dart.notNull(t == null))
1069 return true; 1069 return true;
1070 dart.assert(isJsArray(s)); 1070 dart.assert(isJsArray(s));
1071 dart.assert(isJsArray(t)); 1071 dart.assert(isJsArray(t));
1072 dart.assert(getLength(s) === getLength(t)); 1072 dart.assert(getLength(s) == getLength(t));
1073 let len = getLength(s); 1073 let len = getLength(s);
1074 for (let i = 0; dart.notNull(i) < dart.notNull(len); i = dart.notNull(i) + 1 ) { 1074 for (let i = 0; dart.notNull(i) < dart.notNull(len); i = dart.notNull(i) + 1 ) {
1075 if (!dart.notNull(isSubtype(getIndex(s, i), getIndex(t, i)))) { 1075 if (!dart.notNull(isSubtype(getIndex(s, i), getIndex(t, i)))) {
1076 return false; 1076 return false;
1077 } 1077 }
1078 } 1078 }
1079 return true; 1079 return true;
1080 } 1080 }
1081 // Function computeSignature: (dynamic, dynamic, dynamic) → dynamic 1081 // Function computeSignature: (dynamic, dynamic, dynamic) → dynamic
1082 function computeSignature(signature, context, contextName) { 1082 function computeSignature(signature, context, contextName) {
1083 let typeArguments = getRuntimeTypeArguments(context, contextName); 1083 let typeArguments = getRuntimeTypeArguments(context, contextName);
1084 return invokeOn(signature, context, typeArguments); 1084 return invokeOn(signature, context, typeArguments);
1085 } 1085 }
1086 // Function isSupertypeOfNull: (dynamic) → bool 1086 // Function isSupertypeOfNull: (dynamic) → bool
1087 function isSupertypeOfNull(type) { 1087 function isSupertypeOfNull(type) {
1088 return dart.notNull(type === null) || dart.notNull(dart.equals(getConstructo rName(type), _foreign_helper.JS_OBJECT_CLASS_NAME())) || dart.notNull(dart.equal s(getConstructorName(type), _foreign_helper.JS_NULL_CLASS_NAME())); 1088 return dart.notNull(type == null) || dart.notNull(getConstructorName(type) = = _foreign_helper.JS_OBJECT_CLASS_NAME()) || dart.notNull(getConstructorName(typ e) == _foreign_helper.JS_NULL_CLASS_NAME());
1089 } 1089 }
1090 // Function checkSubtypeOfRuntimeType: (dynamic, dynamic) → bool 1090 // Function checkSubtypeOfRuntimeType: (dynamic, dynamic) → bool
1091 function checkSubtypeOfRuntimeType(o, t) { 1091 function checkSubtypeOfRuntimeType(o, t) {
1092 if (o === null) 1092 if (o == null)
1093 return isSupertypeOfNull(t); 1093 return isSupertypeOfNull(t);
1094 if (t === null) 1094 if (t == null)
1095 return true; 1095 return true;
1096 let rti = getRuntimeTypeInfo(o); 1096 let rti = getRuntimeTypeInfo(o);
1097 o = _interceptors.getInterceptor(o); 1097 o = _interceptors.getInterceptor(o);
1098 let type = o.constructor; 1098 let type = o.constructor;
1099 if (rti !== null) { 1099 if (rti != null) {
1100 rti = rti.slice(); 1100 rti = rti.slice();
1101 rti.splice(0, 0, type); 1101 rti.splice(0, 0, type);
1102 type = rti; 1102 type = rti;
1103 } else if (hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`)) { 1103 } else if (hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`)) {
1104 let signatureName = `${_foreign_helper.JS_OPERATOR_IS_PREFIX()}_${getField (t, _foreign_helper.JS_FUNCTION_TYPE_TAG())}`; 1104 let signatureName = `${_foreign_helper.JS_OPERATOR_IS_PREFIX()}_${getField (t, _foreign_helper.JS_FUNCTION_TYPE_TAG())}`;
1105 if (hasField(o, signatureName)) 1105 if (hasField(o, signatureName))
1106 return true; 1106 return true;
1107 let targetSignatureFunction = getField(o, `${_foreign_helper.JS_SIGNATURE_ NAME()}`); 1107 let targetSignatureFunction = getField(o, `${_foreign_helper.JS_SIGNATURE_ NAME()}`);
1108 if (targetSignatureFunction === null) 1108 if (targetSignatureFunction == null)
1109 return false; 1109 return false;
1110 type = invokeOn(targetSignatureFunction, o, null); 1110 type = invokeOn(targetSignatureFunction, o, null);
1111 return isFunctionSubtype(type, t); 1111 return isFunctionSubtype(type, t);
1112 } 1112 }
1113 return isSubtype(type, t); 1113 return isSubtype(type, t);
1114 } 1114 }
1115 // Function subtypeOfRuntimeTypeCast: (Object, dynamic) → Object 1115 // Function subtypeOfRuntimeTypeCast: (Object, dynamic) → Object
1116 function subtypeOfRuntimeTypeCast(object, type) { 1116 function subtypeOfRuntimeTypeCast(object, type) {
1117 if (dart.notNull(object !== null) && !dart.notNull(checkSubtypeOfRuntimeType (object, type))) { 1117 if (dart.notNull(object != null) && !dart.notNull(checkSubtypeOfRuntimeType( object, type))) {
1118 let actualType = Primitives.objectTypeName(object); 1118 let actualType = Primitives.objectTypeName(object);
1119 throw new CastErrorImplementation(actualType, runtimeTypeToString(type)); 1119 throw new CastErrorImplementation(actualType, runtimeTypeToString(type));
1120 } 1120 }
1121 return object; 1121 return object;
1122 } 1122 }
1123 // Function assertSubtypeOfRuntimeType: (Object, dynamic) → Object 1123 // Function assertSubtypeOfRuntimeType: (Object, dynamic) → Object
1124 function assertSubtypeOfRuntimeType(object, type) { 1124 function assertSubtypeOfRuntimeType(object, type) {
1125 if (dart.notNull(object !== null) && !dart.notNull(checkSubtypeOfRuntimeType (object, type))) { 1125 if (dart.notNull(object != null) && !dart.notNull(checkSubtypeOfRuntimeType( object, type))) {
1126 throw new TypeErrorImplementation(object, runtimeTypeToString(type)); 1126 throw new TypeErrorImplementation(object, runtimeTypeToString(type));
1127 } 1127 }
1128 return object; 1128 return object;
1129 } 1129 }
1130 // Function getArguments: (dynamic) → dynamic 1130 // Function getArguments: (dynamic) → dynamic
1131 function getArguments(type) { 1131 function getArguments(type) {
1132 return isJsArray(type) ? type.slice(1) : null; 1132 return isJsArray(type) ? type.slice(1) : null;
1133 } 1133 }
1134 // Function isSubtype: (dynamic, dynamic) → bool 1134 // Function isSubtype: (dynamic, dynamic) → bool
1135 function isSubtype(s, t) { 1135 function isSubtype(s, t) {
1136 if (isIdentical(s, t)) 1136 if (isIdentical(s, t))
1137 return true; 1137 return true;
1138 if (dart.notNull(s === null) || dart.notNull(t === null)) 1138 if (dart.notNull(s == null) || dart.notNull(t == null))
1139 return true; 1139 return true;
1140 if (hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`)) { 1140 if (hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`)) {
1141 return isFunctionSubtype(s, t); 1141 return isFunctionSubtype(s, t);
1142 } 1142 }
1143 if (hasField(s, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`)) { 1143 if (hasField(s, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`)) {
1144 return dart.equals(getConstructorName(t), _foreign_helper.JS_FUNCTION_CLAS S_NAME()); 1144 return getConstructorName(t) == _foreign_helper.JS_FUNCTION_CLASS_NAME();
1145 } 1145 }
1146 let typeOfS = isJsArray(s) ? getIndex(s, 0) : s; 1146 let typeOfS = isJsArray(s) ? getIndex(s, 0) : s;
1147 let typeOfT = isJsArray(t) ? getIndex(t, 0) : t; 1147 let typeOfT = isJsArray(t) ? getIndex(t, 0) : t;
1148 let name = runtimeTypeToString(typeOfT); 1148 let name = runtimeTypeToString(typeOfT);
1149 let substitution = null; 1149 let substitution = null;
1150 if (isNotIdentical(typeOfT, typeOfS)) { 1150 if (isNotIdentical(typeOfT, typeOfS)) {
1151 let test = `${_foreign_helper.JS_OPERATOR_IS_PREFIX()}${name}`; 1151 let test = `${_foreign_helper.JS_OPERATOR_IS_PREFIX()}${name}`;
1152 let typeOfSPrototype = typeOfS.prototype; 1152 let typeOfSPrototype = typeOfS.prototype;
1153 if (hasNoField(typeOfSPrototype, test)) 1153 if (hasNoField(typeOfSPrototype, test))
1154 return false; 1154 return false;
1155 let field = `${_foreign_helper.JS_OPERATOR_AS_PREFIX()}${runtimeTypeToStri ng(typeOfT)}`; 1155 let field = `${_foreign_helper.JS_OPERATOR_AS_PREFIX()}${runtimeTypeToStri ng(typeOfT)}`;
1156 substitution = getField(typeOfSPrototype, field); 1156 substitution = getField(typeOfSPrototype, field);
1157 } 1157 }
1158 if (!dart.notNull(isJsArray(s)) && dart.notNull(substitution === null) || !d art.notNull(isJsArray(t))) { 1158 if (!dart.notNull(isJsArray(s)) && dart.notNull(substitution == null) || !da rt.notNull(isJsArray(t))) {
1159 return true; 1159 return true;
1160 } 1160 }
1161 return checkArguments(substitution, getArguments(s), getArguments(t)); 1161 return checkArguments(substitution, getArguments(s), getArguments(t));
1162 } 1162 }
1163 // Function isAssignable: (dynamic, dynamic) → bool 1163 // Function isAssignable: (dynamic, dynamic) → bool
1164 function isAssignable(s, t) { 1164 function isAssignable(s, t) {
1165 return dart.notNull(isSubtype(s, t)) || dart.notNull(isSubtype(t, s)); 1165 return dart.notNull(isSubtype(s, t)) || dart.notNull(isSubtype(t, s));
1166 } 1166 }
1167 // Function areAssignable: (List<dynamic>, List, bool) → bool 1167 // Function areAssignable: (List<dynamic>, List, bool) → bool
1168 function areAssignable(s, t, allowShorter) { 1168 function areAssignable(s, t, allowShorter) {
1169 if (dart.notNull(t === null) && dart.notNull(s === null)) 1169 if (dart.notNull(t == null) && dart.notNull(s == null))
1170 return true; 1170 return true;
1171 if (t === null) 1171 if (t == null)
1172 return allowShorter; 1172 return allowShorter;
1173 if (s === null) 1173 if (s == null)
1174 return false; 1174 return false;
1175 dart.assert(isJsArray(s)); 1175 dart.assert(isJsArray(s));
1176 dart.assert(isJsArray(t)); 1176 dart.assert(isJsArray(t));
1177 let sLength = getLength(s); 1177 let sLength = getLength(s);
1178 let tLength = getLength(t); 1178 let tLength = getLength(t);
1179 if (allowShorter) { 1179 if (allowShorter) {
1180 if (dart.notNull(sLength) < dart.notNull(tLength)) 1180 if (dart.notNull(sLength) < dart.notNull(tLength))
1181 return false; 1181 return false;
1182 } else { 1182 } else {
1183 if (sLength !== tLength) 1183 if (sLength != tLength)
1184 return false; 1184 return false;
1185 } 1185 }
1186 for (let i = 0; dart.notNull(i) < dart.notNull(tLength); i = dart.notNull(i) + 1) { 1186 for (let i = 0; dart.notNull(i) < dart.notNull(tLength); i = dart.notNull(i) + 1) {
1187 if (!dart.notNull(isAssignable(getIndex(s, i), getIndex(t, i)))) { 1187 if (!dart.notNull(isAssignable(getIndex(s, i), getIndex(t, i)))) {
1188 return false; 1188 return false;
1189 } 1189 }
1190 } 1190 }
1191 return true; 1191 return true;
1192 } 1192 }
1193 // Function areAssignableMaps: (dynamic, dynamic) → bool 1193 // Function areAssignableMaps: (dynamic, dynamic) → bool
1194 function areAssignableMaps(s, t) { 1194 function areAssignableMaps(s, t) {
1195 if (t === null) 1195 if (t == null)
1196 return true; 1196 return true;
1197 if (s === null) 1197 if (s == null)
1198 return false; 1198 return false;
1199 dart.assert(isJsObject(s)); 1199 dart.assert(isJsObject(s));
1200 dart.assert(isJsObject(t)); 1200 dart.assert(isJsObject(t));
1201 let names = _interceptors.JSArray.markFixedList(dart.as(Object.getOwnPropert yNames(t), core.List)); 1201 let names = _interceptors.JSArray.markFixedList(dart.as(Object.getOwnPropert yNames(t), core.List));
1202 for (let i = 0; dart.notNull(i) < dart.notNull(names.length); i = dart.notNu ll(i) + 1) { 1202 for (let i = 0; dart.notNull(i) < dart.notNull(names.length); i = dart.notNu ll(i) + 1) {
1203 let name = names.get(i); 1203 let name = names.get(i);
1204 if (!Object.hasOwnProperty.call(s, name)) { 1204 if (!Object.hasOwnProperty.call(s, name)) {
1205 return false; 1205 return false;
1206 } 1206 }
1207 let tType = t[name]; 1207 let tType = t[name];
(...skipping 15 matching lines...) Expand all
1223 } else if (hasNoField(t, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG ()}`)) { 1223 } else if (hasNoField(t, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG ()}`)) {
1224 let sReturnType = getField(s, `${_foreign_helper.JS_FUNCTION_TYPE_RETURN_T YPE_TAG()}`); 1224 let sReturnType = getField(s, `${_foreign_helper.JS_FUNCTION_TYPE_RETURN_T YPE_TAG()}`);
1225 let tReturnType = getField(t, `${_foreign_helper.JS_FUNCTION_TYPE_RETURN_T YPE_TAG()}`); 1225 let tReturnType = getField(t, `${_foreign_helper.JS_FUNCTION_TYPE_RETURN_T YPE_TAG()}`);
1226 if (!dart.notNull(isAssignable(sReturnType, tReturnType))) 1226 if (!dart.notNull(isAssignable(sReturnType, tReturnType)))
1227 return false; 1227 return false;
1228 } 1228 }
1229 let sParameterTypes = getField(s, `${_foreign_helper.JS_FUNCTION_TYPE_REQUIR ED_PARAMETERS_TAG()}`); 1229 let sParameterTypes = getField(s, `${_foreign_helper.JS_FUNCTION_TYPE_REQUIR ED_PARAMETERS_TAG()}`);
1230 let tParameterTypes = getField(t, `${_foreign_helper.JS_FUNCTION_TYPE_REQUIR ED_PARAMETERS_TAG()}`); 1230 let tParameterTypes = getField(t, `${_foreign_helper.JS_FUNCTION_TYPE_REQUIR ED_PARAMETERS_TAG()}`);
1231 let sOptionalParameterTypes = getField(s, `${_foreign_helper.JS_FUNCTION_TYP E_OPTIONAL_PARAMETERS_TAG()}`); 1231 let sOptionalParameterTypes = getField(s, `${_foreign_helper.JS_FUNCTION_TYP E_OPTIONAL_PARAMETERS_TAG()}`);
1232 let tOptionalParameterTypes = getField(t, `${_foreign_helper.JS_FUNCTION_TYP E_OPTIONAL_PARAMETERS_TAG()}`); 1232 let tOptionalParameterTypes = getField(t, `${_foreign_helper.JS_FUNCTION_TYP E_OPTIONAL_PARAMETERS_TAG()}`);
1233 let sParametersLen = sParameterTypes !== null ? getLength(sParameterTypes) : 0; 1233 let sParametersLen = sParameterTypes != null ? getLength(sParameterTypes) : 0;
1234 let tParametersLen = tParameterTypes !== null ? getLength(tParameterTypes) : 0; 1234 let tParametersLen = tParameterTypes != null ? getLength(tParameterTypes) : 0;
1235 let sOptionalParametersLen = sOptionalParameterTypes !== null ? getLength(sO ptionalParameterTypes) : 0; 1235 let sOptionalParametersLen = sOptionalParameterTypes != null ? getLength(sOp tionalParameterTypes) : 0;
1236 let tOptionalParametersLen = tOptionalParameterTypes !== null ? getLength(tO ptionalParameterTypes) : 0; 1236 let tOptionalParametersLen = tOptionalParameterTypes != null ? getLength(tOp tionalParameterTypes) : 0;
1237 if (dart.notNull(sParametersLen) > dart.notNull(tParametersLen)) { 1237 if (dart.notNull(sParametersLen) > dart.notNull(tParametersLen)) {
1238 return false; 1238 return false;
1239 } 1239 }
1240 if (dart.notNull(sParametersLen) + dart.notNull(sOptionalParametersLen) < da rt.notNull(tParametersLen) + dart.notNull(tOptionalParametersLen)) { 1240 if (dart.notNull(sParametersLen) + dart.notNull(sOptionalParametersLen) < da rt.notNull(tParametersLen) + dart.notNull(tOptionalParametersLen)) {
1241 return false; 1241 return false;
1242 } 1242 }
1243 if (sParametersLen === tParametersLen) { 1243 if (sParametersLen == tParametersLen) {
1244 if (!dart.notNull(areAssignable(dart.as(sParameterTypes, core.List), dart. as(tParameterTypes, core.List), false))) 1244 if (!dart.notNull(areAssignable(dart.as(sParameterTypes, core.List), dart. as(tParameterTypes, core.List), false)))
1245 return false; 1245 return false;
1246 if (!dart.notNull(areAssignable(dart.as(sOptionalParameterTypes, core.List ), dart.as(tOptionalParameterTypes, core.List), true))) { 1246 if (!dart.notNull(areAssignable(dart.as(sOptionalParameterTypes, core.List ), dart.as(tOptionalParameterTypes, core.List), true))) {
1247 return false; 1247 return false;
1248 } 1248 }
1249 } else { 1249 } else {
1250 let pos = 0; 1250 let pos = 0;
1251 for (; dart.notNull(pos) < dart.notNull(sParametersLen); pos = dart.notNul l(pos) + 1) { 1251 for (; dart.notNull(pos) < dart.notNull(sParametersLen); pos = dart.notNul l(pos) + 1) {
1252 if (!dart.notNull(isAssignable(getIndex(sParameterTypes, pos), getIndex( tParameterTypes, pos)))) { 1252 if (!dart.notNull(isAssignable(getIndex(sParameterTypes, pos), getIndex( tParameterTypes, pos)))) {
1253 return false; 1253 return false;
(...skipping 17 matching lines...) Expand all
1271 let tNamedParameters = getField(t, `${_foreign_helper.JS_FUNCTION_TYPE_NAMED _PARAMETERS_TAG()}`); 1271 let tNamedParameters = getField(t, `${_foreign_helper.JS_FUNCTION_TYPE_NAMED _PARAMETERS_TAG()}`);
1272 return areAssignableMaps(sNamedParameters, tNamedParameters); 1272 return areAssignableMaps(sNamedParameters, tNamedParameters);
1273 } 1273 }
1274 // Function invoke: (dynamic, dynamic) → dynamic 1274 // Function invoke: (dynamic, dynamic) → dynamic
1275 function invoke(func, arguments$) { 1275 function invoke(func, arguments$) {
1276 return invokeOn(func, null, arguments$); 1276 return invokeOn(func, null, arguments$);
1277 } 1277 }
1278 // Function invokeOn: (dynamic, dynamic, dynamic) → Object 1278 // Function invokeOn: (dynamic, dynamic, dynamic) → Object
1279 function invokeOn(func, receiver, arguments$) { 1279 function invokeOn(func, receiver, arguments$) {
1280 dart.assert(isJsFunction(func)); 1280 dart.assert(isJsFunction(func));
1281 dart.assert(dart.notNull(arguments$ === null) || dart.notNull(isJsArray(argu ments$))); 1281 dart.assert(dart.notNull(arguments$ == null) || dart.notNull(isJsArray(argum ents$)));
1282 return func.apply(receiver, arguments$); 1282 return func.apply(receiver, arguments$);
1283 } 1283 }
1284 // Function call: (dynamic, String) → dynamic 1284 // Function call: (dynamic, String) → dynamic
1285 function call(object, name) { 1285 function call(object, name) {
1286 return object[name](); 1286 return object[name]();
1287 } 1287 }
1288 // Function getField: (dynamic, String) → dynamic 1288 // Function getField: (dynamic, String) → dynamic
1289 function getField(object, name) { 1289 function getField(object, name) {
1290 return object[name]; 1290 return object[name];
1291 } 1291 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1332 } 1332 }
1333 } 1333 }
1334 let patch = new _Patch(); 1334 let patch = new _Patch();
1335 class InternalMap extends core.Object { 1335 class InternalMap extends core.Object {
1336 } 1336 }
1337 // Function requiresPreamble: () → dynamic 1337 // Function requiresPreamble: () → dynamic
1338 function requiresPreamble() { 1338 function requiresPreamble() {
1339 } 1339 }
1340 // Function isJsIndexable: (dynamic, dynamic) → bool 1340 // Function isJsIndexable: (dynamic, dynamic) → bool
1341 function isJsIndexable(object, record) { 1341 function isJsIndexable(object, record) {
1342 if (record !== null) { 1342 if (record != null) {
1343 let result = _interceptors.dispatchRecordIndexability(record); 1343 let result = _interceptors.dispatchRecordIndexability(record);
1344 if (result !== null) 1344 if (result != null)
1345 return dart.as(result, core.bool); 1345 return dart.as(result, core.bool);
1346 } 1346 }
1347 return dart.is(object, exports.JavaScriptIndexingBehavior); 1347 return dart.is(object, exports.JavaScriptIndexingBehavior);
1348 } 1348 }
1349 // Function S: (dynamic) → String 1349 // Function S: (dynamic) → String
1350 function S(value) { 1350 function S(value) {
1351 if (typeof value == 'string') 1351 if (typeof value == 'string')
1352 return dart.as(value, core.String); 1352 return dart.as(value, core.String);
1353 if (dart.is(value, core.num)) { 1353 if (dart.is(value, core.num)) {
1354 if (!dart.equals(value, 0)) { 1354 if (!dart.equals(value, 0)) {
1355 return "" + value; 1355 return "" + value;
1356 } 1356 }
1357 } else if (true === value) { 1357 } else if (dart.equals(true, value)) {
1358 return 'true'; 1358 return 'true';
1359 } else if (false === value) { 1359 } else if (dart.equals(false, value)) {
1360 return 'false'; 1360 return 'false';
1361 } else if (value === null) { 1361 } else if (value == null) {
1362 return 'null'; 1362 return 'null';
1363 } 1363 }
1364 let res = dart.dinvoke(value, 'toString'); 1364 let res = dart.dinvoke(value, 'toString');
1365 if (!(typeof res == 'string')) 1365 if (!(typeof res == 'string'))
1366 throw new core.ArgumentError(value); 1366 throw new core.ArgumentError(value);
1367 return dart.as(res, core.String); 1367 return dart.as(res, core.String);
1368 } 1368 }
1369 // Function createInvocationMirror: (String, dynamic, dynamic, dynamic, dynami c) → dynamic 1369 // Function createInvocationMirror: (String, dynamic, dynamic, dynamic, dynami c) → dynamic
1370 function createInvocationMirror(name, internalName, kind, arguments$, argument Names) { 1370 function createInvocationMirror(name, internalName, kind, arguments$, argument Names) {
1371 return new JSInvocationMirror(name, dart.as(internalName, core.String), dart .as(kind, core.int), dart.as(arguments$, core.List), dart.as(argumentNames, core .List)); 1371 return new JSInvocationMirror(name, dart.as(internalName, core.String), dart .as(kind, core.int), dart.as(arguments$, core.List), dart.as(argumentNames, core .List));
(...skipping 30 matching lines...) Expand all
1402 this[_kind] = kind$; 1402 this[_kind] = kind$;
1403 this[_arguments] = arguments$; 1403 this[_arguments] = arguments$;
1404 this[_namedArgumentNames] = namedArgumentNames; 1404 this[_namedArgumentNames] = namedArgumentNames;
1405 this[_namedIndices] = null; 1405 this[_namedIndices] = null;
1406 } 1406 }
1407 get memberName() { 1407 get memberName() {
1408 if (dart.is(this[_memberName], core.Symbol)) 1408 if (dart.is(this[_memberName], core.Symbol))
1409 return dart.as(this[_memberName], core.Symbol); 1409 return dart.as(this[_memberName], core.Symbol);
1410 let name = dart.as(this[_memberName], core.String); 1410 let name = dart.as(this[_memberName], core.String);
1411 let unmangledName = _js_names.mangledNames.get(name); 1411 let unmangledName = _js_names.mangledNames.get(name);
1412 if (unmangledName !== null) { 1412 if (unmangledName != null) {
1413 name = unmangledName.split(':').get(0); 1413 name = unmangledName.split(':').get(0);
1414 } else { 1414 } else {
1415 if (_js_names.mangledNames.get(this[_internalName]) === null) { 1415 if (_js_names.mangledNames.get(this[_internalName]) == null) {
1416 core.print(`Warning: '${name}' is used reflectively but not in Mirrors Used. ` + "This will break minified code."); 1416 core.print(`Warning: '${name}' is used reflectively but not in Mirrors Used. ` + "This will break minified code.");
1417 } 1417 }
1418 } 1418 }
1419 this[_memberName] = new _internal.Symbol.unvalidated(name); 1419 this[_memberName] = new _internal.Symbol.unvalidated(name);
1420 return dart.as(this[_memberName], core.Symbol); 1420 return dart.as(this[_memberName], core.Symbol);
1421 } 1421 }
1422 get isMethod() { 1422 get isMethod() {
1423 return this[_kind] === JSInvocationMirror.METHOD; 1423 return this[_kind] == JSInvocationMirror.METHOD;
1424 } 1424 }
1425 get isGetter() { 1425 get isGetter() {
1426 return this[_kind] === JSInvocationMirror.GETTER; 1426 return this[_kind] == JSInvocationMirror.GETTER;
1427 } 1427 }
1428 get isSetter() { 1428 get isSetter() {
1429 return this[_kind] === JSInvocationMirror.SETTER; 1429 return this[_kind] == JSInvocationMirror.SETTER;
1430 } 1430 }
1431 get isAccessor() { 1431 get isAccessor() {
1432 return this[_kind] !== JSInvocationMirror.METHOD; 1432 return this[_kind] != JSInvocationMirror.METHOD;
1433 } 1433 }
1434 get positionalArguments() { 1434 get positionalArguments() {
1435 if (this.isGetter) 1435 if (this.isGetter)
1436 return /* Unimplemented const */new core.List.from([]); 1436 return /* Unimplemented const */new core.List.from([]);
1437 let argumentCount = dart.notNull(this[_arguments].length) - dart.notNull(t his[_namedArgumentNames].length); 1437 let argumentCount = dart.notNull(this[_arguments].length) - dart.notNull(t his[_namedArgumentNames].length);
1438 if (argumentCount === 0) 1438 if (argumentCount == 0)
1439 return /* Unimplemented const */new core.List.from([]); 1439 return /* Unimplemented const */new core.List.from([]);
1440 let list = new core.List.from([]); 1440 let list = new core.List.from([]);
1441 for (let index = 0; dart.notNull(index) < dart.notNull(argumentCount); ind ex = dart.notNull(index) + 1) { 1441 for (let index = 0; dart.notNull(index) < dart.notNull(argumentCount); ind ex = dart.notNull(index) + 1) {
1442 list.add(this[_arguments].get(index)); 1442 list.add(this[_arguments].get(index));
1443 } 1443 }
1444 return dart.as(makeLiteralListConst(list), core.List); 1444 return dart.as(makeLiteralListConst(list), core.List);
1445 } 1445 }
1446 get namedArguments() { 1446 get namedArguments() {
1447 if (this.isAccessor) 1447 if (this.isAccessor)
1448 return dart.map(); 1448 return dart.map();
1449 let namedArgumentCount = this[_namedArgumentNames].length; 1449 let namedArgumentCount = this[_namedArgumentNames].length;
1450 let namedArgumentsStartIndex = dart.notNull(this[_arguments].length) - dar t.notNull(namedArgumentCount); 1450 let namedArgumentsStartIndex = dart.notNull(this[_arguments].length) - dar t.notNull(namedArgumentCount);
1451 if (namedArgumentCount === 0) 1451 if (namedArgumentCount == 0)
1452 return dart.map(); 1452 return dart.map();
1453 let map = new core.Map(); 1453 let map = new core.Map();
1454 for (let i = 0; dart.notNull(i) < dart.notNull(namedArgumentCount); i = da rt.notNull(i) + 1) { 1454 for (let i = 0; dart.notNull(i) < dart.notNull(namedArgumentCount); i = da rt.notNull(i) + 1) {
1455 map.set(new _internal.Symbol.unvalidated(dart.as(this[_namedArgumentName s].get(i), core.String)), this[_arguments].get(dart.notNull(namedArgumentsStartI ndex) + dart.notNull(i))); 1455 map.set(new _internal.Symbol.unvalidated(dart.as(this[_namedArgumentName s].get(i), core.String)), this[_arguments].get(dart.notNull(namedArgumentsStartI ndex) + dart.notNull(i)));
1456 } 1456 }
1457 return map; 1457 return map;
1458 } 1458 }
1459 [_getCachedInvocation](object) { 1459 [_getCachedInvocation](object) {
1460 let interceptor = _interceptors.getInterceptor(object); 1460 let interceptor = _interceptors.getInterceptor(object);
1461 let receiver = object; 1461 let receiver = object;
1462 let name = this[_internalName]; 1462 let name = this[_internalName];
1463 let arguments$ = this[_arguments]; 1463 let arguments$ = this[_arguments];
1464 let interceptedNames = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded _names.INTERCEPTED_NAMES); 1464 let interceptedNames = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded _names.INTERCEPTED_NAMES);
1465 let isIntercepted = Object.prototype.hasOwnProperty.call(interceptedNames, name); 1465 let isIntercepted = Object.prototype.hasOwnProperty.call(interceptedNames, name);
1466 if (isIntercepted) { 1466 if (isIntercepted) {
1467 receiver = interceptor; 1467 receiver = interceptor;
1468 if (object === interceptor) { 1468 if (object === interceptor) {
1469 interceptor = null; 1469 interceptor = null;
1470 } 1470 }
1471 } else { 1471 } else {
1472 interceptor = null; 1472 interceptor = null;
1473 } 1473 }
1474 let isCatchAll = false; 1474 let isCatchAll = false;
1475 let method = receiver[name]; 1475 let method = receiver[name];
1476 if (typeof method != "function") { 1476 if (typeof method != "function") {
1477 let baseName = _internal.Symbol.getName(dart.as(this.memberName, _intern al.Symbol)); 1477 let baseName = _internal.Symbol.getName(dart.as(this.memberName, _intern al.Symbol));
1478 method = receiver[baseName + "*"]; 1478 method = receiver[baseName + "*"];
1479 if (method === null) { 1479 if (method == null) {
1480 interceptor = _interceptors.getInterceptor(object); 1480 interceptor = _interceptors.getInterceptor(object);
1481 method = interceptor[baseName + "*"]; 1481 method = interceptor[baseName + "*"];
1482 if (method !== null) { 1482 if (method != null) {
1483 isIntercepted = true; 1483 isIntercepted = true;
1484 receiver = interceptor; 1484 receiver = interceptor;
1485 } else { 1485 } else {
1486 interceptor = null; 1486 interceptor = null;
1487 } 1487 }
1488 } 1488 }
1489 isCatchAll = true; 1489 isCatchAll = true;
1490 } 1490 }
1491 if (typeof method == "function") { 1491 if (typeof method == "function") {
1492 if (isCatchAll) { 1492 if (isCatchAll) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1527 return !!this.jsFunction.$getterStub; 1527 return !!this.jsFunction.$getterStub;
1528 } 1528 }
1529 invokeOn(victim, arguments$) { 1529 invokeOn(victim, arguments$) {
1530 let receiver = victim; 1530 let receiver = victim;
1531 if (!dart.notNull(this.isIntercepted)) { 1531 if (!dart.notNull(this.isIntercepted)) {
1532 if (!dart.is(arguments$, _interceptors.JSArray)) 1532 if (!dart.is(arguments$, _interceptors.JSArray))
1533 arguments$ = new core.List.from(arguments$); 1533 arguments$ = new core.List.from(arguments$);
1534 } else { 1534 } else {
1535 arguments$ = new core.List.from([victim]); 1535 arguments$ = new core.List.from([victim]);
1536 arguments$.addAll(arguments$); 1536 arguments$.addAll(arguments$);
1537 if (this.cachedInterceptor !== null) 1537 if (this.cachedInterceptor != null)
1538 receiver = this.cachedInterceptor; 1538 receiver = this.cachedInterceptor;
1539 } 1539 }
1540 return this.jsFunction.apply(receiver, arguments$); 1540 return this.jsFunction.apply(receiver, arguments$);
1541 } 1541 }
1542 } 1542 }
1543 class CachedCatchAllInvocation extends CachedInvocation { 1543 class CachedCatchAllInvocation extends CachedInvocation {
1544 CachedCatchAllInvocation(name, jsFunction, isIntercepted, cachedInterceptor) { 1544 CachedCatchAllInvocation(name, jsFunction, isIntercepted, cachedInterceptor) {
1545 this.info = new ReflectionInfo(jsFunction); 1545 this.info = new ReflectionInfo(jsFunction);
1546 super.CachedInvocation(name, jsFunction, isIntercepted, cachedInterceptor) ; 1546 super.CachedInvocation(name, jsFunction, isIntercepted, cachedInterceptor) ;
1547 } 1547 }
(...skipping 10 matching lines...) Expand all
1558 if (dart.notNull(providedArgumentCount) < dart.notNull(fullParameterCo unt)) { 1558 if (dart.notNull(providedArgumentCount) < dart.notNull(fullParameterCo unt)) {
1559 arguments$ = new core.List.from(arguments$); 1559 arguments$ = new core.List.from(arguments$);
1560 } 1560 }
1561 } else { 1561 } else {
1562 arguments$ = new core.List.from(arguments$); 1562 arguments$ = new core.List.from(arguments$);
1563 providedArgumentCount = arguments$.length; 1563 providedArgumentCount = arguments$.length;
1564 } 1564 }
1565 } else { 1565 } else {
1566 arguments$ = new core.List.from([victim]); 1566 arguments$ = new core.List.from([victim]);
1567 arguments$.addAll(arguments$); 1567 arguments$.addAll(arguments$);
1568 if (this.cachedInterceptor !== null) 1568 if (this.cachedInterceptor != null)
1569 receiver = this.cachedInterceptor; 1569 receiver = this.cachedInterceptor;
1570 providedArgumentCount = dart.notNull(arguments$.length) - 1; 1570 providedArgumentCount = dart.notNull(arguments$.length) - 1;
1571 } 1571 }
1572 if (dart.notNull(this.info.areOptionalParametersNamed) && dart.notNull(pro videdArgumentCount) > dart.notNull(this.info.requiredParameterCount)) { 1572 if (dart.notNull(this.info.areOptionalParametersNamed) && dart.notNull(pro videdArgumentCount) > dart.notNull(this.info.requiredParameterCount)) {
1573 throw new UnimplementedNoSuchMethodError(`Invocation of unstubbed method '${this.info.reflectionName}'` + ` with ${arguments$.length} arguments.`); 1573 throw new UnimplementedNoSuchMethodError(`Invocation of unstubbed method '${this.info.reflectionName}'` + ` with ${arguments$.length} arguments.`);
1574 } else if (dart.notNull(providedArgumentCount) < dart.notNull(this.info.re quiredParameterCount)) { 1574 } else if (dart.notNull(providedArgumentCount) < dart.notNull(this.info.re quiredParameterCount)) {
1575 throw new UnimplementedNoSuchMethodError(`Invocation of unstubbed method '${this.info.reflectionName}'` + ` with ${providedArgumentCount} arguments (too few).`); 1575 throw new UnimplementedNoSuchMethodError(`Invocation of unstubbed method '${this.info.reflectionName}'` + ` with ${providedArgumentCount} arguments (too few).`);
1576 } else if (dart.notNull(providedArgumentCount) > dart.notNull(fullParamete rCount)) { 1576 } else if (dart.notNull(providedArgumentCount) > dart.notNull(fullParamete rCount)) {
1577 throw new UnimplementedNoSuchMethodError(`Invocation of unstubbed method '${this.info.reflectionName}'` + ` with ${providedArgumentCount} arguments (too many).`); 1577 throw new UnimplementedNoSuchMethodError(`Invocation of unstubbed method '${this.info.reflectionName}'` + ` with ${providedArgumentCount} arguments (too many).`);
1578 } 1578 }
1579 for (let i = providedArgumentCount; dart.notNull(i) < dart.notNull(fullPar ameterCount); i = dart.notNull(i) + 1) { 1579 for (let i = providedArgumentCount; dart.notNull(i) < dart.notNull(fullPar ameterCount); i = dart.notNull(i) + 1) {
1580 arguments$.add(getMetadata(this.info.defaultValue(i))); 1580 arguments$.add(getMetadata(this.info.defaultValue(i)));
1581 } 1581 }
1582 return this.jsFunction.apply(receiver, arguments$); 1582 return this.jsFunction.apply(receiver, arguments$);
1583 } 1583 }
1584 } 1584 }
1585 class CachedNoSuchMethodInvocation extends core.Object { 1585 class CachedNoSuchMethodInvocation extends core.Object {
1586 CachedNoSuchMethodInvocation(interceptor) { 1586 CachedNoSuchMethodInvocation(interceptor) {
1587 this.interceptor = interceptor; 1587 this.interceptor = interceptor;
1588 } 1588 }
1589 get isNoSuchMethod() { 1589 get isNoSuchMethod() {
1590 return true; 1590 return true;
1591 } 1591 }
1592 get isGetterStub() { 1592 get isGetterStub() {
1593 return false; 1593 return false;
1594 } 1594 }
1595 invokeOn(victim, invocation) { 1595 invokeOn(victim, invocation) {
1596 let receiver = this.interceptor === null ? victim : this.interceptor; 1596 let receiver = this.interceptor == null ? victim : this.interceptor;
1597 return dart.dinvoke(receiver, 'noSuchMethod', invocation); 1597 return dart.dinvoke(receiver, 'noSuchMethod', invocation);
1598 } 1598 }
1599 } 1599 }
1600 class ReflectionInfo extends core.Object { 1600 class ReflectionInfo extends core.Object {
1601 internal(jsFunction, data, isAccessor, requiredParameterCount, optionalParam eterCount, areOptionalParametersNamed, functionType) { 1601 internal(jsFunction, data, isAccessor, requiredParameterCount, optionalParam eterCount, areOptionalParametersNamed, functionType) {
1602 this.jsFunction = jsFunction; 1602 this.jsFunction = jsFunction;
1603 this.data = data; 1603 this.data = data;
1604 this.isAccessor = isAccessor; 1604 this.isAccessor = isAccessor;
1605 this.requiredParameterCount = requiredParameterCount; 1605 this.requiredParameterCount = requiredParameterCount;
1606 this.optionalParameterCount = optionalParameterCount; 1606 this.optionalParameterCount = optionalParameterCount;
1607 this.areOptionalParametersNamed = areOptionalParametersNamed; 1607 this.areOptionalParametersNamed = areOptionalParametersNamed;
1608 this.functionType = functionType; 1608 this.functionType = functionType;
1609 this.cachedSortedIndices = null; 1609 this.cachedSortedIndices = null;
1610 } 1610 }
1611 ReflectionInfo(jsFunction) { 1611 ReflectionInfo(jsFunction) {
1612 let data = dart.as(jsFunction.$reflectionInfo, core.List); 1612 let data = dart.as(jsFunction.$reflectionInfo, core.List);
1613 if (data === null) 1613 if (data == null)
1614 return null; 1614 return null;
1615 data = _interceptors.JSArray.markFixedList(data); 1615 data = _interceptors.JSArray.markFixedList(data);
1616 let requiredParametersInfo = data[ReflectionInfo.REQUIRED_PARAMETERS_INFO] ; 1616 let requiredParametersInfo = data[ReflectionInfo.REQUIRED_PARAMETERS_INFO] ;
1617 let requiredParameterCount = requiredParametersInfo >> 1; 1617 let requiredParameterCount = requiredParametersInfo >> 1;
1618 let isAccessor = (dart.notNull(requiredParametersInfo) & 1) === 1; 1618 let isAccessor = (dart.notNull(requiredParametersInfo) & 1) == 1;
1619 let optionalParametersInfo = data[ReflectionInfo.OPTIONAL_PARAMETERS_INFO] ; 1619 let optionalParametersInfo = data[ReflectionInfo.OPTIONAL_PARAMETERS_INFO] ;
1620 let optionalParameterCount = optionalParametersInfo >> 1; 1620 let optionalParameterCount = optionalParametersInfo >> 1;
1621 let areOptionalParametersNamed = (dart.notNull(optionalParametersInfo) & 1 ) === 1; 1621 let areOptionalParametersNamed = (dart.notNull(optionalParametersInfo) & 1 ) == 1;
1622 let functionType = data[ReflectionInfo.FUNCTION_TYPE_INDEX]; 1622 let functionType = data[ReflectionInfo.FUNCTION_TYPE_INDEX];
1623 return new ReflectionInfo.internal(jsFunction, data, isAccessor, requiredP arameterCount, optionalParameterCount, areOptionalParametersNamed, functionType) ; 1623 return new ReflectionInfo.internal(jsFunction, data, isAccessor, requiredP arameterCount, optionalParameterCount, areOptionalParametersNamed, functionType) ;
1624 } 1624 }
1625 parameterName(parameter) { 1625 parameterName(parameter) {
1626 let metadataIndex = null; 1626 let metadataIndex = null;
1627 if (_foreign_helper.JS_GET_FLAG('MUST_RETAIN_METADATA')) { 1627 if (_foreign_helper.JS_GET_FLAG('MUST_RETAIN_METADATA')) {
1628 metadataIndex = this.data[2 * parameter + this.optionalParameterCount + ReflectionInfo.FIRST_DEFAULT_ARGUMENT]; 1628 metadataIndex = this.data[2 * parameter + this.optionalParameterCount + ReflectionInfo.FIRST_DEFAULT_ARGUMENT];
1629 } else { 1629 } else {
1630 metadataIndex = this.data[parameter + this.optionalParameterCount + Refl ectionInfo.FIRST_DEFAULT_ARGUMENT]; 1630 metadataIndex = this.data[parameter + this.optionalParameterCount + Refl ectionInfo.FIRST_DEFAULT_ARGUMENT];
1631 } 1631 }
1632 let metadata = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.M ETADATA); 1632 let metadata = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.M ETADATA);
1633 return metadata[metadataIndex]; 1633 return metadata[metadataIndex];
1634 } 1634 }
1635 parameterMetadataAnnotations(parameter) { 1635 parameterMetadataAnnotations(parameter) {
1636 if (!dart.notNull(_foreign_helper.JS_GET_FLAG('MUST_RETAIN_METADATA'))) { 1636 if (!dart.notNull(_foreign_helper.JS_GET_FLAG('MUST_RETAIN_METADATA'))) {
1637 throw new core.StateError('metadata has not been preserved'); 1637 throw new core.StateError('metadata has not been preserved');
1638 } else { 1638 } else {
1639 return dart.as(this.data[2 * parameter + this.optionalParameterCount + R eflectionInfo.FIRST_DEFAULT_ARGUMENT + 1], core.List$(core.int)); 1639 return dart.as(this.data[2 * parameter + this.optionalParameterCount + R eflectionInfo.FIRST_DEFAULT_ARGUMENT + 1], core.List$(core.int));
1640 } 1640 }
1641 } 1641 }
1642 defaultValue(parameter) { 1642 defaultValue(parameter) {
1643 if (dart.notNull(parameter) < dart.notNull(this.requiredParameterCount)) 1643 if (dart.notNull(parameter) < dart.notNull(this.requiredParameterCount))
1644 return null; 1644 return null;
1645 return this.data[ReflectionInfo.FIRST_DEFAULT_ARGUMENT + parameter - this. requiredParameterCount]; 1645 return this.data[ReflectionInfo.FIRST_DEFAULT_ARGUMENT + parameter - this. requiredParameterCount];
1646 } 1646 }
1647 defaultValueInOrder(parameter) { 1647 defaultValueInOrder(parameter) {
1648 if (dart.notNull(parameter) < dart.notNull(this.requiredParameterCount)) 1648 if (dart.notNull(parameter) < dart.notNull(this.requiredParameterCount))
1649 return null; 1649 return null;
1650 if (!dart.notNull(this.areOptionalParametersNamed) || this.optionalParamet erCount === 1) { 1650 if (!dart.notNull(this.areOptionalParametersNamed) || this.optionalParamet erCount == 1) {
1651 return this.defaultValue(parameter); 1651 return this.defaultValue(parameter);
1652 } 1652 }
1653 let index = this.sortedIndex(dart.notNull(parameter) - dart.notNull(this.r equiredParameterCount)); 1653 let index = this.sortedIndex(dart.notNull(parameter) - dart.notNull(this.r equiredParameterCount));
1654 return this.defaultValue(index); 1654 return this.defaultValue(index);
1655 } 1655 }
1656 parameterNameInOrder(parameter) { 1656 parameterNameInOrder(parameter) {
1657 if (dart.notNull(parameter) < dart.notNull(this.requiredParameterCount)) 1657 if (dart.notNull(parameter) < dart.notNull(this.requiredParameterCount))
1658 return null; 1658 return null;
1659 if (!dart.notNull(this.areOptionalParametersNamed) || this.optionalParamet erCount === 1) { 1659 if (!dart.notNull(this.areOptionalParametersNamed) || this.optionalParamet erCount == 1) {
1660 return this.parameterName(parameter); 1660 return this.parameterName(parameter);
1661 } 1661 }
1662 let index = this.sortedIndex(dart.notNull(parameter) - dart.notNull(this.r equiredParameterCount)); 1662 let index = this.sortedIndex(dart.notNull(parameter) - dart.notNull(this.r equiredParameterCount));
1663 return this.parameterName(index); 1663 return this.parameterName(index);
1664 } 1664 }
1665 sortedIndex(unsortedIndex) { 1665 sortedIndex(unsortedIndex) {
1666 if (this.cachedSortedIndices === null) { 1666 if (this.cachedSortedIndices == null) {
1667 this.cachedSortedIndices = new core.List(this.optionalParameterCount); 1667 this.cachedSortedIndices = new core.List(this.optionalParameterCount);
1668 let positions = dart.map(); 1668 let positions = dart.map();
1669 for (let i = 0; dart.notNull(i) < dart.notNull(this.optionalParameterCou nt); i = dart.notNull(i) + 1) { 1669 for (let i = 0; dart.notNull(i) < dart.notNull(this.optionalParameterCou nt); i = dart.notNull(i) + 1) {
1670 let index = dart.notNull(this.requiredParameterCount) + dart.notNull(i ); 1670 let index = dart.notNull(this.requiredParameterCount) + dart.notNull(i );
1671 positions.set(this.parameterName(index), index); 1671 positions.set(this.parameterName(index), index);
1672 } 1672 }
1673 let index = 0; 1673 let index = 0;
1674 ((_$) => { 1674 ((_$) => {
1675 _$.sort(); 1675 _$.sort();
1676 return _$; 1676 return _$;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1708 let _throwFormatException = Symbol('_throwFormatException'); 1708 let _throwFormatException = Symbol('_throwFormatException');
1709 let _fromCharCodeApply = Symbol('_fromCharCodeApply'); 1709 let _fromCharCodeApply = Symbol('_fromCharCodeApply');
1710 let _mangledNameMatchesType = Symbol('_mangledNameMatchesType'); 1710 let _mangledNameMatchesType = Symbol('_mangledNameMatchesType');
1711 class Primitives extends core.Object { 1711 class Primitives extends core.Object {
1712 static initializeStatics(id) { 1712 static initializeStatics(id) {
1713 Primitives.mirrorFunctionCacheName = `_${id}`; 1713 Primitives.mirrorFunctionCacheName = `_${id}`;
1714 Primitives.mirrorInvokeCacheName = `_${id}`; 1714 Primitives.mirrorInvokeCacheName = `_${id}`;
1715 } 1715 }
1716 static objectHashCode(object) { 1716 static objectHashCode(object) {
1717 let hash = dart.as(object.$identityHash, core.int); 1717 let hash = dart.as(object.$identityHash, core.int);
1718 if (hash === null) { 1718 if (hash == null) {
1719 hash = Math.random() * 0x3fffffff | 0; 1719 hash = Math.random() * 0x3fffffff | 0;
1720 object.$identityHash = hash; 1720 object.$identityHash = hash;
1721 } 1721 }
1722 return hash; 1722 return hash;
1723 } 1723 }
1724 static [_throwFormatException](string) { 1724 static [_throwFormatException](string) {
1725 throw new core.FormatException(string); 1725 throw new core.FormatException(string);
1726 } 1726 }
1727 static parseInt(source, radix, handleError) { 1727 static parseInt(source, radix, handleError) {
1728 if (handleError === null) 1728 if (handleError == null)
1729 handleError = dart.closureWrap(Primitives[_throwFormatException], "(Stri ng) → int"); 1729 handleError = dart.closureWrap(Primitives[_throwFormatException], "(Stri ng) → int");
1730 checkString(source); 1730 checkString(source);
1731 let match = /^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(source) ; 1731 let match = /^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(source) ;
1732 let digitsIndex = 1; 1732 let digitsIndex = 1;
1733 let hexIndex = 2; 1733 let hexIndex = 2;
1734 let decimalIndex = 3; 1734 let decimalIndex = 3;
1735 let nonDecimalHexIndex = 4; 1735 let nonDecimalHexIndex = 4;
1736 if (radix === null) { 1736 if (radix == null) {
1737 radix = 10; 1737 radix = 10;
1738 if (match !== null) { 1738 if (match != null) {
1739 if (dart.dindex(match, hexIndex) !== null) { 1739 if (dart.dindex(match, hexIndex) != null) {
1740 return parseInt(source, 16); 1740 return parseInt(source, 16);
1741 } 1741 }
1742 if (dart.dindex(match, decimalIndex) !== null) { 1742 if (dart.dindex(match, decimalIndex) != null) {
1743 return parseInt(source, 10); 1743 return parseInt(source, 10);
1744 } 1744 }
1745 return handleError(source); 1745 return handleError(source);
1746 } 1746 }
1747 } else { 1747 } else {
1748 if (!(typeof radix == 'number')) 1748 if (!(typeof radix == 'number'))
1749 throw new core.ArgumentError("Radix is not an integer"); 1749 throw new core.ArgumentError("Radix is not an integer");
1750 if (dart.notNull(radix) < 2 || dart.notNull(radix) > 36) { 1750 if (dart.notNull(radix) < 2 || dart.notNull(radix) > 36) {
1751 throw new core.RangeError(`Radix ${radix} not in range 2..36`); 1751 throw new core.RangeError(`Radix ${radix} not in range 2..36`);
1752 } 1752 }
1753 if (match !== null) { 1753 if (match != null) {
1754 if (radix === 10 && dart.notNull(dart.dindex(match, decimalIndex) !== null)) { 1754 if (radix == 10 && dart.notNull(dart.dindex(match, decimalIndex) != nu ll)) {
1755 return parseInt(source, 10); 1755 return parseInt(source, 10);
1756 } 1756 }
1757 if (dart.notNull(radix) < 10 || dart.notNull(dart.dindex(match, decima lIndex) === null)) { 1757 if (dart.notNull(radix) < 10 || dart.notNull(dart.dindex(match, decima lIndex) == null)) {
1758 let maxCharCode = null; 1758 let maxCharCode = null;
1759 if (dart.notNull(radix) <= 10) { 1759 if (dart.notNull(radix) <= 10) {
1760 maxCharCode = 48 + dart.notNull(radix) - 1; 1760 maxCharCode = 48 + dart.notNull(radix) - 1;
1761 } else { 1761 } else {
1762 maxCharCode = 97 + dart.notNull(radix) - 10 - 1; 1762 maxCharCode = 97 + dart.notNull(radix) - 10 - 1;
1763 } 1763 }
1764 let digitsPart = dart.as(dart.dindex(match, digitsIndex), core.Strin g); 1764 let digitsPart = dart.as(dart.dindex(match, digitsIndex), core.Strin g);
1765 for (let i = 0; dart.notNull(i) < dart.notNull(digitsPart.length); i = dart.notNull(i) + 1) { 1765 for (let i = 0; dart.notNull(i) < dart.notNull(digitsPart.length); i = dart.notNull(i) + 1) {
1766 let characterCode = dart.notNull(digitsPart.codeUnitAt(0)) | 32; 1766 let characterCode = dart.notNull(digitsPart.codeUnitAt(0)) | 32;
1767 if (dart.notNull(digitsPart.codeUnitAt(i)) > dart.notNull(maxCharC ode)) { 1767 if (dart.notNull(digitsPart.codeUnitAt(i)) > dart.notNull(maxCharC ode)) {
1768 return handleError(source); 1768 return handleError(source);
1769 } 1769 }
1770 } 1770 }
1771 } 1771 }
1772 } 1772 }
1773 } 1773 }
1774 if (match === null) 1774 if (match == null)
1775 return handleError(source); 1775 return handleError(source);
1776 return parseInt(source, radix); 1776 return parseInt(source, radix);
1777 } 1777 }
1778 static parseDouble(source, handleError) { 1778 static parseDouble(source, handleError) {
1779 checkString(source); 1779 checkString(source);
1780 if (handleError === null) 1780 if (handleError == null)
1781 handleError = dart.closureWrap(Primitives[_throwFormatException], "(Stri ng) → double"); 1781 handleError = dart.closureWrap(Primitives[_throwFormatException], "(Stri ng) → double");
1782 if (!/^\s*[+-]?(?:Infinity|NaN|(?:\.\d+|\d+(?:\.\d*)?)(?:[eE][+-]?\d+)?)\s *$/.test(source)) { 1782 if (!/^\s*[+-]?(?:Infinity|NaN|(?:\.\d+|\d+(?:\.\d*)?)(?:[eE][+-]?\d+)?)\s *$/.test(source)) {
1783 return handleError(source); 1783 return handleError(source);
1784 } 1784 }
1785 let result = parseFloat(source); 1785 let result = parseFloat(source);
1786 if (result.isNaN) { 1786 if (result.isNaN) {
1787 let trimmed = source.trim(); 1787 let trimmed = source.trim();
1788 if (dart.notNull(dart.equals(trimmed, 'NaN')) || dart.notNull(dart.equal s(trimmed, '+NaN')) || dart.notNull(dart.equals(trimmed, '-NaN'))) { 1788 if (dart.notNull(trimmed == 'NaN') || dart.notNull(trimmed == '+NaN') || dart.notNull(trimmed == '-NaN')) {
1789 return result; 1789 return result;
1790 } 1790 }
1791 return handleError(source); 1791 return handleError(source);
1792 } 1792 }
1793 return result; 1793 return result;
1794 } 1794 }
1795 static formatType(className, typeArguments) { 1795 static formatType(className, typeArguments) {
1796 return _js_names.unmangleAllIdentifiersIfPreservedAnyways(`${className}${j oinArguments(typeArguments, 0)}`); 1796 return _js_names.unmangleAllIdentifiersIfPreservedAnyways(`${className}${j oinArguments(typeArguments, 0)}`);
1797 } 1797 }
1798 static objectTypeName(object) { 1798 static objectTypeName(object) {
1799 let name = constructorNameFallback(_interceptors.getInterceptor(object)); 1799 let name = constructorNameFallback(_interceptors.getInterceptor(object));
1800 if (dart.equals(name, 'Object')) { 1800 if (name == 'Object') {
1801 let decompiled = String(object.constructor).match(/^\s*function\s*(\S*)\ s*\(/)[1]; 1801 let decompiled = String(object.constructor).match(/^\s*function\s*(\S*)\ s*\(/)[1];
1802 if (typeof decompiled == 'string') 1802 if (typeof decompiled == 'string')
1803 if (/^\w+$/.test(decompiled)) 1803 if (/^\w+$/.test(decompiled))
1804 name = dart.as(decompiled, core.String); 1804 name = dart.as(decompiled, core.String);
1805 } 1805 }
1806 if (dart.notNull(name.length) > 1 && dart.notNull(core.identical(name.code UnitAt(0), Primitives.DOLLAR_CHAR_VALUE))) { 1806 if (dart.notNull(name.length) > 1 && dart.notNull(core.identical(name.code UnitAt(0), Primitives.DOLLAR_CHAR_VALUE))) {
1807 name = name.substring(1); 1807 name = name.substring(1);
1808 } 1808 }
1809 return Primitives.formatType(name, dart.as(getRuntimeTypeInfo(object), cor e.List)); 1809 return Primitives.formatType(name, dart.as(getRuntimeTypeInfo(object), cor e.List));
1810 } 1810 }
1811 static objectToString(object) { 1811 static objectToString(object) {
1812 let name = Primitives.objectTypeName(object); 1812 let name = Primitives.objectTypeName(object);
1813 return `Instance of '${name}'`; 1813 return `Instance of '${name}'`;
1814 } 1814 }
1815 static dateNow() { 1815 static dateNow() {
1816 return Date.now(); 1816 return Date.now();
1817 } 1817 }
1818 static initTicker() { 1818 static initTicker() {
1819 if (Primitives.timerFrequency !== null) 1819 if (Primitives.timerFrequency != null)
1820 return; 1820 return;
1821 Primitives.timerFrequency = 1000; 1821 Primitives.timerFrequency = 1000;
1822 Primitives.timerTicks = Primitives.dateNow; 1822 Primitives.timerTicks = Primitives.dateNow;
1823 if (typeof window == "undefined") 1823 if (typeof window == "undefined")
1824 return; 1824 return;
1825 let window = window; 1825 let window = window;
1826 if (window === null) 1826 if (window == null)
1827 return; 1827 return;
1828 let performance = window.performance; 1828 let performance = window.performance;
1829 if (performance === null) 1829 if (performance == null)
1830 return; 1830 return;
1831 if (typeof performance.now != "function") 1831 if (typeof performance.now != "function")
1832 return; 1832 return;
1833 Primitives.timerFrequency = 1000000; 1833 Primitives.timerFrequency = 1000000;
1834 Primitives.timerTicks = (() => (1000 * performance.now()).floor()).bind(th is); 1834 Primitives.timerTicks = (() => (1000 * performance.now()).floor()).bind(th is);
1835 } 1835 }
1836 static get isD8() { 1836 static get isD8() {
1837 return typeof version == "function" && typeof os == "object" && "system" i n os; 1837 return typeof version == "function" && typeof os == "object" && "system" i n os;
1838 } 1838 }
1839 static get isJsshell() { 1839 static get isJsshell() {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1904 } 1904 }
1905 static stringConcatUnchecked(string1, string2) { 1905 static stringConcatUnchecked(string1, string2) {
1906 return _foreign_helper.JS_STRING_CONCAT(string1, string2); 1906 return _foreign_helper.JS_STRING_CONCAT(string1, string2);
1907 } 1907 }
1908 static flattenString(str) { 1908 static flattenString(str) {
1909 return str.charCodeAt(0) == 0 ? str : str; 1909 return str.charCodeAt(0) == 0 ? str : str;
1910 } 1910 }
1911 static getTimeZoneName(receiver) { 1911 static getTimeZoneName(receiver) {
1912 let d = Primitives.lazyAsJsDate(receiver); 1912 let d = Primitives.lazyAsJsDate(receiver);
1913 let match = dart.as(/\((.*)\)/.exec(d.toString()), core.List); 1913 let match = dart.as(/\((.*)\)/.exec(d.toString()), core.List);
1914 if (match !== null) 1914 if (match != null)
1915 return dart.as(match.get(1), core.String); 1915 return dart.as(match.get(1), core.String);
1916 match = dart.as(/^[A-Z,a-z]{3}\s[A-Z,a-z]{3}\s\d+\s\d{2}:\d{2}:\d{2}\s([A- Z]{3,5})\s\d{4}$/.exec(d.toString()), core.List); 1916 match = dart.as(/^[A-Z,a-z]{3}\s[A-Z,a-z]{3}\s\d+\s\d{2}:\d{2}:\d{2}\s([A- Z]{3,5})\s\d{4}$/.exec(d.toString()), core.List);
1917 if (match !== null) 1917 if (match != null)
1918 return dart.as(match.get(1), core.String); 1918 return dart.as(match.get(1), core.String);
1919 match = dart.as(/(?:GMT|UTC)[+-]\d{4}/.exec(d.toString()), core.List); 1919 match = dart.as(/(?:GMT|UTC)[+-]\d{4}/.exec(d.toString()), core.List);
1920 if (match !== null) 1920 if (match != null)
1921 return dart.as(match.get(0), core.String); 1921 return dart.as(match.get(0), core.String);
1922 return ""; 1922 return "";
1923 } 1923 }
1924 static getTimeZoneOffsetInMinutes(receiver) { 1924 static getTimeZoneOffsetInMinutes(receiver) {
1925 return -Primitives.lazyAsJsDate(receiver).getTimezoneOffset(); 1925 return -Primitives.lazyAsJsDate(receiver).getTimezoneOffset();
1926 } 1926 }
1927 static valueFromDecomposedDate(years, month, day, hours, minutes, seconds, m illiseconds, isUtc) { 1927 static valueFromDecomposedDate(years, month, day, hours, minutes, seconds, m illiseconds, isUtc) {
1928 let MAX_MILLISECONDS_SINCE_EPOCH = 8640000000000000; 1928 let MAX_MILLISECONDS_SINCE_EPOCH = 8640000000000000;
1929 checkInt(years); 1929 checkInt(years);
1930 checkInt(month); 1930 checkInt(month);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1990 } 1990 }
1991 static valueFromDateString(str) { 1991 static valueFromDateString(str) {
1992 if (!(typeof str == 'string')) 1992 if (!(typeof str == 'string'))
1993 throw new core.ArgumentError(str); 1993 throw new core.ArgumentError(str);
1994 let value = Date.parse(str); 1994 let value = Date.parse(str);
1995 if (value.isNaN) 1995 if (value.isNaN)
1996 throw new core.ArgumentError(str); 1996 throw new core.ArgumentError(str);
1997 return value; 1997 return value;
1998 } 1998 }
1999 static getProperty(object, key) { 1999 static getProperty(object, key) {
2000 if (dart.notNull(object === null) || dart.notNull(typeof object == 'boolea n') || dart.notNull(dart.is(object, core.num)) || dart.notNull(typeof object == 'string')) { 2000 if (dart.notNull(object == null) || dart.notNull(typeof object == 'boolean ') || dart.notNull(dart.is(object, core.num)) || dart.notNull(typeof object == ' string')) {
2001 throw new core.ArgumentError(object); 2001 throw new core.ArgumentError(object);
2002 } 2002 }
2003 return object[key]; 2003 return object[key];
2004 } 2004 }
2005 static setProperty(object, key, value) { 2005 static setProperty(object, key, value) {
2006 if (dart.notNull(object === null) || dart.notNull(typeof object == 'boolea n') || dart.notNull(dart.is(object, core.num)) || dart.notNull(typeof object == 'string')) { 2006 if (dart.notNull(object == null) || dart.notNull(typeof object == 'boolean ') || dart.notNull(dart.is(object, core.num)) || dart.notNull(typeof object == ' string')) {
2007 throw new core.ArgumentError(object); 2007 throw new core.ArgumentError(object);
2008 } 2008 }
2009 object[key] = value; 2009 object[key] = value;
2010 } 2010 }
2011 static functionNoSuchMethod(func, positionalArguments, namedArguments) { 2011 static functionNoSuchMethod(func, positionalArguments, namedArguments) {
2012 let argumentCount = 0; 2012 let argumentCount = 0;
2013 let arguments$ = new core.List.from([]); 2013 let arguments$ = new core.List.from([]);
2014 let namedArgumentList = new core.List.from([]); 2014 let namedArgumentList = new core.List.from([]);
2015 if (positionalArguments !== null) { 2015 if (positionalArguments != null) {
2016 argumentCount = positionalArguments.length; 2016 argumentCount = positionalArguments.length;
2017 arguments$.addAll(positionalArguments); 2017 arguments$.addAll(positionalArguments);
2018 } 2018 }
2019 let names = ''; 2019 let names = '';
2020 if (dart.notNull(namedArguments !== null) && !dart.notNull(namedArguments. isEmpty)) { 2020 if (dart.notNull(namedArguments != null) && !dart.notNull(namedArguments.i sEmpty)) {
2021 namedArguments.forEach(((name, argument) => { 2021 namedArguments.forEach(((name, argument) => {
2022 names = `${names}$${name}`; 2022 names = `${names}$${name}`;
2023 namedArgumentList.add(name); 2023 namedArgumentList.add(name);
2024 arguments$.add(argument); 2024 arguments$.add(argument);
2025 argumentCount = dart.notNull(argumentCount) + 1; 2025 argumentCount = dart.notNull(argumentCount) + 1;
2026 }).bind(this)); 2026 }).bind(this));
2027 } 2027 }
2028 let selectorName = `${_foreign_helper.JS_GET_NAME("CALL_PREFIX")}$${argume ntCount}${names}`; 2028 let selectorName = `${_foreign_helper.JS_GET_NAME("CALL_PREFIX")}$${argume ntCount}${names}`;
2029 return dart.dinvoke(func, 'noSuchMethod', createUnmangledInvocationMirror( dart.throw_("Unimplemented SymbolLiteral: #call"), selectorName, JSInvocationMir ror.METHOD, arguments$, namedArgumentList)); 2029 return dart.dinvoke(func, 'noSuchMethod', createUnmangledInvocationMirror( dart.throw_("Unimplemented SymbolLiteral: #call"), selectorName, JSInvocationMir ror.METHOD, arguments$, namedArgumentList));
2030 } 2030 }
2031 static applyFunction(func, positionalArguments, namedArguments) { 2031 static applyFunction(func, positionalArguments, namedArguments) {
2032 return namedArguments === null ? Primitives.applyFunctionWithPositionalArg uments(func, positionalArguments) : Primitives.applyFunctionWithNamedArguments(f unc, positionalArguments, namedArguments); 2032 return namedArguments == null ? Primitives.applyFunctionWithPositionalArgu ments(func, positionalArguments) : Primitives.applyFunctionWithNamedArguments(fu nc, positionalArguments, namedArguments);
2033 } 2033 }
2034 static applyFunctionWithPositionalArguments(func, positionalArguments) { 2034 static applyFunctionWithPositionalArguments(func, positionalArguments) {
2035 let argumentCount = 0; 2035 let argumentCount = 0;
2036 let arguments$ = null; 2036 let arguments$ = null;
2037 if (positionalArguments !== null) { 2037 if (positionalArguments != null) {
2038 if (positionalArguments instanceof Array) { 2038 if (positionalArguments instanceof Array) {
2039 arguments$ = positionalArguments; 2039 arguments$ = positionalArguments;
2040 } else { 2040 } else {
2041 arguments$ = new core.List.from(positionalArguments); 2041 arguments$ = new core.List.from(positionalArguments);
2042 } 2042 }
2043 argumentCount = arguments$.length; 2043 argumentCount = arguments$.length;
2044 } else { 2044 } else {
2045 arguments$ = new core.List.from([]); 2045 arguments$ = new core.List.from([]);
2046 } 2046 }
2047 let selectorName = `${_foreign_helper.JS_GET_NAME("CALL_PREFIX")}$${argume ntCount}`; 2047 let selectorName = `${_foreign_helper.JS_GET_NAME("CALL_PREFIX")}$${argume ntCount}`;
2048 let jsFunction = func[selectorName]; 2048 let jsFunction = func[selectorName];
2049 if (jsFunction === null) { 2049 if (jsFunction == null) {
2050 return Primitives.functionNoSuchMethod(func, positionalArguments, null); 2050 return Primitives.functionNoSuchMethod(func, positionalArguments, null);
2051 } 2051 }
2052 return jsFunction.apply(func, arguments$); 2052 return jsFunction.apply(func, arguments$);
2053 } 2053 }
2054 static applyFunctionWithNamedArguments(func, positionalArguments, namedArgum ents) { 2054 static applyFunctionWithNamedArguments(func, positionalArguments, namedArgum ents) {
2055 if (namedArguments.isEmpty) { 2055 if (namedArguments.isEmpty) {
2056 return Primitives.applyFunctionWithPositionalArguments(func, positionalA rguments); 2056 return Primitives.applyFunctionWithPositionalArguments(func, positionalA rguments);
2057 } 2057 }
2058 let interceptor = _interceptors.getInterceptor(func); 2058 let interceptor = _interceptors.getInterceptor(func);
2059 let jsFunction = interceptor["call*"]; 2059 let jsFunction = interceptor["call*"];
2060 if (jsFunction === null) { 2060 if (jsFunction == null) {
2061 return Primitives.functionNoSuchMethod(func, positionalArguments, namedA rguments); 2061 return Primitives.functionNoSuchMethod(func, positionalArguments, namedA rguments);
2062 } 2062 }
2063 let info = new ReflectionInfo(jsFunction); 2063 let info = new ReflectionInfo(jsFunction);
2064 if (dart.notNull(info === null) || !dart.notNull(info.areOptionalParameter sNamed)) { 2064 if (dart.notNull(info == null) || !dart.notNull(info.areOptionalParameters Named)) {
2065 return Primitives.functionNoSuchMethod(func, positionalArguments, namedA rguments); 2065 return Primitives.functionNoSuchMethod(func, positionalArguments, namedA rguments);
2066 } 2066 }
2067 if (positionalArguments !== null) { 2067 if (positionalArguments != null) {
2068 positionalArguments = new core.List.from(positionalArguments); 2068 positionalArguments = new core.List.from(positionalArguments);
2069 } else { 2069 } else {
2070 positionalArguments = new core.List.from([]); 2070 positionalArguments = new core.List.from([]);
2071 } 2071 }
2072 if (info.requiredParameterCount !== positionalArguments.length) { 2072 if (info.requiredParameterCount != positionalArguments.length) {
2073 return Primitives.functionNoSuchMethod(func, positionalArguments, namedA rguments); 2073 return Primitives.functionNoSuchMethod(func, positionalArguments, namedA rguments);
2074 } 2074 }
2075 let defaultArguments = new core.Map(); 2075 let defaultArguments = new core.Map();
2076 for (let i = 0; dart.notNull(i) < dart.notNull(info.optionalParameterCount ); i = dart.notNull(i) + 1) { 2076 for (let i = 0; dart.notNull(i) < dart.notNull(info.optionalParameterCount ); i = dart.notNull(i) + 1) {
2077 let index = dart.notNull(i) + dart.notNull(info.requiredParameterCount); 2077 let index = dart.notNull(i) + dart.notNull(info.requiredParameterCount);
2078 let parameterName = info.parameterNameInOrder(index); 2078 let parameterName = info.parameterNameInOrder(index);
2079 let value = info.defaultValueInOrder(index); 2079 let value = info.defaultValueInOrder(index);
2080 let defaultValue = getMetadata(value); 2080 let defaultValue = getMetadata(value);
2081 defaultArguments.set(parameterName, defaultValue); 2081 defaultArguments.set(parameterName, defaultValue);
2082 } 2082 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
2122 static update(cache, key, value) { 2122 static update(cache, key, value) {
2123 cache[key] = value; 2123 cache[key] = value;
2124 } 2124 }
2125 } 2125 }
2126 // Function iae: (dynamic) → dynamic 2126 // Function iae: (dynamic) → dynamic
2127 function iae(argument) { 2127 function iae(argument) {
2128 throw new core.ArgumentError(argument); 2128 throw new core.ArgumentError(argument);
2129 } 2129 }
2130 // Function ioore: (dynamic, dynamic) → dynamic 2130 // Function ioore: (dynamic, dynamic) → dynamic
2131 function ioore(receiver, index) { 2131 function ioore(receiver, index) {
2132 if (receiver === null) 2132 if (receiver == null)
2133 dart.dload(receiver, 'length'); 2133 dart.dload(receiver, 'length');
2134 if (!(typeof index == 'number')) 2134 if (!(typeof index == 'number'))
2135 iae(index); 2135 iae(index);
2136 throw new core.RangeError.value(dart.as(index, core.num)); 2136 throw new core.RangeError.value(dart.as(index, core.num));
2137 } 2137 }
2138 // Function stringLastIndexOfUnchecked: (dynamic, dynamic, dynamic) → dynamic 2138 // Function stringLastIndexOfUnchecked: (dynamic, dynamic, dynamic) → dynamic
2139 function stringLastIndexOfUnchecked(receiver, element, start) { 2139 function stringLastIndexOfUnchecked(receiver, element, start) {
2140 return receiver.lastIndexOf(element, start); 2140 return receiver.lastIndexOf(element, start);
2141 } 2141 }
2142 // Function checkNull: (dynamic) → dynamic 2142 // Function checkNull: (dynamic) → dynamic
2143 function checkNull(object) { 2143 function checkNull(object) {
2144 if (object === null) 2144 if (object == null)
2145 throw new core.ArgumentError(null); 2145 throw new core.ArgumentError(null);
2146 return object; 2146 return object;
2147 } 2147 }
2148 // Function checkNum: (dynamic) → dynamic 2148 // Function checkNum: (dynamic) → dynamic
2149 function checkNum(value) { 2149 function checkNum(value) {
2150 if (!dart.is(value, core.num)) { 2150 if (!dart.is(value, core.num)) {
2151 throw new core.ArgumentError(value); 2151 throw new core.ArgumentError(value);
2152 } 2152 }
2153 return value; 2153 return value;
2154 } 2154 }
(...skipping 13 matching lines...) Expand all
2168 } 2168 }
2169 // Function checkString: (dynamic) → dynamic 2169 // Function checkString: (dynamic) → dynamic
2170 function checkString(value) { 2170 function checkString(value) {
2171 if (!(typeof value == 'string')) { 2171 if (!(typeof value == 'string')) {
2172 throw new core.ArgumentError(value); 2172 throw new core.ArgumentError(value);
2173 } 2173 }
2174 return value; 2174 return value;
2175 } 2175 }
2176 // Function wrapException: (dynamic) → dynamic 2176 // Function wrapException: (dynamic) → dynamic
2177 function wrapException(ex) { 2177 function wrapException(ex) {
2178 if (ex === null) 2178 if (ex == null)
2179 ex = new core.NullThrownError(); 2179 ex = new core.NullThrownError();
2180 let wrapper = new Error(); 2180 let wrapper = new Error();
2181 wrapper.dartException = ex; 2181 wrapper.dartException = ex;
2182 if ("defineProperty" in Object) { 2182 if ("defineProperty" in Object) {
2183 Object.defineProperty(wrapper, "message", {get: _foreign_helper.DART_CLOSU RE_TO_JS(toStringWrapper)}); 2183 Object.defineProperty(wrapper, "message", {get: _foreign_helper.DART_CLOSU RE_TO_JS(toStringWrapper)});
2184 wrapper.name = ""; 2184 wrapper.name = "";
2185 } else { 2185 } else {
2186 wrapper.toString = _foreign_helper.DART_CLOSURE_TO_JS(toStringWrapper); 2186 wrapper.toString = _foreign_helper.DART_CLOSURE_TO_JS(toStringWrapper);
2187 } 2187 }
2188 return wrapper; 2188 return wrapper;
(...skipping 29 matching lines...) Expand all
2218 TypeErrorDecoder(arguments$, argumentsExpr$, expr$, method$, receiver$, patt ern$) { 2218 TypeErrorDecoder(arguments$, argumentsExpr$, expr$, method$, receiver$, patt ern$) {
2219 this[_arguments] = arguments$; 2219 this[_arguments] = arguments$;
2220 this[_argumentsExpr] = argumentsExpr$; 2220 this[_argumentsExpr] = argumentsExpr$;
2221 this[_expr] = expr$; 2221 this[_expr] = expr$;
2222 this[_method] = method$; 2222 this[_method] = method$;
2223 this[_receiver] = receiver$; 2223 this[_receiver] = receiver$;
2224 this[_pattern] = pattern$; 2224 this[_pattern] = pattern$;
2225 } 2225 }
2226 matchTypeError(message) { 2226 matchTypeError(message) {
2227 let match = new RegExp(this[_pattern]).exec(message); 2227 let match = new RegExp(this[_pattern]).exec(message);
2228 if (match === null) 2228 if (match == null)
2229 return null; 2229 return null;
2230 let result = Object.create(null); 2230 let result = Object.create(null);
2231 if (this[_arguments] !== -1) { 2231 if (this[_arguments] != -1) {
2232 result.arguments = match[this[_arguments] + 1]; 2232 result.arguments = match[this[_arguments] + 1];
2233 } 2233 }
2234 if (this[_argumentsExpr] !== -1) { 2234 if (this[_argumentsExpr] != -1) {
2235 result.argumentsExpr = match[this[_argumentsExpr] + 1]; 2235 result.argumentsExpr = match[this[_argumentsExpr] + 1];
2236 } 2236 }
2237 if (this[_expr] !== -1) { 2237 if (this[_expr] != -1) {
2238 result.expr = match[this[_expr] + 1]; 2238 result.expr = match[this[_expr] + 1];
2239 } 2239 }
2240 if (this[_method] !== -1) { 2240 if (this[_method] != -1) {
2241 result.method = match[this[_method] + 1]; 2241 result.method = match[this[_method] + 1];
2242 } 2242 }
2243 if (this[_receiver] !== -1) { 2243 if (this[_receiver] != -1) {
2244 result.receiver = match[this[_receiver] + 1]; 2244 result.receiver = match[this[_receiver] + 1];
2245 } 2245 }
2246 return result; 2246 return result;
2247 } 2247 }
2248 static buildJavaScriptObject() { 2248 static buildJavaScriptObject() {
2249 return { 2249 return {
2250 toString: function() { 2250 toString: function() {
2251 return "$receiver$"; 2251 return "$receiver$";
2252 } 2252 }
2253 }; 2253 };
2254 } 2254 }
2255 static buildJavaScriptObjectWithNonClosure() { 2255 static buildJavaScriptObjectWithNonClosure() {
2256 return { 2256 return {
2257 $method$: null, 2257 $method$: null,
2258 toString: function() { 2258 toString: function() {
2259 return "$receiver$"; 2259 return "$receiver$";
2260 } 2260 }
2261 }; 2261 };
2262 } 2262 }
2263 static extractPattern(message) { 2263 static extractPattern(message) {
2264 message = message.replace(String({}), '$receiver$'); 2264 message = message.replace(String({}), '$receiver$');
2265 message = message.replace(new RegExp(ESCAPE_REGEXP, 'g'), '\\$&'); 2265 message = message.replace(new RegExp(ESCAPE_REGEXP, 'g'), '\\$&');
2266 let match = dart.as(message.match(/\\\$[a-zA-Z]+\\\$/g), core.List$(core.S tring)); 2266 let match = dart.as(message.match(/\\\$[a-zA-Z]+\\\$/g), core.List$(core.S tring));
2267 if (match === null) 2267 if (match == null)
2268 match = dart.as(new core.List.from([]), core.List$(core.String)); 2268 match = dart.as(new core.List.from([]), core.List$(core.String));
2269 let arguments$ = match.indexOf('\\$arguments\\$'); 2269 let arguments$ = match.indexOf('\\$arguments\\$');
2270 let argumentsExpr = match.indexOf('\\$argumentsExpr\\$'); 2270 let argumentsExpr = match.indexOf('\\$argumentsExpr\\$');
2271 let expr = match.indexOf('\\$expr\\$'); 2271 let expr = match.indexOf('\\$expr\\$');
2272 let method = match.indexOf('\\$method\\$'); 2272 let method = match.indexOf('\\$method\\$');
2273 let receiver = match.indexOf('\\$receiver\\$'); 2273 let receiver = match.indexOf('\\$receiver\\$');
2274 let pattern = message.replace('\\$arguments\\$', '((?:x|[^x])*)').replace( '\\$argumentsExpr\\$', '((?:x|[^x])*)').replace('\\$expr\\$', '((?:x|[^x])*)').r eplace('\\$method\\$', '((?:x|[^x])*)').replace('\\$receiver\\$', '((?:x|[^x])*) '); 2274 let pattern = message.replace('\\$arguments\\$', '((?:x|[^x])*)').replace( '\\$argumentsExpr\\$', '((?:x|[^x])*)').replace('\\$expr\\$', '((?:x|[^x])*)').r eplace('\\$method\\$', '((?:x|[^x])*)').replace('\\$receiver\\$', '((?:x|[^x])*) ');
2275 return new TypeErrorDecoder(arguments$, argumentsExpr, expr, method, recei ver, pattern); 2275 return new TypeErrorDecoder(arguments$, argumentsExpr, expr, method, recei ver, pattern);
2276 } 2276 }
2277 static provokeCallErrorOn(expression) { 2277 static provokeCallErrorOn(expression) {
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
2373 return dart.as(TypeErrorDecoder.extractPattern(TypeErrorDecoder.provokePro pertyErrorOn(void 0)), TypeErrorDecoder); 2373 return dart.as(TypeErrorDecoder.extractPattern(TypeErrorDecoder.provokePro pertyErrorOn(void 0)), TypeErrorDecoder);
2374 }, 2374 },
2375 get undefinedLiteralPropertyPattern() { 2375 get undefinedLiteralPropertyPattern() {
2376 return dart.as(TypeErrorDecoder.extractPattern(TypeErrorDecoder.provokePro pertyErrorOnUndefined()), TypeErrorDecoder); 2376 return dart.as(TypeErrorDecoder.extractPattern(TypeErrorDecoder.provokePro pertyErrorOnUndefined()), TypeErrorDecoder);
2377 } 2377 }
2378 }); 2378 });
2379 let _message = Symbol('_message'); 2379 let _message = Symbol('_message');
2380 class NullError extends core.Error { 2380 class NullError extends core.Error {
2381 NullError(message$, match) { 2381 NullError(message$, match) {
2382 this[_message] = message$; 2382 this[_message] = message$;
2383 this[_method] = dart.as(match === null ? null : match.method, core.String) ; 2383 this[_method] = dart.as(match == null ? null : match.method, core.String);
2384 super.Error(); 2384 super.Error();
2385 } 2385 }
2386 toString() { 2386 toString() {
2387 if (this[_method] === null) 2387 if (this[_method] == null)
2388 return `NullError: ${this[_message]}`; 2388 return `NullError: ${this[_message]}`;
2389 return `NullError: Cannot call "${this[_method]}" on null`; 2389 return `NullError: Cannot call "${this[_method]}" on null`;
2390 } 2390 }
2391 } 2391 }
2392 class JsNoSuchMethodError extends core.Error { 2392 class JsNoSuchMethodError extends core.Error {
2393 JsNoSuchMethodError(message$, match) { 2393 JsNoSuchMethodError(message$, match) {
2394 this[_message] = message$; 2394 this[_message] = message$;
2395 this[_method] = dart.as(match === null ? null : match.method, core.String) ; 2395 this[_method] = dart.as(match == null ? null : match.method, core.String);
2396 this[_receiver] = dart.as(match === null ? null : match.receiver, core.Str ing); 2396 this[_receiver] = dart.as(match == null ? null : match.receiver, core.Stri ng);
2397 super.Error(); 2397 super.Error();
2398 } 2398 }
2399 toString() { 2399 toString() {
2400 if (this[_method] === null) 2400 if (this[_method] == null)
2401 return `NoSuchMethodError: ${this[_message]}`; 2401 return `NoSuchMethodError: ${this[_message]}`;
2402 if (this[_receiver] === null) { 2402 if (this[_receiver] == null) {
2403 return `NoSuchMethodError: Cannot call "${this[_method]}" (${this[_messa ge]})`; 2403 return `NoSuchMethodError: Cannot call "${this[_method]}" (${this[_messa ge]})`;
2404 } 2404 }
2405 return `NoSuchMethodError: Cannot call "${this[_method]}" on "${this[_rece iver]}" ` + `(${this[_message]})`; 2405 return `NoSuchMethodError: Cannot call "${this[_method]}" on "${this[_rece iver]}" ` + `(${this[_message]})`;
2406 } 2406 }
2407 } 2407 }
2408 class UnknownJsTypeError extends core.Error { 2408 class UnknownJsTypeError extends core.Error {
2409 UnknownJsTypeError(message$) { 2409 UnknownJsTypeError(message$) {
2410 this[_message] = message$; 2410 this[_message] = message$;
2411 super.Error(); 2411 super.Error();
2412 } 2412 }
2413 toString() { 2413 toString() {
2414 return this[_message].isEmpty ? 'Error' : `Error: ${this[_message]}`; 2414 return this[_message].isEmpty ? 'Error' : `Error: ${this[_message]}`;
2415 } 2415 }
2416 } 2416 }
2417 // Function unwrapException: (dynamic) → dynamic 2417 // Function unwrapException: (dynamic) → dynamic
2418 function unwrapException(ex) { 2418 function unwrapException(ex) {
2419 // Function saveStackTrace: (dynamic) → dynamic 2419 // Function saveStackTrace: (dynamic) → dynamic
2420 function saveStackTrace(error) { 2420 function saveStackTrace(error) {
2421 if (dart.is(error, core.Error)) { 2421 if (dart.is(error, core.Error)) {
2422 let thrownStackTrace = error.$thrownJsError; 2422 let thrownStackTrace = error.$thrownJsError;
2423 if (thrownStackTrace === null) { 2423 if (thrownStackTrace == null) {
2424 error.$thrownJsError = ex; 2424 error.$thrownJsError = ex;
2425 } 2425 }
2426 } 2426 }
2427 return error; 2427 return error;
2428 } 2428 }
2429 if (ex === null) 2429 if (ex == null)
2430 return null; 2430 return null;
2431 if (typeof ex !== "object") 2431 if (typeof ex !== "object")
2432 return ex; 2432 return ex;
2433 if ("dartException" in ex) { 2433 if ("dartException" in ex) {
2434 return saveStackTrace(ex.dartException); 2434 return saveStackTrace(ex.dartException);
2435 } else if (!("message" in ex)) { 2435 } else if (!("message" in ex)) {
2436 return ex; 2436 return ex;
2437 } 2437 }
2438 let message = ex.message; 2438 let message = ex.message;
2439 if ("number" in ex && typeof ex.number == "number") { 2439 if ("number" in ex && typeof ex.number == "number") {
2440 let number = ex.number; 2440 let number = ex.number;
2441 let ieErrorCode = dart.notNull(number) & 65535; 2441 let ieErrorCode = dart.notNull(number) & 65535;
2442 let ieFacilityNumber = dart.notNull(number) >> 16 & 8191; 2442 let ieFacilityNumber = dart.notNull(number) >> 16 & 8191;
2443 if (ieFacilityNumber === 10) { 2443 if (ieFacilityNumber == 10) {
2444 switch (ieErrorCode) { 2444 switch (ieErrorCode) {
2445 case 438: 2445 case 438:
2446 { 2446 {
2447 return saveStackTrace(new JsNoSuchMethodError(`${message} (Error ${i eErrorCode})`, null)); 2447 return saveStackTrace(new JsNoSuchMethodError(`${message} (Error ${i eErrorCode})`, null));
2448 } 2448 }
2449 case 445: 2449 case 445:
2450 case 5007: 2450 case 5007:
2451 { 2451 {
2452 return saveStackTrace(new NullError(`${message} (Error ${ieErrorCode })`, null)); 2452 return saveStackTrace(new NullError(`${message} (Error ${ieErrorCode })`, null));
2453 } 2453 }
2454 } 2454 }
2455 } 2455 }
2456 } 2456 }
2457 if (ex instanceof TypeError) { 2457 if (ex instanceof TypeError) {
2458 let match = null; 2458 let match = null;
2459 let nsme = TypeErrorDecoder.noSuchMethodPattern; 2459 let nsme = TypeErrorDecoder.noSuchMethodPattern;
2460 let notClosure = TypeErrorDecoder.notClosurePattern; 2460 let notClosure = TypeErrorDecoder.notClosurePattern;
2461 let nullCall = TypeErrorDecoder.nullCallPattern; 2461 let nullCall = TypeErrorDecoder.nullCallPattern;
2462 let nullLiteralCall = TypeErrorDecoder.nullLiteralCallPattern; 2462 let nullLiteralCall = TypeErrorDecoder.nullLiteralCallPattern;
2463 let undefCall = TypeErrorDecoder.undefinedCallPattern; 2463 let undefCall = TypeErrorDecoder.undefinedCallPattern;
2464 let undefLiteralCall = TypeErrorDecoder.undefinedLiteralCallPattern; 2464 let undefLiteralCall = TypeErrorDecoder.undefinedLiteralCallPattern;
2465 let nullProperty = TypeErrorDecoder.nullPropertyPattern; 2465 let nullProperty = TypeErrorDecoder.nullPropertyPattern;
2466 let nullLiteralProperty = TypeErrorDecoder.nullLiteralPropertyPattern; 2466 let nullLiteralProperty = TypeErrorDecoder.nullLiteralPropertyPattern;
2467 let undefProperty = TypeErrorDecoder.undefinedPropertyPattern; 2467 let undefProperty = TypeErrorDecoder.undefinedPropertyPattern;
2468 let undefLiteralProperty = TypeErrorDecoder.undefinedLiteralPropertyPatter n; 2468 let undefLiteralProperty = TypeErrorDecoder.undefinedLiteralPropertyPatter n;
2469 if ((match = dart.dinvoke(nsme, 'matchTypeError', message)) !== null) { 2469 if ((match = dart.dinvoke(nsme, 'matchTypeError', message)) != null) {
2470 return saveStackTrace(new JsNoSuchMethodError(dart.as(message, core.Stri ng), match)); 2470 return saveStackTrace(new JsNoSuchMethodError(dart.as(message, core.Stri ng), match));
2471 } else if ((match = dart.dinvoke(notClosure, 'matchTypeError', message)) ! == null) { 2471 } else if ((match = dart.dinvoke(notClosure, 'matchTypeError', message)) ! = null) {
2472 match.method = "call"; 2472 match.method = "call";
2473 return saveStackTrace(new JsNoSuchMethodError(dart.as(message, core.Stri ng), match)); 2473 return saveStackTrace(new JsNoSuchMethodError(dart.as(message, core.Stri ng), match));
2474 } else if (dart.notNull((match = dart.dinvoke(nullCall, 'matchTypeError', message)) !== null) || dart.notNull((match = dart.dinvoke(nullLiteralCall, 'matc hTypeError', message)) !== null) || dart.notNull((match = dart.dinvoke(undefCall , 'matchTypeError', message)) !== null) || dart.notNull((match = dart.dinvoke(un defLiteralCall, 'matchTypeError', message)) !== null) || dart.notNull((match = d art.dinvoke(nullProperty, 'matchTypeError', message)) !== null) || dart.notNull( (match = dart.dinvoke(nullLiteralCall, 'matchTypeError', message)) !== null) || dart.notNull((match = dart.dinvoke(undefProperty, 'matchTypeError', message)) != = null) || dart.notNull((match = dart.dinvoke(undefLiteralProperty, 'matchTypeEr ror', message)) !== null)) { 2474 } else if (dart.notNull((match = dart.dinvoke(nullCall, 'matchTypeError', message)) != null) || dart.notNull((match = dart.dinvoke(nullLiteralCall, 'match TypeError', message)) != null) || dart.notNull((match = dart.dinvoke(undefCall, 'matchTypeError', message)) != null) || dart.notNull((match = dart.dinvoke(undef LiteralCall, 'matchTypeError', message)) != null) || dart.notNull((match = dart. dinvoke(nullProperty, 'matchTypeError', message)) != null) || dart.notNull((matc h = dart.dinvoke(nullLiteralCall, 'matchTypeError', message)) != null) || dart.n otNull((match = dart.dinvoke(undefProperty, 'matchTypeError', message)) != null) || dart.notNull((match = dart.dinvoke(undefLiteralProperty, 'matchTypeError', m essage)) != null)) {
2475 return saveStackTrace(new NullError(dart.as(message, core.String), match )); 2475 return saveStackTrace(new NullError(dart.as(message, core.String), match ));
2476 } 2476 }
2477 return saveStackTrace(new UnknownJsTypeError(dart.as(typeof message == 'st ring' ? message : '', core.String))); 2477 return saveStackTrace(new UnknownJsTypeError(dart.as(typeof message == 'st ring' ? message : '', core.String)));
2478 } 2478 }
2479 if (ex instanceof RangeError) { 2479 if (ex instanceof RangeError) {
2480 if (dart.notNull(typeof message == 'string') && dart.notNull(contains(dart .as(message, core.String), 'call stack'))) { 2480 if (dart.notNull(typeof message == 'string') && dart.notNull(contains(dart .as(message, core.String), 'call stack'))) {
2481 return new core.StackOverflowError(); 2481 return new core.StackOverflowError();
2482 } 2482 }
2483 return saveStackTrace(new core.ArgumentError()); 2483 return saveStackTrace(new core.ArgumentError());
2484 } 2484 }
2485 if (typeof InternalError == "function" && ex instanceof InternalError) { 2485 if (typeof InternalError == "function" && ex instanceof InternalError) {
2486 if (dart.notNull(typeof message == 'string') && dart.notNull(dart.equals(m essage, 'too much recursion'))) { 2486 if (dart.notNull(typeof message == 'string') && dart.notNull(dart.equals(m essage, 'too much recursion'))) {
2487 return new core.StackOverflowError(); 2487 return new core.StackOverflowError();
2488 } 2488 }
2489 } 2489 }
2490 return ex; 2490 return ex;
2491 } 2491 }
2492 // Function getTraceFromException: (dynamic) → StackTrace 2492 // Function getTraceFromException: (dynamic) → StackTrace
2493 function getTraceFromException(exception) { 2493 function getTraceFromException(exception) {
2494 return new _StackTrace(exception); 2494 return new _StackTrace(exception);
2495 } 2495 }
2496 let _exception = Symbol('_exception'); 2496 let _exception = Symbol('_exception');
2497 let _trace = Symbol('_trace'); 2497 let _trace = Symbol('_trace');
2498 class _StackTrace extends core.Object { 2498 class _StackTrace extends core.Object {
2499 _StackTrace(exception$) { 2499 _StackTrace(exception$) {
2500 this[_exception] = exception$; 2500 this[_exception] = exception$;
2501 this[_trace] = null; 2501 this[_trace] = null;
2502 } 2502 }
2503 toString() { 2503 toString() {
2504 if (this[_trace] !== null) 2504 if (this[_trace] != null)
2505 return this[_trace]; 2505 return this[_trace];
2506 let trace = null; 2506 let trace = null;
2507 if (typeof this[_exception] === "object") { 2507 if (typeof this[_exception] === "object") {
2508 trace = dart.as(this[_exception].stack, core.String); 2508 trace = dart.as(this[_exception].stack, core.String);
2509 } 2509 }
2510 return this[_trace] = trace === null ? '' : trace; 2510 return this[_trace] = trace == null ? '' : trace;
2511 } 2511 }
2512 } 2512 }
2513 // Function objectHashCode: (dynamic) → int 2513 // Function objectHashCode: (dynamic) → int
2514 function objectHashCode(object) { 2514 function objectHashCode(object) {
2515 if (dart.notNull(object === null) || typeof object != 'object') { 2515 if (dart.notNull(object == null) || typeof object != 'object') {
2516 return dart.as(dart.dload(object, 'hashCode'), core.int); 2516 return dart.as(dart.dload(object, 'hashCode'), core.int);
2517 } else { 2517 } else {
2518 return Primitives.objectHashCode(object); 2518 return Primitives.objectHashCode(object);
2519 } 2519 }
2520 } 2520 }
2521 // Function fillLiteralMap: (dynamic, Map<dynamic, dynamic>) → dynamic 2521 // Function fillLiteralMap: (dynamic, Map<dynamic, dynamic>) → dynamic
2522 function fillLiteralMap(keyValuePairs, result) { 2522 function fillLiteralMap(keyValuePairs, result) {
2523 let index = 0; 2523 let index = 0;
2524 let length = getLength(keyValuePairs); 2524 let length = getLength(keyValuePairs);
2525 while (dart.notNull(index) < dart.notNull(length)) { 2525 while (dart.notNull(index) < dart.notNull(length)) {
2526 let key = getIndex(keyValuePairs, ((x$) => index = dart.notNull(x$) + 1, x $)(index)); 2526 let key = getIndex(keyValuePairs, ((x$) => index = dart.notNull(x$) + 1, x $)(index));
2527 let value = getIndex(keyValuePairs, ((x$) => index = dart.notNull(x$) + 1, x$)(index)); 2527 let value = getIndex(keyValuePairs, ((x$) => index = dart.notNull(x$) + 1, x$)(index));
2528 result.set(key, value); 2528 result.set(key, value);
2529 } 2529 }
2530 return result; 2530 return result;
2531 } 2531 }
2532 // Function invokeClosure: (Function, dynamic, int, dynamic, dynamic, dynamic, dynamic) → dynamic 2532 // Function invokeClosure: (Function, dynamic, int, dynamic, dynamic, dynamic, dynamic) → dynamic
2533 function invokeClosure(closure, isolate, numberOfArguments, arg1, arg2, arg3, arg4) { 2533 function invokeClosure(closure, isolate, numberOfArguments, arg1, arg2, arg3, arg4) {
2534 if (numberOfArguments === 0) { 2534 if (numberOfArguments == 0) {
2535 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dinvokef(clo sure)); 2535 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dinvokef(clo sure));
2536 } else if (numberOfArguments === 1) { 2536 } else if (numberOfArguments == 1) {
2537 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dinvokef(clo sure, arg1)); 2537 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dinvokef(clo sure, arg1));
2538 } else if (numberOfArguments === 2) { 2538 } else if (numberOfArguments == 2) {
2539 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dinvokef(clo sure, arg1, arg2)); 2539 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dinvokef(clo sure, arg1, arg2));
2540 } else if (numberOfArguments === 3) { 2540 } else if (numberOfArguments == 3) {
2541 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dinvokef(clo sure, arg1, arg2, arg3)); 2541 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dinvokef(clo sure, arg1, arg2, arg3));
2542 } else if (numberOfArguments === 4) { 2542 } else if (numberOfArguments == 4) {
2543 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dinvokef(clo sure, arg1, arg2, arg3, arg4)); 2543 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dinvokef(clo sure, arg1, arg2, arg3, arg4));
2544 } else { 2544 } else {
2545 throw new core.Exception('Unsupported number of arguments for wrapped clos ure'); 2545 throw new core.Exception('Unsupported number of arguments for wrapped clos ure');
2546 } 2546 }
2547 } 2547 }
2548 // Function convertDartClosureToJS: (dynamic, int) → dynamic 2548 // Function convertDartClosureToJS: (dynamic, int) → dynamic
2549 function convertDartClosureToJS(closure, arity) { 2549 function convertDartClosureToJS(closure, arity) {
2550 if (closure === null) 2550 if (closure == null)
2551 return null; 2551 return null;
2552 let func = closure.$identity; 2552 let func = closure.$identity;
2553 if (!!func) 2553 if (!!func)
2554 return func; 2554 return func;
2555 func = function(closure, arity, context, invoke) { 2555 func = function(closure, arity, context, invoke) {
2556 return function(a1, a2, a3, a4) { 2556 return function(a1, a2, a3, a4) {
2557 return invoke(closure, context, arity, a1, a2, a3, a4); 2557 return invoke(closure, context, arity, a1, a2, a3, a4);
2558 }; 2558 };
2559 }(closure, arity, _foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _foreign_hel per.DART_CLOSURE_TO_JS(invokeClosure)); 2559 }(closure, arity, _foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _foreign_hel per.DART_CLOSURE_TO_JS(invokeClosure));
2560 closure.$identity = func; 2560 closure.$identity = func;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
2610 }; 2610 };
2611 }(functionType, getReceiver); 2611 }(functionType, getReceiver);
2612 } else { 2612 } else {
2613 throw 'Error in reflectionInfo.'; 2613 throw 'Error in reflectionInfo.';
2614 } 2614 }
2615 prototype[_foreign_helper.JS_SIGNATURE_NAME()] = signatureFunction; 2615 prototype[_foreign_helper.JS_SIGNATURE_NAME()] = signatureFunction;
2616 prototype[callName] = trampoline; 2616 prototype[callName] = trampoline;
2617 for (let i = 1; dart.notNull(i) < dart.notNull(functions.length); i = dart .notNull(i) + 1) { 2617 for (let i = 1; dart.notNull(i) < dart.notNull(functions.length); i = dart .notNull(i) + 1) {
2618 let stub = functions.get(i); 2618 let stub = functions.get(i);
2619 let stubCallName = stub.$callName; 2619 let stubCallName = stub.$callName;
2620 if (stubCallName !== null) { 2620 if (stubCallName != null) {
2621 prototype[stubCallName] = isStatic ? stub : Closure.forwardCallTo(rece iver, stub, isIntercepted); 2621 prototype[stubCallName] = isStatic ? stub : Closure.forwardCallTo(rece iver, stub, isIntercepted);
2622 } 2622 }
2623 } 2623 }
2624 prototype["call*"] = trampoline; 2624 prototype["call*"] = trampoline;
2625 return constructor; 2625 return constructor;
2626 } 2626 }
2627 static cspForwardCall(arity, isSuperCall, stubName, func) { 2627 static cspForwardCall(arity, isSuperCall, stubName, func) {
2628 let getSelf = _foreign_helper.RAW_DART_FUNCTION_REF(BoundClosure.selfOf); 2628 let getSelf = _foreign_helper.RAW_DART_FUNCTION_REF(BoundClosure.selfOf);
2629 if (isSuperCall) 2629 if (isSuperCall)
2630 arity = -1; 2630 arity = -1;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
2693 static forwardCallTo(receiver, func, isIntercepted) { 2693 static forwardCallTo(receiver, func, isIntercepted) {
2694 if (isIntercepted) 2694 if (isIntercepted)
2695 return Closure.forwardInterceptedCallTo(receiver, func); 2695 return Closure.forwardInterceptedCallTo(receiver, func);
2696 let stubName = dart.as(func.$stubName, core.String); 2696 let stubName = dart.as(func.$stubName, core.String);
2697 let arity = func.length; 2697 let arity = func.length;
2698 let lookedUpFunction = receiver[stubName]; 2698 let lookedUpFunction = receiver[stubName];
2699 let isSuperCall = !dart.notNull(core.identical(func, lookedUpFunction)); 2699 let isSuperCall = !dart.notNull(core.identical(func, lookedUpFunction));
2700 if (dart.notNull(Closure.isCsp) || dart.notNull(isSuperCall) || dart.notNu ll(arity) >= 27) { 2700 if (dart.notNull(Closure.isCsp) || dart.notNull(isSuperCall) || dart.notNu ll(arity) >= 27) {
2701 return Closure.cspForwardCall(arity, isSuperCall, stubName, func); 2701 return Closure.cspForwardCall(arity, isSuperCall, stubName, func);
2702 } 2702 }
2703 if (arity === 0) { 2703 if (arity == 0) {
2704 return new Function('return function(){' + `return this.${BoundClosure.s elfFieldName()}.${stubName}();` + `${((x$) => Closure.functionCounter = dart.not Null(x$) + 1, x$)(Closure.functionCounter)}` + '}')(); 2704 return new Function('return function(){' + `return this.${BoundClosure.s elfFieldName()}.${stubName}();` + `${((x$) => Closure.functionCounter = dart.not Null(x$) + 1, x$)(Closure.functionCounter)}` + '}')();
2705 } 2705 }
2706 dart.assert(1 <= dart.notNull(arity) && dart.notNull(arity) < 27); 2706 dart.assert(1 <= dart.notNull(arity) && dart.notNull(arity) < 27);
2707 let arguments$ = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity).j oin(","); 2707 let arguments$ = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity).j oin(",");
2708 return new Function(`return function(${arguments$}){` + `return this.${Bou ndClosure.selfFieldName()}.${stubName}(${arguments$});` + `${((x$) => Closure.fu nctionCounter = dart.notNull(x$) + 1, x$)(Closure.functionCounter)}` + '}')(); 2708 return new Function(`return function(${arguments$}){` + `return this.${Bou ndClosure.selfFieldName()}.${stubName}(${arguments$});` + `${((x$) => Closure.fu nctionCounter = dart.notNull(x$) + 1, x$)(Closure.functionCounter)}` + '}')();
2709 } 2709 }
2710 static cspForwardInterceptedCall(arity, isSuperCall, name, func) { 2710 static cspForwardInterceptedCall(arity, isSuperCall, name, func) {
2711 let getSelf = _foreign_helper.RAW_DART_FUNCTION_REF(BoundClosure.selfOf); 2711 let getSelf = _foreign_helper.RAW_DART_FUNCTION_REF(BoundClosure.selfOf);
2712 let getReceiver = _foreign_helper.RAW_DART_FUNCTION_REF(BoundClosure.recei verOf); 2712 let getReceiver = _foreign_helper.RAW_DART_FUNCTION_REF(BoundClosure.recei verOf);
2713 if (isSuperCall) 2713 if (isSuperCall)
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
2781 let selfField = BoundClosure.selfFieldName(); 2781 let selfField = BoundClosure.selfFieldName();
2782 let receiverField = BoundClosure.receiverFieldName(); 2782 let receiverField = BoundClosure.receiverFieldName();
2783 let stubName = dart.as(func.$stubName, core.String); 2783 let stubName = dart.as(func.$stubName, core.String);
2784 let arity = func.length; 2784 let arity = func.length;
2785 let isCsp = typeof dart_precompiled == "function"; 2785 let isCsp = typeof dart_precompiled == "function";
2786 let lookedUpFunction = receiver[stubName]; 2786 let lookedUpFunction = receiver[stubName];
2787 let isSuperCall = !dart.notNull(core.identical(func, lookedUpFunction)); 2787 let isSuperCall = !dart.notNull(core.identical(func, lookedUpFunction));
2788 if (dart.notNull(isCsp) || dart.notNull(isSuperCall) || dart.notNull(arity ) >= 28) { 2788 if (dart.notNull(isCsp) || dart.notNull(isSuperCall) || dart.notNull(arity ) >= 28) {
2789 return Closure.cspForwardInterceptedCall(arity, isSuperCall, stubName, f unc); 2789 return Closure.cspForwardInterceptedCall(arity, isSuperCall, stubName, f unc);
2790 } 2790 }
2791 if (arity === 1) { 2791 if (arity == 1) {
2792 return new Function('return function(){' + `return this.${selfField}.${s tubName}(this.${receiverField});` + `${((x$) => Closure.functionCounter = dart.n otNull(x$) + 1, x$)(Closure.functionCounter)}` + '}')(); 2792 return new Function('return function(){' + `return this.${selfField}.${s tubName}(this.${receiverField});` + `${((x$) => Closure.functionCounter = dart.n otNull(x$) + 1, x$)(Closure.functionCounter)}` + '}')();
2793 } 2793 }
2794 dart.assert(1 < dart.notNull(arity) && dart.notNull(arity) < 28); 2794 dart.assert(1 < dart.notNull(arity) && dart.notNull(arity) < 28);
2795 let arguments$ = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, dart.not Null(arity) - 1).join(","); 2795 let arguments$ = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, dart.not Null(arity) - 1).join(",");
2796 return new Function(`return function(${arguments$}){` + `return this.${sel fField}.${stubName}(this.${receiverField}, ${arguments$});` + `${((x$) => Closur e.functionCounter = dart.notNull(x$) + 1, x$)(Closure.functionCounter)}` + '}')( ); 2796 return new Function(`return function(${arguments$}){` + `return this.${sel fField}.${stubName}(this.${receiverField}, ${arguments$});` + `${((x$) => Closur e.functionCounter = dart.notNull(x$) + 1, x$)(Closure.functionCounter)}` + '}')( );
2797 } 2797 }
2798 toString() { 2798 toString() {
2799 return "Closure"; 2799 return "Closure";
2800 } 2800 }
2801 } 2801 }
(...skipping 23 matching lines...) Expand all
2825 } 2825 }
2826 ['=='](other) { 2826 ['=='](other) {
2827 if (core.identical(this, other)) 2827 if (core.identical(this, other))
2828 return true; 2828 return true;
2829 if (!dart.is(other, BoundClosure)) 2829 if (!dart.is(other, BoundClosure))
2830 return false; 2830 return false;
2831 return this[_self] === dart.dload(other, '_self') && this[_target] === dar t.dload(other, '_target') && this[_receiver] === dart.dload(other, '_receiver'); 2831 return this[_self] === dart.dload(other, '_self') && this[_target] === dar t.dload(other, '_target') && this[_receiver] === dart.dload(other, '_receiver');
2832 } 2832 }
2833 get hashCode() { 2833 get hashCode() {
2834 let receiverHashCode = null; 2834 let receiverHashCode = null;
2835 if (this[_receiver] === null) { 2835 if (this[_receiver] == null) {
2836 receiverHashCode = Primitives.objectHashCode(this[_self]); 2836 receiverHashCode = Primitives.objectHashCode(this[_self]);
2837 } else if (!dart.equals(typeof this[_receiver], 'object')) { 2837 } else if (typeof this[_receiver] != 'object') {
2838 receiverHashCode = dart.as(dart.dload(this[_receiver], 'hashCode'), core .int); 2838 receiverHashCode = dart.as(dart.dload(this[_receiver], 'hashCode'), core .int);
2839 } else { 2839 } else {
2840 receiverHashCode = Primitives.objectHashCode(this[_receiver]); 2840 receiverHashCode = Primitives.objectHashCode(this[_receiver]);
2841 } 2841 }
2842 return dart.notNull(receiverHashCode) ^ dart.notNull(Primitives.objectHash Code(this[_target])); 2842 return dart.notNull(receiverHashCode) ^ dart.notNull(Primitives.objectHash Code(this[_target]));
2843 } 2843 }
2844 static selfOf(closure) { 2844 static selfOf(closure) {
2845 return closure[_self]; 2845 return closure[_self];
2846 } 2846 }
2847 static targetOf(closure) { 2847 static targetOf(closure) {
2848 return closure[_target]; 2848 return closure[_target];
2849 } 2849 }
2850 static receiverOf(closure) { 2850 static receiverOf(closure) {
2851 return closure[_receiver]; 2851 return closure[_receiver];
2852 } 2852 }
2853 static nameOf(closure) { 2853 static nameOf(closure) {
2854 return closure[_name]; 2854 return closure[_name];
2855 } 2855 }
2856 static selfFieldName() { 2856 static selfFieldName() {
2857 if (BoundClosure.selfFieldNameCache === null) { 2857 if (BoundClosure.selfFieldNameCache == null) {
2858 BoundClosure.selfFieldNameCache = BoundClosure.computeFieldNamed('self') ; 2858 BoundClosure.selfFieldNameCache = BoundClosure.computeFieldNamed('self') ;
2859 } 2859 }
2860 return BoundClosure.selfFieldNameCache; 2860 return BoundClosure.selfFieldNameCache;
2861 } 2861 }
2862 static receiverFieldName() { 2862 static receiverFieldName() {
2863 if (BoundClosure.receiverFieldNameCache === null) { 2863 if (BoundClosure.receiverFieldNameCache == null) {
2864 BoundClosure.receiverFieldNameCache = BoundClosure.computeFieldNamed('re ceiver'); 2864 BoundClosure.receiverFieldNameCache = BoundClosure.computeFieldNamed('re ceiver');
2865 } 2865 }
2866 return BoundClosure.receiverFieldNameCache; 2866 return BoundClosure.receiverFieldNameCache;
2867 } 2867 }
2868 static computeFieldNamed(fieldName) { 2868 static computeFieldNamed(fieldName) {
2869 let template = new BoundClosure('self', 'target', 'receiver', 'name'); 2869 let template = new BoundClosure('self', 'target', 'receiver', 'name');
2870 let names = _interceptors.JSArray.markFixedList(dart.as(Object.getOwnPrope rtyNames(template), core.List)); 2870 let names = _interceptors.JSArray.markFixedList(dart.as(Object.getOwnPrope rtyNames(template), core.List));
2871 for (let i = 0; dart.notNull(i) < dart.notNull(names.length); i = dart.not Null(i) + 1) { 2871 for (let i = 0; dart.notNull(i) < dart.notNull(names.length); i = dart.not Null(i) + 1) {
2872 let name = names.get(i); 2872 let name = names.get(i);
2873 if (template[name] === fieldName) { 2873 if (template[name] === fieldName) {
(...skipping 29 matching lines...) Expand all
2903 class JSName extends core.Object { 2903 class JSName extends core.Object {
2904 JSName(name) { 2904 JSName(name) {
2905 this.name = name; 2905 this.name = name;
2906 } 2906 }
2907 } 2907 }
2908 // Function boolConversionCheck: (dynamic) → dynamic 2908 // Function boolConversionCheck: (dynamic) → dynamic
2909 function boolConversionCheck(value) { 2909 function boolConversionCheck(value) {
2910 if (typeof value == 'boolean') 2910 if (typeof value == 'boolean')
2911 return value; 2911 return value;
2912 boolTypeCheck(value); 2912 boolTypeCheck(value);
2913 dart.assert(value !== null); 2913 dart.assert(value != null);
2914 return false; 2914 return false;
2915 } 2915 }
2916 // Function stringTypeCheck: (dynamic) → dynamic 2916 // Function stringTypeCheck: (dynamic) → dynamic
2917 function stringTypeCheck(value) { 2917 function stringTypeCheck(value) {
2918 if (value === null) 2918 if (value == null)
2919 return value; 2919 return value;
2920 if (typeof value == 'string') 2920 if (typeof value == 'string')
2921 return value; 2921 return value;
2922 throw new TypeErrorImplementation(value, 'String'); 2922 throw new TypeErrorImplementation(value, 'String');
2923 } 2923 }
2924 // Function stringTypeCast: (dynamic) → dynamic 2924 // Function stringTypeCast: (dynamic) → dynamic
2925 function stringTypeCast(value) { 2925 function stringTypeCast(value) {
2926 if (dart.notNull(typeof value == 'string') || dart.notNull(value === null)) 2926 if (dart.notNull(typeof value == 'string') || dart.notNull(value == null))
2927 return value; 2927 return value;
2928 throw new CastErrorImplementation(Primitives.objectTypeName(value), 'String' ); 2928 throw new CastErrorImplementation(Primitives.objectTypeName(value), 'String' );
2929 } 2929 }
2930 // Function doubleTypeCheck: (dynamic) → dynamic 2930 // Function doubleTypeCheck: (dynamic) → dynamic
2931 function doubleTypeCheck(value) { 2931 function doubleTypeCheck(value) {
2932 if (value === null) 2932 if (value == null)
2933 return value; 2933 return value;
2934 if (typeof value == 'number') 2934 if (typeof value == 'number')
2935 return value; 2935 return value;
2936 throw new TypeErrorImplementation(value, 'double'); 2936 throw new TypeErrorImplementation(value, 'double');
2937 } 2937 }
2938 // Function doubleTypeCast: (dynamic) → dynamic 2938 // Function doubleTypeCast: (dynamic) → dynamic
2939 function doubleTypeCast(value) { 2939 function doubleTypeCast(value) {
2940 if (dart.notNull(typeof value == 'number') || dart.notNull(value === null)) 2940 if (dart.notNull(typeof value == 'number') || dart.notNull(value == null))
2941 return value; 2941 return value;
2942 throw new CastErrorImplementation(Primitives.objectTypeName(value), 'double' ); 2942 throw new CastErrorImplementation(Primitives.objectTypeName(value), 'double' );
2943 } 2943 }
2944 // Function numTypeCheck: (dynamic) → dynamic 2944 // Function numTypeCheck: (dynamic) → dynamic
2945 function numTypeCheck(value) { 2945 function numTypeCheck(value) {
2946 if (value === null) 2946 if (value == null)
2947 return value; 2947 return value;
2948 if (dart.is(value, core.num)) 2948 if (dart.is(value, core.num))
2949 return value; 2949 return value;
2950 throw new TypeErrorImplementation(value, 'num'); 2950 throw new TypeErrorImplementation(value, 'num');
2951 } 2951 }
2952 // Function numTypeCast: (dynamic) → dynamic 2952 // Function numTypeCast: (dynamic) → dynamic
2953 function numTypeCast(value) { 2953 function numTypeCast(value) {
2954 if (dart.notNull(dart.is(value, core.num)) || dart.notNull(value === null)) 2954 if (dart.notNull(dart.is(value, core.num)) || dart.notNull(value == null))
2955 return value; 2955 return value;
2956 throw new CastErrorImplementation(Primitives.objectTypeName(value), 'num'); 2956 throw new CastErrorImplementation(Primitives.objectTypeName(value), 'num');
2957 } 2957 }
2958 // Function boolTypeCheck: (dynamic) → dynamic 2958 // Function boolTypeCheck: (dynamic) → dynamic
2959 function boolTypeCheck(value) { 2959 function boolTypeCheck(value) {
2960 if (value === null) 2960 if (value == null)
2961 return value; 2961 return value;
2962 if (typeof value == 'boolean') 2962 if (typeof value == 'boolean')
2963 return value; 2963 return value;
2964 throw new TypeErrorImplementation(value, 'bool'); 2964 throw new TypeErrorImplementation(value, 'bool');
2965 } 2965 }
2966 // Function boolTypeCast: (dynamic) → dynamic 2966 // Function boolTypeCast: (dynamic) → dynamic
2967 function boolTypeCast(value) { 2967 function boolTypeCast(value) {
2968 if (dart.notNull(typeof value == 'boolean') || dart.notNull(value === null)) 2968 if (dart.notNull(typeof value == 'boolean') || dart.notNull(value == null))
2969 return value; 2969 return value;
2970 throw new CastErrorImplementation(Primitives.objectTypeName(value), 'bool'); 2970 throw new CastErrorImplementation(Primitives.objectTypeName(value), 'bool');
2971 } 2971 }
2972 // Function intTypeCheck: (dynamic) → dynamic 2972 // Function intTypeCheck: (dynamic) → dynamic
2973 function intTypeCheck(value) { 2973 function intTypeCheck(value) {
2974 if (value === null) 2974 if (value == null)
2975 return value; 2975 return value;
2976 if (typeof value == 'number') 2976 if (typeof value == 'number')
2977 return value; 2977 return value;
2978 throw new TypeErrorImplementation(value, 'int'); 2978 throw new TypeErrorImplementation(value, 'int');
2979 } 2979 }
2980 // Function intTypeCast: (dynamic) → dynamic 2980 // Function intTypeCast: (dynamic) → dynamic
2981 function intTypeCast(value) { 2981 function intTypeCast(value) {
2982 if (dart.notNull(typeof value == 'number') || dart.notNull(value === null)) 2982 if (dart.notNull(typeof value == 'number') || dart.notNull(value == null))
2983 return value; 2983 return value;
2984 throw new CastErrorImplementation(Primitives.objectTypeName(value), 'int'); 2984 throw new CastErrorImplementation(Primitives.objectTypeName(value), 'int');
2985 } 2985 }
2986 // Function propertyTypeError: (dynamic, dynamic) → void 2986 // Function propertyTypeError: (dynamic, dynamic) → void
2987 function propertyTypeError(value, property) { 2987 function propertyTypeError(value, property) {
2988 let name = dart.as(dart.dinvoke(property, 'substring', 3, dart.dload(propert y, 'length')), core.String); 2988 let name = dart.as(dart.dinvoke(property, 'substring', 3, dart.dload(propert y, 'length')), core.String);
2989 throw new TypeErrorImplementation(value, name); 2989 throw new TypeErrorImplementation(value, name);
2990 } 2990 }
2991 // Function propertyTypeCastError: (dynamic, dynamic) → void 2991 // Function propertyTypeCastError: (dynamic, dynamic) → void
2992 function propertyTypeCastError(value, property) { 2992 function propertyTypeCastError(value, property) {
2993 let actualType = Primitives.objectTypeName(value); 2993 let actualType = Primitives.objectTypeName(value);
2994 let expectedType = dart.as(dart.dinvoke(property, 'substring', 3, dart.dload (property, 'length')), core.String); 2994 let expectedType = dart.as(dart.dinvoke(property, 'substring', 3, dart.dload (property, 'length')), core.String);
2995 throw new CastErrorImplementation(actualType, expectedType); 2995 throw new CastErrorImplementation(actualType, expectedType);
2996 } 2996 }
2997 // Function propertyTypeCheck: (dynamic, dynamic) → dynamic 2997 // Function propertyTypeCheck: (dynamic, dynamic) → dynamic
2998 function propertyTypeCheck(value, property) { 2998 function propertyTypeCheck(value, property) {
2999 if (value === null) 2999 if (value == null)
3000 return value; 3000 return value;
3001 if (!!value[property]) 3001 if (!!value[property])
3002 return value; 3002 return value;
3003 propertyTypeError(value, property); 3003 propertyTypeError(value, property);
3004 } 3004 }
3005 // Function propertyTypeCast: (dynamic, dynamic) → dynamic 3005 // Function propertyTypeCast: (dynamic, dynamic) → dynamic
3006 function propertyTypeCast(value, property) { 3006 function propertyTypeCast(value, property) {
3007 if (dart.notNull(value === null) || !!value[property]) 3007 if (dart.notNull(value == null) || !!value[property])
3008 return value; 3008 return value;
3009 propertyTypeCastError(value, property); 3009 propertyTypeCastError(value, property);
3010 } 3010 }
3011 // Function interceptedTypeCheck: (dynamic, dynamic) → dynamic 3011 // Function interceptedTypeCheck: (dynamic, dynamic) → dynamic
3012 function interceptedTypeCheck(value, property) { 3012 function interceptedTypeCheck(value, property) {
3013 if (value === null) 3013 if (value == null)
3014 return value; 3014 return value;
3015 if (dart.notNull(core.identical(typeof value, 'object')) && _interceptors.ge tInterceptor(value)[property]) { 3015 if (dart.notNull(core.identical(typeof value, 'object')) && _interceptors.ge tInterceptor(value)[property]) {
3016 return value; 3016 return value;
3017 } 3017 }
3018 propertyTypeError(value, property); 3018 propertyTypeError(value, property);
3019 } 3019 }
3020 // Function interceptedTypeCast: (dynamic, dynamic) → dynamic 3020 // Function interceptedTypeCast: (dynamic, dynamic) → dynamic
3021 function interceptedTypeCast(value, property) { 3021 function interceptedTypeCast(value, property) {
3022 if (dart.notNull(value === null) || typeof value === "object" && _intercepto rs.getInterceptor(value)[property]) { 3022 if (dart.notNull(value == null) || typeof value === "object" && _interceptor s.getInterceptor(value)[property]) {
3023 return value; 3023 return value;
3024 } 3024 }
3025 propertyTypeCastError(value, property); 3025 propertyTypeCastError(value, property);
3026 } 3026 }
3027 // Function numberOrStringSuperTypeCheck: (dynamic, dynamic) → dynamic 3027 // Function numberOrStringSuperTypeCheck: (dynamic, dynamic) → dynamic
3028 function numberOrStringSuperTypeCheck(value, property) { 3028 function numberOrStringSuperTypeCheck(value, property) {
3029 if (value === null) 3029 if (value == null)
3030 return value; 3030 return value;
3031 if (typeof value == 'string') 3031 if (typeof value == 'string')
3032 return value; 3032 return value;
3033 if (dart.is(value, core.num)) 3033 if (dart.is(value, core.num))
3034 return value; 3034 return value;
3035 if (!!value[property]) 3035 if (!!value[property])
3036 return value; 3036 return value;
3037 propertyTypeError(value, property); 3037 propertyTypeError(value, property);
3038 } 3038 }
3039 // Function numberOrStringSuperTypeCast: (dynamic, dynamic) → dynamic 3039 // Function numberOrStringSuperTypeCast: (dynamic, dynamic) → dynamic
3040 function numberOrStringSuperTypeCast(value, property) { 3040 function numberOrStringSuperTypeCast(value, property) {
3041 if (typeof value == 'string') 3041 if (typeof value == 'string')
3042 return value; 3042 return value;
3043 if (dart.is(value, core.num)) 3043 if (dart.is(value, core.num))
3044 return value; 3044 return value;
3045 return propertyTypeCast(value, property); 3045 return propertyTypeCast(value, property);
3046 } 3046 }
3047 // Function numberOrStringSuperNativeTypeCheck: (dynamic, dynamic) → dynamic 3047 // Function numberOrStringSuperNativeTypeCheck: (dynamic, dynamic) → dynamic
3048 function numberOrStringSuperNativeTypeCheck(value, property) { 3048 function numberOrStringSuperNativeTypeCheck(value, property) {
3049 if (value === null) 3049 if (value == null)
3050 return value; 3050 return value;
3051 if (typeof value == 'string') 3051 if (typeof value == 'string')
3052 return value; 3052 return value;
3053 if (dart.is(value, core.num)) 3053 if (dart.is(value, core.num))
3054 return value; 3054 return value;
3055 if (_interceptors.getInterceptor(value)[property]) 3055 if (_interceptors.getInterceptor(value)[property])
3056 return value; 3056 return value;
3057 propertyTypeError(value, property); 3057 propertyTypeError(value, property);
3058 } 3058 }
3059 // Function numberOrStringSuperNativeTypeCast: (dynamic, dynamic) → dynamic 3059 // Function numberOrStringSuperNativeTypeCast: (dynamic, dynamic) → dynamic
3060 function numberOrStringSuperNativeTypeCast(value, property) { 3060 function numberOrStringSuperNativeTypeCast(value, property) {
3061 if (value === null) 3061 if (value == null)
3062 return value; 3062 return value;
3063 if (typeof value == 'string') 3063 if (typeof value == 'string')
3064 return value; 3064 return value;
3065 if (dart.is(value, core.num)) 3065 if (dart.is(value, core.num))
3066 return value; 3066 return value;
3067 if (_interceptors.getInterceptor(value)[property]) 3067 if (_interceptors.getInterceptor(value)[property])
3068 return value; 3068 return value;
3069 propertyTypeCastError(value, property); 3069 propertyTypeCastError(value, property);
3070 } 3070 }
3071 // Function stringSuperTypeCheck: (dynamic, dynamic) → dynamic 3071 // Function stringSuperTypeCheck: (dynamic, dynamic) → dynamic
3072 function stringSuperTypeCheck(value, property) { 3072 function stringSuperTypeCheck(value, property) {
3073 if (value === null) 3073 if (value == null)
3074 return value; 3074 return value;
3075 if (typeof value == 'string') 3075 if (typeof value == 'string')
3076 return value; 3076 return value;
3077 if (!!value[property]) 3077 if (!!value[property])
3078 return value; 3078 return value;
3079 propertyTypeError(value, property); 3079 propertyTypeError(value, property);
3080 } 3080 }
3081 // Function stringSuperTypeCast: (dynamic, dynamic) → dynamic 3081 // Function stringSuperTypeCast: (dynamic, dynamic) → dynamic
3082 function stringSuperTypeCast(value, property) { 3082 function stringSuperTypeCast(value, property) {
3083 if (typeof value == 'string') 3083 if (typeof value == 'string')
3084 return value; 3084 return value;
3085 return propertyTypeCast(value, property); 3085 return propertyTypeCast(value, property);
3086 } 3086 }
3087 // Function stringSuperNativeTypeCheck: (dynamic, dynamic) → dynamic 3087 // Function stringSuperNativeTypeCheck: (dynamic, dynamic) → dynamic
3088 function stringSuperNativeTypeCheck(value, property) { 3088 function stringSuperNativeTypeCheck(value, property) {
3089 if (value === null) 3089 if (value == null)
3090 return value; 3090 return value;
3091 if (typeof value == 'string') 3091 if (typeof value == 'string')
3092 return value; 3092 return value;
3093 if (_interceptors.getInterceptor(value)[property]) 3093 if (_interceptors.getInterceptor(value)[property])
3094 return value; 3094 return value;
3095 propertyTypeError(value, property); 3095 propertyTypeError(value, property);
3096 } 3096 }
3097 // Function stringSuperNativeTypeCast: (dynamic, dynamic) → dynamic 3097 // Function stringSuperNativeTypeCast: (dynamic, dynamic) → dynamic
3098 function stringSuperNativeTypeCast(value, property) { 3098 function stringSuperNativeTypeCast(value, property) {
3099 if (dart.notNull(typeof value == 'string') || dart.notNull(value === null)) 3099 if (dart.notNull(typeof value == 'string') || dart.notNull(value == null))
3100 return value; 3100 return value;
3101 if (_interceptors.getInterceptor(value)[property]) 3101 if (_interceptors.getInterceptor(value)[property])
3102 return value; 3102 return value;
3103 propertyTypeCastError(value, property); 3103 propertyTypeCastError(value, property);
3104 } 3104 }
3105 // Function listTypeCheck: (dynamic) → dynamic 3105 // Function listTypeCheck: (dynamic) → dynamic
3106 function listTypeCheck(value) { 3106 function listTypeCheck(value) {
3107 if (value === null) 3107 if (value == null)
3108 return value; 3108 return value;
3109 if (dart.is(value, core.List)) 3109 if (dart.is(value, core.List))
3110 return value; 3110 return value;
3111 throw new TypeErrorImplementation(value, 'List'); 3111 throw new TypeErrorImplementation(value, 'List');
3112 } 3112 }
3113 // Function listTypeCast: (dynamic) → dynamic 3113 // Function listTypeCast: (dynamic) → dynamic
3114 function listTypeCast(value) { 3114 function listTypeCast(value) {
3115 if (dart.notNull(dart.is(value, core.List)) || dart.notNull(value === null)) 3115 if (dart.notNull(dart.is(value, core.List)) || dart.notNull(value == null))
3116 return value; 3116 return value;
3117 throw new CastErrorImplementation(Primitives.objectTypeName(value), 'List'); 3117 throw new CastErrorImplementation(Primitives.objectTypeName(value), 'List');
3118 } 3118 }
3119 // Function listSuperTypeCheck: (dynamic, dynamic) → dynamic 3119 // Function listSuperTypeCheck: (dynamic, dynamic) → dynamic
3120 function listSuperTypeCheck(value, property) { 3120 function listSuperTypeCheck(value, property) {
3121 if (value === null) 3121 if (value == null)
3122 return value; 3122 return value;
3123 if (dart.is(value, core.List)) 3123 if (dart.is(value, core.List))
3124 return value; 3124 return value;
3125 if (!!value[property]) 3125 if (!!value[property])
3126 return value; 3126 return value;
3127 propertyTypeError(value, property); 3127 propertyTypeError(value, property);
3128 } 3128 }
3129 // Function listSuperTypeCast: (dynamic, dynamic) → dynamic 3129 // Function listSuperTypeCast: (dynamic, dynamic) → dynamic
3130 function listSuperTypeCast(value, property) { 3130 function listSuperTypeCast(value, property) {
3131 if (dart.is(value, core.List)) 3131 if (dart.is(value, core.List))
3132 return value; 3132 return value;
3133 return propertyTypeCast(value, property); 3133 return propertyTypeCast(value, property);
3134 } 3134 }
3135 // Function listSuperNativeTypeCheck: (dynamic, dynamic) → dynamic 3135 // Function listSuperNativeTypeCheck: (dynamic, dynamic) → dynamic
3136 function listSuperNativeTypeCheck(value, property) { 3136 function listSuperNativeTypeCheck(value, property) {
3137 if (value === null) 3137 if (value == null)
3138 return value; 3138 return value;
3139 if (dart.is(value, core.List)) 3139 if (dart.is(value, core.List))
3140 return value; 3140 return value;
3141 if (_interceptors.getInterceptor(value)[property]) 3141 if (_interceptors.getInterceptor(value)[property])
3142 return value; 3142 return value;
3143 propertyTypeError(value, property); 3143 propertyTypeError(value, property);
3144 } 3144 }
3145 // Function listSuperNativeTypeCast: (dynamic, dynamic) → dynamic 3145 // Function listSuperNativeTypeCast: (dynamic, dynamic) → dynamic
3146 function listSuperNativeTypeCast(value, property) { 3146 function listSuperNativeTypeCast(value, property) {
3147 if (dart.notNull(dart.is(value, core.List)) || dart.notNull(value === null)) 3147 if (dart.notNull(dart.is(value, core.List)) || dart.notNull(value == null))
3148 return value; 3148 return value;
3149 if (_interceptors.getInterceptor(value)[property]) 3149 if (_interceptors.getInterceptor(value)[property])
3150 return value; 3150 return value;
3151 propertyTypeCastError(value, property); 3151 propertyTypeCastError(value, property);
3152 } 3152 }
3153 // Function voidTypeCheck: (dynamic) → dynamic 3153 // Function voidTypeCheck: (dynamic) → dynamic
3154 function voidTypeCheck(value) { 3154 function voidTypeCheck(value) {
3155 if (value === null) 3155 if (value == null)
3156 return value; 3156 return value;
3157 throw new TypeErrorImplementation(value, 'void'); 3157 throw new TypeErrorImplementation(value, 'void');
3158 } 3158 }
3159 // Function checkMalformedType: (dynamic, dynamic) → dynamic 3159 // Function checkMalformedType: (dynamic, dynamic) → dynamic
3160 function checkMalformedType(value, message) { 3160 function checkMalformedType(value, message) {
3161 if (value === null) 3161 if (value == null)
3162 return value; 3162 return value;
3163 throw new TypeErrorImplementation.fromMessage(dart.as(message, core.String)) ; 3163 throw new TypeErrorImplementation.fromMessage(dart.as(message, core.String)) ;
3164 } 3164 }
3165 // Function checkDeferredIsLoaded: (String, String) → void 3165 // Function checkDeferredIsLoaded: (String, String) → void
3166 function checkDeferredIsLoaded(loadId, uri) { 3166 function checkDeferredIsLoaded(loadId, uri) {
3167 if (!dart.notNull(exports._loadedLibraries.contains(loadId))) { 3167 if (!dart.notNull(exports._loadedLibraries.contains(loadId))) {
3168 throw new DeferredNotLoadedError(uri); 3168 throw new DeferredNotLoadedError(uri);
3169 } 3169 }
3170 } 3170 }
3171 dart.defineLazyClass(exports, { 3171 dart.defineLazyClass(exports, {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
3208 } 3208 }
3209 // Function assertHelper: (dynamic) → void 3209 // Function assertHelper: (dynamic) → void
3210 function assertHelper(condition) { 3210 function assertHelper(condition) {
3211 if (!(typeof condition == 'boolean')) { 3211 if (!(typeof condition == 'boolean')) {
3212 if (dart.is(condition, core.Function)) 3212 if (dart.is(condition, core.Function))
3213 condition = dart.dinvokef(condition); 3213 condition = dart.dinvokef(condition);
3214 if (!(typeof condition == 'boolean')) { 3214 if (!(typeof condition == 'boolean')) {
3215 throw new TypeErrorImplementation(condition, 'bool'); 3215 throw new TypeErrorImplementation(condition, 'bool');
3216 } 3216 }
3217 } 3217 }
3218 if (true !== condition) 3218 if (!dart.equals(true, condition))
3219 throw new core.AssertionError(); 3219 throw new core.AssertionError();
3220 } 3220 }
3221 // Function throwNoSuchMethod: (dynamic, dynamic, dynamic, dynamic) → void 3221 // Function throwNoSuchMethod: (dynamic, dynamic, dynamic, dynamic) → void
3222 function throwNoSuchMethod(obj, name, arguments$, expectedArgumentNames) { 3222 function throwNoSuchMethod(obj, name, arguments$, expectedArgumentNames) {
3223 let memberName = new _internal.Symbol.unvalidated(dart.as(name, core.String) ); 3223 let memberName = new _internal.Symbol.unvalidated(dart.as(name, core.String) );
3224 throw new core.NoSuchMethodError(obj, memberName, dart.as(arguments$, core.L ist), new core.Map(), dart.as(expectedArgumentNames, core.List)); 3224 throw new core.NoSuchMethodError(obj, memberName, dart.as(arguments$, core.L ist), new core.Map(), dart.as(expectedArgumentNames, core.List));
3225 } 3225 }
3226 // Function throwCyclicInit: (String) → void 3226 // Function throwCyclicInit: (String) → void
3227 function throwCyclicInit(staticName) { 3227 function throwCyclicInit(staticName) {
3228 throw new core.CyclicInitializationError(`Cyclic initialization for static $ {staticName}`); 3228 throw new core.CyclicInitializationError(`Cyclic initialization for static $ {staticName}`);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
3260 this.parameterTypes = parameterTypes; 3260 this.parameterTypes = parameterTypes;
3261 this.optionalParameterTypes = optionalParameterTypes; 3261 this.optionalParameterTypes = optionalParameterTypes;
3262 this.namedParameters = namedParameters; 3262 this.namedParameters = namedParameters;
3263 super.RuntimeType(); 3263 super.RuntimeType();
3264 } 3264 }
3265 get isVoid() { 3265 get isVoid() {
3266 return dart.is(this.returnType, VoidRuntimeType); 3266 return dart.is(this.returnType, VoidRuntimeType);
3267 } 3267 }
3268 [_isTest](expression) { 3268 [_isTest](expression) {
3269 let functionTypeObject = this[_extractFunctionTypeObjectFrom](expression); 3269 let functionTypeObject = this[_extractFunctionTypeObjectFrom](expression);
3270 return functionTypeObject === null ? false : isFunctionSubtype(functionTyp eObject, this.toRti()); 3270 return functionTypeObject == null ? false : isFunctionSubtype(functionType Object, this.toRti());
3271 } 3271 }
3272 [_asCheck](expression) { 3272 [_asCheck](expression) {
3273 return this[_check](expression, true); 3273 return this[_check](expression, true);
3274 } 3274 }
3275 [_assertCheck](expression) { 3275 [_assertCheck](expression) {
3276 if (RuntimeFunctionType.inAssert) 3276 if (RuntimeFunctionType.inAssert)
3277 return null; 3277 return null;
3278 RuntimeFunctionType.inAssert = true; 3278 RuntimeFunctionType.inAssert = true;
3279 try { 3279 try {
3280 return this[_check](expression, false); 3280 return this[_check](expression, false);
3281 } finally { 3281 } finally {
3282 RuntimeFunctionType.inAssert = false; 3282 RuntimeFunctionType.inAssert = false;
3283 } 3283 }
3284 } 3284 }
3285 [_check](expression, isCast) { 3285 [_check](expression, isCast) {
3286 if (expression === null) 3286 if (expression == null)
3287 return null; 3287 return null;
3288 if (this[_isTest](expression)) 3288 if (this[_isTest](expression))
3289 return expression; 3289 return expression;
3290 let self = new FunctionTypeInfoDecoderRing(this.toRti()).toString(); 3290 let self = new FunctionTypeInfoDecoderRing(this.toRti()).toString();
3291 if (isCast) { 3291 if (isCast) {
3292 let functionTypeObject = this[_extractFunctionTypeObjectFrom](expression ); 3292 let functionTypeObject = this[_extractFunctionTypeObjectFrom](expression );
3293 let pretty = null; 3293 let pretty = null;
3294 if (functionTypeObject !== null) { 3294 if (functionTypeObject != null) {
3295 pretty = new FunctionTypeInfoDecoderRing(functionTypeObject).toString( ); 3295 pretty = new FunctionTypeInfoDecoderRing(functionTypeObject).toString( );
3296 } else { 3296 } else {
3297 pretty = Primitives.objectTypeName(expression); 3297 pretty = Primitives.objectTypeName(expression);
3298 } 3298 }
3299 throw new CastErrorImplementation(pretty, self); 3299 throw new CastErrorImplementation(pretty, self);
3300 } else { 3300 } else {
3301 throw new TypeErrorImplementation(expression, self); 3301 throw new TypeErrorImplementation(expression, self);
3302 } 3302 }
3303 } 3303 }
3304 [_extractFunctionTypeObjectFrom](o) { 3304 [_extractFunctionTypeObjectFrom](o) {
3305 let interceptor = _interceptors.getInterceptor(o); 3305 let interceptor = _interceptors.getInterceptor(o);
3306 return _foreign_helper.JS_SIGNATURE_NAME() in interceptor ? interceptor[_f oreign_helper.JS_SIGNATURE_NAME()]() : null; 3306 return _foreign_helper.JS_SIGNATURE_NAME() in interceptor ? interceptor[_f oreign_helper.JS_SIGNATURE_NAME()]() : null;
3307 } 3307 }
3308 toRti() { 3308 toRti() {
3309 let result = {[_foreign_helper.JS_FUNCTION_TYPE_TAG()]: "dynafunc"}; 3309 let result = {[_foreign_helper.JS_FUNCTION_TYPE_TAG()]: "dynafunc"};
3310 if (this.isVoid) { 3310 if (this.isVoid) {
3311 result[_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG()] = true; 3311 result[_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG()] = true;
3312 } else { 3312 } else {
3313 if (!dart.is(this.returnType, DynamicRuntimeType)) { 3313 if (!dart.is(this.returnType, DynamicRuntimeType)) {
3314 result[_foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG()] = this.retu rnType.toRti(); 3314 result[_foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG()] = this.retu rnType.toRti();
3315 } 3315 }
3316 } 3316 }
3317 if (dart.notNull(this.parameterTypes !== null) && !dart.notNull(this.param eterTypes.isEmpty)) { 3317 if (dart.notNull(this.parameterTypes != null) && !dart.notNull(this.parame terTypes.isEmpty)) {
3318 result[_foreign_helper.JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG()] = Run timeFunctionType.listToRti(this.parameterTypes); 3318 result[_foreign_helper.JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG()] = Run timeFunctionType.listToRti(this.parameterTypes);
3319 } 3319 }
3320 if (dart.notNull(this.optionalParameterTypes !== null) && !dart.notNull(th is.optionalParameterTypes.isEmpty)) { 3320 if (dart.notNull(this.optionalParameterTypes != null) && !dart.notNull(thi s.optionalParameterTypes.isEmpty)) {
3321 result[_foreign_helper.JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG()] = Run timeFunctionType.listToRti(this.optionalParameterTypes); 3321 result[_foreign_helper.JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG()] = Run timeFunctionType.listToRti(this.optionalParameterTypes);
3322 } 3322 }
3323 if (this.namedParameters !== null) { 3323 if (this.namedParameters != null) {
3324 let namedRti = Object.create(null); 3324 let namedRti = Object.create(null);
3325 let keys = _js_names.extractKeys(this.namedParameters); 3325 let keys = _js_names.extractKeys(this.namedParameters);
3326 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.no tNull(i) + 1) { 3326 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.no tNull(i) + 1) {
3327 let name = keys.get(i); 3327 let name = keys.get(i);
3328 let rti = dart.dinvoke(this.namedParameters[name], 'toRti'); 3328 let rti = dart.dinvoke(this.namedParameters[name], 'toRti');
3329 namedRti[name] = rti; 3329 namedRti[name] = rti;
3330 } 3330 }
3331 result[_foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG()] = namedR ti; 3331 result[_foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG()] = namedR ti;
3332 } 3332 }
3333 return result; 3333 return result;
3334 } 3334 }
3335 static listToRti(list) { 3335 static listToRti(list) {
3336 list = list; 3336 list = list;
3337 let result = []; 3337 let result = [];
3338 for (let i = 0; i['<'](dart.dload(list, 'length')); i = dart.notNull(i) + 1) { 3338 for (let i = 0; i['<'](dart.dload(list, 'length')); i = dart.notNull(i) + 1) {
3339 result.push(dart.dinvoke(dart.dindex(list, i), 'toRti')); 3339 result.push(dart.dinvoke(dart.dindex(list, i), 'toRti'));
3340 } 3340 }
3341 return result; 3341 return result;
3342 } 3342 }
3343 toString() { 3343 toString() {
3344 let result = '('; 3344 let result = '(';
3345 let needsComma = false; 3345 let needsComma = false;
3346 if (this.parameterTypes !== null) { 3346 if (this.parameterTypes != null) {
3347 for (let i = 0; dart.notNull(i) < dart.notNull(this.parameterTypes.lengt h); i = dart.notNull(i) + 1) { 3347 for (let i = 0; dart.notNull(i) < dart.notNull(this.parameterTypes.lengt h); i = dart.notNull(i) + 1) {
3348 let type = this.parameterTypes.get(i); 3348 let type = this.parameterTypes.get(i);
3349 if (needsComma) 3349 if (needsComma)
3350 result = ', '; 3350 result = ', ';
3351 result = `${type}`; 3351 result = `${type}`;
3352 needsComma = true; 3352 needsComma = true;
3353 } 3353 }
3354 } 3354 }
3355 if (dart.notNull(this.optionalParameterTypes !== null) && !dart.notNull(th is.optionalParameterTypes.isEmpty)) { 3355 if (dart.notNull(this.optionalParameterTypes != null) && !dart.notNull(thi s.optionalParameterTypes.isEmpty)) {
3356 if (needsComma) 3356 if (needsComma)
3357 result = ', '; 3357 result = ', ';
3358 needsComma = false; 3358 needsComma = false;
3359 result = '['; 3359 result = '[';
3360 for (let i = 0; dart.notNull(i) < dart.notNull(this.optionalParameterTyp es.length); i = dart.notNull(i) + 1) { 3360 for (let i = 0; dart.notNull(i) < dart.notNull(this.optionalParameterTyp es.length); i = dart.notNull(i) + 1) {
3361 let type = this.optionalParameterTypes.get(i); 3361 let type = this.optionalParameterTypes.get(i);
3362 if (needsComma) 3362 if (needsComma)
3363 result = ', '; 3363 result = ', ';
3364 result = `${type}`; 3364 result = `${type}`;
3365 needsComma = true; 3365 needsComma = true;
3366 } 3366 }
3367 result = ']'; 3367 result = ']';
3368 } else if (this.namedParameters !== null) { 3368 } else if (this.namedParameters != null) {
3369 if (needsComma) 3369 if (needsComma)
3370 result = ', '; 3370 result = ', ';
3371 needsComma = false; 3371 needsComma = false;
3372 result = '{'; 3372 result = '{';
3373 let keys = _js_names.extractKeys(this.namedParameters); 3373 let keys = _js_names.extractKeys(this.namedParameters);
3374 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.no tNull(i) + 1) { 3374 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.no tNull(i) + 1) {
3375 let name = keys.get(i); 3375 let name = keys.get(i);
3376 if (needsComma) 3376 if (needsComma)
3377 result = ', '; 3377 result = ', ';
3378 let rti = dart.dinvoke(this.namedParameters[name], 'toRti'); 3378 let rti = dart.dinvoke(this.namedParameters[name], 'toRti');
(...skipping 11 matching lines...) Expand all
3390 function buildFunctionType(returnType, parameterTypes, optionalParameterTypes) { 3390 function buildFunctionType(returnType, parameterTypes, optionalParameterTypes) {
3391 return new RuntimeFunctionType(dart.as(returnType, RuntimeType), dart.as(par ameterTypes, core.List$(RuntimeType)), dart.as(optionalParameterTypes, core.List $(RuntimeType)), null); 3391 return new RuntimeFunctionType(dart.as(returnType, RuntimeType), dart.as(par ameterTypes, core.List$(RuntimeType)), dart.as(optionalParameterTypes, core.List $(RuntimeType)), null);
3392 } 3392 }
3393 // Function buildNamedFunctionType: (dynamic, dynamic, dynamic) → RuntimeFunct ionType 3393 // Function buildNamedFunctionType: (dynamic, dynamic, dynamic) → RuntimeFunct ionType
3394 function buildNamedFunctionType(returnType, parameterTypes, namedParameters) { 3394 function buildNamedFunctionType(returnType, parameterTypes, namedParameters) {
3395 return new RuntimeFunctionType(dart.as(returnType, RuntimeType), dart.as(par ameterTypes, core.List$(RuntimeType)), null, namedParameters); 3395 return new RuntimeFunctionType(dart.as(returnType, RuntimeType), dart.as(par ameterTypes, core.List$(RuntimeType)), null, namedParameters);
3396 } 3396 }
3397 // Function buildInterfaceType: (dynamic, dynamic) → RuntimeType 3397 // Function buildInterfaceType: (dynamic, dynamic) → RuntimeType
3398 function buildInterfaceType(rti, typeArguments) { 3398 function buildInterfaceType(rti, typeArguments) {
3399 let name = dart.as(rti.name, core.String); 3399 let name = dart.as(rti.name, core.String);
3400 if (core.bool['||'](typeArguments === null, dart.dload(typeArguments, 'isEmp ty'))) { 3400 if (core.bool['||'](typeArguments == null, dart.dload(typeArguments, 'isEmpt y'))) {
3401 return new RuntimeTypePlain(name); 3401 return new RuntimeTypePlain(name);
3402 } 3402 }
3403 return new RuntimeTypeGeneric(name, dart.as(typeArguments, core.List$(Runtim eType)), null); 3403 return new RuntimeTypeGeneric(name, dart.as(typeArguments, core.List$(Runtim eType)), null);
3404 } 3404 }
3405 class DynamicRuntimeType extends RuntimeType { 3405 class DynamicRuntimeType extends RuntimeType {
3406 DynamicRuntimeType() { 3406 DynamicRuntimeType() {
3407 super.RuntimeType(); 3407 super.RuntimeType();
3408 } 3408 }
3409 toString() { 3409 toString() {
3410 return 'dynamic'; 3410 return 'dynamic';
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
3445 buildInterfaceType(dyn, fixedListOrNull); 3445 buildInterfaceType(dyn, fixedListOrNull);
3446 getDynamicRuntimeType(); 3446 getDynamicRuntimeType();
3447 getVoidRuntimeType(); 3447 getVoidRuntimeType();
3448 convertRtiToRuntimeType(dyn); 3448 convertRtiToRuntimeType(dyn);
3449 dart.dinvoke(dyn, '_isTest', dyn2); 3449 dart.dinvoke(dyn, '_isTest', dyn2);
3450 dart.dinvoke(dyn, '_asCheck', dyn2); 3450 dart.dinvoke(dyn, '_asCheck', dyn2);
3451 dart.dinvoke(dyn, '_assertCheck', dyn2); 3451 dart.dinvoke(dyn, '_assertCheck', dyn2);
3452 } 3452 }
3453 // Function convertRtiToRuntimeType: (dynamic) → RuntimeType 3453 // Function convertRtiToRuntimeType: (dynamic) → RuntimeType
3454 function convertRtiToRuntimeType(rti) { 3454 function convertRtiToRuntimeType(rti) {
3455 if (rti === null) { 3455 if (rti == null) {
3456 return getDynamicRuntimeType(); 3456 return getDynamicRuntimeType();
3457 } else if (typeof rti == "function") { 3457 } else if (typeof rti == "function") {
3458 return new RuntimeTypePlain(rti.name); 3458 return new RuntimeTypePlain(rti.name);
3459 } else if (rti.constructor == Array) { 3459 } else if (rti.constructor == Array) {
3460 let list = dart.as(rti, core.List); 3460 let list = dart.as(rti, core.List);
3461 let name = list.get(0).name; 3461 let name = list.get(0).name;
3462 let arguments$ = new core.List.from([]); 3462 let arguments$ = new core.List.from([]);
3463 for (let i = 1; dart.notNull(i) < dart.notNull(list.length); i = dart.notN ull(i) + 1) { 3463 for (let i = 1; dart.notNull(i) < dart.notNull(list.length); i = dart.notN ull(i) + 1) {
3464 arguments$.add(convertRtiToRuntimeType(list.get(i))); 3464 arguments$.add(convertRtiToRuntimeType(list.get(i)));
3465 } 3465 }
3466 return new RuntimeTypeGeneric(name, dart.as(arguments$, core.List$(Runtime Type)), rti); 3466 return new RuntimeTypeGeneric(name, dart.as(arguments$, core.List$(Runtime Type)), rti);
3467 } else if ("func" in rti) { 3467 } else if ("func" in rti) {
3468 return new FunctionTypeInfoDecoderRing(rti).toRuntimeType(); 3468 return new FunctionTypeInfoDecoderRing(rti).toRuntimeType();
3469 } else { 3469 } else {
3470 throw new RuntimeError("Cannot convert " + `'${JSON.stringify(rti)}' to Ru ntimeType.`); 3470 throw new RuntimeError("Cannot convert " + `'${JSON.stringify(rti)}' to Ru ntimeType.`);
3471 } 3471 }
3472 } 3472 }
3473 class RuntimeTypePlain extends RuntimeType { 3473 class RuntimeTypePlain extends RuntimeType {
3474 RuntimeTypePlain(name) { 3474 RuntimeTypePlain(name) {
3475 this.name = name; 3475 this.name = name;
3476 super.RuntimeType(); 3476 super.RuntimeType();
3477 } 3477 }
3478 toRti() { 3478 toRti() {
3479 let allClasses = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names .ALL_CLASSES); 3479 let allClasses = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names .ALL_CLASSES);
3480 let rti = allClasses[this.name]; 3480 let rti = allClasses[this.name];
3481 if (rti === null) 3481 if (rti == null)
3482 throw `no type for '${this.name}'`; 3482 throw `no type for '${this.name}'`;
3483 return rti; 3483 return rti;
3484 } 3484 }
3485 toString() { 3485 toString() {
3486 return this.name; 3486 return this.name;
3487 } 3487 }
3488 } 3488 }
3489 class RuntimeTypeGeneric extends RuntimeType { 3489 class RuntimeTypeGeneric extends RuntimeType {
3490 RuntimeTypeGeneric(name, arguments$, rti) { 3490 RuntimeTypeGeneric(name, arguments$, rti) {
3491 this.name = name; 3491 this.name = name;
3492 this.arguments = arguments$; 3492 this.arguments = arguments$;
3493 this.rti = rti; 3493 this.rti = rti;
3494 super.RuntimeType(); 3494 super.RuntimeType();
3495 } 3495 }
3496 toRti() { 3496 toRti() {
3497 if (this.rti !== null) 3497 if (this.rti != null)
3498 return this.rti; 3498 return this.rti;
3499 let allClasses = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names .ALL_CLASSES); 3499 let allClasses = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names .ALL_CLASSES);
3500 let result = [allClasses[this.name]]; 3500 let result = [allClasses[this.name]];
3501 if (dart.dindex(result, 0) === null) { 3501 if (dart.dindex(result, 0) == null) {
3502 throw `no type for '${this.name}<...>'`; 3502 throw `no type for '${this.name}<...>'`;
3503 } 3503 }
3504 for (let argument of this.arguments) { 3504 for (let argument of this.arguments) {
3505 result.push(argument.toRti()); 3505 result.push(argument.toRti());
3506 } 3506 }
3507 return this.rti = result; 3507 return this.rti = result;
3508 } 3508 }
3509 toString() { 3509 toString() {
3510 return `${this.name}<${this.arguments.join(", ")}>`; 3510 return `${this.name}<${this.arguments.join(", ")}>`;
3511 } 3511 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
3551 return "named" in this[_typeData]; 3551 return "named" in this[_typeData];
3552 } 3552 }
3553 get [_namedArguments]() { 3553 get [_namedArguments]() {
3554 return this[_typeData].named; 3554 return this[_typeData].named;
3555 } 3555 }
3556 toRuntimeType() { 3556 toRuntimeType() {
3557 return new DynamicRuntimeType(); 3557 return new DynamicRuntimeType();
3558 } 3558 }
3559 [_convert](type) { 3559 [_convert](type) {
3560 let result = runtimeTypeToString(type); 3560 let result = runtimeTypeToString(type);
3561 if (result !== null) 3561 if (result != null)
3562 return result; 3562 return result;
3563 if ("func" in type) { 3563 if ("func" in type) {
3564 return new FunctionTypeInfoDecoderRing(type).toString(); 3564 return new FunctionTypeInfoDecoderRing(type).toString();
3565 } else { 3565 } else {
3566 throw 'bad type'; 3566 throw 'bad type';
3567 } 3567 }
3568 } 3568 }
3569 toString() { 3569 toString() {
3570 if (this[_cachedToString] !== null) 3570 if (this[_cachedToString] != null)
3571 return this[_cachedToString]; 3571 return this[_cachedToString];
3572 let s = "("; 3572 let s = "(";
3573 let sep = ''; 3573 let sep = '';
3574 if (this[_hasArguments]) { 3574 if (this[_hasArguments]) {
3575 for (let argument of this[_arguments]) { 3575 for (let argument of this[_arguments]) {
3576 s = sep; 3576 s = sep;
3577 s = this[_convert](argument); 3577 s = this[_convert](argument);
3578 sep = ', '; 3578 sep = ', ';
3579 } 3579 }
3580 } 3580 }
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
3646 return new core.Set(); 3646 return new core.Set();
3647 } 3647 }
3648 }); 3648 });
3649 exports.deferredLoadHook = null; 3649 exports.deferredLoadHook = null;
3650 // Function loadDeferredLibrary: (String) → Future<Null> 3650 // Function loadDeferredLibrary: (String) → Future<Null>
3651 function loadDeferredLibrary(loadId) { 3651 function loadDeferredLibrary(loadId) {
3652 let urisMap = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.DEFE RRED_LIBRARY_URIS); 3652 let urisMap = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.DEFE RRED_LIBRARY_URIS);
3653 let uris = dart.as(urisMap[loadId], core.List$(core.String)); 3653 let uris = dart.as(urisMap[loadId], core.List$(core.String));
3654 let hashesMap = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.DE FERRED_LIBRARY_HASHES); 3654 let hashesMap = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.DE FERRED_LIBRARY_HASHES);
3655 let hashes = dart.as(hashesMap[loadId], core.List$(core.String)); 3655 let hashes = dart.as(hashesMap[loadId], core.List$(core.String));
3656 if (uris === null) 3656 if (uris == null)
3657 return dart.as(new async.Future.value(null), async.Future$(core.Null)); 3657 return dart.as(new async.Future.value(null), async.Future$(core.Null));
3658 let indices = dart.as(new core.List.generate(uris.length, dart.closureWrap(( i) => i, "(int) → dynamic")), core.List$(core.int)); 3658 let indices = dart.as(new core.List.generate(uris.length, dart.closureWrap(( i) => i, "(int) → dynamic")), core.List$(core.int));
3659 let isHunkLoaded = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names .IS_HUNK_LOADED); 3659 let isHunkLoaded = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names .IS_HUNK_LOADED);
3660 let isHunkInitialized = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_ names.IS_HUNK_INITIALIZED); 3660 let isHunkInitialized = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_ names.IS_HUNK_INITIALIZED);
3661 let indicesToLoad = indices.where((i) => !isHunkLoaded(hashes.get(i))).toLis t(); 3661 let indicesToLoad = indices.where((i) => !isHunkLoaded(hashes.get(i))).toLis t();
3662 return dart.as(async.Future.wait(dart.as(indicesToLoad.map((i) => _loadHunk( uris.get(i))), core.Iterable$(async.Future))).then(dart.closureWrap((_) => { 3662 return dart.as(async.Future.wait(dart.as(indicesToLoad.map((i) => _loadHunk( uris.get(i))), core.Iterable$(async.Future))).then(dart.closureWrap((_) => {
3663 let indicesToInitialize = indices.where((i) => !isHunkInitialized(hashes.g et(i))).toList(); 3663 let indicesToInitialize = indices.where((i) => !isHunkInitialized(hashes.g et(i))).toList();
3664 for (let i of indicesToInitialize) { 3664 for (let i of indicesToInitialize) {
3665 let initializer = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_na mes.INITIALIZE_LOADED_HUNK); 3665 let initializer = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_na mes.INITIALIZE_LOADED_HUNK);
3666 initializer(hashes.get(i)); 3666 initializer(hashes.get(i));
3667 } 3667 }
3668 let updated = exports._loadedLibraries.add(loadId); 3668 let updated = exports._loadedLibraries.add(loadId);
3669 if (dart.notNull(updated) && dart.notNull(exports.deferredLoadHook !== nul l)) { 3669 if (dart.notNull(updated) && dart.notNull(exports.deferredLoadHook != null )) {
3670 exports.deferredLoadHook(); 3670 exports.deferredLoadHook();
3671 } 3671 }
3672 }, "(List<dynamic>) → dynamic")), async.Future$(core.Null)); 3672 }, "(List<dynamic>) → dynamic")), async.Future$(core.Null));
3673 } 3673 }
3674 // Function _loadHunk: (String) → Future<Null> 3674 // Function _loadHunk: (String) → Future<Null>
3675 function _loadHunk(hunkName) { 3675 function _loadHunk(hunkName) {
3676 let future = exports._loadingLibraries.get(hunkName); 3676 let future = exports._loadingLibraries.get(hunkName);
3677 if (future !== null) { 3677 if (future != null) {
3678 return dart.as(future.then(dart.closureWrap((_) => null, "(Null) → dynamic ")), async.Future$(core.Null)); 3678 return dart.as(future.then(dart.closureWrap((_) => null, "(Null) → dynamic ")), async.Future$(core.Null));
3679 } 3679 }
3680 let uri = _isolate_helper.IsolateNatives.thisScript; 3680 let uri = _isolate_helper.IsolateNatives.thisScript;
3681 let index = uri.lastIndexOf('/'); 3681 let index = uri.lastIndexOf('/');
3682 uri = `${uri.substring(0, dart.notNull(index) + 1)}${hunkName}`; 3682 uri = `${uri.substring(0, dart.notNull(index) + 1)}${hunkName}`;
3683 if (dart.notNull(Primitives.isJsshell) || dart.notNull(Primitives.isD8)) { 3683 if (dart.notNull(Primitives.isJsshell) || dart.notNull(Primitives.isD8)) {
3684 return exports._loadingLibraries.set(hunkName, new async.Future(() => { 3684 return exports._loadingLibraries.set(hunkName, new async.Future(() => {
3685 try { 3685 try {
3686 new Function(`load("${uri}")`)(); 3686 new Function(`load("${uri}")`)();
3687 } catch (error) { 3687 } catch (error) {
3688 let stackTrace = dart.stackTrace(error); 3688 let stackTrace = dart.stackTrace(error);
3689 throw new async.DeferredLoadException(`Loading ${uri} failed.`); 3689 throw new async.DeferredLoadException(`Loading ${uri} failed.`);
3690 } 3690 }
3691 3691
3692 return null; 3692 return null;
3693 })); 3693 }));
3694 } else if (_isolate_helper.isWorker()) { 3694 } else if (_isolate_helper.isWorker()) {
3695 return exports._loadingLibraries.set(hunkName, new async.Future(() => { 3695 return exports._loadingLibraries.set(hunkName, new async.Future(() => {
3696 let completer = new async.Completer(); 3696 let completer = new async.Completer();
3697 _isolate_helper.enterJsAsync(); 3697 _isolate_helper.enterJsAsync();
3698 let leavingFuture = dart.as(completer.future.whenComplete(() => { 3698 let leavingFuture = dart.as(completer.future.whenComplete(() => {
3699 _isolate_helper.leaveJsAsync(); 3699 _isolate_helper.leaveJsAsync();
3700 }), async.Future$(core.Null)); 3700 }), async.Future$(core.Null));
3701 let index = uri.lastIndexOf('/'); 3701 let index = uri.lastIndexOf('/');
3702 uri = `${uri.substring(0, dart.notNull(index) + 1)}${hunkName}`; 3702 uri = `${uri.substring(0, dart.notNull(index) + 1)}${hunkName}`;
3703 let xhr = new XMLHttpRequest(); 3703 let xhr = new XMLHttpRequest();
3704 xhr.open("GET", uri); 3704 xhr.open("GET", uri);
3705 xhr.addEventListener("load", convertDartClosureToJS((event) => { 3705 xhr.addEventListener("load", convertDartClosureToJS((event) => {
3706 if (xhr.status !== 200) { 3706 if (xhr.status != 200) {
3707 completer.completeError(new async.DeferredLoadException(`Loading ${u ri} failed.`)); 3707 completer.completeError(new async.DeferredLoadException(`Loading ${u ri} failed.`));
3708 return; 3708 return;
3709 } 3709 }
3710 let code = xhr.responseText; 3710 let code = xhr.responseText;
3711 try { 3711 try {
3712 new Function(code)(); 3712 new Function(code)();
3713 } catch (error) { 3713 } catch (error) {
3714 let stackTrace = dart.stackTrace(error); 3714 let stackTrace = dart.stackTrace(error);
3715 completer.completeError(new async.DeferredLoadException(`Evaluating ${uri} failed.`)); 3715 completer.completeError(new async.DeferredLoadException(`Evaluating ${uri} failed.`));
3716 return; 3716 return;
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
3985 exports.UnimplementedNoSuchMethodError = UnimplementedNoSuchMethodError; 3985 exports.UnimplementedNoSuchMethodError = UnimplementedNoSuchMethodError;
3986 exports.random64 = random64; 3986 exports.random64 = random64;
3987 exports.jsonEncodeNative = jsonEncodeNative; 3987 exports.jsonEncodeNative = jsonEncodeNative;
3988 exports.getIsolateAffinityTag = getIsolateAffinityTag; 3988 exports.getIsolateAffinityTag = getIsolateAffinityTag;
3989 exports.loadDeferredLibrary = loadDeferredLibrary; 3989 exports.loadDeferredLibrary = loadDeferredLibrary;
3990 exports.MainError = MainError; 3990 exports.MainError = MainError;
3991 exports.missingMain = missingMain; 3991 exports.missingMain = missingMain;
3992 exports.badMain = badMain; 3992 exports.badMain = badMain;
3993 exports.mainHasTooManyParameters = mainHasTooManyParameters; 3993 exports.mainHasTooManyParameters = mainHasTooManyParameters;
3994 })(_js_helper || (_js_helper = {})); 3994 })(_js_helper || (_js_helper = {}));
OLDNEW
« no previous file with comments | « lib/runtime/dart/_isolate_helper.js ('k') | lib/runtime/dart/_native_typed_data.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698