| 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 const VERBOSE_OPTIMIZER_HINTS = false; | 7 const VERBOSE_OPTIMIZER_HINTS = false; |
| 8 | 8 |
| 9 class JavaScriptItemCompilationContext extends ItemCompilationContext { | 9 class JavaScriptItemCompilationContext extends ItemCompilationContext { |
| 10 final Set<HInstruction> boundsChecked = new Set<HInstruction>(); | 10 final Set<HInstruction> boundsChecked = new Set<HInstruction>(); |
| (...skipping 2685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2696 } | 2696 } |
| 2697 break; | 2697 break; |
| 2698 case TypeUseKind.CATCH_TYPE: | 2698 case TypeUseKind.CATCH_TYPE: |
| 2699 onIsCheck(type, transformed); | 2699 onIsCheck(type, transformed); |
| 2700 break; | 2700 break; |
| 2701 case TypeUseKind.TYPE_LITERAL: | 2701 case TypeUseKind.TYPE_LITERAL: |
| 2702 backend.customElementsAnalysis.registerTypeLiteral(type); | 2702 backend.customElementsAnalysis.registerTypeLiteral(type); |
| 2703 if (type.isTypedef) { | 2703 if (type.isTypedef) { |
| 2704 backend.compiler.world.allTypedefs.add(type.element); | 2704 backend.compiler.world.allTypedefs.add(type.element); |
| 2705 } | 2705 } |
| 2706 if (type.isTypeVariable && type is! MethodTypeVariableType) { | 2706 if (type.isTypeVariable) { |
| 2707 // GENERIC_METHODS: The `is!` test above filters away method type | |
| 2708 // variables, because they have the value `dynamic` with the | |
| 2709 // incomplete support for generic methods offered with | |
| 2710 // '--generic-method-syntax'. This must be revised in order to | |
| 2711 // support generic methods fully. | |
| 2712 ClassElement cls = type.element.enclosingClass; | 2707 ClassElement cls = type.element.enclosingClass; |
| 2713 backend.rti.registerClassUsingTypeVariableExpression(cls); | 2708 backend.rti.registerClassUsingTypeVariableExpression(cls); |
| 2714 registerBackendImpact(transformed, impacts.typeVariableExpression); | 2709 registerBackendImpact(transformed, impacts.typeVariableExpression); |
| 2715 } | 2710 } |
| 2716 hasTypeLiteral = true; | 2711 hasTypeLiteral = true; |
| 2717 break; | 2712 break; |
| 2718 } | 2713 } |
| 2719 } | 2714 } |
| 2720 | 2715 |
| 2721 if (hasAsCast) { | 2716 if (hasAsCast) { |
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3025 | 3020 |
| 3026 @override | 3021 @override |
| 3027 void onImpactUsed(ImpactUseCase impactUse) { | 3022 void onImpactUsed(ImpactUseCase impactUse) { |
| 3028 if (impactUse == DeferredLoadTask.IMPACT_USE && !supportSerialization) { | 3023 if (impactUse == DeferredLoadTask.IMPACT_USE && !supportSerialization) { |
| 3029 // TODO(johnniwinther): Allow emptying when serialization has been | 3024 // TODO(johnniwinther): Allow emptying when serialization has been |
| 3030 // performed. | 3025 // performed. |
| 3031 resolution.emptyCache(); | 3026 resolution.emptyCache(); |
| 3032 } | 3027 } |
| 3033 } | 3028 } |
| 3034 } | 3029 } |
| OLD | NEW |