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 library js_backend.backend; | 5 library js_backend.backend; |
6 | 6 |
7 import 'dart:async' show Future; | 7 import 'dart:async' show Future; |
8 | 8 |
9 import 'package:js_runtime/shared/embedded_names.dart' as embeddedNames; | 9 import 'package:js_runtime/shared/embedded_names.dart' as embeddedNames; |
10 | 10 |
(...skipping 2799 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2810 case TypeUseKind.CHECKED_MODE_CHECK: | 2810 case TypeUseKind.CHECKED_MODE_CHECK: |
2811 if (backend.compiler.options.enableTypeAssertions) { | 2811 if (backend.compiler.options.enableTypeAssertions) { |
2812 onIsCheck(type, transformed); | 2812 onIsCheck(type, transformed); |
2813 } | 2813 } |
2814 break; | 2814 break; |
2815 case TypeUseKind.CATCH_TYPE: | 2815 case TypeUseKind.CATCH_TYPE: |
2816 onIsCheck(type, transformed); | 2816 onIsCheck(type, transformed); |
2817 break; | 2817 break; |
2818 case TypeUseKind.TYPE_LITERAL: | 2818 case TypeUseKind.TYPE_LITERAL: |
2819 backend.customElementsAnalysis.registerTypeLiteral(type); | 2819 backend.customElementsAnalysis.registerTypeLiteral(type); |
2820 if (type.isTypedef) { | |
2821 backend.compiler.openWorld.registerTypedef(type.element); | |
2822 } | |
2823 if (type.isTypeVariable && type is! MethodTypeVariableType) { | 2820 if (type.isTypeVariable && type is! MethodTypeVariableType) { |
2824 // GENERIC_METHODS: The `is!` test above filters away method type | 2821 // GENERIC_METHODS: The `is!` test above filters away method type |
2825 // variables, because they have the value `dynamic` with the | 2822 // variables, because they have the value `dynamic` with the |
2826 // incomplete support for generic methods offered with | 2823 // incomplete support for generic methods offered with |
2827 // '--generic-method-syntax'. This must be revised in order to | 2824 // '--generic-method-syntax'. This must be revised in order to |
2828 // support generic methods fully. | 2825 // support generic methods fully. |
2829 ClassElement cls = type.element.enclosingClass; | 2826 ClassElement cls = type.element.enclosingClass; |
2830 backend.rti.registerClassUsingTypeVariableExpression(cls); | 2827 backend.rti.registerClassUsingTypeVariableExpression(cls); |
2831 registerBackendImpact(transformed, impacts.typeVariableExpression); | 2828 registerBackendImpact(transformed, impacts.typeVariableExpression); |
2832 } | 2829 } |
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3230 ClassElement get mapImplementation => helpers.mapLiteralClass; | 3227 ClassElement get mapImplementation => helpers.mapLiteralClass; |
3231 ClassElement get constMapImplementation => helpers.constMapLiteralClass; | 3228 ClassElement get constMapImplementation => helpers.constMapLiteralClass; |
3232 ClassElement get typeImplementation => helpers.typeLiteralClass; | 3229 ClassElement get typeImplementation => helpers.typeLiteralClass; |
3233 ClassElement get boolImplementation => helpers.jsBoolClass; | 3230 ClassElement get boolImplementation => helpers.jsBoolClass; |
3234 ClassElement get nullImplementation => helpers.jsNullClass; | 3231 ClassElement get nullImplementation => helpers.jsNullClass; |
3235 ClassElement get syncStarIterableImplementation => helpers.syncStarIterable; | 3232 ClassElement get syncStarIterableImplementation => helpers.syncStarIterable; |
3236 ClassElement get asyncFutureImplementation => helpers.futureImplementation; | 3233 ClassElement get asyncFutureImplementation => helpers.futureImplementation; |
3237 ClassElement get asyncStarStreamImplementation => helpers.controllerStream; | 3234 ClassElement get asyncStarStreamImplementation => helpers.controllerStream; |
3238 ClassElement get functionImplementation => helpers.coreClasses.functionClass; | 3235 ClassElement get functionImplementation => helpers.coreClasses.functionClass; |
3239 } | 3236 } |
OLD | NEW |