| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 = {})); |
| OLD | NEW |