| Index: pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
|
| diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
|
| index 1510315ede7eaabeb732eeebadcf722b4dd8ab3a..5d09dff93f613b269f0443138bf36576f892510c 100644
|
| --- a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
|
| +++ b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
|
| @@ -706,6 +706,8 @@ class Parameter extends Primitive {
|
| int parentIndex;
|
|
|
| accept(Visitor visitor) => visitor.visitParameter(this);
|
| +
|
| + String toString() => 'Parameter(${hint == null ? null : hint.name})';
|
| }
|
|
|
| /// Continuations are normally bound by 'let cont'. A continuation with one
|
| @@ -797,6 +799,7 @@ class RunnableBody extends InteriorNode {
|
| class FunctionDefinition extends Node
|
| implements ExecutableDefinition {
|
| final FunctionElement element;
|
| + final Parameter thisParameter;
|
| /// Mixed list of [Parameter]s and [MutableVariable]s.
|
| final List<Definition> parameters;
|
| final RunnableBody body;
|
| @@ -806,12 +809,14 @@ class FunctionDefinition extends Node
|
| final List<ConstantExpression> defaultParameterValues;
|
|
|
| FunctionDefinition(this.element,
|
| + this.thisParameter,
|
| this.parameters,
|
| this.body,
|
| this.localConstants,
|
| this.defaultParameterValues);
|
|
|
| FunctionDefinition.abstract(this.element,
|
| + this.thisParameter,
|
| this.parameters,
|
| this.defaultParameterValues)
|
| : body = null,
|
| @@ -848,13 +853,14 @@ class ConstructorDefinition extends FunctionDefinition {
|
| final List<Initializer> initializers;
|
|
|
| ConstructorDefinition(ConstructorElement element,
|
| + Definition thisParameter, // only Dart
|
| List<Definition> parameters,
|
| RunnableBody body,
|
| this.initializers,
|
| List<ConstDeclaration> localConstants,
|
| List<ConstantExpression> defaultParameterValues)
|
| - : super(element, parameters, body, localConstants,
|
| - defaultParameterValues);
|
| + : super(element, thisParameter, parameters, body, localConstants,
|
| + defaultParameterValues);
|
|
|
| // 'Abstract' here means "has no body" and is used to represent external
|
| // constructors.
|
| @@ -863,7 +869,7 @@ class ConstructorDefinition extends FunctionDefinition {
|
| List<Definition> parameters,
|
| List<ConstantExpression> defaultParameterValues)
|
| : initializers = null,
|
| - super.abstract(element, parameters, defaultParameterValues);
|
| + super.abstract(element, null, parameters, defaultParameterValues);
|
|
|
| accept(Visitor visitor) => visitor.visitConstructorDefinition(this);
|
| applyPass(Pass pass) => pass.rewriteConstructorDefinition(this);
|
|
|