Index: runtime/bin/vmservice/loader.dart |
diff --git a/runtime/bin/vmservice/loader.dart b/runtime/bin/vmservice/loader.dart |
index 8d56466ae6578f7ae152709a20fd25388c8cc92c..58bb5a75fd20d16cf50319a03ec08b17cec83731 100644 |
--- a/runtime/bin/vmservice/loader.dart |
+++ b/runtime/bin/vmservice/loader.dart |
@@ -1131,34 +1131,36 @@ _processLoadRequest(request) { |
} |
break; |
case _Dart_kResolveAsFilePath: |
- String uri = request[4]; |
- Uri resolvedUri = Uri.parse(_sanitizeWindowsPath(uri)); |
- try { |
- if (resolvedUri.scheme == 'package') { |
- resolvedUri = loaderState._resolvePackageUri(resolvedUri); |
- } |
- if (resolvedUri.scheme == '' || resolvedUri.scheme == 'file') { |
- resolvedUri = loaderState._workingDirectory.resolveUri(resolvedUri); |
+ loaderState._triggerPackageResolution(() { |
+ String uri = request[4]; |
+ Uri resolvedUri = Uri.parse(_sanitizeWindowsPath(uri)); |
+ try { |
+ if (resolvedUri.scheme == 'package') { |
+ resolvedUri = loaderState._resolvePackageUri(resolvedUri); |
+ } |
+ if (resolvedUri.scheme == '' || resolvedUri.scheme == 'file') { |
+ resolvedUri = loaderState._workingDirectory.resolveUri(resolvedUri); |
+ var msg = new List(5); |
+ msg[0] = tag; |
+ msg[1] = uri; |
+ msg[2] = resolvedUri.toString(); |
+ msg[3] = null; |
+ msg[4] = resolvedUri.toFilePath(); |
+ sp.send(msg); |
+ } else { |
+ throw "Cannot resolve scheme (${resolvedUri.scheme}) to file path" |
+ " for $resolvedUri"; |
+ } |
+ } catch (e) { |
var msg = new List(5); |
- msg[0] = tag; |
+ msg[0] = -tag; |
msg[1] = uri; |
msg[2] = resolvedUri.toString(); |
msg[3] = null; |
- msg[4] = resolvedUri.toFilePath(); |
+ msg[4] = e.toString(); |
sp.send(msg); |
- } else { |
- throw "Cannot resolve scheme (${resolvedUri.scheme}) to file path" |
- " for $resolvedUri"; |
} |
- } catch (e) { |
- var msg = new List(5); |
- msg[0] = -tag; |
- msg[1] = uri; |
- msg[2] = resolvedUri.toString(); |
- msg[3] = null; |
- msg[4] = e.toString(); |
- sp.send(msg); |
- } |
+ }); |
break; |
default: |
_log('Unknown loader request tag=$tag from $isolateId'); |