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 js_backend; | 5 part of js_backend; |
6 | 6 |
7 class JavaScriptItemCompilationContext extends ItemCompilationContext { | 7 class JavaScriptItemCompilationContext extends ItemCompilationContext { |
8 final Set<HInstruction> boundsChecked; | 8 final Set<HInstruction> boundsChecked; |
9 | 9 |
10 JavaScriptItemCompilationContext() | 10 JavaScriptItemCompilationContext() |
(...skipping 754 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
765 void ensure(ClassElement classElement) { | 765 void ensure(ClassElement classElement) { |
766 if (classElement != null) { | 766 if (classElement != null) { |
767 enqueuer.registerInstantiatedClass(classElement, elements); | 767 enqueuer.registerInstantiatedClass(classElement, elements); |
768 } | 768 } |
769 } | 769 } |
770 enqueueInResolution(getExceptionUnwrapper(), elements); | 770 enqueueInResolution(getExceptionUnwrapper(), elements); |
771 ensure(jsPlainJavaScriptObjectClass); | 771 ensure(jsPlainJavaScriptObjectClass); |
772 ensure(jsUnknownJavaScriptObjectClass); | 772 ensure(jsUnknownJavaScriptObjectClass); |
773 } | 773 } |
774 | 774 |
775 void registerWrapException(TreeElements elements) { | 775 void registerThrowExpression(TreeElements elements) { |
| 776 // We don't know ahead of time whether we will need the throw in a |
| 777 // statement context or an expression context, so we register both |
| 778 // here, even though we may not need the throwExpression helper. |
776 enqueueInResolution(getWrapExceptionHelper(), elements); | 779 enqueueInResolution(getWrapExceptionHelper(), elements); |
777 } | |
778 | |
779 void registerThrowExpression(TreeElements elements) { | |
780 enqueueInResolution(getThrowExpressionHelper(), elements); | 780 enqueueInResolution(getThrowExpressionHelper(), elements); |
781 } | 781 } |
782 | 782 |
783 void registerLazyField(TreeElements elements) { | 783 void registerLazyField(TreeElements elements) { |
784 enqueueInResolution(getCyclicThrowHelper(), elements); | 784 enqueueInResolution(getCyclicThrowHelper(), elements); |
785 } | 785 } |
786 | 786 |
787 void registerTypeLiteral(Element element, TreeElements elements) { | 787 void registerTypeLiteral(Element element, TreeElements elements) { |
788 enqueueInResolution(getCreateRuntimeType(), elements); | 788 enqueueInResolution(getCreateRuntimeType(), elements); |
789 // TODO(ahe): Might want to register [element] as an instantiated class | 789 // TODO(ahe): Might want to register [element] as an instantiated class |
(...skipping 804 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1594 copy(constant.values); | 1594 copy(constant.values); |
1595 copy(constant.protoValue); | 1595 copy(constant.protoValue); |
1596 copy(constant); | 1596 copy(constant); |
1597 } | 1597 } |
1598 | 1598 |
1599 void visitConstructed(ConstructedConstant constant) { | 1599 void visitConstructed(ConstructedConstant constant) { |
1600 copy(constant.fields); | 1600 copy(constant.fields); |
1601 copy(constant); | 1601 copy(constant); |
1602 } | 1602 } |
1603 } | 1603 } |
OLD | NEW |