| 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 85f06e8d48a13c330371c5ead7cbecad11c4a2c0..e88d927fdb8f4c819941282cc2f2106576f21723 100644
|
| --- a/pkg/compiler/lib/src/js_backend/constant_emitter.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/constant_emitter.dart
|
| @@ -285,7 +285,7 @@ class ConstantEmitter implements ConstantValueVisitor<jsAst.Expression, Null> {
|
|
|
| @override
|
| jsAst.Expression visitConstructed(ConstructedConstantValue constant, [_]) {
|
| - ClassElement element = constant.type.element;
|
| + Element element = constant.type.element;
|
| if (backend.isForeign(element) && element.name == 'JS_CONST') {
|
| StringConstantValue str = constant.fields.values.single;
|
| String value = str.primitiveValue.slowToString();
|
| @@ -293,10 +293,9 @@ class ConstantEmitter implements ConstantValueVisitor<jsAst.Expression, Null> {
|
| }
|
| jsAst.Expression constructor =
|
| backend.emitter.constructorAccess(constant.type.element);
|
| - List<jsAst.Expression> fields = <jsAst.Expression>[];
|
| - element.forEachInstanceField((_, FieldElement field) {
|
| - fields.add(constantReferenceGenerator(constant.fields[field]));
|
| - });
|
| + List<jsAst.Expression> fields = constant.fields.values
|
| + .map(constantReferenceGenerator)
|
| + .toList(growable: false);
|
| jsAst.New instantiation = new jsAst.New(constructor, fields);
|
| return maybeAddTypeArguments(constant.type, instantiation);
|
| }
|
|
|