| OLD | NEW |
| 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, Measurer; | 10 import 'common/tasks.dart' show CompilerTask, Measurer; |
| (...skipping 1372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1383 /// uri of [library] and invokes the [callback] with the concatenated chain. | 1383 /// uri of [library] and invokes the [callback] with the concatenated chain. |
| 1384 void computeSuffixes(LibraryElement library, Link<Uri> prefix) { | 1384 void computeSuffixes(LibraryElement library, Link<Uri> prefix) { |
| 1385 if (aborted) return; | 1385 if (aborted) return; |
| 1386 | 1386 |
| 1387 Uri canonicalUri = library.canonicalUri; | 1387 Uri canonicalUri = library.canonicalUri; |
| 1388 prefix = prefix.prepend(canonicalUri); | 1388 prefix = prefix.prepend(canonicalUri); |
| 1389 if (suffixChainMap.containsKey(library)) return; | 1389 if (suffixChainMap.containsKey(library)) return; |
| 1390 suffixChainMap[library] = const <Link<Uri>>[]; | 1390 suffixChainMap[library] = const <Link<Uri>>[]; |
| 1391 List<Link<Uri>> suffixes = []; | 1391 List<Link<Uri>> suffixes = []; |
| 1392 if (targetUri != canonicalUri) { | 1392 if (targetUri != canonicalUri) { |
| 1393 LibraryDependencyNode node = nodeMap[library]; | |
| 1394 | |
| 1395 /// Process the import (or export) of [importedLibrary]. | 1393 /// Process the import (or export) of [importedLibrary]. |
| 1396 void processLibrary(LibraryElement importedLibrary) { | 1394 void processLibrary(LibraryElement importedLibrary) { |
| 1397 bool suffixesArePrecomputed = | 1395 bool suffixesArePrecomputed = |
| 1398 suffixChainMap.containsKey(importedLibrary); | 1396 suffixChainMap.containsKey(importedLibrary); |
| 1399 | 1397 |
| 1400 if (!suffixesArePrecomputed) { | 1398 if (!suffixesArePrecomputed) { |
| 1401 computeSuffixes(importedLibrary, prefix); | 1399 computeSuffixes(importedLibrary, prefix); |
| 1402 if (aborted) return; | 1400 if (aborted) return; |
| 1403 } | 1401 } |
| 1404 | 1402 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1415 suffix = suffix.tail; | 1413 suffix = suffix.tail; |
| 1416 } | 1414 } |
| 1417 if (!callback(chain)) { | 1415 if (!callback(chain)) { |
| 1418 aborted = true; | 1416 aborted = true; |
| 1419 return; | 1417 return; |
| 1420 } | 1418 } |
| 1421 } | 1419 } |
| 1422 } | 1420 } |
| 1423 } | 1421 } |
| 1424 | 1422 |
| 1425 for (ImportLink import in node.imports.reverse()) { | 1423 for (ImportElement import in library.imports) { |
| 1426 processLibrary(import.importedLibrary); | 1424 processLibrary(import.importedLibrary); |
| 1427 if (aborted) return; | 1425 if (aborted) return; |
| 1428 } | 1426 } |
| 1429 for (LibraryElement exportedLibrary in node.exports.reverse()) { | 1427 for (ExportElement export in library.exports) { |
| 1430 processLibrary(exportedLibrary); | 1428 processLibrary(export.exportedLibrary); |
| 1431 if (aborted) return; | 1429 if (aborted) return; |
| 1432 } | 1430 } |
| 1433 } else { | 1431 } else { |
| 1434 // Here `targetUri == canonicalUri`. | 1432 // Here `targetUri == canonicalUri`. |
| 1435 if (!callback(prefix)) { | 1433 if (!callback(prefix)) { |
| 1436 aborted = true; | 1434 aborted = true; |
| 1437 return; | 1435 return; |
| 1438 } | 1436 } |
| 1439 suffixes.add(const Link<Uri>().prepend(canonicalUri)); | 1437 suffixes.add(const Link<Uri>().prepend(canonicalUri)); |
| 1440 } | 1438 } |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1509 Future onLibrariesLoaded(LoadedLibraries results); | 1507 Future onLibrariesLoaded(LoadedLibraries results); |
| 1510 | 1508 |
| 1511 /// Called whenever a library element is created. | 1509 /// Called whenever a library element is created. |
| 1512 void onLibraryCreated(LibraryElement library); | 1510 void onLibraryCreated(LibraryElement library); |
| 1513 | 1511 |
| 1514 /// Called whenever a library is scanned from a script file. | 1512 /// Called whenever a library is scanned from a script file. |
| 1515 Future onLibraryScanned(LibraryElement library, LibraryLoader loader); | 1513 Future onLibraryScanned(LibraryElement library, LibraryLoader loader); |
| 1516 } | 1514 } |
| 1517 | 1515 |
| 1518 const _reuseLibrarySubtaskName = "Reuse library"; | 1516 const _reuseLibrarySubtaskName = "Reuse library"; |
| OLD | NEW |