| Index: LayoutTests/dart/spawn-uri.html | 
| diff --git a/LayoutTests/dart/spawn-uri.html b/LayoutTests/dart/spawn-uri.html | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..83b562f176642fde052ab2f9b8470ea7a40ef33c | 
| --- /dev/null | 
| +++ b/LayoutTests/dart/spawn-uri.html | 
| @@ -0,0 +1,49 @@ | 
| +<html> | 
| +<body> | 
| + | 
| +<script> | 
| +if (window.testRunner) { | 
| +  window.testRunner.dumpAsText(); | 
| +  window.testRunner.waitUntilDone(); | 
| +  window.addEventListener('message', function (e) { | 
| +    window.testRunner.notifyDone(); | 
| +  }); | 
| +} | 
| +</script> | 
| + | 
| +<div id="dart"> | 
| +main(msg, replyTo) { | 
| +  print("Hello World"); | 
| +  replyTo.send("done"); | 
| +} | 
| +</div> | 
| + | 
| +<script type="application/dart"> | 
| +import 'dart:html'; | 
| +import 'dart:isolate'; | 
| +import 'dart:js'; | 
| + | 
| +void main() { | 
| +  var code = querySelector('#dart'); | 
| +  var dataUri = 'data:application/dart;base64,${window.btoa(code.text)}'; | 
| +  // TODO(17738): Expand this test to validate parameters are passed and | 
| +  // the correct future is returned. | 
| +  var port = new ReceivePort(); | 
| +  try { | 
| +    var isolate = Isolate.spawnUri(Uri.parse(dataUri), [], port.sendPort); | 
| +    port.listen(_notifyDone); | 
| +    isolate.catchError((x) { print("Isolate error $x"); _notifyDone();}); | 
| +  } catch (e) { | 
| +    print("Spawn failed: $e"); | 
| +    _notifyDone(); | 
| +  } | 
| +  code.remove(); | 
| +} | 
| + | 
| +_notifyDone([_]) { | 
| +  window.postMessage('test-done', '*'); | 
| +} | 
| +</script> | 
| + | 
| +</body> | 
| +</html> | 
|  |