| 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 interface HVisitor<R> { | 5 interface HVisitor<R> { |
| 6 R visitAdd(HAdd node); | 6 R visitAdd(HAdd node); |
| 7 R visitBailoutTarget(HBailoutTarget node); | 7 R visitBailoutTarget(HBailoutTarget node); |
| 8 R visitBitAnd(HBitAnd node); | 8 R visitBitAnd(HBitAnd node); |
| 9 R visitBitNot(HBitNot node); | 9 R visitBitNot(HBitNot node); |
| 10 R visitBitOr(HBitOr node); | 10 R visitBitOr(HBitOr node); |
| (...skipping 1231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1242 if (input == target) return HType.UNKNOWN; | 1242 if (input == target) return HType.UNKNOWN; |
| 1243 return computeDesiredTypeForNonTargetInput(input); | 1243 return computeDesiredTypeForNonTargetInput(input); |
| 1244 } | 1244 } |
| 1245 | 1245 |
| 1246 HType computeDesiredTypeForNonTargetInput(HInstruction input) { | 1246 HType computeDesiredTypeForNonTargetInput(HInstruction input) { |
| 1247 return HType.UNKNOWN; | 1247 return HType.UNKNOWN; |
| 1248 } | 1248 } |
| 1249 } | 1249 } |
| 1250 | 1250 |
| 1251 class HInvokeSuper extends HInvokeStatic { | 1251 class HInvokeSuper extends HInvokeStatic { |
| 1252 HInvokeSuper(inputs) : super(inputs); | 1252 final bool isSetter; |
| 1253 HInvokeSuper(inputs, [this.isSetter = false]) : super(inputs); |
| 1253 toString() => 'invoke super: ${element.name}'; | 1254 toString() => 'invoke super: ${element.name}'; |
| 1254 accept(HVisitor visitor) => visitor.visitInvokeSuper(this); | 1255 accept(HVisitor visitor) => visitor.visitInvokeSuper(this); |
| 1256 |
| 1257 HInstruction get value() { |
| 1258 assert(isSetter); |
| 1259 // Index 0: the element, index 1: 'this'. |
| 1260 return inputs[2]; |
| 1261 } |
| 1255 } | 1262 } |
| 1256 | 1263 |
| 1257 class HInvokeInterceptor extends HInvokeStatic { | 1264 class HInvokeInterceptor extends HInvokeStatic { |
| 1258 final Selector selector; | 1265 final Selector selector; |
| 1259 final SourceString name; | 1266 final SourceString name; |
| 1260 final bool getter; | 1267 final bool getter; |
| 1261 final bool setter; | 1268 final bool setter; |
| 1262 | 1269 |
| 1263 HInvokeInterceptor(this.selector, | 1270 HInvokeInterceptor(this.selector, |
| 1264 this.name, | 1271 this.name, |
| (...skipping 1453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2718 HBasicBlock get start() => expression.start; | 2725 HBasicBlock get start() => expression.start; |
| 2719 HBasicBlock get end() { | 2726 HBasicBlock get end() { |
| 2720 // We don't create a switch block if there are no cases. | 2727 // We don't create a switch block if there are no cases. |
| 2721 assert(!statements.isEmpty()); | 2728 assert(!statements.isEmpty()); |
| 2722 return statements.last().end; | 2729 return statements.last().end; |
| 2723 } | 2730 } |
| 2724 | 2731 |
| 2725 bool accept(HStatementInformationVisitor visitor) => | 2732 bool accept(HStatementInformationVisitor visitor) => |
| 2726 visitor.visitSwitchInfo(this); | 2733 visitor.visitSwitchInfo(this); |
| 2727 } | 2734 } |
| OLD | NEW |