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

Side by Side Diff: test/codegen/expect/_isolate_helper/_isolate_helper.js

Issue 963343002: implement private members, fixes #74 (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: rebase Created 5 years, 9 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
OLDNEW
1 var _isolate_helper; 1 var _isolate_helper;
2 (function(exports) { 2 (function(exports) {
3 'use strict'; 3 'use strict';
4 let _activeJsAsyncCount = Symbol('_activeJsAsyncCount');
5 let _nativeDetectEnvironment = Symbol('_nativeDetectEnvironment');
6 let _nativeInitWorkerMessageHandler = Symbol('_nativeInitWorkerMessageHandler' );
7 let _processWorkerMessage = Symbol('_processWorkerMessage');
8 let _serializePrintMessage = Symbol('_serializePrintMessage');
9 let _scheduledControlEvents = Symbol('_scheduledControlEvents');
10 let _isExecutingEvent = Symbol('_isExecutingEvent');
11 let _id = Symbol('_id');
12 let _updateGlobalState = Symbol('_updateGlobalState');
13 let _setGlobals = Symbol('_setGlobals');
14 let _addRegistration = Symbol('_addRegistration');
15 let _runHelper = Symbol('_runHelper');
16 let _getEventData = Symbol('_getEventData');
17 let _log = Symbol('_log');
18 let _consoleLog = Symbol('_consoleLog');
19 let _getJSFunctionFromName = Symbol('_getJSFunctionFromName');
20 let _getJSFunctionName = Symbol('_getJSFunctionName');
21 let _allocate = Symbol('_allocate');
22 let _startWorker = Symbol('_startWorker');
23 let _startNonWorker = Symbol('_startNonWorker');
24 let _startIsolate = Symbol('_startIsolate');
25 let _spawnWorker = Symbol('_spawnWorker');
26 let _isolateId = Symbol('_isolateId');
27 let _checkReplyTo = Symbol('_checkReplyTo');
28 let _receivePort = Symbol('_receivePort');
29 let _isClosed = Symbol('_isClosed');
30 let _workerId = Symbol('_workerId');
31 let _receivePortId = Symbol('_receivePortId');
32 let _handler = Symbol('_handler');
33 let _close = Symbol('_close');
34 let _add = Symbol('_add');
35 let _rawPort = Symbol('_rawPort');
36 let _controller = Symbol('_controller');
37 let _once = Symbol('_once');
38 let _inEventLoop = Symbol('_inEventLoop');
39 let _handle = Symbol('_handle');
40 let _serializeSendPorts = Symbol('_serializeSendPorts');
41 let _adjustSendPorts = Symbol('_adjustSendPorts');
4 // Function _callInIsolate: (_IsolateContext, Function) → dynamic 42 // Function _callInIsolate: (_IsolateContext, Function) → dynamic
5 function _callInIsolate(isolate, function) { 43 function _callInIsolate(isolate, function) {
6 let result = isolate.eval(function); 44 let result = isolate.eval(function);
7 exports._globalState.topEventLoop.run(); 45 exports._globalState.topEventLoop.run();
8 return result; 46 return result;
9 } 47 }
10 // Function enterJsAsync: () → dynamic 48 // Function enterJsAsync: () → dynamic
11 function enterJsAsync() { 49 function enterJsAsync() {
50 <<<<<<< HEAD
vsm 2015/03/02 21:17:01 Resolve this? :-)
51 _isolate_helper._globalState.topEventLoop[_activeJsAsyncCount]++;
52 }
53 // Function leaveJsAsync: () → dynamic
54 function leaveJsAsync() {
55 _isolate_helper._globalState.topEventLoop[_activeJsAsyncCount]--;
56 dart.assert(_isolate_helper._globalState.topEventLoop[_activeJsAsyncCount] > = 0);
57 =======
12 exports._globalState.topEventLoop._activeJsAsyncCount++; 58 exports._globalState.topEventLoop._activeJsAsyncCount++;
13 } 59 }
14 // Function leaveJsAsync: () → dynamic 60 // Function leaveJsAsync: () → dynamic
15 function leaveJsAsync() { 61 function leaveJsAsync() {
16 exports._globalState.topEventLoop._activeJsAsyncCount--; 62 exports._globalState.topEventLoop._activeJsAsyncCount--;
17 dart.assert(exports._globalState.topEventLoop._activeJsAsyncCount >= 0); 63 dart.assert(exports._globalState.topEventLoop._activeJsAsyncCount >= 0);
64 >>>>>>> origin/master
18 } 65 }
19 // Function isWorker: () → bool 66 // Function isWorker: () → bool
20 function isWorker() { 67 function isWorker() {
21 return exports._globalState.isWorker; 68 return exports._globalState.isWorker;
22 } 69 }
23 // Function _currentIsolate: () → _IsolateContext 70 // Function _currentIsolate: () → _IsolateContext
24 function _currentIsolate() { 71 function _currentIsolate() {
25 return exports._globalState.currentContext; 72 return exports._globalState.currentContext;
26 } 73 }
27 // Function startRootIsolate: (dynamic, dynamic) → void 74 // Function startRootIsolate: (dynamic, dynamic) → void
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 this.nextManagerId = 1; 117 this.nextManagerId = 1;
71 this.currentContext = null; 118 this.currentContext = null;
72 this.rootContext = null; 119 this.rootContext = null;
73 this.topEventLoop = null; 120 this.topEventLoop = null;
74 this.fromCommandLine = null; 121 this.fromCommandLine = null;
75 this.isWorker = null; 122 this.isWorker = null;
76 this.supportsWorkers = null; 123 this.supportsWorkers = null;
77 this.isolates = null; 124 this.isolates = null;
78 this.mainManager = null; 125 this.mainManager = null;
79 this.managers = null; 126 this.managers = null;
80 this._nativeDetectEnvironment(); 127 this[_nativeDetectEnvironment]();
81 this.topEventLoop = new _EventLoop(); 128 this.topEventLoop = new _EventLoop();
82 this.isolates = new core.Map(); 129 this.isolates = new core.Map();
83 this.managers = new core.Map(); 130 this.managers = new core.Map();
84 if (this.isWorker) { 131 if (this.isWorker) {
85 this.mainManager = new _MainManagerStub(); 132 this.mainManager = new _MainManagerStub();
86 this._nativeInitWorkerMessageHandler(); 133 this[_nativeInitWorkerMessageHandler]();
87 } 134 }
88 } 135 }
136 <<<<<<< HEAD
vsm 2015/03/02 21:17:01 Ditto
137 [_nativeDetectEnvironment]() {
138 let isWindowDefined = _isolate_helper.globalWindow !== null;
139 let isWorkerDefined = _isolate_helper.globalWorker !== null;
140 this.isWorker = dart.notNull(!dart.notNull(isWindowDefined)) && dart.notNu ll(_isolate_helper.globalPostMessageDefined);
141 =======
89 _nativeDetectEnvironment() { 142 _nativeDetectEnvironment() {
90 let isWindowDefined = exports.globalWindow !== null; 143 let isWindowDefined = exports.globalWindow !== null;
91 let isWorkerDefined = exports.globalWorker !== null; 144 let isWorkerDefined = exports.globalWorker !== null;
92 this.isWorker = dart.notNull(!dart.notNull(isWindowDefined)) && dart.notNu ll(exports.globalPostMessageDefined); 145 this.isWorker = dart.notNull(!dart.notNull(isWindowDefined)) && dart.notNu ll(exports.globalPostMessageDefined);
146 >>>>>>> origin/master
93 this.supportsWorkers = dart.notNull(this.isWorker) || dart.notNull(dart.no tNull(isWorkerDefined) && dart.notNull(IsolateNatives.thisScript !== null)); 147 this.supportsWorkers = dart.notNull(this.isWorker) || dart.notNull(dart.no tNull(isWorkerDefined) && dart.notNull(IsolateNatives.thisScript !== null));
94 this.fromCommandLine = dart.notNull(!dart.notNull(isWindowDefined)) && dar t.notNull(!dart.notNull(this.isWorker)); 148 this.fromCommandLine = dart.notNull(!dart.notNull(isWindowDefined)) && dar t.notNull(!dart.notNull(this.isWorker));
95 } 149 }
96 _nativeInitWorkerMessageHandler() { 150 [_nativeInitWorkerMessageHandler]() {
97 let function = function(f, a) { 151 let function = function(f, a) {
98 return function(e) { 152 return function(e) {
99 f(a, e); 153 f(a, e);
100 }; 154 };
101 }(_foreign_helper.DART_CLOSURE_TO_JS(IsolateNatives._processWorkerMessage) , this.mainManager); 155 }(_foreign_helper.DART_CLOSURE_TO_JS(IsolateNatives[_processWorkerMessage] ), this.mainManager);
102 self.onmessage = function; 156 self.onmessage = function;
103 self.dartPrint = self.dartPrint || function(serialize) { 157 self.dartPrint = self.dartPrint || function(serialize) {
104 return function(object) { 158 return function(object) {
105 if (self.console && self.console.log) { 159 if (self.console && self.console.log) {
106 self.console.log(object); 160 self.console.log(object);
107 } else { 161 } else {
108 self.postMessage(serialize(object)); 162 self.postMessage(serialize(object));
109 } 163 }
110 }; 164 };
111 }(_foreign_helper.DART_CLOSURE_TO_JS(_serializePrintMessage)); 165 }(_foreign_helper.DART_CLOSURE_TO_JS(_serializePrintMessage));
112 } 166 }
113 static _serializePrintMessage(object) { 167 static [_serializePrintMessage](object) {
114 return _serializeMessage(dart.map({command: "print", msg: object})); 168 return _serializeMessage(dart.map({command: "print", msg: object}));
115 } 169 }
116 maybeCloseWorker() { 170 maybeCloseWorker() {
117 if (dart.notNull(dart.notNull(this.isWorker) && dart.notNull(this.isolates .isEmpty)) && dart.notNull(this.topEventLoop._activeJsAsyncCount === 0)) { 171 if (dart.notNull(dart.notNull(this.isWorker) && dart.notNull(this.isolates .isEmpty)) && dart.notNull(this.topEventLoop[_activeJsAsyncCount] === 0)) {
118 this.mainManager.postMessage(_serializeMessage(dart.map({command: 'close '}))); 172 this.mainManager.postMessage(_serializeMessage(dart.map({command: 'close '})));
119 } 173 }
120 } 174 }
121 } 175 }
122 class _IsolateContext extends dart.Object { 176 class _IsolateContext extends dart.Object {
123 _IsolateContext() { 177 _IsolateContext() {
124 this.id = exports._globalState.nextIsolateId++; 178 this.id = exports._globalState.nextIsolateId++;
125 this.ports = new core.Map(); 179 this.ports = new core.Map();
126 this.weakPorts = new core.Set(); 180 this.weakPorts = new core.Set();
127 this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE(); 181 this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE();
128 this.controlPort = new RawReceivePortImpl._controlPort(); 182 this.controlPort = new RawReceivePortImpl._controlPort();
129 this.pauseCapability = new isolate.Capability(); 183 this.pauseCapability = new isolate.Capability();
130 this.terminateCapability = new isolate.Capability(); 184 this.terminateCapability = new isolate.Capability();
131 this.delayedEvents = dart.as(new List.from([]), core.List$(_IsolateEvent)) ; 185 this.delayedEvents = dart.as(new List.from([]), core.List$(_IsolateEvent)) ;
132 this.pauseTokens = dart.as(new core.Set(), core.Set$(isolate.Capability)); 186 this.pauseTokens = dart.as(new core.Set(), core.Set$(isolate.Capability));
133 this.errorPorts = dart.as(new core.Set(), core.Set$(isolate.SendPort)); 187 this.errorPorts = dart.as(new core.Set(), core.Set$(isolate.SendPort));
134 this.initialized = false; 188 this.initialized = false;
135 this.isPaused = false; 189 this.isPaused = false;
136 this.doneHandlers = null; 190 this.doneHandlers = null;
137 this._scheduledControlEvents = null; 191 this[_scheduledControlEvents] = null;
138 this._isExecutingEvent = false; 192 this[_isExecutingEvent] = false;
139 this.errorsAreFatal = true; 193 this.errorsAreFatal = true;
140 this.registerWeak(this.controlPort._id, this.controlPort); 194 this.registerWeak(this.controlPort[_id], this.controlPort);
141 } 195 }
142 addPause(authentification, resume) { 196 addPause(authentification, resume) {
143 if (!dart.equals(this.pauseCapability, authentification)) 197 if (!dart.equals(this.pauseCapability, authentification))
144 return; 198 return;
145 if (dart.notNull(this.pauseTokens.add(resume)) && dart.notNull(!dart.notNu ll(this.isPaused))) { 199 if (dart.notNull(this.pauseTokens.add(resume)) && dart.notNull(!dart.notNu ll(this.isPaused))) {
146 this.isPaused = true; 200 this.isPaused = true;
147 } 201 }
148 this._updateGlobalState(); 202 this[_updateGlobalState]();
149 } 203 }
150 removePause(resume) { 204 removePause(resume) {
151 if (!dart.notNull(this.isPaused)) 205 if (!dart.notNull(this.isPaused))
152 return; 206 return;
153 this.pauseTokens.remove(resume); 207 this.pauseTokens.remove(resume);
154 if (this.pauseTokens.isEmpty) { 208 if (this.pauseTokens.isEmpty) {
155 while (this.delayedEvents.isNotEmpty) { 209 while (this.delayedEvents.isNotEmpty) {
156 let event = this.delayedEvents.removeLast(); 210 let event = this.delayedEvents.removeLast();
157 exports._globalState.topEventLoop.prequeue(event); 211 exports._globalState.topEventLoop.prequeue(event);
158 } 212 }
159 this.isPaused = false; 213 this.isPaused = false;
160 } 214 }
161 this._updateGlobalState(); 215 this[_updateGlobalState]();
162 } 216 }
163 addDoneListener(responsePort) { 217 addDoneListener(responsePort) {
164 if (this.doneHandlers === null) { 218 if (this.doneHandlers === null) {
165 this.doneHandlers = new List.from([]); 219 this.doneHandlers = new List.from([]);
166 } 220 }
167 if (dart.dinvoke(this.doneHandlers, 'contains', responsePort)) 221 if (dart.dinvoke(this.doneHandlers, 'contains', responsePort))
168 return; 222 return;
169 dart.dinvoke(this.doneHandlers, 'add', responsePort); 223 dart.dinvoke(this.doneHandlers, 'add', responsePort);
170 } 224 }
171 removeDoneListener(responsePort) { 225 removeDoneListener(responsePort) {
172 if (this.doneHandlers === null) 226 if (this.doneHandlers === null)
173 return; 227 return;
174 dart.dinvoke(this.doneHandlers, 'remove', responsePort); 228 dart.dinvoke(this.doneHandlers, 'remove', responsePort);
175 } 229 }
176 setErrorsFatal(authentification, errorsAreFatal) { 230 setErrorsFatal(authentification, errorsAreFatal) {
177 if (!dart.equals(this.terminateCapability, authentification)) 231 if (!dart.equals(this.terminateCapability, authentification))
178 return; 232 return;
179 this.errorsAreFatal = errorsAreFatal; 233 this.errorsAreFatal = errorsAreFatal;
180 } 234 }
181 handlePing(responsePort, pingType) { 235 handlePing(responsePort, pingType) {
182 if (dart.notNull(pingType === isolate.Isolate.IMMEDIATE) || dart.notNull(d art.notNull(pingType === isolate.Isolate.BEFORE_NEXT_EVENT) && dart.notNull(!dar t.notNull(this._isExecutingEvent)))) { 236 if (dart.notNull(pingType === isolate.Isolate.IMMEDIATE) || dart.notNull(d art.notNull(pingType === isolate.Isolate.BEFORE_NEXT_EVENT) && dart.notNull(!dar t.notNull(this[_isExecutingEvent])))) {
183 responsePort.send(null); 237 responsePort.send(null);
184 return; 238 return;
185 } 239 }
186 // Function respond: () → void 240 // Function respond: () → void
187 function respond() { 241 function respond() {
188 responsePort.send(null); 242 responsePort.send(null);
189 } 243 }
190 if (pingType === isolate.Isolate.AS_EVENT) { 244 if (pingType === isolate.Isolate.AS_EVENT) {
191 exports._globalState.topEventLoop.enqueue(this, respond, "ping"); 245 exports._globalState.topEventLoop.enqueue(this, respond, "ping");
192 return; 246 return;
193 } 247 }
194 dart.assert(pingType === isolate.Isolate.BEFORE_NEXT_EVENT); 248 dart.assert(pingType === isolate.Isolate.BEFORE_NEXT_EVENT);
195 if (this._scheduledControlEvents === null) { 249 if (this[_scheduledControlEvents] === null) {
196 this._scheduledControlEvents = new collection.Queue(); 250 this[_scheduledControlEvents] = new collection.Queue();
197 } 251 }
198 dart.dinvoke(this._scheduledControlEvents, 'addLast', respond); 252 dart.dinvoke(this[_scheduledControlEvents], 'addLast', respond);
199 } 253 }
200 handleKill(authentification, priority) { 254 handleKill(authentification, priority) {
201 if (!dart.equals(this.terminateCapability, authentification)) 255 if (!dart.equals(this.terminateCapability, authentification))
202 return; 256 return;
203 if (dart.notNull(priority === isolate.Isolate.IMMEDIATE) || dart.notNull(d art.notNull(priority === isolate.Isolate.BEFORE_NEXT_EVENT) && dart.notNull(!dar t.notNull(this._isExecutingEvent)))) { 257 if (dart.notNull(priority === isolate.Isolate.IMMEDIATE) || dart.notNull(d art.notNull(priority === isolate.Isolate.BEFORE_NEXT_EVENT) && dart.notNull(!dar t.notNull(this[_isExecutingEvent])))) {
204 this.kill(); 258 this.kill();
205 return; 259 return;
206 } 260 }
207 if (priority === isolate.Isolate.AS_EVENT) { 261 if (priority === isolate.Isolate.AS_EVENT) {
208 exports._globalState.topEventLoop.enqueue(this, this.kill, "kill"); 262 exports._globalState.topEventLoop.enqueue(this, this.kill, "kill");
209 return; 263 return;
210 } 264 }
211 dart.assert(priority === isolate.Isolate.BEFORE_NEXT_EVENT); 265 dart.assert(priority === isolate.Isolate.BEFORE_NEXT_EVENT);
212 if (this._scheduledControlEvents === null) { 266 if (this[_scheduledControlEvents] === null) {
213 this._scheduledControlEvents = new collection.Queue(); 267 this[_scheduledControlEvents] = new collection.Queue();
214 } 268 }
215 dart.dinvoke(this._scheduledControlEvents, 'addLast', this.kill); 269 dart.dinvoke(this[_scheduledControlEvents], 'addLast', this.kill);
216 } 270 }
217 addErrorListener(port) { 271 addErrorListener(port) {
218 this.errorPorts.add(port); 272 this.errorPorts.add(port);
219 } 273 }
220 removeErrorListener(port) { 274 removeErrorListener(port) {
221 this.errorPorts.remove(port); 275 this.errorPorts.remove(port);
222 } 276 }
223 handleUncaughtError(error, stackTrace) { 277 handleUncaughtError(error, stackTrace) {
224 if (this.errorPorts.isEmpty) { 278 if (this.errorPorts.isEmpty) {
225 if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(thi s, exports._globalState.rootContext))) { 279 if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(thi s, exports._globalState.rootContext))) {
(...skipping 12 matching lines...) Expand all
238 message.set(0, dart.dinvoke(error, 'toString')); 292 message.set(0, dart.dinvoke(error, 'toString'));
239 message.set(1, stackTrace === null ? null : stackTrace.toString()); 293 message.set(1, stackTrace === null ? null : stackTrace.toString());
240 for (let port of this.errorPorts) 294 for (let port of this.errorPorts)
241 port.send(message); 295 port.send(message);
242 } 296 }
243 eval(code) { 297 eval(code) {
244 let old = exports._globalState.currentContext; 298 let old = exports._globalState.currentContext;
245 exports._globalState.currentContext = this; 299 exports._globalState.currentContext = this;
246 this._setGlobals(); 300 this._setGlobals();
247 let result = null; 301 let result = null;
248 this._isExecutingEvent = true; 302 this[_isExecutingEvent] = true;
249 try { 303 try {
250 result = dart.dinvokef(code); 304 result = dart.dinvokef(code);
251 } catch (e) { 305 } catch (e) {
252 let s = dart.stackTrace(e); 306 let s = dart.stackTrace(e);
253 this.handleUncaughtError(e, s); 307 this.handleUncaughtError(e, s);
254 if (this.errorsAreFatal) { 308 if (this.errorsAreFatal) {
255 this.kill(); 309 this.kill();
256 if (core.identical(this, exports._globalState.rootContext)) { 310 if (core.identical(this, exports._globalState.rootContext)) {
257 throw e; 311 throw e;
258 } 312 }
259 } 313 }
260 } 314 }
261 finally { 315 finally {
316 <<<<<<< HEAD
vsm 2015/03/02 21:17:01 ditto ... and a few more below
317 this[_isExecutingEvent] = false;
318 _isolate_helper._globalState.currentContext = old;
319 =======
262 this._isExecutingEvent = false; 320 this._isExecutingEvent = false;
263 exports._globalState.currentContext = old; 321 exports._globalState.currentContext = old;
322 >>>>>>> origin/master
264 if (old !== null) 323 if (old !== null)
265 old._setGlobals(); 324 old._setGlobals();
266 if (this._scheduledControlEvents !== null) { 325 if (this[_scheduledControlEvents] !== null) {
267 while (dart.dload(this._scheduledControlEvents, 'isNotEmpty')) { 326 while (dart.dload(this[_scheduledControlEvents], 'isNotEmpty')) {
268 dart.dinvokef(dart.dinvoke(this._scheduledControlEvents, 'removeFirs t')); 327 dart.dinvokef(dart.dinvoke(this[_scheduledControlEvents], 'removeFir st'));
269 } 328 }
270 } 329 }
271 } 330 }
272 return result; 331 return result;
273 } 332 }
274 _setGlobals() { 333 [_setGlobals]() {
275 _foreign_helper.JS_SET_CURRENT_ISOLATE(this.isolateStatics); 334 _foreign_helper.JS_SET_CURRENT_ISOLATE(this.isolateStatics);
276 } 335 }
277 handleControlMessage(message) { 336 handleControlMessage(message) {
278 switch (dart.dindex(message, 0)) { 337 switch (dart.dindex(message, 0)) {
279 case "pause": 338 case "pause":
280 this.addPause(dart.as(dart.dindex(message, 1), isolate.Capability), da rt.as(dart.dindex(message, 2), isolate.Capability)); 339 this.addPause(dart.as(dart.dindex(message, 1), isolate.Capability), da rt.as(dart.dindex(message, 2), isolate.Capability));
281 break; 340 break;
282 case "resume": 341 case "resume":
283 this.removePause(dart.as(dart.dindex(message, 1), isolate.Capability)) ; 342 this.removePause(dart.as(dart.dindex(message, 1), isolate.Capability)) ;
284 break; 343 break;
(...skipping 17 matching lines...) Expand all
302 break; 361 break;
303 case "stopErrors": 362 case "stopErrors":
304 this.removeErrorListener(dart.as(dart.dindex(message, 1), isolate.Send Port)); 363 this.removeErrorListener(dart.as(dart.dindex(message, 1), isolate.Send Port));
305 break; 364 break;
306 default: 365 default:
307 } 366 }
308 } 367 }
309 lookup(portId) { 368 lookup(portId) {
310 return this.ports.get(portId); 369 return this.ports.get(portId);
311 } 370 }
312 _addRegistration(portId, port) { 371 [_addRegistration](portId, port) {
313 if (this.ports.containsKey(portId)) { 372 if (this.ports.containsKey(portId)) {
314 throw new core.Exception("Registry: ports must be registered only once." ); 373 throw new core.Exception("Registry: ports must be registered only once." );
315 } 374 }
316 this.ports.set(portId, port); 375 this.ports.set(portId, port);
317 } 376 }
318 register(portId, port) { 377 register(portId, port) {
319 this._addRegistration(portId, port); 378 this[_addRegistration](portId, port);
320 this._updateGlobalState(); 379 this[_updateGlobalState]();
321 } 380 }
322 registerWeak(portId, port) { 381 registerWeak(portId, port) {
323 this.weakPorts.add(portId); 382 this.weakPorts.add(portId);
324 this._addRegistration(portId, port); 383 this[_addRegistration](portId, port);
325 } 384 }
326 _updateGlobalState() { 385 [_updateGlobalState]() {
327 if (dart.notNull(dart.notNull(this.ports.length - this.weakPorts.length > 0) || dart.notNull(this.isPaused)) || dart.notNull(!dart.notNull(this.initialize d))) { 386 if (dart.notNull(dart.notNull(this.ports.length - this.weakPorts.length > 0) || dart.notNull(this.isPaused)) || dart.notNull(!dart.notNull(this.initialize d))) {
328 exports._globalState.isolates.set(this.id, this); 387 exports._globalState.isolates.set(this.id, this);
329 } else { 388 } else {
330 this.kill(); 389 this.kill();
331 } 390 }
332 } 391 }
333 kill() { 392 kill() {
334 if (this._scheduledControlEvents !== null) { 393 if (this[_scheduledControlEvents] !== null) {
335 dart.dinvoke(this._scheduledControlEvents, 'clear'); 394 dart.dinvoke(this[_scheduledControlEvents], 'clear');
336 } 395 }
337 for (let port of this.ports.values) { 396 for (let port of this.ports.values) {
338 dart.dinvoke(port, '_close'); 397 dart.dinvoke(port, '_close');
339 } 398 }
340 this.ports.clear(); 399 this.ports.clear();
341 this.weakPorts.clear(); 400 this.weakPorts.clear();
342 exports._globalState.isolates.remove(this.id); 401 exports._globalState.isolates.remove(this.id);
343 this.errorPorts.clear(); 402 this.errorPorts.clear();
344 if (this.doneHandlers !== null) { 403 if (this.doneHandlers !== null) {
345 for (let port of this.doneHandlers) { 404 for (let port of this.doneHandlers) {
346 port.send(null); 405 port.send(null);
347 } 406 }
348 this.doneHandlers = null; 407 this.doneHandlers = null;
349 } 408 }
350 } 409 }
351 unregister(portId) { 410 unregister(portId) {
352 this.ports.remove(portId); 411 this.ports.remove(portId);
353 this.weakPorts.remove(portId); 412 this.weakPorts.remove(portId);
354 this._updateGlobalState(); 413 this[_updateGlobalState]();
355 } 414 }
356 } 415 }
357 class _EventLoop extends dart.Object { 416 class _EventLoop extends dart.Object {
358 _EventLoop() { 417 _EventLoop() {
359 this.events = new collection.Queue(); 418 this.events = new collection.Queue();
360 this._activeJsAsyncCount = 0; 419 this[_activeJsAsyncCount] = 0;
361 } 420 }
362 enqueue(isolate, fn, msg) { 421 enqueue(isolate, fn, msg) {
363 this.events.addLast(new _IsolateEvent(dart.as(isolate, _IsolateContext), d art.as(fn, core.Function), dart.as(msg, core.String))); 422 this.events.addLast(new _IsolateEvent(dart.as(isolate, _IsolateContext), d art.as(fn, core.Function), dart.as(msg, core.String)));
364 } 423 }
365 prequeue(event) { 424 prequeue(event) {
366 this.events.addFirst(event); 425 this.events.addFirst(event);
367 } 426 }
368 dequeue() { 427 dequeue() {
369 if (this.events.isEmpty) 428 if (this.events.isEmpty)
370 return null; 429 return null;
371 return this.events.removeFirst(); 430 return this.events.removeFirst();
372 } 431 }
373 checkOpenReceivePortsFromCommandLine() { 432 checkOpenReceivePortsFromCommandLine() {
374 if (dart.notNull(dart.notNull(dart.notNull(exports._globalState.rootContex t !== null) && dart.notNull(exports._globalState.isolates.containsKey(exports._g lobalState.rootContext.id))) && dart.notNull(exports._globalState.fromCommandLin e)) && dart.notNull(exports._globalState.rootContext.ports.isEmpty)) { 433 if (dart.notNull(dart.notNull(dart.notNull(exports._globalState.rootContex t !== null) && dart.notNull(exports._globalState.isolates.containsKey(exports._g lobalState.rootContext.id))) && dart.notNull(exports._globalState.fromCommandLin e)) && dart.notNull(exports._globalState.rootContext.ports.isEmpty)) {
375 throw new core.Exception("Program exited with open ReceivePorts."); 434 throw new core.Exception("Program exited with open ReceivePorts.");
376 } 435 }
377 } 436 }
378 runIteration() { 437 runIteration() {
379 let event = this.dequeue(); 438 let event = this.dequeue();
380 if (event === null) { 439 if (event === null) {
381 this.checkOpenReceivePortsFromCommandLine(); 440 this.checkOpenReceivePortsFromCommandLine();
382 exports._globalState.maybeCloseWorker(); 441 exports._globalState.maybeCloseWorker();
383 return false; 442 return false;
384 } 443 }
385 event.process(); 444 event.process();
386 return true; 445 return true;
387 } 446 }
447 <<<<<<< HEAD
448 [_runHelper]() {
449 if (_isolate_helper.globalWindow !== null) {
450 =======
388 _runHelper() { 451 _runHelper() {
389 if (exports.globalWindow !== null) { 452 if (exports.globalWindow !== null) {
453 >>>>>>> origin/master
390 // Function next: () → void 454 // Function next: () → void
391 function next() { 455 function next() {
392 if (!dart.notNull(this.runIteration())) 456 if (!dart.notNull(this.runIteration()))
393 return; 457 return;
394 async.Timer.run(next); 458 async.Timer.run(next);
395 } 459 }
396 next(); 460 next();
397 } else { 461 } else {
398 while (this.runIteration()) { 462 while (this.runIteration()) {
399 } 463 }
400 } 464 }
401 } 465 }
402 run() { 466 run() {
467 <<<<<<< HEAD
468 if (!dart.notNull(_isolate_helper._globalState.isWorker)) {
469 this[_runHelper]();
470 =======
403 if (!dart.notNull(exports._globalState.isWorker)) { 471 if (!dart.notNull(exports._globalState.isWorker)) {
404 this._runHelper(); 472 this._runHelper();
473 >>>>>>> origin/master
405 } else { 474 } else {
406 try { 475 try {
407 this._runHelper(); 476 this[_runHelper]();
408 } catch (e) { 477 } catch (e) {
409 let trace = dart.stackTrace(e); 478 let trace = dart.stackTrace(e);
410 exports._globalState.mainManager.postMessage(_serializeMessage(dart.ma p({command: 'error', msg: `${e}\n${trace}`}))); 479 exports._globalState.mainManager.postMessage(_serializeMessage(dart.ma p({command: 'error', msg: `${e}\n${trace}`})));
411 } 480 }
412 481
413 } 482 }
414 } 483 }
415 } 484 }
416 class _IsolateEvent extends dart.Object { 485 class _IsolateEvent extends dart.Object {
417 _IsolateEvent(isolate, fn, message) { 486 _IsolateEvent(isolate, fn, message) {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 pattern = new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", "m"); 556 pattern = new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", "m");
488 matches = stack.match(pattern); 557 matches = stack.match(pattern);
489 if (matches !== null) 558 if (matches !== null)
490 return matches[1]; 559 return matches[1];
491 pattern = new RegExp("^[^@]*@(.*):[0-9]*$", "m"); 560 pattern = new RegExp("^[^@]*@(.*):[0-9]*$", "m");
492 matches = stack.match(pattern); 561 matches = stack.match(pattern);
493 if (matches !== null) 562 if (matches !== null)
494 return matches[1]; 563 return matches[1];
495 throw new core.UnsupportedError(`Cannot extract URI from "${stack}"`); 564 throw new core.UnsupportedError(`Cannot extract URI from "${stack}"`);
496 } 565 }
497 static _getEventData(e) { 566 static [_getEventData](e) {
498 return e.data; 567 return e.data;
499 } 568 }
500 static _processWorkerMessage(sender, e) { 569 static [_processWorkerMessage](sender, e) {
501 let msg = _deserializeMessage(_getEventData(e)); 570 let msg = _deserializeMessage(_getEventData(e));
502 switch (dart.dindex(msg, 'command')) { 571 switch (dart.dindex(msg, 'command')) {
503 case 'start': 572 case 'start':
504 exports._globalState.currentManagerId = dart.as(dart.dindex(msg, 'id') , core.int); 573 exports._globalState.currentManagerId = dart.as(dart.dindex(msg, 'id') , core.int);
505 let functionName = dart.as(dart.dindex(msg, 'functionName'), core.Stri ng); 574 let functionName = dart.as(dart.dindex(msg, 'functionName'), core.Stri ng);
506 let entryPoint = dart.as(functionName === null ? exports._globalState. entry : _getJSFunctionFromName(functionName), core.Function); 575 let entryPoint = dart.as(functionName === null ? exports._globalState. entry : _getJSFunctionFromName(functionName), core.Function);
507 let args = dart.dindex(msg, 'args'); 576 let args = dart.dindex(msg, 'args');
508 let message = _deserializeMessage(dart.dindex(msg, 'msg')); 577 let message = _deserializeMessage(dart.dindex(msg, 'msg'));
509 let isSpawnUri = dart.dindex(msg, 'isSpawnUri'); 578 let isSpawnUri = dart.dindex(msg, 'isSpawnUri');
510 let startPaused = dart.dindex(msg, 'startPaused'); 579 let startPaused = dart.dindex(msg, 'startPaused');
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 static handleSpawnWorkerRequest(msg) { 618 static handleSpawnWorkerRequest(msg) {
550 let replyPort = dart.dindex(msg, 'replyPort'); 619 let replyPort = dart.dindex(msg, 'replyPort');
551 spawn(dart.as(dart.dindex(msg, 'functionName'), core.String), dart.as(dart .dindex(msg, 'uri'), core.String), dart.as(dart.dindex(msg, 'args'), core.List$( core.String)), dart.dindex(msg, 'msg'), false, dart.as(dart.dindex(msg, 'isSpawn Uri'), core.bool), dart.as(dart.dindex(msg, 'startPaused'), core.bool)).then((ms g) => { 620 spawn(dart.as(dart.dindex(msg, 'functionName'), core.String), dart.as(dart .dindex(msg, 'uri'), core.String), dart.as(dart.dindex(msg, 'args'), core.List$( core.String)), dart.dindex(msg, 'msg'), false, dart.as(dart.dindex(msg, 'isSpawn Uri'), core.bool), dart.as(dart.dindex(msg, 'startPaused'), core.bool)).then((ms g) => {
552 dart.dinvoke(replyPort, 'send', msg); 621 dart.dinvoke(replyPort, 'send', msg);
553 }, { 622 }, {
554 onError: (errorMessage) => { 623 onError: (errorMessage) => {
555 dart.dinvoke(replyPort, 'send', new List.from([_SPAWN_FAILED_SIGNAL, e rrorMessage])); 624 dart.dinvoke(replyPort, 'send', new List.from([_SPAWN_FAILED_SIGNAL, e rrorMessage]));
556 } 625 }
557 }); 626 });
558 } 627 }
628 <<<<<<< HEAD
629 static [_log](msg) {
630 if (_isolate_helper._globalState.isWorker) {
631 _isolate_helper._globalState.mainManager.postMessage(_serializeMessage(d art.map({command: 'log', msg: msg})));
632 =======
559 static _log(msg) { 633 static _log(msg) {
560 if (exports._globalState.isWorker) { 634 if (exports._globalState.isWorker) {
561 exports._globalState.mainManager.postMessage(_serializeMessage(dart.map( {command: 'log', msg: msg}))); 635 exports._globalState.mainManager.postMessage(_serializeMessage(dart.map( {command: 'log', msg: msg})));
636 >>>>>>> origin/master
562 } else { 637 } else {
563 try { 638 try {
564 _consoleLog(msg); 639 _consoleLog(msg);
565 } catch (e) { 640 } catch (e) {
566 let trace = dart.stackTrace(e); 641 let trace = dart.stackTrace(e);
567 throw new core.Exception(trace); 642 throw new core.Exception(trace);
568 } 643 }
569 644
570 } 645 }
571 } 646 }
572 static _consoleLog(msg) { 647 static [_consoleLog](msg) {
573 _js_helper.requiresPreamble(); 648 _js_helper.requiresPreamble();
574 self.console.log(msg); 649 self.console.log(msg);
575 } 650 }
576 static _getJSFunctionFromName(functionName) { 651 static [_getJSFunctionFromName](functionName) {
577 let globalFunctionsContainer = _foreign_helper.JS_EMBEDDED_GLOBAL("", dart .as(_js_embedded_names.GLOBAL_FUNCTIONS, core.String)); 652 let globalFunctionsContainer = _foreign_helper.JS_EMBEDDED_GLOBAL("", dart .as(_js_embedded_names.GLOBAL_FUNCTIONS, core.String));
578 return globalFunctionsContainer[functionName](); 653 return globalFunctionsContainer[functionName]();
579 } 654 }
580 static _getJSFunctionName(f) { 655 static [_getJSFunctionName](f) {
581 return dart.as(dart.is(f, _js_helper.Closure) ? f.$name : null, core.Strin g); 656 return dart.as(dart.is(f, _js_helper.Closure) ? f.$name : null, core.Strin g);
582 } 657 }
583 static _allocate(ctor) { 658 static [_allocate](ctor) {
584 return new ctor(); 659 return new ctor();
585 } 660 }
586 static spawnFunction(topLevelFunction, message, startPaused) { 661 static spawnFunction(topLevelFunction, message, startPaused) {
587 IsolateNatives.enableSpawnWorker = true; 662 IsolateNatives.enableSpawnWorker = true;
588 let name = _getJSFunctionName(topLevelFunction); 663 let name = _getJSFunctionName(topLevelFunction);
589 if (name === null) { 664 if (name === null) {
590 throw new core.UnsupportedError("only top-level functions can be spawned ."); 665 throw new core.UnsupportedError("only top-level functions can be spawned .");
591 } 666 }
592 let isLight = false; 667 let isLight = false;
593 let isSpawnUri = false; 668 let isSpawnUri = false;
(...skipping 19 matching lines...) Expand all
613 } 688 }
614 }).bind(this)); 689 }).bind(this));
615 let signalReply = port.sendPort; 690 let signalReply = port.sendPort;
616 if (dart.notNull(exports._globalState.useWorkers) && dart.notNull(!dart.no tNull(isLight))) { 691 if (dart.notNull(exports._globalState.useWorkers) && dart.notNull(!dart.no tNull(isLight))) {
617 _startWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply, ((message) => completer.completeError(message)).bind(this)); 692 _startWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply, ((message) => completer.completeError(message)).bind(this));
618 } else { 693 } else {
619 _startNonWorker(functionName, uri, args, message, isSpawnUri, startPause d, signalReply); 694 _startNonWorker(functionName, uri, args, message, isSpawnUri, startPause d, signalReply);
620 } 695 }
621 return completer.future; 696 return completer.future;
622 } 697 }
623 static _startWorker(functionName, uri, args, message, isSpawnUri, startPause d, replyPort, onError) { 698 static [_startWorker](functionName, uri, args, message, isSpawnUri, startPau sed, replyPort, onError) {
624 if (args !== null) 699 if (args !== null)
625 args = new core.List.from(args); 700 args = new core.List.from(args);
626 if (exports._globalState.isWorker) { 701 if (exports._globalState.isWorker) {
627 exports._globalState.mainManager.postMessage(_serializeMessage(dart.map( {command: 'spawn-worker', functionName: functionName, args: args, msg: message, uri: uri, isSpawnUri: isSpawnUri, startPaused: startPaused, replyPort: replyPort }))); 702 exports._globalState.mainManager.postMessage(_serializeMessage(dart.map( {command: 'spawn-worker', functionName: functionName, args: args, msg: message, uri: uri, isSpawnUri: isSpawnUri, startPaused: startPaused, replyPort: replyPort })));
628 } else { 703 } else {
629 _spawnWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort, onError); 704 _spawnWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort, onError);
630 } 705 }
631 } 706 }
632 static _startNonWorker(functionName, uri, args, message, isSpawnUri, startPa used, replyPort) { 707 static [_startNonWorker](functionName, uri, args, message, isSpawnUri, start Paused, replyPort) {
633 if (uri !== null) { 708 if (uri !== null) {
634 throw new core.UnsupportedError("Currently spawnUri is not supported wit hout web workers."); 709 throw new core.UnsupportedError("Currently spawnUri is not supported wit hout web workers.");
635 } 710 }
636 message = _clone(message); 711 message = _clone(message);
637 if (args !== null) 712 if (args !== null)
638 args = new core.List.from(args); 713 args = new core.List.from(args);
639 exports._globalState.topEventLoop.enqueue(new _IsolateContext(), () => { 714 exports._globalState.topEventLoop.enqueue(new _IsolateContext(), () => {
640 let func = _getJSFunctionFromName(functionName); 715 let func = _getJSFunctionFromName(functionName);
641 _startIsolate(dart.as(func, core.Function), args, message, isSpawnUri, s tartPaused, replyPort); 716 _startIsolate(dart.as(func, core.Function), args, message, isSpawnUri, s tartPaused, replyPort);
642 }, 'nonworker start'); 717 }, 'nonworker start');
643 } 718 }
644 static get currentIsolate() { 719 static get currentIsolate() {
645 let context = dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _Isola teContext); 720 let context = dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _Isola teContext);
646 return new isolate.Isolate(context.controlPort.sendPort, {pauseCapability: context.pauseCapability, terminateCapability: context.terminateCapability}); 721 return new isolate.Isolate(context.controlPort.sendPort, {pauseCapability: context.pauseCapability, terminateCapability: context.terminateCapability});
647 } 722 }
648 static _startIsolate(topLevel, args, message, isSpawnUri, startPaused, reply To) { 723 static [_startIsolate](topLevel, args, message, isSpawnUri, startPaused, rep lyTo) {
649 let context = dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _Isola teContext); 724 let context = dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _Isola teContext);
650 _js_helper.Primitives.initializeStatics(context.id); 725 _js_helper.Primitives.initializeStatics(context.id);
651 replyTo.send(new List.from([_SPAWNED_SIGNAL, context.controlPort.sendPort, context.pauseCapability, context.terminateCapability])); 726 replyTo.send(new List.from([_SPAWNED_SIGNAL, context.controlPort.sendPort, context.pauseCapability, context.terminateCapability]));
652 // Function runStartFunction: () → void 727 // Function runStartFunction: () → void
653 function runStartFunction() { 728 function runStartFunction() {
654 context.initialized = true; 729 context.initialized = true;
655 if (!dart.notNull(isSpawnUri)) { 730 if (!dart.notNull(isSpawnUri)) {
656 dart.dinvokef(topLevel, message); 731 dart.dinvokef(topLevel, message);
657 } else if (dart.is(topLevel, _MainFunctionArgsMessage)) { 732 } else if (dart.is(topLevel, _MainFunctionArgsMessage)) {
658 dart.dinvokef(topLevel, args, message); 733 dart.dinvokef(topLevel, args, message);
659 } else if (dart.is(topLevel, _MainFunctionArgs)) { 734 } else if (dart.is(topLevel, _MainFunctionArgs)) {
660 dart.dinvokef(topLevel, args); 735 dart.dinvokef(topLevel, args);
661 } else { 736 } else {
662 dart.dinvokef(topLevel); 737 dart.dinvokef(topLevel);
663 } 738 }
664 } 739 }
665 if (startPaused) { 740 if (startPaused) {
666 context.addPause(context.pauseCapability, context.pauseCapability); 741 context.addPause(context.pauseCapability, context.pauseCapability);
667 exports._globalState.topEventLoop.enqueue(context, runStartFunction, 'st art isolate'); 742 exports._globalState.topEventLoop.enqueue(context, runStartFunction, 'st art isolate');
668 } else { 743 } else {
669 runStartFunction(); 744 runStartFunction();
670 } 745 }
671 } 746 }
672 static _spawnWorker(functionName, uri, args, message, isSpawnUri, startPause d, replyPort, onError) { 747 static [_spawnWorker](functionName, uri, args, message, isSpawnUri, startPau sed, replyPort, onError) {
673 if (uri === null) 748 if (uri === null)
674 uri = thisScript; 749 uri = thisScript;
675 let worker = new Worker(uri); 750 let worker = new Worker(uri);
676 let onerrorTrampoline = function(f, u, c) { 751 let onerrorTrampoline = function(f, u, c) {
677 return function(e) { 752 return function(e) {
678 return f(e, u, c); 753 return f(e, u, c);
679 }; 754 };
680 }(_foreign_helper.DART_CLOSURE_TO_JS(workerOnError), uri, onError); 755 }(_foreign_helper.DART_CLOSURE_TO_JS(workerOnError), uri, onError);
681 worker.onerror = onerrorTrampoline; 756 worker.onerror = onerrorTrampoline;
682 let processWorkerMessageTrampoline = function(f, a) { 757 let processWorkerMessageTrampoline = function(f, a) {
(...skipping 24 matching lines...) Expand all
707 dart.defineLazyProperties(IsolateNatives, { 782 dart.defineLazyProperties(IsolateNatives, {
708 get thisScript() { 783 get thisScript() {
709 return computeThisScript(); 784 return computeThisScript();
710 }, 785 },
711 set thisScript() {}, 786 set thisScript() {},
712 get workerIds() { 787 get workerIds() {
713 return new core.Expando(); 788 return new core.Expando();
714 } 789 }
715 }); 790 });
716 class _BaseSendPort extends dart.Object { 791 class _BaseSendPort extends dart.Object {
717 _BaseSendPort(_isolateId) { 792 _BaseSendPort($_isolateId) {
718 this._isolateId = _isolateId; 793 this[_isolateId] = $_isolateId;
719 } 794 }
720 _checkReplyTo(replyTo) { 795 [_checkReplyTo](replyTo) {
721 if (dart.notNull(dart.notNull(replyTo !== null) && dart.notNull(!dart.is(r eplyTo, _NativeJsSendPort))) && dart.notNull(!dart.is(replyTo, _WorkerSendPort)) ) { 796 if (dart.notNull(dart.notNull(replyTo !== null) && dart.notNull(!dart.is(r eplyTo, _NativeJsSendPort))) && dart.notNull(!dart.is(replyTo, _WorkerSendPort)) ) {
722 throw new core.Exception("SendPort.send: Illegal replyTo port type"); 797 throw new core.Exception("SendPort.send: Illegal replyTo port type");
723 } 798 }
724 } 799 }
725 } 800 }
726 class _NativeJsSendPort extends _BaseSendPort { 801 class _NativeJsSendPort extends _BaseSendPort {
727 _NativeJsSendPort(_receivePort, isolateId) { 802 _NativeJsSendPort($_receivePort, isolateId) {
728 this._receivePort = _receivePort; 803 this[_receivePort] = $_receivePort;
729 super._BaseSendPort(isolateId); 804 super._BaseSendPort(isolateId);
730 } 805 }
731 send(message) { 806 send(message) {
807 <<<<<<< HEAD
808 let isolate = _isolate_helper._globalState.isolates.get(this[_isolateId]);
809 =======
732 let isolate = exports._globalState.isolates.get(this._isolateId); 810 let isolate = exports._globalState.isolates.get(this._isolateId);
811 >>>>>>> origin/master
733 if (isolate === null) 812 if (isolate === null)
734 return; 813 return;
735 if (this._receivePort._isClosed) 814 if (this[_receivePort][_isClosed])
736 return; 815 return;
737 let msg = _clone(message); 816 let msg = _clone(message);
738 if (dart.equals(isolate.controlPort, this._receivePort)) { 817 if (dart.equals(isolate.controlPort, this[_receivePort])) {
739 isolate.handleControlMessage(msg); 818 isolate.handleControlMessage(msg);
740 return; 819 return;
741 } 820 }
821 <<<<<<< HEAD
822 _isolate_helper._globalState.topEventLoop.enqueue(isolate, (() => {
823 if (!dart.notNull(this[_receivePort][_isClosed])) {
824 this[_receivePort]._add(msg);
825 =======
742 exports._globalState.topEventLoop.enqueue(isolate, (() => { 826 exports._globalState.topEventLoop.enqueue(isolate, (() => {
743 if (!dart.notNull(this._receivePort._isClosed)) { 827 if (!dart.notNull(this._receivePort._isClosed)) {
744 this._receivePort._add(msg); 828 this._receivePort._add(msg);
829 >>>>>>> origin/master
745 } 830 }
746 }).bind(this), `receive ${message}`); 831 }).bind(this), `receive ${message}`);
747 } 832 }
748 ['=='](other) { 833 ['=='](other) {
749 return dart.notNull(dart.is(other, _NativeJsSendPort)) && dart.notNull(dar t.equals(this._receivePort, dart.dload(other, '_receivePort'))); 834 return dart.notNull(dart.is(other, _NativeJsSendPort)) && dart.notNull(dar t.equals(this[_receivePort], dart.dload(other, '_receivePort')));
750 } 835 }
751 get hashCode() { 836 get hashCode() {
752 return this._receivePort._id; 837 return this[_receivePort][_id];
753 } 838 }
754 } 839 }
755 class _WorkerSendPort extends _BaseSendPort { 840 class _WorkerSendPort extends _BaseSendPort {
756 _WorkerSendPort(_workerId, isolateId, _receivePortId) { 841 _WorkerSendPort($_workerId, isolateId, $_receivePortId) {
757 this._workerId = _workerId; 842 this[_workerId] = $_workerId;
758 this._receivePortId = _receivePortId; 843 this[_receivePortId] = $_receivePortId;
759 super._BaseSendPort(isolateId); 844 super._BaseSendPort(isolateId);
760 } 845 }
761 send(message) { 846 send(message) {
762 let workerMessage = _serializeMessage(dart.map({command: 'message', port: this, msg: message})); 847 let workerMessage = _serializeMessage(dart.map({command: 'message', port: this, msg: message}));
763 if (exports._globalState.isWorker) { 848 if (exports._globalState.isWorker) {
764 exports._globalState.mainManager.postMessage(workerMessage); 849 exports._globalState.mainManager.postMessage(workerMessage);
765 } else { 850 } else {
851 <<<<<<< HEAD
852 let manager = _isolate_helper._globalState.managers.get(this[_workerId]) ;
853 =======
766 let manager = exports._globalState.managers.get(this._workerId); 854 let manager = exports._globalState.managers.get(this._workerId);
855 >>>>>>> origin/master
767 if (manager !== null) { 856 if (manager !== null) {
768 manager.postMessage(workerMessage); 857 manager.postMessage(workerMessage);
769 } 858 }
770 } 859 }
771 } 860 }
772 ['=='](other) { 861 ['=='](other) {
773 return dart.notNull(dart.notNull(dart.notNull(dart.is(other, _WorkerSendPo rt)) && dart.notNull(this._workerId === dart.dload(other, '_workerId'))) && dart .notNull(this._isolateId === dart.dload(other, '_isolateId'))) && dart.notNull(t his._receivePortId === dart.dload(other, '_receivePortId')); 862 return dart.notNull(dart.notNull(dart.notNull(dart.is(other, _WorkerSendPo rt)) && dart.notNull(this[_workerId] === dart.dload(other, '_workerId'))) && dar t.notNull(this[_isolateId] === dart.dload(other, '_isolateId'))) && dart.notNull (this[_receivePortId] === dart.dload(other, '_receivePortId'));
774 } 863 }
775 get hashCode() { 864 get hashCode() {
776 return this._workerId << 16 ^ this._isolateId << 8 ^ this._receivePortId; 865 return this[_workerId] << 16 ^ this[_isolateId] << 8 ^ this[_receivePortId ];
777 } 866 }
778 } 867 }
779 class RawReceivePortImpl extends dart.Object { 868 class RawReceivePortImpl extends dart.Object {
869 <<<<<<< HEAD
870 RawReceivePortImpl($_handler) {
871 this[_handler] = $_handler;
872 this[_id] = _nextFreeId++;
873 this[_isClosed] = false;
874 _isolate_helper._globalState.currentContext.register(this[_id], this);
875 }
876 RawReceivePortImpl$weak($_handler) {
877 this[_handler] = $_handler;
878 this[_id] = _nextFreeId++;
879 this[_isClosed] = false;
880 _isolate_helper._globalState.currentContext.registerWeak(this[_id], this);
881 =======
780 RawReceivePortImpl(_handler) { 882 RawReceivePortImpl(_handler) {
781 this._handler = _handler; 883 this._handler = _handler;
782 this._id = _nextFreeId++; 884 this._id = _nextFreeId++;
783 this._isClosed = false; 885 this._isClosed = false;
784 exports._globalState.currentContext.register(this._id, this); 886 exports._globalState.currentContext.register(this._id, this);
785 } 887 }
786 RawReceivePortImpl$weak(_handler) { 888 RawReceivePortImpl$weak(_handler) {
787 this._handler = _handler; 889 this._handler = _handler;
788 this._id = _nextFreeId++; 890 this._id = _nextFreeId++;
789 this._isClosed = false; 891 this._isClosed = false;
790 exports._globalState.currentContext.registerWeak(this._id, this); 892 exports._globalState.currentContext.registerWeak(this._id, this);
893 >>>>>>> origin/master
791 } 894 }
792 RawReceivePortImpl$_controlPort() { 895 RawReceivePortImpl$_controlPort() {
793 this._handler = null; 896 this[_handler] = null;
794 this._id = 0; 897 this[_id] = 0;
795 this._isClosed = false; 898 this[_isClosed] = false;
796 } 899 }
797 set handler(newHandler) { 900 set handler(newHandler) {
798 this._handler = newHandler; 901 this[_handler] = newHandler;
799 } 902 }
800 _close() { 903 [_close]() {
801 this._isClosed = true; 904 this[_isClosed] = true;
802 this._handler = null; 905 this[_handler] = null;
803 } 906 }
804 close() { 907 close() {
805 if (this._isClosed) 908 if (this[_isClosed])
806 return; 909 return;
910 <<<<<<< HEAD
911 this[_isClosed] = true;
912 this[_handler] = null;
913 _isolate_helper._globalState.currentContext.unregister(this[_id]);
914 =======
807 this._isClosed = true; 915 this._isClosed = true;
808 this._handler = null; 916 this._handler = null;
809 exports._globalState.currentContext.unregister(this._id); 917 exports._globalState.currentContext.unregister(this._id);
918 >>>>>>> origin/master
810 } 919 }
811 _add(dataEvent) { 920 [_add](dataEvent) {
812 if (this._isClosed) 921 if (this[_isClosed])
813 return; 922 return;
814 dart.dinvokef(this._handler, dataEvent); 923 dart.dinvokef(this[_handler], dataEvent);
815 } 924 }
816 get sendPort() { 925 get sendPort() {
817 return new _NativeJsSendPort(this, exports._globalState.currentContext.id) ; 926 return new _NativeJsSendPort(this, exports._globalState.currentContext.id) ;
818 } 927 }
819 } 928 }
820 dart.defineNamedConstructor(RawReceivePortImpl, 'weak'); 929 dart.defineNamedConstructor(RawReceivePortImpl, 'weak');
821 dart.defineNamedConstructor(RawReceivePortImpl, '_controlPort'); 930 dart.defineNamedConstructor(RawReceivePortImpl, '_controlPort');
822 RawReceivePortImpl._nextFreeId = 1; 931 RawReceivePortImpl._nextFreeId = 1;
823 class ReceivePortImpl extends async.Stream { 932 class ReceivePortImpl extends async.Stream {
824 ReceivePortImpl() { 933 ReceivePortImpl() {
825 this.ReceivePortImpl$fromRawReceivePort(new RawReceivePortImpl(null)); 934 this.ReceivePortImpl$fromRawReceivePort(new RawReceivePortImpl(null));
826 } 935 }
827 ReceivePortImpl$weak() { 936 ReceivePortImpl$weak() {
828 this.ReceivePortImpl$fromRawReceivePort(new RawReceivePortImpl.weak(null)) ; 937 this.ReceivePortImpl$fromRawReceivePort(new RawReceivePortImpl.weak(null)) ;
829 } 938 }
830 ReceivePortImpl$fromRawReceivePort(_rawPort) { 939 ReceivePortImpl$fromRawReceivePort($_rawPort) {
831 this._rawPort = _rawPort; 940 this[_rawPort] = $_rawPort;
832 this._controller = null; 941 this[_controller] = null;
833 super.Stream(); 942 super.Stream();
834 this._controller = new async.StreamController({onCancel: this.close, sync: true}); 943 this[_controller] = new async.StreamController({onCancel: this.close, sync : true});
835 this._rawPort.handler = this._controller.add; 944 this[_rawPort].handler = this[_controller].add;
836 } 945 }
837 listen(onData, opt$) { 946 listen(onData, opt$) {
838 let onError = opt$.onError === void 0 ? null : opt$.onError; 947 let onError = opt$.onError === void 0 ? null : opt$.onError;
839 let onDone = opt$.onDone === void 0 ? null : opt$.onDone; 948 let onDone = opt$.onDone === void 0 ? null : opt$.onDone;
840 let cancelOnError = opt$.cancelOnError === void 0 ? null : opt$.cancelOnEr ror; 949 let cancelOnError = opt$.cancelOnError === void 0 ? null : opt$.cancelOnEr ror;
841 return this._controller.stream.listen(onData, {onError: onError, onDone: o nDone, cancelOnError: cancelOnError}); 950 return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
842 } 951 }
843 close() { 952 close() {
844 this._rawPort.close(); 953 this[_rawPort].close();
845 this._controller.close(); 954 this[_controller].close();
846 } 955 }
847 get sendPort() { 956 get sendPort() {
848 return this._rawPort.sendPort; 957 return this[_rawPort].sendPort;
849 } 958 }
850 } 959 }
851 dart.defineNamedConstructor(ReceivePortImpl, 'weak'); 960 dart.defineNamedConstructor(ReceivePortImpl, 'weak');
852 dart.defineNamedConstructor(ReceivePortImpl, 'fromRawReceivePort'); 961 dart.defineNamedConstructor(ReceivePortImpl, 'fromRawReceivePort');
853 class TimerImpl extends dart.Object { 962 class TimerImpl extends dart.Object {
854 TimerImpl(milliseconds, callback) { 963 TimerImpl(milliseconds, callback) {
964 <<<<<<< HEAD
965 this[_once] = true;
966 this[_inEventLoop] = false;
967 this[_handle] = dart.as(null, core.int);
968 if (dart.notNull(milliseconds === 0) && dart.notNull(dart.notNull(!dart.no tNull(hasTimer())) || dart.notNull(_isolate_helper._globalState.isWorker))) {
969 =======
855 this._once = true; 970 this._once = true;
856 this._inEventLoop = false; 971 this._inEventLoop = false;
857 this._handle = dart.as(null, core.int); 972 this._handle = dart.as(null, core.int);
858 if (dart.notNull(milliseconds === 0) && dart.notNull(dart.notNull(!dart.no tNull(hasTimer())) || dart.notNull(exports._globalState.isWorker))) { 973 if (dart.notNull(milliseconds === 0) && dart.notNull(dart.notNull(!dart.no tNull(hasTimer())) || dart.notNull(exports._globalState.isWorker))) {
974 >>>>>>> origin/master
859 // Function internalCallback: () → void 975 // Function internalCallback: () → void
860 function internalCallback() { 976 function internalCallback() {
861 this._handle = dart.as(null, core.int); 977 this[_handle] = dart.as(null, core.int);
862 callback(); 978 callback();
863 } 979 }
980 <<<<<<< HEAD
981 this[_handle] = 1;
982 _isolate_helper._globalState.topEventLoop.enqueue(_isolate_helper._globa lState.currentContext, internalCallback, 'timer');
983 this[_inEventLoop] = true;
984 =======
864 this._handle = 1; 985 this._handle = 1;
865 exports._globalState.topEventLoop.enqueue(exports._globalState.currentCo ntext, internalCallback, 'timer'); 986 exports._globalState.topEventLoop.enqueue(exports._globalState.currentCo ntext, internalCallback, 'timer');
866 this._inEventLoop = true; 987 this._inEventLoop = true;
988 >>>>>>> origin/master
867 } else if (hasTimer()) { 989 } else if (hasTimer()) {
868 // Function internalCallback: () → void 990 // Function internalCallback: () → void
869 function internalCallback() { 991 function internalCallback() {
870 this._handle = dart.as(null, core.int); 992 this[_handle] = dart.as(null, core.int);
871 leaveJsAsync(); 993 leaveJsAsync();
872 callback(); 994 callback();
873 } 995 }
874 enterJsAsync(); 996 enterJsAsync();
875 this._handle = self.setTimeout(_js_helper.convertDartClosureToJS(interna lCallback, 0), milliseconds); 997 this[_handle] = self.setTimeout(_js_helper.convertDartClosureToJS(intern alCallback, 0), milliseconds);
876 } else { 998 } else {
877 dart.assert(milliseconds > 0); 999 dart.assert(milliseconds > 0);
878 throw new core.UnsupportedError("Timer greater than 0."); 1000 throw new core.UnsupportedError("Timer greater than 0.");
879 } 1001 }
880 } 1002 }
881 TimerImpl$periodic(milliseconds, callback) { 1003 TimerImpl$periodic(milliseconds, callback) {
882 this._once = false; 1004 this[_once] = false;
883 this._inEventLoop = false; 1005 this[_inEventLoop] = false;
884 this._handle = dart.as(null, core.int); 1006 this[_handle] = dart.as(null, core.int);
885 if (hasTimer()) { 1007 if (hasTimer()) {
886 enterJsAsync(); 1008 enterJsAsync();
887 this._handle = self.setInterval(_js_helper.convertDartClosureToJS((() => { 1009 this[_handle] = self.setInterval(_js_helper.convertDartClosureToJS((() = > {
888 callback(this); 1010 callback(this);
889 }).bind(this), 0), milliseconds); 1011 }).bind(this), 0), milliseconds);
890 } else { 1012 } else {
891 throw new core.UnsupportedError("Periodic timer."); 1013 throw new core.UnsupportedError("Periodic timer.");
892 } 1014 }
893 } 1015 }
894 cancel() { 1016 cancel() {
895 if (hasTimer()) { 1017 if (hasTimer()) {
896 if (this._inEventLoop) { 1018 if (this[_inEventLoop]) {
897 throw new core.UnsupportedError("Timer in event loop cannot be cancele d."); 1019 throw new core.UnsupportedError("Timer in event loop cannot be cancele d.");
898 } 1020 }
899 if (this._handle === null) 1021 if (this[_handle] === null)
900 return; 1022 return;
901 leaveJsAsync(); 1023 leaveJsAsync();
902 if (this._once) { 1024 if (this[_once]) {
903 self.clearTimeout(this._handle); 1025 self.clearTimeout(this[_handle]);
904 } else { 1026 } else {
905 self.clearInterval(this._handle); 1027 self.clearInterval(this[_handle]);
906 } 1028 }
907 this._handle = dart.as(null, core.int); 1029 this[_handle] = dart.as(null, core.int);
908 } else { 1030 } else {
909 throw new core.UnsupportedError("Canceling a timer."); 1031 throw new core.UnsupportedError("Canceling a timer.");
910 } 1032 }
911 } 1033 }
912 get isActive() { 1034 get isActive() {
913 return this._handle !== null; 1035 return this[_handle] !== null;
914 } 1036 }
915 } 1037 }
916 dart.defineNamedConstructor(TimerImpl, 'periodic'); 1038 dart.defineNamedConstructor(TimerImpl, 'periodic');
917 // Function hasTimer: () → bool 1039 // Function hasTimer: () → bool
918 function hasTimer() { 1040 function hasTimer() {
919 _js_helper.requiresPreamble(); 1041 _js_helper.requiresPreamble();
920 return self.setTimeout !== null; 1042 return self.setTimeout !== null;
921 } 1043 }
922 class CapabilityImpl extends dart.Object { 1044 class CapabilityImpl extends dart.Object {
923 CapabilityImpl() { 1045 CapabilityImpl() {
924 this.CapabilityImpl$_internal(_js_helper.random64()); 1046 this.CapabilityImpl$_internal(_js_helper.random64());
925 } 1047 }
926 CapabilityImpl$_internal(_id) { 1048 CapabilityImpl$_internal($_id) {
927 this._id = _id; 1049 this[_id] = $_id;
928 } 1050 }
929 get hashCode() { 1051 get hashCode() {
930 let hash = this._id; 1052 let hash = this[_id];
931 hash = hash >> 0 ^ (hash / 4294967296).truncate(); 1053 hash = hash >> 0 ^ (hash / 4294967296).truncate();
932 hash = ~hash + (hash << 15) & 4294967295; 1054 hash = ~hash + (hash << 15) & 4294967295;
933 hash = hash >> 12; 1055 hash = hash >> 12;
934 hash = hash * 5 & 4294967295; 1056 hash = hash * 5 & 4294967295;
935 hash = hash >> 4; 1057 hash = hash >> 4;
936 hash = hash * 2057 & 4294967295; 1058 hash = hash * 2057 & 4294967295;
937 hash = hash >> 16; 1059 hash = hash >> 16;
938 return hash; 1060 return hash;
939 } 1061 }
940 ['=='](other) { 1062 ['=='](other) {
941 if (core.identical(other, this)) 1063 if (core.identical(other, this))
942 return true; 1064 return true;
943 if (dart.is(other, CapabilityImpl)) { 1065 if (dart.is(other, CapabilityImpl)) {
944 return core.identical(this._id, other._id); 1066 return core.identical(this[_id], other[_id]);
945 } 1067 }
946 return false; 1068 return false;
947 } 1069 }
948 } 1070 }
949 dart.defineNamedConstructor(CapabilityImpl, '_internal'); 1071 dart.defineNamedConstructor(CapabilityImpl, '_internal');
950 // Function _serializeMessage: (dynamic) → dynamic 1072 // Function _serializeMessage: (dynamic) → dynamic
951 function _serializeMessage(message) { 1073 function _serializeMessage(message) {
952 return new _Serializer().serialize(message); 1074 return new _Serializer().serialize(message);
953 } 1075 }
954 // Function _deserializeMessage: (dynamic) → dynamic 1076 // Function _deserializeMessage: (dynamic) → dynamic
955 function _deserializeMessage(message) { 1077 function _deserializeMessage(message) {
956 return new _Deserializer().deserialize(message); 1078 return new _Deserializer().deserialize(message);
957 } 1079 }
958 // Function _clone: (dynamic) → dynamic 1080 // Function _clone: (dynamic) → dynamic
959 function _clone(message) { 1081 function _clone(message) {
960 let serializer = new _Serializer({serializeSendPorts: false}); 1082 let serializer = new _Serializer({serializeSendPorts: false});
961 let deserializer = new _Deserializer(); 1083 let deserializer = new _Deserializer();
962 return deserializer.deserialize(serializer.serialize(message)); 1084 return deserializer.deserialize(serializer.serialize(message));
963 } 1085 }
964 class _Serializer extends dart.Object { 1086 class _Serializer extends dart.Object {
965 _Serializer(opt$) { 1087 _Serializer(opt$) {
966 let serializeSendPorts = opt$.serializeSendPorts === void 0 ? true : opt$. serializeSendPorts; 1088 let serializeSendPorts = opt$.serializeSendPorts === void 0 ? true : opt$. serializeSendPorts;
967 this.serializedObjectIds = new core.Map.identity(); 1089 this.serializedObjectIds = new core.Map.identity();
968 this._serializeSendPorts = dart.as(serializeSendPorts, core.bool); 1090 this[_serializeSendPorts] = dart.as(serializeSendPorts, core.bool);
969 } 1091 }
970 serialize(x) { 1092 serialize(x) {
971 if (this.isPrimitive(x)) 1093 if (this.isPrimitive(x))
972 return this.serializePrimitive(x); 1094 return this.serializePrimitive(x);
973 let serializationId = this.serializedObjectIds.get(x); 1095 let serializationId = this.serializedObjectIds.get(x);
974 if (serializationId !== null) 1096 if (serializationId !== null)
975 return this.makeRef(serializationId); 1097 return this.makeRef(serializationId);
976 serializationId = this.serializedObjectIds.length; 1098 serializationId = this.serializedObjectIds.length;
977 this.serializedObjectIds.set(x, serializationId); 1099 this.serializedObjectIds.set(x, serializationId);
978 if (dart.is(x, _native_typed_data.NativeByteBuffer)) 1100 if (dart.is(x, _native_typed_data.NativeByteBuffer))
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
1058 } 1180 }
1059 let keys = dart.as(Object.keys(x), core.List); 1181 let keys = dart.as(Object.keys(x), core.List);
1060 let values = new List.from([]); 1182 let values = new List.from([]);
1061 values.length = keys.length; 1183 values.length = keys.length;
1062 for (let i = 0; i < keys.length; i++) { 1184 for (let i = 0; i < keys.length; i++) {
1063 values.set(i, this.serialize(x[keys.get(i)])); 1185 values.set(i, this.serialize(x[keys.get(i)]));
1064 } 1186 }
1065 return new List.from(['js-object', keys, values]); 1187 return new List.from(['js-object', keys, values]);
1066 } 1188 }
1067 serializeWorkerSendPort(x) { 1189 serializeWorkerSendPort(x) {
1068 if (this._serializeSendPorts) { 1190 if (this[_serializeSendPorts]) {
1069 return new List.from(['sendport', x._workerId, x._isolateId, x._receiveP ortId]); 1191 return new List.from(['sendport', x[_workerId], x[_isolateId], x[_receiv ePortId]]);
1070 } 1192 }
1071 return new List.from(['raw sendport', x]); 1193 return new List.from(['raw sendport', x]);
1072 } 1194 }
1073 serializeJsSendPort(x) { 1195 serializeJsSendPort(x) {
1196 <<<<<<< HEAD
1197 if (this[_serializeSendPorts]) {
1198 let workerId = _isolate_helper._globalState.currentManagerId;
1199 return new List.from(['sendport', workerId, x[_isolateId], x[_receivePor t][_id]]);
1200 =======
1074 if (this._serializeSendPorts) { 1201 if (this._serializeSendPorts) {
1075 let workerId = exports._globalState.currentManagerId; 1202 let workerId = exports._globalState.currentManagerId;
1076 return new List.from(['sendport', workerId, x._isolateId, x._receivePort ._id]); 1203 return new List.from(['sendport', workerId, x._isolateId, x._receivePort ._id]);
1204 >>>>>>> origin/master
1077 } 1205 }
1078 return new List.from(['raw sendport', x]); 1206 return new List.from(['raw sendport', x]);
1079 } 1207 }
1080 serializeCapability(x) { 1208 serializeCapability(x) {
1081 return new List.from(['capability', x._id]); 1209 return new List.from(['capability', x[_id]]);
1082 } 1210 }
1083 serializeClosure(x) { 1211 serializeClosure(x) {
1084 let name = IsolateNatives._getJSFunctionName(x); 1212 let name = IsolateNatives._getJSFunctionName(x);
1085 if (name === null) { 1213 if (name === null) {
1086 this.unsupported(x, "Closures can't be transmitted:"); 1214 this.unsupported(x, "Closures can't be transmitted:");
1087 } 1215 }
1088 return new List.from(['function', name]); 1216 return new List.from(['function', name]);
1089 } 1217 }
1090 serializeDartObject(x) { 1218 serializeDartObject(x) {
1091 let classExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', dart.as(_js_em bedded_names.CLASS_ID_EXTRACTOR, core.String)); 1219 let classExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', dart.as(_js_em bedded_names.CLASS_ID_EXTRACTOR, core.String));
1092 let fieldsExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', dart.as(_js_e mbedded_names.CLASS_FIELDS_EXTRACTOR, core.String)); 1220 let fieldsExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', dart.as(_js_e mbedded_names.CLASS_FIELDS_EXTRACTOR, core.String));
1093 let classId = classExtractor(x); 1221 let classId = classExtractor(x);
1094 let fields = dart.as(fieldsExtractor(x), core.List); 1222 let fields = dart.as(fieldsExtractor(x), core.List);
1095 return new List.from(['dart', classId, this.serializeArrayInPlace(dart.as( fields, _interceptors.JSArray))]); 1223 return new List.from(['dart', classId, this.serializeArrayInPlace(dart.as( fields, _interceptors.JSArray))]);
1096 } 1224 }
1097 } 1225 }
1098 class _Deserializer extends dart.Object { 1226 class _Deserializer extends dart.Object {
1099 _Deserializer(opt$) { 1227 _Deserializer(opt$) {
1100 let adjustSendPorts = opt$.adjustSendPorts === void 0 ? true : opt$.adjust SendPorts; 1228 let adjustSendPorts = opt$.adjustSendPorts === void 0 ? true : opt$.adjust SendPorts;
1101 this.deserializedObjects = new core.List(); 1229 this.deserializedObjects = new core.List();
1102 this._adjustSendPorts = dart.as(adjustSendPorts, core.bool); 1230 this[_adjustSendPorts] = dart.as(adjustSendPorts, core.bool);
1103 } 1231 }
1104 deserialize(x) { 1232 deserialize(x) {
1105 if (this.isPrimitive(x)) 1233 if (this.isPrimitive(x))
1106 return this.deserializePrimitive(x); 1234 return this.deserializePrimitive(x);
1107 if (!dart.is(x, _interceptors.JSArray)) 1235 if (!dart.is(x, _interceptors.JSArray))
1108 throw new core.ArgumentError(`Bad serialized message: ${x}`); 1236 throw new core.ArgumentError(`Bad serialized message: ${x}`);
1109 switch (dart.dload(x, 'first')) { 1237 switch (dart.dload(x, 'first')) {
1110 case "ref": 1238 case "ref":
1111 return this.deserializeRef(x); 1239 return this.deserializeRef(x);
1112 case "buffer": 1240 case "buffer":
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1266 exports.globalWindow = globalWindow; 1394 exports.globalWindow = globalWindow;
1267 exports.globalWorker = globalWorker; 1395 exports.globalWorker = globalWorker;
1268 exports.globalPostMessageDefined = globalPostMessageDefined; 1396 exports.globalPostMessageDefined = globalPostMessageDefined;
1269 exports.IsolateNatives = IsolateNatives; 1397 exports.IsolateNatives = IsolateNatives;
1270 exports.RawReceivePortImpl = RawReceivePortImpl; 1398 exports.RawReceivePortImpl = RawReceivePortImpl;
1271 exports.ReceivePortImpl = ReceivePortImpl; 1399 exports.ReceivePortImpl = ReceivePortImpl;
1272 exports.TimerImpl = TimerImpl; 1400 exports.TimerImpl = TimerImpl;
1273 exports.hasTimer = hasTimer; 1401 exports.hasTimer = hasTimer;
1274 exports.CapabilityImpl = CapabilityImpl; 1402 exports.CapabilityImpl = CapabilityImpl;
1275 })(_isolate_helper || (_isolate_helper = {})); 1403 })(_isolate_helper || (_isolate_helper = {}));
OLDNEW
« no previous file with comments | « test/codegen/expect/_internal/_internal.js ('k') | test/codegen/expect/_js_helper/_js_helper.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698