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]; |