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

Side by Side Diff: pkg/compiler/lib/src/library_loader.dart

Issue 1914973002: Reinsert (and test) handling of exceptions from user code. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments Created 4 years, 7 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
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 dart2js.library_loader; 5 library dart2js.library_loader;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'common/names.dart' show Uris; 9 import 'common/names.dart' show Uris;
10 import 'common/tasks.dart' show CompilerTask; 10 import 'common/tasks.dart' show CompilerTask;
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 if (reusedLibraries != null) { 338 if (reusedLibraries != null) {
339 reusedLibraries.forEach(mapLibrary); 339 reusedLibraries.forEach(mapLibrary);
340 } 340 }
341 }); 341 });
342 } 342 }
343 343
344 Future resetAsync(Future<bool> reuseLibrary(LibraryElement library)) { 344 Future resetAsync(Future<bool> reuseLibrary(LibraryElement library)) {
345 return measure(() { 345 return measure(() {
346 assert(currentHandler == null); 346 assert(currentHandler == null);
347 347
348 wrapper(lib) => reuseLibrary(lib).then((reuse) => reuse ? lib : null); 348 Future<LibraryElement> wrapper(LibraryElement library) {
349 try {
350 return reuseLibrary(library)
351 .then((bool reuse) => reuse ? library : null);
352 } catch (exception, trace) {
353 reporter.onCrashInUserCode(
354 'Uncaught exception in reuseLibrary', exception, trace);
355 rethrow;
356 }
357 }
358
349 List<Future<LibraryElement>> reusedLibrariesFuture = 359 List<Future<LibraryElement>> reusedLibrariesFuture =
350 // TODO(sigmund): make measurements separate from compiler 360 // TODO(sigmund): make measurements separate from compiler
351 compiler.reuseLibraryTask.measure( 361 compiler.reuseLibraryTask.measure(
352 () => libraryCanonicalUriMap.values.map(wrapper).toList()); 362 () => libraryCanonicalUriMap.values.map(wrapper).toList());
353 363
354 return Future 364 return Future
355 .wait(reusedLibrariesFuture) 365 .wait(reusedLibrariesFuture)
356 .then((List<LibraryElement> reusedLibraries) { 366 .then((List<LibraryElement> reusedLibraries) {
357 resetImplementation(reusedLibraries.where((e) => e != null)); 367 resetImplementation(reusedLibraries.where((e) => e != null));
358 }); 368 });
(...skipping 1105 matching lines...) Expand 10 before | Expand all | Expand 10 after
1464 /// Called after a request to load a library. The [results] will include all 1474 /// Called after a request to load a library. The [results] will include all
1465 /// transitive libraries loaded as a result of the initial request. 1475 /// transitive libraries loaded as a result of the initial request.
1466 Future onLibrariesLoaded(LoadedLibraries results); 1476 Future onLibrariesLoaded(LoadedLibraries results);
1467 1477
1468 /// Called whenever a library element is created. 1478 /// Called whenever a library element is created.
1469 void onLibraryCreated(LibraryElement library); 1479 void onLibraryCreated(LibraryElement library);
1470 1480
1471 /// Called whenever a library is scanned from a script file. 1481 /// Called whenever a library is scanned from a script file.
1472 Future onLibraryScanned(LibraryElement library, LibraryLoader loader); 1482 Future onLibraryScanned(LibraryElement library, LibraryLoader loader);
1473 } 1483 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/diagnostics/diagnostic_listener.dart ('k') | tests/compiler/dart2js/diagnostic_helper.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698