| Index: lib/compiler/implementation/ssa/nodes.dart
|
| ===================================================================
|
| --- lib/compiler/implementation/ssa/nodes.dart (revision 7979)
|
| +++ lib/compiler/implementation/ssa/nodes.dart (working copy)
|
| @@ -1215,9 +1215,11 @@
|
| final SourceString name;
|
| HFieldGet(this.name, HInstruction receiver)
|
| : super(<HInstruction>[receiver]);
|
| - HFieldGet.fromActivation(this.name) : super(<HInstruction>[]);
|
| + HFieldGet.fromActivation(receiver) : this(null, receiver);
|
|
|
| HInstruction get receiver() => inputs.length == 1 ? inputs[0] : null;
|
| + bool isFromActivation() => name === null;
|
| +
|
| accept(HVisitor visitor) => visitor.visitFieldGet(this);
|
|
|
| void prepareGvn() {
|
| @@ -1233,12 +1235,13 @@
|
| final SourceString name;
|
| HFieldSet(this.name, HInstruction receiver, HInstruction value)
|
| : super(<HInstruction>[receiver, value]);
|
| - HFieldSet.fromActivation(this.name, HInstruction value)
|
| - : super(<HInstruction>[value]);
|
| + HFieldSet.fromActivation(receiver, value)
|
| + : this(null, receiver, value);
|
|
|
| HInstruction get receiver() => inputs.length == 2 ? inputs[0] : null;
|
| HInstruction get value() => inputs.length == 2 ? inputs[1] : inputs[0];
|
| accept(HVisitor visitor) => visitor.visitFieldSet(this);
|
| + bool isFromActivation() => name === null;
|
|
|
| void prepareGvn() {
|
| // TODO(ngeoffray): implement more fine grain side effects.
|
|
|