// Copyright (c) 2014, 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. // VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit // VMOptions=--no-enable-isolate-groups // Test that deferred libraries are supported from isolates other than the root // isolate. import 'dart:isolate'; main() { try { var receivePort = new RawReceivePort(); var expectedMsg = "Deferred Loaded."; receivePort.handler = (msg) { if (msg != expectedMsg) { print("Test failed."); throw msg; // Fail the test if the message is not expected. } print('Test done.'); receivePort.close(); }; var stopwatch = new Stopwatch()..start(); Isolate.spawnUri(new Uri(path: 'deferred_in_isolate_app.dart'), [expectedMsg], [receivePort.sendPort]).then((isolate) { print('Isolate spawn: ${stopwatch.elapsedMilliseconds}ms'); }).catchError((error) { print(error); }); } catch (exception, stackTrace) { print('Test failed.'); print(exception); print(stackTrace); rethrow; } }