| Index: lib/runtime/dart/isolate.js
|
| diff --git a/lib/runtime/dart/isolate.js b/lib/runtime/dart/isolate.js
|
| index 4468a0ea164bc04a67edb558f5e6adfab07f13b5..4d2c78999bbb50cadfb050d031980d1603ff3f8f 100644
|
| --- a/lib/runtime/dart/isolate.js
|
| +++ b/lib/runtime/dart/isolate.js
|
| @@ -37,12 +37,12 @@ dart_library.library('dart/isolate', null, /* Imports */[
|
| this.terminateCapability = terminateCapability;
|
| }
|
| static get current() {
|
| - return Isolate._currentIsolateCache;
|
| + return dart.as(Isolate._currentIsolateCache, Isolate);
|
| }
|
| static spawn(entryPoint, message, opts) {
|
| let paused = opts && 'paused' in opts ? opts.paused : false;
|
| try {
|
| - return _isolate_helper.IsolateNatives.spawnFunction(entryPoint, message, paused).then(dart.fn(msg => new Isolate(dart.as(dart.dindex(msg, 1), SendPort), {pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminateCapability: dart.as(dart.dindex(msg, 3), Capability)}), Isolate, [dart.dynamic]));
|
| + return dart.as(dart.dcall(dart.dcall(_isolate_helper.IsolateNatives.spawnFunction, entryPoint, message, paused).then, dart.fn(msg => new Isolate(dart.as(dart.dindex(msg, 1), SendPort), {pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminateCapability: dart.as(dart.dindex(msg, 3), Capability)}), Isolate, [dart.dynamic])), async.Future$(Isolate));
|
| } catch (e) {
|
| let st = dart.stackTrace(e);
|
| return async.Future$(Isolate).error(e, st);
|
| @@ -64,7 +64,7 @@ dart_library.library('dart/isolate', null, /* Imports */[
|
| } else if (args != null) {
|
| dart.throw(new core.ArgumentError(`Args must be a list of Strings ${args}`));
|
| }
|
| - return _isolate_helper.IsolateNatives.spawnUri(uri, args, message, paused).then(dart.fn(msg => new Isolate(dart.as(dart.dindex(msg, 1), SendPort), {pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminateCapability: dart.as(dart.dindex(msg, 3), Capability)}), Isolate, [dart.dynamic]));
|
| + return dart.as(dart.dcall(dart.dcall(_isolate_helper.IsolateNatives.spawnUri, uri, args, message, paused).then, dart.fn(msg => new Isolate(dart.as(dart.dindex(msg, 1), SendPort), {pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminateCapability: dart.as(dart.dindex(msg, 3), Capability)}), Isolate, [dart.dynamic])), async.Future$(Isolate));
|
| } catch (e) {
|
| let st = dart.stackTrace(e);
|
| return async.Future$(Isolate).error(e, st);
|
| @@ -76,7 +76,7 @@ dart_library.library('dart/isolate', null, /* Imports */[
|
| resumeCapability = null;
|
| if (resumeCapability == null)
|
| resumeCapability = Capability.new();
|
| - this[_pause](resumeCapability);
|
| + dart.dcall(this[_pause], resumeCapability);
|
| return resumeCapability;
|
| }
|
| [_pause](resumeCapability) {
|
| @@ -84,37 +84,37 @@ dart_library.library('dart/isolate', null, /* Imports */[
|
| message[dartx.set](0, "pause");
|
| message[dartx.set](1, this.pauseCapability);
|
| message[dartx.set](2, resumeCapability);
|
| - this.controlPort.send(message);
|
| + dart.dcall(this.controlPort.send, message);
|
| }
|
| resume(resumeCapability) {
|
| let message = core.List.new(2);
|
| message[dartx.set](0, "resume");
|
| message[dartx.set](1, resumeCapability);
|
| - this.controlPort.send(message);
|
| + dart.dcall(this.controlPort.send, message);
|
| }
|
| addOnExitListener(responsePort) {
|
| let message = core.List.new(2);
|
| message[dartx.set](0, "add-ondone");
|
| message[dartx.set](1, responsePort);
|
| - this.controlPort.send(message);
|
| + dart.dcall(this.controlPort.send, message);
|
| }
|
| removeOnExitListener(responsePort) {
|
| let message = core.List.new(2);
|
| message[dartx.set](0, "remove-ondone");
|
| message[dartx.set](1, responsePort);
|
| - this.controlPort.send(message);
|
| + dart.dcall(this.controlPort.send, message);
|
| }
|
| setErrorsFatal(errorsAreFatal) {
|
| let message = core.List.new(3);
|
| message[dartx.set](0, "set-errors-fatal");
|
| message[dartx.set](1, this.terminateCapability);
|
| message[dartx.set](2, errorsAreFatal);
|
| - this.controlPort.send(message);
|
| + dart.dcall(this.controlPort.send, message);
|
| }
|
| kill(priority) {
|
| if (priority === void 0)
|
| priority = Isolate.BEFORE_NEXT_EVENT;
|
| - this.controlPort.send(["kill", this.terminateCapability, priority]);
|
| + dart.dcall(this.controlPort.send, ["kill", this.terminateCapability, priority]);
|
| }
|
| ping(responsePort, pingType) {
|
| if (pingType === void 0)
|
| @@ -123,19 +123,19 @@ dart_library.library('dart/isolate', null, /* Imports */[
|
| message[dartx.set](0, "ping");
|
| message[dartx.set](1, responsePort);
|
| message[dartx.set](2, pingType);
|
| - this.controlPort.send(message);
|
| + dart.dcall(this.controlPort.send, message);
|
| }
|
| addErrorListener(port) {
|
| let message = core.List.new(2);
|
| message[dartx.set](0, "getErrors");
|
| message[dartx.set](1, port);
|
| - this.controlPort.send(message);
|
| + dart.dcall(this.controlPort.send, message);
|
| }
|
| removeErrorListener(port) {
|
| let message = core.List.new(2);
|
| message[dartx.set](0, "stopErrors");
|
| message[dartx.set](1, port);
|
| - this.controlPort.send(message);
|
| + dart.dcall(this.controlPort.send, message);
|
| }
|
| get errors() {
|
| let controller = null;
|
| @@ -144,15 +144,15 @@ dart_library.library('dart/isolate', null, /* Imports */[
|
| let errorDescription = dart.as(dart.dindex(message, 0), core.String);
|
| let stackDescription = dart.as(dart.dindex(message, 1), core.String);
|
| let error = new RemoteError(errorDescription, stackDescription);
|
| - controller.addError(error, error.stackTrace);
|
| + dart.dcall(controller.addError, error, dart.dload(error, 'stackTrace'));
|
| }
|
| dart.fn(handleError, dart.void, [dart.dynamic]);
|
| controller = async.StreamController.broadcast({sync: true, onListen: dart.fn((() => {
|
| port = RawReceivePort.new(handleError);
|
| - this.addErrorListener(port.sendPort);
|
| + dart.dcall(this.addErrorListener, port.sendPort);
|
| }).bind(this)), onCancel: dart.fn((() => {
|
| - this.removeErrorListener(port.sendPort);
|
| - port.close();
|
| + dart.dcall(this.removeErrorListener, port.sendPort);
|
| + dart.dcall(port.close);
|
| port = null;
|
| }).bind(this))});
|
| return controller.stream;
|
| @@ -220,7 +220,7 @@ dart_library.library('dart/isolate', null, /* Imports */[
|
| this.stackTrace = stackTrace;
|
| }
|
| toString() {
|
| - return 'IsolateUnhandledException: exception while handling message: ' + `${this.message} \n ` + `${dart.toString(this.source)[dartx.replaceAll]("\n", "\n ")}\n` + 'original stack trace:\n ' + `${dart.toString(this.stackTrace)[dartx.replaceAll]("\n", "\n ")}`;
|
| + return 'IsolateUnhandledException: exception while handling message: ' + `${this.message} \n ` + `${dart.dsend(dart.dsend(this.source, 'toString'), 'replaceAll', "\n", "\n ")}\n` + 'original stack trace:\n ' + `${dart.dcall(dart.dcall(this.stackTrace.toString)[dartx.replaceAll], "\n", "\n ")}`;
|
| }
|
| }
|
| _IsolateUnhandledException[dart.implements] = () => [core.Exception];
|
|
|