| Index: pkg/dev_compiler/tool/input_sdk/patch/isolate_patch.dart
|
| diff --git a/pkg/dev_compiler/tool/input_sdk/patch/isolate_patch.dart b/pkg/dev_compiler/tool/input_sdk/patch/isolate_patch.dart
|
| index 637943b44eacd224c3784d107741c8f1911621fe..8bd8d1a4f5a352a9513fb3a75999ce22014e3a33 100644
|
| --- a/pkg/dev_compiler/tool/input_sdk/patch/isolate_patch.dart
|
| +++ b/pkg/dev_compiler/tool/input_sdk/patch/isolate_patch.dart
|
| @@ -5,10 +5,8 @@
|
| // Patch file for the dart:isolate library.
|
|
|
| import 'dart:_js_helper' show patch;
|
| -import 'dart:_isolate_helper' show CapabilityImpl,
|
| - IsolateNatives,
|
| - ReceivePortImpl,
|
| - RawReceivePortImpl;
|
| +import 'dart:_isolate_helper'
|
| + show CapabilityImpl, IsolateNatives, ReceivePortImpl, RawReceivePortImpl;
|
|
|
| typedef _UnaryFunction(arg);
|
|
|
| @@ -41,11 +39,12 @@ class Isolate {
|
|
|
| @patch
|
| static Future<Isolate> spawn(void entryPoint(message), var message,
|
| - {bool paused: false, bool errorsAreFatal,
|
| - SendPort onExit, SendPort onError}) {
|
| - bool forcePause = (errorsAreFatal != null) ||
|
| - (onExit != null) ||
|
| - (onError != null);
|
| + {bool paused: false,
|
| + bool errorsAreFatal,
|
| + SendPort onExit,
|
| + SendPort onError}) {
|
| + bool forcePause =
|
| + (errorsAreFatal != null) || (onExit != null) || (onError != null);
|
| try {
|
| // Check for the type of `entryPoint` on the spawning isolate to make
|
| // error-handling easier.
|
| @@ -55,53 +54,50 @@ class Isolate {
|
| // TODO: Consider passing the errorsAreFatal/onExit/onError values
|
| // as arguments to the internal spawnUri instead of setting
|
| // them after the isolate has been created.
|
| - return IsolateNatives.spawnFunction(entryPoint, message,
|
| - paused || forcePause)
|
| + return IsolateNatives
|
| + .spawnFunction(entryPoint, message, paused || forcePause)
|
| .then((msg) {
|
| - var isolate = new Isolate(msg[1],
|
| - pauseCapability: msg[2],
|
| - terminateCapability: msg[3]);
|
| - if (forcePause) {
|
| - if (errorsAreFatal != null) {
|
| - isolate.setErrorsFatal(errorsAreFatal);
|
| - }
|
| - if (onExit != null) {
|
| - isolate.addOnExitListener(onExit);
|
| - }
|
| - if (onError != null) {
|
| - isolate.addErrorListener(onError);
|
| - }
|
| - if (!paused) {
|
| - isolate.resume(isolate.pauseCapability);
|
| - }
|
| - }
|
| - return isolate;
|
| - });
|
| + var isolate = new Isolate(msg[1],
|
| + pauseCapability: msg[2], terminateCapability: msg[3]);
|
| + if (forcePause) {
|
| + if (errorsAreFatal != null) {
|
| + isolate.setErrorsFatal(errorsAreFatal);
|
| + }
|
| + if (onExit != null) {
|
| + isolate.addOnExitListener(onExit);
|
| + }
|
| + if (onError != null) {
|
| + isolate.addErrorListener(onError);
|
| + }
|
| + if (!paused) {
|
| + isolate.resume(isolate.pauseCapability);
|
| + }
|
| + }
|
| + return isolate;
|
| + });
|
| } catch (e, st) {
|
| return new Future<Isolate>.error(e, st);
|
| }
|
| }
|
|
|
| @patch
|
| - static Future<Isolate> spawnUri(
|
| - Uri uri, List<String> args, var message,
|
| + static Future<Isolate> spawnUri(Uri uri, List<String> args, var message,
|
| {bool paused: false,
|
| - SendPort onExit,
|
| - SendPort onError,
|
| - bool errorsAreFatal,
|
| - bool checked,
|
| - Map<String, String> environment,
|
| - Uri packageRoot,
|
| - Uri packageConfig,
|
| - bool automaticPackageResolution: false}) {
|
| + SendPort onExit,
|
| + SendPort onError,
|
| + bool errorsAreFatal,
|
| + bool checked,
|
| + Map<String, String> environment,
|
| + Uri packageRoot,
|
| + Uri packageConfig,
|
| + bool automaticPackageResolution: false}) {
|
| if (environment != null) throw new UnimplementedError("environment");
|
| if (packageRoot != null) throw new UnimplementedError("packageRoot");
|
| if (packageConfig != null) throw new UnimplementedError("packageConfig");
|
| // TODO(lrn): Figure out how to handle the automaticPackageResolution
|
| // parameter.
|
| - bool forcePause = (errorsAreFatal != null) ||
|
| - (onExit != null) ||
|
| - (onError != null);
|
| + bool forcePause =
|
| + (errorsAreFatal != null) || (onExit != null) || (onError != null);
|
| try {
|
| if (args is List<String>) {
|
| for (int i = 0; i < args.length; i++) {
|
| @@ -116,27 +112,27 @@ class Isolate {
|
| // TODO: Consider passing the errorsAreFatal/onExit/onError values
|
| // as arguments to the internal spawnUri instead of setting
|
| // them after the isolate has been created.
|
| - return IsolateNatives.spawnUri(uri, args, message, paused || forcePause)
|
| + return IsolateNatives
|
| + .spawnUri(uri, args, message, paused || forcePause)
|
| .then((msg) {
|
| - var isolate = new Isolate(msg[1],
|
| - pauseCapability: msg[2],
|
| - terminateCapability: msg[3]);
|
| - if (forcePause) {
|
| - if (errorsAreFatal != null) {
|
| - isolate.setErrorsFatal(errorsAreFatal);
|
| - }
|
| - if (onExit != null) {
|
| - isolate.addOnExitListener(onExit);
|
| - }
|
| - if (onError != null) {
|
| - isolate.addErrorListener(onError);
|
| - }
|
| - if (!paused) {
|
| - isolate.resume(isolate.pauseCapability);
|
| - }
|
| - }
|
| - return isolate;
|
| - });
|
| + var isolate = new Isolate(msg[1],
|
| + pauseCapability: msg[2], terminateCapability: msg[3]);
|
| + if (forcePause) {
|
| + if (errorsAreFatal != null) {
|
| + isolate.setErrorsFatal(errorsAreFatal);
|
| + }
|
| + if (onExit != null) {
|
| + isolate.addOnExitListener(onExit);
|
| + }
|
| + if (onError != null) {
|
| + isolate.addErrorListener(onError);
|
| + }
|
| + if (!paused) {
|
| + isolate.resume(isolate.pauseCapability);
|
| + }
|
| + }
|
| + return isolate;
|
| + });
|
| } catch (e, st) {
|
| return new Future<Isolate>.error(e, st);
|
| }
|
| @@ -145,17 +141,17 @@ class Isolate {
|
| @patch
|
| void _pause(Capability resumeCapability) {
|
| var message = new List(3)
|
| - ..[0] = "pause"
|
| - ..[1] = pauseCapability
|
| - ..[2] = resumeCapability;
|
| + ..[0] = "pause"
|
| + ..[1] = pauseCapability
|
| + ..[2] = resumeCapability;
|
| controlPort.send(message);
|
| }
|
|
|
| @patch
|
| void resume(Capability resumeCapability) {
|
| var message = new List(2)
|
| - ..[0] = "resume"
|
| - ..[1] = resumeCapability;
|
| + ..[0] = "resume"
|
| + ..[1] = resumeCapability;
|
| controlPort.send(message);
|
| }
|
|
|
| @@ -164,26 +160,26 @@ class Isolate {
|
| // TODO(lrn): Can we have an internal method that checks if the receiving
|
| // isolate of a SendPort is still alive?
|
| var message = new List(3)
|
| - ..[0] = "add-ondone"
|
| - ..[1] = responsePort
|
| - ..[2] = response;
|
| + ..[0] = "add-ondone"
|
| + ..[1] = responsePort
|
| + ..[2] = response;
|
| controlPort.send(message);
|
| }
|
|
|
| @patch
|
| void removeOnExitListener(SendPort responsePort) {
|
| var message = new List(2)
|
| - ..[0] = "remove-ondone"
|
| - ..[1] = responsePort;
|
| + ..[0] = "remove-ondone"
|
| + ..[1] = responsePort;
|
| controlPort.send(message);
|
| }
|
|
|
| @patch
|
| void setErrorsFatal(bool errorsAreFatal) {
|
| var message = new List(3)
|
| - ..[0] = "set-errors-fatal"
|
| - ..[1] = terminateCapability
|
| - ..[2] = errorsAreFatal;
|
| + ..[0] = "set-errors-fatal"
|
| + ..[1] = terminateCapability
|
| + ..[2] = errorsAreFatal;
|
| controlPort.send(message);
|
| }
|
|
|
| @@ -193,29 +189,28 @@ class Isolate {
|
| }
|
|
|
| @patch
|
| - void ping(SendPort responsePort, {Object response,
|
| - int priority: IMMEDIATE}) {
|
| + void ping(SendPort responsePort, {Object response, int priority: IMMEDIATE}) {
|
| var message = new List(4)
|
| - ..[0] = "ping"
|
| - ..[1] = responsePort
|
| - ..[2] = priority
|
| - ..[3] = response;
|
| + ..[0] = "ping"
|
| + ..[1] = responsePort
|
| + ..[2] = priority
|
| + ..[3] = response;
|
| controlPort.send(message);
|
| }
|
|
|
| @patch
|
| void addErrorListener(SendPort port) {
|
| var message = new List(2)
|
| - ..[0] = "getErrors"
|
| - ..[1] = port;
|
| + ..[0] = "getErrors"
|
| + ..[1] = port;
|
| controlPort.send(message);
|
| }
|
|
|
| @patch
|
| void removeErrorListener(SendPort port) {
|
| var message = new List(2)
|
| - ..[0] = "stopErrors"
|
| - ..[1] = port;
|
| + ..[0] = "stopErrors"
|
| + ..[1] = port;
|
| controlPort.send(message);
|
| }
|
| }
|
|
|