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 static new() { | 8 static new() { |
9 return new _isolate_helper.CapabilityImpl(); | 9 return new _isolate_helper.CapabilityImpl(); |
10 } | 10 } |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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.length); i = dart.
notNull(i) + 1) { |
57 if (!(typeof args[core.$get](i) == 'string')) { | 57 if (!(typeof args[dartx.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 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 = Capability.new(); | 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 = core.List.new(3); | 80 let message = core.List.new(3); |
81 message[core.$set](0, "pause"); | 81 message[dartx.set](0, "pause"); |
82 message[core.$set](1, this.pauseCapability); | 82 message[dartx.set](1, this.pauseCapability); |
83 message[core.$set](2, resumeCapability); | 83 message[dartx.set](2, resumeCapability); |
84 this.controlPort.send(message); | 84 this.controlPort.send(message); |
85 } | 85 } |
86 resume(resumeCapability) { | 86 resume(resumeCapability) { |
87 let message = core.List.new(2); | 87 let message = core.List.new(2); |
88 message[core.$set](0, "resume"); | 88 message[dartx.set](0, "resume"); |
89 message[core.$set](1, resumeCapability); | 89 message[dartx.set](1, resumeCapability); |
90 this.controlPort.send(message); | 90 this.controlPort.send(message); |
91 } | 91 } |
92 addOnExitListener(responsePort) { | 92 addOnExitListener(responsePort) { |
93 let message = core.List.new(2); | 93 let message = core.List.new(2); |
94 message[core.$set](0, "add-ondone"); | 94 message[dartx.set](0, "add-ondone"); |
95 message[core.$set](1, responsePort); | 95 message[dartx.set](1, responsePort); |
96 this.controlPort.send(message); | 96 this.controlPort.send(message); |
97 } | 97 } |
98 removeOnExitListener(responsePort) { | 98 removeOnExitListener(responsePort) { |
99 let message = core.List.new(2); | 99 let message = core.List.new(2); |
100 message[core.$set](0, "remove-ondone"); | 100 message[dartx.set](0, "remove-ondone"); |
101 message[core.$set](1, responsePort); | 101 message[dartx.set](1, responsePort); |
102 this.controlPort.send(message); | 102 this.controlPort.send(message); |
103 } | 103 } |
104 setErrorsFatal(errorsAreFatal) { | 104 setErrorsFatal(errorsAreFatal) { |
105 let message = core.List.new(3); | 105 let message = core.List.new(3); |
106 message[core.$set](0, "set-errors-fatal"); | 106 message[dartx.set](0, "set-errors-fatal"); |
107 message[core.$set](1, this.terminateCapability); | 107 message[dartx.set](1, this.terminateCapability); |
108 message[core.$set](2, errorsAreFatal); | 108 message[dartx.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 = core.List.new(3); | 119 let message = core.List.new(3); |
120 message[core.$set](0, "ping"); | 120 message[dartx.set](0, "ping"); |
121 message[core.$set](1, responsePort); | 121 message[dartx.set](1, responsePort); |
122 message[core.$set](2, pingType); | 122 message[dartx.set](2, pingType); |
123 this.controlPort.send(message); | 123 this.controlPort.send(message); |
124 } | 124 } |
125 addErrorListener(port) { | 125 addErrorListener(port) { |
126 let message = core.List.new(2); | 126 let message = core.List.new(2); |
127 message[core.$set](0, "getErrors"); | 127 message[dartx.set](0, "getErrors"); |
128 message[core.$set](1, port); | 128 message[dartx.set](1, port); |
129 this.controlPort.send(message); | 129 this.controlPort.send(message); |
130 } | 130 } |
131 removeErrorListener(port) { | 131 removeErrorListener(port) { |
132 let message = core.List.new(2); | 132 let message = core.List.new(2); |
133 message[core.$set](0, "stopErrors"); | 133 message[dartx.set](0, "stopErrors"); |
134 message[core.$set](1, port); | 134 message[dartx.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); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 dart.setSignature(RawReceivePort, { | 210 dart.setSignature(RawReceivePort, { |
211 constructors: () => ({new: [RawReceivePort, [], [dart.functionType(dart.void
, [dart.bottom])]]}) | 211 constructors: () => ({new: [RawReceivePort, [], [dart.functionType(dart.void
, [dart.bottom])]]}) |
212 }); | 212 }); |
213 class _IsolateUnhandledException extends core.Object { | 213 class _IsolateUnhandledException extends core.Object { |
214 _IsolateUnhandledException(message, source, stackTrace) { | 214 _IsolateUnhandledException(message, source, stackTrace) { |
215 this.message = message; | 215 this.message = message; |
216 this.source = source; | 216 this.source = source; |
217 this.stackTrace = stackTrace; | 217 this.stackTrace = stackTrace; |
218 } | 218 } |
219 toString() { | 219 toString() { |
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 ")}`; | 220 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)[dart
x.replaceAll]("\n", "\n ")}`; |
221 } | 221 } |
222 } | 222 } |
223 _IsolateUnhandledException[dart.implements] = () => [core.Exception]; | 223 _IsolateUnhandledException[dart.implements] = () => [core.Exception]; |
224 dart.setSignature(_IsolateUnhandledException, { | 224 dart.setSignature(_IsolateUnhandledException, { |
225 constructors: () => ({_IsolateUnhandledException: [_IsolateUnhandledExceptio
n, [core.Object, core.Object, core.StackTrace]]}) | 225 constructors: () => ({_IsolateUnhandledException: [_IsolateUnhandledExceptio
n, [core.Object, core.Object, core.StackTrace]]}) |
226 }); | 226 }); |
227 let _description = Symbol('_description'); | 227 let _description = Symbol('_description'); |
228 class RemoteError extends core.Object { | 228 class RemoteError extends core.Object { |
229 RemoteError(description, stackDescription) { | 229 RemoteError(description, stackDescription) { |
230 this[_description] = description; | 230 this[_description] = description; |
(...skipping 22 matching lines...) Expand all Loading... |
253 }); | 253 }); |
254 // Exports: | 254 // Exports: |
255 exports.Capability = Capability; | 255 exports.Capability = Capability; |
256 exports.IsolateSpawnException = IsolateSpawnException; | 256 exports.IsolateSpawnException = IsolateSpawnException; |
257 exports.Isolate = Isolate; | 257 exports.Isolate = Isolate; |
258 exports.SendPort = SendPort; | 258 exports.SendPort = SendPort; |
259 exports.ReceivePort = ReceivePort; | 259 exports.ReceivePort = ReceivePort; |
260 exports.RawReceivePort = RawReceivePort; | 260 exports.RawReceivePort = RawReceivePort; |
261 exports.RemoteError = RemoteError; | 261 exports.RemoteError = RemoteError; |
262 })(isolate, core, _isolate_helper, async); | 262 })(isolate, core, _isolate_helper, async); |
OLD | NEW |