| 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); |
| 11 } | 11 } |
| 12 // Function _clone: (dynamic) → dynamic | 12 // Function _clone: (dynamic) → dynamic |
| 13 function _clone(message) { | 13 function _clone(message) { |
| 14 let serializer = new _Serializer({serializeSendPorts: false}); | 14 let serializer = new _Serializer({serializeSendPorts: false}); |
| 15 let deserializer = new _Deserializer(); | 15 let deserializer = new _Deserializer(); |
| 16 return deserializer.deserialize(serializer.serialize(message)); | 16 return deserializer.deserialize(serializer.serialize(message)); |
| 17 } | 17 } |
| 18 let _serializeSendPorts = Symbol('_serializeSendPorts'); | 18 let _serializeSendPorts = Symbol('_serializeSendPorts'); |
| 19 let _workerId = Symbol('_workerId'); | 19 let _workerId = Symbol('_workerId'); |
| 20 let _isolateId = Symbol('_isolateId'); | 20 let _isolateId = Symbol('_isolateId'); |
| 21 let _receivePortId = Symbol('_receivePortId'); | 21 let _receivePortId = Symbol('_receivePortId'); |
| 22 let _receivePort = Symbol('_receivePort'); | 22 let _receivePort = Symbol('_receivePort'); |
| 23 let _id = Symbol('_id'); | 23 let _id = Symbol('_id'); |
| 24 let _getJSFunctionName = Symbol('_getJSFunctionName'); |
| 24 class _Serializer extends core.Object { | 25 class _Serializer extends core.Object { |
| 25 _Serializer(opts) { | 26 _Serializer(opts) { |
| 26 let serializeSendPorts = opts && 'serializeSendPorts' in opts ? opts.seria
lizeSendPorts : true; | 27 let serializeSendPorts = opts && 'serializeSendPorts' in opts ? opts.seria
lizeSendPorts : true; |
| 27 this.serializedObjectIds = new core.Map$(dynamic, core.int).identity(); | 28 this.serializedObjectIds = new core.Map$(dynamic, core.int).identity(); |
| 28 this[_serializeSendPorts] = dart.as(serializeSendPorts, core.bool); | 29 this[_serializeSendPorts] = dart.as(serializeSendPorts, core.bool); |
| 29 } | 30 } |
| 30 serialize(x) { | 31 serialize(x) { |
| 31 if (this.isPrimitive(x)) | 32 if (this.isPrimitive(x)) |
| 32 return this.serializePrimitive(x); | 33 return this.serializePrimitive(x); |
| 33 let serializationId = this.serializedObjectIds.get(x); | 34 let serializationId = this.serializedObjectIds.get(x); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 return new core.List.from(["extendable", serialized]); | 90 return new core.List.from(["extendable", serialized]); |
| 90 if (dart.is(indexable, _interceptors.JSMutableArray)) | 91 if (dart.is(indexable, _interceptors.JSMutableArray)) |
| 91 return new core.List.from(["mutable", serialized]); | 92 return new core.List.from(["mutable", serialized]); |
| 92 if (dart.is(indexable, _interceptors.JSArray)) | 93 if (dart.is(indexable, _interceptors.JSArray)) |
| 93 return new core.List.from(["const", serialized]); | 94 return new core.List.from(["const", serialized]); |
| 94 this.unsupported(indexable, "Can't serialize indexable: "); | 95 this.unsupported(indexable, "Can't serialize indexable: "); |
| 95 return null; | 96 return null; |
| 96 } | 97 } |
| 97 serializeArray(x) { | 98 serializeArray(x) { |
| 98 let serialized = new core.List.from([]); | 99 let serialized = new core.List.from([]); |
| 99 serialized.length = x.length; | 100 serialized[core.$length] = x[core.$length]; |
| 100 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull
(i) + 1) { | 101 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))); | 102 serialized[core.$set](i, this.serialize(x[core.$get](i))); |
| 102 } | 103 } |
| 103 return serialized; | 104 return serialized; |
| 104 } | 105 } |
| 105 serializeArrayInPlace(x) { | 106 serializeArrayInPlace(x) { |
| 106 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull
(i) + 1) { | 107 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))); | 108 x[core.$set](i, this.serialize(x[core.$get](i))); |
| 108 } | 109 } |
| 109 return x; | 110 return x; |
| 110 } | 111 } |
| 111 serializeMap(x) { | 112 serializeMap(x) { |
| 112 let serializeTearOff = this.serialize; | 113 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()]); | 114 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 } | 115 } |
| 115 serializeJSObject(x) { | 116 serializeJSObject(x) { |
| 116 if (!!x.constructor && x.constructor !== Object) { | 117 if (!!x.constructor && x.constructor !== Object) { |
| 117 this.unsupported(x, "Only plain JS Objects are supported:"); | 118 this.unsupported(x, "Only plain JS Objects are supported:"); |
| 118 } | 119 } |
| 119 let keys = dart.as(Object.keys(x), core.List); | 120 let keys = dart.as(Object.keys(x), core.List); |
| 120 let values = new core.List.from([]); | 121 let values = new core.List.from([]); |
| 121 values.length = keys.length; | 122 values[core.$length] = keys[core.$length]; |
| 122 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN
ull(i) + 1) { | 123 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)])); | 124 values[core.$set](i, this.serialize(x[keys[core.$get](i)])); |
| 124 } | 125 } |
| 125 return new core.List.from(['js-object', keys, values]); | 126 return new core.List.from(['js-object', keys, values]); |
| 126 } | 127 } |
| 127 serializeWorkerSendPort(x) { | 128 serializeWorkerSendPort(x) { |
| 128 if (this[_serializeSendPorts]) { | 129 if (this[_serializeSendPorts]) { |
| 129 return new core.List.from(['sendport', x[_workerId], x[_isolateId], x[_r
eceivePortId]]); | 130 return new core.List.from(['sendport', x[_workerId], x[_isolateId], x[_r
eceivePortId]]); |
| 130 } | 131 } |
| 131 return new core.List.from(['raw sendport', x]); | 132 return new core.List.from(['raw sendport', x]); |
| 132 } | 133 } |
| 133 serializeJsSendPort(x) { | 134 serializeJsSendPort(x) { |
| 134 if (this[_serializeSendPorts]) { | 135 if (this[_serializeSendPorts]) { |
| 135 let workerId = exports._globalState.currentManagerId; | 136 let workerId = exports._globalState.currentManagerId; |
| 136 return new core.List.from(['sendport', workerId, x[_isolateId], x[_recei
vePort][_id]]); | 137 return new core.List.from(['sendport', workerId, x[_isolateId], x[_recei
vePort][_id]]); |
| 137 } | 138 } |
| 138 return new core.List.from(['raw sendport', x]); | 139 return new core.List.from(['raw sendport', x]); |
| 139 } | 140 } |
| 140 serializeCapability(x) { | 141 serializeCapability(x) { |
| 141 return new core.List.from(['capability', x[_id]]); | 142 return new core.List.from(['capability', x[_id]]); |
| 142 } | 143 } |
| 143 serializeClosure(x) { | 144 serializeClosure(x) { |
| 144 let name = IsolateNatives._getJSFunctionName(x); | 145 let name = IsolateNatives[_getJSFunctionName](x); |
| 145 if (name == null) { | 146 if (name == null) { |
| 146 this.unsupported(x, "Closures can't be transmitted:"); | 147 this.unsupported(x, "Closures can't be transmitted:"); |
| 147 } | 148 } |
| 148 return new core.List.from(['function', name]); | 149 return new core.List.from(['function', name]); |
| 149 } | 150 } |
| 150 serializeDartObject(x) { | 151 serializeDartObject(x) { |
| 151 let classExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_n
ames.CLASS_ID_EXTRACTOR); | 152 let classExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_n
ames.CLASS_ID_EXTRACTOR); |
| 152 let fieldsExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_
names.CLASS_FIELDS_EXTRACTOR); | 153 let fieldsExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_
names.CLASS_FIELDS_EXTRACTOR); |
| 153 let classId = classExtractor(x); | 154 let classId = classExtractor(x); |
| 154 let fields = dart.as(fieldsExtractor(x), core.List); | 155 let fields = dart.as(fieldsExtractor(x), core.List); |
| 155 return new core.List.from(['dart', classId, this.serializeArrayInPlace(dar
t.as(fields, _interceptors.JSArray))]); | 156 return new core.List.from(['dart', classId, this.serializeArrayInPlace(dar
t.as(fields, _interceptors.JSArray))]); |
| 156 } | 157 } |
| 157 } | 158 } |
| 158 let _adjustSendPorts = Symbol('_adjustSendPorts'); | 159 let _adjustSendPorts = Symbol('_adjustSendPorts'); |
| 160 let _getJSFunctionFromName = Symbol('_getJSFunctionFromName'); |
| 159 class _Deserializer extends core.Object { | 161 class _Deserializer extends core.Object { |
| 160 _Deserializer(opts) { | 162 _Deserializer(opts) { |
| 161 let adjustSendPorts = opts && 'adjustSendPorts' in opts ? opts.adjustSendP
orts : true; | 163 let adjustSendPorts = opts && 'adjustSendPorts' in opts ? opts.adjustSendP
orts : true; |
| 162 this.deserializedObjects = new core.List(); | 164 this.deserializedObjects = new core.List(); |
| 163 this[_adjustSendPorts] = dart.as(adjustSendPorts, core.bool); | 165 this[_adjustSendPorts] = dart.as(adjustSendPorts, core.bool); |
| 164 } | 166 } |
| 165 deserialize(x) { | 167 deserialize(x) { |
| 166 if (this.isPrimitive(x)) | 168 if (this.isPrimitive(x)) |
| 167 return this.deserializePrimitive(x); | 169 return this.deserializePrimitive(x); |
| 168 if (!dart.is(x, _interceptors.JSArray)) | 170 if (!dart.is(x, _interceptors.JSArray)) |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 } | 230 } |
| 229 isPrimitive(x) { | 231 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'); | 232 return dart.notNull(x == null) || dart.notNull(typeof x == 'string') || da
rt.notNull(dart.is(x, core.num)) || dart.notNull(typeof x == 'boolean'); |
| 231 } | 233 } |
| 232 deserializePrimitive(x) { | 234 deserializePrimitive(x) { |
| 233 return x; | 235 return x; |
| 234 } | 236 } |
| 235 deserializeRef(x) { | 237 deserializeRef(x) { |
| 236 dart.assert(dart.equals(dart.dindex(x, 0), 'ref')); | 238 dart.assert(dart.equals(dart.dindex(x, 0), 'ref')); |
| 237 let serializationId = dart.as(dart.dindex(x, 1), core.int); | 239 let serializationId = dart.as(dart.dindex(x, 1), core.int); |
| 238 return this.deserializedObjects.get(serializationId); | 240 return this.deserializedObjects[core.$get](serializationId); |
| 239 } | 241 } |
| 240 deserializeByteBuffer(x) { | 242 deserializeByteBuffer(x) { |
| 241 dart.assert(dart.equals(dart.dindex(x, 0), 'buffer')); | 243 dart.assert(dart.equals(dart.dindex(x, 0), 'buffer')); |
| 242 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeByteBuffe
r); | 244 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeByteBuffe
r); |
| 243 this.deserializedObjects.add(result); | 245 this.deserializedObjects[core.$add](result); |
| 244 return result; | 246 return result; |
| 245 } | 247 } |
| 246 deserializeTypedData(x) { | 248 deserializeTypedData(x) { |
| 247 dart.assert(dart.equals(dart.dindex(x, 0), 'typed')); | 249 dart.assert(dart.equals(dart.dindex(x, 0), 'typed')); |
| 248 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeTypedData
); | 250 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeTypedData
); |
| 249 this.deserializedObjects.add(result); | 251 this.deserializedObjects[core.$add](result); |
| 250 return result; | 252 return result; |
| 251 } | 253 } |
| 252 deserializeArrayInPlace(x) { | 254 deserializeArrayInPlace(x) { |
| 253 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull
(i) + 1) { | 255 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))); | 256 x[core.$set](i, this.deserialize(x[core.$get](i))); |
| 255 } | 257 } |
| 256 return x; | 258 return x; |
| 257 } | 259 } |
| 258 deserializeFixed(x) { | 260 deserializeFixed(x) { |
| 259 dart.assert(dart.equals(dart.dindex(x, 0), 'fixed')); | 261 dart.assert(dart.equals(dart.dindex(x, 0), 'fixed')); |
| 260 let result = dart.as(dart.dindex(x, 1), core.List); | 262 let result = dart.as(dart.dindex(x, 1), core.List); |
| 261 this.deserializedObjects.add(result); | 263 this.deserializedObjects[core.$add](result); |
| 262 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da
rt.as(result, _interceptors.JSArray))); | 264 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da
rt.as(result, _interceptors.JSArray))); |
| 263 } | 265 } |
| 264 deserializeExtendable(x) { | 266 deserializeExtendable(x) { |
| 265 dart.assert(dart.equals(dart.dindex(x, 0), 'extendable')); | 267 dart.assert(dart.equals(dart.dindex(x, 0), 'extendable')); |
| 266 let result = dart.as(dart.dindex(x, 1), core.List); | 268 let result = dart.as(dart.dindex(x, 1), core.List); |
| 267 this.deserializedObjects.add(result); | 269 this.deserializedObjects[core.$add](result); |
| 268 return new _interceptors.JSArray.markGrowable(this.deserializeArrayInPlace
(dart.as(result, _interceptors.JSArray))); | 270 return new _interceptors.JSArray.markGrowable(this.deserializeArrayInPlace
(dart.as(result, _interceptors.JSArray))); |
| 269 } | 271 } |
| 270 deserializeMutable(x) { | 272 deserializeMutable(x) { |
| 271 dart.assert(dart.equals(dart.dindex(x, 0), 'mutable')); | 273 dart.assert(dart.equals(dart.dindex(x, 0), 'mutable')); |
| 272 let result = dart.as(dart.dindex(x, 1), core.List); | 274 let result = dart.as(dart.dindex(x, 1), core.List); |
| 273 this.deserializedObjects.add(result); | 275 this.deserializedObjects[core.$add](result); |
| 274 return this.deserializeArrayInPlace(dart.as(result, _interceptors.JSArray)
); | 276 return this.deserializeArrayInPlace(dart.as(result, _interceptors.JSArray)
); |
| 275 } | 277 } |
| 276 deserializeConst(x) { | 278 deserializeConst(x) { |
| 277 dart.assert(dart.equals(dart.dindex(x, 0), 'const')); | 279 dart.assert(dart.equals(dart.dindex(x, 0), 'const')); |
| 278 let result = dart.as(dart.dindex(x, 1), core.List); | 280 let result = dart.as(dart.dindex(x, 1), core.List); |
| 279 this.deserializedObjects.add(result); | 281 this.deserializedObjects[core.$add](result); |
| 280 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da
rt.as(result, _interceptors.JSArray))); | 282 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da
rt.as(result, _interceptors.JSArray))); |
| 281 } | 283 } |
| 282 deserializeMap(x) { | 284 deserializeMap(x) { |
| 283 dart.assert(dart.equals(dart.dindex(x, 0), 'map')); | 285 dart.assert(dart.equals(dart.dindex(x, 0), 'map')); |
| 284 let keys = dart.as(dart.dindex(x, 1), core.List); | 286 let keys = dart.as(dart.dindex(x, 1), core.List); |
| 285 let values = dart.as(dart.dindex(x, 2), core.List); | 287 let values = dart.as(dart.dindex(x, 2), core.List); |
| 286 let result = dart.map(); | 288 let result = dart.map(); |
| 287 this.deserializedObjects.add(result); | 289 this.deserializedObjects[core.$add](result); |
| 288 keys = keys.map(this.deserialize).toList(); | 290 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) { | 291 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))); | 292 result.set(keys[core.$get](i), this.deserialize(values[core.$get](i))); |
| 291 } | 293 } |
| 292 return result; | 294 return result; |
| 293 } | 295 } |
| 294 deserializeSendPort(x) { | 296 deserializeSendPort(x) { |
| 295 dart.assert(dart.equals(dart.dindex(x, 0), 'sendport')); | 297 dart.assert(dart.equals(dart.dindex(x, 0), 'sendport')); |
| 296 let managerId = dart.as(dart.dindex(x, 1), core.int); | 298 let managerId = dart.as(dart.dindex(x, 1), core.int); |
| 297 let isolateId = dart.as(dart.dindex(x, 2), core.int); | 299 let isolateId = dart.as(dart.dindex(x, 2), core.int); |
| 298 let receivePortId = dart.as(dart.dindex(x, 3), core.int); | 300 let receivePortId = dart.as(dart.dindex(x, 3), core.int); |
| 299 let result = null; | 301 let result = null; |
| 300 if (managerId == exports._globalState.currentManagerId) { | 302 if (managerId == exports._globalState.currentManagerId) { |
| 301 let isolate = exports._globalState.isolates.get(isolateId); | 303 let isolate = exports._globalState.isolates.get(isolateId); |
| 302 if (isolate == null) | 304 if (isolate == null) |
| 303 return null; | 305 return null; |
| 304 let receivePort = isolate.lookup(receivePortId); | 306 let receivePort = isolate.lookup(receivePortId); |
| 305 if (receivePort == null) | 307 if (receivePort == null) |
| 306 return null; | 308 return null; |
| 307 result = new _NativeJsSendPort(receivePort, isolateId); | 309 result = new _NativeJsSendPort(receivePort, isolateId); |
| 308 } else { | 310 } else { |
| 309 result = new _WorkerSendPort(managerId, isolateId, receivePortId); | 311 result = new _WorkerSendPort(managerId, isolateId, receivePortId); |
| 310 } | 312 } |
| 311 this.deserializedObjects.add(result); | 313 this.deserializedObjects[core.$add](result); |
| 312 return result; | 314 return result; |
| 313 } | 315 } |
| 314 deserializeRawSendPort(x) { | 316 deserializeRawSendPort(x) { |
| 315 dart.assert(dart.equals(dart.dindex(x, 0), 'raw sendport')); | 317 dart.assert(dart.equals(dart.dindex(x, 0), 'raw sendport')); |
| 316 let result = dart.as(dart.dindex(x, 1), isolate.SendPort); | 318 let result = dart.as(dart.dindex(x, 1), isolate.SendPort); |
| 317 this.deserializedObjects.add(result); | 319 this.deserializedObjects[core.$add](result); |
| 318 return result; | 320 return result; |
| 319 } | 321 } |
| 320 deserializeJSObject(x) { | 322 deserializeJSObject(x) { |
| 321 dart.assert(dart.equals(dart.dindex(x, 0), 'js-object')); | 323 dart.assert(dart.equals(dart.dindex(x, 0), 'js-object')); |
| 322 let keys = dart.as(dart.dindex(x, 1), core.List); | 324 let keys = dart.as(dart.dindex(x, 1), core.List); |
| 323 let values = dart.as(dart.dindex(x, 2), core.List); | 325 let values = dart.as(dart.dindex(x, 2), core.List); |
| 324 let o = {}; | 326 let o = {}; |
| 325 this.deserializedObjects.add(o); | 327 this.deserializedObjects[core.$add](o); |
| 326 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN
ull(i) + 1) { | 328 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)); | 329 o[keys[core.$get](i)] = this.deserialize(values[core.$get](i)); |
| 328 } | 330 } |
| 329 return o; | 331 return o; |
| 330 } | 332 } |
| 331 deserializeClosure(x) { | 333 deserializeClosure(x) { |
| 332 dart.assert(dart.equals(dart.dindex(x, 0), 'function')); | 334 dart.assert(dart.equals(dart.dindex(x, 0), 'function')); |
| 333 let name = dart.as(dart.dindex(x, 1), core.String); | 335 let name = dart.as(dart.dindex(x, 1), core.String); |
| 334 let result = dart.as(IsolateNatives._getJSFunctionFromName(name), core.Fun
ction); | 336 let result = dart.as(IsolateNatives[_getJSFunctionFromName](name), core.Fu
nction); |
| 335 this.deserializedObjects.add(result); | 337 this.deserializedObjects[core.$add](result); |
| 336 return result; | 338 return result; |
| 337 } | 339 } |
| 338 deserializeDartObject(x) { | 340 deserializeDartObject(x) { |
| 339 dart.assert(dart.equals(dart.dindex(x, 0), 'dart')); | 341 dart.assert(dart.equals(dart.dindex(x, 0), 'dart')); |
| 340 let classId = dart.as(dart.dindex(x, 1), core.String); | 342 let classId = dart.as(dart.dindex(x, 1), core.String); |
| 341 let fields = dart.as(dart.dindex(x, 2), core.List); | 343 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); | 344 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); | 345 let initializeObject = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded
_names.INITIALIZE_EMPTY_INSTANCE); |
| 344 let emptyInstance = instanceFromClassId(classId); | 346 let emptyInstance = instanceFromClassId(classId); |
| 345 this.deserializedObjects.add(emptyInstance); | 347 this.deserializedObjects[core.$add](emptyInstance); |
| 346 this.deserializeArrayInPlace(dart.as(fields, _interceptors.JSArray)); | 348 this.deserializeArrayInPlace(dart.as(fields, _interceptors.JSArray)); |
| 347 return initializeObject(classId, emptyInstance, fields); | 349 return initializeObject(classId, emptyInstance, fields); |
| 348 } | 350 } |
| 349 } | 351 } |
| 350 // Function _callInIsolate: (_IsolateContext, Function) → dynamic | 352 // Function _callInIsolate: (_IsolateContext, Function) → dynamic |
| 351 function _callInIsolate(isolate, function$0) { | 353 function _callInIsolate(isolate, function$0) { |
| 352 let result = isolate.eval(function$0); | 354 let result = isolate.eval(function$0); |
| 353 exports._globalState.topEventLoop.run(); | 355 exports._globalState.topEventLoop.run(); |
| 354 return result; | 356 return result; |
| 355 } | 357 } |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 this.mainManager.postMessage(_serializeMessage(dart.map({command: 'close
'}))); | 471 this.mainManager.postMessage(_serializeMessage(dart.map({command: 'close
'}))); |
| 470 } | 472 } |
| 471 } | 473 } |
| 472 } | 474 } |
| 473 let _controlPort = Symbol('_controlPort'); | 475 let _controlPort = Symbol('_controlPort'); |
| 474 let _scheduledControlEvents = Symbol('_scheduledControlEvents'); | 476 let _scheduledControlEvents = Symbol('_scheduledControlEvents'); |
| 475 let _isExecutingEvent = Symbol('_isExecutingEvent'); | 477 let _isExecutingEvent = Symbol('_isExecutingEvent'); |
| 476 let _updateGlobalState = Symbol('_updateGlobalState'); | 478 let _updateGlobalState = Symbol('_updateGlobalState'); |
| 477 let _setGlobals = Symbol('_setGlobals'); | 479 let _setGlobals = Symbol('_setGlobals'); |
| 478 let _addRegistration = Symbol('_addRegistration'); | 480 let _addRegistration = Symbol('_addRegistration'); |
| 481 let _close = Symbol('_close'); |
| 479 class _IsolateContext extends core.Object { | 482 class _IsolateContext extends core.Object { |
| 480 _IsolateContext() { | 483 _IsolateContext() { |
| 481 this.id = ((x$) => exports._globalState.nextIsolateId = dart.notNull(x$) +
1, x$).bind(this)(exports._globalState.nextIsolateId); | 484 this.id = ((x$) => exports._globalState.nextIsolateId = dart.notNull(x$) +
1, x$).bind(this)(exports._globalState.nextIsolateId); |
| 482 this.ports = new (core.Map$(core.int, RawReceivePortImpl))(); | 485 this.ports = new (core.Map$(core.int, RawReceivePortImpl))(); |
| 483 this.weakPorts = new (core.Set$(core.int))(); | 486 this.weakPorts = new (core.Set$(core.int))(); |
| 484 this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE(); | 487 this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE(); |
| 485 this.controlPort = new RawReceivePortImpl[_controlPort](); | 488 this.controlPort = new RawReceivePortImpl[_controlPort](); |
| 486 this.pauseCapability = new isolate.Capability(); | 489 this.pauseCapability = new isolate.Capability(); |
| 487 this.terminateCapability = new isolate.Capability(); | 490 this.terminateCapability = new isolate.Capability(); |
| 488 this.delayedEvents = dart.as(new core.List.from([]), core.List$(_IsolateEv
ent)); | 491 this.delayedEvents = dart.as(new core.List.from([]), core.List$(_IsolateEv
ent)); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 501 return; | 504 return; |
| 502 if (dart.notNull(this.pauseTokens.add(resume)) && !dart.notNull(this.isPau
sed)) { | 505 if (dart.notNull(this.pauseTokens.add(resume)) && !dart.notNull(this.isPau
sed)) { |
| 503 this.isPaused = true; | 506 this.isPaused = true; |
| 504 } | 507 } |
| 505 this[_updateGlobalState](); | 508 this[_updateGlobalState](); |
| 506 } | 509 } |
| 507 removePause(resume) { | 510 removePause(resume) { |
| 508 if (!dart.notNull(this.isPaused)) | 511 if (!dart.notNull(this.isPaused)) |
| 509 return; | 512 return; |
| 510 this.pauseTokens.remove(resume); | 513 this.pauseTokens.remove(resume); |
| 511 if (this.pauseTokens.isEmpty) { | 514 if (this.pauseTokens[core.$isEmpty]) { |
| 512 while (this.delayedEvents.isNotEmpty) { | 515 while (this.delayedEvents[core.$isNotEmpty]) { |
| 513 let event = this.delayedEvents.removeLast(); | 516 let event = this.delayedEvents[core.$removeLast](); |
| 514 exports._globalState.topEventLoop.prequeue(event); | 517 exports._globalState.topEventLoop.prequeue(event); |
| 515 } | 518 } |
| 516 this.isPaused = false; | 519 this.isPaused = false; |
| 517 } | 520 } |
| 518 this[_updateGlobalState](); | 521 this[_updateGlobalState](); |
| 519 } | 522 } |
| 520 addDoneListener(responsePort) { | 523 addDoneListener(responsePort) { |
| 521 if (this.doneHandlers == null) { | 524 if (this.doneHandlers == null) { |
| 522 this.doneHandlers = new core.List.from([]); | 525 this.doneHandlers = new core.List.from([]); |
| 523 } | 526 } |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 571 } | 574 } |
| 572 dart.dinvoke(this[_scheduledControlEvents], 'addLast', this.kill); | 575 dart.dinvoke(this[_scheduledControlEvents], 'addLast', this.kill); |
| 573 } | 576 } |
| 574 addErrorListener(port) { | 577 addErrorListener(port) { |
| 575 this.errorPorts.add(port); | 578 this.errorPorts.add(port); |
| 576 } | 579 } |
| 577 removeErrorListener(port) { | 580 removeErrorListener(port) { |
| 578 this.errorPorts.remove(port); | 581 this.errorPorts.remove(port); |
| 579 } | 582 } |
| 580 handleUncaughtError(error, stackTrace) { | 583 handleUncaughtError(error, stackTrace) { |
| 581 if (this.errorPorts.isEmpty) { | 584 if (this.errorPorts[core.$isEmpty]) { |
| 582 if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(thi
s, exports._globalState.rootContext))) { | 585 if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(thi
s, exports._globalState.rootContext))) { |
| 583 return; | 586 return; |
| 584 } | 587 } |
| 585 if (self.console && self.console.error) { | 588 if (self.console && self.console.error) { |
| 586 self.console.error(error, stackTrace); | 589 self.console.error(error, stackTrace); |
| 587 } else { | 590 } else { |
| 588 core.print(error); | 591 core.print(error); |
| 589 if (stackTrace != null) | 592 if (stackTrace != null) |
| 590 core.print(stackTrace); | 593 core.print(stackTrace); |
| 591 } | 594 } |
| 592 return; | 595 return; |
| 593 } | 596 } |
| 594 let message = new core.List(2); | 597 let message = new core.List(2); |
| 595 message.set(0, dart.dinvoke(error, 'toString')); | 598 message[core.$set](0, dart.dinvoke(error, 'toString')); |
| 596 message.set(1, stackTrace == null ? null : stackTrace.toString()); | 599 message[core.$set](1, stackTrace == null ? null : stackTrace.toString()); |
| 597 for (let port of this.errorPorts) | 600 for (let port of this.errorPorts) |
| 598 port.send(message); | 601 port.send(message); |
| 599 } | 602 } |
| 600 eval(code) { | 603 eval(code) { |
| 601 let old = exports._globalState.currentContext; | 604 let old = exports._globalState.currentContext; |
| 602 exports._globalState.currentContext = this; | 605 exports._globalState.currentContext = this; |
| 603 this._setGlobals(); | 606 this[_setGlobals](); |
| 604 let result = null; | 607 let result = null; |
| 605 this[_isExecutingEvent] = true; | 608 this[_isExecutingEvent] = true; |
| 606 try { | 609 try { |
| 607 result = dart.dinvokef(code); | 610 result = dart.dinvokef(code); |
| 608 } catch (e) { | 611 } catch (e) { |
| 609 let s = dart.stackTrace(e); | 612 let s = dart.stackTrace(e); |
| 610 this.handleUncaughtError(e, s); | 613 this.handleUncaughtError(e, s); |
| 611 if (this.errorsAreFatal) { | 614 if (this.errorsAreFatal) { |
| 612 this.kill(); | 615 this.kill(); |
| 613 if (core.identical(this, exports._globalState.rootContext)) { | 616 if (core.identical(this, exports._globalState.rootContext)) { |
| 614 throw e; | 617 throw e; |
| 615 } | 618 } |
| 616 } | 619 } |
| 617 } | 620 } |
| 618 finally { | 621 finally { |
| 619 this[_isExecutingEvent] = false; | 622 this[_isExecutingEvent] = false; |
| 620 exports._globalState.currentContext = old; | 623 exports._globalState.currentContext = old; |
| 621 if (old != null) | 624 if (old != null) |
| 622 old._setGlobals(); | 625 old[_setGlobals](); |
| 623 if (this[_scheduledControlEvents] != null) { | 626 if (this[_scheduledControlEvents] != null) { |
| 624 while (dart.dload(this[_scheduledControlEvents], 'isNotEmpty')) { | 627 while (dart.dload(this[_scheduledControlEvents], 'isNotEmpty')) { |
| 625 dart.dinvokef(dart.dinvoke(this[_scheduledControlEvents], 'removeFir
st')); | 628 dart.dinvokef(dart.dinvoke(this[_scheduledControlEvents], 'removeFir
st')); |
| 626 } | 629 } |
| 627 } | 630 } |
| 628 } | 631 } |
| 629 return result; | 632 return result; |
| 630 } | 633 } |
| 631 [_setGlobals]() { | 634 [_setGlobals]() { |
| 632 _foreign_helper.JS_SET_CURRENT_ISOLATE(this.isolateStatics); | 635 _foreign_helper.JS_SET_CURRENT_ISOLATE(this.isolateStatics); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 692 } | 695 } |
| 693 register(portId, port) { | 696 register(portId, port) { |
| 694 this[_addRegistration](portId, port); | 697 this[_addRegistration](portId, port); |
| 695 this[_updateGlobalState](); | 698 this[_updateGlobalState](); |
| 696 } | 699 } |
| 697 registerWeak(portId, port) { | 700 registerWeak(portId, port) { |
| 698 this.weakPorts.add(portId); | 701 this.weakPorts.add(portId); |
| 699 this[_addRegistration](portId, port); | 702 this[_addRegistration](portId, port); |
| 700 } | 703 } |
| 701 [_updateGlobalState]() { | 704 [_updateGlobalState]() { |
| 702 if (dart.notNull(this.ports.length) - dart.notNull(this.weakPorts.length)
> 0 || dart.notNull(this.isPaused) || !dart.notNull(this.initialized)) { | 705 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); | 706 exports._globalState.isolates.set(this.id, this); |
| 704 } else { | 707 } else { |
| 705 this.kill(); | 708 this.kill(); |
| 706 } | 709 } |
| 707 } | 710 } |
| 708 kill() { | 711 kill() { |
| 709 if (this[_scheduledControlEvents] != null) { | 712 if (this[_scheduledControlEvents] != null) { |
| 710 dart.dinvoke(this[_scheduledControlEvents], 'clear'); | 713 dart.dinvoke(this[_scheduledControlEvents], 'clear'); |
| 711 } | 714 } |
| 712 for (let port of this.ports.values) { | 715 for (let port of this.ports.values) { |
| 713 port._close(); | 716 port[_close](); |
| 714 } | 717 } |
| 715 this.ports.clear(); | 718 this.ports.clear(); |
| 716 this.weakPorts.clear(); | 719 this.weakPorts.clear(); |
| 717 exports._globalState.isolates.remove(this.id); | 720 exports._globalState.isolates.remove(this.id); |
| 718 this.errorPorts.clear(); | 721 this.errorPorts.clear(); |
| 719 if (this.doneHandlers != null) { | 722 if (this.doneHandlers != null) { |
| 720 for (let port of dart.as(this.doneHandlers, core.Iterable$(isolate.SendP
ort))) { | 723 for (let port of dart.as(this.doneHandlers, core.Iterable$(isolate.SendP
ort))) { |
| 721 port.send(null); | 724 port.send(null); |
| 722 } | 725 } |
| 723 this.doneHandlers = null; | 726 this.doneHandlers = null; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 736 this.events = new (collection.Queue$(_IsolateEvent))(); | 739 this.events = new (collection.Queue$(_IsolateEvent))(); |
| 737 this[_activeJsAsyncCount] = 0; | 740 this[_activeJsAsyncCount] = 0; |
| 738 } | 741 } |
| 739 enqueue(isolate, fn, msg) { | 742 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))); | 743 this.events.addLast(new _IsolateEvent(dart.as(isolate, _IsolateContext), d
art.as(fn, core.Function), dart.as(msg, core.String))); |
| 741 } | 744 } |
| 742 prequeue(event) { | 745 prequeue(event) { |
| 743 this.events.addFirst(event); | 746 this.events.addFirst(event); |
| 744 } | 747 } |
| 745 dequeue() { | 748 dequeue() { |
| 746 if (this.events.isEmpty) | 749 if (this.events[core.$isEmpty]) |
| 747 return null; | 750 return null; |
| 748 return this.events.removeFirst(); | 751 return this.events.removeFirst(); |
| 749 } | 752 } |
| 750 checkOpenReceivePortsFromCommandLine() { | 753 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)) { | 754 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."); | 755 throw new core.Exception("Program exited with open ReceivePorts."); |
| 753 } | 756 } |
| 754 } | 757 } |
| 755 runIteration() { | 758 runIteration() { |
| 756 let event = this.dequeue(); | 759 let event = this.dequeue(); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 791 } | 794 } |
| 792 } | 795 } |
| 793 class _IsolateEvent extends core.Object { | 796 class _IsolateEvent extends core.Object { |
| 794 _IsolateEvent(isolate, fn, message) { | 797 _IsolateEvent(isolate, fn, message) { |
| 795 this.isolate = isolate; | 798 this.isolate = isolate; |
| 796 this.fn = fn; | 799 this.fn = fn; |
| 797 this.message = message; | 800 this.message = message; |
| 798 } | 801 } |
| 799 process() { | 802 process() { |
| 800 if (this.isolate.isPaused) { | 803 if (this.isolate.isPaused) { |
| 801 this.isolate.delayedEvents.add(this); | 804 this.isolate.delayedEvents[core.$add](this); |
| 802 return; | 805 return; |
| 803 } | 806 } |
| 804 this.isolate.eval(this.fn); | 807 this.isolate.eval(this.fn); |
| 805 } | 808 } |
| 806 } | 809 } |
| 807 class _MainManagerStub extends core.Object { | 810 class _MainManagerStub extends core.Object { |
| 808 postMessage(msg) { | 811 postMessage(msg) { |
| 809 _js_helper.requiresPreamble(); | 812 _js_helper.requiresPreamble(); |
| 810 self.postMessage(msg); | 813 self.postMessage(msg); |
| 811 } | 814 } |
| 812 } | 815 } |
| 813 let _SPAWNED_SIGNAL = "spawned"; | 816 let _SPAWNED_SIGNAL = "spawned"; |
| 814 let _SPAWN_FAILED_SIGNAL = "spawn failed"; | 817 let _SPAWN_FAILED_SIGNAL = "spawn failed"; |
| 815 dart.copyProperties(exports, { | 818 dart.copyProperties(exports, { |
| 816 get globalWindow() { | 819 get globalWindow() { |
| 817 _js_helper.requiresPreamble(); | 820 _js_helper.requiresPreamble(); |
| 818 return self.window; | 821 return self.window; |
| 819 }, | 822 }, |
| 820 get globalWorker() { | 823 get globalWorker() { |
| 821 _js_helper.requiresPreamble(); | 824 _js_helper.requiresPreamble(); |
| 822 return self.Worker; | 825 return self.Worker; |
| 823 }, | 826 }, |
| 824 get globalPostMessageDefined() { | 827 get globalPostMessageDefined() { |
| 825 _js_helper.requiresPreamble(); | 828 _js_helper.requiresPreamble(); |
| 826 return !!self.postMessage; | 829 return !!self.postMessage; |
| 827 } | 830 } |
| 828 }); | 831 }); |
| 829 let _getEventData = Symbol('_getEventData'); | 832 let _getEventData = Symbol('_getEventData'); |
| 830 let _getJSFunctionFromName = Symbol('_getJSFunctionFromName'); | |
| 831 let _startIsolate = Symbol('_startIsolate'); | 833 let _startIsolate = Symbol('_startIsolate'); |
| 832 let _log = Symbol('_log'); | 834 let _log = Symbol('_log'); |
| 833 let _consoleLog = Symbol('_consoleLog'); | 835 let _consoleLog = Symbol('_consoleLog'); |
| 834 let _getJSFunctionName = Symbol('_getJSFunctionName'); | |
| 835 let _allocate = Symbol('_allocate'); | 836 let _allocate = Symbol('_allocate'); |
| 836 let _startWorker = Symbol('_startWorker'); | 837 let _startWorker = Symbol('_startWorker'); |
| 837 let _startNonWorker = Symbol('_startNonWorker'); | 838 let _startNonWorker = Symbol('_startNonWorker'); |
| 838 let _spawnWorker = Symbol('_spawnWorker'); | 839 let _spawnWorker = Symbol('_spawnWorker'); |
| 839 class IsolateNatives extends core.Object { | 840 class IsolateNatives extends core.Object { |
| 840 static computeThisScript() { | 841 static computeThisScript() { |
| 841 let currentScript = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_na
mes.CURRENT_SCRIPT); | 842 let currentScript = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_na
mes.CURRENT_SCRIPT); |
| 842 if (currentScript != null) { | 843 if (currentScript != null) { |
| 843 return String(currentScript.src); | 844 return String(currentScript.src); |
| 844 } | 845 } |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1120 this[_isolateId] = isolateId$; | 1121 this[_isolateId] = isolateId$; |
| 1121 } | 1122 } |
| 1122 [_checkReplyTo](replyTo) { | 1123 [_checkReplyTo](replyTo) { |
| 1123 if (dart.notNull(replyTo != null) && dart.notNull(!dart.is(replyTo, _Nativ
eJsSendPort)) && dart.notNull(!dart.is(replyTo, _WorkerSendPort))) { | 1124 if (dart.notNull(replyTo != null) && dart.notNull(!dart.is(replyTo, _Nativ
eJsSendPort)) && dart.notNull(!dart.is(replyTo, _WorkerSendPort))) { |
| 1124 throw new core.Exception("SendPort.send: Illegal replyTo port type"); | 1125 throw new core.Exception("SendPort.send: Illegal replyTo port type"); |
| 1125 } | 1126 } |
| 1126 } | 1127 } |
| 1127 } | 1128 } |
| 1128 _BaseSendPort[dart.implements] = () => [isolate.SendPort]; | 1129 _BaseSendPort[dart.implements] = () => [isolate.SendPort]; |
| 1129 let _isClosed = Symbol('_isClosed'); | 1130 let _isClosed = Symbol('_isClosed'); |
| 1131 let _add = Symbol('_add'); |
| 1130 class _NativeJsSendPort extends _BaseSendPort { | 1132 class _NativeJsSendPort extends _BaseSendPort { |
| 1131 _NativeJsSendPort(receivePort$, isolateId) { | 1133 _NativeJsSendPort(receivePort$, isolateId) { |
| 1132 this[_receivePort] = receivePort$; | 1134 this[_receivePort] = receivePort$; |
| 1133 super._BaseSendPort(isolateId); | 1135 super._BaseSendPort(isolateId); |
| 1134 } | 1136 } |
| 1135 send(message) { | 1137 send(message) { |
| 1136 let isolate = exports._globalState.isolates.get(this[_isolateId]); | 1138 let isolate = exports._globalState.isolates.get(this[_isolateId]); |
| 1137 if (isolate == null) | 1139 if (isolate == null) |
| 1138 return; | 1140 return; |
| 1139 if (this[_receivePort][_isClosed]) | 1141 if (this[_receivePort][_isClosed]) |
| 1140 return; | 1142 return; |
| 1141 let msg = _clone(message); | 1143 let msg = _clone(message); |
| 1142 if (dart.equals(isolate.controlPort, this[_receivePort])) { | 1144 if (dart.equals(isolate.controlPort, this[_receivePort])) { |
| 1143 isolate.handleControlMessage(msg); | 1145 isolate.handleControlMessage(msg); |
| 1144 return; | 1146 return; |
| 1145 } | 1147 } |
| 1146 exports._globalState.topEventLoop.enqueue(isolate, (() => { | 1148 exports._globalState.topEventLoop.enqueue(isolate, (() => { |
| 1147 if (!dart.notNull(this[_receivePort][_isClosed])) { | 1149 if (!dart.notNull(this[_receivePort][_isClosed])) { |
| 1148 this[_receivePort]._add(msg); | 1150 this[_receivePort][_add](msg); |
| 1149 } | 1151 } |
| 1150 }).bind(this), `receive ${message}`); | 1152 }).bind(this), `receive ${message}`); |
| 1151 } | 1153 } |
| 1152 ['=='](other) { | 1154 ['=='](other) { |
| 1153 return dart.notNull(dart.is(other, _NativeJsSendPort)) && dart.notNull(dar
t.equals(this[_receivePort], dart.dload(other, '_receivePort'))); | 1155 return dart.notNull(dart.is(other, _NativeJsSendPort)) && dart.notNull(dar
t.equals(this[_receivePort], dart.dload(other, '_receivePort'))); |
| 1154 } | 1156 } |
| 1155 get hashCode() { | 1157 get hashCode() { |
| 1156 return this[_receivePort][_id]; | 1158 return this[_receivePort][_id]; |
| 1157 } | 1159 } |
| 1158 } | 1160 } |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1177 ['=='](other) { | 1179 ['=='](other) { |
| 1178 return dart.notNull(dart.is(other, _WorkerSendPort)) && dart.equals(this[_
workerId], dart.dload(other, '_workerId')) && dart.equals(this[_isolateId], dart
.dload(other, '_isolateId')) && dart.equals(this[_receivePortId], dart.dload(oth
er, '_receivePortId')); | 1180 return dart.notNull(dart.is(other, _WorkerSendPort)) && dart.equals(this[_
workerId], dart.dload(other, '_workerId')) && dart.equals(this[_isolateId], dart
.dload(other, '_isolateId')) && dart.equals(this[_receivePortId], dart.dload(oth
er, '_receivePortId')); |
| 1179 } | 1181 } |
| 1180 get hashCode() { | 1182 get hashCode() { |
| 1181 return dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId]
) << 8 ^ dart.notNull(this[_receivePortId]); | 1183 return dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId]
) << 8 ^ dart.notNull(this[_receivePortId]); |
| 1182 } | 1184 } |
| 1183 } | 1185 } |
| 1184 _WorkerSendPort[dart.implements] = () => [isolate.SendPort]; | 1186 _WorkerSendPort[dart.implements] = () => [isolate.SendPort]; |
| 1185 let _handler = Symbol('_handler'); | 1187 let _handler = Symbol('_handler'); |
| 1186 let _nextFreeId = Symbol('_nextFreeId'); | 1188 let _nextFreeId = Symbol('_nextFreeId'); |
| 1187 let _close = Symbol('_close'); | |
| 1188 let _add = Symbol('_add'); | |
| 1189 class RawReceivePortImpl extends core.Object { | 1189 class RawReceivePortImpl extends core.Object { |
| 1190 RawReceivePortImpl(handler) { | 1190 RawReceivePortImpl(handler) { |
| 1191 this[_handler] = handler; | 1191 this[_handler] = handler; |
| 1192 this[_id] = ((x$) => RawReceivePortImpl[_nextFreeId] = dart.notNull(x$) +
1, x$)(RawReceivePortImpl[_nextFreeId]); | 1192 this[_id] = ((x$) => RawReceivePortImpl[_nextFreeId] = dart.notNull(x$) +
1, x$)(RawReceivePortImpl[_nextFreeId]); |
| 1193 this[_isClosed] = false; | 1193 this[_isClosed] = false; |
| 1194 exports._globalState.currentContext.register(this[_id], this); | 1194 exports._globalState.currentContext.register(this[_id], this); |
| 1195 } | 1195 } |
| 1196 weak(handler) { | 1196 weak(handler) { |
| 1197 this[_handler] = handler; | 1197 this[_handler] = handler; |
| 1198 this[_id] = ((x$) => RawReceivePortImpl[_nextFreeId] = dart.notNull(x$) +
1, x$)(RawReceivePortImpl[_nextFreeId]); | 1198 this[_id] = ((x$) => RawReceivePortImpl[_nextFreeId] = dart.notNull(x$) +
1, x$)(RawReceivePortImpl[_nextFreeId]); |
| (...skipping 173 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 |