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 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
270 JumpTarget getJumpTarget(ir.TreeNode node, {bool isContinueTarget: false}) { | 270 JumpTarget getJumpTarget(ir.TreeNode node, {bool isContinueTarget: false}) { |
271 throw new UnimplementedError('KernelToLocalsMapImpl.getJumpTarget'); | 271 throw new UnimplementedError('KernelToLocalsMapImpl.getJumpTarget'); |
272 } | 272 } |
273 | 273 |
274 @override | 274 @override |
275 Local getLocal(ir.VariableDeclaration node) { | 275 Local getLocal(ir.VariableDeclaration node) { |
276 return _map.putIfAbsent(node, () { | 276 return _map.putIfAbsent(node, () { |
277 return new KLocal(node.name, currentMember); | 277 return new KLocal(node.name, currentMember); |
278 }); | 278 }); |
279 } | 279 } |
| 280 |
| 281 @override |
| 282 ClosureScope getClosureScopeForLoop( |
| 283 ClosureClassMap closureData, ir.TreeNode node) { |
| 284 // TODO(johnniwinther): Support closure scopes for loops. |
| 285 return null; |
| 286 } |
280 } | 287 } |
281 | 288 |
282 class KLocal implements Local { | 289 class KLocal implements Local { |
283 final String name; | 290 final String name; |
284 final MemberEntity memberContext; | 291 final MemberEntity memberContext; |
285 | 292 |
286 KLocal(this.name, this.memberContext); | 293 KLocal(this.name, this.memberContext); |
287 | 294 |
288 @override | 295 @override |
289 Entity get executableContext => memberContext; | 296 Entity get executableContext => memberContext; |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 Iterable<ClassEntity> sortClasses(Iterable<ClassEntity> classes) { | 369 Iterable<ClassEntity> sortClasses(Iterable<ClassEntity> classes) { |
363 return classes.toList() | 370 return classes.toList() |
364 ..sort((ClassEntity a, ClassEntity b) { | 371 ..sort((ClassEntity a, ClassEntity b) { |
365 int r = _compareLibraries(a.library, b.library); | 372 int r = _compareLibraries(a.library, b.library); |
366 if (r != 0) return r; | 373 if (r != 0) return r; |
367 return _compareNodes( | 374 return _compareNodes( |
368 a, elementMap.getClassNode(a), b, elementMap.getClassNode(b)); | 375 a, elementMap.getClassNode(a), b, elementMap.getClassNode(b)); |
369 }); | 376 }); |
370 } | 377 } |
371 } | 378 } |
OLD | NEW |