| Index: dart/runtime/bin/builtin.dart
|
| ===================================================================
|
| --- dart/runtime/bin/builtin.dart (revision 32272)
|
| +++ dart/runtime/bin/builtin.dart (working copy)
|
| @@ -216,14 +216,18 @@
|
| // Relative URIs with scheme dart-ext should be resolved as if with no
|
| // scheme.
|
| resolved = baseUri.resolve(uri.path);
|
| - var path = resolved.path;
|
| if (resolved.scheme == 'package') {
|
| // If we are resolving relative to a package URI we go directly to the
|
| // file path and keep the dart-ext scheme. Otherwise, we will lose the
|
| // package URI path part.
|
| - path = _filePathFromPackageUri(resolved);
|
| + var path = _filePathFromPackageUri(resolved);
|
| + if (path.startsWith('http:')) {
|
| + throw "Native extensions not supported in "
|
| + "packages loaded over http: %path";
|
| + }
|
| + resolved = new Uri.file(path);
|
| }
|
| - resolved = new Uri(scheme: 'dart-ext', path: path);
|
| + resolved = new Uri(scheme: 'dart-ext', path: resolved.path);
|
| } else {
|
| resolved = baseUri.resolve(userString);
|
| }
|
| @@ -244,7 +248,9 @@
|
| return uri.toFilePath();
|
| break;
|
| case 'dart-ext':
|
| - return new Uri(scheme: 'file',
|
| + // Relative file URIs don't start with file:///.
|
| + var scheme = (uri.path.startsWith('/') ? 'file' : '');
|
| + return new Uri(scheme: scheme,
|
| host: uri.host,
|
| path: uri.path).toFilePath();
|
| break;
|
|
|