| Index: lib/runtime/dart/_isolate_helper.js
|
| diff --git a/lib/runtime/dart/_isolate_helper.js b/lib/runtime/dart/_isolate_helper.js
|
| index fc4be8aaa0d874a9c0c9bd99aa4aa8ed6ca2a2f9..556c8520c43168b5c703c085e43ca1187c43a35f 100644
|
| --- a/lib/runtime/dart/_isolate_helper.js
|
| +++ b/lib/runtime/dart/_isolate_helper.js
|
| @@ -110,7 +110,7 @@ var _isolate_helper;
|
| return x;
|
| }
|
| serializeMap(x) {
|
| - let serializeTearOff = this.serialize;
|
| + let serializeTearOff = this.serialize.bind(this);
|
| return ['map', x.keys[core.$map](dart.as(serializeTearOff, __CastType0))[core.$toList](), x.values[core.$map](dart.as(serializeTearOff, dart.functionType(dart.dynamic, [dart.dynamic])))[core.$toList]()];
|
| }
|
| serializeJSObject(x) {
|
| @@ -287,7 +287,7 @@ var _isolate_helper;
|
| let values = dart.as(dart.dindex(x, 2), core.List);
|
| let result = dart.map();
|
| this.deserializedObjects[core.$add](result);
|
| - keys = keys[core.$map](this.deserialize)[core.$toList]();
|
| + keys = keys[core.$map](this.deserialize.bind(this))[core.$toList]();
|
| for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = dart.notNull(i) + 1) {
|
| result.set(keys[core.$get](i), this.deserialize(values[core.$get](i)));
|
| }
|
| @@ -454,7 +454,7 @@ var _isolate_helper;
|
| return function(e) {
|
| f(a, e);
|
| };
|
| - }(_foreign_helper.DART_CLOSURE_TO_JS(IsolateNatives[_processWorkerMessage]), this.mainManager);
|
| + }(_foreign_helper.DART_CLOSURE_TO_JS(dart.bind(IsolateNatives, _processWorkerMessage)), this.mainManager);
|
| self.onmessage = func;
|
| self.dartPrint = self.dartPrint || function(serialize) {
|
| return function(object) {
|
| @@ -572,14 +572,14 @@ var _isolate_helper;
|
| return;
|
| }
|
| if (priority == isolate.Isolate.AS_EVENT) {
|
| - exports._globalState.topEventLoop.enqueue(this, this.kill, "kill");
|
| + exports._globalState.topEventLoop.enqueue(this, this.kill.bind(this), "kill");
|
| return;
|
| }
|
| dart.assert(priority == isolate.Isolate.BEFORE_NEXT_EVENT);
|
| if (this[_scheduledControlEvents] == null) {
|
| this[_scheduledControlEvents] = new collection.Queue();
|
| }
|
| - dart.dsend(this[_scheduledControlEvents], 'addLast', this.kill);
|
| + dart.dsend(this[_scheduledControlEvents], 'addLast', this.kill.bind(this));
|
| }
|
| addErrorListener(port) {
|
| this.errorPorts.add(port);
|
| @@ -1265,8 +1265,8 @@ var _isolate_helper;
|
| this[_rawPort] = rawPort;
|
| this[_controller] = null;
|
| super.Stream();
|
| - this[_controller] = new async.StreamController({onCancel: this.close, sync: true});
|
| - this[_rawPort].handler = this[_controller].add;
|
| + this[_controller] = new async.StreamController({onCancel: this.close.bind(this), sync: true});
|
| + this[_rawPort].handler = dart.bind(this[_controller], 'add');
|
| }
|
| listen(onData, opts) {
|
| let onError = opts && 'onError' in opts ? opts.onError : null;
|
|
|