Index: runtime/lib/isolate_patch.dart |
diff --git a/runtime/lib/isolate_patch.dart b/runtime/lib/isolate_patch.dart |
index 9e77fa43bb7e9d3228b06e2d897b9edc9cc2deb2..6d59fff5567134197256968651e777d65523b83c 100644 |
--- a/runtime/lib/isolate_patch.dart |
+++ b/runtime/lib/isolate_patch.dart |
@@ -334,14 +334,20 @@ patch class Isolate { |
Map<String, Uri> packageMap}) { |
RawReceivePort readyPort; |
if (environment != null) throw new UnimplementedError("environment"); |
- if (packageMap != null) throw new UnimplementedError("packageMap"); |
try { |
// The VM will invoke [_startIsolate] and not `main`. |
- // TODO: Handle [packagesMap]. |
readyPort = new RawReceivePort(); |
var packageRootString = |
(packageRoot == null) ? null : packageRoot.toString(); |
var packagesList = null; |
+ if (packageMap != null) { |
+ packagesList = new List(2 * packageMap.length); |
+ var i = 0; |
+ packageMap.forEach((key, value) { |
+ packagesList[i++] = key; |
+ packagesList[i++] = Uri.base.resolveUri(value).toString(); |
+ }); |
+ } |
_spawnUri(readyPort.sendPort, uri.toString(), |
args, message, |