| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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_emitter.program_builder; | 5 library dart2js.js_emitter.program_builder; |
| 6 | 6 |
| 7 import '../../closure.dart' show ClosureFieldElement; | 7 import '../../closure.dart' show ClosureFieldElement; |
| 8 import '../../common.dart'; | 8 import '../../common.dart'; |
| 9 import '../../common/names.dart' show Names, Selectors; | 9 import '../../common/names.dart' show Names, Selectors; |
| 10 import '../../compiler.dart' show Compiler; | 10 import '../../compiler.dart' show Compiler; |
| (...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 664 | 664 |
| 665 bool _methodCanBeReflected(FunctionElement method) { | 665 bool _methodCanBeReflected(FunctionElement method) { |
| 666 return backend.isAccessibleByReflection(method) || | 666 return backend.isAccessibleByReflection(method) || |
| 667 // During incremental compilation, we have to assume that reflection | 667 // During incremental compilation, we have to assume that reflection |
| 668 // *might* get enabled. | 668 // *might* get enabled. |
| 669 _compiler.options.hasIncrementalSupport; | 669 _compiler.options.hasIncrementalSupport; |
| 670 } | 670 } |
| 671 | 671 |
| 672 bool _methodCanBeApplied(FunctionElement method) { | 672 bool _methodCanBeApplied(FunctionElement method) { |
| 673 return _compiler.enabledFunctionApply && | 673 return _compiler.enabledFunctionApply && |
| 674 _compiler.world.getMightBePassedToApply(method); | 674 _compiler.closedWorld.getMightBePassedToApply(method); |
| 675 } | 675 } |
| 676 | 676 |
| 677 // TODO(herhut): Refactor incremental compilation and remove method. | 677 // TODO(herhut): Refactor incremental compilation and remove method. |
| 678 Method buildMethodHackForIncrementalCompilation(FunctionElement element) { | 678 Method buildMethodHackForIncrementalCompilation(FunctionElement element) { |
| 679 assert(_compiler.options.hasIncrementalSupport); | 679 assert(_compiler.options.hasIncrementalSupport); |
| 680 if (element.isInstanceMember) { | 680 if (element.isInstanceMember) { |
| 681 return _buildMethod(element); | 681 return _buildMethod(element); |
| 682 } else { | 682 } else { |
| 683 return _buildStaticMethod(element); | 683 return _buildStaticMethod(element); |
| 684 } | 684 } |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 724 : null; | 724 : null; |
| 725 | 725 |
| 726 if (isNotApplyTarget) { | 726 if (isNotApplyTarget) { |
| 727 canTearOff = false; | 727 canTearOff = false; |
| 728 } else { | 728 } else { |
| 729 if (element.enclosingClass.isClosure) { | 729 if (element.enclosingClass.isClosure) { |
| 730 canTearOff = false; | 730 canTearOff = false; |
| 731 isClosureCallMethod = true; | 731 isClosureCallMethod = true; |
| 732 } else { | 732 } else { |
| 733 // Careful with operators. | 733 // Careful with operators. |
| 734 canTearOff = universe.hasInvokedGetter(element, _compiler.world) || | 734 canTearOff = |
| 735 (canBeReflected && !element.isOperator); | 735 universe.hasInvokedGetter(element, _compiler.closedWorld) || |
| 736 (canBeReflected && !element.isOperator); |
| 736 assert(canTearOff || | 737 assert(canTearOff || |
| 737 !universe.methodsNeedingSuperGetter.contains(element)); | 738 !universe.methodsNeedingSuperGetter.contains(element)); |
| 738 tearOffName = namer.getterForElement(element); | 739 tearOffName = namer.getterForElement(element); |
| 739 } | 740 } |
| 740 } | 741 } |
| 741 | 742 |
| 742 if (canTearOff) { | 743 if (canTearOff) { |
| 743 assert(invariant(element, !element.isGenerativeConstructor)); | 744 assert(invariant(element, !element.isGenerativeConstructor)); |
| 744 assert(invariant(element, !element.isGenerativeConstructorBody)); | 745 assert(invariant(element, !element.isGenerativeConstructorBody)); |
| 745 assert(invariant(element, !element.isConstructor)); | 746 assert(invariant(element, !element.isConstructor)); |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 975 Constant constant = new Constant(name, holder, constantValue); | 976 Constant constant = new Constant(name, holder, constantValue); |
| 976 _constants[constantValue] = constant; | 977 _constants[constantValue] = constant; |
| 977 } | 978 } |
| 978 } | 979 } |
| 979 | 980 |
| 980 Holder _registerStaticStateHolder() { | 981 Holder _registerStaticStateHolder() { |
| 981 return _registry.registerHolder(namer.staticStateHolder, | 982 return _registry.registerHolder(namer.staticStateHolder, |
| 982 isStaticStateHolder: true); | 983 isStaticStateHolder: true); |
| 983 } | 984 } |
| 984 } | 985 } |
| OLD | NEW |