Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 } |
| OLD | NEW |