| OLD | NEW |
| 1 var _isolate_helper; | 1 var _isolate_helper; |
| 2 (function(exports) { | 2 (function(exports) { |
| 3 'use strict'; | 3 'use strict'; |
| 4 // Function _callInIsolate: (_IsolateContext, Function) → dynamic | 4 // Function _callInIsolate: (_IsolateContext, Function) → dynamic |
| 5 function _callInIsolate(isolate, function) { | 5 function _callInIsolate(isolate, function) { |
| 6 let result = isolate.eval(function); | 6 let result = isolate.eval(function); |
| 7 exports._globalState.topEventLoop.run(); | 7 exports._globalState.topEventLoop.run(); |
| 8 return result; | 8 return result; |
| 9 } | 9 } |
| 10 let _activeJsAsyncCount = Symbol('_activeJsAsyncCount'); | 10 let _activeJsAsyncCount = Symbol('_activeJsAsyncCount'); |
| 11 // Function enterJsAsync: () → dynamic | 11 // Function enterJsAsync: () → dynamic |
| 12 function enterJsAsync() { | 12 function enterJsAsync() { |
| 13 dart.notNull(exports._globalState.topEventLoop[_activeJsAsyncCount])++; | 13 exports._globalState.topEventLoop[_activeJsAsyncCount] = dart.notNull(export
s._globalState.topEventLoop[_activeJsAsyncCount]) + 1; |
| 14 } | 14 } |
| 15 // Function leaveJsAsync: () → dynamic | 15 // Function leaveJsAsync: () → dynamic |
| 16 function leaveJsAsync() { | 16 function leaveJsAsync() { |
| 17 dart.notNull(exports._globalState.topEventLoop[_activeJsAsyncCount])--; | 17 exports._globalState.topEventLoop[_activeJsAsyncCount] = dart.notNull(export
s._globalState.topEventLoop[_activeJsAsyncCount]) - 1; |
| 18 dart.assert(dart.notNull(exports._globalState.topEventLoop[_activeJsAsyncCou
nt]) >= 0); | 18 dart.assert(dart.notNull(exports._globalState.topEventLoop[_activeJsAsyncCou
nt]) >= 0); |
| 19 } | 19 } |
| 20 // Function isWorker: () → bool | 20 // Function isWorker: () → bool |
| 21 function isWorker() { | 21 function isWorker() { |
| 22 return exports._globalState.isWorker; | 22 return exports._globalState.isWorker; |
| 23 } | 23 } |
| 24 // Function _currentIsolate: () → _IsolateContext | 24 // Function _currentIsolate: () → _IsolateContext |
| 25 function _currentIsolate() { | 25 function _currentIsolate() { |
| 26 return exports._globalState.currentContext; | 26 return exports._globalState.currentContext; |
| 27 } | 27 } |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 } | 125 } |
| 126 } | 126 } |
| 127 let _scheduledControlEvents = Symbol('_scheduledControlEvents'); | 127 let _scheduledControlEvents = Symbol('_scheduledControlEvents'); |
| 128 let _isExecutingEvent = Symbol('_isExecutingEvent'); | 128 let _isExecutingEvent = Symbol('_isExecutingEvent'); |
| 129 let _id = Symbol('_id'); | 129 let _id = Symbol('_id'); |
| 130 let _updateGlobalState = Symbol('_updateGlobalState'); | 130 let _updateGlobalState = Symbol('_updateGlobalState'); |
| 131 let _setGlobals = Symbol('_setGlobals'); | 131 let _setGlobals = Symbol('_setGlobals'); |
| 132 let _addRegistration = Symbol('_addRegistration'); | 132 let _addRegistration = Symbol('_addRegistration'); |
| 133 class _IsolateContext extends dart.Object { | 133 class _IsolateContext extends dart.Object { |
| 134 _IsolateContext() { | 134 _IsolateContext() { |
| 135 this.id = dart.notNull(exports._globalState.nextIsolateId)++; | 135 this.id = (($tmp) => exports._globalState.nextIsolateId = dart.notNull($tm
p) + 1, $tmp).bind(this)(exports._globalState.nextIsolateId); |
| 136 this.ports = new core.Map(); | 136 this.ports = new core.Map(); |
| 137 this.weakPorts = new core.Set(); | 137 this.weakPorts = new core.Set(); |
| 138 this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE(); | 138 this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE(); |
| 139 this.controlPort = new RawReceivePortImpl._controlPort(); | 139 this.controlPort = new RawReceivePortImpl._controlPort(); |
| 140 this.pauseCapability = new isolate.Capability(); | 140 this.pauseCapability = new isolate.Capability(); |
| 141 this.terminateCapability = new isolate.Capability(); | 141 this.terminateCapability = new isolate.Capability(); |
| 142 this.delayedEvents = dart.as(new List.from([]), core.List$(_IsolateEvent))
; | 142 this.delayedEvents = dart.as(new List.from([]), core.List$(_IsolateEvent))
; |
| 143 this.pauseTokens = dart.as(new core.Set(), core.Set$(isolate.Capability)); | 143 this.pauseTokens = dart.as(new core.Set(), core.Set$(isolate.Capability)); |
| 144 this.errorPorts = dart.as(new core.Set(), core.Set$(isolate.SendPort)); | 144 this.errorPorts = dart.as(new core.Set(), core.Set$(isolate.SendPort)); |
| 145 this.initialized = false; | 145 this.initialized = false; |
| (...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 701 }; | 701 }; |
| 702 }(_foreign_helper.DART_CLOSURE_TO_JS(workerOnError), uri, onError); | 702 }(_foreign_helper.DART_CLOSURE_TO_JS(workerOnError), uri, onError); |
| 703 worker.onerror = onerrorTrampoline; | 703 worker.onerror = onerrorTrampoline; |
| 704 let processWorkerMessageTrampoline = function(f, a) { | 704 let processWorkerMessageTrampoline = function(f, a) { |
| 705 return function(e) { | 705 return function(e) { |
| 706 e.onerror = null; | 706 e.onerror = null; |
| 707 return f(a, e); | 707 return f(a, e); |
| 708 }; | 708 }; |
| 709 }(_foreign_helper.DART_CLOSURE_TO_JS(_processWorkerMessage), worker); | 709 }(_foreign_helper.DART_CLOSURE_TO_JS(_processWorkerMessage), worker); |
| 710 worker.onmessage = processWorkerMessageTrampoline; | 710 worker.onmessage = processWorkerMessageTrampoline; |
| 711 let workerId = dart.notNull(exports._globalState.nextManagerId)++; | 711 let workerId = (($tmp) => exports._globalState.nextManagerId = dart.notNul
l($tmp) + 1, $tmp).bind(this)(exports._globalState.nextManagerId); |
| 712 workerIds.set(worker, workerId); | 712 workerIds.set(worker, workerId); |
| 713 exports._globalState.managers.set(workerId, worker); | 713 exports._globalState.managers.set(workerId, worker); |
| 714 worker.postMessage(_serializeMessage(dart.map({command: 'start', id: worke
rId, replyTo: _serializeMessage(replyPort), args: args, msg: _serializeMessage(m
essage), isSpawnUri: isSpawnUri, startPaused: startPaused, functionName: functio
nName}))); | 714 worker.postMessage(_serializeMessage(dart.map({command: 'start', id: worke
rId, replyTo: _serializeMessage(replyPort), args: args, msg: _serializeMessage(m
essage), isSpawnUri: isSpawnUri, startPaused: startPaused, functionName: functio
nName}))); |
| 715 } | 715 } |
| 716 static workerOnError(event, uri, onError) { | 716 static workerOnError(event, uri, onError) { |
| 717 event.preventDefault(); | 717 event.preventDefault(); |
| 718 let message = dart.as(event.message, core.String); | 718 let message = dart.as(event.message, core.String); |
| 719 if (message === null) { | 719 if (message === null) { |
| 720 message = `Error spawning worker for ${uri}`; | 720 message = `Error spawning worker for ${uri}`; |
| 721 } else { | 721 } else { |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 803 get hashCode() { | 803 get hashCode() { |
| 804 return dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId]
) << 8 ^ dart.notNull(this[_receivePortId]); | 804 return dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId]
) << 8 ^ dart.notNull(this[_receivePortId]); |
| 805 } | 805 } |
| 806 } | 806 } |
| 807 let _handler = Symbol('_handler'); | 807 let _handler = Symbol('_handler'); |
| 808 let _close = Symbol('_close'); | 808 let _close = Symbol('_close'); |
| 809 let _add = Symbol('_add'); | 809 let _add = Symbol('_add'); |
| 810 class RawReceivePortImpl extends dart.Object { | 810 class RawReceivePortImpl extends dart.Object { |
| 811 RawReceivePortImpl($_handler) { | 811 RawReceivePortImpl($_handler) { |
| 812 this[_handler] = $_handler; | 812 this[_handler] = $_handler; |
| 813 this[_id] = dart.notNull(_nextFreeId)++; | 813 this[_id] = (($tmp) => _nextFreeId = dart.notNull($tmp) + 1, $tmp)(_nextFr
eeId); |
| 814 this[_isClosed] = false; | 814 this[_isClosed] = false; |
| 815 exports._globalState.currentContext.register(this[_id], this); | 815 exports._globalState.currentContext.register(this[_id], this); |
| 816 } | 816 } |
| 817 RawReceivePortImpl$weak($_handler) { | 817 RawReceivePortImpl$weak($_handler) { |
| 818 this[_handler] = $_handler; | 818 this[_handler] = $_handler; |
| 819 this[_id] = dart.notNull(_nextFreeId)++; | 819 this[_id] = (($tmp) => _nextFreeId = dart.notNull($tmp) + 1, $tmp)(_nextFr
eeId); |
| 820 this[_isClosed] = false; | 820 this[_isClosed] = false; |
| 821 exports._globalState.currentContext.registerWeak(this[_id], this); | 821 exports._globalState.currentContext.registerWeak(this[_id], this); |
| 822 } | 822 } |
| 823 RawReceivePortImpl$_controlPort() { | 823 RawReceivePortImpl$_controlPort() { |
| 824 this[_handler] = null; | 824 this[_handler] = null; |
| 825 this[_id] = 0; | 825 this[_id] = 0; |
| 826 this[_isClosed] = false; | 826 this[_isClosed] = false; |
| 827 } | 827 } |
| 828 set handler(newHandler) { | 828 set handler(newHandler) { |
| 829 this[_handler] = newHandler; | 829 this[_handler] = newHandler; |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1067 if (dart.is(indexable, _interceptors.JSMutableArray)) | 1067 if (dart.is(indexable, _interceptors.JSMutableArray)) |
| 1068 return new List.from(["mutable", serialized]); | 1068 return new List.from(["mutable", serialized]); |
| 1069 if (dart.is(indexable, _interceptors.JSArray)) | 1069 if (dart.is(indexable, _interceptors.JSArray)) |
| 1070 return new List.from(["const", serialized]); | 1070 return new List.from(["const", serialized]); |
| 1071 this.unsupported(indexable, "Can't serialize indexable: "); | 1071 this.unsupported(indexable, "Can't serialize indexable: "); |
| 1072 return null; | 1072 return null; |
| 1073 } | 1073 } |
| 1074 serializeArray(x) { | 1074 serializeArray(x) { |
| 1075 let serialized = new List.from([]); | 1075 let serialized = new List.from([]); |
| 1076 serialized.length = x.length; | 1076 serialized.length = x.length; |
| 1077 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); dart.notNull(i)+
+) { | 1077 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull
(i) + 1) { |
| 1078 serialized.set(i, this.serialize(x.get(i))); | 1078 serialized.set(i, this.serialize(x.get(i))); |
| 1079 } | 1079 } |
| 1080 return serialized; | 1080 return serialized; |
| 1081 } | 1081 } |
| 1082 serializeArrayInPlace(x) { | 1082 serializeArrayInPlace(x) { |
| 1083 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); dart.notNull(i)+
+) { | 1083 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull
(i) + 1) { |
| 1084 x.set(i, this.serialize(x.get(i))); | 1084 x.set(i, this.serialize(x.get(i))); |
| 1085 } | 1085 } |
| 1086 return x; | 1086 return x; |
| 1087 } | 1087 } |
| 1088 serializeMap(x) { | 1088 serializeMap(x) { |
| 1089 let serializeTearOff = this.serialize; | 1089 let serializeTearOff = this.serialize; |
| 1090 return new List.from(['map', x.keys.map(dart.as(serializeTearOff, dart.thr
ow_("Unimplemented type (dynamic) → dynamic"))).toList(), x.values.map(dart.as(s
erializeTearOff, dart.throw_("Unimplemented type (dynamic) → dynamic"))).toList(
)]); | 1090 return new List.from(['map', x.keys.map(dart.as(serializeTearOff, dart.thr
ow_("Unimplemented type (dynamic) → dynamic"))).toList(), x.values.map(dart.as(s
erializeTearOff, dart.throw_("Unimplemented type (dynamic) → dynamic"))).toList(
)]); |
| 1091 } | 1091 } |
| 1092 serializeJSObject(x) { | 1092 serializeJSObject(x) { |
| 1093 if (!!x.constructor && x.constructor !== Object) { | 1093 if (!!x.constructor && x.constructor !== Object) { |
| 1094 this.unsupported(x, "Only plain JS Objects are supported:"); | 1094 this.unsupported(x, "Only plain JS Objects are supported:"); |
| 1095 } | 1095 } |
| 1096 let keys = dart.as(Object.keys(x), core.List); | 1096 let keys = dart.as(Object.keys(x), core.List); |
| 1097 let values = new List.from([]); | 1097 let values = new List.from([]); |
| 1098 values.length = keys.length; | 1098 values.length = keys.length; |
| 1099 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); dart.notNull(
i)++) { | 1099 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN
ull(i) + 1) { |
| 1100 values.set(i, this.serialize(x[keys.get(i)])); | 1100 values.set(i, this.serialize(x[keys.get(i)])); |
| 1101 } | 1101 } |
| 1102 return new List.from(['js-object', keys, values]); | 1102 return new List.from(['js-object', keys, values]); |
| 1103 } | 1103 } |
| 1104 serializeWorkerSendPort(x) { | 1104 serializeWorkerSendPort(x) { |
| 1105 if (this[_serializeSendPorts]) { | 1105 if (this[_serializeSendPorts]) { |
| 1106 return new List.from(['sendport', x[_workerId], x[_isolateId], x[_receiv
ePortId]]); | 1106 return new List.from(['sendport', x[_workerId], x[_isolateId], x[_receiv
ePortId]]); |
| 1107 } | 1107 } |
| 1108 return new List.from(['raw sendport', x]); | 1108 return new List.from(['raw sendport', x]); |
| 1109 } | 1109 } |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1192 this.deserializedObjects.add(result); | 1192 this.deserializedObjects.add(result); |
| 1193 return result; | 1193 return result; |
| 1194 } | 1194 } |
| 1195 deserializeTypedData(x) { | 1195 deserializeTypedData(x) { |
| 1196 dart.assert(dart.equals(dart.dindex(x, 0), 'typed')); | 1196 dart.assert(dart.equals(dart.dindex(x, 0), 'typed')); |
| 1197 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeTypedData
); | 1197 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeTypedData
); |
| 1198 this.deserializedObjects.add(result); | 1198 this.deserializedObjects.add(result); |
| 1199 return result; | 1199 return result; |
| 1200 } | 1200 } |
| 1201 deserializeArrayInPlace(x) { | 1201 deserializeArrayInPlace(x) { |
| 1202 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); dart.notNull(i)+
+) { | 1202 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull
(i) + 1) { |
| 1203 x.set(i, this.deserialize(x.get(i))); | 1203 x.set(i, this.deserialize(x.get(i))); |
| 1204 } | 1204 } |
| 1205 return x; | 1205 return x; |
| 1206 } | 1206 } |
| 1207 deserializeFixed(x) { | 1207 deserializeFixed(x) { |
| 1208 dart.assert(dart.equals(dart.dindex(x, 0), 'fixed')); | 1208 dart.assert(dart.equals(dart.dindex(x, 0), 'fixed')); |
| 1209 let result = dart.as(dart.dindex(x, 1), core.List); | 1209 let result = dart.as(dart.dindex(x, 1), core.List); |
| 1210 this.deserializedObjects.add(result); | 1210 this.deserializedObjects.add(result); |
| 1211 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da
rt.as(result, _interceptors.JSArray))); | 1211 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da
rt.as(result, _interceptors.JSArray))); |
| 1212 } | 1212 } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1228 this.deserializedObjects.add(result); | 1228 this.deserializedObjects.add(result); |
| 1229 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da
rt.as(result, _interceptors.JSArray))); | 1229 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da
rt.as(result, _interceptors.JSArray))); |
| 1230 } | 1230 } |
| 1231 deserializeMap(x) { | 1231 deserializeMap(x) { |
| 1232 dart.assert(dart.equals(dart.dindex(x, 0), 'map')); | 1232 dart.assert(dart.equals(dart.dindex(x, 0), 'map')); |
| 1233 let keys = dart.as(dart.dindex(x, 1), core.List); | 1233 let keys = dart.as(dart.dindex(x, 1), core.List); |
| 1234 let values = dart.as(dart.dindex(x, 2), core.List); | 1234 let values = dart.as(dart.dindex(x, 2), core.List); |
| 1235 let result = dart.map(); | 1235 let result = dart.map(); |
| 1236 this.deserializedObjects.add(result); | 1236 this.deserializedObjects.add(result); |
| 1237 keys = keys.map(this.deserialize).toList(); | 1237 keys = keys.map(this.deserialize).toList(); |
| 1238 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); dart.notNull(
i)++) { | 1238 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN
ull(i) + 1) { |
| 1239 result.set(keys.get(i), this.deserialize(values.get(i))); | 1239 result.set(keys.get(i), this.deserialize(values.get(i))); |
| 1240 } | 1240 } |
| 1241 return result; | 1241 return result; |
| 1242 } | 1242 } |
| 1243 deserializeSendPort(x) { | 1243 deserializeSendPort(x) { |
| 1244 dart.assert(dart.equals(dart.dindex(x, 0), 'sendport')); | 1244 dart.assert(dart.equals(dart.dindex(x, 0), 'sendport')); |
| 1245 let managerId = dart.as(dart.dindex(x, 1), core.int); | 1245 let managerId = dart.as(dart.dindex(x, 1), core.int); |
| 1246 let isolateId = dart.as(dart.dindex(x, 2), core.int); | 1246 let isolateId = dart.as(dart.dindex(x, 2), core.int); |
| 1247 let receivePortId = dart.as(dart.dindex(x, 3), core.int); | 1247 let receivePortId = dart.as(dart.dindex(x, 3), core.int); |
| 1248 let result = null; | 1248 let result = null; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1265 let result = dart.as(dart.dindex(x, 1), isolate.SendPort); | 1265 let result = dart.as(dart.dindex(x, 1), isolate.SendPort); |
| 1266 this.deserializedObjects.add(result); | 1266 this.deserializedObjects.add(result); |
| 1267 return result; | 1267 return result; |
| 1268 } | 1268 } |
| 1269 deserializeJSObject(x) { | 1269 deserializeJSObject(x) { |
| 1270 dart.assert(dart.equals(dart.dindex(x, 0), 'js-object')); | 1270 dart.assert(dart.equals(dart.dindex(x, 0), 'js-object')); |
| 1271 let keys = dart.as(dart.dindex(x, 1), core.List); | 1271 let keys = dart.as(dart.dindex(x, 1), core.List); |
| 1272 let values = dart.as(dart.dindex(x, 2), core.List); | 1272 let values = dart.as(dart.dindex(x, 2), core.List); |
| 1273 let o = {}; | 1273 let o = {}; |
| 1274 this.deserializedObjects.add(o); | 1274 this.deserializedObjects.add(o); |
| 1275 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); dart.notNull(
i)++) { | 1275 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN
ull(i) + 1) { |
| 1276 o[keys.get(i)] = this.deserialize(values.get(i)); | 1276 o[keys.get(i)] = this.deserialize(values.get(i)); |
| 1277 } | 1277 } |
| 1278 return o; | 1278 return o; |
| 1279 } | 1279 } |
| 1280 deserializeClosure(x) { | 1280 deserializeClosure(x) { |
| 1281 dart.assert(dart.equals(dart.dindex(x, 0), 'function')); | 1281 dart.assert(dart.equals(dart.dindex(x, 0), 'function')); |
| 1282 let name = dart.as(dart.dindex(x, 1), core.String); | 1282 let name = dart.as(dart.dindex(x, 1), core.String); |
| 1283 let result = dart.as(IsolateNatives._getJSFunctionFromName(name), core.Fun
ction); | 1283 let result = dart.as(IsolateNatives._getJSFunctionFromName(name), core.Fun
ction); |
| 1284 this.deserializedObjects.add(result); | 1284 this.deserializedObjects.add(result); |
| 1285 return result; | 1285 return result; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1304 exports.globalWindow = globalWindow; | 1304 exports.globalWindow = globalWindow; |
| 1305 exports.globalWorker = globalWorker; | 1305 exports.globalWorker = globalWorker; |
| 1306 exports.globalPostMessageDefined = globalPostMessageDefined; | 1306 exports.globalPostMessageDefined = globalPostMessageDefined; |
| 1307 exports.IsolateNatives = IsolateNatives; | 1307 exports.IsolateNatives = IsolateNatives; |
| 1308 exports.RawReceivePortImpl = RawReceivePortImpl; | 1308 exports.RawReceivePortImpl = RawReceivePortImpl; |
| 1309 exports.ReceivePortImpl = ReceivePortImpl; | 1309 exports.ReceivePortImpl = ReceivePortImpl; |
| 1310 exports.TimerImpl = TimerImpl; | 1310 exports.TimerImpl = TimerImpl; |
| 1311 exports.hasTimer = hasTimer; | 1311 exports.hasTimer = hasTimer; |
| 1312 exports.CapabilityImpl = CapabilityImpl; | 1312 exports.CapabilityImpl = CapabilityImpl; |
| 1313 })(_isolate_helper || (_isolate_helper = {})); | 1313 })(_isolate_helper || (_isolate_helper = {})); |
| OLD | NEW |