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

Side by Side Diff: pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart

Issue 2954463002: Refactoring to prepare for kernel based jump targets (Closed)
Patch Set: Created 3 years, 6 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
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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.kernel.backend_strategy; 5 library dart2js.kernel.backend_strategy;
6 6
7 import 'package:kernel/ast.dart' as ir; 7 import 'package:kernel/ast.dart' as ir;
8 8
9 import '../backend_strategy.dart'; 9 import '../backend_strategy.dart';
10 import '../closure.dart'; 10 import '../closure.dart';
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 _members.add(member); 291 _members.add(member);
292 } 292 }
293 293
294 @override 294 @override
295 void leaveInlinedMember(MemberEntity member) { 295 void leaveInlinedMember(MemberEntity member) {
296 assert(member == currentMember); 296 assert(member == currentMember);
297 _members.removeLast(); 297 _members.removeLast();
298 } 298 }
299 299
300 @override 300 @override
301 JumpTarget getJumpTarget(ir.TreeNode node, {bool isContinueTarget: false}) { 301 JumpTarget getJumpTargetForBreak(ir.BreakStatement node) {
302 // TODO(johnniwinther): Support jump targets. 302 throw new UnimplementedError('KernelToLocalsMapImpl.getJumpTargetForBreak');
303 }
304
305 @override
306 JumpTarget getJumpTargetForContinueSwitch(ir.ContinueSwitchStatement node) {
307 throw new UnimplementedError(
308 'KernelToLocalsMapImpl.getJumpTargetForContinueSwitch');
309 }
310
311 @override
312 JumpTarget getJumpTargetForSwitchCase(ir.SwitchCase node) {
313 throw new UnimplementedError(
314 'KernelToLocalsMapImpl.getJumpTargetForSwitchCase');
315 }
316
317 @override
318 JumpTarget getJumpTargetForDo(ir.DoStatement node) {
319 // TODO(johnniwinther): Support do statement as jump target.
Siggi Cherem (dart-lang) 2017/06/23 19:25:59 null vs throw is based on whether hello-world hits
Johnni Winther 2017/06/26 07:57:36 Used TODO(redemption) in all such places instead.
303 return null; 320 return null;
304 } 321 }
305 322
323 @override
324 JumpTarget getJumpTargetForLabel(ir.LabeledStatement node) {
325 throw new UnimplementedError('KernelToLocalsMapImpl.getJumpTargetForLabel');
326 }
327
328 @override
329 JumpTarget getJumpTargetForSwitch(ir.SwitchStatement node) {
330 throw new UnimplementedError(
331 'KernelToLocalsMapImpl.getJumpTargetForSwitch');
332 }
333
334 @override
335 JumpTarget getJumpTargetForFor(ir.ForStatement node) {
336 // TODO(johnniwinther): Support for statement as jump target.
337 return null;
338 }
339
340 @override
341 JumpTarget getJumpTargetForForIn(ir.ForInStatement node) {
342 // TODO(johnniwinther): Support for-in statement as jump target.
343 return null;
344 }
345
346 @override
347 JumpTarget getJumpTargetForWhile(ir.WhileStatement node) {
348 // TODO(johnniwinther): Support while statement as jump target.
349 return null;
350 }
351
306 @override 352 @override
307 Local getLocal(ir.VariableDeclaration node) { 353 Local getLocal(ir.VariableDeclaration node) {
308 return _map.putIfAbsent(node, () { 354 return _map.putIfAbsent(node, () {
309 return new KLocal(node.name, currentMember); 355 return new KLocal(node.name, currentMember);
310 }); 356 });
311 } 357 }
312 358
313 @override 359 @override
314 LoopClosureRepresentationInfo getClosureRepresentationInfoForLoop( 360 LoopClosureRepresentationInfo getClosureRepresentationInfoForLoop(
315 ClosureDataLookup closureLookup, ir.TreeNode node) { 361 ClosureDataLookup closureLookup, ir.TreeNode node) {
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 Iterable<ClassEntity> sortClasses(Iterable<ClassEntity> classes) { 427 Iterable<ClassEntity> sortClasses(Iterable<ClassEntity> classes) {
382 return classes.toList() 428 return classes.toList()
383 ..sort((ClassEntity a, ClassEntity b) { 429 ..sort((ClassEntity a, ClassEntity b) {
384 int r = _compareLibraries(a.library, b.library); 430 int r = _compareLibraries(a.library, b.library);
385 if (r != 0) return r; 431 if (r != 0) return r;
386 return _compareNodes( 432 return _compareNodes(
387 a, elementMap.getClassNode(a), b, elementMap.getClassNode(b)); 433 a, elementMap.getClassNode(a), b, elementMap.getClassNode(b));
388 }); 434 });
389 } 435 }
390 } 436 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/kernel/element_map.dart ('k') | pkg/compiler/lib/src/resolution/members.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698