| 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 |