Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(317)

Side by Side Diff: lib/runtime/dart/_isolate_helper.js

Issue 1111863002: fix static members in _emitMemberName (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: catch more cases Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/runtime/dart/_internal.js ('k') | lib/runtime/dart/_js_helper.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 _id = Symbol('_id'); 22 let _id = Symbol('_id');
23 let _receivePort = Symbol('_receivePort'); 23 let _receivePort = Symbol('_receivePort');
24 let _getJSFunctionName = Symbol('_getJSFunctionName');
25 class _Serializer extends core.Object { 24 class _Serializer extends core.Object {
26 _Serializer(opts) { 25 _Serializer(opts) {
27 let serializeSendPorts = opts && 'serializeSendPorts' in opts ? opts.seria lizeSendPorts : true; 26 let serializeSendPorts = opts && 'serializeSendPorts' in opts ? opts.seria lizeSendPorts : true;
28 this.serializedObjectIds = new core.Map$(dart.dynamic, core.int).identity( ); 27 this.serializedObjectIds = new core.Map$(dart.dynamic, core.int).identity( );
29 this[_serializeSendPorts] = dart.as(serializeSendPorts, core.bool); 28 this[_serializeSendPorts] = dart.as(serializeSendPorts, core.bool);
30 } 29 }
31 serialize(x) { 30 serialize(x) {
32 if (this.isPrimitive(x)) 31 if (this.isPrimitive(x))
33 return this.serializePrimitive(x); 32 return this.serializePrimitive(x);
34 let serializationId = this.serializedObjectIds.get(x); 33 let serializationId = this.serializedObjectIds.get(x);
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 if (this[_serializeSendPorts]) { 134 if (this[_serializeSendPorts]) {
136 let workerId = exports._globalState.currentManagerId; 135 let workerId = exports._globalState.currentManagerId;
137 return ['sendport', workerId, x[_isolateId], x[_receivePort][_id]]; 136 return ['sendport', workerId, x[_isolateId], x[_receivePort][_id]];
138 } 137 }
139 return ['raw sendport', x]; 138 return ['raw sendport', x];
140 } 139 }
141 serializeCapability(x) { 140 serializeCapability(x) {
142 return ['capability', x[_id]]; 141 return ['capability', x[_id]];
143 } 142 }
144 serializeClosure(x) { 143 serializeClosure(x) {
145 let name = IsolateNatives[_getJSFunctionName](x); 144 let name = IsolateNatives._getJSFunctionName(x);
146 if (name == null) { 145 if (name == null) {
147 this.unsupported(x, "Closures can't be transmitted:"); 146 this.unsupported(x, "Closures can't be transmitted:");
148 } 147 }
149 return ['function', name]; 148 return ['function', name];
150 } 149 }
151 serializeDartObject(x) { 150 serializeDartObject(x) {
152 let classExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_n ames.CLASS_ID_EXTRACTOR); 151 let classExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_n ames.CLASS_ID_EXTRACTOR);
153 let fieldsExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_ names.CLASS_FIELDS_EXTRACTOR); 152 let fieldsExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_ names.CLASS_FIELDS_EXTRACTOR);
154 let classId = classExtractor(x); 153 let classId = classExtractor(x);
155 let fields = dart.as(fieldsExtractor(x), core.List); 154 let fields = dart.as(fieldsExtractor(x), core.List);
156 return ['dart', classId, this.serializeArrayInPlace(dart.as(fields, _inter ceptors.JSArray))]; 155 return ['dart', classId, this.serializeArrayInPlace(dart.as(fields, _inter ceptors.JSArray))];
157 } 156 }
158 } 157 }
159 let _adjustSendPorts = Symbol('_adjustSendPorts'); 158 let _adjustSendPorts = Symbol('_adjustSendPorts');
160 let _getJSFunctionFromName = Symbol('_getJSFunctionFromName');
161 class _Deserializer extends core.Object { 159 class _Deserializer extends core.Object {
162 _Deserializer(opts) { 160 _Deserializer(opts) {
163 let adjustSendPorts = opts && 'adjustSendPorts' in opts ? opts.adjustSendP orts : true; 161 let adjustSendPorts = opts && 'adjustSendPorts' in opts ? opts.adjustSendP orts : true;
164 this.deserializedObjects = new core.List(); 162 this.deserializedObjects = new core.List();
165 this[_adjustSendPorts] = dart.as(adjustSendPorts, core.bool); 163 this[_adjustSendPorts] = dart.as(adjustSendPorts, core.bool);
166 } 164 }
167 deserialize(x) { 165 deserialize(x) {
168 if (this.isPrimitive(x)) 166 if (this.isPrimitive(x))
169 return this.deserializePrimitive(x); 167 return this.deserializePrimitive(x);
170 if (!dart.is(x, _interceptors.JSArray)) 168 if (!dart.is(x, _interceptors.JSArray))
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 let o = {}; 324 let o = {};
327 this.deserializedObjects[core.$add](o); 325 this.deserializedObjects[core.$add](o);
328 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) { 326 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) {
329 o[keys[core.$get](i)] = this.deserialize(values[core.$get](i)); 327 o[keys[core.$get](i)] = this.deserialize(values[core.$get](i));
330 } 328 }
331 return o; 329 return o;
332 } 330 }
333 deserializeClosure(x) { 331 deserializeClosure(x) {
334 dart.assert(dart.equals(dart.dindex(x, 0), 'function')); 332 dart.assert(dart.equals(dart.dindex(x, 0), 'function'));
335 let name = dart.as(dart.dindex(x, 1), core.String); 333 let name = dart.as(dart.dindex(x, 1), core.String);
336 let result = dart.as(IsolateNatives[_getJSFunctionFromName](name), core.Fu nction); 334 let result = dart.as(IsolateNatives._getJSFunctionFromName(name), core.Fun ction);
337 this.deserializedObjects[core.$add](result); 335 this.deserializedObjects[core.$add](result);
338 return result; 336 return result;
339 } 337 }
340 deserializeDartObject(x) { 338 deserializeDartObject(x) {
341 dart.assert(dart.equals(dart.dindex(x, 0), 'dart')); 339 dart.assert(dart.equals(dart.dindex(x, 0), 'dart'));
342 let classId = dart.as(dart.dindex(x, 1), core.String); 340 let classId = dart.as(dart.dindex(x, 1), core.String);
343 let fields = dart.as(dart.dindex(x, 2), core.List); 341 let fields = dart.as(dart.dindex(x, 2), core.List);
344 let instanceFromClassId = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embed ded_names.INSTANCE_FROM_CLASS_ID); 342 let instanceFromClassId = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embed ded_names.INSTANCE_FROM_CLASS_ID);
345 let initializeObject = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded _names.INITIALIZE_EMPTY_INSTANCE); 343 let initializeObject = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded _names.INITIALIZE_EMPTY_INSTANCE);
346 let emptyInstance = instanceFromClassId(classId); 344 let emptyInstance = instanceFromClassId(classId);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 dart.copyProperties(exports, { 404 dart.copyProperties(exports, {
407 get _globalState() { 405 get _globalState() {
408 return dart.as(init.globalState, _Manager); 406 return dart.as(init.globalState, _Manager);
409 }, 407 },
410 set _globalState(val) { 408 set _globalState(val) {
411 init.globalState = val; 409 init.globalState = val;
412 } 410 }
413 }); 411 });
414 let _nativeDetectEnvironment = Symbol('_nativeDetectEnvironment'); 412 let _nativeDetectEnvironment = Symbol('_nativeDetectEnvironment');
415 let _nativeInitWorkerMessageHandler = Symbol('_nativeInitWorkerMessageHandler' ); 413 let _nativeInitWorkerMessageHandler = Symbol('_nativeInitWorkerMessageHandler' );
416 let _processWorkerMessage = Symbol('_processWorkerMessage');
417 let _serializePrintMessage = Symbol('_serializePrintMessage');
418 class _Manager extends core.Object { 414 class _Manager extends core.Object {
419 get useWorkers() { 415 get useWorkers() {
420 return this.supportsWorkers; 416 return this.supportsWorkers;
421 } 417 }
422 _Manager(entry) { 418 _Manager(entry) {
423 this.entry = entry; 419 this.entry = entry;
424 this.nextIsolateId = 0; 420 this.nextIsolateId = 0;
425 this.currentManagerId = 0; 421 this.currentManagerId = 0;
426 this.nextManagerId = 1; 422 this.nextManagerId = 1;
427 this.currentContext = null; 423 this.currentContext = null;
(...skipping 19 matching lines...) Expand all
447 let isWorkerDefined = exports.globalWorker != null; 443 let isWorkerDefined = exports.globalWorker != null;
448 this.isWorker = !dart.notNull(isWindowDefined) && dart.notNull(exports.glo balPostMessageDefined); 444 this.isWorker = !dart.notNull(isWindowDefined) && dart.notNull(exports.glo balPostMessageDefined);
449 this.supportsWorkers = dart.notNull(this.isWorker) || dart.notNull(isWorke rDefined) && IsolateNatives.thisScript != null; 445 this.supportsWorkers = dart.notNull(this.isWorker) || dart.notNull(isWorke rDefined) && IsolateNatives.thisScript != null;
450 this.fromCommandLine = !dart.notNull(isWindowDefined) && !dart.notNull(thi s.isWorker); 446 this.fromCommandLine = !dart.notNull(isWindowDefined) && !dart.notNull(thi s.isWorker);
451 } 447 }
452 [_nativeInitWorkerMessageHandler]() { 448 [_nativeInitWorkerMessageHandler]() {
453 let func = function(f, a) { 449 let func = function(f, a) {
454 return function(e) { 450 return function(e) {
455 f(a, e); 451 f(a, e);
456 }; 452 };
457 }(_foreign_helper.DART_CLOSURE_TO_JS(dart.bind(IsolateNatives, _processWor kerMessage)), this.mainManager); 453 }(_foreign_helper.DART_CLOSURE_TO_JS(dart.bind(IsolateNatives, '_processWo rkerMessage')), this.mainManager);
458 self.onmessage = func; 454 self.onmessage = func;
459 self.dartPrint = self.dartPrint || function(serialize) { 455 self.dartPrint = self.dartPrint || function(serialize) {
460 return function(object) { 456 return function(object) {
461 if (self.console && self.console.log) { 457 if (self.console && self.console.log) {
462 self.console.log(object); 458 self.console.log(object);
463 } else { 459 } else {
464 self.postMessage(serialize(object)); 460 self.postMessage(serialize(object));
465 } 461 }
466 }; 462 };
467 }(_foreign_helper.DART_CLOSURE_TO_JS(_Manager[_serializePrintMessage])); 463 }(_foreign_helper.DART_CLOSURE_TO_JS(_Manager._serializePrintMessage));
468 } 464 }
469 static [_serializePrintMessage](object) { 465 static _serializePrintMessage(object) {
470 return _serializeMessage(dart.map({command: "print", msg: object})); 466 return _serializeMessage(dart.map({command: "print", msg: object}));
471 } 467 }
472 maybeCloseWorker() { 468 maybeCloseWorker() {
473 if (dart.notNull(this.isWorker) && dart.notNull(this.isolates.isEmpty) && this.topEventLoop[_activeJsAsyncCount] == 0) { 469 if (dart.notNull(this.isWorker) && dart.notNull(this.isolates.isEmpty) && this.topEventLoop[_activeJsAsyncCount] == 0) {
474 this.mainManager.postMessage(_serializeMessage(dart.map({command: 'close '}))); 470 this.mainManager.postMessage(_serializeMessage(dart.map({command: 'close '})));
475 } 471 }
476 } 472 }
477 } 473 }
478 let _controlPort = Symbol('_controlPort'); 474 let _controlPort = Symbol('_controlPort');
479 let _scheduledControlEvents = Symbol('_scheduledControlEvents'); 475 let _scheduledControlEvents = Symbol('_scheduledControlEvents');
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 return self.Worker; 828 return self.Worker;
833 }, 829 },
834 get globalPostMessageDefined() { 830 get globalPostMessageDefined() {
835 _js_helper.requiresPreamble(); 831 _js_helper.requiresPreamble();
836 return !!self.postMessage; 832 return !!self.postMessage;
837 } 833 }
838 }); 834 });
839 let _MainFunction = dart.typedef('_MainFunction', () => dart.functionType(dart .dynamic, [])); 835 let _MainFunction = dart.typedef('_MainFunction', () => dart.functionType(dart .dynamic, []));
840 let _MainFunctionArgs = dart.typedef('_MainFunctionArgs', () => dart.functionT ype(dart.dynamic, [dart.dynamic])); 836 let _MainFunctionArgs = dart.typedef('_MainFunctionArgs', () => dart.functionT ype(dart.dynamic, [dart.dynamic]));
841 let _MainFunctionArgsMessage = dart.typedef('_MainFunctionArgsMessage', () => dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])); 837 let _MainFunctionArgsMessage = dart.typedef('_MainFunctionArgsMessage', () => dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]));
842 let _getEventData = Symbol('_getEventData');
843 let _startIsolate = Symbol('_startIsolate');
844 let _log = Symbol('_log');
845 let _consoleLog = Symbol('_consoleLog');
846 let _allocate = Symbol('_allocate');
847 let _startWorker = Symbol('_startWorker');
848 let _startNonWorker = Symbol('_startNonWorker');
849 let _spawnWorker = Symbol('_spawnWorker');
850 class IsolateNatives extends core.Object { 838 class IsolateNatives extends core.Object {
851 static computeThisScript() { 839 static computeThisScript() {
852 let currentScript = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_na mes.CURRENT_SCRIPT); 840 let currentScript = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_na mes.CURRENT_SCRIPT);
853 if (currentScript != null) { 841 if (currentScript != null) {
854 return String(currentScript.src); 842 return String(currentScript.src);
855 } 843 }
856 if (_js_helper.Primitives.isD8) 844 if (_js_helper.Primitives.isD8)
857 return IsolateNatives.computeThisScriptD8(); 845 return IsolateNatives.computeThisScriptD8();
858 if (_js_helper.Primitives.isJsshell) 846 if (_js_helper.Primitives.isJsshell)
859 return IsolateNatives.computeThisScriptJsshell(); 847 return IsolateNatives.computeThisScriptJsshell();
(...skipping 25 matching lines...) Expand all
885 pattern = new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", "m"); 873 pattern = new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", "m");
886 matches = stack.match(pattern); 874 matches = stack.match(pattern);
887 if (matches != null) 875 if (matches != null)
888 return matches[1]; 876 return matches[1];
889 pattern = new RegExp("^[^@]*@(.*):[0-9]*$", "m"); 877 pattern = new RegExp("^[^@]*@(.*):[0-9]*$", "m");
890 matches = stack.match(pattern); 878 matches = stack.match(pattern);
891 if (matches != null) 879 if (matches != null)
892 return matches[1]; 880 return matches[1];
893 throw new core.UnsupportedError(`Cannot extract URI from "${stack}"`); 881 throw new core.UnsupportedError(`Cannot extract URI from "${stack}"`);
894 } 882 }
895 static [_getEventData](e) { 883 static _getEventData(e) {
896 return e.data; 884 return e.data;
897 } 885 }
898 static [_processWorkerMessage](sender, e) { 886 static _processWorkerMessage(sender, e) {
899 let msg = _deserializeMessage(IsolateNatives[_getEventData](e)); 887 let msg = _deserializeMessage(IsolateNatives._getEventData(e));
900 switch (dart.dindex(msg, 'command')) { 888 switch (dart.dindex(msg, 'command')) {
901 case 'start': 889 case 'start':
902 { 890 {
903 exports._globalState.currentManagerId = dart.as(dart.dindex(msg, 'id') , core.int); 891 exports._globalState.currentManagerId = dart.as(dart.dindex(msg, 'id') , core.int);
904 let functionName = dart.as(dart.dindex(msg, 'functionName'), core.Stri ng); 892 let functionName = dart.as(dart.dindex(msg, 'functionName'), core.Stri ng);
905 let entryPoint = dart.as(functionName == null ? exports._globalState.e ntry : IsolateNatives[_getJSFunctionFromName](functionName), core.Function); 893 let entryPoint = dart.as(functionName == null ? exports._globalState.e ntry : IsolateNatives._getJSFunctionFromName(functionName), core.Function);
906 let args = dart.dindex(msg, 'args'); 894 let args = dart.dindex(msg, 'args');
907 let message = _deserializeMessage(dart.dindex(msg, 'msg')); 895 let message = _deserializeMessage(dart.dindex(msg, 'msg'));
908 let isSpawnUri = dart.dindex(msg, 'isSpawnUri'); 896 let isSpawnUri = dart.dindex(msg, 'isSpawnUri');
909 let startPaused = dart.dindex(msg, 'startPaused'); 897 let startPaused = dart.dindex(msg, 'startPaused');
910 let replyTo = _deserializeMessage(dart.dindex(msg, 'replyTo')); 898 let replyTo = _deserializeMessage(dart.dindex(msg, 'replyTo'));
911 let context = new _IsolateContext(); 899 let context = new _IsolateContext();
912 exports._globalState.topEventLoop.enqueue(context, () => { 900 exports._globalState.topEventLoop.enqueue(context, () => {
913 IsolateNatives[_startIsolate](entryPoint, dart.as(args, core.List$(c ore.String)), message, dart.as(isSpawnUri, core.bool), dart.as(startPaused, core .bool), dart.as(replyTo, isolate.SendPort)); 901 IsolateNatives._startIsolate(entryPoint, dart.as(args, core.List$(co re.String)), message, dart.as(isSpawnUri, core.bool), dart.as(startPaused, core. bool), dart.as(replyTo, isolate.SendPort));
914 }, 'worker-start'); 902 }, 'worker-start');
915 exports._globalState.currentContext = context; 903 exports._globalState.currentContext = context;
916 exports._globalState.topEventLoop.run(); 904 exports._globalState.topEventLoop.run();
917 break; 905 break;
918 } 906 }
919 case 'spawn-worker': 907 case 'spawn-worker':
920 { 908 {
921 if (IsolateNatives.enableSpawnWorker != null) 909 if (IsolateNatives.enableSpawnWorker != null)
922 IsolateNatives.handleSpawnWorkerRequest(msg); 910 IsolateNatives.handleSpawnWorkerRequest(msg);
923 break; 911 break;
924 } 912 }
925 case 'message': 913 case 'message':
926 { 914 {
927 let port = dart.as(dart.dindex(msg, 'port'), isolate.SendPort); 915 let port = dart.as(dart.dindex(msg, 'port'), isolate.SendPort);
928 if (port != null) { 916 if (port != null) {
929 dart.dsend(dart.dindex(msg, 'port'), 'send', dart.dindex(msg, 'msg') ); 917 dart.dsend(dart.dindex(msg, 'port'), 'send', dart.dindex(msg, 'msg') );
930 } 918 }
931 exports._globalState.topEventLoop.run(); 919 exports._globalState.topEventLoop.run();
932 break; 920 break;
933 } 921 }
934 case 'close': 922 case 'close':
935 { 923 {
936 exports._globalState.managers.remove(IsolateNatives.workerIds.get(send er)); 924 exports._globalState.managers.remove(IsolateNatives.workerIds.get(send er));
937 sender.terminate(); 925 sender.terminate();
938 exports._globalState.topEventLoop.run(); 926 exports._globalState.topEventLoop.run();
939 break; 927 break;
940 } 928 }
941 case 'log': 929 case 'log':
942 { 930 {
943 IsolateNatives[_log](dart.dindex(msg, 'msg')); 931 IsolateNatives._log(dart.dindex(msg, 'msg'));
944 break; 932 break;
945 } 933 }
946 case 'print': 934 case 'print':
947 { 935 {
948 if (exports._globalState.isWorker) { 936 if (exports._globalState.isWorker) {
949 exports._globalState.mainManager.postMessage(_serializeMessage(dart. map({command: 'print', msg: msg}))); 937 exports._globalState.mainManager.postMessage(_serializeMessage(dart. map({command: 'print', msg: msg})));
950 } else { 938 } else {
951 core.print(dart.dindex(msg, 'msg')); 939 core.print(dart.dindex(msg, 'msg'));
952 } 940 }
953 break; 941 break;
954 } 942 }
955 case 'error': 943 case 'error':
956 { 944 {
957 throw dart.dindex(msg, 'msg'); 945 throw dart.dindex(msg, 'msg');
958 } 946 }
959 } 947 }
960 } 948 }
961 static handleSpawnWorkerRequest(msg) { 949 static handleSpawnWorkerRequest(msg) {
962 let replyPort = dart.dindex(msg, 'replyPort'); 950 let replyPort = dart.dindex(msg, 'replyPort');
963 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(msg => { 951 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(msg => {
964 dart.dsend(replyPort, 'send', msg); 952 dart.dsend(replyPort, 'send', msg);
965 }, { 953 }, {
966 onError: errorMessage => { 954 onError: errorMessage => {
967 dart.dsend(replyPort, 'send', [_SPAWN_FAILED_SIGNAL, errorMessage]); 955 dart.dsend(replyPort, 'send', [_SPAWN_FAILED_SIGNAL, errorMessage]);
968 } 956 }
969 }); 957 });
970 } 958 }
971 static [_log](msg) { 959 static _log(msg) {
972 if (exports._globalState.isWorker) { 960 if (exports._globalState.isWorker) {
973 exports._globalState.mainManager.postMessage(_serializeMessage(dart.map( {command: 'log', msg: msg}))); 961 exports._globalState.mainManager.postMessage(_serializeMessage(dart.map( {command: 'log', msg: msg})));
974 } else { 962 } else {
975 try { 963 try {
976 IsolateNatives[_consoleLog](msg); 964 IsolateNatives._consoleLog(msg);
977 } catch (e) { 965 } catch (e) {
978 let trace = dart.stackTrace(e); 966 let trace = dart.stackTrace(e);
979 throw new core.Exception(trace); 967 throw new core.Exception(trace);
980 } 968 }
981 969
982 } 970 }
983 } 971 }
984 static [_consoleLog](msg) { 972 static _consoleLog(msg) {
985 _js_helper.requiresPreamble(); 973 _js_helper.requiresPreamble();
986 self.console.log(msg); 974 self.console.log(msg);
987 } 975 }
988 static [_getJSFunctionFromName](functionName) { 976 static _getJSFunctionFromName(functionName) {
989 let globalFunctionsContainer = _foreign_helper.JS_EMBEDDED_GLOBAL("", _js_ embedded_names.GLOBAL_FUNCTIONS); 977 let globalFunctionsContainer = _foreign_helper.JS_EMBEDDED_GLOBAL("", _js_ embedded_names.GLOBAL_FUNCTIONS);
990 return globalFunctionsContainer[functionName](); 978 return globalFunctionsContainer[functionName]();
991 } 979 }
992 static [_getJSFunctionName](f) { 980 static _getJSFunctionName(f) {
993 return dart.as(dart.is(f, _js_helper.Closure) ? f.$name : null, core.Strin g); 981 return dart.as(dart.is(f, _js_helper.Closure) ? f.$name : null, core.Strin g);
994 } 982 }
995 static [_allocate](ctor) { 983 static _allocate(ctor) {
996 return new ctor(); 984 return new ctor();
997 } 985 }
998 static spawnFunction(topLevelFunction, message, startPaused) { 986 static spawnFunction(topLevelFunction, message, startPaused) {
999 IsolateNatives.enableSpawnWorker = true; 987 IsolateNatives.enableSpawnWorker = true;
1000 let name = IsolateNatives[_getJSFunctionName](topLevelFunction); 988 let name = IsolateNatives._getJSFunctionName(topLevelFunction);
1001 if (name == null) { 989 if (name == null) {
1002 throw new core.UnsupportedError("only top-level functions can be spawned ."); 990 throw new core.UnsupportedError("only top-level functions can be spawned .");
1003 } 991 }
1004 let isLight = false; 992 let isLight = false;
1005 let isSpawnUri = false; 993 let isSpawnUri = false;
1006 return IsolateNatives.spawn(name, null, null, message, isLight, isSpawnUri , startPaused); 994 return IsolateNatives.spawn(name, null, null, message, isLight, isSpawnUri , startPaused);
1007 } 995 }
1008 static spawnUri(uri, args, message, startPaused) { 996 static spawnUri(uri, args, message, startPaused) {
1009 IsolateNatives.enableSpawnWorker = true; 997 IsolateNatives.enableSpawnWorker = true;
1010 let isLight = false; 998 let isLight = false;
1011 let isSpawnUri = true; 999 let isSpawnUri = true;
1012 return IsolateNatives.spawn(null, dart.toString(uri), args, message, isLig ht, isSpawnUri, startPaused); 1000 return IsolateNatives.spawn(null, dart.toString(uri), args, message, isLig ht, isSpawnUri, startPaused);
1013 } 1001 }
1014 static spawn(functionName, uri, args, message, isLight, isSpawnUri, startPau sed) { 1002 static spawn(functionName, uri, args, message, isLight, isSpawnUri, startPau sed) {
1015 if (uri != null && dart.notNull(uri.endsWith(".dart"))) { 1003 if (uri != null && dart.notNull(uri.endsWith(".dart"))) {
1016 uri = dart.notNull(uri) + ".js"; 1004 uri = dart.notNull(uri) + ".js";
1017 } 1005 }
1018 let port = new isolate.ReceivePort(); 1006 let port = new isolate.ReceivePort();
1019 let completer = new (async.Completer$(core.List))(); 1007 let completer = new (async.Completer$(core.List))();
1020 port.first.then(msg => { 1008 port.first.then(msg => {
1021 if (dart.equals(dart.dindex(msg, 0), _SPAWNED_SIGNAL)) { 1009 if (dart.equals(dart.dindex(msg, 0), _SPAWNED_SIGNAL)) {
1022 completer.complete(msg); 1010 completer.complete(msg);
1023 } else { 1011 } else {
1024 dart.assert(dart.equals(dart.dindex(msg, 0), _SPAWN_FAILED_SIGNAL)); 1012 dart.assert(dart.equals(dart.dindex(msg, 0), _SPAWN_FAILED_SIGNAL));
1025 completer.completeError(dart.dindex(msg, 1)); 1013 completer.completeError(dart.dindex(msg, 1));
1026 } 1014 }
1027 }); 1015 });
1028 let signalReply = port.sendPort; 1016 let signalReply = port.sendPort;
1029 if (dart.notNull(exports._globalState.useWorkers) && !dart.notNull(isLight )) { 1017 if (dart.notNull(exports._globalState.useWorkers) && !dart.notNull(isLight )) {
1030 IsolateNatives[_startWorker](functionName, uri, args, message, isSpawnUr i, startPaused, signalReply, message => completer.completeError(message)); 1018 IsolateNatives._startWorker(functionName, uri, args, message, isSpawnUri , startPaused, signalReply, message => completer.completeError(message));
1031 } else { 1019 } else {
1032 IsolateNatives[_startNonWorker](functionName, uri, args, message, isSpaw nUri, startPaused, signalReply); 1020 IsolateNatives._startNonWorker(functionName, uri, args, message, isSpawn Uri, startPaused, signalReply);
1033 } 1021 }
1034 return completer.future; 1022 return completer.future;
1035 } 1023 }
1036 static [_startWorker](functionName, uri, args, message, isSpawnUri, startPau sed, replyPort, onError) { 1024 static _startWorker(functionName, uri, args, message, isSpawnUri, startPause d, replyPort, onError) {
1037 if (args != null) 1025 if (args != null)
1038 args = new core.List$(core.String).from(args); 1026 args = new core.List$(core.String).from(args);
1039 if (exports._globalState.isWorker) { 1027 if (exports._globalState.isWorker) {
1040 exports._globalState.mainManager.postMessage(_serializeMessage(dart.map( {command: 'spawn-worker', functionName: functionName, args: args, msg: message, uri: uri, isSpawnUri: isSpawnUri, startPaused: startPaused, replyPort: replyPort }))); 1028 exports._globalState.mainManager.postMessage(_serializeMessage(dart.map( {command: 'spawn-worker', functionName: functionName, args: args, msg: message, uri: uri, isSpawnUri: isSpawnUri, startPaused: startPaused, replyPort: replyPort })));
1041 } else { 1029 } else {
1042 IsolateNatives[_spawnWorker](functionName, uri, args, message, isSpawnUr i, startPaused, replyPort, onError); 1030 IsolateNatives._spawnWorker(functionName, uri, args, message, isSpawnUri , startPaused, replyPort, onError);
1043 } 1031 }
1044 } 1032 }
1045 static [_startNonWorker](functionName, uri, args, message, isSpawnUri, start Paused, replyPort) { 1033 static _startNonWorker(functionName, uri, args, message, isSpawnUri, startPa used, replyPort) {
1046 if (uri != null) { 1034 if (uri != null) {
1047 throw new core.UnsupportedError("Currently spawnUri is not supported wit hout web workers."); 1035 throw new core.UnsupportedError("Currently spawnUri is not supported wit hout web workers.");
1048 } 1036 }
1049 message = _clone(message); 1037 message = _clone(message);
1050 if (args != null) 1038 if (args != null)
1051 args = new core.List$(core.String).from(args); 1039 args = new core.List$(core.String).from(args);
1052 exports._globalState.topEventLoop.enqueue(new _IsolateContext(), () => { 1040 exports._globalState.topEventLoop.enqueue(new _IsolateContext(), () => {
1053 let func = IsolateNatives[_getJSFunctionFromName](functionName); 1041 let func = IsolateNatives._getJSFunctionFromName(functionName);
1054 IsolateNatives[_startIsolate](dart.as(func, core.Function), args, messag e, isSpawnUri, startPaused, replyPort); 1042 IsolateNatives._startIsolate(dart.as(func, core.Function), args, message , isSpawnUri, startPaused, replyPort);
1055 }, 'nonworker start'); 1043 }, 'nonworker start');
1056 } 1044 }
1057 static get currentIsolate() { 1045 static get currentIsolate() {
1058 let context = dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _Isola teContext); 1046 let context = dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _Isola teContext);
1059 return new isolate.Isolate(context.controlPort.sendPort, {pauseCapability: context.pauseCapability, terminateCapability: context.terminateCapability}); 1047 return new isolate.Isolate(context.controlPort.sendPort, {pauseCapability: context.pauseCapability, terminateCapability: context.terminateCapability});
1060 } 1048 }
1061 static [_startIsolate](topLevel, args, message, isSpawnUri, startPaused, rep lyTo) { 1049 static _startIsolate(topLevel, args, message, isSpawnUri, startPaused, reply To) {
1062 let context = dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _Isola teContext); 1050 let context = dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _Isola teContext);
1063 _js_helper.Primitives.initializeStatics(context.id); 1051 _js_helper.Primitives.initializeStatics(context.id);
1064 replyTo.send([_SPAWNED_SIGNAL, context.controlPort.sendPort, context.pause Capability, context.terminateCapability]); 1052 replyTo.send([_SPAWNED_SIGNAL, context.controlPort.sendPort, context.pause Capability, context.terminateCapability]);
1065 // Function runStartFunction: () → void 1053 // Function runStartFunction: () → void
1066 function runStartFunction() { 1054 function runStartFunction() {
1067 context.initialized = true; 1055 context.initialized = true;
1068 if (!dart.notNull(isSpawnUri)) { 1056 if (!dart.notNull(isSpawnUri)) {
1069 dart.dcall(topLevel, message); 1057 dart.dcall(topLevel, message);
1070 } else if (dart.is(topLevel, _MainFunctionArgsMessage)) { 1058 } else if (dart.is(topLevel, _MainFunctionArgsMessage)) {
1071 dart.dcall(topLevel, args, message); 1059 dart.dcall(topLevel, args, message);
1072 } else if (dart.is(topLevel, _MainFunctionArgs)) { 1060 } else if (dart.is(topLevel, _MainFunctionArgs)) {
1073 dart.dcall(topLevel, args); 1061 dart.dcall(topLevel, args);
1074 } else { 1062 } else {
1075 dart.dcall(topLevel); 1063 dart.dcall(topLevel);
1076 } 1064 }
1077 } 1065 }
1078 if (startPaused) { 1066 if (startPaused) {
1079 context.addPause(context.pauseCapability, context.pauseCapability); 1067 context.addPause(context.pauseCapability, context.pauseCapability);
1080 exports._globalState.topEventLoop.enqueue(context, runStartFunction, 'st art isolate'); 1068 exports._globalState.topEventLoop.enqueue(context, runStartFunction, 'st art isolate');
1081 } else { 1069 } else {
1082 runStartFunction(); 1070 runStartFunction();
1083 } 1071 }
1084 } 1072 }
1085 static [_spawnWorker](functionName, uri, args, message, isSpawnUri, startPau sed, replyPort, onError) { 1073 static _spawnWorker(functionName, uri, args, message, isSpawnUri, startPause d, replyPort, onError) {
1086 if (uri == null) 1074 if (uri == null)
1087 uri = IsolateNatives.thisScript; 1075 uri = IsolateNatives.thisScript;
1088 let worker = new Worker(uri); 1076 let worker = new Worker(uri);
1089 let onerrorTrampoline = function(f, u, c) { 1077 let onerrorTrampoline = function(f, u, c) {
1090 return function(e) { 1078 return function(e) {
1091 return f(e, u, c); 1079 return f(e, u, c);
1092 }; 1080 };
1093 }(_foreign_helper.DART_CLOSURE_TO_JS(IsolateNatives.workerOnError), uri, o nError); 1081 }(_foreign_helper.DART_CLOSURE_TO_JS(IsolateNatives.workerOnError), uri, o nError);
1094 worker.onerror = onerrorTrampoline; 1082 worker.onerror = onerrorTrampoline;
1095 let processWorkerMessageTrampoline = function(f, a) { 1083 let processWorkerMessageTrampoline = function(f, a) {
1096 return function(e) { 1084 return function(e) {
1097 e.onerror = null; 1085 e.onerror = null;
1098 return f(a, e); 1086 return f(a, e);
1099 }; 1087 };
1100 }(_foreign_helper.DART_CLOSURE_TO_JS(IsolateNatives[_processWorkerMessage] ), worker); 1088 }(_foreign_helper.DART_CLOSURE_TO_JS(IsolateNatives._processWorkerMessage) , worker);
1101 worker.onmessage = processWorkerMessageTrampoline; 1089 worker.onmessage = processWorkerMessageTrampoline;
1102 let o = exports._globalState; 1090 let o = exports._globalState;
1103 let workerId = o.nextManagerId; 1091 let workerId = o.nextManagerId;
1104 o.nextManagerId = dart.notNull(workerId) + 1; 1092 o.nextManagerId = dart.notNull(workerId) + 1;
1105 IsolateNatives.workerIds.set(worker, workerId); 1093 IsolateNatives.workerIds.set(worker, workerId);
1106 exports._globalState.managers.set(workerId, worker); 1094 exports._globalState.managers.set(workerId, worker);
1107 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}))); 1095 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})));
1108 } 1096 }
1109 static workerOnError(event, uri, onError) { 1097 static workerOnError(event, uri, onError) {
1110 event.preventDefault(); 1098 event.preventDefault();
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
1190 } 1178 }
1191 } 1179 }
1192 ['=='](other) { 1180 ['=='](other) {
1193 return dart.is(other, _WorkerSendPort) && dart.equals(this[_workerId], dar t.dload(other, _workerId)) && dart.equals(this[_isolateId], dart.dload(other, _i solateId)) && dart.equals(this[_receivePortId], dart.dload(other, _receivePortId )); 1181 return dart.is(other, _WorkerSendPort) && dart.equals(this[_workerId], dar t.dload(other, _workerId)) && dart.equals(this[_isolateId], dart.dload(other, _i solateId)) && dart.equals(this[_receivePortId], dart.dload(other, _receivePortId ));
1194 } 1182 }
1195 get hashCode() { 1183 get hashCode() {
1196 return dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId] ) << 8 ^ dart.notNull(this[_receivePortId]); 1184 return dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId] ) << 8 ^ dart.notNull(this[_receivePortId]);
1197 } 1185 }
1198 } 1186 }
1199 _WorkerSendPort[dart.implements] = () => [isolate.SendPort]; 1187 _WorkerSendPort[dart.implements] = () => [isolate.SendPort];
1200 let _nextFreeId = Symbol('_nextFreeId');
1201 let _handler = Symbol('_handler'); 1188 let _handler = Symbol('_handler');
1202 class RawReceivePortImpl extends core.Object { 1189 class RawReceivePortImpl extends core.Object {
1203 RawReceivePortImpl(handler) { 1190 RawReceivePortImpl(handler) {
1204 this[_handler] = handler; 1191 this[_handler] = handler;
1205 this[_id] = (() => { 1192 this[_id] = (() => {
1206 let x = RawReceivePortImpl[_nextFreeId]; 1193 let x = RawReceivePortImpl._nextFreeId;
1207 RawReceivePortImpl[_nextFreeId] = dart.notNull(x) + 1; 1194 RawReceivePortImpl._nextFreeId = dart.notNull(x) + 1;
1208 return x; 1195 return x;
1209 })(); 1196 })();
1210 this[_isClosed] = false; 1197 this[_isClosed] = false;
1211 exports._globalState.currentContext.register(this[_id], this); 1198 exports._globalState.currentContext.register(this[_id], this);
1212 } 1199 }
1213 weak(handler) { 1200 weak(handler) {
1214 this[_handler] = handler; 1201 this[_handler] = handler;
1215 this[_id] = (() => { 1202 this[_id] = (() => {
1216 let x = RawReceivePortImpl[_nextFreeId]; 1203 let x = RawReceivePortImpl._nextFreeId;
1217 RawReceivePortImpl[_nextFreeId] = dart.notNull(x) + 1; 1204 RawReceivePortImpl._nextFreeId = dart.notNull(x) + 1;
1218 return x; 1205 return x;
1219 })(); 1206 })();
1220 this[_isClosed] = false; 1207 this[_isClosed] = false;
1221 exports._globalState.currentContext.registerWeak(this[_id], this); 1208 exports._globalState.currentContext.registerWeak(this[_id], this);
1222 } 1209 }
1223 [_controlPort]() { 1210 _controlPort() {
1224 this[_handler] = null; 1211 this[_handler] = null;
1225 this[_id] = 0; 1212 this[_id] = 0;
1226 this[_isClosed] = false; 1213 this[_isClosed] = false;
1227 } 1214 }
1228 set handler(newHandler) { 1215 set handler(newHandler) {
1229 this[_handler] = newHandler; 1216 this[_handler] = newHandler;
1230 } 1217 }
1231 [_close]() { 1218 [_close]() {
1232 this[_isClosed] = true; 1219 this[_isClosed] = true;
1233 this[_handler] = null; 1220 this[_handler] = null;
1234 } 1221 }
1235 close() { 1222 close() {
1236 if (this[_isClosed]) 1223 if (this[_isClosed])
1237 return; 1224 return;
1238 this[_isClosed] = true; 1225 this[_isClosed] = true;
1239 this[_handler] = null; 1226 this[_handler] = null;
1240 exports._globalState.currentContext.unregister(this[_id]); 1227 exports._globalState.currentContext.unregister(this[_id]);
1241 } 1228 }
1242 [_add](dataEvent) { 1229 [_add](dataEvent) {
1243 if (this[_isClosed]) 1230 if (this[_isClosed])
1244 return; 1231 return;
1245 dart.dcall(this[_handler], dataEvent); 1232 dart.dcall(this[_handler], dataEvent);
1246 } 1233 }
1247 get sendPort() { 1234 get sendPort() {
1248 return new _NativeJsSendPort(this, exports._globalState.currentContext.id) ; 1235 return new _NativeJsSendPort(this, exports._globalState.currentContext.id) ;
1249 } 1236 }
1250 } 1237 }
1251 RawReceivePortImpl[dart.implements] = () => [isolate.RawReceivePort]; 1238 RawReceivePortImpl[dart.implements] = () => [isolate.RawReceivePort];
1252 dart.defineNamedConstructor(RawReceivePortImpl, 'weak'); 1239 dart.defineNamedConstructor(RawReceivePortImpl, 'weak');
1253 dart.defineNamedConstructor(RawReceivePortImpl, _controlPort); 1240 dart.defineNamedConstructor(RawReceivePortImpl, '_controlPort');
1254 RawReceivePortImpl._nextFreeId = 1; 1241 RawReceivePortImpl._nextFreeId = 1;
1255 let _rawPort = Symbol('_rawPort'); 1242 let _rawPort = Symbol('_rawPort');
1256 let _controller = Symbol('_controller'); 1243 let _controller = Symbol('_controller');
1257 class ReceivePortImpl extends async.Stream { 1244 class ReceivePortImpl extends async.Stream {
1258 ReceivePortImpl() { 1245 ReceivePortImpl() {
1259 this.fromRawReceivePort(new RawReceivePortImpl(null)); 1246 this.fromRawReceivePort(new RawReceivePortImpl(null));
1260 } 1247 }
1261 weak() { 1248 weak() {
1262 this.fromRawReceivePort(new RawReceivePortImpl.weak(null)); 1249 this.fromRawReceivePort(new RawReceivePortImpl.weak(null));
1263 } 1250 }
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
1351 return this[_handle] != null; 1338 return this[_handle] != null;
1352 } 1339 }
1353 } 1340 }
1354 TimerImpl[dart.implements] = () => [async.Timer]; 1341 TimerImpl[dart.implements] = () => [async.Timer];
1355 dart.defineNamedConstructor(TimerImpl, 'periodic'); 1342 dart.defineNamedConstructor(TimerImpl, 'periodic');
1356 // Function hasTimer: () → bool 1343 // Function hasTimer: () → bool
1357 function hasTimer() { 1344 function hasTimer() {
1358 _js_helper.requiresPreamble(); 1345 _js_helper.requiresPreamble();
1359 return self.setTimeout != null; 1346 return self.setTimeout != null;
1360 } 1347 }
1361 let _internal = Symbol('_internal');
1362 class CapabilityImpl extends core.Object { 1348 class CapabilityImpl extends core.Object {
1363 CapabilityImpl() { 1349 CapabilityImpl() {
1364 this[_internal](_js_helper.random64()); 1350 this._internal(_js_helper.random64());
1365 } 1351 }
1366 [_internal](id) { 1352 _internal(id) {
1367 this[_id] = id; 1353 this[_id] = id;
1368 } 1354 }
1369 get hashCode() { 1355 get hashCode() {
1370 let hash = this[_id]; 1356 let hash = this[_id];
1371 hash = dart.notNull(hash) >> 0 ^ (dart.notNull(hash) / 4294967296).truncat e(); 1357 hash = dart.notNull(hash) >> 0 ^ (dart.notNull(hash) / 4294967296).truncat e();
1372 hash = ~dart.notNull(hash) + (dart.notNull(hash) << 15) & 4294967295; 1358 hash = ~dart.notNull(hash) + (dart.notNull(hash) << 15) & 4294967295;
1373 hash = dart.notNull(hash) ^ dart.notNull(hash) >> 12; 1359 hash = dart.notNull(hash) ^ dart.notNull(hash) >> 12;
1374 hash = dart.notNull(hash) * 5 & 4294967295; 1360 hash = dart.notNull(hash) * 5 & 4294967295;
1375 hash = dart.notNull(hash) ^ dart.notNull(hash) >> 4; 1361 hash = dart.notNull(hash) ^ dart.notNull(hash) >> 4;
1376 hash = dart.notNull(hash) * 2057 & 4294967295; 1362 hash = dart.notNull(hash) * 2057 & 4294967295;
1377 hash = dart.notNull(hash) ^ dart.notNull(hash) >> 16; 1363 hash = dart.notNull(hash) ^ dart.notNull(hash) >> 16;
1378 return hash; 1364 return hash;
1379 } 1365 }
1380 ['=='](other) { 1366 ['=='](other) {
1381 if (core.identical(other, this)) 1367 if (core.identical(other, this))
1382 return true; 1368 return true;
1383 if (dart.is(other, CapabilityImpl)) { 1369 if (dart.is(other, CapabilityImpl)) {
1384 return core.identical(this[_id], other[_id]); 1370 return core.identical(this[_id], other[_id]);
1385 } 1371 }
1386 return false; 1372 return false;
1387 } 1373 }
1388 } 1374 }
1389 CapabilityImpl[dart.implements] = () => [isolate.Capability]; 1375 CapabilityImpl[dart.implements] = () => [isolate.Capability];
1390 dart.defineNamedConstructor(CapabilityImpl, _internal); 1376 dart.defineNamedConstructor(CapabilityImpl, '_internal');
1391 // Exports: 1377 // Exports:
1392 exports.enterJsAsync = enterJsAsync; 1378 exports.enterJsAsync = enterJsAsync;
1393 exports.leaveJsAsync = leaveJsAsync; 1379 exports.leaveJsAsync = leaveJsAsync;
1394 exports.isWorker = isWorker; 1380 exports.isWorker = isWorker;
1395 exports.startRootIsolate = startRootIsolate; 1381 exports.startRootIsolate = startRootIsolate;
1396 exports.IsolateNatives = IsolateNatives; 1382 exports.IsolateNatives = IsolateNatives;
1397 exports.RawReceivePortImpl = RawReceivePortImpl; 1383 exports.RawReceivePortImpl = RawReceivePortImpl;
1398 exports.ReceivePortImpl = ReceivePortImpl; 1384 exports.ReceivePortImpl = ReceivePortImpl;
1399 exports.TimerImpl = TimerImpl; 1385 exports.TimerImpl = TimerImpl;
1400 exports.hasTimer = hasTimer; 1386 exports.hasTimer = hasTimer;
1401 exports.CapabilityImpl = CapabilityImpl; 1387 exports.CapabilityImpl = CapabilityImpl;
1402 })(_isolate_helper || (_isolate_helper = {})); 1388 })(_isolate_helper || (_isolate_helper = {}));
OLDNEW
« no previous file with comments | « lib/runtime/dart/_internal.js ('k') | lib/runtime/dart/_js_helper.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698