| Index: lib/compiler/implementation/ssa/codegen.dart
|
| diff --git a/lib/compiler/implementation/ssa/codegen.dart b/lib/compiler/implementation/ssa/codegen.dart
|
| index 087d657c4b2aaf64440db5358589fa36574014c3..38681f914948b5fe7da8b54006f8b205f5d224df 100644
|
| --- a/lib/compiler/implementation/ssa/codegen.dart
|
| +++ b/lib/compiler/implementation/ssa/codegen.dart
|
| @@ -1634,33 +1634,13 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| }
|
|
|
| visitFieldSet(HFieldSet node) {
|
| - if (work.element.isGenerativeConstructorBody() &&
|
| - node.element.isMember() &&
|
| - node.value.hasGuaranteedType() &&
|
| - node.block.dominates(currentGraph.exit)) {
|
| - backend.updateFieldConstructorSetters(node.element,
|
| - node.value.guaranteedType);
|
| - }
|
| String name = backend.namer.getName(node.element);
|
| DartType type = types[node.receiver].computeType(compiler);
|
| if (type != null) {
|
| if (!work.element.isGenerativeConstructorBody()) {
|
| world.registerFieldSetter(
|
| node.element.name, node.element.getLibrary(), type);
|
| - }
|
| - // Determine the types seen so far for the field. If only number
|
| - // types have been seen and the value of the field set is a
|
| - // simple number computation only depending on that field, we
|
| - // can safely keep the number type for the field.
|
| - HType fieldSettersType = backend.fieldSettersTypeSoFar(node.element);
|
| - HType initializersType =
|
| - backend.typeFromInitializersSoFar(node.element);
|
| - HType fieldType = fieldSettersType.union(initializersType);
|
| - if (HType.NUMBER.union(fieldType) == HType.NUMBER &&
|
| - isSimpleFieldNumberComputation(node.value, node)) {
|
| - backend.updateFieldSetters(node.element, HType.NUMBER);
|
| - } else {
|
| - backend.updateFieldSetters(node.element, types[node.value]);
|
| + backend.registerFieldSetter(node, types);
|
| }
|
| }
|
| use(node.receiver);
|
| @@ -1699,14 +1679,6 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| }
|
|
|
| visitForeignNew(HForeignNew node) {
|
| - int j = 0;
|
| - node.element.forEachInstanceField(
|
| - includeBackendMembers: true,
|
| - includeSuperMembers: true,
|
| - f: (ClassElement enclosingClass, Element member) {
|
| - backend.updateFieldInitializers(member, types[node.inputs[j]]);
|
| - j++;
|
| - });
|
| String jsClassReference = backend.namer.isolateAccess(node.element);
|
| List<HInstruction> inputs = node.inputs;
|
| // We can't use 'visitArguments', since our arguments start at input[0].
|
|
|