OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 deferred_load; | 5 library deferred_load; |
6 | 6 |
7 import 'dart:collection' | 7 import 'dart:collection' |
8 show LinkedHashMap, | 8 show LinkedHashMap, |
9 LinkedHashSet; | 9 LinkedHashSet; |
10 | 10 |
(...skipping 29 matching lines...) Expand all Loading... |
40 final Set<LibraryElement> deferredLibraries = | 40 final Set<LibraryElement> deferredLibraries = |
41 new LinkedHashSet<LibraryElement>(); | 41 new LinkedHashSet<LibraryElement>(); |
42 | 42 |
43 /// Records all elements that are deferred. | 43 /// Records all elements that are deferred. |
44 /// | 44 /// |
45 /// Long term, we want to split deferred element into more than one | 45 /// Long term, we want to split deferred element into more than one |
46 /// file (one for each library that is deferred), and this field | 46 /// file (one for each library that is deferred), and this field |
47 /// should become obsolete. | 47 /// should become obsolete. |
48 final Set<Element> allDeferredElements = new LinkedHashSet<Element>(); | 48 final Set<Element> allDeferredElements = new LinkedHashSet<Element>(); |
49 | 49 |
50 ClassElement cachedDeferredLibraryClass; | |
51 | |
52 DeferredLoadTask(Compiler compiler) : super(compiler); | 50 DeferredLoadTask(Compiler compiler) : super(compiler); |
53 | 51 |
54 String get name => 'Deferred Loading'; | 52 String get name => 'Deferred Loading'; |
55 | 53 |
56 /// DeferredLibrary from dart:async | 54 /// DeferredLibrary from dart:async |
57 ClassElement get deferredLibraryClass => compiler.deferredLibraryClass; | 55 ClassElement get deferredLibraryClass => compiler.deferredLibraryClass; |
58 | 56 |
59 bool get areAnyElementsDeferred => !allDeferredElements.isEmpty; | 57 bool get areAnyElementsDeferred => !allDeferredElements.isEmpty; |
60 | 58 |
61 bool isDeferred(Element element) { | 59 bool isDeferred(Element element) { |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 compiler.enqueuer.resolution.getCachedElements(element); | 242 compiler.enqueuer.resolution.getCachedElements(element); |
245 if (elements == null) return new LinkedHashSet<Element>(); | 243 if (elements == null) return new LinkedHashSet<Element>(); |
246 Node node = element.parseNode(compiler); | 244 Node node = element.parseNode(compiler); |
247 if (node == null) return new LinkedHashSet<Element>(); | 245 if (node == null) return new LinkedHashSet<Element>(); |
248 var collector = new DependencyCollector(elements, compiler); | 246 var collector = new DependencyCollector(elements, compiler); |
249 node.accept(collector); | 247 node.accept(collector); |
250 collector.dependencies.addAll(elements.otherDependencies); | 248 collector.dependencies.addAll(elements.otherDependencies); |
251 return collector.dependencies; | 249 return collector.dependencies; |
252 } | 250 } |
253 } | 251 } |
OLD | NEW |