OLD | NEW |
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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.impact_transformer; | 5 library js_backend.backend.impact_transformer; |
6 | 6 |
7 import '../common.dart'; | 7 import '../common.dart'; |
8 import '../common_elements.dart'; | 8 import '../common_elements.dart'; |
9 import '../common/backend_api.dart' show ImpactTransformer; | 9 import '../common/backend_api.dart' show ImpactTransformer; |
10 import '../common/codegen.dart' show CodegenImpact; | 10 import '../common/codegen.dart' show CodegenImpact; |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
356 this._backendUsage, | 356 this._backendUsage, |
357 this._rtiNeed, | 357 this._rtiNeed, |
358 this._nativeCodegenEnqueuer, | 358 this._nativeCodegenEnqueuer, |
359 this._namer, | 359 this._namer, |
360 this._oneShotInterceptorData, | 360 this._oneShotInterceptorData, |
361 this._lookupMapAnalysis, | 361 this._lookupMapAnalysis, |
362 this._rtiChecksBuilder); | 362 this._rtiChecksBuilder); |
363 | 363 |
364 void onIsCheckForCodegen(DartType type, TransformedWorldImpact transformed) { | 364 void onIsCheckForCodegen(DartType type, TransformedWorldImpact transformed) { |
365 if (type.isDynamic) return; | 365 if (type.isDynamic) return; |
366 if (type.isVoid) return; | |
367 type = type.unaliased; | 366 type = type.unaliased; |
368 _impacts.typeCheck.registerImpact(transformed, _elementEnvironment); | 367 _impacts.typeCheck.registerImpact(transformed, _elementEnvironment); |
369 | 368 |
370 bool inCheckedMode = _options.enableTypeAssertions; | 369 bool inCheckedMode = _options.enableTypeAssertions; |
371 // [registerIsCheck] is also called for checked mode checks, so we | 370 // [registerIsCheck] is also called for checked mode checks, so we |
372 // need to register checked mode helpers. | 371 // need to register checked mode helpers. |
373 if (inCheckedMode) { | 372 if (inCheckedMode) { |
374 // All helpers are added to resolution queue in enqueueHelpers. These | 373 // All helpers are added to resolution queue in enqueueHelpers. These |
375 // calls to [enqueue] with the resolution enqueuer serve as assertions | 374 // calls to [enqueue] with the resolution enqueuer serve as assertions |
376 // that the helper was in fact added. | 375 // that the helper was in fact added. |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
467 _impacts.asyncStarBody | 466 _impacts.asyncStarBody |
468 .registerImpact(transformed, _elementEnvironment); | 467 .registerImpact(transformed, _elementEnvironment); |
469 break; | 468 break; |
470 } | 469 } |
471 } | 470 } |
472 | 471 |
473 // TODO(johnniwinther): Remove eager registration. | 472 // TODO(johnniwinther): Remove eager registration. |
474 return transformed; | 473 return transformed; |
475 } | 474 } |
476 } | 475 } |
OLD | NEW |