Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(720)

Side by Side Diff: sdk/lib/_internal/compiler/implementation/deferred_load.dart

Issue 17759007: First pass at asynchronous input loading in dart2js. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comments Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698