OLD | NEW |
1 dart_library.library('dart/isolate', null, /* Imports */[ | 1 dart_library.library('dart/isolate', null, /* Imports */[ |
2 "dart/_runtime", | 2 "dart/_runtime", |
3 'dart/core', | 3 'dart/core', |
4 'dart/async' | 4 'dart/async' |
5 ], /* Lazy imports */[ | 5 ], /* Lazy imports */[ |
6 'dart/_isolate_helper' | 6 'dart/_isolate_helper' |
7 ], function(exports, dart, core, async, _isolate_helper) { | 7 ], function(exports, dart, core, async, _isolate_helper) { |
8 'use strict'; | 8 'use strict'; |
9 let dartx = dart.dartx; | 9 let dartx = dart.dartx; |
10 class Capability extends core.Object { | 10 class Capability extends core.Object { |
(...skipping 11 matching lines...) Expand all Loading... |
22 toString() { | 22 toString() { |
23 return `IsolateSpawnException: ${this.message}`; | 23 return `IsolateSpawnException: ${this.message}`; |
24 } | 24 } |
25 } | 25 } |
26 IsolateSpawnException[dart.implements] = () => [core.Exception]; | 26 IsolateSpawnException[dart.implements] = () => [core.Exception]; |
27 dart.setSignature(IsolateSpawnException, { | 27 dart.setSignature(IsolateSpawnException, { |
28 constructors: () => ({IsolateSpawnException: [IsolateSpawnException, [core.S
tring]]}) | 28 constructors: () => ({IsolateSpawnException: [IsolateSpawnException, [core.S
tring]]}) |
29 }); | 29 }); |
30 let _pause = Symbol('_pause'); | 30 let _pause = Symbol('_pause'); |
31 class Isolate extends core.Object { | 31 class Isolate extends core.Object { |
32 Isolate(controlPort, opts) { | 32 Isolate(controlPort, {pauseCapability = null, terminateCapability = null} =
{}) { |
33 let pauseCapability = opts && 'pauseCapability' in opts ? opts.pauseCapabi
lity : null; | |
34 let terminateCapability = opts && 'terminateCapability' in opts ? opts.ter
minateCapability : null; | |
35 this.controlPort = controlPort; | 33 this.controlPort = controlPort; |
36 this.pauseCapability = pauseCapability; | 34 this.pauseCapability = pauseCapability; |
37 this.terminateCapability = terminateCapability; | 35 this.terminateCapability = terminateCapability; |
38 } | 36 } |
39 static get current() { | 37 static get current() { |
40 return Isolate._currentIsolateCache; | 38 return Isolate._currentIsolateCache; |
41 } | 39 } |
42 static spawn(entryPoint, message, opts) { | 40 static spawn(entryPoint, message, {paused = false} = {}) { |
43 let paused = opts && 'paused' in opts ? opts.paused : false; | |
44 try { | 41 try { |
45 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])); | 42 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])); |
46 } catch (e) { | 43 } catch (e) { |
47 let st = dart.stackTrace(e); | 44 let st = dart.stackTrace(e); |
48 return async.Future$(Isolate).error(e, st); | 45 return async.Future$(Isolate).error(e, st); |
49 } | 46 } |
50 | 47 |
51 } | 48 } |
52 static spawnUri(uri, args, message, opts) { | 49 static spawnUri(uri, args, message, {paused = false, packageRoot = null} = {
}) { |
53 let paused = opts && 'paused' in opts ? opts.paused : false; | |
54 let packageRoot = opts && 'packageRoot' in opts ? opts.packageRoot : null; | |
55 if (packageRoot != null) | 50 if (packageRoot != null) |
56 dart.throw(new core.UnimplementedError("packageRoot")); | 51 dart.throw(new core.UnimplementedError("packageRoot")); |
57 try { | 52 try { |
58 if (dart.is(args, core.List)) { | 53 if (dart.is(args, core.List)) { |
59 for (let i = 0; dart.notNull(i) < dart.notNull(args[dartx.length]); i
= dart.notNull(i) + 1) { | 54 for (let i = 0; dart.notNull(i) < dart.notNull(args[dartx.length]); i
= dart.notNull(i) + 1) { |
60 if (!(typeof args[dartx.get](i) == 'string')) { | 55 if (!(typeof args[dartx.get](i) == 'string')) { |
61 dart.throw(new core.ArgumentError(`Args must be a list of Strings
${args}`)); | 56 dart.throw(new core.ArgumentError(`Args must be a list of Strings
${args}`)); |
62 } | 57 } |
63 } | 58 } |
64 } else if (args != null) { | 59 } else if (args != null) { |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 }); | 251 }); |
257 // Exports: | 252 // Exports: |
258 exports.Capability = Capability; | 253 exports.Capability = Capability; |
259 exports.IsolateSpawnException = IsolateSpawnException; | 254 exports.IsolateSpawnException = IsolateSpawnException; |
260 exports.Isolate = Isolate; | 255 exports.Isolate = Isolate; |
261 exports.SendPort = SendPort; | 256 exports.SendPort = SendPort; |
262 exports.ReceivePort = ReceivePort; | 257 exports.ReceivePort = ReceivePort; |
263 exports.RawReceivePort = RawReceivePort; | 258 exports.RawReceivePort = RawReceivePort; |
264 exports.RemoteError = RemoteError; | 259 exports.RemoteError = RemoteError; |
265 }); | 260 }); |
OLD | NEW |