| 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 _id = Symbol('_id'); |
| 22 let _receivePort = Symbol('_receivePort'); | 23 let _receivePort = Symbol('_receivePort'); |
| 23 let _id = Symbol('_id'); | |
| 24 let _getJSFunctionName = Symbol('_getJSFunctionName'); | 24 let _getJSFunctionName = Symbol('_getJSFunctionName'); |
| 25 class _Serializer extends core.Object { | 25 class _Serializer extends core.Object { |
| 26 _Serializer(opts) { | 26 _Serializer(opts) { |
| 27 let serializeSendPorts = opts && 'serializeSendPorts' in opts ? opts.seria
lizeSendPorts : true; | 27 let serializeSendPorts = opts && 'serializeSendPorts' in opts ? opts.seria
lizeSendPorts : true; |
| 28 this.serializedObjectIds = new core.Map$(dart.dynamic, core.int).identity(
); | 28 this.serializedObjectIds = new core.Map$(dart.dynamic, core.int).identity(
); |
| 29 this[_serializeSendPorts] = dart.as(serializeSendPorts, core.bool); | 29 this[_serializeSendPorts] = dart.as(serializeSendPorts, core.bool); |
| 30 } | 30 } |
| 31 serialize(x) { | 31 serialize(x) { |
| 32 if (this.isPrimitive(x)) | 32 if (this.isPrimitive(x)) |
| 33 return this.serializePrimitive(x); | 33 return this.serializePrimitive(x); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 63 if (message === void 0) | 63 if (message === void 0) |
| 64 message = null; | 64 message = null; |
| 65 if (message == null) | 65 if (message == null) |
| 66 message = "Can't transmit:"; | 66 message = "Can't transmit:"; |
| 67 throw new core.UnsupportedError(`${message} ${x}`); | 67 throw new core.UnsupportedError(`${message} ${x}`); |
| 68 } | 68 } |
| 69 makeRef(serializationId) { | 69 makeRef(serializationId) { |
| 70 return new core.List.from(["ref", serializationId]); | 70 return new core.List.from(["ref", serializationId]); |
| 71 } | 71 } |
| 72 isPrimitive(x) { | 72 isPrimitive(x) { |
| 73 return dart.notNull(x == null) || dart.notNull(typeof x == 'string') || da
rt.notNull(dart.is(x, core.num)) || dart.notNull(typeof x == 'boolean'); | 73 return dart.notNull(x == null) || typeof x == 'string' || dart.is(x, core.
num) || typeof x == 'boolean'; |
| 74 } | 74 } |
| 75 serializePrimitive(primitive) { | 75 serializePrimitive(primitive) { |
| 76 return primitive; | 76 return primitive; |
| 77 } | 77 } |
| 78 serializeByteBuffer(buffer) { | 78 serializeByteBuffer(buffer) { |
| 79 return new core.List.from(["buffer", buffer]); | 79 return new core.List.from(["buffer", buffer]); |
| 80 } | 80 } |
| 81 serializeTypedData(data) { | 81 serializeTypedData(data) { |
| 82 return new core.List.from(["typed", data]); | 82 return new core.List.from(["typed", data]); |
| 83 } | 83 } |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 { | 222 { |
| 223 return this.deserializeDartObject(x); | 223 return this.deserializeDartObject(x); |
| 224 } | 224 } |
| 225 default: | 225 default: |
| 226 { | 226 { |
| 227 throw `couldn't deserialize: ${x}`; | 227 throw `couldn't deserialize: ${x}`; |
| 228 } | 228 } |
| 229 } | 229 } |
| 230 } | 230 } |
| 231 isPrimitive(x) { | 231 isPrimitive(x) { |
| 232 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) || typeof x == 'string' || dart.is(x, core.
num) || typeof x == 'boolean'; |
| 233 } | 233 } |
| 234 deserializePrimitive(x) { | 234 deserializePrimitive(x) { |
| 235 return x; | 235 return x; |
| 236 } | 236 } |
| 237 deserializeRef(x) { | 237 deserializeRef(x) { |
| 238 dart.assert(dart.equals(dart.dindex(x, 0), 'ref')); | 238 dart.assert(dart.equals(dart.dindex(x, 0), 'ref')); |
| 239 let serializationId = dart.as(dart.dindex(x, 1), core.int); | 239 let serializationId = dart.as(dart.dindex(x, 1), core.int); |
| 240 return this.deserializedObjects[core.$get](serializationId); | 240 return this.deserializedObjects[core.$get](serializationId); |
| 241 } | 241 } |
| 242 deserializeByteBuffer(x) { | 242 deserializeByteBuffer(x) { |
| (...skipping 883 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1126 get workerIds() { | 1126 get workerIds() { |
| 1127 return new (core.Expando$(core.int))(); | 1127 return new (core.Expando$(core.int))(); |
| 1128 } | 1128 } |
| 1129 }); | 1129 }); |
| 1130 let _checkReplyTo = Symbol('_checkReplyTo'); | 1130 let _checkReplyTo = Symbol('_checkReplyTo'); |
| 1131 class _BaseSendPort extends core.Object { | 1131 class _BaseSendPort extends core.Object { |
| 1132 _BaseSendPort(isolateId$) { | 1132 _BaseSendPort(isolateId$) { |
| 1133 this[_isolateId] = isolateId$; | 1133 this[_isolateId] = isolateId$; |
| 1134 } | 1134 } |
| 1135 [_checkReplyTo](replyTo) { | 1135 [_checkReplyTo](replyTo) { |
| 1136 if (dart.notNull(replyTo != null) && dart.notNull(!dart.is(replyTo, _Nativ
eJsSendPort)) && dart.notNull(!dart.is(replyTo, _WorkerSendPort))) { | 1136 if (dart.notNull(replyTo != null) && !dart.is(replyTo, _NativeJsSendPort)
&& !dart.is(replyTo, _WorkerSendPort)) { |
| 1137 throw new core.Exception("SendPort.send: Illegal replyTo port type"); | 1137 throw new core.Exception("SendPort.send: Illegal replyTo port type"); |
| 1138 } | 1138 } |
| 1139 } | 1139 } |
| 1140 } | 1140 } |
| 1141 _BaseSendPort[dart.implements] = () => [isolate.SendPort]; | 1141 _BaseSendPort[dart.implements] = () => [isolate.SendPort]; |
| 1142 let _isClosed = Symbol('_isClosed'); | 1142 let _isClosed = Symbol('_isClosed'); |
| 1143 let _add = Symbol('_add'); | 1143 let _add = Symbol('_add'); |
| 1144 class _NativeJsSendPort extends _BaseSendPort { | 1144 class _NativeJsSendPort extends _BaseSendPort { |
| 1145 _NativeJsSendPort(receivePort$, isolateId) { | 1145 _NativeJsSendPort(receivePort$, isolateId) { |
| 1146 this[_receivePort] = receivePort$; | 1146 this[_receivePort] = receivePort$; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1157 isolate.handleControlMessage(msg); | 1157 isolate.handleControlMessage(msg); |
| 1158 return; | 1158 return; |
| 1159 } | 1159 } |
| 1160 exports._globalState.topEventLoop.enqueue(isolate, (() => { | 1160 exports._globalState.topEventLoop.enqueue(isolate, (() => { |
| 1161 if (!dart.notNull(this[_receivePort][_isClosed])) { | 1161 if (!dart.notNull(this[_receivePort][_isClosed])) { |
| 1162 this[_receivePort][_add](msg); | 1162 this[_receivePort][_add](msg); |
| 1163 } | 1163 } |
| 1164 }).bind(this), `receive ${message}`); | 1164 }).bind(this), `receive ${message}`); |
| 1165 } | 1165 } |
| 1166 ['=='](other) { | 1166 ['=='](other) { |
| 1167 return dart.notNull(dart.is(other, _NativeJsSendPort)) && dart.notNull(dar
t.equals(this[_receivePort], dart.dload(other, '_receivePort'))); | 1167 return dart.is(other, _NativeJsSendPort) && dart.notNull(dart.equals(this[
_receivePort], dart.dload(other, _receivePort))); |
| 1168 } | 1168 } |
| 1169 get hashCode() { | 1169 get hashCode() { |
| 1170 return this[_receivePort][_id]; | 1170 return this[_receivePort][_id]; |
| 1171 } | 1171 } |
| 1172 } | 1172 } |
| 1173 _NativeJsSendPort[dart.implements] = () => [isolate.SendPort]; | 1173 _NativeJsSendPort[dart.implements] = () => [isolate.SendPort]; |
| 1174 class _WorkerSendPort extends _BaseSendPort { | 1174 class _WorkerSendPort extends _BaseSendPort { |
| 1175 _WorkerSendPort(workerId$, isolateId, receivePortId$) { | 1175 _WorkerSendPort(workerId$, isolateId, receivePortId$) { |
| 1176 this[_workerId] = workerId$; | 1176 this[_workerId] = workerId$; |
| 1177 this[_receivePortId] = receivePortId$; | 1177 this[_receivePortId] = receivePortId$; |
| 1178 super._BaseSendPort(isolateId); | 1178 super._BaseSendPort(isolateId); |
| 1179 } | 1179 } |
| 1180 send(message) { | 1180 send(message) { |
| 1181 let workerMessage = _serializeMessage(dart.map({command: 'message', port:
this, msg: message})); | 1181 let workerMessage = _serializeMessage(dart.map({command: 'message', port:
this, msg: message})); |
| 1182 if (exports._globalState.isWorker) { | 1182 if (exports._globalState.isWorker) { |
| 1183 exports._globalState.mainManager.postMessage(workerMessage); | 1183 exports._globalState.mainManager.postMessage(workerMessage); |
| 1184 } else { | 1184 } else { |
| 1185 let manager = exports._globalState.managers.get(this[_workerId]); | 1185 let manager = exports._globalState.managers.get(this[_workerId]); |
| 1186 if (manager != null) { | 1186 if (manager != null) { |
| 1187 manager.postMessage(workerMessage); | 1187 manager.postMessage(workerMessage); |
| 1188 } | 1188 } |
| 1189 } | 1189 } |
| 1190 } | 1190 } |
| 1191 ['=='](other) { | 1191 ['=='](other) { |
| 1192 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')); | 1192 return dart.is(other, _WorkerSendPort) && dart.equals(this[_workerId], dar
t.dload(other, _workerId)) && dart.equals(this[_isolateId], dart.dload(other, _i
solateId)) && dart.equals(this[_receivePortId], dart.dload(other, _receivePortId
)); |
| 1193 } | 1193 } |
| 1194 get hashCode() { | 1194 get hashCode() { |
| 1195 return dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId]
) << 8 ^ dart.notNull(this[_receivePortId]); | 1195 return dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId]
) << 8 ^ dart.notNull(this[_receivePortId]); |
| 1196 } | 1196 } |
| 1197 } | 1197 } |
| 1198 _WorkerSendPort[dart.implements] = () => [isolate.SendPort]; | 1198 _WorkerSendPort[dart.implements] = () => [isolate.SendPort]; |
| 1199 let _handler = Symbol('_handler'); | 1199 let _handler = Symbol('_handler'); |
| 1200 let _nextFreeId = Symbol('_nextFreeId'); | 1200 let _nextFreeId = Symbol('_nextFreeId'); |
| 1201 class RawReceivePortImpl extends core.Object { | 1201 class RawReceivePortImpl extends core.Object { |
| 1202 RawReceivePortImpl(handler) { | 1202 RawReceivePortImpl(handler) { |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1392 exports.leaveJsAsync = leaveJsAsync; | 1392 exports.leaveJsAsync = leaveJsAsync; |
| 1393 exports.isWorker = isWorker; | 1393 exports.isWorker = isWorker; |
| 1394 exports.startRootIsolate = startRootIsolate; | 1394 exports.startRootIsolate = startRootIsolate; |
| 1395 exports.IsolateNatives = IsolateNatives; | 1395 exports.IsolateNatives = IsolateNatives; |
| 1396 exports.RawReceivePortImpl = RawReceivePortImpl; | 1396 exports.RawReceivePortImpl = RawReceivePortImpl; |
| 1397 exports.ReceivePortImpl = ReceivePortImpl; | 1397 exports.ReceivePortImpl = ReceivePortImpl; |
| 1398 exports.TimerImpl = TimerImpl; | 1398 exports.TimerImpl = TimerImpl; |
| 1399 exports.hasTimer = hasTimer; | 1399 exports.hasTimer = hasTimer; |
| 1400 exports.CapabilityImpl = CapabilityImpl; | 1400 exports.CapabilityImpl = CapabilityImpl; |
| 1401 })(_isolate_helper || (_isolate_helper = {})); | 1401 })(_isolate_helper || (_isolate_helper = {})); |
| OLD | NEW |