| Index: sdk/lib/_internal/pub/lib/src/barback/asset_environment.dart
|
| diff --git a/sdk/lib/_internal/pub/lib/src/barback/asset_environment.dart b/sdk/lib/_internal/pub/lib/src/barback/asset_environment.dart
|
| index 75f90d70aa8021c44eef5e1307697dc8544ce76c..6e841f36ba40870c6bf64cc9c47908c066511cd5 100644
|
| --- a/sdk/lib/_internal/pub/lib/src/barback/asset_environment.dart
|
| +++ b/sdk/lib/_internal/pub/lib/src/barback/asset_environment.dart
|
| @@ -520,7 +520,7 @@ class AssetEnvironment {
|
| /// For large packages, listing the contents is a performance bottleneck, so
|
| /// this is optimized for our needs in here instead of using the more general
|
| /// but slower [listDir].
|
| - List<AssetId> _listDirectorySources(Package package, String dir) {
|
| + Iterable<AssetId> _listDirectorySources(Package package, String dir) {
|
| var subdirectory = path.join(package.dir, dir);
|
| if (!dirExists(subdirectory)) return [];
|
|
|
| @@ -529,29 +529,18 @@ class AssetEnvironment {
|
| // readability than most code in pub. In particular, it avoids using the
|
| // path package, since re-parsing a path is very expensive relative to
|
| // string operations.
|
| - return package.listFiles(beneath: subdirectory).expand((file) {
|
| - var relative = file.substring(package.dir.length + 1);
|
| -
|
| - // Skip files that were (most likely) compiled from nearby ".dart"
|
| - // files. These are created by the Editor's "Run as JavaScript"
|
| - // command and are written directly into the package's directory.
|
| - // When pub's dart2js transformer then tries to create the same file
|
| - // name, we get a build error. To avoid that, just don't consider
|
| - // that file to be a source.
|
| - // TODO(rnystrom): Remove these when the Editor no longer generates
|
| - // .js files and users have had enough time that they no longer have
|
| - // these files laying around. See #15859.
|
| - if (relative.endsWith(".dart.js")) return [];
|
| - if (relative.endsWith(".dart.js.map")) return [];
|
| - if (relative.endsWith(".dart.precompiled.js")) return [];
|
| + return package.listFiles(beneath: subdirectory).map((file) {
|
| + // From profiling, path.relative here is just as fast as a raw substring
|
| + // and is correct in the case where package.dir has a trailing slash.
|
| + var relative = path.relative(file, from: package.dir);
|
|
|
| if (Platform.operatingSystem == 'windows') {
|
| relative = relative.replaceAll("\\", "/");
|
| }
|
|
|
| var uri = new Uri(pathSegments: relative.split("/"));
|
| - return [new AssetId(package.name, uri.toString())];
|
| - }).toList();
|
| + return new AssetId(package.name, uri.toString());
|
| + });
|
| }
|
|
|
| /// Adds a file watcher for [dir] within [package], if the directory exists
|
|
|