| Index: pkg/compiler/lib/src/js_model/closure.dart
|
| diff --git a/pkg/compiler/lib/src/js_model/closure.dart b/pkg/compiler/lib/src/js_model/closure.dart
|
| index bcd5228727a63c5c9a660d39ffcd5cd06e360234..899411ec8a19fb0fa3ac8e79f599f2e413bc21fe 100644
|
| --- a/pkg/compiler/lib/src/js_model/closure.dart
|
| +++ b/pkg/compiler/lib/src/js_model/closure.dart
|
| @@ -131,12 +131,7 @@ class KernelClosureConversionTask extends ClosureConversionTask<ir.Node> {
|
| // We want the original declaration where that function is used to point
|
| // to the correct closure class.
|
| _closureRepresentationMap[closureClass.callMethod] = closureClass;
|
| - Entity entity;
|
| - if (node.parent is ir.Member) {
|
| - entity = _elementMap.getMember(node.parent);
|
| - } else {
|
| - entity = localsMap.getLocalFunction(node.parent);
|
| - }
|
| + Entity entity = localsMap.getLocalFunction(node.parent);
|
| assert(entity != null);
|
| _closureRepresentationMap[entity] = closureClass;
|
| }
|
| @@ -342,9 +337,7 @@ class KernelClosureClass extends JsScopeInfo
|
| this.library,
|
| KernelScopeInfo info,
|
| KernelToLocalsMap localsMap)
|
| - : closureEntity = closureSourceNode.parent is ir.Member
|
| - ? null
|
| - : localsMap.getLocalFunction(closureSourceNode.parent),
|
| + : closureEntity = localsMap.getLocalFunction(closureSourceNode.parent),
|
| super.from(info, localsMap);
|
|
|
| ClassEntity get closureClassEntity => this;
|
| @@ -441,35 +434,15 @@ class ClosureMemberData implements MemberData {
|
|
|
| class ClosureFunctionData extends ClosureMemberData implements FunctionData {
|
| final FunctionType functionType;
|
| - final ir.FunctionNode functionNode;
|
|
|
| - ClosureFunctionData(
|
| - ClosureMemberDefinition definition, this.functionType, this.functionNode)
|
| + ClosureFunctionData(MemberDefinition definition, this.functionType)
|
| : super(definition);
|
|
|
| + @override
|
| void forEachParameter(KernelToElementMapForBuilding elementMap,
|
| void f(DartType type, String name, ConstantValue defaultValue)) {
|
| - void handleParameter(ir.VariableDeclaration node, {bool isOptional: true}) {
|
| - DartType type = elementMap.getDartType(node.type);
|
| - String name = node.name;
|
| - ConstantValue defaultValue;
|
| - if (isOptional) {
|
| - if (node.initializer != null) {
|
| - defaultValue = elementMap.getConstantValue(node.initializer);
|
| - } else {
|
| - defaultValue = new NullConstantValue();
|
| - }
|
| - }
|
| - f(type, name, defaultValue);
|
| - }
|
| -
|
| - for (int i = 0; i < functionNode.positionalParameters.length; i++) {
|
| - handleParameter(functionNode.positionalParameters[i],
|
| - isOptional: i < functionNode.requiredParameterCount);
|
| - }
|
| - functionNode.namedParameters.toList()
|
| - ..sort(namedOrdering)
|
| - ..forEach(handleParameter);
|
| + // TODO(johnniwinther,efortuna): Implement this.
|
| + throw new UnimplementedError('ClosureFunctionData.forEachParameter');
|
| }
|
|
|
| @override
|
|
|