| Index: pkg/compiler/lib/src/js_backend/constant_emitter.dart
|
| diff --git a/pkg/compiler/lib/src/js_backend/constant_emitter.dart b/pkg/compiler/lib/src/js_backend/constant_emitter.dart
|
| index 5b87b15b7854b9530c326d914669e032382792f6..c480ae0f198424a8b3d6d84b19631760b0ed9e70 100644
|
| --- a/pkg/compiler/lib/src/js_backend/constant_emitter.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/constant_emitter.dart
|
| @@ -66,6 +66,11 @@ class ConstantEmitter
|
| return new jsAst.LiteralNull();
|
| }
|
|
|
| + @override
|
| + jsAst.Expression visitNonConstant(NonConstantValue constant, [_]) {
|
| + return new jsAst.LiteralNull();
|
| + }
|
| +
|
| static final _exponentialRE = new RegExp(
|
| '^'
|
| '\([-+]?\)' // 1: sign
|
| @@ -292,9 +297,11 @@ class ConstantEmitter
|
| }
|
| jsAst.Expression constructor =
|
| backend.emitter.constructorAccess(constant.type.element);
|
| - List<jsAst.Expression> fields =
|
| - constant.fields.values.map(constantReferenceGenerator)
|
| - .toList(growable: false);
|
| + List<jsAst.Expression> fields = <jsAst.Expression>[];
|
| + constant.type.element.implementation.forEachInstanceField(
|
| + (ClassElement enclosingClass, VariableElement member) {
|
| + fields.add(constantReferenceGenerator(constant.fields[member]));
|
| + }, includeSuperAndInjectedMembers: true);
|
| jsAst.New instantiation = new jsAst.New(constructor, fields);
|
| return maybeAddTypeArguments(constant.type, instantiation);
|
| }
|
|
|