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

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

Issue 1059583002: Extension method support to move us closer to a valid List implementation. (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
OLDNEW
1 var _isolate_helper; 1 var _isolate_helper;
2 (function(exports) { 2 (function(exports) {
3 'use strict'; 3 'use strict';
4 // Function _serializeMessage: (dynamic) → dynamic 4 // Function _serializeMessage: (dynamic) → dynamic
5 function _serializeMessage(message) { 5 function _serializeMessage(message) {
6 return new _Serializer().serialize(message); 6 return new _Serializer().serialize(message);
7 } 7 }
8 // Function _deserializeMessage: (dynamic) → dynamic 8 // Function _deserializeMessage: (dynamic) → dynamic
9 function _deserializeMessage(message) { 9 function _deserializeMessage(message) {
10 return new _Deserializer().deserialize(message); 10 return new _Deserializer().deserialize(message);
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 return new core.List.from(["extendable", serialized]); 89 return new core.List.from(["extendable", serialized]);
90 if (dart.is(indexable, _interceptors.JSMutableArray)) 90 if (dart.is(indexable, _interceptors.JSMutableArray))
91 return new core.List.from(["mutable", serialized]); 91 return new core.List.from(["mutable", serialized]);
92 if (dart.is(indexable, _interceptors.JSArray)) 92 if (dart.is(indexable, _interceptors.JSArray))
93 return new core.List.from(["const", serialized]); 93 return new core.List.from(["const", serialized]);
94 this.unsupported(indexable, "Can't serialize indexable: "); 94 this.unsupported(indexable, "Can't serialize indexable: ");
95 return null; 95 return null;
96 } 96 }
97 serializeArray(x) { 97 serializeArray(x) {
98 let serialized = new core.List.from([]); 98 let serialized = new core.List.from([]);
99 serialized.length = x.length; 99 serialized[core.$length] = x[core.$length];
100 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull (i) + 1) { 100 for (let i = 0; dart.notNull(i) < dart.notNull(x[core.$length]); i = dart. notNull(i) + 1) {
101 serialized.set(i, this.serialize(x.get(i))); 101 serialized[core.$set](i, this.serialize(x[core.$get](i)));
102 } 102 }
103 return serialized; 103 return serialized;
104 } 104 }
105 serializeArrayInPlace(x) { 105 serializeArrayInPlace(x) {
106 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull (i) + 1) { 106 for (let i = 0; dart.notNull(i) < dart.notNull(x[core.$length]); i = dart. notNull(i) + 1) {
107 x.set(i, this.serialize(x.get(i))); 107 x[core.$set](i, this.serialize(x[core.$get](i)));
108 } 108 }
109 return x; 109 return x;
110 } 110 }
111 serializeMap(x) { 111 serializeMap(x) {
112 let serializeTearOff = this.serialize; 112 let serializeTearOff = this.serialize;
113 return new core.List.from(['map', x.keys.map(dart.as(serializeTearOff, dar t.throw_("Unimplemented type (dynamic) → dynamic"))).toList(), x.values.map(dart .as(serializeTearOff, dart.throw_("Unimplemented type (dynamic) → dynamic"))).to List()]); 113 return new core.List.from(['map', x.keys[core.$map](dart.as(serializeTearO ff, dart.throw_("Unimplemented type (dynamic) → dynamic")))[core.$toList](), x.v alues[core.$map](dart.as(serializeTearOff, dart.throw_("Unimplemented type (dyna mic) → dynamic")))[core.$toList]()]);
114 } 114 }
115 serializeJSObject(x) { 115 serializeJSObject(x) {
116 if (!!x.constructor && x.constructor !== Object) { 116 if (!!x.constructor && x.constructor !== Object) {
117 this.unsupported(x, "Only plain JS Objects are supported:"); 117 this.unsupported(x, "Only plain JS Objects are supported:");
118 } 118 }
119 let keys = dart.as(Object.keys(x), core.List); 119 let keys = dart.as(Object.keys(x), core.List);
120 let values = new core.List.from([]); 120 let values = new core.List.from([]);
121 values.length = keys.length; 121 values[core.$length] = keys[core.$length];
122 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN ull(i) + 1) { 122 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) {
123 values.set(i, this.serialize(x[keys.get(i)])); 123 values[core.$set](i, this.serialize(x[keys[core.$get](i)]));
124 } 124 }
125 return new core.List.from(['js-object', keys, values]); 125 return new core.List.from(['js-object', keys, values]);
126 } 126 }
127 serializeWorkerSendPort(x) { 127 serializeWorkerSendPort(x) {
128 if (this[_serializeSendPorts]) { 128 if (this[_serializeSendPorts]) {
129 return new core.List.from(['sendport', x[_workerId], x[_isolateId], x[_r eceivePortId]]); 129 return new core.List.from(['sendport', x[_workerId], x[_isolateId], x[_r eceivePortId]]);
130 } 130 }
131 return new core.List.from(['raw sendport', x]); 131 return new core.List.from(['raw sendport', x]);
132 } 132 }
133 serializeJsSendPort(x) { 133 serializeJsSendPort(x) {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 } 228 }
229 isPrimitive(x) { 229 isPrimitive(x) {
230 return dart.notNull(x == null) || dart.notNull(typeof x == 'string') || da rt.notNull(dart.is(x, core.num)) || dart.notNull(typeof x == 'boolean'); 230 return dart.notNull(x == null) || dart.notNull(typeof x == 'string') || da rt.notNull(dart.is(x, core.num)) || dart.notNull(typeof x == 'boolean');
231 } 231 }
232 deserializePrimitive(x) { 232 deserializePrimitive(x) {
233 return x; 233 return x;
234 } 234 }
235 deserializeRef(x) { 235 deserializeRef(x) {
236 dart.assert(dart.equals(dart.dindex(x, 0), 'ref')); 236 dart.assert(dart.equals(dart.dindex(x, 0), 'ref'));
237 let serializationId = dart.as(dart.dindex(x, 1), core.int); 237 let serializationId = dart.as(dart.dindex(x, 1), core.int);
238 return this.deserializedObjects.get(serializationId); 238 return this.deserializedObjects[core.$get](serializationId);
239 } 239 }
240 deserializeByteBuffer(x) { 240 deserializeByteBuffer(x) {
241 dart.assert(dart.equals(dart.dindex(x, 0), 'buffer')); 241 dart.assert(dart.equals(dart.dindex(x, 0), 'buffer'));
242 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeByteBuffe r); 242 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeByteBuffe r);
243 this.deserializedObjects.add(result); 243 this.deserializedObjects[core.$add](result);
244 return result; 244 return result;
245 } 245 }
246 deserializeTypedData(x) { 246 deserializeTypedData(x) {
247 dart.assert(dart.equals(dart.dindex(x, 0), 'typed')); 247 dart.assert(dart.equals(dart.dindex(x, 0), 'typed'));
248 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeTypedData ); 248 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeTypedData );
249 this.deserializedObjects.add(result); 249 this.deserializedObjects[core.$add](result);
250 return result; 250 return result;
251 } 251 }
252 deserializeArrayInPlace(x) { 252 deserializeArrayInPlace(x) {
253 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull (i) + 1) { 253 for (let i = 0; dart.notNull(i) < dart.notNull(x[core.$length]); i = dart. notNull(i) + 1) {
254 x.set(i, this.deserialize(x.get(i))); 254 x[core.$set](i, this.deserialize(x[core.$get](i)));
255 } 255 }
256 return x; 256 return x;
257 } 257 }
258 deserializeFixed(x) { 258 deserializeFixed(x) {
259 dart.assert(dart.equals(dart.dindex(x, 0), 'fixed')); 259 dart.assert(dart.equals(dart.dindex(x, 0), 'fixed'));
260 let result = dart.as(dart.dindex(x, 1), core.List); 260 let result = dart.as(dart.dindex(x, 1), core.List);
261 this.deserializedObjects.add(result); 261 this.deserializedObjects[core.$add](result);
262 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da rt.as(result, _interceptors.JSArray))); 262 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da rt.as(result, _interceptors.JSArray)));
263 } 263 }
264 deserializeExtendable(x) { 264 deserializeExtendable(x) {
265 dart.assert(dart.equals(dart.dindex(x, 0), 'extendable')); 265 dart.assert(dart.equals(dart.dindex(x, 0), 'extendable'));
266 let result = dart.as(dart.dindex(x, 1), core.List); 266 let result = dart.as(dart.dindex(x, 1), core.List);
267 this.deserializedObjects.add(result); 267 this.deserializedObjects[core.$add](result);
268 return new _interceptors.JSArray.markGrowable(this.deserializeArrayInPlace (dart.as(result, _interceptors.JSArray))); 268 return new _interceptors.JSArray.markGrowable(this.deserializeArrayInPlace (dart.as(result, _interceptors.JSArray)));
269 } 269 }
270 deserializeMutable(x) { 270 deserializeMutable(x) {
271 dart.assert(dart.equals(dart.dindex(x, 0), 'mutable')); 271 dart.assert(dart.equals(dart.dindex(x, 0), 'mutable'));
272 let result = dart.as(dart.dindex(x, 1), core.List); 272 let result = dart.as(dart.dindex(x, 1), core.List);
273 this.deserializedObjects.add(result); 273 this.deserializedObjects[core.$add](result);
274 return this.deserializeArrayInPlace(dart.as(result, _interceptors.JSArray) ); 274 return this.deserializeArrayInPlace(dart.as(result, _interceptors.JSArray) );
275 } 275 }
276 deserializeConst(x) { 276 deserializeConst(x) {
277 dart.assert(dart.equals(dart.dindex(x, 0), 'const')); 277 dart.assert(dart.equals(dart.dindex(x, 0), 'const'));
278 let result = dart.as(dart.dindex(x, 1), core.List); 278 let result = dart.as(dart.dindex(x, 1), core.List);
279 this.deserializedObjects.add(result); 279 this.deserializedObjects[core.$add](result);
280 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da rt.as(result, _interceptors.JSArray))); 280 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da rt.as(result, _interceptors.JSArray)));
281 } 281 }
282 deserializeMap(x) { 282 deserializeMap(x) {
283 dart.assert(dart.equals(dart.dindex(x, 0), 'map')); 283 dart.assert(dart.equals(dart.dindex(x, 0), 'map'));
284 let keys = dart.as(dart.dindex(x, 1), core.List); 284 let keys = dart.as(dart.dindex(x, 1), core.List);
285 let values = dart.as(dart.dindex(x, 2), core.List); 285 let values = dart.as(dart.dindex(x, 2), core.List);
286 let result = dart.map(); 286 let result = dart.map();
287 this.deserializedObjects.add(result); 287 this.deserializedObjects[core.$add](result);
288 keys = keys.map(this.deserialize).toList(); 288 keys = keys[core.$map](this.deserialize)[core.$toList]();
289 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN ull(i) + 1) { 289 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) {
290 result.set(keys.get(i), this.deserialize(values.get(i))); 290 result.set(keys[core.$get](i), this.deserialize(values[core.$get](i)));
291 } 291 }
292 return result; 292 return result;
293 } 293 }
294 deserializeSendPort(x) { 294 deserializeSendPort(x) {
295 dart.assert(dart.equals(dart.dindex(x, 0), 'sendport')); 295 dart.assert(dart.equals(dart.dindex(x, 0), 'sendport'));
296 let managerId = dart.as(dart.dindex(x, 1), core.int); 296 let managerId = dart.as(dart.dindex(x, 1), core.int);
297 let isolateId = dart.as(dart.dindex(x, 2), core.int); 297 let isolateId = dart.as(dart.dindex(x, 2), core.int);
298 let receivePortId = dart.as(dart.dindex(x, 3), core.int); 298 let receivePortId = dart.as(dart.dindex(x, 3), core.int);
299 let result = null; 299 let result = null;
300 if (managerId == exports._globalState.currentManagerId) { 300 if (managerId == exports._globalState.currentManagerId) {
301 let isolate = exports._globalState.isolates.get(isolateId); 301 let isolate = exports._globalState.isolates.get(isolateId);
302 if (isolate == null) 302 if (isolate == null)
303 return null; 303 return null;
304 let receivePort = isolate.lookup(receivePortId); 304 let receivePort = isolate.lookup(receivePortId);
305 if (receivePort == null) 305 if (receivePort == null)
306 return null; 306 return null;
307 result = new _NativeJsSendPort(receivePort, isolateId); 307 result = new _NativeJsSendPort(receivePort, isolateId);
308 } else { 308 } else {
309 result = new _WorkerSendPort(managerId, isolateId, receivePortId); 309 result = new _WorkerSendPort(managerId, isolateId, receivePortId);
310 } 310 }
311 this.deserializedObjects.add(result); 311 this.deserializedObjects[core.$add](result);
312 return result; 312 return result;
313 } 313 }
314 deserializeRawSendPort(x) { 314 deserializeRawSendPort(x) {
315 dart.assert(dart.equals(dart.dindex(x, 0), 'raw sendport')); 315 dart.assert(dart.equals(dart.dindex(x, 0), 'raw sendport'));
316 let result = dart.as(dart.dindex(x, 1), isolate.SendPort); 316 let result = dart.as(dart.dindex(x, 1), isolate.SendPort);
317 this.deserializedObjects.add(result); 317 this.deserializedObjects[core.$add](result);
318 return result; 318 return result;
319 } 319 }
320 deserializeJSObject(x) { 320 deserializeJSObject(x) {
321 dart.assert(dart.equals(dart.dindex(x, 0), 'js-object')); 321 dart.assert(dart.equals(dart.dindex(x, 0), 'js-object'));
322 let keys = dart.as(dart.dindex(x, 1), core.List); 322 let keys = dart.as(dart.dindex(x, 1), core.List);
323 let values = dart.as(dart.dindex(x, 2), core.List); 323 let values = dart.as(dart.dindex(x, 2), core.List);
324 let o = {}; 324 let o = {};
325 this.deserializedObjects.add(o); 325 this.deserializedObjects[core.$add](o);
326 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN ull(i) + 1) { 326 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) {
327 o[keys.get(i)] = this.deserialize(values.get(i)); 327 o[keys[core.$get](i)] = this.deserialize(values[core.$get](i));
328 } 328 }
329 return o; 329 return o;
330 } 330 }
331 deserializeClosure(x) { 331 deserializeClosure(x) {
332 dart.assert(dart.equals(dart.dindex(x, 0), 'function')); 332 dart.assert(dart.equals(dart.dindex(x, 0), 'function'));
333 let name = dart.as(dart.dindex(x, 1), core.String); 333 let name = dart.as(dart.dindex(x, 1), core.String);
334 let result = dart.as(IsolateNatives._getJSFunctionFromName(name), core.Fun ction); 334 let result = dart.as(IsolateNatives._getJSFunctionFromName(name), core.Fun ction);
335 this.deserializedObjects.add(result); 335 this.deserializedObjects[core.$add](result);
336 return result; 336 return result;
337 } 337 }
338 deserializeDartObject(x) { 338 deserializeDartObject(x) {
339 dart.assert(dart.equals(dart.dindex(x, 0), 'dart')); 339 dart.assert(dart.equals(dart.dindex(x, 0), 'dart'));
340 let classId = dart.as(dart.dindex(x, 1), core.String); 340 let classId = dart.as(dart.dindex(x, 1), core.String);
341 let fields = dart.as(dart.dindex(x, 2), core.List); 341 let fields = dart.as(dart.dindex(x, 2), core.List);
342 let instanceFromClassId = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embed ded_names.INSTANCE_FROM_CLASS_ID); 342 let instanceFromClassId = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embed ded_names.INSTANCE_FROM_CLASS_ID);
343 let initializeObject = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded _names.INITIALIZE_EMPTY_INSTANCE); 343 let initializeObject = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded _names.INITIALIZE_EMPTY_INSTANCE);
344 let emptyInstance = instanceFromClassId(classId); 344 let emptyInstance = instanceFromClassId(classId);
345 this.deserializedObjects.add(emptyInstance); 345 this.deserializedObjects[core.$add](emptyInstance);
346 this.deserializeArrayInPlace(dart.as(fields, _interceptors.JSArray)); 346 this.deserializeArrayInPlace(dart.as(fields, _interceptors.JSArray));
347 return initializeObject(classId, emptyInstance, fields); 347 return initializeObject(classId, emptyInstance, fields);
348 } 348 }
349 } 349 }
350 // Function _callInIsolate: (_IsolateContext, Function) → dynamic 350 // Function _callInIsolate: (_IsolateContext, Function) → dynamic
351 function _callInIsolate(isolate, function$0) { 351 function _callInIsolate(isolate, function$0) {
352 let result = isolate.eval(function$0); 352 let result = isolate.eval(function$0);
353 exports._globalState.topEventLoop.run(); 353 exports._globalState.topEventLoop.run();
354 return result; 354 return result;
355 } 355 }
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 return; 501 return;
502 if (dart.notNull(this.pauseTokens.add(resume)) && !dart.notNull(this.isPau sed)) { 502 if (dart.notNull(this.pauseTokens.add(resume)) && !dart.notNull(this.isPau sed)) {
503 this.isPaused = true; 503 this.isPaused = true;
504 } 504 }
505 this[_updateGlobalState](); 505 this[_updateGlobalState]();
506 } 506 }
507 removePause(resume) { 507 removePause(resume) {
508 if (!dart.notNull(this.isPaused)) 508 if (!dart.notNull(this.isPaused))
509 return; 509 return;
510 this.pauseTokens.remove(resume); 510 this.pauseTokens.remove(resume);
511 if (this.pauseTokens.isEmpty) { 511 if (this.pauseTokens[core.$isEmpty]) {
512 while (this.delayedEvents.isNotEmpty) { 512 while (this.delayedEvents[core.$isNotEmpty]) {
513 let event = this.delayedEvents.removeLast(); 513 let event = this.delayedEvents[core.$removeLast]();
514 exports._globalState.topEventLoop.prequeue(event); 514 exports._globalState.topEventLoop.prequeue(event);
515 } 515 }
516 this.isPaused = false; 516 this.isPaused = false;
517 } 517 }
518 this[_updateGlobalState](); 518 this[_updateGlobalState]();
519 } 519 }
520 addDoneListener(responsePort) { 520 addDoneListener(responsePort) {
521 if (this.doneHandlers == null) { 521 if (this.doneHandlers == null) {
522 this.doneHandlers = new core.List.from([]); 522 this.doneHandlers = new core.List.from([]);
523 } 523 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 } 571 }
572 dart.dinvoke(this[_scheduledControlEvents], 'addLast', this.kill); 572 dart.dinvoke(this[_scheduledControlEvents], 'addLast', this.kill);
573 } 573 }
574 addErrorListener(port) { 574 addErrorListener(port) {
575 this.errorPorts.add(port); 575 this.errorPorts.add(port);
576 } 576 }
577 removeErrorListener(port) { 577 removeErrorListener(port) {
578 this.errorPorts.remove(port); 578 this.errorPorts.remove(port);
579 } 579 }
580 handleUncaughtError(error, stackTrace) { 580 handleUncaughtError(error, stackTrace) {
581 if (this.errorPorts.isEmpty) { 581 if (this.errorPorts[core.$isEmpty]) {
582 if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(thi s, exports._globalState.rootContext))) { 582 if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(thi s, exports._globalState.rootContext))) {
583 return; 583 return;
584 } 584 }
585 if (self.console && self.console.error) { 585 if (self.console && self.console.error) {
586 self.console.error(error, stackTrace); 586 self.console.error(error, stackTrace);
587 } else { 587 } else {
588 core.print(error); 588 core.print(error);
589 if (stackTrace != null) 589 if (stackTrace != null)
590 core.print(stackTrace); 590 core.print(stackTrace);
591 } 591 }
592 return; 592 return;
593 } 593 }
594 let message = new core.List(2); 594 let message = new core.List(2);
595 message.set(0, dart.dinvoke(error, 'toString')); 595 message[core.$set](0, dart.dinvoke(error, 'toString'));
596 message.set(1, stackTrace == null ? null : stackTrace.toString()); 596 message[core.$set](1, stackTrace == null ? null : stackTrace.toString());
597 for (let port of this.errorPorts) 597 for (let port of this.errorPorts)
598 port.send(message); 598 port.send(message);
599 } 599 }
600 eval(code) { 600 eval(code) {
601 let old = exports._globalState.currentContext; 601 let old = exports._globalState.currentContext;
602 exports._globalState.currentContext = this; 602 exports._globalState.currentContext = this;
603 this._setGlobals(); 603 this._setGlobals();
604 let result = null; 604 let result = null;
605 this[_isExecutingEvent] = true; 605 this[_isExecutingEvent] = true;
606 try { 606 try {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 } 692 }
693 register(portId, port) { 693 register(portId, port) {
694 this[_addRegistration](portId, port); 694 this[_addRegistration](portId, port);
695 this[_updateGlobalState](); 695 this[_updateGlobalState]();
696 } 696 }
697 registerWeak(portId, port) { 697 registerWeak(portId, port) {
698 this.weakPorts.add(portId); 698 this.weakPorts.add(portId);
699 this[_addRegistration](portId, port); 699 this[_addRegistration](portId, port);
700 } 700 }
701 [_updateGlobalState]() { 701 [_updateGlobalState]() {
702 if (dart.notNull(this.ports.length) - dart.notNull(this.weakPorts.length) > 0 || dart.notNull(this.isPaused) || !dart.notNull(this.initialized)) { 702 if (dart.notNull(this.ports.length) - dart.notNull(this.weakPorts[core.$le ngth]) > 0 || dart.notNull(this.isPaused) || !dart.notNull(this.initialized)) {
703 exports._globalState.isolates.set(this.id, this); 703 exports._globalState.isolates.set(this.id, this);
704 } else { 704 } else {
705 this.kill(); 705 this.kill();
706 } 706 }
707 } 707 }
708 kill() { 708 kill() {
709 if (this[_scheduledControlEvents] != null) { 709 if (this[_scheduledControlEvents] != null) {
710 dart.dinvoke(this[_scheduledControlEvents], 'clear'); 710 dart.dinvoke(this[_scheduledControlEvents], 'clear');
711 } 711 }
712 for (let port of this.ports.values) { 712 for (let port of this.ports.values) {
(...skipping 23 matching lines...) Expand all
736 this.events = new (collection.Queue$(_IsolateEvent))(); 736 this.events = new (collection.Queue$(_IsolateEvent))();
737 this[_activeJsAsyncCount] = 0; 737 this[_activeJsAsyncCount] = 0;
738 } 738 }
739 enqueue(isolate, fn, msg) { 739 enqueue(isolate, fn, msg) {
740 this.events.addLast(new _IsolateEvent(dart.as(isolate, _IsolateContext), d art.as(fn, core.Function), dart.as(msg, core.String))); 740 this.events.addLast(new _IsolateEvent(dart.as(isolate, _IsolateContext), d art.as(fn, core.Function), dart.as(msg, core.String)));
741 } 741 }
742 prequeue(event) { 742 prequeue(event) {
743 this.events.addFirst(event); 743 this.events.addFirst(event);
744 } 744 }
745 dequeue() { 745 dequeue() {
746 if (this.events.isEmpty) 746 if (this.events[core.$isEmpty])
747 return null; 747 return null;
748 return this.events.removeFirst(); 748 return this.events.removeFirst();
749 } 749 }
750 checkOpenReceivePortsFromCommandLine() { 750 checkOpenReceivePortsFromCommandLine() {
751 if (dart.notNull(exports._globalState.rootContext != null) && dart.notNull (exports._globalState.isolates.containsKey(exports._globalState.rootContext.id)) && dart.notNull(exports._globalState.fromCommandLine) && dart.notNull(exports._ globalState.rootContext.ports.isEmpty)) { 751 if (dart.notNull(exports._globalState.rootContext != null) && dart.notNull (exports._globalState.isolates.containsKey(exports._globalState.rootContext.id)) && dart.notNull(exports._globalState.fromCommandLine) && dart.notNull(exports._ globalState.rootContext.ports.isEmpty)) {
752 throw new core.Exception("Program exited with open ReceivePorts."); 752 throw new core.Exception("Program exited with open ReceivePorts.");
753 } 753 }
754 } 754 }
755 runIteration() { 755 runIteration() {
756 let event = this.dequeue(); 756 let event = this.dequeue();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 } 791 }
792 } 792 }
793 class _IsolateEvent extends core.Object { 793 class _IsolateEvent extends core.Object {
794 _IsolateEvent(isolate, fn, message) { 794 _IsolateEvent(isolate, fn, message) {
795 this.isolate = isolate; 795 this.isolate = isolate;
796 this.fn = fn; 796 this.fn = fn;
797 this.message = message; 797 this.message = message;
798 } 798 }
799 process() { 799 process() {
800 if (this.isolate.isPaused) { 800 if (this.isolate.isPaused) {
801 this.isolate.delayedEvents.add(this); 801 this.isolate.delayedEvents[core.$add](this);
802 return; 802 return;
803 } 803 }
804 this.isolate.eval(this.fn); 804 this.isolate.eval(this.fn);
805 } 805 }
806 } 806 }
807 class _MainManagerStub extends core.Object { 807 class _MainManagerStub extends core.Object {
808 postMessage(msg) { 808 postMessage(msg) {
809 _js_helper.requiresPreamble(); 809 _js_helper.requiresPreamble();
810 self.postMessage(msg); 810 self.postMessage(msg);
811 } 811 }
(...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after
1372 exports.leaveJsAsync = leaveJsAsync; 1372 exports.leaveJsAsync = leaveJsAsync;
1373 exports.isWorker = isWorker; 1373 exports.isWorker = isWorker;
1374 exports.startRootIsolate = startRootIsolate; 1374 exports.startRootIsolate = startRootIsolate;
1375 exports.IsolateNatives = IsolateNatives; 1375 exports.IsolateNatives = IsolateNatives;
1376 exports.RawReceivePortImpl = RawReceivePortImpl; 1376 exports.RawReceivePortImpl = RawReceivePortImpl;
1377 exports.ReceivePortImpl = ReceivePortImpl; 1377 exports.ReceivePortImpl = ReceivePortImpl;
1378 exports.TimerImpl = TimerImpl; 1378 exports.TimerImpl = TimerImpl;
1379 exports.hasTimer = hasTimer; 1379 exports.hasTimer = hasTimer;
1380 exports.CapabilityImpl = CapabilityImpl; 1380 exports.CapabilityImpl = CapabilityImpl;
1381 })(_isolate_helper || (_isolate_helper = {})); 1381 })(_isolate_helper || (_isolate_helper = {}));
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698