| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library dart2js.js_backend.helpers; | 5 library dart2js.js_backend.helpers; |
| 6 | 6 |
| 7 import '../common.dart'; | 7 import '../common.dart'; |
| 8 import '../common/names.dart' show Identifiers, Uris; | 8 import '../common/names.dart' show Identifiers, Uris; |
| 9 import '../common/resolution.dart' show Resolution; | 9 import '../common/resolution.dart' show Resolution; |
| 10 import '../compiler.dart' show Compiler; | 10 import '../compiler.dart' show Compiler; |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 ClassElement typedArrayClass; | 138 ClassElement typedArrayClass; |
| 139 ClassElement typedArrayOfIntClass; | 139 ClassElement typedArrayOfIntClass; |
| 140 | 140 |
| 141 /** | 141 /** |
| 142 * Interface used to determine if an object has the JavaScript | 142 * Interface used to determine if an object has the JavaScript |
| 143 * indexing behavior. The interface is only visible to specific | 143 * indexing behavior. The interface is only visible to specific |
| 144 * libraries. | 144 * libraries. |
| 145 */ | 145 */ |
| 146 ClassElement jsIndexingBehaviorInterface; | 146 ClassElement jsIndexingBehaviorInterface; |
| 147 | 147 |
| 148 Element getNativeInterceptorMethod; | 148 MethodElement getNativeInterceptorMethod; |
| 149 | 149 |
| 150 /// Holds the method "getIsolateAffinityTag" when dart:_js_helper has been | 150 /// Holds the method "getIsolateAffinityTag" when dart:_js_helper has been |
| 151 /// loaded. | 151 /// loaded. |
| 152 FunctionElement getIsolateAffinityTagMarker; | 152 FunctionElement getIsolateAffinityTagMarker; |
| 153 | 153 |
| 154 /// Holds the method "disableTreeShaking" in js_mirrors when | 154 /// Holds the method "disableTreeShaking" in js_mirrors when |
| 155 /// dart:mirrors has been loaded. | 155 /// dart:mirrors has been loaded. |
| 156 FunctionElement disableTreeShakingMarker; | 156 FunctionElement disableTreeShakingMarker; |
| 157 | 157 |
| 158 /// Holds the method "preserveNames" in js_mirrors when | 158 /// Holds the method "preserveNames" in js_mirrors when |
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 } | 498 } |
| 499 | 499 |
| 500 MethodElement get _postTraceHelper { | 500 MethodElement get _postTraceHelper { |
| 501 return _findHelper('postTraceHelper'); | 501 return _findHelper('postTraceHelper'); |
| 502 } | 502 } |
| 503 | 503 |
| 504 MethodElement get closureFromTearOff { | 504 MethodElement get closureFromTearOff { |
| 505 return _findHelper('closureFromTearOff'); | 505 return _findHelper('closureFromTearOff'); |
| 506 } | 506 } |
| 507 | 507 |
| 508 Element get isJsIndexable { | 508 MethodElement get isJsIndexable { |
| 509 return _findHelper('isJsIndexable'); | 509 return _findHelper('isJsIndexable'); |
| 510 } | 510 } |
| 511 | 511 |
| 512 MethodElement get throwIllegalArgumentException { | 512 MethodElement get throwIllegalArgumentException { |
| 513 return _findHelper('iae'); | 513 return _findHelper('iae'); |
| 514 } | 514 } |
| 515 | 515 |
| 516 MethodElement get throwIndexOutOfRangeException { | 516 MethodElement get throwIndexOutOfRangeException { |
| 517 return _findHelper('ioore'); | 517 return _findHelper('ioore'); |
| 518 } | 518 } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 559 } | 559 } |
| 560 | 560 |
| 561 MethodElement get wrapExceptionHelper { | 561 MethodElement get wrapExceptionHelper { |
| 562 return _findHelper(r'wrapException'); | 562 return _findHelper(r'wrapException'); |
| 563 } | 563 } |
| 564 | 564 |
| 565 MethodElement get throwExpressionHelper { | 565 MethodElement get throwExpressionHelper { |
| 566 return _findHelper('throwExpression'); | 566 return _findHelper('throwExpression'); |
| 567 } | 567 } |
| 568 | 568 |
| 569 Element get closureConverter { | 569 MethodElement get closureConverter { |
| 570 return _findHelper('convertDartClosureToJS'); | 570 return _findHelper('convertDartClosureToJS'); |
| 571 } | 571 } |
| 572 | 572 |
| 573 Element get traceFromException { | 573 Element get traceFromException { |
| 574 return _findHelper('getTraceFromException'); | 574 return _findHelper('getTraceFromException'); |
| 575 } | 575 } |
| 576 | 576 |
| 577 MethodElement get setRuntimeTypeInfo { | 577 MethodElement get setRuntimeTypeInfo { |
| 578 return _findHelper('setRuntimeTypeInfo'); | 578 return _findHelper('setRuntimeTypeInfo'); |
| 579 } | 579 } |
| 580 | 580 |
| 581 Element get getRuntimeTypeInfo { | 581 Element get getRuntimeTypeInfo { |
| 582 return _findHelper('getRuntimeTypeInfo'); | 582 return _findHelper('getRuntimeTypeInfo'); |
| 583 } | 583 } |
| 584 | 584 |
| 585 MethodElement get getTypeArgumentByIndex { | 585 MethodElement get getTypeArgumentByIndex { |
| 586 return _findHelper('getTypeArgumentByIndex'); | 586 return _findHelper('getTypeArgumentByIndex'); |
| 587 } | 587 } |
| 588 | 588 |
| 589 Element get computeSignature { | 589 MethodElement get computeSignature { |
| 590 return _findHelper('computeSignature'); | 590 return _findHelper('computeSignature'); |
| 591 } | 591 } |
| 592 | 592 |
| 593 Element get getRuntimeTypeArguments { | 593 Element get getRuntimeTypeArguments { |
| 594 return _findHelper('getRuntimeTypeArguments'); | 594 return _findHelper('getRuntimeTypeArguments'); |
| 595 } | 595 } |
| 596 | 596 |
| 597 MethodElement get getRuntimeTypeArgument { | 597 MethodElement get getRuntimeTypeArgument { |
| 598 return _findHelper('getRuntimeTypeArgument'); | 598 return _findHelper('getRuntimeTypeArgument'); |
| 599 } | 599 } |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 660 _cachedCoreHelpers[name] ??= findCoreHelper(name); | 660 _cachedCoreHelpers[name] ??= findCoreHelper(name); |
| 661 | 661 |
| 662 MethodElement get createRuntimeType { | 662 MethodElement get createRuntimeType { |
| 663 return _findHelper('createRuntimeType'); | 663 return _findHelper('createRuntimeType'); |
| 664 } | 664 } |
| 665 | 665 |
| 666 Element get fallThroughError { | 666 Element get fallThroughError { |
| 667 return _findHelper("getFallThroughError"); | 667 return _findHelper("getFallThroughError"); |
| 668 } | 668 } |
| 669 | 669 |
| 670 Element get createInvocationMirror { | 670 MethodElement get createInvocationMirror { |
| 671 return _findHelper('createInvocationMirror'); | 671 return _findHelper('createInvocationMirror'); |
| 672 } | 672 } |
| 673 | 673 |
| 674 MethodElement get cyclicThrowHelper { | 674 MethodElement get cyclicThrowHelper { |
| 675 return _findHelper("throwCyclicInit"); | 675 return _findHelper("throwCyclicInit"); |
| 676 } | 676 } |
| 677 | 677 |
| 678 Element get asyncHelper { | 678 MethodElement get asyncHelper { |
| 679 return _findAsyncHelper("_asyncHelper"); | 679 return _findAsyncHelper("_asyncHelper"); |
| 680 } | 680 } |
| 681 | 681 |
| 682 Element get wrapBody { | 682 MethodElement get wrapBody { |
| 683 return _findAsyncHelper("_wrapJsFunctionForAsync"); | 683 return _findAsyncHelper("_wrapJsFunctionForAsync"); |
| 684 } | 684 } |
| 685 | 685 |
| 686 Element get yieldStar { | 686 MethodElement get yieldStar { |
| 687 ClassElement classElement = _findAsyncHelper("_IterationMarker"); | 687 ClassElement classElement = _findAsyncHelper("_IterationMarker"); |
| 688 classElement.ensureResolved(resolution); | 688 classElement.ensureResolved(resolution); |
| 689 return classElement.lookupLocalMember("yieldStar"); | 689 return classElement.lookupLocalMember("yieldStar"); |
| 690 } | 690 } |
| 691 | 691 |
| 692 Element get yieldSingle { | 692 MethodElement get yieldSingle { |
| 693 ClassElement classElement = _findAsyncHelper("_IterationMarker"); | 693 ClassElement classElement = _findAsyncHelper("_IterationMarker"); |
| 694 classElement.ensureResolved(resolution); | 694 classElement.ensureResolved(resolution); |
| 695 return classElement.lookupLocalMember("yieldSingle"); | 695 return classElement.lookupLocalMember("yieldSingle"); |
| 696 } | 696 } |
| 697 | 697 |
| 698 Element get syncStarUncaughtError { | 698 MethodElement get syncStarUncaughtError { |
| 699 ClassElement classElement = _findAsyncHelper("_IterationMarker"); | 699 ClassElement classElement = _findAsyncHelper("_IterationMarker"); |
| 700 classElement.ensureResolved(resolution); | 700 classElement.ensureResolved(resolution); |
| 701 return classElement.lookupLocalMember("uncaughtError"); | 701 return classElement.lookupLocalMember("uncaughtError"); |
| 702 } | 702 } |
| 703 | 703 |
| 704 Element get asyncStarHelper { | 704 MethodElement get asyncStarHelper { |
| 705 return _findAsyncHelper("_asyncStarHelper"); | 705 return _findAsyncHelper("_asyncStarHelper"); |
| 706 } | 706 } |
| 707 | 707 |
| 708 Element get streamOfController { | 708 MethodElement get streamOfController { |
| 709 return _findAsyncHelper("_streamOfController"); | 709 return _findAsyncHelper("_streamOfController"); |
| 710 } | 710 } |
| 711 | 711 |
| 712 Element get endOfIteration { | 712 MethodElement get endOfIteration { |
| 713 ClassElement classElement = _findAsyncHelper("_IterationMarker"); | 713 ClassElement classElement = _findAsyncHelper("_IterationMarker"); |
| 714 classElement.ensureResolved(resolution); | 714 classElement.ensureResolved(resolution); |
| 715 return classElement.lookupLocalMember("endOfIteration"); | 715 return classElement.lookupLocalMember("endOfIteration"); |
| 716 } | 716 } |
| 717 | 717 |
| 718 Element get syncStarIterable { | 718 ClassElement get syncStarIterable { |
| 719 ClassElement classElement = _findAsyncHelper("_SyncStarIterable"); | 719 ClassElement classElement = _findAsyncHelper("_SyncStarIterable"); |
| 720 classElement.ensureResolved(resolution); | 720 classElement.ensureResolved(resolution); |
| 721 return classElement; | 721 return classElement; |
| 722 } | 722 } |
| 723 | 723 |
| 724 Element get futureImplementation { | 724 Element get futureImplementation { |
| 725 ClassElement classElement = _findAsyncHelper('_Future'); | 725 ClassElement classElement = _findAsyncHelper('_Future'); |
| 726 classElement.ensureResolved(resolution); | 726 classElement.ensureResolved(resolution); |
| 727 return classElement; | 727 return classElement; |
| 728 } | 728 } |
| 729 | 729 |
| 730 Element get controllerStream { | 730 ClassElement get controllerStream { |
| 731 ClassElement classElement = _findAsyncHelper("_ControllerStream"); | 731 ClassElement classElement = _findAsyncHelper("_ControllerStream"); |
| 732 classElement.ensureResolved(resolution); | 732 classElement.ensureResolved(resolution); |
| 733 return classElement; | 733 return classElement; |
| 734 } | 734 } |
| 735 | 735 |
| 736 Element get syncStarIterableConstructor { | 736 ConstructorElement get syncStarIterableConstructor { |
| 737 ClassElement classElement = syncStarIterable; | 737 ClassElement classElement = syncStarIterable; |
| 738 classElement.ensureResolved(resolution); | 738 classElement.ensureResolved(resolution); |
| 739 return classElement.lookupConstructor(""); | 739 return classElement.lookupConstructor(""); |
| 740 } | 740 } |
| 741 | 741 |
| 742 Element get syncCompleterConstructor { | 742 ConstructorElement get syncCompleterConstructor { |
| 743 ClassElement classElement = _find(asyncLibrary, "Completer"); | 743 ClassElement classElement = _find(asyncLibrary, "Completer"); |
| 744 classElement.ensureResolved(resolution); | 744 classElement.ensureResolved(resolution); |
| 745 return classElement.lookupConstructor("sync"); | 745 return classElement.lookupConstructor("sync"); |
| 746 } | 746 } |
| 747 | 747 |
| 748 Element get asyncStarController { | 748 ClassElement get asyncStarController { |
| 749 ClassElement classElement = _findAsyncHelper("_AsyncStarStreamController"); | 749 ClassElement classElement = _findAsyncHelper("_AsyncStarStreamController"); |
| 750 classElement.ensureResolved(resolution); | 750 classElement.ensureResolved(resolution); |
| 751 return classElement; | 751 return classElement; |
| 752 } | 752 } |
| 753 | 753 |
| 754 Element get asyncStarControllerConstructor { | 754 ConstructorElement get asyncStarControllerConstructor { |
| 755 ClassElement classElement = asyncStarController; | 755 ClassElement classElement = asyncStarController; |
| 756 return classElement.lookupConstructor(""); | 756 return classElement.lookupConstructor(""); |
| 757 } | 757 } |
| 758 | 758 |
| 759 Element get streamIteratorConstructor { | 759 ConstructorElement get streamIteratorConstructor { |
| 760 ClassElement classElement = _find(asyncLibrary, "StreamIterator"); | 760 ClassElement classElement = _find(asyncLibrary, "StreamIterator"); |
| 761 classElement.ensureResolved(resolution); | 761 classElement.ensureResolved(resolution); |
| 762 return classElement.lookupConstructor(""); | 762 return classElement.lookupConstructor(""); |
| 763 } | 763 } |
| 764 | 764 |
| 765 ClassElement get VoidRuntimeType { | 765 ClassElement get VoidRuntimeType { |
| 766 return _findHelper('VoidRuntimeType'); | 766 return _findHelper('VoidRuntimeType'); |
| 767 } | 767 } |
| 768 | 768 |
| 769 ClassElement get RuntimeType { | 769 ClassElement get RuntimeType { |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 875 } | 875 } |
| 876 | 876 |
| 877 MethodElement get toStringForNativeObject { | 877 MethodElement get toStringForNativeObject { |
| 878 return _findHelper('toStringForNativeObject'); | 878 return _findHelper('toStringForNativeObject'); |
| 879 } | 879 } |
| 880 | 880 |
| 881 MethodElement get hashCodeForNativeObject { | 881 MethodElement get hashCodeForNativeObject { |
| 882 return _findHelper('hashCodeForNativeObject'); | 882 return _findHelper('hashCodeForNativeObject'); |
| 883 } | 883 } |
| 884 } | 884 } |
| OLD | NEW |