| OLD | NEW |
| 1 dart_library.library('dart/_isolate_helper', null, /* Imports */[ | 1 dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
| 2 "dart/_runtime", | 2 "dart/_runtime", |
| 3 'dart/core', | 3 'dart/core', |
| 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/collection', | 8 'dart/collection', |
| 9 'dart/async' | 9 'dart/async' |
| 10 ], /* Lazy imports */[ | 10 ], /* Lazy imports */[ |
| 11 'dart/_native_typed_data', | 11 'dart/_native_typed_data', |
| 12 'dart/_js_embedded_names' | 12 'dart/_js_embedded_names' |
| 13 ], function(exports, dart, core, _interceptors, _js_helper, isolate, _foreign_he
lper, collection, async, _native_typed_data, _js_embedded_names) { | 13 ], function(exports, dart, core, _interceptors, _js_helper, isolate, _foreign_he
lper, collection, async, _native_typed_data, _js_embedded_names) { |
| 14 'use strict'; | 14 'use strict'; |
| 15 let dartx = dart.dartx; | 15 let dartx = dart.dartx; |
| 16 function _serializeMessage(message) { | 16 function _serializeMessage(message) { |
| 17 return new _Serializer().serialize(message); | 17 return new _Serializer().serialize(message); |
| 18 } | 18 } |
| 19 dart.fn(_serializeMessage); | 19 dart.fn(_serializeMessage); |
| 20 function _deserializeMessage(message) { | 20 function _deserializeMessage(message) { |
| 21 return new _Deserializer().deserialize(message); | 21 return new _Deserializer().deserialize(message); |
| 22 } | 22 } |
| 23 dart.fn(_deserializeMessage); | 23 dart.fn(_deserializeMessage); |
| 24 function _clone(message) { | 24 function _clone(message) { |
| 25 let serializer = new _Serializer({serializeSendPorts: false}); | 25 let serializer = new _Serializer({serializeSendPorts: false}); |
| 26 let deserializer = new _Deserializer(); | 26 let deserializer = new _Deserializer(); |
| 27 return deserializer.deserialize(serializer.serialize(message)); | 27 return deserializer.deserialize(serializer.serialize(message)); |
| 28 } | 28 } |
| 29 dart.fn(_clone); | 29 dart.fn(_clone); |
| 30 let _serializeSendPorts = Symbol('_serializeSendPorts'); | 30 const _serializeSendPorts = Symbol('_serializeSendPorts'); |
| 31 let _workerId = Symbol('_workerId'); | 31 const _workerId = Symbol('_workerId'); |
| 32 let _isolateId = Symbol('_isolateId'); | 32 const _isolateId = Symbol('_isolateId'); |
| 33 let _receivePortId = Symbol('_receivePortId'); | 33 const _receivePortId = Symbol('_receivePortId'); |
| 34 let _id = Symbol('_id'); | 34 const _id = Symbol('_id'); |
| 35 let _receivePort = Symbol('_receivePort'); | 35 const _receivePort = Symbol('_receivePort'); |
| 36 class _Serializer extends core.Object { | 36 class _Serializer extends core.Object { |
| 37 _Serializer(opts) { | 37 _Serializer(opts) { |
| 38 let serializeSendPorts = opts && 'serializeSendPorts' in opts ? opts.seria
lizeSendPorts : true; | 38 let serializeSendPorts = opts && 'serializeSendPorts' in opts ? opts.seria
lizeSendPorts : true; |
| 39 this.serializedObjectIds = core.Map$(dart.dynamic, core.int).identity(); | 39 this.serializedObjectIds = core.Map$(dart.dynamic, core.int).identity(); |
| 40 this[_serializeSendPorts] = dart.as(serializeSendPorts, core.bool); | 40 this[_serializeSendPorts] = dart.as(serializeSendPorts, core.bool); |
| 41 } | 41 } |
| 42 serialize(x) { | 42 serialize(x) { |
| 43 if (dart.notNull(this.isPrimitive(x))) | 43 if (dart.notNull(this.isPrimitive(x))) |
| 44 return this.serializePrimitive(x); | 44 return this.serializePrimitive(x); |
| 45 let serializationId = this.serializedObjectIds.get(x); | 45 let serializationId = this.serializedObjectIds.get(x); |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 serializeArrayInPlace: [dart.dynamic, [_interceptors.JSArray]], | 182 serializeArrayInPlace: [dart.dynamic, [_interceptors.JSArray]], |
| 183 serializeMap: [dart.dynamic, [core.Map]], | 183 serializeMap: [dart.dynamic, [core.Map]], |
| 184 serializeJSObject: [dart.dynamic, [_interceptors.JSObject]], | 184 serializeJSObject: [dart.dynamic, [_interceptors.JSObject]], |
| 185 serializeWorkerSendPort: [dart.dynamic, [_WorkerSendPort]], | 185 serializeWorkerSendPort: [dart.dynamic, [_WorkerSendPort]], |
| 186 serializeJsSendPort: [dart.dynamic, [_NativeJsSendPort]], | 186 serializeJsSendPort: [dart.dynamic, [_NativeJsSendPort]], |
| 187 serializeCapability: [dart.dynamic, [CapabilityImpl]], | 187 serializeCapability: [dart.dynamic, [CapabilityImpl]], |
| 188 serializeClosure: [dart.dynamic, [core.Function]], | 188 serializeClosure: [dart.dynamic, [core.Function]], |
| 189 serializeDartObject: [dart.dynamic, [dart.dynamic]] | 189 serializeDartObject: [dart.dynamic, [dart.dynamic]] |
| 190 }) | 190 }) |
| 191 }); | 191 }); |
| 192 let _adjustSendPorts = Symbol('_adjustSendPorts'); | 192 const _adjustSendPorts = Symbol('_adjustSendPorts'); |
| 193 class _Deserializer extends core.Object { | 193 class _Deserializer extends core.Object { |
| 194 _Deserializer(opts) { | 194 _Deserializer(opts) { |
| 195 let adjustSendPorts = opts && 'adjustSendPorts' in opts ? opts.adjustSendP
orts : true; | 195 let adjustSendPorts = opts && 'adjustSendPorts' in opts ? opts.adjustSendP
orts : true; |
| 196 this.deserializedObjects = core.List.new(); | 196 this.deserializedObjects = core.List.new(); |
| 197 this[_adjustSendPorts] = dart.as(adjustSendPorts, core.bool); | 197 this[_adjustSendPorts] = dart.as(adjustSendPorts, core.bool); |
| 198 } | 198 } |
| 199 deserialize(x) { | 199 deserialize(x) { |
| 200 if (dart.notNull(this.isPrimitive(x))) | 200 if (dart.notNull(this.isPrimitive(x))) |
| 201 return this.deserializePrimitive(x); | 201 return this.deserializePrimitive(x); |
| 202 if (!dart.is(x, _interceptors.JSArray)) | 202 if (!dart.is(x, _interceptors.JSArray)) |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 deserializeMutable: [core.List, [dart.dynamic]], | 396 deserializeMutable: [core.List, [dart.dynamic]], |
| 397 deserializeConst: [core.List, [dart.dynamic]], | 397 deserializeConst: [core.List, [dart.dynamic]], |
| 398 deserializeMap: [core.Map, [dart.dynamic]], | 398 deserializeMap: [core.Map, [dart.dynamic]], |
| 399 deserializeSendPort: [isolate.SendPort, [dart.dynamic]], | 399 deserializeSendPort: [isolate.SendPort, [dart.dynamic]], |
| 400 deserializeRawSendPort: [isolate.SendPort, [dart.dynamic]], | 400 deserializeRawSendPort: [isolate.SendPort, [dart.dynamic]], |
| 401 deserializeJSObject: [dart.dynamic, [dart.dynamic]], | 401 deserializeJSObject: [dart.dynamic, [dart.dynamic]], |
| 402 deserializeClosure: [core.Function, [dart.dynamic]], | 402 deserializeClosure: [core.Function, [dart.dynamic]], |
| 403 deserializeDartObject: [dart.dynamic, [dart.dynamic]] | 403 deserializeDartObject: [dart.dynamic, [dart.dynamic]] |
| 404 }) | 404 }) |
| 405 }); | 405 }); |
| 406 let __CastType0 = dart.typedef('__CastType0', () => dart.functionType(dart.dyn
amic, [dart.dynamic])); | 406 const __CastType0 = dart.typedef('__CastType0', () => dart.functionType(dart.d
ynamic, [dart.dynamic])); |
| 407 function _callInIsolate(isolate, func) { | 407 function _callInIsolate(isolate, func) { |
| 408 let result = isolate.eval(func); | 408 let result = isolate.eval(func); |
| 409 exports._globalState.topEventLoop.run(); | 409 exports._globalState.topEventLoop.run(); |
| 410 return result; | 410 return result; |
| 411 } | 411 } |
| 412 dart.fn(_callInIsolate, () => dart.definiteFunctionType(dart.dynamic, [_Isolat
eContext, core.Function])); | 412 dart.fn(_callInIsolate, () => dart.definiteFunctionType(dart.dynamic, [_Isolat
eContext, core.Function])); |
| 413 let _activeJsAsyncCount = Symbol('_activeJsAsyncCount'); | 413 const _activeJsAsyncCount = Symbol('_activeJsAsyncCount'); |
| 414 function enterJsAsync() { | 414 function enterJsAsync() { |
| 415 let o = exports._globalState.topEventLoop; | 415 let o = exports._globalState.topEventLoop; |
| 416 o[_activeJsAsyncCount] = dart.notNull(o[_activeJsAsyncCount]) + 1; | 416 o[_activeJsAsyncCount] = dart.notNull(o[_activeJsAsyncCount]) + 1; |
| 417 } | 417 } |
| 418 dart.fn(enterJsAsync); | 418 dart.fn(enterJsAsync); |
| 419 function leaveJsAsync() { | 419 function leaveJsAsync() { |
| 420 let o = exports._globalState.topEventLoop; | 420 let o = exports._globalState.topEventLoop; |
| 421 o[_activeJsAsyncCount] = dart.notNull(o[_activeJsAsyncCount]) - 1; | 421 o[_activeJsAsyncCount] = dart.notNull(o[_activeJsAsyncCount]) - 1; |
| 422 dart.assert(dart.notNull(exports._globalState.topEventLoop[_activeJsAsyncCou
nt]) >= 0); | 422 dart.assert(dart.notNull(exports._globalState.topEventLoop[_activeJsAsyncCou
nt]) >= 0); |
| 423 } | 423 } |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 458 } | 458 } |
| 459 dart.fn(startRootIsolate, dart.void, [dart.dynamic, dart.dynamic]); | 459 dart.fn(startRootIsolate, dart.void, [dart.dynamic, dart.dynamic]); |
| 460 dart.copyProperties(exports, { | 460 dart.copyProperties(exports, { |
| 461 get _globalState() { | 461 get _globalState() { |
| 462 return dart.as(dart.globalState, _Manager); | 462 return dart.as(dart.globalState, _Manager); |
| 463 }, | 463 }, |
| 464 set _globalState(val) { | 464 set _globalState(val) { |
| 465 dart.globalState = val; | 465 dart.globalState = val; |
| 466 } | 466 } |
| 467 }); | 467 }); |
| 468 let _nativeDetectEnvironment = Symbol('_nativeDetectEnvironment'); | 468 const _nativeDetectEnvironment = Symbol('_nativeDetectEnvironment'); |
| 469 let _nativeInitWorkerMessageHandler = Symbol('_nativeInitWorkerMessageHandler'
); | 469 const _nativeInitWorkerMessageHandler = Symbol('_nativeInitWorkerMessageHandle
r'); |
| 470 class _Manager extends core.Object { | 470 class _Manager extends core.Object { |
| 471 get useWorkers() { | 471 get useWorkers() { |
| 472 return this.supportsWorkers; | 472 return this.supportsWorkers; |
| 473 } | 473 } |
| 474 _Manager(entry) { | 474 _Manager(entry) { |
| 475 this.entry = entry; | 475 this.entry = entry; |
| 476 this.nextIsolateId = 0; | 476 this.nextIsolateId = 0; |
| 477 this.currentManagerId = 0; | 477 this.currentManagerId = 0; |
| 478 this.nextManagerId = 1; | 478 this.nextManagerId = 1; |
| 479 this.currentContext = null; | 479 this.currentContext = null; |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 dart.setSignature(_Manager, { | 530 dart.setSignature(_Manager, { |
| 531 constructors: () => ({_Manager: [_Manager, [core.Function]]}), | 531 constructors: () => ({_Manager: [_Manager, [core.Function]]}), |
| 532 methods: () => ({ | 532 methods: () => ({ |
| 533 [_nativeDetectEnvironment]: [dart.void, []], | 533 [_nativeDetectEnvironment]: [dart.void, []], |
| 534 [_nativeInitWorkerMessageHandler]: [dart.void, []], | 534 [_nativeInitWorkerMessageHandler]: [dart.void, []], |
| 535 maybeCloseWorker: [dart.void, []] | 535 maybeCloseWorker: [dart.void, []] |
| 536 }), | 536 }), |
| 537 statics: () => ({_serializePrintMessage: [dart.dynamic, [dart.dynamic]]}), | 537 statics: () => ({_serializePrintMessage: [dart.dynamic, [dart.dynamic]]}), |
| 538 names: ['_serializePrintMessage'] | 538 names: ['_serializePrintMessage'] |
| 539 }); | 539 }); |
| 540 let _scheduledControlEvents = Symbol('_scheduledControlEvents'); | 540 const _scheduledControlEvents = Symbol('_scheduledControlEvents'); |
| 541 let _isExecutingEvent = Symbol('_isExecutingEvent'); | 541 const _isExecutingEvent = Symbol('_isExecutingEvent'); |
| 542 let _updateGlobalState = Symbol('_updateGlobalState'); | 542 const _updateGlobalState = Symbol('_updateGlobalState'); |
| 543 let _setGlobals = Symbol('_setGlobals'); | 543 const _setGlobals = Symbol('_setGlobals'); |
| 544 let _addRegistration = Symbol('_addRegistration'); | 544 const _addRegistration = Symbol('_addRegistration'); |
| 545 let _close = Symbol('_close'); | 545 const _close = Symbol('_close'); |
| 546 class _IsolateContext extends core.Object { | 546 class _IsolateContext extends core.Object { |
| 547 _IsolateContext() { | 547 _IsolateContext() { |
| 548 this.id = (() => { | 548 this.id = (() => { |
| 549 let o = exports._globalState, x = o.nextIsolateId; | 549 let o = exports._globalState, x = o.nextIsolateId; |
| 550 o.nextIsolateId = dart.notNull(x) + 1; | 550 o.nextIsolateId = dart.notNull(x) + 1; |
| 551 return x; | 551 return x; |
| 552 })(); | 552 })(); |
| 553 this.ports = core.Map$(core.int, RawReceivePortImpl).new(); | 553 this.ports = core.Map$(core.int, RawReceivePortImpl).new(); |
| 554 this.weakPorts = core.Set$(core.int).new(); | 554 this.weakPorts = core.Set$(core.int).new(); |
| 555 this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE(); | 555 this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE(); |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 819 handleControlMessage: [dart.void, [dart.dynamic]], | 819 handleControlMessage: [dart.void, [dart.dynamic]], |
| 820 lookup: [RawReceivePortImpl, [core.int]], | 820 lookup: [RawReceivePortImpl, [core.int]], |
| 821 [_addRegistration]: [dart.void, [core.int, RawReceivePortImpl]], | 821 [_addRegistration]: [dart.void, [core.int, RawReceivePortImpl]], |
| 822 register: [dart.void, [core.int, RawReceivePortImpl]], | 822 register: [dart.void, [core.int, RawReceivePortImpl]], |
| 823 registerWeak: [dart.void, [core.int, RawReceivePortImpl]], | 823 registerWeak: [dart.void, [core.int, RawReceivePortImpl]], |
| 824 [_updateGlobalState]: [dart.void, []], | 824 [_updateGlobalState]: [dart.void, []], |
| 825 kill: [dart.void, []], | 825 kill: [dart.void, []], |
| 826 unregister: [dart.void, [core.int]] | 826 unregister: [dart.void, [core.int]] |
| 827 }) | 827 }) |
| 828 }); | 828 }); |
| 829 let _runHelper = Symbol('_runHelper'); | 829 const _runHelper = Symbol('_runHelper'); |
| 830 class _EventLoop extends core.Object { | 830 class _EventLoop extends core.Object { |
| 831 _EventLoop() { | 831 _EventLoop() { |
| 832 this.events = collection.Queue$(_IsolateEvent).new(); | 832 this.events = collection.Queue$(_IsolateEvent).new(); |
| 833 this[_activeJsAsyncCount] = 0; | 833 this[_activeJsAsyncCount] = 0; |
| 834 } | 834 } |
| 835 enqueue(isolate, fn, msg) { | 835 enqueue(isolate, fn, msg) { |
| 836 this.events.addLast(new _IsolateEvent(dart.as(isolate, _IsolateContext), d
art.as(fn, core.Function), dart.as(msg, core.String))); | 836 this.events.addLast(new _IsolateEvent(dart.as(isolate, _IsolateContext), d
art.as(fn, core.Function), dart.as(msg, core.String))); |
| 837 } | 837 } |
| 838 prequeue(event) { | 838 prequeue(event) { |
| 839 this.events.addFirst(event); | 839 this.events.addFirst(event); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 853 if (event == null) { | 853 if (event == null) { |
| 854 this.checkOpenReceivePortsFromCommandLine(); | 854 this.checkOpenReceivePortsFromCommandLine(); |
| 855 exports._globalState.maybeCloseWorker(); | 855 exports._globalState.maybeCloseWorker(); |
| 856 return false; | 856 return false; |
| 857 } | 857 } |
| 858 event.process(); | 858 event.process(); |
| 859 return true; | 859 return true; |
| 860 } | 860 } |
| 861 [_runHelper]() { | 861 [_runHelper]() { |
| 862 if (exports.globalWindow != null) { | 862 if (exports.globalWindow != null) { |
| 863 let next = (function() { | 863 const next = (function() { |
| 864 if (!dart.notNull(this.runIteration())) | 864 if (!dart.notNull(this.runIteration())) |
| 865 return; | 865 return; |
| 866 async.Timer.run(next); | 866 async.Timer.run(next); |
| 867 }).bind(this); | 867 }).bind(this); |
| 868 dart.fn(next); | 868 dart.fn(next); |
| 869 next(); | 869 next(); |
| 870 } else { | 870 } else { |
| 871 while (dart.notNull(this.runIteration())) { | 871 while (dart.notNull(this.runIteration())) { |
| 872 } | 872 } |
| 873 } | 873 } |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 922 } | 922 } |
| 923 }); | 923 }); |
| 924 class _MainManagerStub extends core.Object { | 924 class _MainManagerStub extends core.Object { |
| 925 postMessage(msg) { | 925 postMessage(msg) { |
| 926 exports._global.postMessage(msg); | 926 exports._global.postMessage(msg); |
| 927 } | 927 } |
| 928 } | 928 } |
| 929 dart.setSignature(_MainManagerStub, { | 929 dart.setSignature(_MainManagerStub, { |
| 930 methods: () => ({postMessage: [dart.void, [dart.dynamic]]}) | 930 methods: () => ({postMessage: [dart.void, [dart.dynamic]]}) |
| 931 }); | 931 }); |
| 932 let _SPAWNED_SIGNAL = "spawned"; | 932 const _SPAWNED_SIGNAL = "spawned"; |
| 933 let _SPAWN_FAILED_SIGNAL = "spawn failed"; | 933 const _SPAWN_FAILED_SIGNAL = "spawn failed"; |
| 934 dart.copyProperties(exports, { | 934 dart.copyProperties(exports, { |
| 935 get globalWindow() { | 935 get globalWindow() { |
| 936 return exports._global.window; | 936 return exports._global.window; |
| 937 }, | 937 }, |
| 938 get globalWorker() { | 938 get globalWorker() { |
| 939 return exports._global.Worker; | 939 return exports._global.Worker; |
| 940 }, | 940 }, |
| 941 get globalPostMessageDefined() { | 941 get globalPostMessageDefined() { |
| 942 return !!exports._global.postMessage; | 942 return !!exports._global.postMessage; |
| 943 } | 943 } |
| 944 }); | 944 }); |
| 945 let _MainFunction = dart.typedef('_MainFunction', () => dart.functionType(dart
.dynamic, [])); | 945 const _MainFunction = dart.typedef('_MainFunction', () => dart.functionType(da
rt.dynamic, [])); |
| 946 let _MainFunctionArgs = dart.typedef('_MainFunctionArgs', () => dart.functionT
ype(dart.dynamic, [dart.dynamic])); | 946 const _MainFunctionArgs = dart.typedef('_MainFunctionArgs', () => dart.functio
nType(dart.dynamic, [dart.dynamic])); |
| 947 let _MainFunctionArgsMessage = dart.typedef('_MainFunctionArgsMessage', () =>
dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])); | 947 const _MainFunctionArgsMessage = dart.typedef('_MainFunctionArgsMessage', () =
> dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])); |
| 948 class IsolateNatives extends core.Object { | 948 class IsolateNatives extends core.Object { |
| 949 static computeThisScript() { | 949 static computeThisScript() { |
| 950 let currentScript = document.currentScript; | 950 let currentScript = document.currentScript; |
| 951 if (currentScript != null) { | 951 if (currentScript != null) { |
| 952 return String(currentScript.src); | 952 return String(currentScript.src); |
| 953 } | 953 } |
| 954 if (dart.notNull(_js_helper.Primitives.isD8)) | 954 if (dart.notNull(_js_helper.Primitives.isD8)) |
| 955 return IsolateNatives.computeThisScriptD8(); | 955 return IsolateNatives.computeThisScriptD8(); |
| 956 if (dart.notNull(_js_helper.Primitives.isJsshell)) | 956 if (dart.notNull(_js_helper.Primitives.isJsshell)) |
| 957 return IsolateNatives.computeThisScriptJsshell(); | 957 return IsolateNatives.computeThisScriptJsshell(); |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1242 IsolateNatives.enableSpawnWorker = null; | 1242 IsolateNatives.enableSpawnWorker = null; |
| 1243 dart.defineLazyProperties(IsolateNatives, { | 1243 dart.defineLazyProperties(IsolateNatives, { |
| 1244 get thisScript() { | 1244 get thisScript() { |
| 1245 return IsolateNatives.computeThisScript(); | 1245 return IsolateNatives.computeThisScript(); |
| 1246 }, | 1246 }, |
| 1247 set thisScript(_) {}, | 1247 set thisScript(_) {}, |
| 1248 get workerIds() { | 1248 get workerIds() { |
| 1249 return new (core.Expando$(core.int))(); | 1249 return new (core.Expando$(core.int))(); |
| 1250 } | 1250 } |
| 1251 }); | 1251 }); |
| 1252 let _checkReplyTo = Symbol('_checkReplyTo'); | 1252 const _checkReplyTo = Symbol('_checkReplyTo'); |
| 1253 class _BaseSendPort extends core.Object { | 1253 class _BaseSendPort extends core.Object { |
| 1254 _BaseSendPort(isolateId) { | 1254 _BaseSendPort(isolateId) { |
| 1255 this[_isolateId] = isolateId; | 1255 this[_isolateId] = isolateId; |
| 1256 } | 1256 } |
| 1257 [_checkReplyTo](replyTo) { | 1257 [_checkReplyTo](replyTo) { |
| 1258 if (replyTo != null && !dart.is(replyTo, _NativeJsSendPort) && !dart.is(re
plyTo, _WorkerSendPort)) { | 1258 if (replyTo != null && !dart.is(replyTo, _NativeJsSendPort) && !dart.is(re
plyTo, _WorkerSendPort)) { |
| 1259 dart.throw(core.Exception.new("SendPort.send: Illegal replyTo port type"
)); | 1259 dart.throw(core.Exception.new("SendPort.send: Illegal replyTo port type"
)); |
| 1260 } | 1260 } |
| 1261 } | 1261 } |
| 1262 } | 1262 } |
| 1263 _BaseSendPort[dart.implements] = () => [isolate.SendPort]; | 1263 _BaseSendPort[dart.implements] = () => [isolate.SendPort]; |
| 1264 dart.setSignature(_BaseSendPort, { | 1264 dart.setSignature(_BaseSendPort, { |
| 1265 constructors: () => ({_BaseSendPort: [_BaseSendPort, [core.int]]}), | 1265 constructors: () => ({_BaseSendPort: [_BaseSendPort, [core.int]]}), |
| 1266 methods: () => ({[_checkReplyTo]: [dart.void, [isolate.SendPort]]}) | 1266 methods: () => ({[_checkReplyTo]: [dart.void, [isolate.SendPort]]}) |
| 1267 }); | 1267 }); |
| 1268 let _isClosed = Symbol('_isClosed'); | 1268 const _isClosed = Symbol('_isClosed'); |
| 1269 let _add = Symbol('_add'); | 1269 const _add = Symbol('_add'); |
| 1270 class _NativeJsSendPort extends _BaseSendPort { | 1270 class _NativeJsSendPort extends _BaseSendPort { |
| 1271 _NativeJsSendPort(receivePort, isolateId) { | 1271 _NativeJsSendPort(receivePort, isolateId) { |
| 1272 this[_receivePort] = receivePort; | 1272 this[_receivePort] = receivePort; |
| 1273 super._BaseSendPort(isolateId); | 1273 super._BaseSendPort(isolateId); |
| 1274 } | 1274 } |
| 1275 send(message) { | 1275 send(message) { |
| 1276 let isolate = exports._globalState.isolates.get(this[_isolateId]); | 1276 let isolate = exports._globalState.isolates.get(this[_isolateId]); |
| 1277 if (isolate == null) | 1277 if (isolate == null) |
| 1278 return; | 1278 return; |
| 1279 if (dart.notNull(this[_receivePort][_isClosed])) | 1279 if (dart.notNull(this[_receivePort][_isClosed])) |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1323 } | 1323 } |
| 1324 get hashCode() { | 1324 get hashCode() { |
| 1325 return dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId]
) << 8 ^ dart.notNull(this[_receivePortId]); | 1325 return dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId]
) << 8 ^ dart.notNull(this[_receivePortId]); |
| 1326 } | 1326 } |
| 1327 } | 1327 } |
| 1328 _WorkerSendPort[dart.implements] = () => [isolate.SendPort]; | 1328 _WorkerSendPort[dart.implements] = () => [isolate.SendPort]; |
| 1329 dart.setSignature(_WorkerSendPort, { | 1329 dart.setSignature(_WorkerSendPort, { |
| 1330 constructors: () => ({_WorkerSendPort: [_WorkerSendPort, [core.int, core.int
, core.int]]}), | 1330 constructors: () => ({_WorkerSendPort: [_WorkerSendPort, [core.int, core.int
, core.int]]}), |
| 1331 methods: () => ({send: [dart.void, [dart.dynamic]]}) | 1331 methods: () => ({send: [dart.void, [dart.dynamic]]}) |
| 1332 }); | 1332 }); |
| 1333 let _handler = Symbol('_handler'); | 1333 const _handler = Symbol('_handler'); |
| 1334 class RawReceivePortImpl extends core.Object { | 1334 class RawReceivePortImpl extends core.Object { |
| 1335 RawReceivePortImpl(handler) { | 1335 RawReceivePortImpl(handler) { |
| 1336 this[_handler] = handler; | 1336 this[_handler] = handler; |
| 1337 this[_id] = (() => { | 1337 this[_id] = (() => { |
| 1338 let x = RawReceivePortImpl._nextFreeId; | 1338 let x = RawReceivePortImpl._nextFreeId; |
| 1339 RawReceivePortImpl._nextFreeId = dart.notNull(x) + 1; | 1339 RawReceivePortImpl._nextFreeId = dart.notNull(x) + 1; |
| 1340 return x; | 1340 return x; |
| 1341 })(); | 1341 })(); |
| 1342 this[_isClosed] = false; | 1342 this[_isClosed] = false; |
| 1343 exports._globalState.currentContext.register(this[_id], this); | 1343 exports._globalState.currentContext.register(this[_id], this); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1389 weak: [RawReceivePortImpl, [core.Function]], | 1389 weak: [RawReceivePortImpl, [core.Function]], |
| 1390 _controlPort: [RawReceivePortImpl, []] | 1390 _controlPort: [RawReceivePortImpl, []] |
| 1391 }), | 1391 }), |
| 1392 methods: () => ({ | 1392 methods: () => ({ |
| 1393 [_close]: [dart.void, []], | 1393 [_close]: [dart.void, []], |
| 1394 close: [dart.void, []], | 1394 close: [dart.void, []], |
| 1395 [_add]: [dart.void, [dart.dynamic]] | 1395 [_add]: [dart.void, [dart.dynamic]] |
| 1396 }) | 1396 }) |
| 1397 }); | 1397 }); |
| 1398 RawReceivePortImpl._nextFreeId = 1; | 1398 RawReceivePortImpl._nextFreeId = 1; |
| 1399 let _rawPort = Symbol('_rawPort'); | 1399 const _rawPort = Symbol('_rawPort'); |
| 1400 let _controller = Symbol('_controller'); | 1400 const _controller = Symbol('_controller'); |
| 1401 class ReceivePortImpl extends async.Stream { | 1401 class ReceivePortImpl extends async.Stream { |
| 1402 ReceivePortImpl() { | 1402 ReceivePortImpl() { |
| 1403 this.fromRawReceivePort(new RawReceivePortImpl(null)); | 1403 this.fromRawReceivePort(new RawReceivePortImpl(null)); |
| 1404 } | 1404 } |
| 1405 weak() { | 1405 weak() { |
| 1406 this.fromRawReceivePort(new RawReceivePortImpl.weak(null)); | 1406 this.fromRawReceivePort(new RawReceivePortImpl.weak(null)); |
| 1407 } | 1407 } |
| 1408 fromRawReceivePort(rawPort) { | 1408 fromRawReceivePort(rawPort) { |
| 1409 this[_rawPort] = rawPort; | 1409 this[_rawPort] = rawPort; |
| 1410 this[_controller] = null; | 1410 this[_controller] = null; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1433 constructors: () => ({ | 1433 constructors: () => ({ |
| 1434 ReceivePortImpl: [ReceivePortImpl, []], | 1434 ReceivePortImpl: [ReceivePortImpl, []], |
| 1435 weak: [ReceivePortImpl, []], | 1435 weak: [ReceivePortImpl, []], |
| 1436 fromRawReceivePort: [ReceivePortImpl, [isolate.RawReceivePort]] | 1436 fromRawReceivePort: [ReceivePortImpl, [isolate.RawReceivePort]] |
| 1437 }), | 1437 }), |
| 1438 methods: () => ({ | 1438 methods: () => ({ |
| 1439 listen: [async.StreamSubscription, [dart.functionType(dart.void, [dart.dyn
amic])], {onError: core.Function, onDone: dart.functionType(dart.void, []), canc
elOnError: core.bool}], | 1439 listen: [async.StreamSubscription, [dart.functionType(dart.void, [dart.dyn
amic])], {onError: core.Function, onDone: dart.functionType(dart.void, []), canc
elOnError: core.bool}], |
| 1440 close: [dart.void, []] | 1440 close: [dart.void, []] |
| 1441 }) | 1441 }) |
| 1442 }); | 1442 }); |
| 1443 let _once = Symbol('_once'); | 1443 const _once = Symbol('_once'); |
| 1444 let _inEventLoop = Symbol('_inEventLoop'); | 1444 const _inEventLoop = Symbol('_inEventLoop'); |
| 1445 let _handle = Symbol('_handle'); | 1445 const _handle = Symbol('_handle'); |
| 1446 class TimerImpl extends core.Object { | 1446 class TimerImpl extends core.Object { |
| 1447 TimerImpl(milliseconds, callback) { | 1447 TimerImpl(milliseconds, callback) { |
| 1448 this[_once] = true; | 1448 this[_once] = true; |
| 1449 this[_inEventLoop] = false; | 1449 this[_inEventLoop] = false; |
| 1450 this[_handle] = null; | 1450 this[_handle] = null; |
| 1451 if (milliseconds == 0 && (!dart.notNull(hasTimer()) || dart.notNull(export
s._globalState.isWorker))) { | 1451 if (milliseconds == 0 && (!dart.notNull(hasTimer()) || dart.notNull(export
s._globalState.isWorker))) { |
| 1452 let internalCallback = (function() { | 1452 const internalCallback = (function() { |
| 1453 this[_handle] = null; | 1453 this[_handle] = null; |
| 1454 callback(); | 1454 callback(); |
| 1455 }).bind(this); | 1455 }).bind(this); |
| 1456 dart.fn(internalCallback, dart.void, []); | 1456 dart.fn(internalCallback, dart.void, []); |
| 1457 this[_handle] = 1; | 1457 this[_handle] = 1; |
| 1458 exports._globalState.topEventLoop.enqueue(exports._globalState.currentCo
ntext, internalCallback, 'timer'); | 1458 exports._globalState.topEventLoop.enqueue(exports._globalState.currentCo
ntext, internalCallback, 'timer'); |
| 1459 this[_inEventLoop] = true; | 1459 this[_inEventLoop] = true; |
| 1460 } else if (dart.notNull(hasTimer())) { | 1460 } else if (dart.notNull(hasTimer())) { |
| 1461 let internalCallback = (function() { | 1461 const internalCallback = (function() { |
| 1462 this[_handle] = null; | 1462 this[_handle] = null; |
| 1463 leaveJsAsync(); | 1463 leaveJsAsync(); |
| 1464 callback(); | 1464 callback(); |
| 1465 }).bind(this); | 1465 }).bind(this); |
| 1466 dart.fn(internalCallback, dart.void, []); | 1466 dart.fn(internalCallback, dart.void, []); |
| 1467 enterJsAsync(); | 1467 enterJsAsync(); |
| 1468 this[_handle] = self.setTimeout(internalCallback, milliseconds); | 1468 this[_handle] = self.setTimeout(internalCallback, milliseconds); |
| 1469 } else { | 1469 } else { |
| 1470 dart.assert(dart.notNull(milliseconds) > 0); | 1470 dart.assert(dart.notNull(milliseconds) > 0); |
| 1471 dart.throw(new core.UnsupportedError("Timer greater than 0.")); | 1471 dart.throw(new core.UnsupportedError("Timer greater than 0.")); |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1560 exports.leaveJsAsync = leaveJsAsync; | 1560 exports.leaveJsAsync = leaveJsAsync; |
| 1561 exports.isWorker = isWorker; | 1561 exports.isWorker = isWorker; |
| 1562 exports.startRootIsolate = startRootIsolate; | 1562 exports.startRootIsolate = startRootIsolate; |
| 1563 exports.IsolateNatives = IsolateNatives; | 1563 exports.IsolateNatives = IsolateNatives; |
| 1564 exports.RawReceivePortImpl = RawReceivePortImpl; | 1564 exports.RawReceivePortImpl = RawReceivePortImpl; |
| 1565 exports.ReceivePortImpl = ReceivePortImpl; | 1565 exports.ReceivePortImpl = ReceivePortImpl; |
| 1566 exports.TimerImpl = TimerImpl; | 1566 exports.TimerImpl = TimerImpl; |
| 1567 exports.hasTimer = hasTimer; | 1567 exports.hasTimer = hasTimer; |
| 1568 exports.CapabilityImpl = CapabilityImpl; | 1568 exports.CapabilityImpl = CapabilityImpl; |
| 1569 }); | 1569 }); |
| OLD | NEW |