| Index: lib/compiler/implementation/ssa/codegen.dart
|
| diff --git a/lib/compiler/implementation/ssa/codegen.dart b/lib/compiler/implementation/ssa/codegen.dart
|
| index 1108f0f78ee2e506a1539adc5b801b0ebdb55f5d..61e55a0700960360bdcd4828e9aff17fb7e61f2e 100644
|
| --- a/lib/compiler/implementation/ssa/codegen.dart
|
| +++ b/lib/compiler/implementation/ssa/codegen.dart
|
| @@ -1741,7 +1741,9 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| buffer.add(name);
|
| Type type = node.receiver.propagatedType.computeType(compiler);
|
| if (type != null) {
|
| - world.registerFieldSetter(node.element.name, type);
|
| + world.registerFieldSetter(node.element.name,
|
| + type,
|
| + node.value.isInteger());
|
| }
|
| } else {
|
| declareInstruction(node.receiver);
|
| @@ -1771,6 +1773,17 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| }
|
|
|
| visitForeignNew(HForeignNew node) {
|
| + var i = 0;
|
| + node.element.forEachInstanceField(
|
| + includeBackendMembers: true,
|
| + includeSuperMembers: true,
|
| + f: (ClassElement enclosingClass, Element member) {
|
| + world.registerFieldInitializer(member.name,
|
| + enclosingClass.computeType(compiler),
|
| + node.inputs[i].isInteger());
|
| +
|
| + i++;
|
| + });
|
| String jsClassReference = compiler.namer.isolateAccess(node.element);
|
| beginExpression(JSPrecedence.MEMBER_PRECEDENCE);
|
| buffer.add('new $jsClassReference(');
|
|
|