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 |