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