| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 'package:kernel/ast.dart' as ir; | 5 import 'package:kernel/ast.dart' as ir; |
| 6 | 6 |
| 7 import '../closure.dart'; | 7 import '../closure.dart'; |
| 8 import '../common.dart'; | 8 import '../common.dart'; |
| 9 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem; | 9 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem; |
| 10 import '../common/names.dart'; | 10 import '../common/names.dart'; |
| (...skipping 2733 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2744 // TODO(efortuna): Add source information. | 2744 // TODO(efortuna): Add source information. |
| 2745 HInstruction receiver = localsHandler.readThis(); | 2745 HInstruction receiver = localsHandler.readThis(); |
| 2746 | 2746 |
| 2747 List<HInstruction> inputs = <HInstruction>[]; | 2747 List<HInstruction> inputs = <HInstruction>[]; |
| 2748 if (astAdapter.isInterceptedSelector(selector)) { | 2748 if (astAdapter.isInterceptedSelector(selector)) { |
| 2749 inputs.add(_interceptorFor(receiver)); | 2749 inputs.add(_interceptorFor(receiver)); |
| 2750 } | 2750 } |
| 2751 inputs.add(receiver); | 2751 inputs.add(receiver); |
| 2752 inputs.addAll(arguments); | 2752 inputs.addAll(arguments); |
| 2753 | 2753 |
| 2754 TypeMask typeMask; |
| 2755 if (interfaceTarget is ir.Procedure) { |
| 2756 typeMask = astAdapter.returnTypeOf(interfaceTarget); |
| 2757 } else { |
| 2758 typeMask = closedWorld.commonMasks.dynamicType; |
| 2759 } |
| 2754 HInstruction instruction = new HInvokeSuper( | 2760 HInstruction instruction = new HInvokeSuper( |
| 2755 astAdapter.getMember(interfaceTarget), | 2761 astAdapter.getMember(interfaceTarget), |
| 2756 astAdapter.getClass(containingClass), | 2762 astAdapter.getClass(containingClass), |
| 2757 selector, | 2763 selector, |
| 2758 inputs, | 2764 inputs, |
| 2759 astAdapter.returnTypeOf(interfaceTarget), | 2765 typeMask, |
| 2760 null, | 2766 null, |
| 2761 isSetter: selector.isSetter || selector.isIndexSet); | 2767 isSetter: selector.isSetter || selector.isIndexSet); |
| 2762 instruction.sideEffects = | 2768 instruction.sideEffects = |
| 2763 closedWorld.getSideEffectsOfSelector(selector, null); | 2769 closedWorld.getSideEffectsOfSelector(selector, null); |
| 2764 push(instruction); | 2770 push(instruction); |
| 2765 return instruction; | 2771 return instruction; |
| 2766 } | 2772 } |
| 2767 | 2773 |
| 2768 @override | 2774 @override |
| 2769 void visitSuperPropertyGet(ir.SuperPropertyGet propertyGet) { | 2775 void visitSuperPropertyGet(ir.SuperPropertyGet propertyGet) { |
| (...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3221 enterBlock.setBlockFlow( | 3227 enterBlock.setBlockFlow( |
| 3222 new HTryBlockInformation( | 3228 new HTryBlockInformation( |
| 3223 kernelBuilder.wrapStatementGraph(bodyGraph), | 3229 kernelBuilder.wrapStatementGraph(bodyGraph), |
| 3224 exception, | 3230 exception, |
| 3225 kernelBuilder.wrapStatementGraph(catchGraph), | 3231 kernelBuilder.wrapStatementGraph(catchGraph), |
| 3226 kernelBuilder.wrapStatementGraph(finallyGraph)), | 3232 kernelBuilder.wrapStatementGraph(finallyGraph)), |
| 3227 exitBlock); | 3233 exitBlock); |
| 3228 kernelBuilder.inTryStatement = previouslyInTryStatement; | 3234 kernelBuilder.inTryStatement = previouslyInTryStatement; |
| 3229 } | 3235 } |
| 3230 } | 3236 } |
| OLD | NEW |