| Index: pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
| diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
| index 32c63d0317547fa3e36501dfe2ca67bbe3359011..2ebe34ba70d410db8862a642d21e0bc451535b9c 100644
|
| --- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
| +++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
| @@ -479,6 +479,8 @@ abstract class IrBuilder {
|
| // TODO(johnniwinther): Make these field final and remove the default values
|
| // when [IrBuilder] is a property of [IrBuilderVisitor] instead of a mixin.
|
|
|
| + final List<ir.Parameter> _parameters = <ir.Parameter>[];
|
| +
|
| IrBuilderDelimitedState state;
|
|
|
| /// A map from variable indexes to their values.
|
| @@ -560,18 +562,20 @@ abstract class IrBuilder {
|
| _enterScope(closureScope);
|
| }
|
|
|
| - void buildFunctionHeader(Iterable<Local> parameters,
|
| - {ClosureScope closureScope,
|
| - ClosureEnvironment env}) {
|
| + List<ir.Primitive> buildFunctionHeader(Iterable<Local> parameters,
|
| + {ClosureScope closureScope,
|
| + ClosureEnvironment env}) {
|
| _createThisParameter();
|
| _enterClosureEnvironment(env);
|
| _enterScope(closureScope);
|
| parameters.forEach(_createFunctionParameter);
|
| + return _parameters;
|
| }
|
|
|
| /// Creates a parameter for [local] and adds it to the current environment.
|
| ir.Parameter createLocalParameter(Local local) {
|
| ir.Parameter parameter = new ir.Parameter(local);
|
| + _parameters.add(parameter);
|
| environment.extend(local, parameter);
|
| return parameter;
|
| }
|
| @@ -2186,6 +2190,7 @@ class DartIrBuilder extends IrBuilder {
|
|
|
| void _createFunctionParameter(Local parameterElement) {
|
| ir.Parameter parameter = new ir.Parameter(parameterElement);
|
| + _parameters.add(parameter);
|
| if (isInMutableVariable(parameterElement)) {
|
| state.functionParameters.add(getMutableVariable(parameterElement));
|
| } else {
|
| @@ -2394,6 +2399,7 @@ class JsIrBuilder extends IrBuilder {
|
|
|
| void _createFunctionParameter(Local parameterElement) {
|
| ir.Parameter parameter = new ir.Parameter(parameterElement);
|
| + _parameters.add(parameter);
|
| state.functionParameters.add(parameter);
|
| ClosureLocation location = jsState.boxedVariables[parameterElement];
|
| if (location != null) {
|
|
|