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

Unified Diff: lib/src/dart.dart

Issue 1228683003: Fix various pub issues. (Closed) Base URL: git@github.com:dart-lang/pub.git@master
Patch Set: Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/src/command/list_package_dirs.dart ('k') | lib/src/log.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/dart.dart
diff --git a/lib/src/dart.dart b/lib/src/dart.dart
index b1985684e3fa461dafc4634c174f54c86dd83ec2..a96e9f69b1f98962bc1d12d8e0f46a919f9b8cbe 100644
--- a/lib/src/dart.dart
+++ b/lib/src/dart.dart
@@ -13,7 +13,7 @@ import 'package:analyzer/analyzer.dart';
import 'package:compiler_unsupported/compiler.dart' as compiler;
import 'package:compiler_unsupported/src/filenames.dart'
show appendSlash;
-import 'package:path/path.dart' as path;
+import 'package:path/path.dart' as p;
import 'asset/dart/serialize.dart';
import 'io.dart';
@@ -70,46 +70,50 @@ Future compile(String entrypoint, CompilerProvider provider, {
bool suppressPackageWarnings: true,
bool terse: false,
bool includeSourceMapUrls: false,
- bool toDart: false}) {
- return new Future.sync(() {
- var options = <String>['--categories=Client,Server'];
- if (checked) options.add('--enable-checked-mode');
- if (csp) options.add('--csp');
- if (minify) options.add('--minify');
- if (verbose) options.add('--verbose');
- if (analyzeAll) options.add('--analyze-all');
- if (preserveUris) options.add('--preserve-uris');
- if (suppressWarnings) options.add('--suppress-warnings');
- if (suppressHints) options.add('--suppress-hints');
- if (!suppressPackageWarnings) options.add('--show-package-warnings');
- if (terse) options.add('--terse');
- if (toDart) options.add('--output-type=dart');
-
- var sourceUrl = path.toUri(entrypoint);
- options.add("--out=$sourceUrl.js");
-
- // Add the source map URLs.
- if (includeSourceMapUrls) {
- options.add("--source-map=$sourceUrl.js.map");
- }
+ bool toDart: false}) async {
+ // dart2js chokes on relative paths. Including "/./" can also confuse it, so
Bob Nystrom 2015/07/09 22:47:19 File bugs for these?
nweiz 2015/07/09 23:42:44 They seem to be closely tied to the specific way w
+ // we normalize as well.
+ entrypoint = p.normalize(p.absolute(entrypoint));
+
+ var options = <String>['--categories=Client,Server'];
+ if (checked) options.add('--enable-checked-mode');
+ if (csp) options.add('--csp');
+ if (minify) options.add('--minify');
+ if (verbose) options.add('--verbose');
+ if (analyzeAll) options.add('--analyze-all');
+ if (preserveUris) options.add('--preserve-uris');
+ if (suppressWarnings) options.add('--suppress-warnings');
+ if (suppressHints) options.add('--suppress-hints');
+ if (!suppressPackageWarnings) options.add('--show-package-warnings');
+ if (terse) options.add('--terse');
+ if (toDart) options.add('--output-type=dart');
+
+ var sourceUrl = p.toUri(entrypoint);
+ options.add("--out=$sourceUrl.js");
+
+ // Add the source map URLs.
+ if (includeSourceMapUrls) {
+ options.add("--source-map=$sourceUrl.js.map");
+ }
- if (environment == null) environment = {};
- if (commandLineOptions != null) options.addAll(commandLineOptions);
+ if (environment == null) environment = {};
+ if (commandLineOptions != null) options.addAll(commandLineOptions);
- if (packageRoot == null) {
- packageRoot = path.join(path.dirname(entrypoint), 'packages');
- }
+ if (packageRoot == null) {
+ packageRoot = p.join(p.dirname(entrypoint), 'packages');
+ } else {
+ packageRoot = p.normalize(p.absolute(packageRoot));
+ }
- return compiler.compile(
- path.toUri(path.absolute(entrypoint)),
- provider.libraryRoot,
- path.toUri(appendSlash(path.absolute(packageRoot))),
- provider.provideInput,
- provider.handleDiagnostic,
- options,
- provider.provideOutput,
- environment);
- });
+ await compiler.compile(
+ p.toUri(entrypoint),
+ provider.libraryRoot,
+ p.toUri(appendSlash(packageRoot)),
+ provider.provideInput,
+ provider.handleDiagnostic,
+ options,
+ provider.provideOutput,
+ environment);
}
/// Returns whether [dart] looks like an entrypoint file.
@@ -160,7 +164,7 @@ Future runInIsolate(String code, message, {packageRoot, String snapshot})
log.fine("Spawning isolate from $snapshot.");
if (packageRoot != null) packageRoot = Uri.parse(packageRoot.toString());
try {
- await Isolate.spawnUri(path.toUri(snapshot), [], message,
+ await Isolate.spawnUri(p.toUri(snapshot), [], message,
packageRoot: packageRoot);
return;
} on IsolateSpawnException catch (error) {
@@ -170,12 +174,12 @@ Future runInIsolate(String code, message, {packageRoot, String snapshot})
}
await withTempDir((dir) async {
- var dartPath = path.join(dir, 'runInIsolate.dart');
+ var dartPath = p.join(dir, 'runInIsolate.dart');
writeTextFile(dartPath, code, dontLogContents: true);
var port = new ReceivePort();
await Isolate.spawn(_isolateBuffer, {
'replyTo': port.sendPort,
- 'uri': path.toUri(dartPath).toString(),
+ 'uri': p.toUri(dartPath).toString(),
'packageRoot': packageRoot == null ? null : packageRoot.toString(),
'message': message
});
@@ -187,7 +191,7 @@ Future runInIsolate(String code, message, {packageRoot, String snapshot})
if (snapshot == null) return;
- ensureDir(path.dirname(snapshot));
+ ensureDir(p.dirname(snapshot));
var snapshotArgs = [];
if (packageRoot != null) snapshotArgs.add('--package-root=$packageRoot');
snapshotArgs.addAll(['--snapshot=$snapshot', dartPath]);
@@ -198,7 +202,7 @@ Future runInIsolate(String code, message, {packageRoot, String snapshot})
// Don't emit a fatal error here, since we don't want to crash the
// otherwise successful isolate load.
log.warning("Failed to compile a snapshot to "
- "${path.relative(snapshot)}:\n" + result.stderr.join("\n"));
+ "${p.relative(snapshot)}:\n" + result.stderr.join("\n"));
});
}
« no previous file with comments | « lib/src/command/list_package_dirs.dart ('k') | lib/src/log.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698