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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/mirrors/dart2js_mirror.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) 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 mirrors_dart2js; 5 library mirrors_dart2js;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:collection' show LinkedHashMap; 8 import 'dart:collection' show LinkedHashMap;
9 9
10 import '../../compiler.dart' as api; 10 import '../../compiler.dart' as api;
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 compilationFailed = true; 220 compilationFailed = true;
221 } 221 }
222 diagnosticHandler(uri, begin, end, message, kind); 222 diagnosticHandler(uri, begin, end, message, kind);
223 } 223 }
224 224
225 Compiler compiler = new apiimpl.Compiler(inputProvider, 225 Compiler compiler = new apiimpl.Compiler(inputProvider,
226 null, 226 null,
227 internalDiagnosticHandler, 227 internalDiagnosticHandler,
228 libraryRoot, packageRoot, options); 228 libraryRoot, packageRoot, options);
229 compiler.librariesToAnalyzeWhenRun = libraries; 229 compiler.librariesToAnalyzeWhenRun = libraries;
230 bool success = compiler.run(null); 230 return compiler.run(null).then((bool success) {
231 if (success && !compilationFailed) { 231 if (success && !compilationFailed) {
232 return new Future<MirrorSystem>.value(new Dart2JsMirrorSystem(compiler)); 232 return new Dart2JsMirrorSystem(compiler);
233 } else { 233 } else {
234 return new Future<MirrorSystem>.error('Failed to create mirror system.'); 234 throw new StateError('Failed to create mirror system.');
235 } 235 }
236 });
236 } 237 }
237 238
238 //------------------------------------------------------------------------------ 239 //------------------------------------------------------------------------------
239 // Dart2Js specific extensions of mirror interfaces 240 // Dart2Js specific extensions of mirror interfaces
240 //------------------------------------------------------------------------------ 241 //------------------------------------------------------------------------------
241 242
242 abstract class Dart2JsMirror implements Mirror { 243 abstract class Dart2JsMirror implements Mirror {
243 Dart2JsMirrorSystem get mirrors; 244 Dart2JsMirrorSystem get mirrors;
244 } 245 }
245 246
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 376
376 DeclarationMirror lookupInScope(String name) { 377 DeclarationMirror lookupInScope(String name) {
377 // TODO(11653): Support lookup of constructors. 378 // TODO(11653): Support lookup of constructors.
378 Scope scope = _element.buildScope(); 379 Scope scope = _element.buildScope();
379 Element result; 380 Element result;
380 int index = name.indexOf('.'); 381 int index = name.indexOf('.');
381 if (index != -1) { 382 if (index != -1) {
382 // Lookup [: prefix.id :]. 383 // Lookup [: prefix.id :].
383 String prefix = name.substring(0, index); 384 String prefix = name.substring(0, index);
384 String id = name.substring(index+1); 385 String id = name.substring(index+1);
385 result = scope.lookup(new SourceString(prefix)); 386 result = scope.lookup(new SourceString(prefix));
386 if (result != null && result.isPrefix()) { 387 if (result != null && result.isPrefix()) {
387 PrefixElement prefix = result; 388 PrefixElement prefix = result;
388 result = prefix.lookupLocalMember(new SourceString(id)); 389 result = prefix.lookupLocalMember(new SourceString(id));
389 } else { 390 } else {
390 result = null; 391 result = null;
391 } 392 }
392 } else { 393 } else {
393 // Lookup [: id :]. 394 // Lookup [: id :].
394 result = scope.lookup(new SourceString(name)); 395 result = scope.lookup(new SourceString(name));
395 } 396 }
(...skipping 1354 matching lines...) Expand 10 before | Expand all | Expand 10 after
1750 * 1751 *
1751 * All API in this class is experimental. 1752 * All API in this class is experimental.
1752 */ 1753 */
1753 class BackDoor { 1754 class BackDoor {
1754 /// Return the compilation units comprising [library]. 1755 /// Return the compilation units comprising [library].
1755 static List<Mirror> compilationUnitsOf(Dart2JsLibraryMirror library) { 1756 static List<Mirror> compilationUnitsOf(Dart2JsLibraryMirror library) {
1756 return library._library.compilationUnits.toList().map( 1757 return library._library.compilationUnits.toList().map(
1757 (cu) => new Dart2JsCompilationUnitMirror(cu, library)).toList(); 1758 (cu) => new Dart2JsCompilationUnitMirror(cu, library)).toList();
1758 } 1759 }
1759 } 1760 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698