| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 import 'package:kernel/ast.dart' as ir; | 5 import 'package:kernel/ast.dart' as ir; |
| 6 | 6 |
| 7 import '../closure.dart'; | 7 import '../closure.dart'; |
| 8 import '../common.dart'; | 8 import '../common.dart'; |
| 9 import '../common/codegen.dart' show CodegenRegistry; | 9 import '../common/codegen.dart' show CodegenRegistry; |
| 10 import '../common/names.dart'; | 10 import '../common/names.dart'; |
| (...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 394 // Provide the parameters to the generative constructor body. | 394 // Provide the parameters to the generative constructor body. |
| 395 body.function.positionalParameters.forEach(handleParameter); | 395 body.function.positionalParameters.forEach(handleParameter); |
| 396 body.function.namedParameters.toList() | 396 body.function.namedParameters.toList() |
| 397 ..sort(namedOrdering) | 397 ..sort(namedOrdering) |
| 398 ..forEach(handleParameter); | 398 ..forEach(handleParameter); |
| 399 | 399 |
| 400 // If there are locals that escape (i.e. mutated in closures), we pass the | 400 // If there are locals that escape (i.e. mutated in closures), we pass the |
| 401 // box to the constructor. | 401 // box to the constructor. |
| 402 CapturedScope scopeData = | 402 CapturedScope scopeData = |
| 403 closureDataLookup.getCapturedScope(constructorElement); | 403 closureDataLookup.getCapturedScope(constructorElement); |
| 404 if (scopeData.requiresContextBox) { | 404 if (scopeData.hasBox) { |
| 405 bodyCallInputs.add(localsHandler.readLocal(scopeData.context)); | 405 bodyCallInputs.add(localsHandler.readLocal(scopeData.box)); |
| 406 } | 406 } |
| 407 | 407 |
| 408 // Pass type arguments. | 408 // Pass type arguments. |
| 409 ir.Class currentClass = body.enclosingClass; | 409 ir.Class currentClass = body.enclosingClass; |
| 410 if (closedWorld.rtiNeed | 410 if (closedWorld.rtiNeed |
| 411 .classNeedsRti(_elementMap.getClass(currentClass))) { | 411 .classNeedsRti(_elementMap.getClass(currentClass))) { |
| 412 for (ir.DartType typeParameter in currentClass.thisType.typeArguments) { | 412 for (ir.DartType typeParameter in currentClass.thisType.typeArguments) { |
| 413 HInstruction argument = localsHandler.readLocal(localsHandler | 413 HInstruction argument = localsHandler.readLocal(localsHandler |
| 414 .getTypeVariableAsLocal(_elementMap.getDartType(typeParameter))); | 414 .getTypeVariableAsLocal(_elementMap.getDartType(typeParameter))); |
| 415 bodyCallInputs.add(argument); | 415 bodyCallInputs.add(argument); |
| (...skipping 3264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3680 enterBlock.setBlockFlow( | 3680 enterBlock.setBlockFlow( |
| 3681 new HTryBlockInformation( | 3681 new HTryBlockInformation( |
| 3682 kernelBuilder.wrapStatementGraph(bodyGraph), | 3682 kernelBuilder.wrapStatementGraph(bodyGraph), |
| 3683 exception, | 3683 exception, |
| 3684 kernelBuilder.wrapStatementGraph(catchGraph), | 3684 kernelBuilder.wrapStatementGraph(catchGraph), |
| 3685 kernelBuilder.wrapStatementGraph(finallyGraph)), | 3685 kernelBuilder.wrapStatementGraph(finallyGraph)), |
| 3686 exitBlock); | 3686 exitBlock); |
| 3687 kernelBuilder.inTryStatement = previouslyInTryStatement; | 3687 kernelBuilder.inTryStatement = previouslyInTryStatement; |
| 3688 } | 3688 } |
| 3689 } | 3689 } |
| OLD | NEW |