Chromium Code Reviews| Index: pkg/front_end/lib/src/fasta/translate_uri.dart |
| diff --git a/pkg/front_end/lib/src/fasta/translate_uri.dart b/pkg/front_end/lib/src/fasta/translate_uri.dart |
| index 5ca6eae58450ea46300c73d4e1d9d699742463c4..c766ffa4bf5cc94c67698d03d528742478a88617 100644 |
| --- a/pkg/front_end/lib/src/fasta/translate_uri.dart |
| +++ b/pkg/front_end/lib/src/fasta/translate_uri.dart |
| @@ -15,8 +15,9 @@ import 'package:package_config/packages_file.dart' as packages_file show |
| class TranslateUri { |
| final Map<String, Uri> packages; |
| + final Map<String, Uri> dartLibraries; |
| - TranslateUri(this.packages); |
| + TranslateUri(this.packages, this.dartLibraries); |
| Uri translate(Uri uri) { |
| if (uri.scheme == "dart") return translateDartUri(uri); |
| @@ -24,9 +25,7 @@ class TranslateUri { |
| return null; |
| } |
| - // TODO(ahe): Implement loading platform file on demand. This method must |
| - // become async for that to happen. |
| - Uri translateDartUri(Uri uri) => null; |
| + Uri translateDartUri(Uri uri) => dartLibraries[uri.path]; |
| Uri translatePackageUri(Uri uri) { |
| int index = uri.path.indexOf("/"); |
| @@ -38,11 +37,41 @@ class TranslateUri { |
| return root.resolve(path); |
| } |
| - static Future<TranslateUri> parse([Uri uri]) async { |
| + static Future<TranslateUri> parse(Uri sdk, [Uri uri]) async { |
| + // This list is generated with [bin/generate_dart_libraries.dart] below. |
|
Siggi Cherem (dart-lang)
2017/02/03 18:16:58
I think we need to do a few changes regarding how
ahe
2017/02/03 19:34:14
I started using the .platform files Sigurd started
|
| + // |
| + // TODO(ahe): This is only used with the option --compile-sdk, and |
| + // currently doesn't work outside the SDK source tree. |
| + Map<String, Uri> dartLibraries = { |
|
Siggi Cherem (dart-lang)
2017/02/03 18:16:58
You probably need to add a couple VM libraries her
ahe
2017/02/03 19:34:14
I agree.
All this will be easier to clean up once
|
| + "async": sdk.resolve("lib/async/async.dart"), |
| + "_blink": sdk.resolve("lib/_blink/dartium/_blink_dartium.dart"), |
| + "_chrome": sdk.resolve("lib/_chrome/dart2js/chrome_dart2js.dart"), |
| + "collection": sdk.resolve("lib/collection/collection.dart"), |
| + "convert": sdk.resolve("lib/convert/convert.dart"), |
| + "core": sdk.resolve("lib/core/core.dart"), |
| + "developer": sdk.resolve("lib/developer/developer.dart"), |
| + "html": sdk.resolve("lib/html/dartium/html_dartium.dart"), |
| + "html_common": sdk.resolve("lib/html/html_common/html_common.dart"), |
| + "indexed_db": |
| + sdk.resolve("lib/indexed_db/dartium/indexed_db_dartium.dart"), |
| + "io": sdk.resolve("lib/io/io.dart"), |
| + "isolate": sdk.resolve("lib/isolate/isolate.dart"), |
| + "js": sdk.resolve("lib/js/dartium/js_dartium.dart"), |
| + "js_util": sdk.resolve("lib/js_util/dartium/js_util_dartium.dart"), |
| + "math": sdk.resolve("lib/math/math.dart"), |
| + "mirrors": sdk.resolve("lib/mirrors/mirrors.dart"), |
| + "nativewrappers": sdk.resolve("lib/html/dartium/nativewrappers.dart"), |
| + "typed_data": sdk.resolve("lib/typed_data/typed_data.dart"), |
| + "svg": sdk.resolve("lib/svg/dartium/svg_dartium.dart"), |
| + "web_audio": sdk.resolve("lib/web_audio/dartium/web_audio_dartium.dart"), |
| + "web_gl": sdk.resolve("lib/web_gl/dartium/web_gl_dartium.dart"), |
| + "web_sql": sdk.resolve("lib/web_sql/dartium/web_sql_dartium.dart"), |
| + "_internal": sdk.resolve("lib/internal/internal.dart"), |
| + }; |
| uri ??= Uri.base.resolve(".packages"); |
| File file = new File.fromUri(uri); |
| List<int> bytes = await file.readAsBytes(); |
| Map<String, Uri> packages = packages_file.parse(bytes, uri); |
| - return new TranslateUri(packages); |
| + return new TranslateUri(packages, dartLibraries); |
| } |
| } |