// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. import "dart:isolate"; import "package:async_helper/async_helper.dart"; import "package:expect/expect.dart"; Uri toDartDataUri(String source) { return Uri.parse("data:application/dart;charset=utf-8," "${Uri.encodeComponent(source)}"); } main() { String source = """ import "dart:isolate"; main(List args, SendPort replyPort) { replyPort.send(42); } """; RawReceivePort receivePort; asyncStart(); receivePort = new RawReceivePort((message) { Expect.equals(message, 42); receivePort.close(); asyncEnd(); }); Isolate.spawnUri(toDartDataUri(source), [], receivePort.sendPort); }