| Index: lib/compiler/implementation/ssa/codegen.dart
|
| ===================================================================
|
| --- lib/compiler/implementation/ssa/codegen.dart (revision 7979)
|
| +++ lib/compiler/implementation/ssa/codegen.dart (working copy)
|
| @@ -1568,7 +1568,7 @@
|
| }
|
|
|
| visitFieldGet(HFieldGet node) {
|
| - if (node.receiver !== null) {
|
| + if (!node.isFromActivation()) {
|
| String name =
|
| compiler.namer.instanceFieldName(currentLibrary, node.name);
|
| beginExpression(JSPrecedence.MEMBER_PRECEDENCE);
|
| @@ -1577,13 +1577,14 @@
|
| buffer.add(name);
|
| beginExpression(JSPrecedence.MEMBER_PRECEDENCE);
|
| } else {
|
| - buffer.add(JsNames.getValid(node.name.slowToString()));
|
| + String name = temporary(node.receiver);
|
| + buffer.add(name);
|
| }
|
| }
|
|
|
| visitFieldSet(HFieldSet node) {
|
| String name;
|
| - if (node.receiver !== null) {
|
| + if (!node.isFromActivation()) {
|
| name =
|
| compiler.namer.instanceFieldName(currentLibrary, node.name);
|
| beginExpression(JSPrecedence.ASSIGNMENT_PRECEDENCE);
|
| @@ -1593,7 +1594,7 @@
|
| } else {
|
| // TODO(ngeoffray): Remove the 'var' once we don't globally box
|
| // variables used in a try/catch.
|
| - name = JsNames.getValid(node.name.slowToString());
|
| + String name = temporary(node.receiver);
|
| declareVariable(name);
|
| }
|
| buffer.add(' = ');
|
|
|