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

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

Issue 1142293002: Use dart.tearoff helper at tearoff sites (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Use dart.bind instead of dart.tearoff 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 = dart.defineLibrary(_isolate_helper, {}); 1 var _isolate_helper = dart.defineLibrary(_isolate_helper, {});
2 var core = dart.import(core); 2 var core = dart.import(core);
3 var _native_typed_data = dart.import(_native_typed_data); 3 var _native_typed_data = dart.import(_native_typed_data);
4 var _interceptors = dart.lazyImport(_interceptors); 4 var _interceptors = dart.lazyImport(_interceptors);
5 var _js_helper = dart.lazyImport(_js_helper); 5 var _js_helper = dart.lazyImport(_js_helper);
6 var isolate = dart.import(isolate); 6 var isolate = dart.import(isolate);
7 var _foreign_helper = dart.import(_foreign_helper); 7 var _foreign_helper = dart.import(_foreign_helper);
8 var _js_embedded_names = dart.import(_js_embedded_names); 8 var _js_embedded_names = dart.import(_js_embedded_names);
9 var collection = dart.import(collection); 9 var collection = dart.import(collection);
10 var async = dart.import(async); 10 var async = dart.import(async);
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 } 111 }
112 return serialized; 112 return serialized;
113 } 113 }
114 serializeArrayInPlace(x) { 114 serializeArrayInPlace(x) {
115 for (let i = 0; dart.notNull(i) < dart.notNull(x[core.$length]); i = dart. notNull(i) + 1) { 115 for (let i = 0; dart.notNull(i) < dart.notNull(x[core.$length]); i = dart. notNull(i) + 1) {
116 x[core.$set](i, this.serialize(x[core.$get](i))); 116 x[core.$set](i, this.serialize(x[core.$get](i)));
117 } 117 }
118 return x; 118 return x;
119 } 119 }
120 serializeMap(x) { 120 serializeMap(x) {
121 let serializeTearOff = this.serialize.bind(this); 121 let serializeTearOff = dart.bind(this, 'serialize');
122 return ['map', x.keys[core.$map](dart.as(serializeTearOff, __CastType0))[c ore.$toList](), x.values[core.$map](dart.as(serializeTearOff, dart.functionType( dart.dynamic, [dart.dynamic])))[core.$toList]()]; 122 return ['map', x.keys[core.$map](dart.as(serializeTearOff, __CastType0))[c ore.$toList](), x.values[core.$map](dart.as(serializeTearOff, dart.functionType( dart.dynamic, [dart.dynamic])))[core.$toList]()];
123 } 123 }
124 serializeJSObject(x) { 124 serializeJSObject(x) {
125 if (!!x.constructor && x.constructor !== Object) { 125 if (!!x.constructor && x.constructor !== Object) {
126 this.unsupported(x, "Only plain JS Objects are supported:"); 126 this.unsupported(x, "Only plain JS Objects are supported:");
127 } 127 }
128 let keys = dart.as(Object.keys(x), core.List); 128 let keys = dart.as(Object.keys(x), core.List);
129 let values = []; 129 let values = [];
130 values[core.$length] = keys[core.$length]; 130 values[core.$length] = keys[core.$length];
131 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) { 131 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) {
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 let result = dart.as(dart.dindex(x, 1), core.List); 308 let result = dart.as(dart.dindex(x, 1), core.List);
309 this.deserializedObjects[core.$add](result); 309 this.deserializedObjects[core.$add](result);
310 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da rt.as(result, _interceptors.JSArray))); 310 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da rt.as(result, _interceptors.JSArray)));
311 } 311 }
312 deserializeMap(x) { 312 deserializeMap(x) {
313 dart.assert(dart.equals(dart.dindex(x, 0), 'map')); 313 dart.assert(dart.equals(dart.dindex(x, 0), 'map'));
314 let keys = dart.as(dart.dindex(x, 1), core.List); 314 let keys = dart.as(dart.dindex(x, 1), core.List);
315 let values = dart.as(dart.dindex(x, 2), core.List); 315 let values = dart.as(dart.dindex(x, 2), core.List);
316 let result = dart.map(); 316 let result = dart.map();
317 this.deserializedObjects[core.$add](result); 317 this.deserializedObjects[core.$add](result);
318 keys = keys[core.$map](this.deserialize.bind(this))[core.$toList](); 318 keys = keys[core.$map](dart.bind(this, 'deserialize'))[core.$toList]();
319 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) { 319 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) {
320 result.set(keys[core.$get](i), this.deserialize(values[core.$get](i))); 320 result.set(keys[core.$get](i), this.deserialize(values[core.$get](i)));
321 } 321 }
322 return result; 322 return result;
323 } 323 }
324 deserializeSendPort(x) { 324 deserializeSendPort(x) {
325 dart.assert(dart.equals(dart.dindex(x, 0), 'sendport')); 325 dart.assert(dart.equals(dart.dindex(x, 0), 'sendport'));
326 let managerId = dart.as(dart.dindex(x, 1), core.int); 326 let managerId = dart.as(dart.dindex(x, 1), core.int);
327 let isolateId = dart.as(dart.dindex(x, 2), core.int); 327 let isolateId = dart.as(dart.dindex(x, 2), core.int);
328 let receivePortId = dart.as(dart.dindex(x, 3), core.int); 328 let receivePortId = dart.as(dart.dindex(x, 3), core.int);
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 let isWorkerDefined = exports.globalWorker != null; 494 let isWorkerDefined = exports.globalWorker != null;
495 this.isWorker = !dart.notNull(isWindowDefined) && dart.notNull(exports.glo balPostMessageDefined); 495 this.isWorker = !dart.notNull(isWindowDefined) && dart.notNull(exports.glo balPostMessageDefined);
496 this.supportsWorkers = dart.notNull(this.isWorker) || dart.notNull(isWorke rDefined) && IsolateNatives.thisScript != null; 496 this.supportsWorkers = dart.notNull(this.isWorker) || dart.notNull(isWorke rDefined) && IsolateNatives.thisScript != null;
497 this.fromCommandLine = !dart.notNull(isWindowDefined) && !dart.notNull(thi s.isWorker); 497 this.fromCommandLine = !dart.notNull(isWindowDefined) && !dart.notNull(thi s.isWorker);
498 } 498 }
499 [_nativeInitWorkerMessageHandler]() { 499 [_nativeInitWorkerMessageHandler]() {
500 let func = function(f, a) { 500 let func = function(f, a) {
501 return function(e) { 501 return function(e) {
502 f(a, e); 502 f(a, e);
503 }; 503 };
504 }(_foreign_helper.DART_CLOSURE_TO_JS(dart.bind(IsolateNatives, '_processWo rkerMessage')), this.mainManager); 504 }(_foreign_helper.DART_CLOSURE_TO_JS(IsolateNatives._processWorkerMessage) , this.mainManager);
505 self.onmessage = func; 505 self.onmessage = func;
506 self.dartPrint = self.dartPrint || function(serialize) { 506 self.dartPrint = self.dartPrint || function(serialize) {
507 return function(object) { 507 return function(object) {
508 if (self.console && self.console.log) { 508 if (self.console && self.console.log) {
509 self.console.log(object); 509 self.console.log(object);
510 } else { 510 } else {
511 self.postMessage(serialize(object)); 511 self.postMessage(serialize(object));
512 } 512 }
513 }; 513 };
514 }(_foreign_helper.DART_CLOSURE_TO_JS(_Manager._serializePrintMessage)); 514 }(_foreign_helper.DART_CLOSURE_TO_JS(_Manager._serializePrintMessage));
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 dart.dsend(this[_scheduledControlEvents], 'addLast', respond); 620 dart.dsend(this[_scheduledControlEvents], 'addLast', respond);
621 } 621 }
622 handleKill(authentification, priority) { 622 handleKill(authentification, priority) {
623 if (!dart.equals(this.terminateCapability, authentification)) 623 if (!dart.equals(this.terminateCapability, authentification))
624 return; 624 return;
625 if (priority == isolate.Isolate.IMMEDIATE || priority == isolate.Isolate.B EFORE_NEXT_EVENT && !dart.notNull(this[_isExecutingEvent])) { 625 if (priority == isolate.Isolate.IMMEDIATE || priority == isolate.Isolate.B EFORE_NEXT_EVENT && !dart.notNull(this[_isExecutingEvent])) {
626 this.kill(); 626 this.kill();
627 return; 627 return;
628 } 628 }
629 if (priority == isolate.Isolate.AS_EVENT) { 629 if (priority == isolate.Isolate.AS_EVENT) {
630 exports._globalState.topEventLoop.enqueue(this, this.kill.bind(this), "k ill"); 630 exports._globalState.topEventLoop.enqueue(this, dart.bind(this, 'kill'), "kill");
631 return; 631 return;
632 } 632 }
633 dart.assert(priority == isolate.Isolate.BEFORE_NEXT_EVENT); 633 dart.assert(priority == isolate.Isolate.BEFORE_NEXT_EVENT);
634 if (this[_scheduledControlEvents] == null) { 634 if (this[_scheduledControlEvents] == null) {
635 this[_scheduledControlEvents] = new collection.Queue(); 635 this[_scheduledControlEvents] = new collection.Queue();
636 } 636 }
637 dart.dsend(this[_scheduledControlEvents], 'addLast', this.kill.bind(this)) ; 637 dart.dsend(this[_scheduledControlEvents], 'addLast', dart.bind(this, 'kill '));
638 } 638 }
639 addErrorListener(port) { 639 addErrorListener(port) {
640 this.errorPorts.add(port); 640 this.errorPorts.add(port);
641 } 641 }
642 removeErrorListener(port) { 642 removeErrorListener(port) {
643 this.errorPorts.remove(port); 643 this.errorPorts.remove(port);
644 } 644 }
645 handleUncaughtError(error, stackTrace) { 645 handleUncaughtError(error, stackTrace) {
646 if (this.errorPorts[core.$isEmpty]) { 646 if (this.errorPorts[core.$isEmpty]) {
647 if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(thi s, exports._globalState.rootContext))) { 647 if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(thi s, exports._globalState.rootContext))) {
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after
1390 ReceivePortImpl() { 1390 ReceivePortImpl() {
1391 this.fromRawReceivePort(new RawReceivePortImpl(null)); 1391 this.fromRawReceivePort(new RawReceivePortImpl(null));
1392 } 1392 }
1393 weak() { 1393 weak() {
1394 this.fromRawReceivePort(new RawReceivePortImpl.weak(null)); 1394 this.fromRawReceivePort(new RawReceivePortImpl.weak(null));
1395 } 1395 }
1396 fromRawReceivePort(rawPort) { 1396 fromRawReceivePort(rawPort) {
1397 this[_rawPort] = rawPort; 1397 this[_rawPort] = rawPort;
1398 this[_controller] = null; 1398 this[_controller] = null;
1399 super.Stream(); 1399 super.Stream();
1400 this[_controller] = new async.StreamController({onCancel: this.close.bind( this), sync: true}); 1400 this[_controller] = new async.StreamController({onCancel: dart.bind(this, 'close'), sync: true});
1401 this[_rawPort].handler = dart.bind(this[_controller], 'add'); 1401 this[_rawPort].handler = dart.bind(this[_controller], 'add');
1402 } 1402 }
1403 listen(onData, opts) { 1403 listen(onData, opts) {
1404 let onError = opts && 'onError' in opts ? opts.onError : null; 1404 let onError = opts && 'onError' in opts ? opts.onError : null;
1405 let onDone = opts && 'onDone' in opts ? opts.onDone : null; 1405 let onDone = opts && 'onDone' in opts ? opts.onDone : null;
1406 let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null; 1406 let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
1407 return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError}); 1407 return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
1408 } 1408 }
1409 close() { 1409 close() {
1410 this[_rawPort].close(); 1410 this[_rawPort].close();
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
1536 exports.leaveJsAsync = leaveJsAsync; 1536 exports.leaveJsAsync = leaveJsAsync;
1537 exports.isWorker = isWorker; 1537 exports.isWorker = isWorker;
1538 exports.startRootIsolate = startRootIsolate; 1538 exports.startRootIsolate = startRootIsolate;
1539 exports.IsolateNatives = IsolateNatives; 1539 exports.IsolateNatives = IsolateNatives;
1540 exports.RawReceivePortImpl = RawReceivePortImpl; 1540 exports.RawReceivePortImpl = RawReceivePortImpl;
1541 exports.ReceivePortImpl = ReceivePortImpl; 1541 exports.ReceivePortImpl = ReceivePortImpl;
1542 exports.TimerImpl = TimerImpl; 1542 exports.TimerImpl = TimerImpl;
1543 exports.hasTimer = hasTimer; 1543 exports.hasTimer = hasTimer;
1544 exports.CapabilityImpl = CapabilityImpl; 1544 exports.CapabilityImpl = CapabilityImpl;
1545 })(_isolate_helper, core, _native_typed_data, _interceptors, _js_helper, isolate , _foreign_helper, _js_embedded_names, collection, async); 1545 })(_isolate_helper, core, _native_typed_data, _interceptors, _js_helper, isolate , _foreign_helper, _js_embedded_names, collection, async);
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