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 import 'dart:collection'; | 5 import 'dart:collection'; |
6 | 6 |
7 import 'package:js_runtime/shared/embedded_names.dart'; | 7 import 'package:js_runtime/shared/embedded_names.dart'; |
8 | 8 |
9 import '../closure.dart'; | 9 import '../closure.dart'; |
10 import '../common.dart'; | 10 import '../common.dart'; |
(...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
720 closeAndGotoExit(new HReturn( | 720 closeAndGotoExit(new HReturn( |
721 value, sourceInformationBuilder.buildReturn(functionElement.node))); | 721 value, sourceInformationBuilder.buildReturn(functionElement.node))); |
722 return closeFunction(); | 722 return closeFunction(); |
723 } | 723 } |
724 assert(!function.modifiers.isExternal, failedAt(functionElement)); | 724 assert(!function.modifiers.isExternal, failedAt(functionElement)); |
725 | 725 |
726 // If [functionElement] is `operator==` we explicitly add a null check at | 726 // If [functionElement] is `operator==` we explicitly add a null check at |
727 // the beginning of the method. This is to avoid having call sites do the | 727 // the beginning of the method. This is to avoid having call sites do the |
728 // null check. | 728 // null check. |
729 if (name == '==') { | 729 if (name == '==') { |
730 if (!backend.operatorEqHandlesNullArgument(functionElement)) { | 730 if (!commonElements.operatorEqHandlesNullArgument(functionElement)) { |
731 handleIf( | 731 handleIf( |
732 node: function, | 732 node: function, |
733 visitCondition: () { | 733 visitCondition: () { |
734 HParameterValue parameter = parameters.values.first; | 734 HParameterValue parameter = parameters.values.first; |
735 push(new HIdentity(parameter, graph.addConstantNull(closedWorld), | 735 push(new HIdentity(parameter, graph.addConstantNull(closedWorld), |
736 null, commonMasks.boolType)); | 736 null, commonMasks.boolType)); |
737 }, | 737 }, |
738 visitThen: () { | 738 visitThen: () { |
739 closeAndGotoExit(new HReturn( | 739 closeAndGotoExit(new HReturn( |
740 graph.addConstantBool(false, closedWorld), | 740 graph.addConstantBool(false, closedWorld), |
(...skipping 6103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6844 this.oldReturnLocal, | 6844 this.oldReturnLocal, |
6845 this.oldReturnType, | 6845 this.oldReturnType, |
6846 this.oldResolvedAst, | 6846 this.oldResolvedAst, |
6847 this.oldStack, | 6847 this.oldStack, |
6848 this.oldLocalsHandler, | 6848 this.oldLocalsHandler, |
6849 this.inTryStatement, | 6849 this.inTryStatement, |
6850 this.allFunctionsCalledOnce, | 6850 this.allFunctionsCalledOnce, |
6851 this.oldElementInferenceResults) | 6851 this.oldElementInferenceResults) |
6852 : super(function); | 6852 : super(function); |
6853 } | 6853 } |
OLD | NEW |