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

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

Issue 1074923003: rename dart_runtime.js helpers (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 8 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);
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 throw new core.ArgumentError(`Arguments to main must be a List: ${args}`); 384 throw new core.ArgumentError(`Arguments to main must be a List: ${args}`);
385 } 385 }
386 exports._globalState = new _Manager(dart.as(entry, core.Function)); 386 exports._globalState = new _Manager(dart.as(entry, core.Function));
387 if (exports._globalState.isWorker) 387 if (exports._globalState.isWorker)
388 return; 388 return;
389 let rootContext = new _IsolateContext(); 389 let rootContext = new _IsolateContext();
390 exports._globalState.rootContext = rootContext; 390 exports._globalState.rootContext = rootContext;
391 exports._globalState.currentContext = rootContext; 391 exports._globalState.currentContext = rootContext;
392 if (dart.is(entry, _MainFunctionArgs)) { 392 if (dart.is(entry, _MainFunctionArgs)) {
393 rootContext.eval(() => { 393 rootContext.eval(() => {
394 dart.dinvokef(entry, args); 394 dart.dcall(entry, args);
395 }); 395 });
396 } else if (dart.is(entry, _MainFunctionArgsMessage)) { 396 } else if (dart.is(entry, _MainFunctionArgsMessage)) {
397 rootContext.eval(() => { 397 rootContext.eval(() => {
398 dart.dinvokef(entry, args, null); 398 dart.dcall(entry, args, null);
399 }); 399 });
400 } else { 400 } else {
401 rootContext.eval(dart.as(entry, core.Function)); 401 rootContext.eval(dart.as(entry, core.Function));
402 } 402 }
403 exports._globalState.topEventLoop.run(); 403 exports._globalState.topEventLoop.run();
404 } 404 }
405 dart.copyProperties(exports, { 405 dart.copyProperties(exports, {
406 get _globalState() { 406 get _globalState() {
407 return dart.as(init.globalState, _Manager); 407 return dart.as(init.globalState, _Manager);
408 }, 408 },
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 exports._globalState.topEventLoop.prequeue(event); 523 exports._globalState.topEventLoop.prequeue(event);
524 } 524 }
525 this.isPaused = false; 525 this.isPaused = false;
526 } 526 }
527 this[_updateGlobalState](); 527 this[_updateGlobalState]();
528 } 528 }
529 addDoneListener(responsePort) { 529 addDoneListener(responsePort) {
530 if (this.doneHandlers == null) { 530 if (this.doneHandlers == null) {
531 this.doneHandlers = new core.List.from([]); 531 this.doneHandlers = new core.List.from([]);
532 } 532 }
533 if (dart.dinvoke(this.doneHandlers, 'contains', responsePort)) 533 if (dart.dsend(this.doneHandlers, 'contains', responsePort))
534 return; 534 return;
535 dart.dinvoke(this.doneHandlers, 'add', responsePort); 535 dart.dsend(this.doneHandlers, 'add', responsePort);
536 } 536 }
537 removeDoneListener(responsePort) { 537 removeDoneListener(responsePort) {
538 if (this.doneHandlers == null) 538 if (this.doneHandlers == null)
539 return; 539 return;
540 dart.dinvoke(this.doneHandlers, 'remove', responsePort); 540 dart.dsend(this.doneHandlers, 'remove', responsePort);
541 } 541 }
542 setErrorsFatal(authentification, errorsAreFatal) { 542 setErrorsFatal(authentification, errorsAreFatal) {
543 if (!dart.equals(this.terminateCapability, authentification)) 543 if (!dart.equals(this.terminateCapability, authentification))
544 return; 544 return;
545 this.errorsAreFatal = errorsAreFatal; 545 this.errorsAreFatal = errorsAreFatal;
546 } 546 }
547 handlePing(responsePort, pingType) { 547 handlePing(responsePort, pingType) {
548 if (pingType == isolate.Isolate.IMMEDIATE || pingType == isolate.Isolate.B EFORE_NEXT_EVENT && !dart.notNull(this[_isExecutingEvent])) { 548 if (pingType == isolate.Isolate.IMMEDIATE || pingType == isolate.Isolate.B EFORE_NEXT_EVENT && !dart.notNull(this[_isExecutingEvent])) {
549 responsePort.send(null); 549 responsePort.send(null);
550 return; 550 return;
551 } 551 }
552 // Function respond: () → void 552 // Function respond: () → void
553 function respond() { 553 function respond() {
554 responsePort.send(null); 554 responsePort.send(null);
555 } 555 }
556 if (pingType == isolate.Isolate.AS_EVENT) { 556 if (pingType == isolate.Isolate.AS_EVENT) {
557 exports._globalState.topEventLoop.enqueue(this, respond, "ping"); 557 exports._globalState.topEventLoop.enqueue(this, respond, "ping");
558 return; 558 return;
559 } 559 }
560 dart.assert(pingType == isolate.Isolate.BEFORE_NEXT_EVENT); 560 dart.assert(pingType == isolate.Isolate.BEFORE_NEXT_EVENT);
561 if (this[_scheduledControlEvents] == null) { 561 if (this[_scheduledControlEvents] == null) {
562 this[_scheduledControlEvents] = new collection.Queue(); 562 this[_scheduledControlEvents] = new collection.Queue();
563 } 563 }
564 dart.dinvoke(this[_scheduledControlEvents], 'addLast', respond); 564 dart.dsend(this[_scheduledControlEvents], 'addLast', respond);
565 } 565 }
566 handleKill(authentification, priority) { 566 handleKill(authentification, priority) {
567 if (!dart.equals(this.terminateCapability, authentification)) 567 if (!dart.equals(this.terminateCapability, authentification))
568 return; 568 return;
569 if (priority == isolate.Isolate.IMMEDIATE || priority == isolate.Isolate.B EFORE_NEXT_EVENT && !dart.notNull(this[_isExecutingEvent])) { 569 if (priority == isolate.Isolate.IMMEDIATE || priority == isolate.Isolate.B EFORE_NEXT_EVENT && !dart.notNull(this[_isExecutingEvent])) {
570 this.kill(); 570 this.kill();
571 return; 571 return;
572 } 572 }
573 if (priority == isolate.Isolate.AS_EVENT) { 573 if (priority == isolate.Isolate.AS_EVENT) {
574 exports._globalState.topEventLoop.enqueue(this, this.kill, "kill"); 574 exports._globalState.topEventLoop.enqueue(this, this.kill, "kill");
575 return; 575 return;
576 } 576 }
577 dart.assert(priority == isolate.Isolate.BEFORE_NEXT_EVENT); 577 dart.assert(priority == isolate.Isolate.BEFORE_NEXT_EVENT);
578 if (this[_scheduledControlEvents] == null) { 578 if (this[_scheduledControlEvents] == null) {
579 this[_scheduledControlEvents] = new collection.Queue(); 579 this[_scheduledControlEvents] = new collection.Queue();
580 } 580 }
581 dart.dinvoke(this[_scheduledControlEvents], 'addLast', this.kill); 581 dart.dsend(this[_scheduledControlEvents], 'addLast', this.kill);
582 } 582 }
583 addErrorListener(port) { 583 addErrorListener(port) {
584 this.errorPorts.add(port); 584 this.errorPorts.add(port);
585 } 585 }
586 removeErrorListener(port) { 586 removeErrorListener(port) {
587 this.errorPorts.remove(port); 587 this.errorPorts.remove(port);
588 } 588 }
589 handleUncaughtError(error, stackTrace) { 589 handleUncaughtError(error, stackTrace) {
590 if (this.errorPorts[core.$isEmpty]) { 590 if (this.errorPorts[core.$isEmpty]) {
591 if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(thi s, exports._globalState.rootContext))) { 591 if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(thi s, exports._globalState.rootContext))) {
(...skipping 14 matching lines...) Expand all
606 for (let port of this.errorPorts) 606 for (let port of this.errorPorts)
607 port.send(message); 607 port.send(message);
608 } 608 }
609 eval(code) { 609 eval(code) {
610 let old = exports._globalState.currentContext; 610 let old = exports._globalState.currentContext;
611 exports._globalState.currentContext = this; 611 exports._globalState.currentContext = this;
612 this[_setGlobals](); 612 this[_setGlobals]();
613 let result = null; 613 let result = null;
614 this[_isExecutingEvent] = true; 614 this[_isExecutingEvent] = true;
615 try { 615 try {
616 result = dart.dinvokef(code); 616 result = dart.dcall(code);
617 } catch (e) { 617 } catch (e) {
618 let s = dart.stackTrace(e); 618 let s = dart.stackTrace(e);
619 this.handleUncaughtError(e, s); 619 this.handleUncaughtError(e, s);
620 if (this.errorsAreFatal) { 620 if (this.errorsAreFatal) {
621 this.kill(); 621 this.kill();
622 if (core.identical(this, exports._globalState.rootContext)) { 622 if (core.identical(this, exports._globalState.rootContext)) {
623 throw e; 623 throw e;
624 } 624 }
625 } 625 }
626 } 626 }
627 finally { 627 finally {
628 this[_isExecutingEvent] = false; 628 this[_isExecutingEvent] = false;
629 exports._globalState.currentContext = old; 629 exports._globalState.currentContext = old;
630 if (old != null) 630 if (old != null)
631 old[_setGlobals](); 631 old[_setGlobals]();
632 if (this[_scheduledControlEvents] != null) { 632 if (this[_scheduledControlEvents] != null) {
633 while (dart.dload(this[_scheduledControlEvents], 'isNotEmpty')) { 633 while (dart.dload(this[_scheduledControlEvents], 'isNotEmpty')) {
634 dart.dinvokef(dart.dinvoke(this[_scheduledControlEvents], 'removeFir st')); 634 dart.dcall(dart.dsend(this[_scheduledControlEvents], 'removeFirst')) ;
635 } 635 }
636 } 636 }
637 } 637 }
638 return result; 638 return result;
639 } 639 }
640 [_setGlobals]() { 640 [_setGlobals]() {
641 _foreign_helper.JS_SET_CURRENT_ISOLATE(this.isolateStatics); 641 _foreign_helper.JS_SET_CURRENT_ISOLATE(this.isolateStatics);
642 } 642 }
643 handleControlMessage(message) { 643 handleControlMessage(message) {
644 switch (dart.dindex(message, 0)) { 644 switch (dart.dindex(message, 0)) {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 } 709 }
710 [_updateGlobalState]() { 710 [_updateGlobalState]() {
711 if (dart.notNull(this.ports.length) - dart.notNull(this.weakPorts[core.$le ngth]) > 0 || dart.notNull(this.isPaused) || !dart.notNull(this.initialized)) { 711 if (dart.notNull(this.ports.length) - dart.notNull(this.weakPorts[core.$le ngth]) > 0 || dart.notNull(this.isPaused) || !dart.notNull(this.initialized)) {
712 exports._globalState.isolates.set(this.id, this); 712 exports._globalState.isolates.set(this.id, this);
713 } else { 713 } else {
714 this.kill(); 714 this.kill();
715 } 715 }
716 } 716 }
717 kill() { 717 kill() {
718 if (this[_scheduledControlEvents] != null) { 718 if (this[_scheduledControlEvents] != null) {
719 dart.dinvoke(this[_scheduledControlEvents], 'clear'); 719 dart.dsend(this[_scheduledControlEvents], 'clear');
720 } 720 }
721 for (let port of this.ports.values) { 721 for (let port of this.ports.values) {
722 port[_close](); 722 port[_close]();
723 } 723 }
724 this.ports.clear(); 724 this.ports.clear();
725 this.weakPorts.clear(); 725 this.weakPorts.clear();
726 exports._globalState.isolates.remove(this.id); 726 exports._globalState.isolates.remove(this.id);
727 this.errorPorts.clear(); 727 this.errorPorts.clear();
728 if (this.doneHandlers != null) { 728 if (this.doneHandlers != null) {
729 for (let port of dart.as(this.doneHandlers, core.Iterable$(isolate.SendP ort))) { 729 for (let port of dart.as(this.doneHandlers, core.Iterable$(isolate.SendP ort))) {
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
918 case 'spawn-worker': 918 case 'spawn-worker':
919 { 919 {
920 if (IsolateNatives.enableSpawnWorker != null) 920 if (IsolateNatives.enableSpawnWorker != null)
921 IsolateNatives.handleSpawnWorkerRequest(msg); 921 IsolateNatives.handleSpawnWorkerRequest(msg);
922 break; 922 break;
923 } 923 }
924 case 'message': 924 case 'message':
925 { 925 {
926 let port = dart.as(dart.dindex(msg, 'port'), isolate.SendPort); 926 let port = dart.as(dart.dindex(msg, 'port'), isolate.SendPort);
927 if (port != null) { 927 if (port != null) {
928 dart.dinvoke(dart.dindex(msg, 'port'), 'send', dart.dindex(msg, 'msg ')); 928 dart.dsend(dart.dindex(msg, 'port'), 'send', dart.dindex(msg, 'msg') );
929 } 929 }
930 exports._globalState.topEventLoop.run(); 930 exports._globalState.topEventLoop.run();
931 break; 931 break;
932 } 932 }
933 case 'close': 933 case 'close':
934 { 934 {
935 exports._globalState.managers.remove(IsolateNatives.workerIds.get(send er)); 935 exports._globalState.managers.remove(IsolateNatives.workerIds.get(send er));
936 sender.terminate(); 936 sender.terminate();
937 exports._globalState.topEventLoop.run(); 937 exports._globalState.topEventLoop.run();
938 break; 938 break;
(...skipping 14 matching lines...) Expand all
953 } 953 }
954 case 'error': 954 case 'error':
955 { 955 {
956 throw dart.dindex(msg, 'msg'); 956 throw dart.dindex(msg, 'msg');
957 } 957 }
958 } 958 }
959 } 959 }
960 static handleSpawnWorkerRequest(msg) { 960 static handleSpawnWorkerRequest(msg) {
961 let replyPort = dart.dindex(msg, 'replyPort'); 961 let replyPort = dart.dindex(msg, 'replyPort');
962 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 => { 962 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 => {
963 dart.dinvoke(replyPort, 'send', msg); 963 dart.dsend(replyPort, 'send', msg);
964 }, dart.functionType(dart.dynamic, [core.List])), { 964 }, dart.functionType(dart.dynamic, [core.List])), {
965 onError: errorMessage => { 965 onError: errorMessage => {
966 dart.dinvoke(replyPort, 'send', new core.List.from([_SPAWN_FAILED_SIGN AL, errorMessage])); 966 dart.dsend(replyPort, 'send', new core.List.from([_SPAWN_FAILED_SIGNAL , errorMessage]));
967 } 967 }
968 }); 968 });
969 } 969 }
970 static [_log](msg) { 970 static [_log](msg) {
971 if (exports._globalState.isWorker) { 971 if (exports._globalState.isWorker) {
972 exports._globalState.mainManager.postMessage(_serializeMessage(dart.map( {command: 'log', msg: msg}))); 972 exports._globalState.mainManager.postMessage(_serializeMessage(dart.map( {command: 'log', msg: msg})));
973 } else { 973 } else {
974 try { 974 try {
975 IsolateNatives[_consoleLog](msg); 975 IsolateNatives[_consoleLog](msg);
976 } catch (e) { 976 } catch (e) {
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1058 return new isolate.Isolate(context.controlPort.sendPort, {pauseCapability: context.pauseCapability, terminateCapability: context.terminateCapability}); 1058 return new isolate.Isolate(context.controlPort.sendPort, {pauseCapability: context.pauseCapability, terminateCapability: context.terminateCapability});
1059 } 1059 }
1060 static [_startIsolate](topLevel, args, message, isSpawnUri, startPaused, rep lyTo) { 1060 static [_startIsolate](topLevel, args, message, isSpawnUri, startPaused, rep lyTo) {
1061 let context = dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _Isola teContext); 1061 let context = dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _Isola teContext);
1062 _js_helper.Primitives.initializeStatics(context.id); 1062 _js_helper.Primitives.initializeStatics(context.id);
1063 replyTo.send(new core.List.from([_SPAWNED_SIGNAL, context.controlPort.send Port, context.pauseCapability, context.terminateCapability])); 1063 replyTo.send(new core.List.from([_SPAWNED_SIGNAL, context.controlPort.send Port, context.pauseCapability, context.terminateCapability]));
1064 // Function runStartFunction: () → void 1064 // Function runStartFunction: () → void
1065 function runStartFunction() { 1065 function runStartFunction() {
1066 context.initialized = true; 1066 context.initialized = true;
1067 if (!dart.notNull(isSpawnUri)) { 1067 if (!dart.notNull(isSpawnUri)) {
1068 dart.dinvokef(topLevel, message); 1068 dart.dcall(topLevel, message);
1069 } else if (dart.is(topLevel, _MainFunctionArgsMessage)) { 1069 } else if (dart.is(topLevel, _MainFunctionArgsMessage)) {
1070 dart.dinvokef(topLevel, args, message); 1070 dart.dcall(topLevel, args, message);
1071 } else if (dart.is(topLevel, _MainFunctionArgs)) { 1071 } else if (dart.is(topLevel, _MainFunctionArgs)) {
1072 dart.dinvokef(topLevel, args); 1072 dart.dcall(topLevel, args);
1073 } else { 1073 } else {
1074 dart.dinvokef(topLevel); 1074 dart.dcall(topLevel);
1075 } 1075 }
1076 } 1076 }
1077 if (startPaused) { 1077 if (startPaused) {
1078 context.addPause(context.pauseCapability, context.pauseCapability); 1078 context.addPause(context.pauseCapability, context.pauseCapability);
1079 exports._globalState.topEventLoop.enqueue(context, runStartFunction, 'st art isolate'); 1079 exports._globalState.topEventLoop.enqueue(context, runStartFunction, 'st art isolate');
1080 } else { 1080 } else {
1081 runStartFunction(); 1081 runStartFunction();
1082 } 1082 }
1083 } 1083 }
1084 static [_spawnWorker](functionName, uri, args, message, isSpawnUri, startPau sed, replyPort, onError) { 1084 static [_spawnWorker](functionName, uri, args, message, isSpawnUri, startPau sed, replyPort, onError) {
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
1234 close() { 1234 close() {
1235 if (this[_isClosed]) 1235 if (this[_isClosed])
1236 return; 1236 return;
1237 this[_isClosed] = true; 1237 this[_isClosed] = true;
1238 this[_handler] = null; 1238 this[_handler] = null;
1239 exports._globalState.currentContext.unregister(this[_id]); 1239 exports._globalState.currentContext.unregister(this[_id]);
1240 } 1240 }
1241 [_add](dataEvent) { 1241 [_add](dataEvent) {
1242 if (this[_isClosed]) 1242 if (this[_isClosed])
1243 return; 1243 return;
1244 dart.dinvokef(this[_handler], dataEvent); 1244 dart.dcall(this[_handler], dataEvent);
1245 } 1245 }
1246 get sendPort() { 1246 get sendPort() {
1247 return new _NativeJsSendPort(this, exports._globalState.currentContext.id) ; 1247 return new _NativeJsSendPort(this, exports._globalState.currentContext.id) ;
1248 } 1248 }
1249 } 1249 }
1250 RawReceivePortImpl[dart.implements] = () => [isolate.RawReceivePort]; 1250 RawReceivePortImpl[dart.implements] = () => [isolate.RawReceivePort];
1251 dart.defineNamedConstructor(RawReceivePortImpl, 'weak'); 1251 dart.defineNamedConstructor(RawReceivePortImpl, 'weak');
1252 dart.defineNamedConstructor(RawReceivePortImpl, _controlPort); 1252 dart.defineNamedConstructor(RawReceivePortImpl, _controlPort);
1253 RawReceivePortImpl._nextFreeId = 1; 1253 RawReceivePortImpl._nextFreeId = 1;
1254 let _rawPort = Symbol('_rawPort'); 1254 let _rawPort = Symbol('_rawPort');
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
1392 exports.leaveJsAsync = leaveJsAsync; 1392 exports.leaveJsAsync = leaveJsAsync;
1393 exports.isWorker = isWorker; 1393 exports.isWorker = isWorker;
1394 exports.startRootIsolate = startRootIsolate; 1394 exports.startRootIsolate = startRootIsolate;
1395 exports.IsolateNatives = IsolateNatives; 1395 exports.IsolateNatives = IsolateNatives;
1396 exports.RawReceivePortImpl = RawReceivePortImpl; 1396 exports.RawReceivePortImpl = RawReceivePortImpl;
1397 exports.ReceivePortImpl = ReceivePortImpl; 1397 exports.ReceivePortImpl = ReceivePortImpl;
1398 exports.TimerImpl = TimerImpl; 1398 exports.TimerImpl = TimerImpl;
1399 exports.hasTimer = hasTimer; 1399 exports.hasTimer = hasTimer;
1400 exports.CapabilityImpl = CapabilityImpl; 1400 exports.CapabilityImpl = CapabilityImpl;
1401 })(_isolate_helper || (_isolate_helper = {})); 1401 })(_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