| 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 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$(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); |
| 34 let serializationId = this.serializedObjectIds.get(x); | 34 let serializationId = this.serializedObjectIds.get(x); |
| 35 if (serializationId != null) | 35 if (serializationId != null) |
| 36 return this.makeRef(serializationId); | 36 return this.makeRef(serializationId); |
| 37 serializationId = this.serializedObjectIds.length; | 37 serializationId = this.serializedObjectIds.length; |
| 38 this.serializedObjectIds.set(x, serializationId); | 38 this.serializedObjectIds.set(x, serializationId); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 return serialized; | 104 return serialized; |
| 105 } | 105 } |
| 106 serializeArrayInPlace(x) { | 106 serializeArrayInPlace(x) { |
| 107 for (let i = 0; dart.notNull(i) < dart.notNull(x[core.$length]); i = dart.
notNull(i) + 1) { | 107 for (let i = 0; dart.notNull(i) < dart.notNull(x[core.$length]); i = dart.
notNull(i) + 1) { |
| 108 x[core.$set](i, this.serialize(x[core.$get](i))); | 108 x[core.$set](i, this.serialize(x[core.$get](i))); |
| 109 } | 109 } |
| 110 return x; | 110 return x; |
| 111 } | 111 } |
| 112 serializeMap(x) { | 112 serializeMap(x) { |
| 113 let serializeTearOff = this.serialize; | 113 let serializeTearOff = this.serialize; |
| 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 return new core.List.from(['map', x.keys[core.$map](dart.as(serializeTearO
ff, dart.functionType(dart.dynamic, [dart.dynamic])))[core.$toList](), x.values[
core.$map](dart.as(serializeTearOff, dart.functionType(dart.dynamic, [dart.dynam
ic])))[core.$toList]()]); |
| 115 } | 115 } |
| 116 serializeJSObject(x) { | 116 serializeJSObject(x) { |
| 117 if (!!x.constructor && x.constructor !== Object) { | 117 if (!!x.constructor && x.constructor !== Object) { |
| 118 this.unsupported(x, "Only plain JS Objects are supported:"); | 118 this.unsupported(x, "Only plain JS Objects are supported:"); |
| 119 } | 119 } |
| 120 let keys = dart.as(Object.keys(x), core.List); | 120 let keys = dart.as(Object.keys(x), core.List); |
| 121 let values = new core.List.from([]); | 121 let values = new core.List.from([]); |
| 122 values[core.$length] = keys[core.$length]; | 122 values[core.$length] = keys[core.$length]; |
| 123 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da
rt.notNull(i) + 1) { | 123 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da
rt.notNull(i) + 1) { |
| 124 values[core.$set](i, this.serialize(x[keys[core.$get](i)])); | 124 values[core.$set](i, this.serialize(x[keys[core.$get](i)])); |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 426 this.topEventLoop = null; | 426 this.topEventLoop = null; |
| 427 this.fromCommandLine = null; | 427 this.fromCommandLine = null; |
| 428 this.isWorker = null; | 428 this.isWorker = null; |
| 429 this.supportsWorkers = null; | 429 this.supportsWorkers = null; |
| 430 this.isolates = null; | 430 this.isolates = null; |
| 431 this.mainManager = null; | 431 this.mainManager = null; |
| 432 this.managers = null; | 432 this.managers = null; |
| 433 this[_nativeDetectEnvironment](); | 433 this[_nativeDetectEnvironment](); |
| 434 this.topEventLoop = new _EventLoop(); | 434 this.topEventLoop = new _EventLoop(); |
| 435 this.isolates = new (core.Map$(core.int, _IsolateContext))(); | 435 this.isolates = new (core.Map$(core.int, _IsolateContext))(); |
| 436 this.managers = new (core.Map$(core.int, dynamic))(); | 436 this.managers = new (core.Map$(core.int, dart.dynamic))(); |
| 437 if (this.isWorker) { | 437 if (this.isWorker) { |
| 438 this.mainManager = new _MainManagerStub(); | 438 this.mainManager = new _MainManagerStub(); |
| 439 this[_nativeInitWorkerMessageHandler](); | 439 this[_nativeInitWorkerMessageHandler](); |
| 440 } | 440 } |
| 441 } | 441 } |
| 442 [_nativeDetectEnvironment]() { | 442 [_nativeDetectEnvironment]() { |
| 443 let isWindowDefined = exports.globalWindow != null; | 443 let isWindowDefined = exports.globalWindow != null; |
| 444 let isWorkerDefined = exports.globalWorker != null; | 444 let isWorkerDefined = exports.globalWorker != null; |
| 445 this.isWorker = !dart.notNull(isWindowDefined) && dart.notNull(exports.glo
balPostMessageDefined); | 445 this.isWorker = !dart.notNull(isWindowDefined) && dart.notNull(exports.glo
balPostMessageDefined); |
| 446 this.supportsWorkers = dart.notNull(this.isWorker) || dart.notNull(isWorke
rDefined) && dart.notNull(IsolateNatives.thisScript != null); | 446 this.supportsWorkers = dart.notNull(this.isWorker) || dart.notNull(isWorke
rDefined) && dart.notNull(IsolateNatives.thisScript != null); |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 822 }, | 822 }, |
| 823 get globalWorker() { | 823 get globalWorker() { |
| 824 _js_helper.requiresPreamble(); | 824 _js_helper.requiresPreamble(); |
| 825 return self.Worker; | 825 return self.Worker; |
| 826 }, | 826 }, |
| 827 get globalPostMessageDefined() { | 827 get globalPostMessageDefined() { |
| 828 _js_helper.requiresPreamble(); | 828 _js_helper.requiresPreamble(); |
| 829 return !!self.postMessage; | 829 return !!self.postMessage; |
| 830 } | 830 } |
| 831 }); | 831 }); |
| 832 class _MainFunction extends core.Function {} | 832 let _MainFunction = dart.typedef('_MainFunction', () => dart.functionType(dart
.dynamic, [])); |
| 833 class _MainFunctionArgs extends core.Function {} | 833 let _MainFunctionArgs = dart.typedef('_MainFunctionArgs', () => dart.functionT
ype(dart.dynamic, [dart.dynamic])); |
| 834 class _MainFunctionArgsMessage extends core.Function {} | 834 let _MainFunctionArgsMessage = dart.typedef('_MainFunctionArgsMessage', () =>
dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])); |
| 835 let _getEventData = Symbol('_getEventData'); | 835 let _getEventData = Symbol('_getEventData'); |
| 836 let _startIsolate = Symbol('_startIsolate'); | 836 let _startIsolate = Symbol('_startIsolate'); |
| 837 let _log = Symbol('_log'); | 837 let _log = Symbol('_log'); |
| 838 let _consoleLog = Symbol('_consoleLog'); | 838 let _consoleLog = Symbol('_consoleLog'); |
| 839 let _allocate = Symbol('_allocate'); | 839 let _allocate = Symbol('_allocate'); |
| 840 let _startWorker = Symbol('_startWorker'); | 840 let _startWorker = Symbol('_startWorker'); |
| 841 let _startNonWorker = Symbol('_startNonWorker'); | 841 let _startNonWorker = Symbol('_startNonWorker'); |
| 842 let _spawnWorker = Symbol('_spawnWorker'); | 842 let _spawnWorker = Symbol('_spawnWorker'); |
| 843 class IsolateNatives extends core.Object { | 843 class IsolateNatives extends core.Object { |
| 844 static computeThisScript() { | 844 static computeThisScript() { |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 948 case 'error': | 948 case 'error': |
| 949 { | 949 { |
| 950 throw dart.dindex(msg, 'msg'); | 950 throw dart.dindex(msg, 'msg'); |
| 951 } | 951 } |
| 952 } | 952 } |
| 953 } | 953 } |
| 954 static handleSpawnWorkerRequest(msg) { | 954 static handleSpawnWorkerRequest(msg) { |
| 955 let replyPort = dart.dindex(msg, 'replyPort'); | 955 let replyPort = dart.dindex(msg, 'replyPort'); |
| 956 IsolateNatives.spawn(dart.as(dart.dindex(msg, 'functionName'), core.String
), dart.as(dart.dindex(msg, 'uri'), core.String), dart.as(dart.dindex(msg, 'args
'), core.List$(core.String)), dart.dindex(msg, 'msg'), false, dart.as(dart.dinde
x(msg, 'isSpawnUri'), core.bool), dart.as(dart.dindex(msg, 'startPaused'), core.
bool)).then(dart.as((msg) => { | 956 IsolateNatives.spawn(dart.as(dart.dindex(msg, 'functionName'), core.String
), dart.as(dart.dindex(msg, 'uri'), core.String), dart.as(dart.dindex(msg, 'args
'), core.List$(core.String)), dart.dindex(msg, 'msg'), false, dart.as(dart.dinde
x(msg, 'isSpawnUri'), core.bool), dart.as(dart.dindex(msg, 'startPaused'), core.
bool)).then(dart.as((msg) => { |
| 957 dart.dinvoke(replyPort, 'send', msg); | 957 dart.dinvoke(replyPort, 'send', msg); |
| 958 }, dart.throw_("Unimplemented type (List<dynamic>) → dynamic")), { | 958 }, dart.functionType(dart.dynamic, [core.List])), { |
| 959 onError: (errorMessage) => { | 959 onError: (errorMessage) => { |
| 960 dart.dinvoke(replyPort, 'send', new core.List.from([_SPAWN_FAILED_SIGN
AL, errorMessage])); | 960 dart.dinvoke(replyPort, 'send', new core.List.from([_SPAWN_FAILED_SIGN
AL, errorMessage])); |
| 961 } | 961 } |
| 962 }); | 962 }); |
| 963 } | 963 } |
| 964 static [_log](msg) { | 964 static [_log](msg) { |
| 965 if (exports._globalState.isWorker) { | 965 if (exports._globalState.isWorker) { |
| 966 exports._globalState.mainManager.postMessage(_serializeMessage(dart.map(
{command: 'log', msg: msg}))); | 966 exports._globalState.mainManager.postMessage(_serializeMessage(dart.map(
{command: 'log', msg: msg}))); |
| 967 } else { | 967 } else { |
| 968 try { | 968 try { |
| (...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1375 exports.leaveJsAsync = leaveJsAsync; | 1375 exports.leaveJsAsync = leaveJsAsync; |
| 1376 exports.isWorker = isWorker; | 1376 exports.isWorker = isWorker; |
| 1377 exports.startRootIsolate = startRootIsolate; | 1377 exports.startRootIsolate = startRootIsolate; |
| 1378 exports.IsolateNatives = IsolateNatives; | 1378 exports.IsolateNatives = IsolateNatives; |
| 1379 exports.RawReceivePortImpl = RawReceivePortImpl; | 1379 exports.RawReceivePortImpl = RawReceivePortImpl; |
| 1380 exports.ReceivePortImpl = ReceivePortImpl; | 1380 exports.ReceivePortImpl = ReceivePortImpl; |
| 1381 exports.TimerImpl = TimerImpl; | 1381 exports.TimerImpl = TimerImpl; |
| 1382 exports.hasTimer = hasTimer; | 1382 exports.hasTimer = hasTimer; |
| 1383 exports.CapabilityImpl = CapabilityImpl; | 1383 exports.CapabilityImpl = CapabilityImpl; |
| 1384 })(_isolate_helper || (_isolate_helper = {})); | 1384 })(_isolate_helper || (_isolate_helper = {})); |
| OLD | NEW |