| 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 '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem; | 5 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem; |
| 6 import '../common/names.dart' show Selectors; | 6 import '../common/names.dart' show Selectors; |
| 7 import '../common/tasks.dart' show CompilerTask; | 7 import '../common/tasks.dart' show CompilerTask; |
| 8 import '../compiler.dart' show Compiler; | 8 import '../compiler.dart' show Compiler; |
| 9 import '../constants/constant_system.dart'; | 9 import '../constants/constant_system.dart'; |
| 10 import '../constants/values.dart'; | 10 import '../constants/values.dart'; |
| (...skipping 987 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 998 value = other; | 998 value = other; |
| 999 } | 999 } |
| 1000 } | 1000 } |
| 1001 return new HFieldSet(field, receiver, value); | 1001 return new HFieldSet(field, receiver, value); |
| 1002 } | 1002 } |
| 1003 | 1003 |
| 1004 HInstruction visitInvokeStatic(HInvokeStatic node) { | 1004 HInstruction visitInvokeStatic(HInvokeStatic node) { |
| 1005 propagateConstantValueToUses(node); | 1005 propagateConstantValueToUses(node); |
| 1006 MemberEntity element = node.element; | 1006 MemberEntity element = node.element; |
| 1007 | 1007 |
| 1008 if (element == backend.helpers.checkConcurrentModificationError) { | 1008 if (element == compiler.commonElements.identicalFunction) { |
| 1009 if (node.inputs.length == 2) { |
| 1010 return new HIdentity(node.inputs[0], node.inputs[1], null, |
| 1011 closedWorld.commonMasks.boolType) |
| 1012 ..sourceInformation = node.sourceInformation; |
| 1013 } |
| 1014 } else if (element == backend.helpers.checkConcurrentModificationError) { |
| 1009 if (node.inputs.length == 2) { | 1015 if (node.inputs.length == 2) { |
| 1010 HInstruction firstArgument = node.inputs[0]; | 1016 HInstruction firstArgument = node.inputs[0]; |
| 1011 if (firstArgument is HConstant) { | 1017 if (firstArgument is HConstant) { |
| 1012 HConstant constant = firstArgument; | 1018 HConstant constant = firstArgument; |
| 1013 if (constant.constant.isTrue) return constant; | 1019 if (constant.constant.isTrue) return constant; |
| 1014 } | 1020 } |
| 1015 } | 1021 } |
| 1016 } else if (element == backend.helpers.checkInt) { | 1022 } else if (element == backend.helpers.checkInt) { |
| 1017 if (node.inputs.length == 1) { | 1023 if (node.inputs.length == 1) { |
| 1018 HInstruction argument = node.inputs[0]; | 1024 HInstruction argument = node.inputs[0]; |
| (...skipping 1735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2754 | 2760 |
| 2755 keyedValues.forEach((receiver, values) { | 2761 keyedValues.forEach((receiver, values) { |
| 2756 result.keyedValues[receiver] = | 2762 result.keyedValues[receiver] = |
| 2757 new Map<HInstruction, HInstruction>.from(values); | 2763 new Map<HInstruction, HInstruction>.from(values); |
| 2758 }); | 2764 }); |
| 2759 | 2765 |
| 2760 result.nonEscapingReceivers.addAll(nonEscapingReceivers); | 2766 result.nonEscapingReceivers.addAll(nonEscapingReceivers); |
| 2761 return result; | 2767 return result; |
| 2762 } | 2768 } |
| 2763 } | 2769 } |
| OLD | NEW |