| 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 SsaFunctionCompiler implements FunctionCompiler { | 7 class SsaFunctionCompiler implements FunctionCompiler { |
| 8 final SsaCodeGeneratorTask generator; | 8 final SsaCodeGeneratorTask generator; |
| 9 final SsaBuilderTask builder; | 9 final SsaBuilderTask builder; |
| 10 final SsaOptimizerTask optimizer; | 10 final SsaOptimizerTask optimizer; |
| (...skipping 3558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3569 _) { | 3569 _) { |
| 3570 generateStaticGetterGet(node, getter); | 3570 generateStaticGetterGet(node, getter); |
| 3571 } | 3571 } |
| 3572 | 3572 |
| 3573 void generateInstanceSetterWithCompiledReceiver(ast.Send send, | 3573 void generateInstanceSetterWithCompiledReceiver(ast.Send send, |
| 3574 HInstruction receiver, | 3574 HInstruction receiver, |
| 3575 HInstruction value, | 3575 HInstruction value, |
| 3576 {Selector selector, | 3576 {Selector selector, |
| 3577 TypeMask mask, | 3577 TypeMask mask, |
| 3578 ast.Node location}) { | 3578 ast.Node location}) { |
| 3579 assert(send == null || Elements.isInstanceSend(send, elements)); | 3579 assert(invariant( |
| 3580 send == null ? location : send, |
| 3581 send == null || Elements.isInstanceSend(send, elements), |
| 3582 message: "Unexpected instance setter" |
| 3583 "${send != null ? " element: ${elements[send]}" : ""}")); |
| 3580 if (selector == null) { | 3584 if (selector == null) { |
| 3581 assert(send != null); | 3585 assert(send != null); |
| 3582 selector = elements.getSelector(send); | 3586 selector = elements.getSelector(send); |
| 3583 if (mask == null) { | 3587 if (mask == null) { |
| 3584 mask = elements.getTypeMask(send); | 3588 mask = elements.getTypeMask(send); |
| 3585 } | 3589 } |
| 3586 } | 3590 } |
| 3587 if (location == null) { | 3591 if (location == null) { |
| 3588 assert(send != null); | 3592 assert(send != null); |
| 3589 location = send; | 3593 location = send; |
| (...skipping 5245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8835 if (unaliased is TypedefType) throw 'unable to unalias $type'; | 8839 if (unaliased is TypedefType) throw 'unable to unalias $type'; |
| 8836 unaliased.accept(this, builder); | 8840 unaliased.accept(this, builder); |
| 8837 } | 8841 } |
| 8838 | 8842 |
| 8839 void visitDynamicType(DynamicType type, SsaBuilder builder) { | 8843 void visitDynamicType(DynamicType type, SsaBuilder builder) { |
| 8840 JavaScriptBackend backend = builder.compiler.backend; | 8844 JavaScriptBackend backend = builder.compiler.backend; |
| 8841 ClassElement cls = backend.findHelper('DynamicRuntimeType'); | 8845 ClassElement cls = backend.findHelper('DynamicRuntimeType'); |
| 8842 builder.push(new HDynamicType(type, new TypeMask.exact(cls, classWorld))); | 8846 builder.push(new HDynamicType(type, new TypeMask.exact(cls, classWorld))); |
| 8843 } | 8847 } |
| 8844 } | 8848 } |
| OLD | NEW |