OLD | NEW |
---|---|
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 part of js_backend; | 5 part of js_backend; |
6 | 6 |
7 typedef void Recompile(Element element); | 7 typedef void Recompile(Element element); |
8 | 8 |
9 class ReturnInfo { | 9 class ReturnInfo { |
10 HType returnType; | 10 HType returnType; |
(...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
727 // explicit receiver. https://code.google.com/p/dart/issues/detail?id=8942 | 727 // explicit receiver. https://code.google.com/p/dart/issues/detail?id=8942 |
728 | 728 |
729 /** | 729 /** |
730 * A map of specialized versions of the [getInterceptorMethod]. | 730 * A map of specialized versions of the [getInterceptorMethod]. |
731 * Since [getInterceptorMethod] is a hot method at runtime, we're | 731 * Since [getInterceptorMethod] is a hot method at runtime, we're |
732 * always specializing it based on the incoming type. The keys in | 732 * always specializing it based on the incoming type. The keys in |
733 * the map are the names of these specialized versions. Note that | 733 * the map are the names of these specialized versions. Note that |
734 * the generic version that contains all possible type checks is | 734 * the generic version that contains all possible type checks is |
735 * also stored in this map. | 735 * also stored in this map. |
736 */ | 736 */ |
737 final Map<String, Collection<ClassElement>> specializedGetInterceptors; | 737 final Map<String, Iterable<ClassElement>> specializedGetInterceptors; |
floitsch
2013/04/11 15:17:50
I think this should be a Set.
Anders Johnsen
2013/04/12 09:31:14
Done.
| |
738 | 738 |
739 /** | 739 /** |
740 * Set of classes whose methods are intercepted. | 740 * Set of classes whose methods are intercepted. |
741 */ | 741 */ |
742 final Set<ClassElement> interceptedClasses = new Set<ClassElement>(); | 742 final Set<ClassElement> interceptedClasses = new Set<ClassElement>(); |
743 | 743 |
744 /** | 744 /** |
745 * Set of classes used as mixins on native classes. Methods on these classes | 745 * Set of classes used as mixins on native classes. Methods on these classes |
746 * might also be mixed in to non-native classes. | 746 * might also be mixed in to non-native classes. |
747 */ | 747 */ |
(...skipping 13 matching lines...) Expand all Loading... | |
761 | 761 |
762 JavaScriptBackend(Compiler compiler, bool generateSourceMap, bool disableEval) | 762 JavaScriptBackend(Compiler compiler, bool generateSourceMap, bool disableEval) |
763 : namer = determineNamer(compiler), | 763 : namer = determineNamer(compiler), |
764 returnInfo = new Map<Element, ReturnInfo>(), | 764 returnInfo = new Map<Element, ReturnInfo>(), |
765 invalidateAfterCodegen = new List<Element>(), | 765 invalidateAfterCodegen = new List<Element>(), |
766 usedInterceptors = new Set<Selector>(), | 766 usedInterceptors = new Set<Selector>(), |
767 oneShotInterceptors = new Map<String, Selector>(), | 767 oneShotInterceptors = new Map<String, Selector>(), |
768 interceptedElements = new Map<SourceString, Set<Element>>(), | 768 interceptedElements = new Map<SourceString, Set<Element>>(), |
769 rti = new RuntimeTypes(compiler), | 769 rti = new RuntimeTypes(compiler), |
770 specializedGetInterceptors = | 770 specializedGetInterceptors = |
771 new Map<String, Collection<ClassElement>>(), | 771 new Map<String, Iterable<ClassElement>>(), |
floitsch
2013/04/11 15:17:50
Set
Anders Johnsen
2013/04/12 09:31:14
Done.
| |
772 super(compiler, JAVA_SCRIPT_CONSTANT_SYSTEM) { | 772 super(compiler, JAVA_SCRIPT_CONSTANT_SYSTEM) { |
773 emitter = disableEval | 773 emitter = disableEval |
774 ? new CodeEmitterNoEvalTask(compiler, namer, generateSourceMap) | 774 ? new CodeEmitterNoEvalTask(compiler, namer, generateSourceMap) |
775 : new CodeEmitterTask(compiler, namer, generateSourceMap); | 775 : new CodeEmitterTask(compiler, namer, generateSourceMap); |
776 builder = new SsaBuilderTask(this); | 776 builder = new SsaBuilderTask(this); |
777 optimizer = new SsaOptimizerTask(this); | 777 optimizer = new SsaOptimizerTask(this); |
778 generator = new SsaCodeGeneratorTask(this); | 778 generator = new SsaCodeGeneratorTask(this); |
779 argumentTypes = new ArgumentTypesRegistry(this); | 779 argumentTypes = new ArgumentTypesRegistry(this); |
780 fieldTypes = new FieldTypesRegistry(this); | 780 fieldTypes = new FieldTypesRegistry(this); |
781 } | 781 } |
(...skipping 983 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1765 ClassElement get constListImplementation => jsArrayClass; | 1765 ClassElement get constListImplementation => jsArrayClass; |
1766 ClassElement get fixedListImplementation => jsFixedArrayClass; | 1766 ClassElement get fixedListImplementation => jsFixedArrayClass; |
1767 ClassElement get growableListImplementation => jsExtendableArrayClass; | 1767 ClassElement get growableListImplementation => jsExtendableArrayClass; |
1768 ClassElement get mapImplementation => mapLiteralClass; | 1768 ClassElement get mapImplementation => mapLiteralClass; |
1769 ClassElement get constMapImplementation => constMapLiteralClass; | 1769 ClassElement get constMapImplementation => constMapLiteralClass; |
1770 ClassElement get functionImplementation => jsFunctionClass; | 1770 ClassElement get functionImplementation => jsFunctionClass; |
1771 ClassElement get typeImplementation => typeLiteralClass; | 1771 ClassElement get typeImplementation => typeLiteralClass; |
1772 ClassElement get boolImplementation => jsBoolClass; | 1772 ClassElement get boolImplementation => jsBoolClass; |
1773 ClassElement get nullImplementation => jsNullClass; | 1773 ClassElement get nullImplementation => jsNullClass; |
1774 } | 1774 } |
OLD | NEW |