diff --git a/pkg/compiler/lib/src/dart2js.dart b/pkg/compiler/lib/src/dart2js.dart index 5555b386554..c1db5c4333f 100644 --- a/pkg/compiler/lib/src/dart2js.dart +++ b/pkg/compiler/lib/src/dart2js.dart @@ -7,6 +7,7 @@ library dart2js.cmdline; import 'dart:async' show Future; import 'dart:convert' show utf8, LineSplitter; import 'dart:io' show exit, File, FileMode, Platform, stdin, stderr; +import 'dart:isolate' show Isolate; import 'package:front_end/src/api_unstable/dart2js.dart' as fe; import 'package:package_config/discovery.dart' show findPackages; @@ -20,7 +21,7 @@ import 'util/command_line.dart'; import 'util/uri_extras.dart'; import 'util/util.dart' show stackTraceFilePrefix; -const String LIBRARY_ROOT = '../../../../../sdk'; +const String LIBRARY_ROOT = '../../../../sdk'; const String OUTPUT_LANGUAGE_DART = 'Dart'; /** @@ -561,9 +562,13 @@ void fail(String message) { } Future compilerMain(List arguments, - {fe.InitializedCompilerState kernelInitializedCompilerState}) { - var root = uriPathToNative("/$LIBRARY_ROOT"); - arguments = ['--library-root=${Platform.script.toFilePath()}$root'] + {fe.InitializedCompilerState kernelInitializedCompilerState}) async { + Uri script = Platform.script; + if (script.isScheme("package")) { + script = await Isolate.resolvePackageUri(script); + } + Uri libraryRoot = script.resolve(LIBRARY_ROOT); + arguments = ['--library-root=${libraryRoot.toFilePath()}'] ..addAll(arguments); return compile(arguments, kernelInitializedCompilerState: kernelInitializedCompilerState); diff --git a/sdk/bin/dart2js b/sdk/bin/dart2js index b4c19382e94..cfc91b1d759 100755 --- a/sdk/bin/dart2js +++ b/sdk/bin/dart2js @@ -50,6 +50,6 @@ fi DART_ROOT="$(cd "${SDK_DIR}/.." ; pwd -P)" -DART2JS="$DART_ROOT/pkg/compiler/lib/src/dart2js.dart" +DART2JS="package:compiler/src/dart2js.dart" exec "$DART" "--packages=$DART_ROOT/.packages" "${EXTRA_VM_OPTIONS[@]}" "$DART2JS" "${EXTRA_OPTIONS[@]}" "$@"