Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(499)

Side by Side Diff: dart/lib/compiler/implementation/ssa/nodes.dart

Issue 10854163: Implement super.foo = expression. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Address review comments and fix a crash Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « dart/lib/compiler/implementation/ssa/codegen.dart ('k') | dart/tests/co19/co19-dart2js.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 interface HVisitor<R> { 5 interface HVisitor<R> {
6 R visitAdd(HAdd node); 6 R visitAdd(HAdd node);
7 R visitBailoutTarget(HBailoutTarget node); 7 R visitBailoutTarget(HBailoutTarget node);
8 R visitBitAnd(HBitAnd node); 8 R visitBitAnd(HBitAnd node);
9 R visitBitNot(HBitNot node); 9 R visitBitNot(HBitNot node);
10 R visitBitOr(HBitOr node); 10 R visitBitOr(HBitOr node);
(...skipping 1231 matching lines...) Expand 10 before | Expand all | Expand 10 after
1242 if (input == target) return HType.UNKNOWN; 1242 if (input == target) return HType.UNKNOWN;
1243 return computeDesiredTypeForNonTargetInput(input); 1243 return computeDesiredTypeForNonTargetInput(input);
1244 } 1244 }
1245 1245
1246 HType computeDesiredTypeForNonTargetInput(HInstruction input) { 1246 HType computeDesiredTypeForNonTargetInput(HInstruction input) {
1247 return HType.UNKNOWN; 1247 return HType.UNKNOWN;
1248 } 1248 }
1249 } 1249 }
1250 1250
1251 class HInvokeSuper extends HInvokeStatic { 1251 class HInvokeSuper extends HInvokeStatic {
1252 HInvokeSuper(inputs) : super(inputs); 1252 final bool isSetter;
1253 HInvokeSuper(inputs, [this.isSetter = false]) : super(inputs);
1253 toString() => 'invoke super: ${element.name}'; 1254 toString() => 'invoke super: ${element.name}';
1254 accept(HVisitor visitor) => visitor.visitInvokeSuper(this); 1255 accept(HVisitor visitor) => visitor.visitInvokeSuper(this);
1256
1257 HInstruction get value() {
1258 assert(isSetter);
1259 // Index 0: the element, index 1: 'this'.
1260 return inputs[2];
1261 }
1255 } 1262 }
1256 1263
1257 class HInvokeInterceptor extends HInvokeStatic { 1264 class HInvokeInterceptor extends HInvokeStatic {
1258 final Selector selector; 1265 final Selector selector;
1259 final SourceString name; 1266 final SourceString name;
1260 final bool getter; 1267 final bool getter;
1261 final bool setter; 1268 final bool setter;
1262 1269
1263 HInvokeInterceptor(this.selector, 1270 HInvokeInterceptor(this.selector,
1264 this.name, 1271 this.name,
(...skipping 1453 matching lines...) Expand 10 before | Expand all | Expand 10 after
2718 HBasicBlock get start() => expression.start; 2725 HBasicBlock get start() => expression.start;
2719 HBasicBlock get end() { 2726 HBasicBlock get end() {
2720 // We don't create a switch block if there are no cases. 2727 // We don't create a switch block if there are no cases.
2721 assert(!statements.isEmpty()); 2728 assert(!statements.isEmpty());
2722 return statements.last().end; 2729 return statements.last().end;
2723 } 2730 }
2724 2731
2725 bool accept(HStatementInformationVisitor visitor) => 2732 bool accept(HStatementInformationVisitor visitor) =>
2726 visitor.visitSwitchInfo(this); 2733 visitor.visitSwitchInfo(this);
2727 } 2734 }
OLDNEW
« no previous file with comments | « dart/lib/compiler/implementation/ssa/codegen.dart ('k') | dart/tests/co19/co19-dart2js.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698