Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(760)

Side by Side Diff: lib/runtime/dart/isolate.js

Issue 1069493002: implement opassign, fix bugs in pre/postfix, introduce a let* helper (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/runtime/dart/core.js ('k') | lib/runtime/dart/math.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 var isolate; 1 var isolate;
2 (function(exports) { 2 (function(exports) {
3 'use strict'; 3 'use strict';
4 class Capability extends core.Object { 4 class Capability extends core.Object {
5 Capability() { 5 Capability() {
6 return new _isolate_helper.CapabilityImpl(); 6 return new _isolate_helper.CapabilityImpl();
7 } 7 }
8 } 8 }
9 class IsolateSpawnException extends core.Object { 9 class IsolateSpawnException extends core.Object {
10 IsolateSpawnException(message) { 10 IsolateSpawnException(message) {
(...skipping 13 matching lines...) Expand all
24 this.controlPort = controlPort; 24 this.controlPort = controlPort;
25 this.pauseCapability = pauseCapability; 25 this.pauseCapability = pauseCapability;
26 this.terminateCapability = terminateCapability; 26 this.terminateCapability = terminateCapability;
27 } 27 }
28 static get current() { 28 static get current() {
29 return Isolate[_currentIsolateCache]; 29 return Isolate[_currentIsolateCache];
30 } 30 }
31 static spawn(entryPoint, message, opts) { 31 static spawn(entryPoint, message, opts) {
32 let paused = opts && 'paused' in opts ? opts.paused : false; 32 let paused = opts && 'paused' in opts ? opts.paused : false;
33 try { 33 try {
34 return dart.as(_isolate_helper.IsolateNatives.spawnFunction(entryPoint, message, paused).then(dart.as((msg) => new Isolate(dart.as(dart.dindex(msg, 1), SendPort), {pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminate Capability: dart.as(dart.dindex(msg, 3), Capability)}), dart.throw_("Unimplement ed type (List<dynamic>) → dynamic"))), async.Future$(Isolate)); 34 return dart.as(_isolate_helper.IsolateNatives.spawnFunction(entryPoint, message, paused).then(dart.as(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)}), dart.throw_("Unimplemented type (List<dynamic>) → dynamic"))), async.Future$(Isolate));
35 } catch (e) { 35 } catch (e) {
36 let st = dart.stackTrace(e); 36 let st = dart.stackTrace(e);
37 return new async.Future$(Isolate).error(e, st); 37 return new async.Future$(Isolate).error(e, st);
38 } 38 }
39 39
40 } 40 }
41 static spawnUri(uri, args, message, opts) { 41 static spawnUri(uri, args, message, opts) {
42 let paused = opts && 'paused' in opts ? opts.paused : false; 42 let paused = opts && 'paused' in opts ? opts.paused : false;
43 let packageRoot = opts && 'packageRoot' in opts ? opts.packageRoot : null; 43 let packageRoot = opts && 'packageRoot' in opts ? opts.packageRoot : null;
44 if (packageRoot != null) 44 if (packageRoot != null)
45 throw new core.UnimplementedError("packageRoot"); 45 throw new core.UnimplementedError("packageRoot");
46 try { 46 try {
47 if (dart.is(args, core.List$(core.String))) { 47 if (dart.is(args, core.List$(core.String))) {
48 for (let i = 0; dart.notNull(i) < dart.notNull(args[core.$length]); i = dart.notNull(i) + 1) { 48 for (let i = 0; dart.notNull(i) < dart.notNull(args[core.$length]); i = dart.notNull(i) + 1) {
49 if (!(typeof args[core.$get](i) == 'string')) { 49 if (!(typeof args[core.$get](i) == 'string')) {
50 throw new core.ArgumentError(`Args must be a list of Strings ${arg s}`); 50 throw new core.ArgumentError(`Args must be a list of Strings ${arg s}`);
51 } 51 }
52 } 52 }
53 } else if (args != null) { 53 } else if (args != null) {
54 throw new core.ArgumentError(`Args must be a list of Strings ${args}`) ; 54 throw new core.ArgumentError(`Args must be a list of Strings ${args}`) ;
55 } 55 }
56 return dart.as(_isolate_helper.IsolateNatives.spawnUri(uri, args, messag e, paused).then(dart.as((msg) => new Isolate(dart.as(dart.dindex(msg, 1), SendPo rt), {pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminateCapabi lity: dart.as(dart.dindex(msg, 3), Capability)}), dart.throw_("Unimplemented typ e (List<dynamic>) → dynamic"))), async.Future$(Isolate)); 56 return dart.as(_isolate_helper.IsolateNatives.spawnUri(uri, args, messag e, paused).then(dart.as(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)}), dart.throw_("Unimplemented type (List<dynamic>) → dynamic"))), async.Future$(Isolate));
57 } catch (e) { 57 } catch (e) {
58 let st = dart.stackTrace(e); 58 let st = dart.stackTrace(e);
59 return new async.Future$(Isolate).error(e, st); 59 return new async.Future$(Isolate).error(e, st);
60 } 60 }
61 61
62 } 62 }
63 pause(resumeCapability) { 63 pause(resumeCapability) {
64 if (resumeCapability === void 0) 64 if (resumeCapability === void 0)
65 resumeCapability = null; 65 resumeCapability = null;
66 if (resumeCapability == null) 66 if (resumeCapability == null)
67 resumeCapability = new Capability(); 67 resumeCapability = new Capability();
68 this[_pause](resumeCapability); 68 this[_pause](resumeCapability);
69 return resumeCapability; 69 return resumeCapability;
70 } 70 }
71 [_pause](resumeCapability) { 71 [_pause](resumeCapability) {
72 let message = new core.List(3); 72 let message = new core.List(3);
73 dart.dsetindex(message, 0, "pause"); 73 message[core.$set](0, "pause");
74 dart.dsetindex(message, 1, this.pauseCapability); 74 message[core.$set](1, this.pauseCapability);
75 dart.dsetindex(message, 2, resumeCapability); 75 message[core.$set](2, resumeCapability);
76 this.controlPort.send(message); 76 this.controlPort.send(message);
77 } 77 }
78 resume(resumeCapability) { 78 resume(resumeCapability) {
79 let message = new core.List(2); 79 let message = new core.List(2);
80 dart.dsetindex(message, 0, "resume"); 80 message[core.$set](0, "resume");
81 dart.dsetindex(message, 1, resumeCapability); 81 message[core.$set](1, resumeCapability);
82 this.controlPort.send(message); 82 this.controlPort.send(message);
83 } 83 }
84 addOnExitListener(responsePort) { 84 addOnExitListener(responsePort) {
85 let message = new core.List(2); 85 let message = new core.List(2);
86 dart.dsetindex(message, 0, "add-ondone"); 86 message[core.$set](0, "add-ondone");
87 dart.dsetindex(message, 1, responsePort); 87 message[core.$set](1, responsePort);
88 this.controlPort.send(message); 88 this.controlPort.send(message);
89 } 89 }
90 removeOnExitListener(responsePort) { 90 removeOnExitListener(responsePort) {
91 let message = new core.List(2); 91 let message = new core.List(2);
92 dart.dsetindex(message, 0, "remove-ondone"); 92 message[core.$set](0, "remove-ondone");
93 dart.dsetindex(message, 1, responsePort); 93 message[core.$set](1, responsePort);
94 this.controlPort.send(message); 94 this.controlPort.send(message);
95 } 95 }
96 setErrorsFatal(errorsAreFatal) { 96 setErrorsFatal(errorsAreFatal) {
97 let message = new core.List(3); 97 let message = new core.List(3);
98 dart.dsetindex(message, 0, "set-errors-fatal"); 98 message[core.$set](0, "set-errors-fatal");
99 dart.dsetindex(message, 1, this.terminateCapability); 99 message[core.$set](1, this.terminateCapability);
100 dart.dsetindex(message, 2, errorsAreFatal); 100 message[core.$set](2, errorsAreFatal);
101 this.controlPort.send(message); 101 this.controlPort.send(message);
102 } 102 }
103 kill(priority) { 103 kill(priority) {
104 if (priority === void 0) 104 if (priority === void 0)
105 priority = Isolate.BEFORE_NEXT_EVENT; 105 priority = Isolate.BEFORE_NEXT_EVENT;
106 this.controlPort.send(new core.List.from(["kill", this.terminateCapability , priority])); 106 this.controlPort.send(new core.List.from(["kill", this.terminateCapability , priority]));
107 } 107 }
108 ping(responsePort, pingType) { 108 ping(responsePort, pingType) {
109 if (pingType === void 0) 109 if (pingType === void 0)
110 pingType = Isolate.IMMEDIATE; 110 pingType = Isolate.IMMEDIATE;
111 let message = new core.List(3); 111 let message = new core.List(3);
112 dart.dsetindex(message, 0, "ping"); 112 message[core.$set](0, "ping");
113 dart.dsetindex(message, 1, responsePort); 113 message[core.$set](1, responsePort);
114 dart.dsetindex(message, 2, pingType); 114 message[core.$set](2, pingType);
115 this.controlPort.send(message); 115 this.controlPort.send(message);
116 } 116 }
117 addErrorListener(port) { 117 addErrorListener(port) {
118 let message = new core.List(2); 118 let message = new core.List(2);
119 dart.dsetindex(message, 0, "getErrors"); 119 message[core.$set](0, "getErrors");
120 dart.dsetindex(message, 1, port); 120 message[core.$set](1, port);
121 this.controlPort.send(message); 121 this.controlPort.send(message);
122 } 122 }
123 removeErrorListener(port) { 123 removeErrorListener(port) {
124 let message = new core.List(2); 124 let message = new core.List(2);
125 dart.dsetindex(message, 0, "stopErrors"); 125 message[core.$set](0, "stopErrors");
126 dart.dsetindex(message, 1, port); 126 message[core.$set](1, port);
127 this.controlPort.send(message); 127 this.controlPort.send(message);
128 } 128 }
129 get errors() { 129 get errors() {
130 let controller = null; 130 let controller = null;
131 let port = null; 131 let port = null;
132 // Function handleError: (dynamic) → void 132 // Function handleError: (dynamic) → void
133 function handleError(message) { 133 function handleError(message) {
134 let errorDescription = dart.as(dart.dindex(message, 0), core.String); 134 let errorDescription = dart.as(dart.dindex(message, 0), core.String);
135 let stackDescription = dart.as(dart.dindex(message, 1), core.String); 135 let stackDescription = dart.as(dart.dindex(message, 1), core.String);
136 let error = new RemoteError(errorDescription, stackDescription); 136 let error = new RemoteError(errorDescription, stackDescription);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 _RemoteStackTrace[dart.implements] = () => [core.StackTrace]; 212 _RemoteStackTrace[dart.implements] = () => [core.StackTrace];
213 // Exports: 213 // Exports:
214 exports.Capability = Capability; 214 exports.Capability = Capability;
215 exports.IsolateSpawnException = IsolateSpawnException; 215 exports.IsolateSpawnException = IsolateSpawnException;
216 exports.Isolate = Isolate; 216 exports.Isolate = Isolate;
217 exports.SendPort = SendPort; 217 exports.SendPort = SendPort;
218 exports.ReceivePort = ReceivePort; 218 exports.ReceivePort = ReceivePort;
219 exports.RawReceivePort = RawReceivePort; 219 exports.RawReceivePort = RawReceivePort;
220 exports.RemoteError = RemoteError; 220 exports.RemoteError = RemoteError;
221 })(isolate || (isolate = {})); 221 })(isolate || (isolate = {}));
OLDNEW
« no previous file with comments | « lib/runtime/dart/core.js ('k') | lib/runtime/dart/math.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698