Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/compiler.dart |
| diff --git a/sdk/lib/_internal/compiler/implementation/compiler.dart b/sdk/lib/_internal/compiler/implementation/compiler.dart |
| index d221a0b0410c2b2d1eb074f208665e4b26db86dd..131eb2c542c77a0b29851c826ef2d0078158d6b8 100644 |
| --- a/sdk/lib/_internal/compiler/implementation/compiler.dart |
| +++ b/sdk/lib/_internal/compiler/implementation/compiler.dart |
| @@ -430,9 +430,14 @@ abstract class Backend { |
| Set<Element> targets, |
| Set<Element> metaTargets) {} |
| - /// Returns true if this element should be retained for reflection even if it |
| - /// would normally be tree-shaken away. |
| - bool isNeededForReflection(Element element) => false; |
| + /// Returns true if this element needs reflection information at runtime. |
| + bool isAccessibleByReflection(Element element) => true; |
| + /// Returns true if this element is covered by a mirrorsUsed annotation but |
|
Johnni Winther
2014/06/27 07:43:00
Add an empty line before doc comments.
herhut
2014/06/27 12:34:35
Done.
|
| + /// is ok to be treeshaken away. |
|
Johnni Winther
2014/06/27 07:43:00
Add an example of how this is sound.
floitsch
2014/06/27 08:59:15
but might be ok to be treeshaken away.
herhut
2014/06/27 12:34:35
Done.
herhut
2014/06/27 12:34:35
Done.
|
| + bool referencedFromMirrorSystem(Element element, [recursive]) => false; |
| + /// Returns true if this element has to be enqueued due to |
| + /// mirror usage. Might be a subset of the above. |
| + bool requiredByMirrorSystem(Element element) => false; |
|
Johnni Winther
2014/06/27 07:43:00
Give an example.
herhut
2014/06/27 12:34:35
Done.
|
| /// Returns true if global optimizations such as type inferencing |
| /// can apply to this element. One category of elements that do not |
| @@ -442,8 +447,13 @@ abstract class Backend { |
| /// Called when [enqueuer]'s queue is empty, but before it is closed. |
| /// This is used, for example, by the JS backend to enqueue additional |
| - /// elements needed for reflection. |
| - void onQueueEmpty(Enqueuer enqueuer) {} |
| + /// elements needed for reflection. [recentClasses] is a collection of |
| + /// all classes added since the last call to onQueueEmpty. A return value |
|
Johnni Winther
2014/06/27 07:43:00
'added' -> 'added to the set of instantiation clas
herhut
2014/06/27 12:34:35
seen for the first time by the enqueuer....
|
| + /// of [true] indicates that recentClasses has been processed and its |
| + /// elements do not need to be seen in the next round. When [false] is |
| + /// returned, [onQueueEmpty] will be called again and [recentClasses] |
| + /// will be a superset of the current value. |
|
Johnni Winther
2014/06/27 07:43:00
When is this needed?
herhut
2014/06/27 12:34:35
This allows each step in onQueueEmpty to abort pro
|
| + bool onQueueEmpty(Enqueuer enqueuer, Iterable<ClassElement> recentClasses) {} |
|
floitsch
2014/06/27 08:59:15
I don't like the name "onX" is something that allo
karlklose
2014/06/27 09:35:28
For me onX is something that allows me to do somet
floitsch
2014/06/27 12:05:38
That's not how it is used in most libraries. For e
herhut
2014/06/27 12:34:35
This needs a more global fix, so not in this CL...
Johnni Winther
2014/06/27 14:22:30
The `domElement.onClick` is a short-hand for getti
|
| /// Called after [element] has been resolved. |
| // TODO(johnniwinther): Change [TreeElements] to [Registry] or a dependency |