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

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: Remove withCurrentElementAsync Created 7 years, 4 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:async';
ahe 2013/08/06 16:29:17 Remove unneeded import.
Johnni Winther 2013/08/27 11:05:00 Done.
7 import 'dart:collection' 8 import 'dart:collection'
8 show LinkedHashMap, 9 show LinkedHashMap,
9 LinkedHashSet; 10 LinkedHashSet;
10 11
11 import 'dart2jslib.dart' 12 import 'dart2jslib.dart'
12 show Compiler, 13 show Compiler,
13 CompilerTask, 14 CompilerTask,
14 ConstructedConstant, 15 ConstructedConstant,
15 MessageKind, 16 MessageKind,
16 SourceString, 17 SourceString,
(...skipping 23 matching lines...) Expand all
40 final Set<LibraryElement> deferredLibraries = 41 final Set<LibraryElement> deferredLibraries =
41 new LinkedHashSet<LibraryElement>(); 42 new LinkedHashSet<LibraryElement>();
42 43
43 /// Records all elements that are deferred. 44 /// Records all elements that are deferred.
44 /// 45 ///
45 /// Long term, we want to split deferred element into more than one 46 /// Long term, we want to split deferred element into more than one
46 /// file (one for each library that is deferred), and this field 47 /// file (one for each library that is deferred), and this field
47 /// should become obsolete. 48 /// should become obsolete.
48 final Set<Element> allDeferredElements = new LinkedHashSet<Element>(); 49 final Set<Element> allDeferredElements = new LinkedHashSet<Element>();
49 50
50 ClassElement cachedDeferredLibraryClass;
51
52 DeferredLoadTask(Compiler compiler) : super(compiler); 51 DeferredLoadTask(Compiler compiler) : super(compiler);
53 52
54 String get name => 'Deferred Loading'; 53 String get name => 'Deferred Loading';
55 54
56 /// DeferredLibrary from dart:async 55 /// DeferredLibrary from dart:async
57 ClassElement get deferredLibraryClass => compiler.deferredLibraryClass; 56 ClassElement get deferredLibraryClass => compiler.deferredLibraryClass;
58 57
59 bool get areAnyElementsDeferred => !allDeferredElements.isEmpty; 58 bool get areAnyElementsDeferred => !allDeferredElements.isEmpty;
60 59
61 bool isDeferred(Element element) { 60 bool isDeferred(Element element) {
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 compiler.enqueuer.resolution.getCachedElements(element); 241 compiler.enqueuer.resolution.getCachedElements(element);
243 if (elements == null) return new LinkedHashSet<Element>(); 242 if (elements == null) return new LinkedHashSet<Element>();
244 Node node = element.parseNode(compiler); 243 Node node = element.parseNode(compiler);
245 if (node == null) return new LinkedHashSet<Element>(); 244 if (node == null) return new LinkedHashSet<Element>();
246 var collector = new DependencyCollector(elements, compiler); 245 var collector = new DependencyCollector(elements, compiler);
247 node.accept(collector); 246 node.accept(collector);
248 collector.dependencies.addAll(elements.otherDependencies); 247 collector.dependencies.addAll(elements.otherDependencies);
249 return collector.dependencies; 248 return collector.dependencies;
250 } 249 }
251 } 250 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698