| 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 ssa; | 5 part of ssa; |
| 6 | 6 |
| 7 class Interceptors { | 7 class Interceptors { |
| 8 Compiler compiler; | 8 Compiler compiler; |
| 9 Interceptors(Compiler this.compiler); | 9 Interceptors(Compiler this.compiler); |
| 10 | 10 |
| (...skipping 2697 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2708 } | 2708 } |
| 2709 | 2709 |
| 2710 void handleForeignJsHasEquals(Send node) { | 2710 void handleForeignJsHasEquals(Send node) { |
| 2711 List<HInstruction> inputs = <HInstruction>[]; | 2711 List<HInstruction> inputs = <HInstruction>[]; |
| 2712 if (!node.arguments.tail.isEmpty) { | 2712 if (!node.arguments.tail.isEmpty) { |
| 2713 compiler.cancel( | 2713 compiler.cancel( |
| 2714 'More than one expression in JS_HAS_EQUALS()', node: node); | 2714 'More than one expression in JS_HAS_EQUALS()', node: node); |
| 2715 } | 2715 } |
| 2716 addGenericSendArgumentsToList(node.arguments, inputs); | 2716 addGenericSendArgumentsToList(node.arguments, inputs); |
| 2717 String name = backend.namer.publicInstanceMethodNameByArity( | 2717 String name = backend.namer.publicInstanceMethodNameByArity( |
| 2718 Elements.OPERATOR_EQUALS, 1); | 2718 const SourceString('=='), 1); |
| 2719 push(new HForeign(new DartString.literal('!!#.$name'), | 2719 push(new HForeign(new DartString.literal('!!#.$name'), |
| 2720 const LiteralDartString('bool'), | 2720 const LiteralDartString('bool'), |
| 2721 inputs)); | 2721 inputs)); |
| 2722 } | 2722 } |
| 2723 | 2723 |
| 2724 void handleForeignJsCurrentIsolate(Send node) { | 2724 void handleForeignJsCurrentIsolate(Send node) { |
| 2725 if (!node.arguments.isEmpty) { | 2725 if (!node.arguments.isEmpty) { |
| 2726 compiler.cancel( | 2726 compiler.cancel( |
| 2727 'Too many arguments to JS_CURRENT_ISOLATE', node: node); | 2727 'Too many arguments to JS_CURRENT_ISOLATE', node: node); |
| 2728 } | 2728 } |
| (...skipping 2031 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4760 new HSubGraphBlockInformation(elseBranch.graph)); | 4760 new HSubGraphBlockInformation(elseBranch.graph)); |
| 4761 | 4761 |
| 4762 HBasicBlock conditionStartBlock = conditionBranch.block; | 4762 HBasicBlock conditionStartBlock = conditionBranch.block; |
| 4763 conditionStartBlock.setBlockFlow(info, joinBlock); | 4763 conditionStartBlock.setBlockFlow(info, joinBlock); |
| 4764 SubGraph conditionGraph = conditionBranch.graph; | 4764 SubGraph conditionGraph = conditionBranch.graph; |
| 4765 HIf branch = conditionGraph.end.last; | 4765 HIf branch = conditionGraph.end.last; |
| 4766 assert(branch is HIf); | 4766 assert(branch is HIf); |
| 4767 branch.blockInformation = conditionStartBlock.blockFlow; | 4767 branch.blockInformation = conditionStartBlock.blockFlow; |
| 4768 } | 4768 } |
| 4769 } | 4769 } |
| OLD | NEW |