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

Unified Diff: lib/runtime/dart/async.js

Issue 1263593003: restore arrow function bind this workaround (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/runtime/dart/_isolate_helper.js ('k') | lib/runtime/dart/collection.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/runtime/dart/async.js
diff --git a/lib/runtime/dart/async.js b/lib/runtime/dart/async.js
index 99506c10940f291f7af116a84b26f3d94c781155..2f574edf73e978abacdefcb2f6d607bcf77762d1 100644
--- a/lib/runtime/dart/async.js
+++ b/lib/runtime/dart/async.js
@@ -651,9 +651,9 @@ dart_library.library('dart/async', null, /* Imports */[
return;
}
elementIndex = dart.notNull(elementIndex) + 1;
- }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+ }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn((() => {
future[_completeError](core.RangeError.index(index, this, "index", null, elementIndex));
- }), cancelOnError: true});
+ }).bind(this)), cancelOnError: true});
return future;
}
timeout(timeLimit, opts) {
@@ -980,10 +980,10 @@ dart_library.library('dart/async', null, /* Imports */[
this[_onDone] = dart.fn(() => {
result[_complete](futureValue);
});
- this[_onError] = dart.fn((error, stackTrace) => {
+ this[_onError] = dart.fn(((error, stackTrace) => {
this.cancel();
result[_completeError](error, dart.as(stackTrace, core.StackTrace));
- });
+ }).bind(this));
return result;
}
get [_isInputPaused]() {
@@ -2336,9 +2336,9 @@ dart_library.library('dart/async', null, /* Imports */[
[_addListener](listener) {
dart.assert(listener[_nextListener] == null);
if (dart.notNull(this[_isComplete])) {
- this[_zone].scheduleMicrotask(dart.fn(() => {
+ this[_zone].scheduleMicrotask(dart.fn((() => {
_Future$()._propagateToListeners(this, listener);
- }));
+ }).bind(this)));
} else {
listener[_nextListener] = dart.as(this[_resultOrListeners], _FutureListener);
this[_resultOrListeners] = listener;
@@ -2420,9 +2420,9 @@ dart_library.library('dart/async', null, /* Imports */[
let coreFuture = dart.as(typedFuture, _Future$(T));
if (dart.notNull(coreFuture[_isComplete]) && dart.notNull(coreFuture[_hasError])) {
this[_markPendingCompletion]();
- this[_zone].scheduleMicrotask(dart.fn(() => {
+ this[_zone].scheduleMicrotask(dart.fn((() => {
_Future$()._chainCoreFuture(coreFuture, this);
- }));
+ }).bind(this)));
} else {
_Future$()._chainCoreFuture(coreFuture, this);
}
@@ -2434,16 +2434,16 @@ dart_library.library('dart/async', null, /* Imports */[
let typedValue = dart.as(value, T);
}
this[_markPendingCompletion]();
- this[_zone].scheduleMicrotask(dart.fn(() => {
+ this[_zone].scheduleMicrotask(dart.fn((() => {
this[_completeWithValue](value);
- }));
+ }).bind(this)));
}
[_asyncCompleteError](error, stackTrace) {
dart.assert(!dart.notNull(this[_isComplete]));
this[_markPendingCompletion]();
- this[_zone].scheduleMicrotask(dart.fn(() => {
+ this[_zone].scheduleMicrotask(dart.fn((() => {
this[_completeError](error, stackTrace);
- }));
+ }).bind(this)));
}
static _propagateToListeners(source, listeners) {
while (true) {
@@ -3185,9 +3185,9 @@ dart_library.library('dart/async', null, /* Imports */[
this[_varData] = subscription;
}
subscription[_setPendingEvents](pendingEvents);
- subscription[_guardCallback](dart.fn(() => {
+ subscription[_guardCallback](dart.fn((() => {
_runGuarded(this[_onListen]);
- }));
+ }).bind(this)));
return dart.as(subscription, StreamSubscription$(T));
}
[_recordCancel](subscription) {
@@ -3457,9 +3457,9 @@ dart_library.library('dart/async', null, /* Imports */[
this.addStreamFuture[_asyncComplete](null);
return null;
}
- return cancel.whenComplete(dart.fn(() => {
+ return cancel.whenComplete(dart.fn((() => {
this.addStreamFuture[_asyncComplete](null);
- }));
+ }).bind(this)));
}
complete() {
this.addStreamFuture[_asyncComplete](null);
@@ -3532,7 +3532,7 @@ dart_library.library('dart/async', null, /* Imports */[
let _ = new _BufferingStreamSubscription(onData, onError, onDone, cancelOnError);
_[_setPendingEvents](this[_pending]());
return _;
- })(), StreamSubscription$(T));
+ }).bind(this)(), StreamSubscription$(T));
}
}
dart.setSignature(_GeneratedStreamImpl, {
@@ -3562,13 +3562,13 @@ dart_library.library('dart/async', null, /* Imports */[
this[_state] = _PendingEvents._STATE_SCHEDULED;
return;
}
- scheduleMicrotask(dart.fn(() => {
+ scheduleMicrotask(dart.fn((() => {
let oldState = this[_state];
this[_state] = _PendingEvents._STATE_UNSCHEDULED;
if (oldState == _PendingEvents._STATE_CANCELED)
return;
this.handleNext(dispatch);
- }));
+ }).bind(this)));
this[_state] = _PendingEvents._STATE_SCHEDULED;
}
cancelSchedule() {
@@ -5253,25 +5253,25 @@ dart_library.library('dart/async', null, /* Imports */[
bindCallback(f, opts) {
let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
if (dart.notNull(runGuarded)) {
- return dart.fn(() => this.runGuarded(f));
+ return dart.fn((() => this.runGuarded(f)).bind(this));
} else {
- return dart.fn(() => this.run(f));
+ return dart.fn((() => this.run(f)).bind(this));
}
}
bindUnaryCallback(f, opts) {
let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
if (dart.notNull(runGuarded)) {
- return dart.fn(arg => this.runUnaryGuarded(f, arg));
+ return dart.fn((arg => this.runUnaryGuarded(f, arg)).bind(this));
} else {
- return dart.fn(arg => this.runUnary(f, arg));
+ return dart.fn((arg => this.runUnary(f, arg)).bind(this));
}
}
bindBinaryCallback(f, opts) {
let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
if (dart.notNull(runGuarded)) {
- return dart.fn((arg1, arg2) => this.runBinaryGuarded(f, arg1, arg2));
+ return dart.fn(((arg1, arg2) => this.runBinaryGuarded(f, arg1, arg2)).bind(this));
} else {
- return dart.fn((arg1, arg2) => this.runBinary(f, arg1, arg2));
+ return dart.fn(((arg1, arg2) => this.runBinary(f, arg1, arg2)).bind(this));
}
}
get(key) {
@@ -5525,27 +5525,27 @@ dart_library.library('dart/async', null, /* Imports */[
let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
let registered = this.registerCallback(f);
if (dart.notNull(runGuarded)) {
- return dart.fn(() => this.runGuarded(registered));
+ return dart.fn((() => this.runGuarded(registered)).bind(this));
} else {
- return dart.fn(() => this.run(registered));
+ return dart.fn((() => this.run(registered)).bind(this));
}
}
bindUnaryCallback(f, opts) {
let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
let registered = this.registerUnaryCallback(f);
if (dart.notNull(runGuarded)) {
- return dart.fn(arg => this.runUnaryGuarded(registered, arg));
+ return dart.fn((arg => this.runUnaryGuarded(registered, arg)).bind(this));
} else {
- return dart.fn(arg => this.runUnary(registered, arg));
+ return dart.fn((arg => this.runUnary(registered, arg)).bind(this));
}
}
bindBinaryCallback(f, opts) {
let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
let registered = this.registerBinaryCallback(f);
if (dart.notNull(runGuarded)) {
- return dart.fn((arg1, arg2) => this.runBinaryGuarded(registered, arg1, arg2));
+ return dart.fn(((arg1, arg2) => this.runBinaryGuarded(registered, arg1, arg2)).bind(this));
} else {
- return dart.fn((arg1, arg2) => this.runBinary(registered, arg1, arg2));
+ return dart.fn(((arg1, arg2) => this.runBinary(registered, arg1, arg2)).bind(this));
}
}
get(key) {
« no previous file with comments | « lib/runtime/dart/_isolate_helper.js ('k') | lib/runtime/dart/collection.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698