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

Side by Side Diff: pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart

Issue 831133004: Use closure conversion in new dart2js backend. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebase Created 5 years, 11 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
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 library dart2js.ir_nodes_sexpr; 5 library dart2js.ir_nodes_sexpr;
6 6
7 import '../constants/values.dart'; 7 import '../constants/values.dart';
8 import '../util/util.dart'; 8 import '../util/util.dart';
9 import 'cps_ir_nodes.dart'; 9 import 'cps_ir_nodes.dart';
10 10
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 return '$indentation(DeclareFunction $name =\n' 221 return '$indentation(DeclareFunction $name =\n'
222 '$function in\n' 222 '$function in\n'
223 '$body)'; 223 '$body)';
224 } 224 }
225 225
226 String visitIsTrue(IsTrue node) { 226 String visitIsTrue(IsTrue node) {
227 String value = access(node.value); 227 String value = access(node.value);
228 return '(IsTrue $value)'; 228 return '(IsTrue $value)';
229 } 229 }
230 230
231 String visitSetField(SetField node) {
232 String object = access(node.object);
233 String field = node.field.name;
234 String value = access(node.value);
235 String body = indentBlock(() => visit(node.body));
236 return '$indentation(SetField $object.$field = $value in\n$body)';
Kevin Millikin (Google) 2015/01/13 08:25:36 I don't really want '.', '=', or 'in' here. This
asgerf 2015/01/13 10:04:26 Yeah, I must have been half-thinking about the IR
237 }
238
239 String visitGetField(GetField node) {
240 String object = access(node.object);
241 String field = node.field.toString();
242 return '(GetField $object.$field)';
Kevin Millikin (Google) 2015/01/13 08:25:36 No dot: '(GetField $object $field)'
243 }
244
245 String visitCreateBox(CreateBox node) {
246 return '(CreateBox)';
247 }
248
249 String visitCreateClosureClass(CreateClosureClass node) {
250 String className = node.classElement.name;
251 String arguments = node.arguments.map(access).join(' ');
252 return '(CreateClosureClass $className $arguments)';
Kevin Millikin (Google) 2015/01/13 08:25:36 '(CreateClosureClass $className ($arguments))'
253 }
254
231 String visitIdentical(Identical node) { 255 String visitIdentical(Identical node) {
232 String left = access(node.left); 256 String left = access(node.left);
233 String right = access(node.right); 257 String right = access(node.right);
234 return '(Identical $left $right)'; 258 return '(Identical $left $right)';
235 } 259 }
236 260
237 String visitInterceptor(Interceptor node) { 261 String visitInterceptor(Interceptor node) {
238 return '(Interceptor ${node.input})'; 262 return '(Interceptor ${node.input})';
239 } 263 }
240 } 264 }
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 void setReturnContinuation(Continuation node) { 355 void setReturnContinuation(Continuation node) {
332 assert(!_names.containsKey(node) || _names[node] == 'return'); 356 assert(!_names.containsKey(node) || _names[node] == 'return');
333 _names[node] = 'return'; 357 _names[node] = 'return';
334 } 358 }
335 359
336 String getName(Node node) { 360 String getName(Node node) {
337 assert(_names.containsKey(node)); 361 assert(_names.containsKey(node));
338 return _names[node]; 362 return _names[node];
339 } 363 }
340 } 364 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698