OLD | NEW |
1 dart.library('dart/_isolate_helper', null, /* Imports */[ | 1 dart.library('dart/_isolate_helper', null, /* Imports */[ |
2 'dart/core', | 2 'dart/core', |
3 'dart/_native_typed_data', | 3 'dart/_native_typed_data', |
4 'dart/_interceptors', | 4 'dart/_interceptors', |
5 'dart/_js_helper', | 5 'dart/_js_helper', |
6 'dart/isolate', | 6 'dart/isolate', |
7 'dart/_foreign_helper', | 7 'dart/_foreign_helper', |
8 'dart/_js_embedded_names', | 8 'dart/_js_embedded_names', |
9 'dart/collection', | 9 'dart/collection', |
10 'dart/async' | 10 'dart/async' |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 return ["extendable", serialized]; | 99 return ["extendable", serialized]; |
100 if (dart.is(indexable, _interceptors.JSMutableArray)) | 100 if (dart.is(indexable, _interceptors.JSMutableArray)) |
101 return ["mutable", serialized]; | 101 return ["mutable", serialized]; |
102 if (dart.is(indexable, _interceptors.JSArray)) | 102 if (dart.is(indexable, _interceptors.JSArray)) |
103 return ["const", serialized]; | 103 return ["const", serialized]; |
104 this.unsupported(indexable, "Can't serialize indexable: "); | 104 this.unsupported(indexable, "Can't serialize indexable: "); |
105 return null; | 105 return null; |
106 } | 106 } |
107 serializeArray(x) { | 107 serializeArray(x) { |
108 let serialized = []; | 108 let serialized = []; |
109 serialized.length = x.length; | 109 serialized[dartx.length] = x[dartx.length]; |
110 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull
(i) + 1) { | 110 for (let i = 0; dart.notNull(i) < dart.notNull(x[dartx.length]); i = dart.
notNull(i) + 1) { |
111 serialized[dartx.set](i, this.serialize(x[dartx.get](i))); | 111 serialized[dartx.set](i, this.serialize(x[dartx.get](i))); |
112 } | 112 } |
113 return serialized; | 113 return serialized; |
114 } | 114 } |
115 serializeArrayInPlace(x) { | 115 serializeArrayInPlace(x) { |
116 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull
(i) + 1) { | 116 for (let i = 0; dart.notNull(i) < dart.notNull(x[dartx.length]); i = dart.
notNull(i) + 1) { |
117 x[dartx.set](i, this.serialize(x[dartx.get](i))); | 117 x[dartx.set](i, this.serialize(x[dartx.get](i))); |
118 } | 118 } |
119 return x; | 119 return x; |
120 } | 120 } |
121 serializeMap(x) { | 121 serializeMap(x) { |
122 let serializeTearOff = dart.bind(this, 'serialize'); | 122 let serializeTearOff = dart.bind(this, 'serialize'); |
123 return ['map', x.keys[dartx.map](dart.as(serializeTearOff, __CastType0))[d
artx.toList](), x.values[dartx.map](dart.as(serializeTearOff, dart.functionType(
core.Object, [dart.bottom])))[dartx.toList]()]; | 123 return ['map', x.keys[dartx.map](dart.as(serializeTearOff, __CastType0))[d
artx.toList](), x.values[dartx.map](dart.as(serializeTearOff, dart.functionType(
core.Object, [dart.bottom])))[dartx.toList]()]; |
124 } | 124 } |
125 serializeJSObject(x) { | 125 serializeJSObject(x) { |
126 if (!!x.constructor && x.constructor !== Object) { | 126 if (!!x.constructor && x.constructor !== Object) { |
127 this.unsupported(x, "Only plain JS Objects are supported:"); | 127 this.unsupported(x, "Only plain JS Objects are supported:"); |
128 } | 128 } |
129 let keys = dart.as(Object.keys(x), core.List); | 129 let keys = dart.as(Object.keys(x), core.List); |
130 let values = []; | 130 let values = []; |
131 values.length = keys.length; | 131 values[dartx.length] = keys[dartx.length]; |
132 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN
ull(i) + 1) { | 132 for (let i = 0; dart.notNull(i) < dart.notNull(keys[dartx.length]); i = da
rt.notNull(i) + 1) { |
133 values[dartx.set](i, this.serialize(x[keys[dartx.get](i)])); | 133 values[dartx.set](i, this.serialize(x[keys[dartx.get](i)])); |
134 } | 134 } |
135 return ['js-object', keys, values]; | 135 return ['js-object', keys, values]; |
136 } | 136 } |
137 serializeWorkerSendPort(x) { | 137 serializeWorkerSendPort(x) { |
138 if (dart.notNull(this[_serializeSendPorts])) { | 138 if (dart.notNull(this[_serializeSendPorts])) { |
139 return ['sendport', x[_workerId], x[_isolateId], x[_receivePortId]]; | 139 return ['sendport', x[_workerId], x[_isolateId], x[_receivePortId]]; |
140 } | 140 } |
141 return ['raw sendport', x]; | 141 return ['raw sendport', x]; |
142 } | 142 } |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 this.deserializedObjects[dartx.add](result); | 275 this.deserializedObjects[dartx.add](result); |
276 return result; | 276 return result; |
277 } | 277 } |
278 deserializeTypedData(x) { | 278 deserializeTypedData(x) { |
279 dart.assert(dart.equals(dart.dindex(x, 0), 'typed')); | 279 dart.assert(dart.equals(dart.dindex(x, 0), 'typed')); |
280 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeTypedData
); | 280 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeTypedData
); |
281 this.deserializedObjects[dartx.add](result); | 281 this.deserializedObjects[dartx.add](result); |
282 return result; | 282 return result; |
283 } | 283 } |
284 deserializeArrayInPlace(x) { | 284 deserializeArrayInPlace(x) { |
285 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull
(i) + 1) { | 285 for (let i = 0; dart.notNull(i) < dart.notNull(x[dartx.length]); i = dart.
notNull(i) + 1) { |
286 x[dartx.set](i, this.deserialize(x[dartx.get](i))); | 286 x[dartx.set](i, this.deserialize(x[dartx.get](i))); |
287 } | 287 } |
288 return x; | 288 return x; |
289 } | 289 } |
290 deserializeFixed(x) { | 290 deserializeFixed(x) { |
291 dart.assert(dart.equals(dart.dindex(x, 0), 'fixed')); | 291 dart.assert(dart.equals(dart.dindex(x, 0), 'fixed')); |
292 let result = dart.as(dart.dindex(x, 1), core.List); | 292 let result = dart.as(dart.dindex(x, 1), core.List); |
293 this.deserializedObjects[dartx.add](result); | 293 this.deserializedObjects[dartx.add](result); |
294 return _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(dart.a
s(result, _interceptors.JSArray))); | 294 return _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(dart.a
s(result, _interceptors.JSArray))); |
295 } | 295 } |
(...skipping 15 matching lines...) Expand all Loading... |
311 this.deserializedObjects[dartx.add](result); | 311 this.deserializedObjects[dartx.add](result); |
312 return _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(dart.a
s(result, _interceptors.JSArray))); | 312 return _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(dart.a
s(result, _interceptors.JSArray))); |
313 } | 313 } |
314 deserializeMap(x) { | 314 deserializeMap(x) { |
315 dart.assert(dart.equals(dart.dindex(x, 0), 'map')); | 315 dart.assert(dart.equals(dart.dindex(x, 0), 'map')); |
316 let keys = dart.as(dart.dindex(x, 1), core.List); | 316 let keys = dart.as(dart.dindex(x, 1), core.List); |
317 let values = dart.as(dart.dindex(x, 2), core.List); | 317 let values = dart.as(dart.dindex(x, 2), core.List); |
318 let result = dart.map(); | 318 let result = dart.map(); |
319 this.deserializedObjects[dartx.add](result); | 319 this.deserializedObjects[dartx.add](result); |
320 keys = keys[dartx.map](dart.bind(this, 'deserialize'))[dartx.toList](); | 320 keys = keys[dartx.map](dart.bind(this, 'deserialize'))[dartx.toList](); |
321 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN
ull(i) + 1) { | 321 for (let i = 0; dart.notNull(i) < dart.notNull(keys[dartx.length]); i = da
rt.notNull(i) + 1) { |
322 result.set(keys[dartx.get](i), this.deserialize(values[dartx.get](i))); | 322 result.set(keys[dartx.get](i), this.deserialize(values[dartx.get](i))); |
323 } | 323 } |
324 return result; | 324 return result; |
325 } | 325 } |
326 deserializeSendPort(x) { | 326 deserializeSendPort(x) { |
327 dart.assert(dart.equals(dart.dindex(x, 0), 'sendport')); | 327 dart.assert(dart.equals(dart.dindex(x, 0), 'sendport')); |
328 let managerId = dart.as(dart.dindex(x, 1), core.int); | 328 let managerId = dart.as(dart.dindex(x, 1), core.int); |
329 let isolateId = dart.as(dart.dindex(x, 2), core.int); | 329 let isolateId = dart.as(dart.dindex(x, 2), core.int); |
330 let receivePortId = dart.as(dart.dindex(x, 3), core.int); | 330 let receivePortId = dart.as(dart.dindex(x, 3), core.int); |
331 let result = null; | 331 let result = null; |
(...skipping 16 matching lines...) Expand all Loading... |
348 let result = dart.as(dart.dindex(x, 1), isolate.SendPort); | 348 let result = dart.as(dart.dindex(x, 1), isolate.SendPort); |
349 this.deserializedObjects[dartx.add](result); | 349 this.deserializedObjects[dartx.add](result); |
350 return result; | 350 return result; |
351 } | 351 } |
352 deserializeJSObject(x) { | 352 deserializeJSObject(x) { |
353 dart.assert(dart.equals(dart.dindex(x, 0), 'js-object')); | 353 dart.assert(dart.equals(dart.dindex(x, 0), 'js-object')); |
354 let keys = dart.as(dart.dindex(x, 1), core.List); | 354 let keys = dart.as(dart.dindex(x, 1), core.List); |
355 let values = dart.as(dart.dindex(x, 2), core.List); | 355 let values = dart.as(dart.dindex(x, 2), core.List); |
356 let o = {}; | 356 let o = {}; |
357 this.deserializedObjects[dartx.add](o); | 357 this.deserializedObjects[dartx.add](o); |
358 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN
ull(i) + 1) { | 358 for (let i = 0; dart.notNull(i) < dart.notNull(keys[dartx.length]); i = da
rt.notNull(i) + 1) { |
359 o[keys[dartx.get](i)] = this.deserialize(values[dartx.get](i)); | 359 o[keys[dartx.get](i)] = this.deserialize(values[dartx.get](i)); |
360 } | 360 } |
361 return o; | 361 return o; |
362 } | 362 } |
363 deserializeClosure(x) { | 363 deserializeClosure(x) { |
364 dart.assert(dart.equals(dart.dindex(x, 0), 'function')); | 364 dart.assert(dart.equals(dart.dindex(x, 0), 'function')); |
365 let name = dart.as(dart.dindex(x, 1), core.String); | 365 let name = dart.as(dart.dindex(x, 1), core.String); |
366 let result = dart.as(IsolateNatives._getJSFunctionFromName(name), core.Fun
ction); | 366 let result = dart.as(IsolateNatives._getJSFunctionFromName(name), core.Fun
ction); |
367 this.deserializedObjects[dartx.add](result); | 367 this.deserializedObjects[dartx.add](result); |
368 return result; | 368 return result; |
(...skipping 1183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1552 exports.leaveJsAsync = leaveJsAsync; | 1552 exports.leaveJsAsync = leaveJsAsync; |
1553 exports.isWorker = isWorker; | 1553 exports.isWorker = isWorker; |
1554 exports.startRootIsolate = startRootIsolate; | 1554 exports.startRootIsolate = startRootIsolate; |
1555 exports.IsolateNatives = IsolateNatives; | 1555 exports.IsolateNatives = IsolateNatives; |
1556 exports.RawReceivePortImpl = RawReceivePortImpl; | 1556 exports.RawReceivePortImpl = RawReceivePortImpl; |
1557 exports.ReceivePortImpl = ReceivePortImpl; | 1557 exports.ReceivePortImpl = ReceivePortImpl; |
1558 exports.TimerImpl = TimerImpl; | 1558 exports.TimerImpl = TimerImpl; |
1559 exports.hasTimer = hasTimer; | 1559 exports.hasTimer = hasTimer; |
1560 exports.CapabilityImpl = CapabilityImpl; | 1560 exports.CapabilityImpl = CapabilityImpl; |
1561 }); | 1561 }); |
OLD | NEW |