Source
dynamic transform(
dynamic /* Stream< dynamic > | Future< dynamic > | EventEmitter< dynamic > */ obj) {
if (_obj == null) {
if (obj != null) {
this._subscribe(obj);
}
this._latestReturnedValue = this._latestValue;
return this._latestValue;
}
if (!identical(obj, this._obj)) {
this._dispose();
return this.transform(obj);
}
if (identical(this._latestValue, this._latestReturnedValue)) {
return this._latestReturnedValue;
} else {
this._latestReturnedValue = this._latestValue;
return WrappedValue.wrap(this._latestValue);
}
}