OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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.backend_api; | 5 library dart2js.backend_api; |
6 | 6 |
7 import 'dart:async' show Future; | 7 import 'dart:async' show Future; |
8 | 8 |
9 import '../compiler.dart' show | 9 import '../compiler.dart' show |
10 Compiler; | 10 Compiler; |
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 /// resolution queue has drained and [recentClasses] will be a superset of the | 332 /// resolution queue has drained and [recentClasses] will be a superset of the |
333 /// current value. | 333 /// current value. |
334 /// | 334 /// |
335 /// There is no guarantee that a class is only present once in | 335 /// There is no guarantee that a class is only present once in |
336 /// [recentClasses], but every class seen by the [enqueuer] will be present in | 336 /// [recentClasses], but every class seen by the [enqueuer] will be present in |
337 /// [recentClasses] at least once. | 337 /// [recentClasses] at least once. |
338 bool onQueueEmpty(Enqueuer enqueuer, Iterable<ClassElement> recentClasses) { | 338 bool onQueueEmpty(Enqueuer enqueuer, Iterable<ClassElement> recentClasses) { |
339 return true; | 339 return true; |
340 } | 340 } |
341 | 341 |
| 342 /// Called after the queue is closed. [onQueueEmpty] may be called multiple |
| 343 /// times, but [onQueueClosed] is only called once. |
| 344 void onQueueClosed() {} |
| 345 |
342 /// Called after [element] has been resolved. | 346 /// Called after [element] has been resolved. |
343 // TODO(johnniwinther): Change [TreeElements] to [Registry] or a dependency | 347 // TODO(johnniwinther): Change [TreeElements] to [Registry] or a dependency |
344 // node. [elements] is currently unused by the implementation. | 348 // node. [elements] is currently unused by the implementation. |
345 void onElementResolved(Element element, TreeElements elements) {} | 349 void onElementResolved(Element element, TreeElements elements) {} |
346 | 350 |
347 // Does this element belong in the output | 351 // Does this element belong in the output |
348 bool shouldOutput(Element element) => true; | 352 bool shouldOutput(Element element) => true; |
349 | 353 |
350 FunctionElement helperForBadMain() => null; | 354 FunctionElement helperForBadMain() => null; |
351 | 355 |
352 FunctionElement helperForMissingMain() => null; | 356 FunctionElement helperForMissingMain() => null; |
353 | 357 |
354 FunctionElement helperForMainArity() => null; | 358 FunctionElement helperForMainArity() => null; |
355 | 359 |
356 void forgetElement(Element element) {} | 360 void forgetElement(Element element) {} |
357 | 361 |
358 void registerMainHasArguments(Enqueuer enqueuer) {} | 362 void registerMainHasArguments(Enqueuer enqueuer) {} |
359 | 363 |
360 void registerAsyncMarker(FunctionElement element, | 364 void registerAsyncMarker(FunctionElement element, |
361 Enqueuer enqueuer, | 365 Enqueuer enqueuer, |
362 Registry registry) {} | 366 Registry registry) {} |
363 } | 367 } |
364 | 368 |
OLD | NEW |