| 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 */[ |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 return x; | 104 return x; |
| 105 } | 105 } |
| 106 serializeMap(x) { | 106 serializeMap(x) { |
| 107 let serializeTearOff = dart.bind(this, 'serialize'); | 107 let serializeTearOff = dart.bind(this, 'serialize'); |
| 108 return ['map', x.keys[dartx.map](dart.as(serializeTearOff, __CastType0))[d
artx.toList](), x.values[dartx.map](dart.as(serializeTearOff, dart.functionType(
dart.dynamic, [dart.dynamic])))[dartx.toList]()]; | 108 return ['map', x.keys[dartx.map](dart.as(serializeTearOff, __CastType0))[d
artx.toList](), x.values[dartx.map](dart.as(serializeTearOff, dart.functionType(
dart.dynamic, [dart.dynamic])))[dartx.toList]()]; |
| 109 } | 109 } |
| 110 serializeJSObject(x) { | 110 serializeJSObject(x) { |
| 111 if (!!x.constructor && x.constructor !== Object) { | 111 if (!!x.constructor && x.constructor !== Object) { |
| 112 this.unsupported(x, "Only plain JS Objects are supported:"); | 112 this.unsupported(x, "Only plain JS Objects are supported:"); |
| 113 } | 113 } |
| 114 let keys = dart.as(Object.keys(x), core.List); | 114 let keys = Object.keys(x); |
| 115 let values = []; | 115 let values = []; |
| 116 values[dartx.length] = keys[dartx.length]; | 116 values[dartx.length] = keys[dartx.length]; |
| 117 for (let i = 0; dart.notNull(i) < dart.notNull(keys[dartx.length]); i = da
rt.notNull(i) + 1) { | 117 for (let i = 0; dart.notNull(i) < dart.notNull(keys[dartx.length]); i = da
rt.notNull(i) + 1) { |
| 118 values[dartx.set](i, this.serialize(x[keys[dartx.get](i)])); | 118 values[dartx.set](i, this.serialize(x[keys[dartx.get](i)])); |
| 119 } | 119 } |
| 120 return ['js-object', keys, values]; | 120 return ['js-object', keys, values]; |
| 121 } | 121 } |
| 122 serializeWorkerSendPort(x) { | 122 serializeWorkerSendPort(x) { |
| 123 if (dart.notNull(this[_serializeSendPorts])) { | 123 if (dart.notNull(this[_serializeSendPorts])) { |
| 124 return ['sendport', x[_workerId], x[_isolateId], x[_receivePortId]]; | 124 return ['sendport', x[_workerId], x[_isolateId], x[_receivePortId]]; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 139 let name = IsolateNatives._getJSFunctionName(x); | 139 let name = IsolateNatives._getJSFunctionName(x); |
| 140 if (name == null) { | 140 if (name == null) { |
| 141 this.unsupported(x, "Closures can't be transmitted:"); | 141 this.unsupported(x, "Closures can't be transmitted:"); |
| 142 } | 142 } |
| 143 return ['function', name]; | 143 return ['function', name]; |
| 144 } | 144 } |
| 145 serializeDartObject(x) { | 145 serializeDartObject(x) { |
| 146 let classExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_n
ames.CLASS_ID_EXTRACTOR); | 146 let classExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_n
ames.CLASS_ID_EXTRACTOR); |
| 147 let fieldsExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_
names.CLASS_FIELDS_EXTRACTOR); | 147 let fieldsExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_
names.CLASS_FIELDS_EXTRACTOR); |
| 148 let classId = classExtractor(x); | 148 let classId = classExtractor(x); |
| 149 let fields = dart.as(fieldsExtractor(x), core.List); | 149 let fields = fieldsExtractor(x); |
| 150 return ['dart', classId, this.serializeArrayInPlace(dart.as(fields, _inter
ceptors.JSArray))]; | 150 return ['dart', classId, this.serializeArrayInPlace(dart.as(fields, _inter
ceptors.JSArray))]; |
| 151 } | 151 } |
| 152 } | 152 } |
| 153 dart.setSignature(_Serializer, { | 153 dart.setSignature(_Serializer, { |
| 154 constructors: () => ({_Serializer: [_Serializer, [], {serializeSendPorts: da
rt.dynamic}]}), | 154 constructors: () => ({_Serializer: [_Serializer, [], {serializeSendPorts: da
rt.dynamic}]}), |
| 155 methods: () => ({ | 155 methods: () => ({ |
| 156 serialize: [dart.dynamic, [dart.dynamic]], | 156 serialize: [dart.dynamic, [dart.dynamic]], |
| 157 unsupported: [dart.void, [dart.dynamic], [core.String]], | 157 unsupported: [dart.void, [dart.dynamic], [core.String]], |
| 158 makeRef: [dart.dynamic, [core.int]], | 158 makeRef: [dart.dynamic, [core.int]], |
| 159 isPrimitive: [core.bool, [dart.dynamic]], | 159 isPrimitive: [core.bool, [dart.dynamic]], |
| (...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 429 dart.dcall(entry, args, null); | 429 dart.dcall(entry, args, null); |
| 430 })); | 430 })); |
| 431 } else { | 431 } else { |
| 432 rootContext.eval(dart.as(entry, core.Function)); | 432 rootContext.eval(dart.as(entry, core.Function)); |
| 433 } | 433 } |
| 434 exports._globalState.topEventLoop.run(); | 434 exports._globalState.topEventLoop.run(); |
| 435 } | 435 } |
| 436 dart.fn(startRootIsolate, dart.void, [dart.dynamic, dart.dynamic]); | 436 dart.fn(startRootIsolate, dart.void, [dart.dynamic, dart.dynamic]); |
| 437 dart.copyProperties(exports, { | 437 dart.copyProperties(exports, { |
| 438 get _globalState() { | 438 get _globalState() { |
| 439 return dart.as(dart.globalState, _Manager); | 439 return dart.globalState; |
| 440 }, | 440 }, |
| 441 set _globalState(val) { | 441 set _globalState(val) { |
| 442 dart.globalState = val; | 442 dart.globalState = val; |
| 443 } | 443 } |
| 444 }); | 444 }); |
| 445 const _nativeDetectEnvironment = Symbol('_nativeDetectEnvironment'); | 445 const _nativeDetectEnvironment = Symbol('_nativeDetectEnvironment'); |
| 446 const _nativeInitWorkerMessageHandler = Symbol('_nativeInitWorkerMessageHandle
r'); | 446 const _nativeInitWorkerMessageHandler = Symbol('_nativeInitWorkerMessageHandle
r'); |
| 447 class _Manager extends core.Object { | 447 class _Manager extends core.Object { |
| 448 get useWorkers() { | 448 get useWorkers() { |
| 449 return this.supportsWorkers; | 449 return this.supportsWorkers; |
| (...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 915 return String(currentScript.src); | 915 return String(currentScript.src); |
| 916 } | 916 } |
| 917 if (dart.notNull(_js_helper.Primitives.isD8)) return IsolateNatives.comput
eThisScriptD8(); | 917 if (dart.notNull(_js_helper.Primitives.isD8)) return IsolateNatives.comput
eThisScriptD8(); |
| 918 if (dart.notNull(_js_helper.Primitives.isJsshell)) return IsolateNatives.c
omputeThisScriptJsshell(); | 918 if (dart.notNull(_js_helper.Primitives.isJsshell)) return IsolateNatives.c
omputeThisScriptJsshell(); |
| 919 if (exports._globalState != null && dart.notNull(exports._globalState.isWo
rker)) { | 919 if (exports._globalState != null && dart.notNull(exports._globalState.isWo
rker)) { |
| 920 return IsolateNatives.computeThisScriptFromTrace(); | 920 return IsolateNatives.computeThisScriptFromTrace(); |
| 921 } | 921 } |
| 922 return null; | 922 return null; |
| 923 } | 923 } |
| 924 static computeThisScriptJsshell() { | 924 static computeThisScriptJsshell() { |
| 925 return dart.as(thisFilename(), core.String); | 925 return thisFilename(); |
| 926 } | 926 } |
| 927 static computeThisScriptD8() { | 927 static computeThisScriptD8() { |
| 928 return IsolateNatives.computeThisScriptFromTrace(); | 928 return IsolateNatives.computeThisScriptFromTrace(); |
| 929 } | 929 } |
| 930 static computeThisScriptFromTrace() { | 930 static computeThisScriptFromTrace() { |
| 931 let stack = new Error().stack; | 931 let stack = new Error().stack; |
| 932 if (stack == null) { | 932 if (stack == null) { |
| 933 stack = (function() { | 933 stack = (function() { |
| 934 try { | 934 try { |
| 935 throw new Error(); | 935 throw new Error(); |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1036 } | 1036 } |
| 1037 } | 1037 } |
| 1038 static _consoleLog(msg) { | 1038 static _consoleLog(msg) { |
| 1039 self.console.log(msg); | 1039 self.console.log(msg); |
| 1040 } | 1040 } |
| 1041 static _getJSFunctionFromName(functionName) { | 1041 static _getJSFunctionFromName(functionName) { |
| 1042 let globalFunctionsContainer = _foreign_helper.JS_EMBEDDED_GLOBAL("", _js_
embedded_names.GLOBAL_FUNCTIONS); | 1042 let globalFunctionsContainer = _foreign_helper.JS_EMBEDDED_GLOBAL("", _js_
embedded_names.GLOBAL_FUNCTIONS); |
| 1043 return globalFunctionsContainer[functionName](); | 1043 return globalFunctionsContainer[functionName](); |
| 1044 } | 1044 } |
| 1045 static _getJSFunctionName(f) { | 1045 static _getJSFunctionName(f) { |
| 1046 return dart.as(f.$name, core.String); | 1046 return f.$name; |
| 1047 } | 1047 } |
| 1048 static _allocate(ctor) { | 1048 static _allocate(ctor) { |
| 1049 return new ctor(); | 1049 return new ctor(); |
| 1050 } | 1050 } |
| 1051 static spawnFunction(topLevelFunction, message, startPaused) { | 1051 static spawnFunction(topLevelFunction, message, startPaused) { |
| 1052 IsolateNatives.enableSpawnWorker = true; | 1052 IsolateNatives.enableSpawnWorker = true; |
| 1053 let name = IsolateNatives._getJSFunctionName(topLevelFunction); | 1053 let name = IsolateNatives._getJSFunctionName(topLevelFunction); |
| 1054 if (name == null) { | 1054 if (name == null) { |
| 1055 dart.throw(new core.UnsupportedError("only top-level functions can be sp
awned.")); | 1055 dart.throw(new core.UnsupportedError("only top-level functions can be sp
awned.")); |
| 1056 } | 1056 } |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1151 worker.onmessage = processWorkerMessageTrampoline; | 1151 worker.onmessage = processWorkerMessageTrampoline; |
| 1152 let o = exports._globalState; | 1152 let o = exports._globalState; |
| 1153 let workerId = o.nextManagerId; | 1153 let workerId = o.nextManagerId; |
| 1154 o.nextManagerId = dart.notNull(workerId) + 1; | 1154 o.nextManagerId = dart.notNull(workerId) + 1; |
| 1155 IsolateNatives.workerIds.set(worker, workerId); | 1155 IsolateNatives.workerIds.set(worker, workerId); |
| 1156 exports._globalState.managers.set(workerId, worker); | 1156 exports._globalState.managers.set(workerId, worker); |
| 1157 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}))); | 1157 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}))); |
| 1158 } | 1158 } |
| 1159 static workerOnError(event, uri, onError) { | 1159 static workerOnError(event, uri, onError) { |
| 1160 event.preventDefault(); | 1160 event.preventDefault(); |
| 1161 let message = dart.as(event.message, core.String); | 1161 let message = event.message; |
| 1162 if (message == null) { | 1162 if (message == null) { |
| 1163 message = `Error spawning worker for ${uri}`; | 1163 message = `Error spawning worker for ${uri}`; |
| 1164 } else { | 1164 } else { |
| 1165 message = `Error spawning worker for ${uri} (${message})`; | 1165 message = `Error spawning worker for ${uri} (${message})`; |
| 1166 } | 1166 } |
| 1167 onError(message); | 1167 onError(message); |
| 1168 return true; | 1168 return true; |
| 1169 } | 1169 } |
| 1170 } | 1170 } |
| 1171 dart.setSignature(IsolateNatives, { | 1171 dart.setSignature(IsolateNatives, { |
| (...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1508 exports.leaveJsAsync = leaveJsAsync; | 1508 exports.leaveJsAsync = leaveJsAsync; |
| 1509 exports.isWorker = isWorker; | 1509 exports.isWorker = isWorker; |
| 1510 exports.startRootIsolate = startRootIsolate; | 1510 exports.startRootIsolate = startRootIsolate; |
| 1511 exports.IsolateNatives = IsolateNatives; | 1511 exports.IsolateNatives = IsolateNatives; |
| 1512 exports.RawReceivePortImpl = RawReceivePortImpl; | 1512 exports.RawReceivePortImpl = RawReceivePortImpl; |
| 1513 exports.ReceivePortImpl = ReceivePortImpl; | 1513 exports.ReceivePortImpl = ReceivePortImpl; |
| 1514 exports.TimerImpl = TimerImpl; | 1514 exports.TimerImpl = TimerImpl; |
| 1515 exports.hasTimer = hasTimer; | 1515 exports.hasTimer = hasTimer; |
| 1516 exports.CapabilityImpl = CapabilityImpl; | 1516 exports.CapabilityImpl = CapabilityImpl; |
| 1517 }); | 1517 }); |
| OLD | NEW |