| OLD | NEW |
| 1 var isolate = dart.defineLibrary(isolate, {}); | 1 var isolate = dart.defineLibrary(isolate, {}); |
| 2 var core = dart.import(core); | 2 var core = dart.import(core); |
| 3 var _isolate_helper = dart.lazyImport(_isolate_helper); | 3 var _isolate_helper = dart.lazyImport(_isolate_helper); |
| 4 var async = dart.import(async); | 4 var async = dart.import(async); |
| 5 (function(exports, core, _isolate_helper, async) { | 5 (function(exports, core, _isolate_helper, async) { |
| 6 'use strict'; | 6 'use strict'; |
| 7 class Capability extends core.Object { | 7 class Capability extends core.Object { |
| 8 Capability() { | 8 static new() { |
| 9 return new _isolate_helper.CapabilityImpl(); | 9 return new _isolate_helper.CapabilityImpl(); |
| 10 } | 10 } |
| 11 } | 11 } |
| 12 dart.setSignature(Capability, { | 12 dart.setSignature(Capability, { |
| 13 constructors: () => ({Capability: [Capability, []]}) | 13 constructors: () => ({new: [Capability, []]}) |
| 14 }); | 14 }); |
| 15 class IsolateSpawnException extends core.Object { | 15 class IsolateSpawnException extends core.Object { |
| 16 IsolateSpawnException(message) { | 16 IsolateSpawnException(message) { |
| 17 this.message = message; | 17 this.message = message; |
| 18 } | 18 } |
| 19 toString() { | 19 toString() { |
| 20 return `IsolateSpawnException: ${this.message}`; | 20 return `IsolateSpawnException: ${this.message}`; |
| 21 } | 21 } |
| 22 } | 22 } |
| 23 IsolateSpawnException[dart.implements] = () => [core.Exception]; | 23 IsolateSpawnException[dart.implements] = () => [core.Exception]; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 35 } | 35 } |
| 36 static get current() { | 36 static get current() { |
| 37 return Isolate._currentIsolateCache; | 37 return Isolate._currentIsolateCache; |
| 38 } | 38 } |
| 39 static spawn(entryPoint, message, opts) { | 39 static spawn(entryPoint, message, opts) { |
| 40 let paused = opts && 'paused' in opts ? opts.paused : false; | 40 let paused = opts && 'paused' in opts ? opts.paused : false; |
| 41 try { | 41 try { |
| 42 return dart.as(_isolate_helper.IsolateNatives.spawnFunction(entryPoint,
message, paused).then(dart.fn(msg => new Isolate(dart.as(dart.dindex(msg, 1), Se
ndPort), {pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminateCa
pability: dart.as(dart.dindex(msg, 3), Capability)}), Isolate, [core.Object])),
async.Future$(Isolate)); | 42 return dart.as(_isolate_helper.IsolateNatives.spawnFunction(entryPoint,
message, paused).then(dart.fn(msg => new Isolate(dart.as(dart.dindex(msg, 1), Se
ndPort), {pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminateCa
pability: dart.as(dart.dindex(msg, 3), Capability)}), Isolate, [core.Object])),
async.Future$(Isolate)); |
| 43 } catch (e) { | 43 } catch (e) { |
| 44 let st = dart.stackTrace(e); | 44 let st = dart.stackTrace(e); |
| 45 return new (async.Future$(Isolate)).error(e, st); | 45 return async.Future$(Isolate).error(e, st); |
| 46 } | 46 } |
| 47 | 47 |
| 48 } | 48 } |
| 49 static spawnUri(uri, args, message, opts) { | 49 static spawnUri(uri, args, message, opts) { |
| 50 let paused = opts && 'paused' in opts ? opts.paused : false; | 50 let paused = opts && 'paused' in opts ? opts.paused : false; |
| 51 let packageRoot = opts && 'packageRoot' in opts ? opts.packageRoot : null; | 51 let packageRoot = opts && 'packageRoot' in opts ? opts.packageRoot : null; |
| 52 if (packageRoot != null) | 52 if (packageRoot != null) |
| 53 throw new core.UnimplementedError("packageRoot"); | 53 throw new core.UnimplementedError("packageRoot"); |
| 54 try { | 54 try { |
| 55 if (dart.is(args, core.List)) { | 55 if (dart.is(args, core.List)) { |
| 56 for (let i = 0; dart.notNull(i) < dart.notNull(args[core.$length]); i
= dart.notNull(i) + 1) { | 56 for (let i = 0; dart.notNull(i) < dart.notNull(args[core.$length]); i
= dart.notNull(i) + 1) { |
| 57 if (!(typeof args[core.$get](i) == 'string')) { | 57 if (!(typeof args[core.$get](i) == 'string')) { |
| 58 throw new core.ArgumentError(`Args must be a list of Strings ${arg
s}`); | 58 throw new core.ArgumentError(`Args must be a list of Strings ${arg
s}`); |
| 59 } | 59 } |
| 60 } | 60 } |
| 61 } else if (args != null) { | 61 } else if (args != null) { |
| 62 throw new core.ArgumentError(`Args must be a list of Strings ${args}`)
; | 62 throw new core.ArgumentError(`Args must be a list of Strings ${args}`)
; |
| 63 } | 63 } |
| 64 return dart.as(_isolate_helper.IsolateNatives.spawnUri(uri, args, messag
e, paused).then(dart.fn(msg => new Isolate(dart.as(dart.dindex(msg, 1), SendPort
), {pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminateCapabili
ty: dart.as(dart.dindex(msg, 3), Capability)}), Isolate, [core.Object])), async.
Future$(Isolate)); | 64 return dart.as(_isolate_helper.IsolateNatives.spawnUri(uri, args, messag
e, paused).then(dart.fn(msg => new Isolate(dart.as(dart.dindex(msg, 1), SendPort
), {pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminateCapabili
ty: dart.as(dart.dindex(msg, 3), Capability)}), Isolate, [core.Object])), async.
Future$(Isolate)); |
| 65 } catch (e) { | 65 } catch (e) { |
| 66 let st = dart.stackTrace(e); | 66 let st = dart.stackTrace(e); |
| 67 return new (async.Future$(Isolate)).error(e, st); | 67 return async.Future$(Isolate).error(e, st); |
| 68 } | 68 } |
| 69 | 69 |
| 70 } | 70 } |
| 71 pause(resumeCapability) { | 71 pause(resumeCapability) { |
| 72 if (resumeCapability === void 0) | 72 if (resumeCapability === void 0) |
| 73 resumeCapability = null; | 73 resumeCapability = null; |
| 74 if (resumeCapability == null) | 74 if (resumeCapability == null) |
| 75 resumeCapability = new Capability(); | 75 resumeCapability = Capability.new(); |
| 76 this[_pause](resumeCapability); | 76 this[_pause](resumeCapability); |
| 77 return resumeCapability; | 77 return resumeCapability; |
| 78 } | 78 } |
| 79 [_pause](resumeCapability) { | 79 [_pause](resumeCapability) { |
| 80 let message = new core.List(3); | 80 let message = core.List.new(3); |
| 81 message[core.$set](0, "pause"); | 81 message[core.$set](0, "pause"); |
| 82 message[core.$set](1, this.pauseCapability); | 82 message[core.$set](1, this.pauseCapability); |
| 83 message[core.$set](2, resumeCapability); | 83 message[core.$set](2, resumeCapability); |
| 84 this.controlPort.send(message); | 84 this.controlPort.send(message); |
| 85 } | 85 } |
| 86 resume(resumeCapability) { | 86 resume(resumeCapability) { |
| 87 let message = new core.List(2); | 87 let message = core.List.new(2); |
| 88 message[core.$set](0, "resume"); | 88 message[core.$set](0, "resume"); |
| 89 message[core.$set](1, resumeCapability); | 89 message[core.$set](1, resumeCapability); |
| 90 this.controlPort.send(message); | 90 this.controlPort.send(message); |
| 91 } | 91 } |
| 92 addOnExitListener(responsePort) { | 92 addOnExitListener(responsePort) { |
| 93 let message = new core.List(2); | 93 let message = core.List.new(2); |
| 94 message[core.$set](0, "add-ondone"); | 94 message[core.$set](0, "add-ondone"); |
| 95 message[core.$set](1, responsePort); | 95 message[core.$set](1, responsePort); |
| 96 this.controlPort.send(message); | 96 this.controlPort.send(message); |
| 97 } | 97 } |
| 98 removeOnExitListener(responsePort) { | 98 removeOnExitListener(responsePort) { |
| 99 let message = new core.List(2); | 99 let message = core.List.new(2); |
| 100 message[core.$set](0, "remove-ondone"); | 100 message[core.$set](0, "remove-ondone"); |
| 101 message[core.$set](1, responsePort); | 101 message[core.$set](1, responsePort); |
| 102 this.controlPort.send(message); | 102 this.controlPort.send(message); |
| 103 } | 103 } |
| 104 setErrorsFatal(errorsAreFatal) { | 104 setErrorsFatal(errorsAreFatal) { |
| 105 let message = new core.List(3); | 105 let message = core.List.new(3); |
| 106 message[core.$set](0, "set-errors-fatal"); | 106 message[core.$set](0, "set-errors-fatal"); |
| 107 message[core.$set](1, this.terminateCapability); | 107 message[core.$set](1, this.terminateCapability); |
| 108 message[core.$set](2, errorsAreFatal); | 108 message[core.$set](2, errorsAreFatal); |
| 109 this.controlPort.send(message); | 109 this.controlPort.send(message); |
| 110 } | 110 } |
| 111 kill(priority) { | 111 kill(priority) { |
| 112 if (priority === void 0) | 112 if (priority === void 0) |
| 113 priority = Isolate.BEFORE_NEXT_EVENT; | 113 priority = Isolate.BEFORE_NEXT_EVENT; |
| 114 this.controlPort.send(["kill", this.terminateCapability, priority]); | 114 this.controlPort.send(["kill", this.terminateCapability, priority]); |
| 115 } | 115 } |
| 116 ping(responsePort, pingType) { | 116 ping(responsePort, pingType) { |
| 117 if (pingType === void 0) | 117 if (pingType === void 0) |
| 118 pingType = Isolate.IMMEDIATE; | 118 pingType = Isolate.IMMEDIATE; |
| 119 let message = new core.List(3); | 119 let message = core.List.new(3); |
| 120 message[core.$set](0, "ping"); | 120 message[core.$set](0, "ping"); |
| 121 message[core.$set](1, responsePort); | 121 message[core.$set](1, responsePort); |
| 122 message[core.$set](2, pingType); | 122 message[core.$set](2, pingType); |
| 123 this.controlPort.send(message); | 123 this.controlPort.send(message); |
| 124 } | 124 } |
| 125 addErrorListener(port) { | 125 addErrorListener(port) { |
| 126 let message = new core.List(2); | 126 let message = core.List.new(2); |
| 127 message[core.$set](0, "getErrors"); | 127 message[core.$set](0, "getErrors"); |
| 128 message[core.$set](1, port); | 128 message[core.$set](1, port); |
| 129 this.controlPort.send(message); | 129 this.controlPort.send(message); |
| 130 } | 130 } |
| 131 removeErrorListener(port) { | 131 removeErrorListener(port) { |
| 132 let message = new core.List(2); | 132 let message = core.List.new(2); |
| 133 message[core.$set](0, "stopErrors"); | 133 message[core.$set](0, "stopErrors"); |
| 134 message[core.$set](1, port); | 134 message[core.$set](1, port); |
| 135 this.controlPort.send(message); | 135 this.controlPort.send(message); |
| 136 } | 136 } |
| 137 get errors() { | 137 get errors() { |
| 138 let controller = null; | 138 let controller = null; |
| 139 let port = null; | 139 let port = null; |
| 140 let handleError = message => { | 140 let handleError = message => { |
| 141 let errorDescription = dart.as(dart.dindex(message, 0), core.String); | 141 let errorDescription = dart.as(dart.dindex(message, 0), core.String); |
| 142 let stackDescription = dart.as(dart.dindex(message, 1), core.String); | 142 let stackDescription = dart.as(dart.dindex(message, 1), core.String); |
| 143 let error = new RemoteError(errorDescription, stackDescription); | 143 let error = new RemoteError(errorDescription, stackDescription); |
| 144 controller.addError(error, error.stackTrace); | 144 controller.addError(error, error.stackTrace); |
| 145 }; | 145 }; |
| 146 dart.fn(handleError, dart.void, [core.Object]); | 146 dart.fn(handleError, dart.void, [core.Object]); |
| 147 controller = new async.StreamController.broadcast({sync: true, onListen: d
art.fn((() => { | 147 controller = async.StreamController.broadcast({sync: true, onListen: dart.
fn((() => { |
| 148 port = new RawReceivePort(handleError); | 148 port = RawReceivePort.new(handleError); |
| 149 this.addErrorListener(port.sendPort); | 149 this.addErrorListener(port.sendPort); |
| 150 }).bind(this)), onCancel: dart.fn((() => { | 150 }).bind(this)), onCancel: dart.fn((() => { |
| 151 this.removeErrorListener(port.sendPort); | 151 this.removeErrorListener(port.sendPort); |
| 152 port.close(); | 152 port.close(); |
| 153 port = null; | 153 port = null; |
| 154 }).bind(this))}); | 154 }).bind(this))}); |
| 155 return controller.stream; | 155 return controller.stream; |
| 156 } | 156 } |
| 157 } | 157 } |
| 158 dart.setSignature(Isolate, { | 158 dart.setSignature(Isolate, { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 179 Isolate.BEFORE_NEXT_EVENT = 1; | 179 Isolate.BEFORE_NEXT_EVENT = 1; |
| 180 Isolate.AS_EVENT = 2; | 180 Isolate.AS_EVENT = 2; |
| 181 dart.defineLazyProperties(Isolate, { | 181 dart.defineLazyProperties(Isolate, { |
| 182 get _currentIsolateCache() { | 182 get _currentIsolateCache() { |
| 183 return _isolate_helper.IsolateNatives.currentIsolate; | 183 return _isolate_helper.IsolateNatives.currentIsolate; |
| 184 } | 184 } |
| 185 }); | 185 }); |
| 186 class SendPort extends core.Object {} | 186 class SendPort extends core.Object {} |
| 187 SendPort[dart.implements] = () => [Capability]; | 187 SendPort[dart.implements] = () => [Capability]; |
| 188 class ReceivePort extends core.Object { | 188 class ReceivePort extends core.Object { |
| 189 ReceivePort() { | 189 static new() { |
| 190 return new _isolate_helper.ReceivePortImpl(); | 190 return new _isolate_helper.ReceivePortImpl(); |
| 191 } | 191 } |
| 192 fromRawReceivePort(rawPort) { | 192 static fromRawReceivePort(rawPort) { |
| 193 return new _isolate_helper.ReceivePortImpl.fromRawReceivePort(rawPort); | 193 return new _isolate_helper.ReceivePortImpl.fromRawReceivePort(rawPort); |
| 194 } | 194 } |
| 195 } | 195 } |
| 196 ReceivePort[dart.implements] = () => [async.Stream]; | 196 ReceivePort[dart.implements] = () => [async.Stream]; |
| 197 dart.defineNamedConstructor(ReceivePort, 'fromRawReceivePort'); | |
| 198 dart.setSignature(ReceivePort, { | 197 dart.setSignature(ReceivePort, { |
| 199 constructors: () => ({ | 198 constructors: () => ({ |
| 200 ReceivePort: [ReceivePort, []], | 199 new: [ReceivePort, []], |
| 201 fromRawReceivePort: [ReceivePort, [RawReceivePort]] | 200 fromRawReceivePort: [ReceivePort, [RawReceivePort]] |
| 202 }) | 201 }) |
| 203 }); | 202 }); |
| 204 class RawReceivePort extends core.Object { | 203 class RawReceivePort extends core.Object { |
| 205 RawReceivePort(handler) { | 204 static new(handler) { |
| 206 if (handler === void 0) | 205 if (handler === void 0) |
| 207 handler = null; | 206 handler = null; |
| 208 return new _isolate_helper.RawReceivePortImpl(handler); | 207 return new _isolate_helper.RawReceivePortImpl(handler); |
| 209 } | 208 } |
| 210 } | 209 } |
| 211 dart.setSignature(RawReceivePort, { | 210 dart.setSignature(RawReceivePort, { |
| 212 constructors: () => ({RawReceivePort: [RawReceivePort, [], [dart.functionTyp
e(dart.void, [dart.bottom])]]}) | 211 constructors: () => ({new: [RawReceivePort, [], [dart.functionType(dart.void
, [dart.bottom])]]}) |
| 213 }); | 212 }); |
| 214 class _IsolateUnhandledException extends core.Object { | 213 class _IsolateUnhandledException extends core.Object { |
| 215 _IsolateUnhandledException(message, source, stackTrace) { | 214 _IsolateUnhandledException(message, source, stackTrace) { |
| 216 this.message = message; | 215 this.message = message; |
| 217 this.source = source; | 216 this.source = source; |
| 218 this.stackTrace = stackTrace; | 217 this.stackTrace = stackTrace; |
| 219 } | 218 } |
| 220 toString() { | 219 toString() { |
| 221 return 'IsolateUnhandledException: exception while handling message: ' + `
${this.message} \n ` + `${dart.toString(this.source).replaceAll("\n", "\n ")}\
n` + 'original stack trace:\n ' + `${dart.toString(this.stackTrace).replaceAll(
"\n", "\n ")}`; | 220 return 'IsolateUnhandledException: exception while handling message: ' + `
${this.message} \n ` + `${dart.toString(this.source).replaceAll("\n", "\n ")}\
n` + 'original stack trace:\n ' + `${dart.toString(this.stackTrace).replaceAll(
"\n", "\n ")}`; |
| 222 } | 221 } |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 254 }); | 253 }); |
| 255 // Exports: | 254 // Exports: |
| 256 exports.Capability = Capability; | 255 exports.Capability = Capability; |
| 257 exports.IsolateSpawnException = IsolateSpawnException; | 256 exports.IsolateSpawnException = IsolateSpawnException; |
| 258 exports.Isolate = Isolate; | 257 exports.Isolate = Isolate; |
| 259 exports.SendPort = SendPort; | 258 exports.SendPort = SendPort; |
| 260 exports.ReceivePort = ReceivePort; | 259 exports.ReceivePort = ReceivePort; |
| 261 exports.RawReceivePort = RawReceivePort; | 260 exports.RawReceivePort = RawReceivePort; |
| 262 exports.RemoteError = RemoteError; | 261 exports.RemoteError = RemoteError; |
| 263 })(isolate, core, _isolate_helper, async); | 262 })(isolate, core, _isolate_helper, async); |
| OLD | NEW |