| OLD | NEW |
| (Empty) | |
| 1 var isolate; |
| 2 (function(isolate) { |
| 3 'use strict'; |
| 4 class IsolateSpawnException extends dart.Object { |
| 5 IsolateSpawnException(message) { |
| 6 this.message = message; |
| 7 } |
| 8 toString() { |
| 9 return `IsolateSpawnException: ${this.message}`; |
| 10 } |
| 11 } |
| 12 class Isolate extends dart.Object { |
| 13 Isolate(controlPort, opt$) { |
| 14 let pauseCapability = opt$.pauseCapability === void 0 ? null : opt$.pauseC
apability; |
| 15 let terminateCapability = opt$.terminateCapability === void 0 ? null : opt
$.terminateCapability; |
| 16 this.controlPort = controlPort; |
| 17 this.pauseCapability = pauseCapability; |
| 18 this.terminateCapability = terminateCapability; |
| 19 } |
| 20 static get current() { |
| 21 return dart.as(_currentIsolateCache, Isolate); |
| 22 } |
| 23 static spawn(entryPoint, message, opt$) { |
| 24 let paused = opt$.paused === void 0 ? false : opt$.paused; |
| 25 try { |
| 26 return dart.as(_isolate_helper.IsolateNatives.spawnFunction(entryPoint,
message, paused).then((msg) => new Isolate(dart.dindex(msg, 1), {pauseCapability
: dart.dindex(msg, 2), terminateCapability: dart.dindex(msg, 3)})), async.Future
$(Isolate)); |
| 27 } catch (e) { |
| 28 let st = dart.stackTrace(e); |
| 29 return new async.Future.error(e, st); |
| 30 } |
| 31 |
| 32 } |
| 33 static spawnUri(uri, args, message, opt$) { |
| 34 let paused = opt$.paused === void 0 ? false : opt$.paused; |
| 35 let packageRoot = opt$.packageRoot === void 0 ? null : opt$.packageRoot; |
| 36 if (packageRoot !== null) |
| 37 throw new core.UnimplementedError("packageRoot"); |
| 38 try { |
| 39 if (dart.is(args, core.List$(core.String))) { |
| 40 for (let i = 0; i < args.length; i++) { |
| 41 if (!(typeof args.get(i) == string)) { |
| 42 throw new core.ArgumentError(`Args must be a list of Strings ${arg
s}`); |
| 43 } |
| 44 } |
| 45 } else if (args !== null) { |
| 46 throw new core.ArgumentError(`Args must be a list of Strings ${args}`)
; |
| 47 } |
| 48 return dart.as(_isolate_helper.IsolateNatives.spawnUri(uri, args, messag
e, paused).then((msg) => new Isolate(dart.dindex(msg, 1), {pauseCapability: dart
.dindex(msg, 2), terminateCapability: dart.dindex(msg, 3)})), async.Future$(Isol
ate)); |
| 49 } catch (e) { |
| 50 let st = dart.stackTrace(e); |
| 51 return new async.Future.error(e, st); |
| 52 } |
| 53 |
| 54 } |
| 55 pause(resumeCapability) { |
| 56 if (resumeCapability === void 0) |
| 57 resumeCapability = null; |
| 58 if (resumeCapability === null) |
| 59 resumeCapability = new Capability(); |
| 60 this._pause(resumeCapability); |
| 61 return resumeCapability; |
| 62 } |
| 63 _pause(resumeCapability) { |
| 64 let message = new core.List(3); |
| 65 dart.dsetindex(message, 0, "pause"); |
| 66 dart.dsetindex(message, 1, this.pauseCapability); |
| 67 dart.dsetindex(message, 2, resumeCapability); |
| 68 this.controlPort.send(message); |
| 69 } |
| 70 resume(resumeCapability) { |
| 71 let message = new core.List(2); |
| 72 dart.dsetindex(message, 0, "resume"); |
| 73 dart.dsetindex(message, 1, resumeCapability); |
| 74 this.controlPort.send(message); |
| 75 } |
| 76 addOnExitListener(responsePort) { |
| 77 let message = new core.List(2); |
| 78 dart.dsetindex(message, 0, "add-ondone"); |
| 79 dart.dsetindex(message, 1, responsePort); |
| 80 this.controlPort.send(message); |
| 81 } |
| 82 removeOnExitListener(responsePort) { |
| 83 let message = new core.List(2); |
| 84 dart.dsetindex(message, 0, "remove-ondone"); |
| 85 dart.dsetindex(message, 1, responsePort); |
| 86 this.controlPort.send(message); |
| 87 } |
| 88 setErrorsFatal(errorsAreFatal) { |
| 89 let message = new core.List(3); |
| 90 dart.dsetindex(message, 0, "set-errors-fatal"); |
| 91 dart.dsetindex(message, 1, this.terminateCapability); |
| 92 dart.dsetindex(message, 2, errorsAreFatal); |
| 93 this.controlPort.send(message); |
| 94 } |
| 95 kill(priority) { |
| 96 if (priority === void 0) |
| 97 priority = BEFORE_NEXT_EVENT; |
| 98 this.controlPort.send(new List.from(["kill", this.terminateCapability, pri
ority])); |
| 99 } |
| 100 ping(responsePort, pingType) { |
| 101 if (pingType === void 0) |
| 102 pingType = IMMEDIATE; |
| 103 let message = new core.List(3); |
| 104 dart.dsetindex(message, 0, "ping"); |
| 105 dart.dsetindex(message, 1, responsePort); |
| 106 dart.dsetindex(message, 2, pingType); |
| 107 this.controlPort.send(message); |
| 108 } |
| 109 addErrorListener(port) { |
| 110 let message = new core.List(2); |
| 111 dart.dsetindex(message, 0, "getErrors"); |
| 112 dart.dsetindex(message, 1, port); |
| 113 this.controlPort.send(message); |
| 114 } |
| 115 removeErrorListener(port) { |
| 116 let message = new core.List(2); |
| 117 dart.dsetindex(message, 0, "stopErrors"); |
| 118 dart.dsetindex(message, 1, port); |
| 119 this.controlPort.send(message); |
| 120 } |
| 121 get errors() { |
| 122 let controller = null; |
| 123 let port = null; |
| 124 // Function handleError: (dynamic) → void |
| 125 function handleError(message) { |
| 126 let errorDescription = dart.as(dart.dindex(message, 0), core.String); |
| 127 let stackDescription = dart.as(dart.dindex(message, 1), core.String); |
| 128 let error = new RemoteError(errorDescription, stackDescription); |
| 129 controller.addError(error, error.stackTrace); |
| 130 } |
| 131 controller = new async.StreamController.broadcast({sync: true, onListen: (
() => { |
| 132 port = new RawReceivePort(handleError); |
| 133 this.addErrorListener(port.sendPort); |
| 134 }).bind(this), onCancel: (() => { |
| 135 this.removeErrorListener(port.sendPort); |
| 136 port.close(); |
| 137 port = null; |
| 138 }).bind(this)}); |
| 139 return controller.stream; |
| 140 } |
| 141 } |
| 142 Isolate.IMMEDIATE = 0; |
| 143 Isolate.BEFORE_NEXT_EVENT = 1; |
| 144 Isolate.AS_EVENT = 2; |
| 145 dart.defineLazyProperties(Isolate, { |
| 146 get _currentIsolateCache() { |
| 147 return _isolate_helper.IsolateNatives.currentIsolate; |
| 148 } |
| 149 }); |
| 150 class SendPort extends dart.Object { |
| 151 } |
| 152 class ReceivePort extends dart.Object { |
| 153 ReceivePort() { |
| 154 return new _isolate_helper.ReceivePortImpl(); |
| 155 } |
| 156 ReceivePort$fromRawReceivePort(rawPort) { |
| 157 return new _isolate_helper.ReceivePortImpl.fromRawReceivePort(rawPort); |
| 158 } |
| 159 } |
| 160 dart.defineNamedConstructor(ReceivePort, 'fromRawReceivePort'); |
| 161 class RawReceivePort extends dart.Object { |
| 162 RawReceivePort(handler) { |
| 163 if (handler === void 0) |
| 164 handler = null; |
| 165 return new _isolate_helper.RawReceivePortImpl(handler); |
| 166 } |
| 167 } |
| 168 class _IsolateUnhandledException extends dart.Object { |
| 169 _IsolateUnhandledException(message, source, stackTrace) { |
| 170 this.message = message; |
| 171 this.source = source; |
| 172 this.stackTrace = stackTrace; |
| 173 } |
| 174 toString() { |
| 175 return 'IsolateUnhandledException: exception while handling message: ' + `
${this.message} \n ` + `${dart.dinvoke(dart.dinvoke(this.source, 'toString'), '
replaceAll', "\n", "\n ")}\n` + 'original stack trace:\n ' + `${this.stackTrac
e.toString().replaceAll("\n", "\n ")}`; |
| 176 } |
| 177 } |
| 178 class RemoteError extends dart.Object { |
| 179 RemoteError(description, stackDescription) { |
| 180 this._description = description; |
| 181 this.stackTrace = new _RemoteStackTrace(stackDescription); |
| 182 } |
| 183 toString() { |
| 184 return this._description; |
| 185 } |
| 186 } |
| 187 class _RemoteStackTrace extends dart.Object { |
| 188 _RemoteStackTrace(_trace) { |
| 189 this._trace = _trace; |
| 190 } |
| 191 toString() { |
| 192 return this._trace; |
| 193 } |
| 194 } |
| 195 class Capability extends dart.Object { |
| 196 Capability() { |
| 197 return new _isolate_helper.CapabilityImpl(); |
| 198 } |
| 199 } |
| 200 // Exports: |
| 201 isolate.IsolateSpawnException = IsolateSpawnException; |
| 202 isolate.Isolate = Isolate; |
| 203 isolate.SendPort = SendPort; |
| 204 isolate.ReceivePort = ReceivePort; |
| 205 isolate.RawReceivePort = RawReceivePort; |
| 206 isolate.RemoteError = RemoteError; |
| 207 isolate.Capability = Capability; |
| 208 })(isolate || (isolate = {})); |
| OLD | NEW |