| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 CodegenWorkItem; |
| 6 import '../compiler.dart' show Compiler; | 6 import '../compiler.dart' show Compiler; |
| 7 import '../constants/constant_system.dart'; | 7 import '../constants/constant_system.dart'; |
| 8 import '../constants/values.dart'; | 8 import '../constants/values.dart'; |
| 9 import '../elements/elements.dart'; | 9 import '../elements/elements.dart'; |
| 10 import '../js_backend/backend_helpers.dart' show BackendHelpers; | 10 import '../js_backend/backend_helpers.dart' show BackendHelpers; |
| 11 import '../js_backend/js_backend.dart'; | 11 import '../js_backend/js_backend.dart'; |
| 12 import '../types/types.dart'; | 12 import '../types/types.dart'; |
| 13 import '../universe/selector.dart' show Selector; | 13 import '../universe/selector.dart' show Selector; |
| 14 import '../world.dart' show ClassWorld, World; | 14 import '../world.dart' show ClassWorld; |
| 15 | |
| 16 import 'nodes.dart'; | 15 import 'nodes.dart'; |
| 17 import 'optimize.dart'; | 16 import 'optimize.dart'; |
| 18 | 17 |
| 19 /** | 18 /** |
| 20 * This phase simplifies interceptors in multiple ways: | 19 * This phase simplifies interceptors in multiple ways: |
| 21 * | 20 * |
| 22 * 1) If the interceptor is for an object whose type is known, it | 21 * 1) If the interceptor is for an object whose type is known, it |
| 23 * tries to use a constant interceptor instead. | 22 * tries to use a constant interceptor instead. |
| 24 * | 23 * |
| 25 * 2) Interceptors are specialized based on the selector it is used with. | 24 * 2) Interceptors are specialized based on the selector it is used with. |
| (...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 408 instruction = new HInvokeDynamicMethod( | 407 instruction = new HInvokeDynamicMethod( |
| 409 selector, mask, inputs, node.instructionType, true); | 408 selector, mask, inputs, node.instructionType, true); |
| 410 } | 409 } |
| 411 | 410 |
| 412 HBasicBlock block = node.block; | 411 HBasicBlock block = node.block; |
| 413 block.addAfter(node, instruction); | 412 block.addAfter(node, instruction); |
| 414 block.rewrite(node, instruction); | 413 block.rewrite(node, instruction); |
| 415 return true; | 414 return true; |
| 416 } | 415 } |
| 417 } | 416 } |
| OLD | NEW |