Index: lib/runtime/dart_sdk.js |
diff --git a/lib/runtime/dart_sdk.js b/lib/runtime/dart_sdk.js |
index 671d12de31eb509dfbc0f032665efc8548382e12..75737ebee81bb31c281764a717165d2c447b5263 100644 |
--- a/lib/runtime/dart_sdk.js |
+++ b/lib/runtime/dart_sdk.js |
@@ -7710,6 +7710,11 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
class Stream extends core.Object { |
Stream() { |
} |
+ _internal() { |
+ } |
+ static empty() { |
+ return new (async._EmptyStream$(T))(); |
+ } |
static fromFuture(future) { |
let controller = dart.as(async.StreamController$(T).new({sync: true}), async._StreamController$(T)); |
future.then(dart.dynamic)(dart.fn(value => { |
@@ -7722,19 +7727,51 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
})}); |
return controller.stream; |
} |
+ static fromFutures(futures) { |
+ let controller = dart.as(async.StreamController$(T).new({sync: true}), async._StreamController$(T)); |
+ let count = 0; |
+ let onValue = dart.fn(value => { |
+ dart.as(value, T); |
+ if (!dart.notNull(controller.isClosed)) { |
+ controller[_add$](value); |
+ if (--count == 0) controller[_closeUnchecked](); |
+ } |
+ }, dart.dynamic, [T]); |
+ let onError = dart.fn((error, stack) => { |
+ if (!dart.notNull(controller.isClosed)) { |
+ controller[_addError](error, dart.as(stack, core.StackTrace)); |
+ if (--count == 0) controller[_closeUnchecked](); |
+ } |
+ }); |
+ for (let future of futures) { |
+ count++; |
+ future.then(dart.dynamic)(onValue, {onError: onError}); |
+ } |
+ if (count == 0) async.scheduleMicrotask(dart.bind(controller, 'close')); |
+ return controller.stream; |
+ } |
static fromIterable(data) { |
return new (async._GeneratedStreamImpl$(T))(dart.fn(() => new (async._IterablePendingEvents$(T))(data), async._IterablePendingEvents$(T), [])); |
} |
static periodic(period, computation) { |
if (computation === void 0) computation = null; |
- if (computation == null) computation = dart.fn(i => null, T, [core.int]); |
let timer = null; |
let computationCount = 0; |
let controller = null; |
let watch = new core.Stopwatch(); |
function sendEvent() { |
watch.reset(); |
- let data = computation(computationCount++); |
+ let data = null; |
+ if (computation != null) { |
+ try { |
+ data = computation(computationCount++); |
+ } catch (e) { |
+ let s = dart.stackTrace(e); |
+ controller.addError(e, s); |
+ return; |
+ } |
+ |
+ } |
controller.add(data); |
} |
dart.fn(sendEvent, dart.void, []); |
@@ -7778,7 +7815,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
dart.as(onListen, dart.functionType(dart.void, [async.StreamSubscription$(T)])); |
let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null; |
dart.as(onCancel, dart.functionType(dart.void, [async.StreamSubscription$(T)])); |
- return new (async._AsBroadcastStream$(T))(this, dart.as(onListen, dart.functionType(dart.void, [async.StreamSubscription])), dart.as(onCancel, dart.functionType(dart.void, [async.StreamSubscription]))); |
+ return new (async._AsBroadcastStream$(T))(this, onListen, onCancel); |
} |
where(test) { |
dart.as(test, dart.functionType(core.bool, [T])); |
@@ -7790,89 +7827,93 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return new (async._MapStream$(T, S))(this, convert); |
}; |
} |
- asyncMap(convert) { |
- dart.as(convert, dart.functionType(dart.dynamic, [T])); |
- let controller = null; |
- let subscription = null; |
- const onListen = (function() { |
- let add = dart.bind(controller, 'add'); |
- dart.assert(dart.is(controller, async._StreamController) || dart.is(controller, async._BroadcastStreamController)); |
- let eventSink = dart.as(controller, async._EventSink$(T)); |
- let addError = dart.bind(eventSink, _addError); |
- subscription = this.listen(dart.fn(event => { |
- dart.as(event, T); |
- let newValue = null; |
- try { |
- newValue = convert(event); |
- } catch (e) { |
- let s = dart.stackTrace(e); |
- controller.addError(e, s); |
- return; |
- } |
+ asyncMap(E) { |
+ return convert => { |
+ dart.as(convert, dart.functionType(dart.dynamic, [T])); |
+ let controller = null; |
+ let subscription = null; |
+ const onListen = (function() { |
+ let add = dart.bind(controller, 'add'); |
+ dart.assert(dart.is(controller, async._StreamController) || dart.is(controller, async._BroadcastStreamController)); |
+ let eventSink = dart.as(controller, async._EventSink$(E)); |
+ let addError = dart.bind(eventSink, _addError); |
+ subscription = this.listen(dart.fn(event => { |
+ dart.as(event, T); |
+ let newValue = null; |
+ try { |
+ newValue = convert(event); |
+ } catch (e) { |
+ let s = dart.stackTrace(e); |
+ controller.addError(e, s); |
+ return; |
+ } |
- if (dart.is(newValue, async.Future)) { |
- subscription.pause(); |
- newValue.then(dart.dynamic)(add, {onError: addError}).whenComplete(dart.bind(subscription, 'resume')); |
- } else { |
- controller.add(newValue); |
- } |
- }, dart.void, [T]), {onError: addError, onDone: dart.bind(controller, 'close')}); |
- }).bind(this); |
- dart.fn(onListen, dart.void, []); |
- if (dart.notNull(this.isBroadcast)) { |
- controller = async.StreamController.broadcast({onListen: onListen, onCancel: dart.fn(() => { |
- subscription.cancel(); |
- }, dart.void, []), sync: true}); |
- } else { |
- controller = async.StreamController.new({onListen: onListen, onPause: dart.fn(() => { |
- subscription.pause(); |
- }, dart.void, []), onResume: dart.fn(() => { |
- subscription.resume(); |
- }, dart.void, []), onCancel: dart.fn(() => { |
- subscription.cancel(); |
- }), sync: true}); |
- } |
- return controller.stream; |
+ if (dart.is(newValue, async.Future)) { |
+ subscription.pause(); |
+ newValue.then(dart.dynamic)(add, {onError: addError}).whenComplete(dart.bind(subscription, 'resume')); |
+ } else { |
+ controller.add(dart.as(newValue, E)); |
+ } |
+ }, dart.void, [T]), {onError: addError, onDone: dart.bind(controller, 'close')}); |
+ }).bind(this); |
+ dart.fn(onListen, dart.void, []); |
+ if (dart.notNull(this.isBroadcast)) { |
+ controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => { |
+ subscription.cancel(); |
+ }, dart.void, []), sync: true}); |
+ } else { |
+ controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => { |
+ subscription.pause(); |
+ }, dart.void, []), onResume: dart.fn(() => { |
+ subscription.resume(); |
+ }, dart.void, []), onCancel: dart.fn(() => { |
+ subscription.cancel(); |
+ }), sync: true}); |
+ } |
+ return controller.stream; |
+ }; |
} |
- asyncExpand(convert) { |
- dart.as(convert, dart.functionType(async.Stream, [T])); |
- let controller = null; |
- let subscription = null; |
- const onListen = (function() { |
- dart.assert(dart.is(controller, async._StreamController) || dart.is(controller, async._BroadcastStreamController)); |
- let eventSink = dart.as(controller, async._EventSink$(T)); |
- subscription = this.listen(dart.fn(event => { |
- dart.as(event, T); |
- let newStream = null; |
- try { |
- newStream = convert(event); |
- } catch (e) { |
- let s = dart.stackTrace(e); |
- controller.addError(e, s); |
- return; |
- } |
+ asyncExpand(E) { |
+ return convert => { |
+ dart.as(convert, dart.functionType(async.Stream$(E), [T])); |
+ let controller = null; |
+ let subscription = null; |
+ const onListen = (function() { |
+ dart.assert(dart.is(controller, async._StreamController) || dart.is(controller, async._BroadcastStreamController)); |
+ let eventSink = dart.as(controller, async._EventSink$(E)); |
+ subscription = this.listen(dart.fn(event => { |
+ dart.as(event, T); |
+ let newStream = null; |
+ try { |
+ newStream = convert(event); |
+ } catch (e) { |
+ let s = dart.stackTrace(e); |
+ controller.addError(e, s); |
+ return; |
+ } |
- if (newStream != null) { |
- subscription.pause(); |
- controller.addStream(newStream).whenComplete(dart.bind(subscription, 'resume')); |
- } |
- }, dart.void, [T]), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')}); |
- }).bind(this); |
- dart.fn(onListen, dart.void, []); |
- if (dart.notNull(this.isBroadcast)) { |
- controller = async.StreamController.broadcast({onListen: onListen, onCancel: dart.fn(() => { |
- subscription.cancel(); |
- }, dart.void, []), sync: true}); |
- } else { |
- controller = async.StreamController.new({onListen: onListen, onPause: dart.fn(() => { |
- subscription.pause(); |
- }, dart.void, []), onResume: dart.fn(() => { |
- subscription.resume(); |
- }, dart.void, []), onCancel: dart.fn(() => { |
- subscription.cancel(); |
- }), sync: true}); |
- } |
- return controller.stream; |
+ if (newStream != null) { |
+ subscription.pause(); |
+ controller.addStream(newStream).whenComplete(dart.bind(subscription, 'resume')); |
+ } |
+ }, dart.void, [T]), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')}); |
+ }).bind(this); |
+ dart.fn(onListen, dart.void, []); |
+ if (dart.notNull(this.isBroadcast)) { |
+ controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => { |
+ subscription.cancel(); |
+ }, dart.void, []), sync: true}); |
+ } else { |
+ controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => { |
+ subscription.pause(); |
+ }, dart.void, []), onResume: dart.fn(() => { |
+ subscription.resume(); |
+ }, dart.void, []), onCancel: dart.fn(() => { |
+ subscription.cancel(); |
+ }), sync: true}); |
+ } |
+ return controller.stream; |
+ }; |
} |
handleError(onError, opts) { |
let test = opts && 'test' in opts ? opts.test : null; |
@@ -7907,7 +7948,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._runUserCode(dart.fn(() => combine(value, element), T, []), dart.fn(newValue => { |
dart.as(newValue, T); |
value = newValue; |
- }, dart.dynamic, [T]), dart.as(async._cancelAndErrorClosure(subscription, result), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
+ }, dart.dynamic, [T]), async._cancelAndErrorClosure(subscription, result)); |
} else { |
value = element; |
seenFirst = true; |
@@ -7936,8 +7977,8 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
subscription = this.listen(dart.fn(element => { |
dart.as(element, T); |
async._runUserCode(dart.fn(() => combine(value, element), S, []), dart.fn(newValue => { |
- value = dart.as(newValue, S); |
- }), dart.as(async._cancelAndErrorClosure(subscription, result), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
+ value = newValue; |
+ }, dart.dynamic, [S]), async._cancelAndErrorClosure(subscription, result)); |
}, dart.void, [T]), {onError: dart.fn((e, st) => { |
result[_completeError](e, dart.as(st, core.StackTrace)); |
}), onDone: dart.fn(() => { |
@@ -7981,7 +8022,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (dart.notNull(isMatch)) { |
async._cancelAndValue(subscription, future, true); |
} |
- }, dart.dynamic, [core.bool]), dart.as(async._cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
+ }, dart.dynamic, [core.bool]), async._cancelAndErrorClosure(subscription, future)); |
}, dart.void, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
future[_complete](false); |
}, dart.void, []), cancelOnError: true}); |
@@ -7994,7 +8035,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
subscription = this.listen(dart.fn(element => { |
dart.as(element, T); |
async._runUserCode(dart.fn(() => action(element), dart.void, []), dart.fn(_ => { |
- }), dart.as(async._cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
+ }), async._cancelAndErrorClosure(subscription, future)); |
}, dart.void, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
future[_complete](null); |
}, dart.void, []), cancelOnError: true}); |
@@ -8010,7 +8051,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (!dart.notNull(isMatch)) { |
async._cancelAndValue(subscription, future, false); |
} |
- }, dart.dynamic, [core.bool]), dart.as(async._cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
+ }, dart.dynamic, [core.bool]), async._cancelAndErrorClosure(subscription, future)); |
}, dart.void, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
future[_complete](true); |
}, dart.void, []), cancelOnError: true}); |
@@ -8026,7 +8067,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (dart.notNull(isMatch)) { |
async._cancelAndValue(subscription, future, true); |
} |
- }, dart.dynamic, [core.bool]), dart.as(async._cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
+ }, dart.dynamic, [core.bool]), async._cancelAndErrorClosure(subscription, future)); |
}, dart.void, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
future[_complete](false); |
}, dart.void, []), cancelOnError: true}); |
@@ -8076,9 +8117,11 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
}, dart.void, []), cancelOnError: true}); |
return future; |
} |
- drain(futureValue) { |
- if (futureValue === void 0) futureValue = null; |
- return this.listen(null, {cancelOnError: true}).asFuture(futureValue); |
+ drain(E) { |
+ return futureValue => { |
+ if (futureValue === void 0) futureValue = null; |
+ return this.listen(null, {cancelOnError: true}).asFuture(E)(futureValue); |
+ }; |
} |
take(count) { |
return new (async._TakeStream$(T))(this, count); |
@@ -8120,8 +8163,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
let future = new (async._Future$(T))(); |
let result = null; |
let foundResult = false; |
- let subscription = null; |
- subscription = this.listen(dart.fn(value => { |
+ this.listen(dart.fn(value => { |
dart.as(value, T); |
foundResult = true; |
result = value; |
@@ -8186,7 +8228,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (dart.notNull(isMatch)) { |
async._cancelAndValue(subscription, future, value); |
} |
- }, dart.dynamic, [core.bool]), dart.as(async._cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
+ }, dart.dynamic, [core.bool]), async._cancelAndErrorClosure(subscription, future)); |
}, dart.void, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
if (defaultValue != null) { |
async._runUserCode(defaultValue, dart.bind(future, _complete), dart.bind(future, _completeError)); |
@@ -8217,7 +8259,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
foundResult = true; |
result = value; |
} |
- }, dart.dynamic, [core.bool]), dart.as(async._cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
+ }, dart.dynamic, [core.bool]), async._cancelAndErrorClosure(subscription, future)); |
}, dart.void, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
if (foundResult) { |
future[_complete](result); |
@@ -8260,7 +8302,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
foundResult = true; |
result = value; |
} |
- }, dart.dynamic, [core.bool]), dart.as(async._cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
+ }, dart.dynamic, [core.bool]), async._cancelAndErrorClosure(subscription, future)); |
}, dart.void, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
if (foundResult) { |
future[_complete](result); |
@@ -8295,25 +8337,25 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
timeout(timeLimit, opts) { |
let onTimeout = opts && 'onTimeout' in opts ? opts.onTimeout : null; |
- dart.as(onTimeout, dart.functionType(dart.void, [async.EventSink])); |
+ dart.as(onTimeout, dart.functionType(dart.void, [async.EventSink$(T)])); |
let controller = null; |
let subscription = null; |
let timer = null; |
let zone = null; |
- let timeout2 = null; |
+ let timeout = null; |
function onData(event) { |
dart.as(event, T); |
timer.cancel(); |
controller.add(event); |
- timer = zone.createTimer(timeLimit, dart.as(timeout2, dart.functionType(dart.void, []))); |
+ timer = zone.createTimer(timeLimit, timeout); |
} |
dart.fn(onData, dart.void, [T]); |
function onError(error, stackTrace) { |
timer.cancel(); |
dart.assert(dart.is(controller, async._StreamController) || dart.is(controller, async._BroadcastStreamController)); |
- let eventSink = dart.as(controller, async._EventSink$(T)); |
- eventSink[_addError](error, stackTrace); |
- timer = zone.createTimer(timeLimit, dart.as(timeout2, dart.functionType(dart.void, []))); |
+ let eventSink = controller; |
+ dart.dsend(eventSink, _addError, error, stackTrace); |
+ timer = zone.createTimer(timeLimit, timeout); |
} |
dart.fn(onError, dart.void, [dart.dynamic, core.StackTrace]); |
function onDone() { |
@@ -8324,20 +8366,20 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
const onListen = (function() { |
zone = async.Zone.current; |
if (onTimeout == null) { |
- timeout2 = dart.fn(() => { |
+ timeout = dart.fn(() => { |
controller.addError(new async.TimeoutException("No stream event", timeLimit), null); |
- }); |
+ }, dart.void, []); |
} else { |
- onTimeout = dart.as(zone.registerUnaryCallback(onTimeout), dart.functionType(dart.void, [async.EventSink])); |
+ let registeredOnTimeout = zone.registerUnaryCallback(dart.dynamic, async.EventSink$(T))(onTimeout); |
let wrapper = new async._ControllerEventSinkWrapper(null); |
- timeout2 = dart.fn(() => { |
+ timeout = dart.fn(() => { |
wrapper[_sink] = controller; |
- zone.runUnaryGuarded(onTimeout, wrapper); |
+ zone.runUnaryGuarded(dart.dynamic, dart.dynamic)(registeredOnTimeout, wrapper); |
wrapper[_sink] = null; |
- }); |
+ }, dart.void, []); |
} |
subscription = this.listen(onData, {onError: onError, onDone: onDone}); |
- timer = zone.createTimer(timeLimit, dart.as(timeout2, dart.functionType(dart.void, []))); |
+ timer = zone.createTimer(timeLimit, timeout); |
}).bind(this); |
dart.fn(onListen, dart.void, []); |
function onCancel() { |
@@ -8347,20 +8389,24 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return result; |
} |
dart.fn(onCancel, async.Future, []); |
- controller = dart.notNull(this.isBroadcast) ? new async._SyncBroadcastStreamController(onListen, onCancel) : new async._SyncStreamController(onListen, dart.fn(() => { |
+ controller = dart.notNull(this.isBroadcast) ? new (async._SyncBroadcastStreamController$(T))(onListen, onCancel) : new (async._SyncStreamController$(T))(onListen, dart.fn(() => { |
timer.cancel(); |
subscription.pause(); |
}, dart.void, []), dart.fn(() => { |
subscription.resume(); |
- timer = zone.createTimer(timeLimit, dart.as(timeout2, dart.functionType(dart.void, []))); |
+ timer = zone.createTimer(timeLimit, timeout); |
}, dart.void, []), onCancel); |
return controller.stream; |
} |
} |
+ dart.defineNamedConstructor(Stream, '_internal'); |
dart.setSignature(Stream, { |
constructors: () => ({ |
Stream: [async.Stream$(T), []], |
+ _internal: [async.Stream$(T), []], |
+ empty: [async.Stream$(T), []], |
fromFuture: [async.Stream$(T), [async.Future$(T)]], |
+ fromFutures: [async.Stream$(T), [core.Iterable$(async.Future$(T))]], |
fromIterable: [async.Stream$(T), [core.Iterable$(T)]], |
periodic: [async.Stream$(T), [core.Duration], [dart.functionType(T, [core.int])]], |
eventTransformed: [async.Stream$(T), [async.Stream, dart.functionType(async.EventSink, [async.EventSink$(T)])]] |
@@ -8369,8 +8415,8 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
asBroadcastStream: [async.Stream$(T), [], {onListen: dart.functionType(dart.void, [async.StreamSubscription$(T)]), onCancel: dart.functionType(dart.void, [async.StreamSubscription$(T)])}], |
where: [async.Stream$(T), [dart.functionType(core.bool, [T])]], |
map: [S => [async.Stream$(S), [dart.functionType(S, [T])]]], |
- asyncMap: [async.Stream, [dart.functionType(dart.dynamic, [T])]], |
- asyncExpand: [async.Stream, [dart.functionType(async.Stream, [T])]], |
+ asyncMap: [E => [async.Stream$(E), [dart.functionType(dart.dynamic, [T])]]], |
+ asyncExpand: [E => [async.Stream$(E), [dart.functionType(async.Stream$(E), [T])]]], |
handleError: [async.Stream$(T), [core.Function], {test: dart.functionType(core.bool, [dart.dynamic])}], |
expand: [S => [async.Stream$(S), [dart.functionType(core.Iterable$(S), [T])]]], |
pipe: [async.Future, [async.StreamConsumer$(T)]], |
@@ -8384,7 +8430,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
any: [async.Future$(core.bool), [dart.functionType(core.bool, [T])]], |
toList: [async.Future$(core.List$(T)), []], |
toSet: [async.Future$(core.Set$(T)), []], |
- drain: [async.Future, [], [dart.dynamic]], |
+ drain: [E => [async.Future$(E), [], [E]]], |
take: [async.Stream$(T), [core.int]], |
takeWhile: [async.Stream$(T), [dart.functionType(core.bool, [T])]], |
skip: [async.Stream$(T), [core.int]], |
@@ -8394,7 +8440,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
lastWhere: [async.Future, [dart.functionType(core.bool, [T])], {defaultValue: dart.functionType(core.Object, [])}], |
singleWhere: [async.Future$(T), [dart.functionType(core.bool, [T])]], |
elementAt: [async.Future$(T), [core.int]], |
- timeout: [async.Stream, [core.Duration], {onTimeout: dart.functionType(dart.void, [async.EventSink])}] |
+ timeout: [async.Stream$(T), [core.Duration], {onTimeout: dart.functionType(dart.void, [async.EventSink$(T)])}] |
}) |
}); |
return Stream; |
@@ -13738,39 +13784,37 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
}, |
set _uint32View(_) {} |
}); |
- dart.copyProperties(async, { |
- get _hasDocument() { |
- return typeof document == 'object'; |
- } |
- }); |
async._invokeErrorHandler = function(errorHandler, error, stackTrace) { |
if (dart.is(errorHandler, async.ZoneBinaryCallback)) { |
return dart.dcall(errorHandler, error, stackTrace); |
} else { |
- return dart.dcall(errorHandler, error); |
+ let unaryErrorHandler = dart.as(errorHandler, async.ZoneUnaryCallback); |
+ return dart.dcall(unaryErrorHandler, error); |
} |
}; |
dart.lazyFn(async._invokeErrorHandler, () => [dart.dynamic, [core.Function, core.Object, core.StackTrace]]); |
- async._registerErrorHandler = function(errorHandler, zone) { |
- if (dart.is(errorHandler, async.ZoneBinaryCallback)) { |
- return zone.registerBinaryCallback(errorHandler); |
- } else { |
- return zone.registerUnaryCallback(dart.as(errorHandler, dart.functionType(dart.dynamic, [dart.dynamic]))); |
- } |
+ async._registerErrorHandler = function(R) { |
+ return (errorHandler, zone) => { |
+ if (dart.is(errorHandler, async.ZoneBinaryCallback)) { |
+ return zone.registerBinaryCallback(R, dart.dynamic, core.StackTrace)(dart.as(errorHandler, async.ZoneBinaryCallback$(R, dart.dynamic, core.StackTrace))); |
+ } else { |
+ return zone.registerUnaryCallback(R, dart.dynamic)(dart.as(errorHandler, async.ZoneUnaryCallback$(R, dart.dynamic))); |
+ } |
+ }; |
}; |
- dart.lazyFn(async._registerErrorHandler, () => [core.Function, [core.Function, async.Zone]]); |
+ dart.lazyFn(async._registerErrorHandler, () => [R => [core.Function, [core.Function, async.Zone]]]); |
async.AsyncError = class AsyncError extends core.Object { |
AsyncError(error, stackTrace) { |
this.error = error; |
this.stackTrace = stackTrace; |
} |
toString() { |
- return dart.toString(this.error); |
+ return `${this.error}`; |
} |
}; |
async.AsyncError[dart.implements] = () => [core.Error]; |
dart.setSignature(async.AsyncError, { |
- constructors: () => ({AsyncError: [async.AsyncError, [dart.dynamic, core.StackTrace]]}) |
+ constructors: () => ({AsyncError: [async.AsyncError, [core.Object, core.StackTrace]]}) |
}); |
async._UncaughtAsyncError = class _UncaughtAsyncError extends async.AsyncError { |
_UncaughtAsyncError(error, stackTrace) { |
@@ -13814,7 +13858,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
cancelOnError = core.identical(true, cancelOnError); |
let subscription = this[_createSubscription](onData, onError, onDone, cancelOnError); |
this[_onListen](subscription); |
- return dart.as(subscription, async.StreamSubscription$(T)); |
+ return subscription; |
} |
[_createSubscription](onData, onError, onDone, cancelOnError) { |
dart.as(onData, dart.functionType(dart.void, [T])); |
@@ -13866,27 +13910,21 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._BroadcastStream$ = dart.generic(T => { |
class _BroadcastStream extends async._ControllerStream$(T) { |
_BroadcastStream(controller) { |
- super._ControllerStream(dart.as(controller, async._StreamControllerLifecycle$(T))); |
+ super._ControllerStream(controller); |
} |
get isBroadcast() { |
return true; |
} |
} |
dart.setSignature(_BroadcastStream, { |
- constructors: () => ({_BroadcastStream: [async._BroadcastStream$(T), [async._StreamControllerLifecycle]]}) |
+ constructors: () => ({_BroadcastStream: [async._BroadcastStream$(T), [async._StreamControllerLifecycle$(T)]]}) |
}); |
return _BroadcastStream; |
}); |
async._BroadcastStream = async._BroadcastStream$(); |
+ const _eventState = Symbol('_eventState'); |
const _next = Symbol('_next'); |
const _previous = Symbol('_previous'); |
- async._BroadcastSubscriptionLink = class _BroadcastSubscriptionLink extends core.Object { |
- _BroadcastSubscriptionLink() { |
- this[_next] = null; |
- this[_previous] = null; |
- } |
- }; |
- const _eventState = Symbol('_eventState'); |
const _expectsEvent = Symbol('_expectsEvent'); |
const _toggleEventId = Symbol('_toggleEventId'); |
const _isFiring = Symbol('_isFiring'); |
@@ -13907,7 +13945,6 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
const _pending = Symbol('_pending'); |
const _setPendingEvents = Symbol('_setPendingEvents'); |
const _isCanceled = Symbol('_isCanceled'); |
- const _extractPending = Symbol('_extractPending'); |
const _isPaused = Symbol('_isPaused'); |
const _isInputPaused = Symbol('_isInputPaused'); |
const _inCallback = Symbol('_inCallback'); |
@@ -13942,6 +13979,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
this.onDone(onDone); |
} |
[_setPendingEvents](pendingEvents) { |
+ dart.as(pendingEvents, async._PendingEvents$(T)); |
dart.assert(this[_pending] == null); |
if (pendingEvents == null) return; |
this[_pending] = pendingEvents; |
@@ -13950,25 +13988,19 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
this[_pending].schedule(this); |
} |
} |
- [_extractPending]() { |
- dart.assert(this[_isCanceled]); |
- let events = this[_pending]; |
- this[_pending] = null; |
- return events; |
- } |
onData(handleData) { |
dart.as(handleData, dart.functionType(dart.void, [T])); |
if (handleData == null) handleData = async._nullDataHandler; |
- this[_onData] = dart.as(this[_zone].registerUnaryCallback(handleData), async._DataHandler$(T)); |
+ this[_onData] = this[_zone].registerUnaryCallback(dart.dynamic, T)(handleData); |
} |
onError(handleError) { |
if (handleError == null) handleError = async._nullErrorHandler; |
- this[_onError] = async._registerErrorHandler(handleError, this[_zone]); |
+ this[_onError] = async._registerErrorHandler(T)(handleError, this[_zone]); |
} |
onDone(handleDone) { |
dart.as(handleDone, dart.functionType(dart.void, [])); |
if (handleDone == null) handleDone = async._nullDoneHandler; |
- this[_onDone] = this[_zone].registerCallback(handleDone); |
+ this[_onDone] = this[_zone].registerCallback(dart.dynamic)(handleDone); |
} |
pause(resumeSignal) { |
if (resumeSignal === void 0) resumeSignal = null; |
@@ -14001,17 +14033,19 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
this[_cancel](); |
return this[_cancelFuture]; |
} |
- asFuture(futureValue) { |
- if (futureValue === void 0) futureValue = null; |
- let result = new (async._Future$(T))(); |
- this[_onDone] = dart.fn(() => { |
- result[_complete](futureValue); |
- }, dart.void, []); |
- this[_onError] = dart.fn((error, stackTrace) => { |
- this.cancel(); |
- result[_completeError](error, dart.as(stackTrace, core.StackTrace)); |
- }); |
- return result; |
+ asFuture(E) { |
+ return futureValue => { |
+ if (futureValue === void 0) futureValue = null; |
+ let result = new (async._Future$(E))(); |
+ this[_onDone] = dart.fn(() => { |
+ result[_complete](futureValue); |
+ }, dart.void, []); |
+ this[_onError] = dart.fn((error, stackTrace) => { |
+ this.cancel(); |
+ result[_completeError](error, dart.as(stackTrace, core.StackTrace)); |
+ }); |
+ return result; |
+ }; |
} |
get [_isInputPaused]() { |
return (dart.notNull(this[_state]) & dart.notNull(async._BufferingStreamSubscription._STATE_INPUT_PAUSED)) >>> 0 != 0; |
@@ -14068,7 +14102,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (dart.notNull(this[_canFire])) { |
this[_sendData](data); |
} else { |
- this[_addPending](new async._DelayedData(data)); |
+ this[_addPending](new (async._DelayedData$(T))(data)); |
} |
} |
[_addError](error, stackTrace) { |
@@ -14100,8 +14134,10 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return null; |
} |
[_addPending](event) { |
- let pending = dart.as(this[_pending], async._StreamImplEvents); |
- if (this[_pending] == null) pending = this[_pending] = new async._StreamImplEvents(); |
+ let pending = dart.as(this[_pending], async._StreamImplEvents$(T)); |
+ if (this[_pending] == null) { |
+ pending = this[_pending] = new (async._StreamImplEvents$(T))(); |
+ } |
pending.add(event); |
if (!dart.notNull(this[_hasPending])) { |
this[_state] = (dart.notNull(this[_state]) | dart.notNull(async._BufferingStreamSubscription._STATE_HAS_PENDING)) >>> 0; |
@@ -14117,7 +14153,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
dart.assert(!dart.notNull(this[_inCallback])); |
let wasInputPaused = this[_isInputPaused]; |
this[_state] = (dart.notNull(this[_state]) | dart.notNull(async._BufferingStreamSubscription._STATE_IN_CALLBACK)) >>> 0; |
- this[_zone].runUnaryGuarded(this[_onData], data); |
+ this[_zone].runUnaryGuarded(dart.dynamic, T)(this[_onData], data); |
this[_state] = (dart.notNull(this[_state]) & ~dart.notNull(async._BufferingStreamSubscription._STATE_IN_CALLBACK)) >>> 0; |
this[_checkState](wasInputPaused); |
} |
@@ -14129,10 +14165,11 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
const sendError = (function() { |
if (dart.notNull(this[_isCanceled]) && !dart.notNull(this[_waitsForCancel])) return; |
this[_state] = (dart.notNull(this[_state]) | dart.notNull(async._BufferingStreamSubscription._STATE_IN_CALLBACK)) >>> 0; |
- if (dart.is(this[_onError], async.ZoneBinaryCallback)) { |
- this[_zone].runBinaryGuarded(dart.as(this[_onError], dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])), error, stackTrace); |
+ if (dart.is(this[_onError], async.ZoneBinaryCallback$(dart.dynamic, core.Object, core.StackTrace))) { |
+ let errorCallback = dart.as(this[_onError], async.ZoneBinaryCallback$(dart.dynamic, core.Object, core.StackTrace)); |
+ this[_zone].runBinaryGuarded(dart.dynamic, core.Object, core.StackTrace)(errorCallback, error, stackTrace); |
} else { |
- this[_zone].runUnaryGuarded(dart.as(this[_onError], dart.functionType(dart.dynamic, [dart.dynamic])), error); |
+ this[_zone].runUnaryGuarded(dart.dynamic, dart.dynamic)(dart.as(this[_onError], async.ZoneUnaryCallback), error); |
} |
this[_state] = (dart.notNull(this[_state]) & ~dart.notNull(async._BufferingStreamSubscription._STATE_IN_CALLBACK)) >>> 0; |
}).bind(this); |
@@ -14157,7 +14194,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
const sendDone = (function() { |
if (!dart.notNull(this[_waitsForCancel])) return; |
this[_state] = (dart.notNull(this[_state]) | dart.notNull(async._BufferingStreamSubscription._STATE_CANCELED) | dart.notNull(async._BufferingStreamSubscription._STATE_CLOSED) | dart.notNull(async._BufferingStreamSubscription._STATE_IN_CALLBACK)) >>> 0; |
- this[_zone].runGuarded(this[_onDone]); |
+ this[_zone].runGuarded(dart.dynamic)(this[_onDone]); |
this[_state] = (dart.notNull(this[_state]) & ~dart.notNull(async._BufferingStreamSubscription._STATE_IN_CALLBACK)) >>> 0; |
}).bind(this); |
dart.fn(sendDone, dart.void, []); |
@@ -14210,15 +14247,14 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
dart.setSignature(_BufferingStreamSubscription, { |
constructors: () => ({_BufferingStreamSubscription: [async._BufferingStreamSubscription$(T), [dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]]}), |
methods: () => ({ |
- [_setPendingEvents]: [dart.void, [async._PendingEvents]], |
- [_extractPending]: [async._PendingEvents, []], |
+ [_setPendingEvents]: [dart.void, [async._PendingEvents$(T)]], |
onData: [dart.void, [dart.functionType(dart.void, [T])]], |
onError: [dart.void, [core.Function]], |
onDone: [dart.void, [dart.functionType(dart.void, [])]], |
pause: [dart.void, [], [async.Future]], |
resume: [dart.void, []], |
cancel: [async.Future, []], |
- asFuture: [async.Future, [], [dart.dynamic]], |
+ asFuture: [E => [async.Future$(E), [], [E]]], |
[_cancel]: [dart.void, []], |
[_incrementPauseCount]: [dart.void, []], |
[_decrementPauseCount]: [dart.void, []], |
@@ -14273,10 +14309,10 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._BroadcastSubscription$ = dart.generic(T => { |
class _BroadcastSubscription extends async._ControllerSubscription$(T) { |
_BroadcastSubscription(controller, onData, onError, onDone, cancelOnError) { |
- this[_eventState] = null; |
+ this[_eventState] = 0; |
this[_next] = null; |
this[_previous] = null; |
- super._ControllerSubscription(dart.as(controller, async._StreamControllerLifecycle$(T)), onData, onError, onDone, cancelOnError); |
+ super._ControllerSubscription(controller, onData, onError, onDone, cancelOnError); |
this[_next] = this[_previous] = this; |
} |
[_expectsEvent](eventId) { |
@@ -14298,9 +14334,8 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
[_onPause]() {} |
[_onResume]() {} |
} |
- _BroadcastSubscription[dart.implements] = () => [async._BroadcastSubscriptionLink]; |
dart.setSignature(_BroadcastSubscription, { |
- constructors: () => ({_BroadcastSubscription: [async._BroadcastSubscription$(T), [async._StreamControllerLifecycle, dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]]}), |
+ constructors: () => ({_BroadcastSubscription: [async._BroadcastSubscription$(T), [async._StreamControllerLifecycle$(T), dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]]}), |
methods: () => ({ |
[_expectsEvent]: [core.bool, [core.int]], |
[_toggleEventId]: [dart.void, []], |
@@ -14313,6 +14348,8 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._BroadcastSubscription._STATE_EVENT_ID = 1; |
async._BroadcastSubscription._STATE_FIRING = 2; |
async._BroadcastSubscription._STATE_REMOVE_AFTER_FIRING = 4; |
+ const _firstSubscription = Symbol('_firstSubscription'); |
+ const _lastSubscription = Symbol('_lastSubscription'); |
const _addStreamState = Symbol('_addStreamState'); |
const _doneFuture = Symbol('_doneFuture'); |
const _isEmpty = Symbol('_isEmpty'); |
@@ -14330,14 +14367,27 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._BroadcastStreamController$ = dart.generic(T => { |
class _BroadcastStreamController extends core.Object { |
_BroadcastStreamController(onListen, onCancel) { |
- this[_onListen] = onListen; |
- this[_onCancel] = onCancel; |
+ this.onListen = onListen; |
+ this.onCancel = onCancel; |
this[_state] = async._BroadcastStreamController._STATE_INITIAL; |
- this[_next] = null; |
- this[_previous] = null; |
+ this[_firstSubscription] = null; |
+ this[_lastSubscription] = null; |
this[_addStreamState] = null; |
this[_doneFuture] = null; |
- this[_next] = this[_previous] = this; |
+ } |
+ get onPause() { |
+ dart.throw(new core.UnsupportedError("Broadcast stream controllers do not support pause callbacks")); |
+ } |
+ set onPause(onPauseHandler) { |
+ dart.as(onPauseHandler, dart.functionType(dart.void, [])); |
+ dart.throw(new core.UnsupportedError("Broadcast stream controllers do not support pause callbacks")); |
+ } |
+ get onResume() { |
+ dart.throw(new core.UnsupportedError("Broadcast stream controllers do not support pause callbacks")); |
+ } |
+ set onResume(onResumeHandler) { |
+ dart.as(onResumeHandler, dart.functionType(dart.void, [])); |
+ dart.throw(new core.UnsupportedError("Broadcast stream controllers do not support pause callbacks")); |
} |
get stream() { |
return new (async._BroadcastStream$(T))(this); |
@@ -14356,7 +14406,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
get [_hasOneListener]() { |
dart.assert(!dart.notNull(this[_isEmpty])); |
- return core.identical(this[_next][_next], this); |
+ return core.identical(this[_firstSubscription], this[_lastSubscription]); |
} |
get [_isFiring]() { |
return (dart.notNull(this[_state]) & dart.notNull(async._BroadcastStreamController._STATE_FIRING)) >>> 0 != 0; |
@@ -14372,16 +14422,21 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return this[_doneFuture] = new async._Future(); |
} |
get [_isEmpty]() { |
- return core.identical(this[_next], this); |
+ return this[_firstSubscription] == null; |
} |
[_addListener](subscription) { |
dart.as(subscription, async._BroadcastSubscription$(T)); |
dart.assert(core.identical(subscription[_next], subscription)); |
- subscription[_previous] = this[_previous]; |
- subscription[_next] = this; |
- this[_previous][_next] = subscription; |
- this[_previous] = subscription; |
subscription[_eventState] = (dart.notNull(this[_state]) & dart.notNull(async._BroadcastStreamController._STATE_EVENT_ID)) >>> 0; |
+ let oldLast = this[_lastSubscription]; |
+ this[_lastSubscription] = subscription; |
+ subscription[_next] = null; |
+ subscription[_previous] = oldLast; |
+ if (oldLast == null) { |
+ this[_firstSubscription] = subscription; |
+ } else { |
+ oldLast[_next] = subscription; |
+ } |
} |
[_removeListener](subscription) { |
dart.as(subscription, async._BroadcastSubscription$(T)); |
@@ -14389,8 +14444,16 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
dart.assert(!core.identical(subscription[_next], subscription)); |
let previous = subscription[_previous]; |
let next = subscription[_next]; |
- previous[_next] = next; |
- next[_previous] = previous; |
+ if (previous == null) { |
+ this[_firstSubscription] = next; |
+ } else { |
+ previous[_next] = next; |
+ } |
+ if (next == null) { |
+ this[_lastSubscription] = previous; |
+ } else { |
+ next[_previous] = previous; |
+ } |
subscription[_next] = subscription[_previous] = subscription; |
} |
[_subscribe](onData, onError, onDone, cancelOnError) { |
@@ -14402,20 +14465,18 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
let subscription = new (async._BroadcastSubscription$(T))(this, onData, onError, onDone, cancelOnError); |
this[_addListener](dart.as(subscription, async._BroadcastSubscription$(T))); |
- if (core.identical(this[_next], this[_previous])) { |
- async._runGuarded(this[_onListen]); |
+ if (core.identical(this[_firstSubscription], this[_lastSubscription])) { |
+ async._runGuarded(this.onListen); |
} |
- return dart.as(subscription, async.StreamSubscription$(T)); |
+ return subscription; |
} |
[_recordCancel](sub) { |
dart.as(sub, async.StreamSubscription$(T)); |
let subscription = dart.as(sub, async._BroadcastSubscription$(T)); |
if (core.identical(subscription[_next], subscription)) return null; |
- dart.assert(!core.identical(subscription[_next], subscription)); |
if (dart.notNull(subscription[_isFiring])) { |
subscription[_setRemoveAfterFiring](); |
} else { |
- dart.assert(!core.identical(subscription[_next], subscription)); |
this[_removeListener](subscription); |
if (!dart.notNull(this[_isFiring]) && dart.notNull(this[_isEmpty])) { |
this[_callOnCancel](); |
@@ -14496,20 +14557,20 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (dart.notNull(this[_isEmpty])) return; |
let id = (dart.notNull(this[_state]) & dart.notNull(async._BroadcastStreamController._STATE_EVENT_ID)) >>> 0; |
this[_state] = (dart.notNull(this[_state]) ^ (dart.notNull(async._BroadcastStreamController._STATE_EVENT_ID) | dart.notNull(async._BroadcastStreamController._STATE_FIRING))) >>> 0; |
- let link = this[_next]; |
- while (!core.identical(link, this)) { |
- let subscription = dart.as(link, async._BroadcastSubscription$(T)); |
+ let subscription = this[_firstSubscription]; |
+ while (subscription != null) { |
if (dart.notNull(subscription[_expectsEvent](id))) { |
subscription[_eventState] = (dart.notNull(subscription[_eventState]) | dart.notNull(async._BroadcastSubscription._STATE_FIRING)) >>> 0; |
action(subscription); |
subscription[_toggleEventId](); |
- link = subscription[_next]; |
+ let next = subscription[_next]; |
if (dart.notNull(subscription[_removeAfterFiring])) { |
this[_removeListener](subscription); |
} |
subscription[_eventState] = (dart.notNull(subscription[_eventState]) & ~dart.notNull(async._BroadcastSubscription._STATE_FIRING)) >>> 0; |
+ subscription = next; |
} else { |
- link = subscription[_next]; |
+ subscription = subscription[_next]; |
} |
} |
this[_state] = (dart.notNull(this[_state]) & ~dart.notNull(async._BroadcastStreamController._STATE_FIRING)) >>> 0; |
@@ -14522,12 +14583,12 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (dart.notNull(this.isClosed) && dart.notNull(this[_doneFuture][_mayComplete])) { |
this[_doneFuture][_asyncComplete](null); |
} |
- async._runGuarded(this[_onCancel]); |
+ async._runGuarded(this.onCancel); |
} |
} |
- _BroadcastStreamController[dart.implements] = () => [async.StreamController$(T), async._StreamControllerLifecycle$(T), async._BroadcastSubscriptionLink, async._EventSink$(T), async._EventDispatch$(T)]; |
+ _BroadcastStreamController[dart.implements] = () => [async.StreamController$(T), async._StreamControllerLifecycle$(T), async._EventSink$(T), async._EventDispatch$(T)]; |
dart.setSignature(_BroadcastStreamController, { |
- constructors: () => ({_BroadcastStreamController: [async._BroadcastStreamController$(T), [async._NotificationHandler, async._NotificationHandler]]}), |
+ constructors: () => ({_BroadcastStreamController: [async._BroadcastStreamController$(T), [async.ControllerCallback, async.ControllerCancelCallback]]}), |
methods: () => ({ |
[_ensureDoneFuture]: [async._Future, []], |
[_addListener]: [dart.void, [async._BroadcastSubscription$(T)]], |
@@ -14561,12 +14622,21 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
_SyncBroadcastStreamController(onListen, onCancel) { |
super._BroadcastStreamController(onListen, onCancel); |
} |
+ get [_mayAddEvent]() { |
+ return dart.notNull(super[_mayAddEvent]) && !dart.notNull(this[_isFiring]); |
+ } |
+ [_addEventError]() { |
+ if (dart.notNull(this[_isFiring])) { |
+ return new core.StateError("Cannot fire new event. Controller is already firing an event"); |
+ } |
+ return super[_addEventError](); |
+ } |
[_sendData](data) { |
dart.as(data, T); |
if (dart.notNull(this[_isEmpty])) return; |
if (dart.notNull(this[_hasOneListener])) { |
this[_state] = (dart.notNull(this[_state]) | dart.notNull(async._BroadcastStreamController._STATE_FIRING)) >>> 0; |
- let subscription = dart.as(this[_next], async._BroadcastSubscription); |
+ let subscription = this[_firstSubscription]; |
subscription[_add$](data); |
this[_state] = (dart.notNull(this[_state]) & ~dart.notNull(async._BroadcastStreamController._STATE_FIRING)) >>> 0; |
if (dart.notNull(this[_isEmpty])) { |
@@ -14589,9 +14659,9 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
[_sendDone]() { |
if (!dart.notNull(this[_isEmpty])) { |
this[_forEachListener](dart.fn(subscription => { |
- dart.as(subscription, async._BroadcastSubscription$(T)); |
+ dart.as(subscription, async._BufferingStreamSubscription$(T)); |
subscription[_close$](); |
- }, dart.void, [async._BroadcastSubscription$(T)])); |
+ }, dart.void, [async._BufferingStreamSubscription$(T)])); |
} else { |
dart.assert(this[_doneFuture] != null); |
dart.assert(this[_doneFuture][_mayComplete]); |
@@ -14599,6 +14669,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
} |
} |
+ _SyncBroadcastStreamController[dart.implements] = () => [async.SynchronousStreamController$(T)]; |
dart.setSignature(_SyncBroadcastStreamController, { |
constructors: () => ({_SyncBroadcastStreamController: [async._SyncBroadcastStreamController$(T), [dart.functionType(dart.void, []), dart.functionType(dart.void, [])]]}), |
methods: () => ({ |
@@ -14617,21 +14688,18 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
[_sendData](data) { |
dart.as(data, T); |
- for (let link = this[_next]; !core.identical(link, this); link = link[_next]) { |
- let subscription = dart.as(link, async._BroadcastSubscription$(T)); |
- subscription[_addPending](new async._DelayedData(data)); |
+ for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next]) { |
+ subscription[_addPending](new (async._DelayedData$(T))(data)); |
} |
} |
[_sendError](error, stackTrace) { |
- for (let link = this[_next]; !core.identical(link, this); link = link[_next]) { |
- let subscription = dart.as(link, async._BroadcastSubscription$(T)); |
+ for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next]) { |
subscription[_addPending](new async._DelayedError(error, stackTrace)); |
} |
} |
[_sendDone]() { |
if (!dart.notNull(this[_isEmpty])) { |
- for (let link = this[_next]; !core.identical(link, this); link = link[_next]) { |
- let subscription = dart.as(link, async._BroadcastSubscription$(T)); |
+ for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next]) { |
subscription[_addPending](dart.const(new async._DelayedDone())); |
} |
} else { |
@@ -14664,7 +14732,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
[_addPendingEvent](event) { |
if (this[_pending] == null) { |
- this[_pending] = new async._StreamImplEvents(); |
+ this[_pending] = new (async._StreamImplEvents$(T))(); |
} |
this[_pending].add(event); |
} |
@@ -14753,9 +14821,11 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
get isPaused() { |
return dart.notNull(this[_pauseCount]) > 0; |
} |
- asFuture(value) { |
- if (value === void 0) value = null; |
- return new async._Future(); |
+ asFuture(E) { |
+ return value => { |
+ if (value === void 0) value = null; |
+ return new (async._Future$(E))(); |
+ }; |
} |
} |
_DoneSubscription[dart.implements] = () => [async.StreamSubscription$(T)]; |
@@ -14768,7 +14838,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
resume: [dart.void, []], |
[_resume]: [dart.void, [dart.dynamic]], |
cancel: [async.Future, []], |
- asFuture: [async.Future, [], [core.Object]] |
+ asFuture: [E => [async.Future$(E), [], [E]]] |
}) |
}); |
return _DoneSubscription; |
@@ -14816,7 +14886,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
}, dart.void, [])); |
- return dart.as(result, async.Future$(T)); |
+ return result; |
} |
static microtask(computation) { |
let result = new (async._Future$(T))(); |
@@ -14829,7 +14899,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
}, dart.void, [])); |
- return dart.as(result, async.Future$(T)); |
+ return result; |
} |
static sync(computation) { |
try { |
@@ -14869,7 +14939,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
}, dart.void, [])); |
- return dart.as(result, async.Future$(T)); |
+ return result; |
} |
static wait(T) { |
return (futures, opts) => { |
@@ -14884,10 +14954,10 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
remaining--; |
if (values != null) { |
if (cleanUp != null) { |
- for (let value2 of values) { |
- if (value2 != null) { |
+ for (let value of values) { |
+ if (value != null) { |
async.Future.sync(dart.fn(() => { |
- cleanUp(value2); |
+ cleanUp(value); |
})); |
} |
} |
@@ -14909,21 +14979,21 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
future.then(dart.dynamic)(dart.fn(value => { |
remaining--; |
if (values != null) { |
- values[dartx.set](pos, dart.as(value, T)); |
+ values[dartx.set](pos, value); |
if (remaining == 0) { |
result[_completeWithValue](values); |
} |
} else { |
if (cleanUp != null && value != null) { |
async.Future.sync(dart.fn(() => { |
- cleanUp(dart.as(value, T)); |
+ cleanUp(value); |
})); |
} |
if (remaining == 0 && !dart.notNull(eagerError)) { |
result[_completeError](error, stackTrace); |
} |
} |
- }, dart.dynamic, [core.Object]), {onError: handleError}); |
+ }, dart.dynamic, [T]), {onError: handleError}); |
} |
if (remaining == 0) { |
return async.Future$(core.List$(T)).value(dart.const([])); |
@@ -14932,6 +15002,21 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return result; |
}; |
} |
+ static any(T) { |
+ return futures => { |
+ let completer = async.Completer$(T).sync(); |
+ let onValue = dart.fn(value => { |
+ if (!dart.notNull(completer.isCompleted)) completer.complete(value); |
+ }, dart.dynamic, [T]); |
+ let onError = dart.fn((error, stack) => { |
+ if (!dart.notNull(completer.isCompleted)) completer.completeError(error, dart.as(stack, core.StackTrace)); |
+ }); |
+ for (let future of futures) { |
+ future.then(dart.dynamic)(onValue, {onError: onError}); |
+ } |
+ return completer.future; |
+ }; |
+ } |
static forEach(input, f) { |
let iterator = input[dartx.iterator]; |
return async.Future.doWhile(dart.fn(() => { |
@@ -14942,7 +15027,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
static doWhile(f) { |
let doneSignal = new async._Future(); |
let nextIteration = null; |
- nextIteration = async.Zone.current.bindUnaryCallback(dart.fn(keepGoing => { |
+ nextIteration = async.Zone.current.bindUnaryCallback(dart.dynamic, core.bool)(dart.fn(keepGoing => { |
if (dart.notNull(keepGoing)) { |
async.Future.sync(f).then(dart.dynamic)(dart.as(nextIteration, dart.functionType(dart.dynamic, [dart.dynamic])), {onError: dart.bind(doneSignal, _completeError)}); |
} else { |
@@ -14960,21 +15045,22 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
sync: [async.Future$(T), [dart.functionType(dart.dynamic, [])]], |
value: [async.Future$(T), [], [dart.dynamic]], |
error: [async.Future$(T), [core.Object], [core.StackTrace]], |
- delayed: [async.Future$(T), [core.Duration], [dart.functionType(T, [])]] |
+ delayed: [async.Future$(T), [core.Duration], [dart.functionType(dart.dynamic, [])]] |
}), |
statics: () => ({ |
wait: [T => [async.Future$(core.List$(T)), [core.Iterable$(async.Future$(T))], {eagerError: core.bool, cleanUp: dart.functionType(dart.void, [T])}]], |
+ any: [T => [async.Future$(T), [core.Iterable$(async.Future$(T))]]], |
forEach: [async.Future, [core.Iterable, dart.functionType(dart.dynamic, [dart.dynamic])]], |
doWhile: [async.Future, [dart.functionType(dart.dynamic, [])]] |
}), |
- names: ['wait', 'forEach', 'doWhile'] |
+ names: ['wait', 'any', 'forEach', 'doWhile'] |
}); |
return Future; |
}); |
async.Future = async.Future$(); |
dart.defineLazy(async.Future, { |
get _nullFuture() { |
- return new async._Future.immediate(null); |
+ return dart.as(async.Future.value(null), async._Future); |
} |
}); |
async.TimeoutException = class TimeoutException extends core.Object { |
@@ -15025,8 +15111,8 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return error != null ? error : new core.NullThrownError(); |
}; |
dart.fn(async._nonNullError, core.Object, [core.Object]); |
- async._FutureOnValue$ = dart.generic(T => { |
- const _FutureOnValue = dart.typedef('_FutureOnValue', () => dart.functionType(dart.dynamic, [T])); |
+ async._FutureOnValue$ = dart.generic((S, T) => { |
+ const _FutureOnValue = dart.typedef('_FutureOnValue', () => dart.functionType(dart.dynamic, [S])); |
return _FutureOnValue; |
}); |
async._FutureOnValue = async._FutureOnValue$(); |
@@ -15110,111 +15196,140 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
const _onValue = Symbol('_onValue'); |
const _errorTest = Symbol('_errorTest'); |
const _whenCompleteAction = Symbol('_whenCompleteAction'); |
- async._FutureListener = class _FutureListener extends core.Object { |
- then(result, onValue, errorCallback) { |
- this.result = result; |
- this.callback = onValue; |
- this.errorCallback = errorCallback; |
- this.state = errorCallback == null ? async._FutureListener.STATE_THEN : async._FutureListener.STATE_THEN_ONERROR; |
- this[_nextListener] = null; |
- } |
- catchError(result, errorCallback, test) { |
- this.result = result; |
- this.errorCallback = errorCallback; |
- this.callback = test; |
- this.state = test == null ? async._FutureListener.STATE_CATCHERROR : async._FutureListener.STATE_CATCHERROR_TEST; |
- this[_nextListener] = null; |
- } |
- whenComplete(result, onComplete) { |
- this.result = result; |
- this.callback = onComplete; |
- this.errorCallback = null; |
- this.state = async._FutureListener.STATE_WHENCOMPLETE; |
- this[_nextListener] = null; |
- } |
- chain(result) { |
- this.result = result; |
- this.callback = null; |
- this.errorCallback = null; |
- this.state = async._FutureListener.STATE_CHAIN; |
- this[_nextListener] = null; |
- } |
- get [_zone]() { |
- return this.result[_zone]; |
- } |
- get handlesValue() { |
- return (dart.notNull(this.state) & dart.notNull(async._FutureListener.MASK_VALUE)) >>> 0 != 0; |
- } |
- get handlesError() { |
- return (dart.notNull(this.state) & dart.notNull(async._FutureListener.MASK_ERROR)) >>> 0 != 0; |
- } |
- get hasErrorTest() { |
- return this.state == async._FutureListener.STATE_CATCHERROR_TEST; |
- } |
- get handlesComplete() { |
- return this.state == async._FutureListener.STATE_WHENCOMPLETE; |
- } |
- get [_onValue]() { |
- dart.assert(this.handlesValue); |
- return dart.as(this.callback, async._FutureOnValue); |
- } |
- get [_onError]() { |
- return this.errorCallback; |
- } |
- get [_errorTest]() { |
- dart.assert(this.hasErrorTest); |
- return dart.as(this.callback, async._FutureErrorTest); |
- } |
- get [_whenCompleteAction]() { |
- dart.assert(this.handlesComplete); |
- return dart.as(this.callback, async._FutureAction); |
+ async._FutureListener$ = dart.generic((S, T) => { |
+ class _FutureListener extends core.Object { |
+ then(result, onValue, errorCallback) { |
+ this.result = result; |
+ this.callback = onValue; |
+ this.errorCallback = errorCallback; |
+ this.state = errorCallback == null ? async._FutureListener.STATE_THEN : async._FutureListener.STATE_THEN_ONERROR; |
+ this[_nextListener] = null; |
+ } |
+ catchError(result, errorCallback, test) { |
+ this.result = result; |
+ this.errorCallback = errorCallback; |
+ this.callback = test; |
+ this.state = test == null ? async._FutureListener.STATE_CATCHERROR : async._FutureListener.STATE_CATCHERROR_TEST; |
+ this[_nextListener] = null; |
+ } |
+ whenComplete(result, onComplete) { |
+ this.result = result; |
+ this.callback = onComplete; |
+ this.errorCallback = null; |
+ this.state = async._FutureListener.STATE_WHENCOMPLETE; |
+ this[_nextListener] = null; |
+ } |
+ get [_zone]() { |
+ return this.result[_zone]; |
+ } |
+ get handlesValue() { |
+ return (dart.notNull(this.state) & dart.notNull(async._FutureListener.MASK_VALUE)) >>> 0 != 0; |
+ } |
+ get handlesError() { |
+ return (dart.notNull(this.state) & dart.notNull(async._FutureListener.MASK_ERROR)) >>> 0 != 0; |
+ } |
+ get hasErrorTest() { |
+ return this.state == async._FutureListener.STATE_CATCHERROR_TEST; |
+ } |
+ get handlesComplete() { |
+ return this.state == async._FutureListener.STATE_WHENCOMPLETE; |
+ } |
+ get [_onValue]() { |
+ dart.assert(this.handlesValue); |
+ return dart.as(this.callback, async._FutureOnValue$(S, T)); |
+ } |
+ get [_onError]() { |
+ return this.errorCallback; |
+ } |
+ get [_errorTest]() { |
+ dart.assert(this.hasErrorTest); |
+ return dart.as(this.callback, async._FutureErrorTest); |
+ } |
+ get [_whenCompleteAction]() { |
+ dart.assert(this.handlesComplete); |
+ return dart.as(this.callback, async._FutureAction); |
+ } |
+ get hasErrorCallback() { |
+ dart.assert(this.handlesError); |
+ return this[_onError] != null; |
+ } |
+ handleValue(sourceResult) { |
+ dart.as(sourceResult, S); |
+ return this[_zone].runUnary(dart.dynamic, S)(this[_onValue], sourceResult); |
+ } |
+ matchesErrorTest(asyncError) { |
+ if (!dart.notNull(this.hasErrorTest)) return true; |
+ let test = this[_errorTest]; |
+ return this[_zone].runUnary(core.bool, dart.dynamic)(this[_errorTest], asyncError.error); |
+ } |
+ handleError(asyncError) { |
+ dart.assert(dart.notNull(this.handlesError) && dart.notNull(this.hasErrorCallback)); |
+ if (dart.is(this.errorCallback, async.ZoneBinaryCallback)) { |
+ let typedErrorCallback = dart.as(this.errorCallback, async.ZoneBinaryCallback$(core.Object, core.Object, core.StackTrace)); |
+ return this[_zone].runBinary(core.Object, core.Object, core.StackTrace)(typedErrorCallback, asyncError.error, asyncError.stackTrace); |
+ } else { |
+ return this[_zone].runUnary(dart.dynamic, dart.dynamic)(dart.as(this.errorCallback, dart.functionType(dart.dynamic, [dart.dynamic])), asyncError.error); |
+ } |
+ } |
+ handleWhenComplete() { |
+ dart.assert(!dart.notNull(this.handlesError)); |
+ return this[_zone].run(dart.dynamic)(this[_whenCompleteAction]); |
+ } |
} |
- }; |
- dart.defineNamedConstructor(async._FutureListener, 'then'); |
- dart.defineNamedConstructor(async._FutureListener, 'catchError'); |
- dart.defineNamedConstructor(async._FutureListener, 'whenComplete'); |
- dart.defineNamedConstructor(async._FutureListener, 'chain'); |
- dart.setSignature(async._FutureListener, { |
- constructors: () => ({ |
- then: [async._FutureListener, [async._Future, async._FutureOnValue, core.Function]], |
- catchError: [async._FutureListener, [async._Future, core.Function, async._FutureErrorTest]], |
- whenComplete: [async._FutureListener, [async._Future, async._FutureAction]], |
- chain: [async._FutureListener, [async._Future]] |
- }) |
+ dart.defineNamedConstructor(_FutureListener, 'then'); |
+ dart.defineNamedConstructor(_FutureListener, 'catchError'); |
+ dart.defineNamedConstructor(_FutureListener, 'whenComplete'); |
+ dart.setSignature(_FutureListener, { |
+ constructors: () => ({ |
+ then: [async._FutureListener$(S, T), [async._Future$(T), async._FutureOnValue$(S, T), core.Function]], |
+ catchError: [async._FutureListener$(S, T), [async._Future$(T), core.Function, async._FutureErrorTest]], |
+ whenComplete: [async._FutureListener$(S, T), [async._Future$(T), async._FutureAction]] |
+ }), |
+ methods: () => ({ |
+ handleValue: [dart.dynamic, [S]], |
+ matchesErrorTest: [core.bool, [async.AsyncError]], |
+ handleError: [dart.dynamic, [async.AsyncError]], |
+ handleWhenComplete: [dart.dynamic, []] |
+ }) |
+ }); |
+ return _FutureListener; |
}); |
+ async._FutureListener = async._FutureListener$(); |
async._FutureListener.MASK_VALUE = 1; |
async._FutureListener.MASK_ERROR = 2; |
async._FutureListener.MASK_TEST_ERROR = 4; |
async._FutureListener.MASK_WHENCOMPLETE = 8; |
async._FutureListener.STATE_CHAIN = 0; |
+ async._FutureListener.STATE_THEN_ONERROR = 3; |
+ async._FutureListener.STATE_CATCHERROR_TEST = 6; |
dart.defineLazy(async._FutureListener, { |
get STATE_THEN() { |
return async._FutureListener.MASK_VALUE; |
}, |
- get STATE_THEN_ONERROR() { |
- return (dart.notNull(async._FutureListener.MASK_VALUE) | dart.notNull(async._FutureListener.MASK_ERROR)) >>> 0; |
- }, |
get STATE_CATCHERROR() { |
return async._FutureListener.MASK_ERROR; |
}, |
- get STATE_CATCHERROR_TEST() { |
- return (dart.notNull(async._FutureListener.MASK_ERROR) | dart.notNull(async._FutureListener.MASK_TEST_ERROR)) >>> 0; |
- }, |
get STATE_WHENCOMPLETE() { |
return async._FutureListener.MASK_WHENCOMPLETE; |
} |
}); |
const _resultOrListeners = Symbol('_resultOrListeners'); |
+ const _isPendingComplete = Symbol('_isPendingComplete'); |
+ const _mayAddListener = Symbol('_mayAddListener'); |
const _isChained = Symbol('_isChained'); |
const _isComplete = Symbol('_isComplete'); |
- const _hasValue = Symbol('_hasValue'); |
const _hasError = Symbol('_hasError'); |
- const _markPendingCompletion = Symbol('_markPendingCompletion'); |
- const _value = Symbol('_value'); |
+ const _setChained = Symbol('_setChained'); |
+ const _thenNoZoneRegistration = Symbol('_thenNoZoneRegistration'); |
+ const _setPendingComplete = Symbol('_setPendingComplete'); |
const _error = Symbol('_error'); |
+ const _chainSource = Symbol('_chainSource'); |
const _setValue = Symbol('_setValue'); |
const _setErrorObject = Symbol('_setErrorObject'); |
const _setError = Symbol('_setError'); |
+ const _cloneResult = Symbol('_cloneResult'); |
+ const _prependListeners = Symbol('_prependListeners'); |
+ const _reverseListeners = Symbol('_reverseListeners'); |
const _removeListeners = Symbol('_removeListeners'); |
async._Future$ = dart.generic(T => { |
class _Future extends core.Object { |
@@ -15239,77 +15354,84 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
get [_mayComplete]() { |
return this[_state] == async._Future._INCOMPLETE; |
} |
+ get [_isPendingComplete]() { |
+ return this[_state] == async._Future._PENDING_COMPLETE; |
+ } |
+ get [_mayAddListener]() { |
+ return dart.notNull(this[_state]) <= dart.notNull(async._Future._PENDING_COMPLETE); |
+ } |
get [_isChained]() { |
return this[_state] == async._Future._CHAINED; |
} |
get [_isComplete]() { |
return dart.notNull(this[_state]) >= dart.notNull(async._Future._VALUE); |
} |
- get [_hasValue]() { |
- return this[_state] == async._Future._VALUE; |
- } |
get [_hasError]() { |
return this[_state] == async._Future._ERROR; |
} |
- set [_isChained](value) { |
- if (dart.notNull(value)) { |
- dart.assert(!dart.notNull(this[_isComplete])); |
- this[_state] = async._Future._CHAINED; |
- } else { |
- dart.assert(this[_isChained]); |
- this[_state] = async._Future._INCOMPLETE; |
- } |
+ [_setChained](source) { |
+ dart.assert(this[_mayAddListener]); |
+ this[_state] = async._Future._CHAINED; |
+ this[_resultOrListeners] = source; |
} |
- then(S) { |
+ then(E) { |
return (f, opts) => { |
- dart.as(f, dart.functionType(S, [T])); |
+ dart.as(f, dart.functionType(dart.dynamic, [T])); |
let onError = opts && 'onError' in opts ? opts.onError : null; |
- let result = new (async._Future$(S))(); |
- if (!core.identical(result[_zone], async._ROOT_ZONE)) { |
- f = dart.as(result[_zone].registerUnaryCallback(f), dart.functionType(S, [T])); |
+ let currentZone = async.Zone.current; |
+ let registered = null; |
+ if (!core.identical(currentZone, async._ROOT_ZONE)) { |
+ f = currentZone.registerUnaryCallback(dart.dynamic, T)(f); |
if (onError != null) { |
- onError = async._registerErrorHandler(onError, result[_zone]); |
+ onError = async._registerErrorHandler(T)(onError, currentZone); |
} |
} |
- this[_addListener](new async._FutureListener.then(result, f, onError)); |
+ return this[_thenNoZoneRegistration](E)(f, onError); |
+ }; |
+ } |
+ [_thenNoZoneRegistration](E) { |
+ return (f, onError) => { |
+ dart.as(f, dart.functionType(dart.dynamic, [T])); |
+ let result = new (async._Future$(E))(); |
+ this[_addListener](new (async._FutureListener$(T, E)).then(result, f, onError)); |
return result; |
}; |
} |
catchError(onError, opts) { |
let test = opts && 'test' in opts ? opts.test : null; |
dart.as(test, dart.functionType(core.bool, [dart.dynamic])); |
- let result = new async._Future(); |
+ let result = new (async._Future$(T))(); |
if (!core.identical(result[_zone], async._ROOT_ZONE)) { |
- onError = async._registerErrorHandler(onError, result[_zone]); |
- if (test != null) test = dart.as(result[_zone].registerUnaryCallback(test), dart.functionType(core.bool, [dart.dynamic])); |
+ onError = async._registerErrorHandler(T)(onError, result[_zone]); |
+ if (test != null) test = result[_zone].registerUnaryCallback(core.bool, dart.dynamic)(test); |
} |
- this[_addListener](new async._FutureListener.catchError(result, onError, test)); |
+ this[_addListener](new (async._FutureListener$(T, T)).catchError(result, onError, test)); |
return result; |
} |
whenComplete(action) { |
dart.as(action, dart.functionType(dart.dynamic, [])); |
let result = new (async._Future$(T))(); |
if (!core.identical(result[_zone], async._ROOT_ZONE)) { |
- action = result[_zone].registerCallback(action); |
+ action = result[_zone].registerCallback(dart.dynamic)(action); |
} |
- this[_addListener](new async._FutureListener.whenComplete(result, action)); |
- return dart.as(result, async.Future$(T)); |
+ this[_addListener](new (async._FutureListener$(T, T)).whenComplete(result, action)); |
+ return result; |
} |
asStream() { |
return async.Stream$(T).fromFuture(this); |
} |
- [_markPendingCompletion]() { |
- if (!dart.notNull(this[_mayComplete])) dart.throw(new core.StateError("Future already completed")); |
+ [_setPendingComplete]() { |
+ dart.assert(this[_mayComplete]); |
this[_state] = async._Future._PENDING_COMPLETE; |
} |
- get [_value]() { |
- dart.assert(dart.notNull(this[_isComplete]) && dart.notNull(this[_hasValue])); |
- return dart.as(this[_resultOrListeners], T); |
- } |
get [_error]() { |
- dart.assert(dart.notNull(this[_isComplete]) && dart.notNull(this[_hasError])); |
+ dart.assert(this[_hasError]); |
return dart.as(this[_resultOrListeners], async.AsyncError); |
} |
+ get [_chainSource]() { |
+ dart.assert(this[_isChained]); |
+ return dart.as(this[_resultOrListeners], async._Future); |
+ } |
[_setValue](value) { |
dart.as(value, T); |
dart.assert(!dart.notNull(this[_isComplete])); |
@@ -15324,22 +15446,69 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
[_setError](error, stackTrace) { |
this[_setErrorObject](new async.AsyncError(error, stackTrace)); |
} |
+ [_cloneResult](source) { |
+ dart.assert(!dart.notNull(this[_isComplete])); |
+ dart.assert(source[_isComplete]); |
+ this[_state] = source[_state]; |
+ this[_resultOrListeners] = source[_resultOrListeners]; |
+ } |
[_addListener](listener) { |
dart.assert(listener[_nextListener] == null); |
- if (dart.notNull(this[_isComplete])) { |
+ if (dart.notNull(this[_mayAddListener])) { |
+ listener[_nextListener] = dart.as(this[_resultOrListeners], async._FutureListener); |
+ this[_resultOrListeners] = listener; |
+ } else { |
+ if (dart.notNull(this[_isChained])) { |
+ let source = this[_chainSource]; |
+ if (!dart.notNull(source[_isComplete])) { |
+ source[_addListener](listener); |
+ return; |
+ } |
+ this[_cloneResult](source); |
+ } |
+ dart.assert(this[_isComplete]); |
this[_zone].scheduleMicrotask(dart.fn(() => { |
async._Future._propagateToListeners(this, listener); |
}, dart.void, [])); |
+ } |
+ } |
+ [_prependListeners](listeners) { |
+ if (listeners == null) return; |
+ if (dart.notNull(this[_mayAddListener])) { |
+ let existingListeners = dart.as(this[_resultOrListeners], async._FutureListener); |
+ this[_resultOrListeners] = listeners; |
+ if (existingListeners != null) { |
+ let cursor = listeners; |
+ while (cursor[_nextListener] != null) { |
+ cursor = cursor[_nextListener]; |
+ } |
+ cursor[_nextListener] = existingListeners; |
+ } |
} else { |
- listener[_nextListener] = dart.as(this[_resultOrListeners], async._FutureListener); |
- this[_resultOrListeners] = listener; |
+ if (dart.notNull(this[_isChained])) { |
+ let source = this[_chainSource]; |
+ if (!dart.notNull(source[_isComplete])) { |
+ source[_prependListeners](listeners); |
+ return; |
+ } |
+ this[_cloneResult](source); |
+ } |
+ dart.assert(this[_isComplete]); |
+ listeners = this[_reverseListeners](listeners); |
+ this[_zone].scheduleMicrotask(dart.fn(() => { |
+ async._Future._propagateToListeners(this, listeners); |
+ }, dart.void, [])); |
} |
} |
[_removeListeners]() { |
dart.assert(!dart.notNull(this[_isComplete])); |
let current = dart.as(this[_resultOrListeners], async._FutureListener); |
this[_resultOrListeners] = null; |
+ return this[_reverseListeners](current); |
+ } |
+ [_reverseListeners](listeners) { |
let prev = null; |
+ let current = listeners; |
while (current != null) { |
let next = current[_nextListener]; |
current[_nextListener] = prev; |
@@ -15351,25 +15520,37 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
static _chainForeignFuture(source, target) { |
dart.assert(!dart.notNull(target[_isComplete])); |
dart.assert(!dart.is(source, async._Future)); |
- target[_isChained] = true; |
- source.then(dart.dynamic)(dart.fn(value => { |
- dart.assert(target[_isChained]); |
- target[_completeWithValue](value); |
- }), {onError: dart.fn((error, stackTrace) => { |
- if (stackTrace === void 0) stackTrace = null; |
- dart.assert(target[_isChained]); |
- target[_completeError](error, dart.as(stackTrace, core.StackTrace)); |
- }, dart.dynamic, [dart.dynamic], [dart.dynamic])}); |
+ target[_setPendingComplete](); |
+ try { |
+ source.then(dart.dynamic)(dart.fn(value => { |
+ dart.assert(target[_isPendingComplete]); |
+ target[_completeWithValue](value); |
+ }), {onError: dart.fn((error, stackTrace) => { |
+ if (stackTrace === void 0) stackTrace = null; |
+ dart.assert(target[_isPendingComplete]); |
+ target[_completeError](error, dart.as(stackTrace, core.StackTrace)); |
+ }, dart.dynamic, [dart.dynamic], [dart.dynamic])}); |
+ } catch (e) { |
+ let s = dart.stackTrace(e); |
+ async.scheduleMicrotask(dart.fn(() => { |
+ target[_completeError](e, s); |
+ }, dart.void, [])); |
+ } |
+ |
} |
static _chainCoreFuture(source, target) { |
- dart.assert(!dart.notNull(target[_isComplete])); |
- dart.assert(dart.is(source, async._Future)); |
- target[_isChained] = true; |
- let listener = new async._FutureListener.chain(target); |
+ dart.assert(target[_mayAddListener]); |
+ while (dart.notNull(source[_isChained])) { |
+ source = source[_chainSource]; |
+ } |
if (dart.notNull(source[_isComplete])) { |
- async._Future._propagateToListeners(source, listener); |
+ let listeners = target[_removeListeners](); |
+ target[_cloneResult](source); |
+ async._Future._propagateToListeners(target, listeners); |
} else { |
- source[_addListener](listener); |
+ let listeners = dart.as(target[_resultOrListeners], async._FutureListener); |
+ target[_setChained](source); |
+ source[_prependListeners](listeners); |
} |
} |
[_complete](value) { |
@@ -15387,10 +15568,11 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
} |
[_completeWithValue](value) { |
+ dart.as(value, T); |
dart.assert(!dart.notNull(this[_isComplete])); |
dart.assert(!dart.is(value, async.Future)); |
let listeners = this[_removeListeners](); |
- this[_setValue](dart.as(value, T)); |
+ this[_setValue](value); |
async._Future._propagateToListeners(this, listeners); |
} |
[_completeError](error, stackTrace) { |
@@ -15402,13 +15584,12 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
[_asyncComplete](value) { |
dart.assert(!dart.notNull(this[_isComplete])); |
- if (value == null) { |
- } else if (dart.is(value, async.Future)) { |
+ if (dart.is(value, async.Future)) { |
let typedFuture = dart.as(value, async.Future$(T)); |
if (dart.is(typedFuture, async._Future)) { |
let coreFuture = dart.as(typedFuture, async._Future$(T)); |
- if (dart.notNull(coreFuture[_isComplete]) && dart.notNull(coreFuture[_hasError])) { |
- this[_markPendingCompletion](); |
+ if (dart.notNull(coreFuture[_hasError])) { |
+ this[_setPendingComplete](); |
this[_zone].scheduleMicrotask(dart.fn(() => { |
async._Future._chainCoreFuture(coreFuture, this); |
}, dart.void, [])); |
@@ -15419,17 +15600,16 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._Future._chainForeignFuture(typedFuture, this); |
} |
return; |
- } else { |
- let typedValue = dart.as(value, T); |
} |
- this[_markPendingCompletion](); |
+ let typedValue = dart.as(value, T); |
+ this[_setPendingComplete](); |
this[_zone].scheduleMicrotask(dart.fn(() => { |
- this[_completeWithValue](value); |
+ this[_completeWithValue](typedValue); |
}, dart.void, [])); |
} |
[_asyncCompleteError](error, stackTrace) { |
dart.assert(!dart.notNull(this[_isComplete])); |
- this[_markPendingCompletion](); |
+ this[_setPendingComplete](); |
this[_zone].scheduleMicrotask(dart.fn(() => { |
this[_completeError](error, stackTrace); |
}, dart.void, [])); |
@@ -15441,7 +15621,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (listeners == null) { |
if (dart.notNull(hasError)) { |
let asyncError = source[_error]; |
- source[_zone].handleUncaughtError(asyncError.error, asyncError.stackTrace); |
+ source[_zone].handleUncaughtError(dart.dynamic)(asyncError.error, asyncError.stackTrace); |
} |
return; |
} |
@@ -15452,122 +15632,101 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._Future._propagateToListeners(source, listener); |
} |
let listener = listeners; |
- let listenerHasValue = true; |
- let sourceValue = dart.notNull(hasError) ? null : source[_value]; |
- let listenerValueOrError = sourceValue; |
- let isPropagationAborted = false; |
+ let sourceResult = source[_resultOrListeners]; |
+ let listenerHasError = hasError; |
+ let listenerValueOrError = sourceResult; |
if (dart.notNull(hasError) || dart.notNull(listener.handlesValue) || dart.notNull(listener.handlesComplete)) { |
let zone = listener[_zone]; |
if (dart.notNull(hasError) && !dart.notNull(source[_zone].inSameErrorZone(zone))) { |
let asyncError = source[_error]; |
- source[_zone].handleUncaughtError(asyncError.error, asyncError.stackTrace); |
+ source[_zone].handleUncaughtError(dart.dynamic)(asyncError.error, asyncError.stackTrace); |
return; |
} |
let oldZone = null; |
if (!core.identical(async.Zone.current, zone)) { |
oldZone = async.Zone._enter(zone); |
} |
- function handleValueCallback() { |
+ function handleWhenCompleteCallback() { |
+ dart.assert(!dart.notNull(listener.handlesValue)); |
+ dart.assert(!dart.notNull(listener.handlesError)); |
+ let completeResult = null; |
try { |
- listenerValueOrError = zone.runUnary(listener[_onValue], sourceValue); |
- return true; |
+ completeResult = listener.handleWhenComplete(); |
} catch (e) { |
let s = dart.stackTrace(e); |
- listenerValueOrError = new async.AsyncError(e, s); |
- return false; |
- } |
- |
- } |
- dart.fn(handleValueCallback, core.bool, []); |
- function handleError() { |
- let asyncError = source[_error]; |
- let matchesTest = true; |
- if (dart.notNull(listener.hasErrorTest)) { |
- let test = listener[_errorTest]; |
- try { |
- matchesTest = dart.as(zone.runUnary(test, asyncError.error), core.bool); |
- } catch (e) { |
- let s = dart.stackTrace(e); |
- listenerValueOrError = core.identical(asyncError.error, e) ? asyncError : new async.AsyncError(e, s); |
- listenerHasValue = false; |
- return; |
+ if (dart.notNull(hasError) && core.identical(source[_error].error, e)) { |
+ listenerValueOrError = source[_error]; |
+ } else { |
+ listenerValueOrError = new async.AsyncError(e, s); |
} |
- |
+ listenerHasError = true; |
+ return; |
} |
- let errorCallback = listener[_onError]; |
- if (dart.notNull(matchesTest) && errorCallback != null) { |
- try { |
- if (dart.is(errorCallback, async.ZoneBinaryCallback)) { |
- listenerValueOrError = zone.runBinary(errorCallback, asyncError.error, asyncError.stackTrace); |
- } else { |
- listenerValueOrError = zone.runUnary(dart.as(errorCallback, dart.functionType(dart.dynamic, [dart.dynamic])), asyncError.error); |
+ |
+ if (dart.is(completeResult, async.Future)) { |
+ if (dart.is(completeResult, async._Future) && dart.notNull(completeResult[_isComplete])) { |
+ if (dart.notNull(completeResult[_hasError])) { |
+ listenerValueOrError = completeResult[_error]; |
+ listenerHasError = true; |
} |
- } catch (e) { |
- let s = dart.stackTrace(e); |
- listenerValueOrError = core.identical(asyncError.error, e) ? asyncError : new async.AsyncError(e, s); |
- listenerHasValue = false; |
return; |
} |
- |
- listenerHasValue = true; |
- } else { |
- listenerValueOrError = asyncError; |
- listenerHasValue = false; |
+ let originalSource = source; |
+ listenerValueOrError = completeResult.then(async._Future)(dart.fn(_ => originalSource, async._Future, [dart.dynamic])); |
+ listenerHasError = false; |
} |
} |
- dart.fn(handleError, dart.void, []); |
- function handleWhenCompleteCallback() { |
- let completeResult = null; |
+ dart.fn(handleWhenCompleteCallback, dart.void, []); |
+ function handleValueCallback() { |
try { |
- completeResult = zone.run(listener[_whenCompleteAction]); |
+ listenerValueOrError = listener.handleValue(sourceResult); |
} catch (e) { |
let s = dart.stackTrace(e); |
- if (dart.notNull(hasError) && core.identical(source[_error].error, e)) { |
+ listenerValueOrError = new async.AsyncError(e, s); |
+ listenerHasError = true; |
+ } |
+ |
+ } |
+ dart.fn(handleValueCallback, dart.void, []); |
+ function handleError() { |
+ try { |
+ let asyncError = source[_error]; |
+ if (dart.notNull(listener.matchesErrorTest(asyncError)) && dart.notNull(listener.hasErrorCallback)) { |
+ listenerValueOrError = listener.handleError(asyncError); |
+ listenerHasError = false; |
+ } |
+ } catch (e) { |
+ let s = dart.stackTrace(e); |
+ if (core.identical(source[_error].error, e)) { |
listenerValueOrError = source[_error]; |
} else { |
listenerValueOrError = new async.AsyncError(e, s); |
} |
- listenerHasValue = false; |
- return; |
+ listenerHasError = true; |
} |
- if (dart.is(completeResult, async.Future)) { |
- let result = listener.result; |
- result[_isChained] = true; |
- isPropagationAborted = true; |
- dart.dsend(completeResult, 'then', dart.fn(ignored => { |
- async._Future._propagateToListeners(source, new async._FutureListener.chain(result)); |
- }), {onError: dart.fn((error, stackTrace) => { |
- if (stackTrace === void 0) stackTrace = null; |
- if (!dart.is(completeResult, async._Future)) { |
- completeResult = new async._Future(); |
- dart.dsend(completeResult, _setError, error, stackTrace); |
- } |
- async._Future._propagateToListeners(dart.as(completeResult, async._Future), new async._FutureListener.chain(result)); |
- }, dart.dynamic, [dart.dynamic], [dart.dynamic])}); |
- } |
} |
- dart.fn(handleWhenCompleteCallback, dart.void, []); |
- if (!dart.notNull(hasError)) { |
+ dart.fn(handleError, dart.void, []); |
+ if (dart.notNull(listener.handlesComplete)) { |
+ handleWhenCompleteCallback(); |
+ } else if (!dart.notNull(hasError)) { |
if (dart.notNull(listener.handlesValue)) { |
- listenerHasValue = handleValueCallback(); |
+ handleValueCallback(); |
} |
} else { |
- handleError(); |
- } |
- if (dart.notNull(listener.handlesComplete)) { |
- handleWhenCompleteCallback(); |
+ if (dart.notNull(listener.handlesError)) { |
+ handleError(); |
+ } |
} |
if (oldZone != null) async.Zone._leave(oldZone); |
- if (isPropagationAborted) return; |
- if (dart.notNull(listenerHasValue) && !core.identical(sourceValue, listenerValueOrError) && dart.is(listenerValueOrError, async.Future)) { |
+ if (dart.is(listenerValueOrError, async.Future)) { |
let chainSource = dart.as(listenerValueOrError, async.Future); |
let result = listener.result; |
if (dart.is(chainSource, async._Future)) { |
if (dart.notNull(chainSource[_isComplete])) { |
- result[_isChained] = true; |
+ listeners = result[_removeListeners](); |
+ result[_cloneResult](chainSource); |
source = chainSource; |
- listeners = new async._FutureListener.chain(result); |
continue; |
} else { |
async._Future._chainCoreFuture(chainSource, result); |
@@ -15580,7 +15739,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
let result = listener.result; |
listeners = result[_removeListeners](); |
- if (dart.notNull(listenerHasValue)) { |
+ if (!dart.notNull(listenerHasError)) { |
result[_setValue](listenerValueOrError); |
} else { |
let asyncError = dart.as(listenerValueOrError, async.AsyncError); |
@@ -15592,8 +15751,8 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
timeout(timeLimit, opts) { |
let onTimeout = opts && 'onTimeout' in opts ? opts.onTimeout : null; |
dart.as(onTimeout, dart.functionType(dart.dynamic, [])); |
- if (dart.notNull(this[_isComplete])) return new async._Future.immediate(this); |
- let result = new async._Future(); |
+ if (dart.notNull(this[_isComplete])) return new (async._Future$(T)).immediate(this); |
+ let result = new (async._Future$(T))(); |
let timer = null; |
if (onTimeout == null) { |
timer = async.Timer.new(timeLimit, dart.fn(() => { |
@@ -15601,10 +15760,10 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
}, dart.void, [])); |
} else { |
let zone = async.Zone.current; |
- onTimeout = zone.registerCallback(onTimeout); |
+ onTimeout = zone.registerCallback(dart.dynamic)(onTimeout); |
timer = async.Timer.new(timeLimit, dart.fn(() => { |
try { |
- result[_complete](zone.run(onTimeout)); |
+ result[_complete](zone.run(dart.dynamic)(onTimeout)); |
} catch (e) { |
let s = dart.stackTrace(e); |
result[_completeError](e, s); |
@@ -15637,22 +15796,27 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
immediateError: [async._Future$(T), [dart.dynamic], [core.StackTrace]] |
}), |
methods: () => ({ |
- then: [S => [async.Future$(S), [dart.functionType(S, [T])], {onError: core.Function}]], |
- catchError: [async.Future, [core.Function], {test: dart.functionType(core.bool, [dart.dynamic])}], |
+ [_setChained]: [dart.void, [async._Future]], |
+ then: [E => [async.Future$(E), [dart.functionType(dart.dynamic, [T])], {onError: core.Function}]], |
+ [_thenNoZoneRegistration]: [E => [async.Future$(E), [dart.functionType(dart.dynamic, [T]), core.Function]]], |
+ catchError: [async.Future$(T), [core.Function], {test: dart.functionType(core.bool, [dart.dynamic])}], |
whenComplete: [async.Future$(T), [dart.functionType(dart.dynamic, [])]], |
asStream: [async.Stream$(T), []], |
- [_markPendingCompletion]: [dart.void, []], |
+ [_setPendingComplete]: [dart.void, []], |
[_setValue]: [dart.void, [T]], |
[_setErrorObject]: [dart.void, [async.AsyncError]], |
[_setError]: [dart.void, [core.Object, core.StackTrace]], |
+ [_cloneResult]: [dart.void, [async._Future]], |
[_addListener]: [dart.void, [async._FutureListener]], |
+ [_prependListeners]: [dart.void, [async._FutureListener]], |
[_removeListeners]: [async._FutureListener, []], |
+ [_reverseListeners]: [async._FutureListener, [async._FutureListener]], |
[_complete]: [dart.void, [dart.dynamic]], |
- [_completeWithValue]: [dart.void, [dart.dynamic]], |
+ [_completeWithValue]: [dart.void, [T]], |
[_completeError]: [dart.void, [dart.dynamic], [core.StackTrace]], |
[_asyncComplete]: [dart.void, [dart.dynamic]], |
[_asyncCompleteError]: [dart.void, [dart.dynamic, core.StackTrace]], |
- timeout: [async.Future, [core.Duration], {onTimeout: dart.functionType(dart.dynamic, [])}] |
+ timeout: [async.Future$(T), [core.Duration], {onTimeout: dart.functionType(dart.dynamic, [])}] |
}), |
statics: () => ({ |
_chainForeignFuture: [dart.void, [async.Future, async._Future]], |
@@ -15683,7 +15847,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._lastCallback = null; |
async._lastPriorityCallback = null; |
async._isInCallbackLoop = false; |
- async._asyncRunCallbackLoop = function() { |
+ async._microtaskLoop = function() { |
while (async._nextCallback != null) { |
async._lastPriorityCallback = null; |
let entry = async._nextCallback; |
@@ -15692,37 +15856,41 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
entry.callback(); |
} |
}; |
- dart.fn(async._asyncRunCallbackLoop, dart.void, []); |
- async._asyncRunCallback = function() { |
+ dart.fn(async._microtaskLoop, dart.void, []); |
+ async._startMicrotaskLoop = function() { |
async._isInCallbackLoop = true; |
try { |
- async._asyncRunCallbackLoop(); |
+ async._microtaskLoop(); |
} finally { |
async._lastPriorityCallback = null; |
async._isInCallbackLoop = false; |
- if (async._nextCallback != null) async._AsyncRun._scheduleImmediate(async._asyncRunCallback); |
+ if (async._nextCallback != null) { |
+ async._AsyncRun._scheduleImmediate(async._startMicrotaskLoop); |
+ } |
} |
}; |
- dart.fn(async._asyncRunCallback, dart.void, []); |
+ dart.fn(async._startMicrotaskLoop, dart.void, []); |
async._scheduleAsyncCallback = function(callback) { |
+ let newEntry = new async._AsyncCallbackEntry(callback); |
if (async._nextCallback == null) { |
- async._nextCallback = async._lastCallback = new async._AsyncCallbackEntry(dart.as(callback, async._AsyncCallback)); |
+ async._nextCallback = async._lastCallback = newEntry; |
if (!dart.notNull(async._isInCallbackLoop)) { |
- async._AsyncRun._scheduleImmediate(async._asyncRunCallback); |
+ async._AsyncRun._scheduleImmediate(async._startMicrotaskLoop); |
} |
} else { |
- let newEntry = new async._AsyncCallbackEntry(dart.as(callback, async._AsyncCallback)); |
async._lastCallback.next = newEntry; |
async._lastCallback = newEntry; |
} |
}; |
- dart.fn(async._scheduleAsyncCallback, dart.void, [dart.dynamic]); |
+ dart.fn(async._scheduleAsyncCallback, dart.void, [async._AsyncCallback]); |
async._schedulePriorityAsyncCallback = function(callback) { |
- let entry = new async._AsyncCallbackEntry(dart.as(callback, async._AsyncCallback)); |
if (async._nextCallback == null) { |
async._scheduleAsyncCallback(callback); |
async._lastPriorityCallback = async._lastCallback; |
- } else if (async._lastPriorityCallback == null) { |
+ return; |
+ } |
+ let entry = new async._AsyncCallbackEntry(callback); |
+ if (async._lastPriorityCallback == null) { |
entry.next = async._nextCallback; |
async._nextCallback = async._lastPriorityCallback = entry; |
} else { |
@@ -15734,18 +15902,25 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
} |
}; |
- dart.fn(async._schedulePriorityAsyncCallback, dart.void, [dart.dynamic]); |
+ dart.fn(async._schedulePriorityAsyncCallback, dart.void, [async._AsyncCallback]); |
+ const _scheduleMicrotask = Symbol('_scheduleMicrotask'); |
async.scheduleMicrotask = function(callback) { |
- if (core.identical(async._ROOT_ZONE, async.Zone.current)) { |
+ let currentZone = dart.as(async.Zone.current, async._Zone); |
+ if (core.identical(async._ROOT_ZONE, currentZone)) { |
async._rootScheduleMicrotask(null, null, async._ROOT_ZONE, callback); |
return; |
} |
- async.Zone.current.scheduleMicrotask(async.Zone.current.bindCallback(callback, {runGuarded: true})); |
+ let implementation = currentZone[_scheduleMicrotask]; |
+ if (core.identical(async._ROOT_ZONE, implementation.zone) && dart.notNull(async._ROOT_ZONE.inSameErrorZone(currentZone))) { |
+ async._rootScheduleMicrotask(null, null, currentZone, currentZone.registerCallback(dart.dynamic)(callback)); |
+ return; |
+ } |
+ async.Zone.current.scheduleMicrotask(async.Zone.current.bindCallback(dart.dynamic)(callback, {runGuarded: true})); |
}; |
dart.fn(async.scheduleMicrotask, dart.void, [dart.functionType(dart.void, [])]); |
async._AsyncRun = class _AsyncRun extends core.Object { |
static _scheduleImmediate(callback) { |
- dart.dcall(async._AsyncRun.scheduleImmediateClosure, callback); |
+ dart.dcall(async._AsyncRun._scheduleImmediateClosure, callback); |
} |
static _initializeScheduleImmediate() { |
if (self.scheduleImmediate != null) { |
@@ -15811,10 +15986,11 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
names: ['_scheduleImmediate', '_initializeScheduleImmediate', '_scheduleImmediateJsOverride', '_scheduleImmediateWithSetImmediate', '_scheduleImmediateWithTimer'] |
}); |
dart.defineLazy(async._AsyncRun, { |
- get scheduleImmediateClosure() { |
+ get _scheduleImmediateClosure() { |
return async._AsyncRun._initializeScheduleImmediate(); |
} |
}); |
+ async._TimerCallback = dart.typedef('_TimerCallback', () => dart.functionType(dart.void, [])); |
async.StreamSubscription$ = dart.generic(T => { |
class StreamSubscription extends core.Object {} |
return StreamSubscription; |
@@ -15831,7 +16007,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
class StreamView extends async.Stream$(T) { |
StreamView(stream) { |
this[_stream] = stream; |
- super.Stream(); |
+ super._internal(); |
} |
get isBroadcast() { |
return this[_stream].isBroadcast; |
@@ -15869,7 +16045,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async.StreamConsumer = async.StreamConsumer$(); |
async.StreamSink$ = dart.generic(S => { |
class StreamSink extends core.Object {} |
- StreamSink[dart.implements] = () => [async.StreamConsumer$(S), async.EventSink$(S)]; |
+ StreamSink[dart.implements] = () => [async.EventSink$(S), async.StreamConsumer$(S)]; |
return StreamSink; |
}); |
async.StreamSink = async.StreamSink$(); |
@@ -15932,6 +16108,8 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return _ControllerEventSinkWrapper; |
}); |
async._ControllerEventSinkWrapper = async._ControllerEventSinkWrapper$(); |
+ async.ControllerCallback = dart.typedef('ControllerCallback', () => dart.functionType(dart.void, [])); |
+ async.ControllerCancelCallback = dart.typedef('ControllerCancelCallback', () => dart.functionType(dart.dynamic, [])); |
async.StreamController$ = dart.generic(T => { |
class StreamController extends core.Object { |
static new(opts) { |
@@ -15940,9 +16118,6 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
let onResume = opts && 'onResume' in opts ? opts.onResume : null; |
let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null; |
let sync = opts && 'sync' in opts ? opts.sync : false; |
- if (onListen == null && onPause == null && onResume == null && onCancel == null) { |
- return dart.notNull(sync) ? new (async._NoCallbackSyncStreamController$(T))() : new (async._NoCallbackAsyncStreamController$(T))(); |
- } |
return dart.notNull(sync) ? new (async._SyncStreamController$(T))(onListen, onPause, onResume, onCancel) : new (async._AsyncStreamController$(T))(onListen, onPause, onResume, onCancel); |
} |
static broadcast(opts) { |
@@ -15962,6 +16137,12 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return StreamController; |
}); |
async.StreamController = async.StreamController$(); |
+ async.SynchronousStreamController$ = dart.generic(T => { |
+ class SynchronousStreamController extends core.Object {} |
+ SynchronousStreamController[dart.implements] = () => [async.StreamController$(T)]; |
+ return SynchronousStreamController; |
+ }); |
+ async.SynchronousStreamController = async.SynchronousStreamController$(); |
async._StreamControllerLifecycle$ = dart.generic(T => { |
class _StreamControllerLifecycle extends core.Object { |
[_recordPause](subscription) { |
@@ -15993,7 +16174,11 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
const _badEventState = Symbol('_badEventState'); |
async._StreamController$ = dart.generic(T => { |
class _StreamController extends core.Object { |
- _StreamController() { |
+ _StreamController(onListen, onPause, onResume, onCancel) { |
+ this.onListen = onListen; |
+ this.onPause = onPause; |
+ this.onResume = onResume; |
+ this.onCancel = onCancel; |
this[_varData] = null; |
this[_state] = async._StreamController._STATE_INITIAL; |
this[_doneFuture] = null; |
@@ -16028,28 +16213,28 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
get [_pendingEvents]() { |
dart.assert(this[_isInitialState]); |
if (!dart.notNull(this[_isAddingStream])) { |
- return dart.as(this[_varData], async._PendingEvents); |
+ return dart.as(this[_varData], async._PendingEvents$(T)); |
} |
- let state = dart.as(this[_varData], async._StreamControllerAddStreamState); |
- return dart.as(state.varData, async._PendingEvents); |
+ let state = dart.as(this[_varData], async._StreamControllerAddStreamState$(T)); |
+ return dart.as(state.varData, async._PendingEvents$(T)); |
} |
[_ensurePendingEvents]() { |
dart.assert(this[_isInitialState]); |
if (!dart.notNull(this[_isAddingStream])) { |
- if (this[_varData] == null) this[_varData] = new async._StreamImplEvents(); |
- return dart.as(this[_varData], async._StreamImplEvents); |
+ if (this[_varData] == null) this[_varData] = new (async._StreamImplEvents$(T))(); |
+ return dart.as(this[_varData], async._StreamImplEvents$(T)); |
} |
- let state = dart.as(this[_varData], async._StreamControllerAddStreamState); |
- if (state.varData == null) state.varData = new async._StreamImplEvents(); |
- return dart.as(state.varData, async._StreamImplEvents); |
+ let state = dart.as(this[_varData], async._StreamControllerAddStreamState$(T)); |
+ if (state.varData == null) state.varData = new (async._StreamImplEvents$(T))(); |
+ return dart.as(state.varData, async._StreamImplEvents$(T)); |
} |
get [_subscription]() { |
dart.assert(this.hasListener); |
if (dart.notNull(this[_isAddingStream])) { |
- let addState = dart.as(this[_varData], async._StreamControllerAddStreamState); |
- return dart.as(addState.varData, async._ControllerSubscription); |
+ let addState = dart.as(this[_varData], async._StreamControllerAddStreamState$(T)); |
+ return dart.as(addState.varData, async._ControllerSubscription$(T)); |
} |
- return dart.as(this[_varData], async._ControllerSubscription); |
+ return dart.as(this[_varData], async._ControllerSubscription$(T)); |
} |
[_badEventState]() { |
if (dart.notNull(this.isClosed)) { |
@@ -16063,7 +16248,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : true; |
if (!dart.notNull(this[_mayAddEvent])) dart.throw(this[_badEventState]()); |
if (dart.notNull(this[_isCanceled])) return new async._Future.immediate(null); |
- let addState = new async._StreamControllerAddStreamState(this, this[_varData], source, cancelOnError); |
+ let addState = new (async._StreamControllerAddStreamState$(T))(this, this[_varData], source, cancelOnError); |
this[_varData] = addState; |
this[_state] = (dart.notNull(this[_state]) | dart.notNull(async._StreamController._STATE_ADDSTREAM)) >>> 0; |
return addState.addStreamFuture; |
@@ -16084,8 +16269,8 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
addError(error, stackTrace) { |
if (stackTrace === void 0) stackTrace = null; |
- error = async._nonNullError(error); |
if (!dart.notNull(this[_mayAddEvent])) dart.throw(this[_badEventState]()); |
+ error = async._nonNullError(error); |
let replacement = async.Zone.current.errorCallback(error, stackTrace); |
if (replacement != null) { |
error = async._nonNullError(replacement.error); |
@@ -16126,7 +16311,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
[_close$]() { |
dart.assert(this[_isAddingStream]); |
- let addState = dart.as(this[_varData], async._StreamControllerAddStreamState); |
+ let addState = dart.as(this[_varData], async._StreamControllerAddStreamState$(T)); |
this[_varData] = addState.varData; |
this[_state] = (dart.notNull(this[_state]) & ~dart.notNull(async._StreamController._STATE_ADDSTREAM)) >>> 0; |
addState.complete(); |
@@ -16137,11 +16322,11 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (!dart.notNull(this[_isInitialState])) { |
dart.throw(new core.StateError("Stream has already been listened to.")); |
} |
- let subscription = new async._ControllerSubscription(this, onData, onError, onDone, cancelOnError); |
+ let subscription = new (async._ControllerSubscription$(T))(this, onData, onError, onDone, cancelOnError); |
let pendingEvents = this[_pendingEvents]; |
this[_state] = (dart.notNull(this[_state]) | dart.notNull(async._StreamController._STATE_SUBSCRIBED)) >>> 0; |
if (dart.notNull(this[_isAddingStream])) { |
- let addState = dart.as(this[_varData], async._StreamControllerAddStreamState); |
+ let addState = dart.as(this[_varData], async._StreamControllerAddStreamState$(T)); |
addState.varData = subscription; |
addState.resume(); |
} else { |
@@ -16149,23 +16334,23 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
subscription[_setPendingEvents](pendingEvents); |
subscription[_guardCallback](dart.fn(() => { |
- async._runGuarded(this[_onListen]); |
+ async._runGuarded(this.onListen); |
})); |
- return dart.as(subscription, async.StreamSubscription$(T)); |
+ return subscription; |
} |
[_recordCancel](subscription) { |
dart.as(subscription, async.StreamSubscription$(T)); |
let result = null; |
if (dart.notNull(this[_isAddingStream])) { |
- let addState = dart.as(this[_varData], async._StreamControllerAddStreamState); |
+ let addState = dart.as(this[_varData], async._StreamControllerAddStreamState$(T)); |
result = addState.cancel(); |
} |
this[_varData] = null; |
this[_state] = (dart.notNull(this[_state]) & ~(dart.notNull(async._StreamController._STATE_SUBSCRIBED) | dart.notNull(async._StreamController._STATE_ADDSTREAM)) | dart.notNull(async._StreamController._STATE_CANCELED)) >>> 0; |
- if (this[_onCancel] != null) { |
+ if (this.onCancel != null) { |
if (result == null) { |
try { |
- result = dart.as(this[_onCancel](), async.Future); |
+ result = dart.as(this.onCancel(), async.Future); |
} catch (e) { |
let s = dart.stackTrace(e); |
result = new async._Future(); |
@@ -16173,7 +16358,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
} else { |
- result = result.whenComplete(this[_onCancel]); |
+ result = result.whenComplete(this.onCancel); |
} |
} |
const complete = (function() { |
@@ -16192,25 +16377,25 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
[_recordPause](subscription) { |
dart.as(subscription, async.StreamSubscription$(T)); |
if (dart.notNull(this[_isAddingStream])) { |
- let addState = dart.as(this[_varData], async._StreamControllerAddStreamState); |
+ let addState = dart.as(this[_varData], async._StreamControllerAddStreamState$(T)); |
addState.pause(); |
} |
- async._runGuarded(this[_onPause]); |
+ async._runGuarded(this.onPause); |
} |
[_recordResume](subscription) { |
dart.as(subscription, async.StreamSubscription$(T)); |
if (dart.notNull(this[_isAddingStream])) { |
- let addState = dart.as(this[_varData], async._StreamControllerAddStreamState); |
+ let addState = dart.as(this[_varData], async._StreamControllerAddStreamState$(T)); |
addState.resume(); |
} |
- async._runGuarded(this[_onResume]); |
+ async._runGuarded(this.onResume); |
} |
} |
_StreamController[dart.implements] = () => [async.StreamController$(T), async._StreamControllerLifecycle$(T), async._EventSink$(T), async._EventDispatch$(T)]; |
dart.setSignature(_StreamController, { |
- constructors: () => ({_StreamController: [async._StreamController$(T), []]}), |
+ constructors: () => ({_StreamController: [async._StreamController$(T), [async.ControllerCallback, async.ControllerCallback, async.ControllerCallback, async.ControllerCancelCallback]]}), |
methods: () => ({ |
- [_ensurePendingEvents]: [async._StreamImplEvents, []], |
+ [_ensurePendingEvents]: [async._StreamImplEvents$(T), []], |
[_badEventState]: [core.Error, []], |
addStream: [async.Future, [async.Stream$(T)], {cancelOnError: core.bool}], |
[_ensureDoneFuture]: [async.Future, []], |
@@ -16249,7 +16434,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
this[_subscription][_close$](); |
} |
} |
- _SyncStreamControllerDispatch[dart.implements] = () => [async._StreamController$(T)]; |
+ _SyncStreamControllerDispatch[dart.implements] = () => [async._StreamController$(T), async.SynchronousStreamController$(T)]; |
dart.setSignature(_SyncStreamControllerDispatch, { |
methods: () => ({ |
[_sendData]: [dart.void, [T]], |
@@ -16264,7 +16449,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
class _AsyncStreamControllerDispatch extends core.Object { |
[_sendData](data) { |
dart.as(data, T); |
- this[_subscription][_addPending](new async._DelayedData(data)); |
+ this[_subscription][_addPending](new (async._DelayedData$(T))(data)); |
} |
[_sendError](error, stackTrace) { |
this[_subscription][_addPending](new async._DelayedError(error, stackTrace)); |
@@ -16286,68 +16471,22 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._AsyncStreamControllerDispatch = async._AsyncStreamControllerDispatch$(); |
async._AsyncStreamController$ = dart.generic(T => { |
class _AsyncStreamController extends dart.mixin(async._StreamController$(T), async._AsyncStreamControllerDispatch$(T)) { |
- _AsyncStreamController(onListen, onPause, onResume, onCancel) { |
- this[_onListen] = onListen; |
- this[_onPause] = onPause; |
- this[_onResume] = onResume; |
- this[_onCancel] = onCancel; |
- super._StreamController(); |
+ _AsyncStreamController() { |
+ super._StreamController(...arguments); |
} |
} |
- dart.setSignature(_AsyncStreamController, { |
- constructors: () => ({_AsyncStreamController: [async._AsyncStreamController$(T), [dart.functionType(dart.void, []), dart.functionType(dart.void, []), dart.functionType(dart.void, []), dart.functionType(dart.dynamic, [])]]}) |
- }); |
return _AsyncStreamController; |
}); |
async._AsyncStreamController = async._AsyncStreamController$(); |
async._SyncStreamController$ = dart.generic(T => { |
class _SyncStreamController extends dart.mixin(async._StreamController$(T), async._SyncStreamControllerDispatch$(T)) { |
- _SyncStreamController(onListen, onPause, onResume, onCancel) { |
- this[_onListen] = onListen; |
- this[_onPause] = onPause; |
- this[_onResume] = onResume; |
- this[_onCancel] = onCancel; |
- super._StreamController(); |
+ _SyncStreamController() { |
+ super._StreamController(...arguments); |
} |
} |
- dart.setSignature(_SyncStreamController, { |
- constructors: () => ({_SyncStreamController: [async._SyncStreamController$(T), [dart.functionType(dart.void, []), dart.functionType(dart.void, []), dart.functionType(dart.void, []), dart.functionType(dart.dynamic, [])]]}) |
- }); |
return _SyncStreamController; |
}); |
async._SyncStreamController = async._SyncStreamController$(); |
- async._NoCallbacks = class _NoCallbacks extends core.Object { |
- get [_onListen]() { |
- return null; |
- } |
- get [_onPause]() { |
- return null; |
- } |
- get [_onResume]() { |
- return null; |
- } |
- get [_onCancel]() { |
- return null; |
- } |
- }; |
- async._NoCallbackAsyncStreamController$ = dart.generic(T => { |
- class _NoCallbackAsyncStreamController extends dart.mixin(async._StreamController$(T), async._AsyncStreamControllerDispatch$(T), async._NoCallbacks) { |
- _NoCallbackAsyncStreamController() { |
- super._StreamController(...arguments); |
- } |
- } |
- return _NoCallbackAsyncStreamController; |
- }); |
- async._NoCallbackAsyncStreamController = async._NoCallbackAsyncStreamController$(); |
- async._NoCallbackSyncStreamController$ = dart.generic(T => { |
- class _NoCallbackSyncStreamController extends dart.mixin(async._StreamController$(T), async._SyncStreamControllerDispatch$(T), async._NoCallbacks) { |
- _NoCallbackSyncStreamController() { |
- super._StreamController(...arguments); |
- } |
- } |
- return _NoCallbackSyncStreamController; |
- }); |
- async._NoCallbackSyncStreamController = async._NoCallbackSyncStreamController$(); |
async._NotificationHandler = dart.typedef('_NotificationHandler', () => dart.functionType(dart.dynamic, [])); |
async._runGuarded = function(notificationHandler) { |
if (notificationHandler == null) return null; |
@@ -16357,7 +16496,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return null; |
} catch (e) { |
let s = dart.stackTrace(e); |
- async.Zone.current.handleUncaughtError(e, s); |
+ async.Zone.current.handleUncaughtError(dart.dynamic)(e, s); |
} |
}; |
@@ -16420,12 +16559,12 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
this.addSubscription.resume(); |
} |
cancel() { |
- let cancel2 = this.addSubscription.cancel(); |
- if (cancel2 == null) { |
+ let cancel = this.addSubscription.cancel(); |
+ if (cancel == null) { |
this.addStreamFuture[_asyncComplete](null); |
return null; |
} |
- return cancel2.whenComplete(dart.fn(() => { |
+ return cancel.whenComplete(dart.fn(() => { |
this.addStreamFuture[_asyncComplete](null); |
})); |
} |
@@ -16451,14 +16590,14 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
class _StreamControllerAddStreamState extends async._AddStreamState$(T) { |
_StreamControllerAddStreamState(controller, varData, source, cancelOnError) { |
this.varData = varData; |
- super._AddStreamState(dart.as(controller, async._EventSink$(T)), source, cancelOnError); |
+ super._AddStreamState(controller, source, cancelOnError); |
if (dart.notNull(controller.isPaused)) { |
this.addSubscription.pause(); |
} |
} |
} |
dart.setSignature(_StreamControllerAddStreamState, { |
- constructors: () => ({_StreamControllerAddStreamState: [async._StreamControllerAddStreamState$(T), [async._StreamController, dart.dynamic, async.Stream, core.bool]]}) |
+ constructors: () => ({_StreamControllerAddStreamState: [async._StreamControllerAddStreamState$(T), [async._StreamController$(T), dart.dynamic, async.Stream, core.bool]]}) |
}); |
return _StreamControllerAddStreamState; |
}); |
@@ -16473,7 +16612,11 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return _EventDispatch; |
}); |
async._EventDispatch = async._EventDispatch$(); |
- async._EventGenerator = dart.typedef('_EventGenerator', () => dart.functionType(async._PendingEvents, [])); |
+ async._EventGenerator$ = dart.generic(T => { |
+ const _EventGenerator = dart.typedef('_EventGenerator', () => dart.functionType(async._PendingEvents$(T), [])); |
+ return _EventGenerator; |
+ }); |
+ async._EventGenerator = async._EventGenerator$(); |
const _isUsed = Symbol('_isUsed'); |
async._GeneratedStreamImpl$ = dart.generic(T => { |
class _GeneratedStreamImpl extends async._StreamImpl$(T) { |
@@ -16492,7 +16635,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
} |
dart.setSignature(_GeneratedStreamImpl, { |
- constructors: () => ({_GeneratedStreamImpl: [async._GeneratedStreamImpl$(T), [async._EventGenerator]]}), |
+ constructors: () => ({_GeneratedStreamImpl: [async._GeneratedStreamImpl$(T), [async._EventGenerator$(T)]]}), |
methods: () => ({[_createSubscription]: [async.StreamSubscription$(T), [dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]]}) |
}); |
return _GeneratedStreamImpl; |
@@ -16500,47 +16643,52 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._GeneratedStreamImpl = async._GeneratedStreamImpl$(); |
const _iterator$ = Symbol('_iterator'); |
const _eventScheduled = Symbol('_eventScheduled'); |
- async._PendingEvents = class _PendingEvents extends core.Object { |
- _PendingEvents() { |
- this[_state] = async._PendingEvents._STATE_UNSCHEDULED; |
- } |
- get isScheduled() { |
- return this[_state] == async._PendingEvents._STATE_SCHEDULED; |
- } |
- get [_eventScheduled]() { |
- return dart.notNull(this[_state]) >= dart.notNull(async._PendingEvents._STATE_SCHEDULED); |
- } |
- schedule(dispatch) { |
- if (dart.notNull(this.isScheduled)) return; |
- dart.assert(!dart.notNull(this.isEmpty)); |
- if (dart.notNull(this[_eventScheduled])) { |
- dart.assert(this[_state] == async._PendingEvents._STATE_CANCELED); |
+ async._PendingEvents$ = dart.generic(T => { |
+ class _PendingEvents extends core.Object { |
+ _PendingEvents() { |
+ this[_state] = async._PendingEvents._STATE_UNSCHEDULED; |
+ } |
+ get isScheduled() { |
+ return this[_state] == async._PendingEvents._STATE_SCHEDULED; |
+ } |
+ get [_eventScheduled]() { |
+ return dart.notNull(this[_state]) >= dart.notNull(async._PendingEvents._STATE_SCHEDULED); |
+ } |
+ schedule(dispatch) { |
+ dart.as(dispatch, async._EventDispatch$(T)); |
+ if (dart.notNull(this.isScheduled)) return; |
+ dart.assert(!dart.notNull(this.isEmpty)); |
+ if (dart.notNull(this[_eventScheduled])) { |
+ dart.assert(this[_state] == async._PendingEvents._STATE_CANCELED); |
+ this[_state] = async._PendingEvents._STATE_SCHEDULED; |
+ return; |
+ } |
+ async.scheduleMicrotask(dart.fn(() => { |
+ let oldState = this[_state]; |
+ this[_state] = async._PendingEvents._STATE_UNSCHEDULED; |
+ if (oldState == async._PendingEvents._STATE_CANCELED) return; |
+ this.handleNext(dispatch); |
+ }, dart.void, [])); |
this[_state] = async._PendingEvents._STATE_SCHEDULED; |
- return; |
} |
- async.scheduleMicrotask(dart.fn(() => { |
- let oldState = this[_state]; |
- this[_state] = async._PendingEvents._STATE_UNSCHEDULED; |
- if (oldState == async._PendingEvents._STATE_CANCELED) return; |
- this.handleNext(dispatch); |
- }, dart.void, [])); |
- this[_state] = async._PendingEvents._STATE_SCHEDULED; |
- } |
- cancelSchedule() { |
- if (dart.notNull(this.isScheduled)) this[_state] = async._PendingEvents._STATE_CANCELED; |
+ cancelSchedule() { |
+ if (dart.notNull(this.isScheduled)) this[_state] = async._PendingEvents._STATE_CANCELED; |
+ } |
} |
- }; |
- dart.setSignature(async._PendingEvents, { |
- methods: () => ({ |
- schedule: [dart.void, [async._EventDispatch]], |
- cancelSchedule: [dart.void, []] |
- }) |
+ dart.setSignature(_PendingEvents, { |
+ methods: () => ({ |
+ schedule: [dart.void, [async._EventDispatch$(T)]], |
+ cancelSchedule: [dart.void, []] |
+ }) |
+ }); |
+ return _PendingEvents; |
}); |
+ async._PendingEvents = async._PendingEvents$(); |
async._PendingEvents._STATE_UNSCHEDULED = 0; |
async._PendingEvents._STATE_SCHEDULED = 1; |
async._PendingEvents._STATE_CANCELED = 3; |
async._IterablePendingEvents$ = dart.generic(T => { |
- class _IterablePendingEvents extends async._PendingEvents { |
+ class _IterablePendingEvents extends async._PendingEvents$(T) { |
_IterablePendingEvents(data) { |
this[_iterator$] = data[dartx.iterator]; |
super._PendingEvents(); |
@@ -16549,6 +16697,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return this[_iterator$] == null; |
} |
handleNext(dispatch) { |
+ dart.as(dispatch, async._EventDispatch$(T)); |
if (this[_iterator$] == null) { |
dart.throw(new core.StateError("No events pending.")); |
} |
@@ -16577,7 +16726,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
dart.setSignature(_IterablePendingEvents, { |
constructors: () => ({_IterablePendingEvents: [async._IterablePendingEvents$(T), [core.Iterable$(T)]]}), |
methods: () => ({ |
- handleNext: [dart.void, [async._EventDispatch]], |
+ handleNext: [dart.void, [async._EventDispatch$(T)]], |
clear: [dart.void, []] |
}) |
}); |
@@ -16595,7 +16744,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
dart.fn(async._nullDataHandler, dart.void, [dart.dynamic]); |
async._nullErrorHandler = function(error, stackTrace) { |
if (stackTrace === void 0) stackTrace = null; |
- async.Zone.current.handleUncaughtError(error, stackTrace); |
+ async.Zone.current.handleUncaughtError(dart.dynamic)(error, stackTrace); |
}; |
dart.lazyFn(async._nullErrorHandler, () => [dart.void, [dart.dynamic], [core.StackTrace]]); |
async._nullDoneHandler = function() { |
@@ -16660,43 +16809,48 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
constructors: () => ({_DelayedDone: [async._DelayedDone, []]}), |
methods: () => ({perform: [dart.void, [async._EventDispatch]]}) |
}); |
- async._StreamImplEvents = class _StreamImplEvents extends async._PendingEvents { |
- _StreamImplEvents() { |
- this.firstPendingEvent = null; |
- this.lastPendingEvent = null; |
- super._PendingEvents(); |
- } |
- get isEmpty() { |
- return this.lastPendingEvent == null; |
- } |
- add(event) { |
- if (this.lastPendingEvent == null) { |
- this.firstPendingEvent = this.lastPendingEvent = event; |
- } else { |
- this.lastPendingEvent = this.lastPendingEvent.next = event; |
- } |
- } |
- handleNext(dispatch) { |
- dart.assert(!dart.notNull(this.isScheduled)); |
- let event = this.firstPendingEvent; |
- this.firstPendingEvent = event.next; |
- if (this.firstPendingEvent == null) { |
+ async._StreamImplEvents$ = dart.generic(T => { |
+ class _StreamImplEvents extends async._PendingEvents$(T) { |
+ _StreamImplEvents() { |
+ this.firstPendingEvent = null; |
this.lastPendingEvent = null; |
+ super._PendingEvents(); |
+ } |
+ get isEmpty() { |
+ return this.lastPendingEvent == null; |
+ } |
+ add(event) { |
+ if (this.lastPendingEvent == null) { |
+ this.firstPendingEvent = this.lastPendingEvent = event; |
+ } else { |
+ this.lastPendingEvent = this.lastPendingEvent.next = event; |
+ } |
+ } |
+ handleNext(dispatch) { |
+ dart.as(dispatch, async._EventDispatch$(T)); |
+ dart.assert(!dart.notNull(this.isScheduled)); |
+ let event = this.firstPendingEvent; |
+ this.firstPendingEvent = event.next; |
+ if (this.firstPendingEvent == null) { |
+ this.lastPendingEvent = null; |
+ } |
+ event.perform(dispatch); |
+ } |
+ clear() { |
+ if (dart.notNull(this.isScheduled)) this.cancelSchedule(); |
+ this.firstPendingEvent = this.lastPendingEvent = null; |
} |
- event.perform(dispatch); |
- } |
- clear() { |
- if (dart.notNull(this.isScheduled)) this.cancelSchedule(); |
- this.firstPendingEvent = this.lastPendingEvent = null; |
} |
- }; |
- dart.setSignature(async._StreamImplEvents, { |
- methods: () => ({ |
- add: [dart.void, [async._DelayedEvent]], |
- handleNext: [dart.void, [async._EventDispatch]], |
- clear: [dart.void, []] |
- }) |
+ dart.setSignature(_StreamImplEvents, { |
+ methods: () => ({ |
+ add: [dart.void, [async._DelayedEvent]], |
+ handleNext: [dart.void, [async._EventDispatch$(T)]], |
+ clear: [dart.void, []] |
+ }) |
+ }); |
+ return _StreamImplEvents; |
}); |
+ async._StreamImplEvents = async._StreamImplEvents$(); |
const _unlink = Symbol('_unlink'); |
const _insertBefore = Symbol('_insertBefore'); |
async._BroadcastLinkedList = class _BroadcastLinkedList extends core.Object { |
@@ -16723,7 +16877,11 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
[_insertBefore]: [dart.void, [async._BroadcastLinkedList]] |
}) |
}); |
- async._broadcastCallback = dart.typedef('_broadcastCallback', () => dart.functionType(dart.void, [async.StreamSubscription])); |
+ async._BroadcastCallback$ = dart.generic(T => { |
+ const _BroadcastCallback = dart.typedef('_BroadcastCallback', () => dart.functionType(dart.void, [async.StreamSubscription$(T)])); |
+ return _BroadcastCallback; |
+ }); |
+ async._BroadcastCallback = async._BroadcastCallback$(); |
const _schedule = Symbol('_schedule'); |
const _isSent = Symbol('_isSent'); |
const _isScheduled = Symbol('_isScheduled'); |
@@ -16773,19 +16931,21 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
cancel() { |
return null; |
} |
- asFuture(futureValue) { |
- if (futureValue === void 0) futureValue = null; |
- let result = new async._Future(); |
- this[_onDone] = dart.fn(() => { |
- result[_completeWithValue](null); |
- }, dart.void, []); |
- return result; |
+ asFuture(E) { |
+ return futureValue => { |
+ if (futureValue === void 0) futureValue = null; |
+ let result = new (async._Future$(E))(); |
+ this[_onDone] = dart.fn(() => { |
+ result[_completeWithValue](null); |
+ }, dart.void, []); |
+ return result; |
+ }; |
} |
[_sendDone]() { |
this[_state] = (dart.notNull(this[_state]) & ~dart.notNull(async._DoneStreamSubscription._SCHEDULED)) >>> 0; |
if (dart.notNull(this.isPaused)) return; |
this[_state] = (dart.notNull(this[_state]) | dart.notNull(async._DoneStreamSubscription._DONE_SENT)) >>> 0; |
- if (this[_onDone] != null) this[_zone].runGuarded(this[_onDone]); |
+ if (this[_onDone] != null) this[_zone].runGuarded(dart.dynamic)(this[_onDone]); |
} |
} |
_DoneStreamSubscription[dart.implements] = () => [async.StreamSubscription$(T)]; |
@@ -16799,7 +16959,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
pause: [dart.void, [], [async.Future]], |
resume: [dart.void, []], |
cancel: [async.Future, []], |
- asFuture: [async.Future, [], [dart.dynamic]], |
+ asFuture: [E => [async.Future$(E), [], [E]]], |
[_sendDone]: [dart.void, []] |
}) |
}); |
@@ -16820,8 +16980,8 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
class _AsBroadcastStream extends async.Stream$(T) { |
_AsBroadcastStream(source, onListenHandler, onCancelHandler) { |
this[_source$] = source; |
- this[_onListenHandler] = dart.as(async.Zone.current.registerUnaryCallback(onListenHandler), async._broadcastCallback); |
- this[_onCancelHandler] = dart.as(async.Zone.current.registerUnaryCallback(onCancelHandler), async._broadcastCallback); |
+ this[_onListenHandler] = async.Zone.current.registerUnaryCallback(dart.dynamic, async.StreamSubscription$(T))(onListenHandler); |
+ this[_onCancelHandler] = async.Zone.current.registerUnaryCallback(dart.dynamic, async.StreamSubscription$(T))(onCancelHandler); |
this[_zone] = async.Zone.current; |
this[_controller$] = null; |
this[_subscription] = null; |
@@ -16849,7 +17009,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
[_onCancel]() { |
let shutdown = this[_controller$] == null || dart.notNull(this[_controller$].isClosed); |
if (this[_onCancelHandler] != null) { |
- this[_zone].runUnary(this[_onCancelHandler], new async._BroadcastSubscriptionWrapper(this)); |
+ this[_zone].runUnary(dart.dynamic, async._BroadcastSubscriptionWrapper$(T))(this[_onCancelHandler], new (async._BroadcastSubscriptionWrapper$(T))(this)); |
} |
if (shutdown) { |
if (this[_subscription] != null) { |
@@ -16860,7 +17020,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
[_onListen]() { |
if (this[_onListenHandler] != null) { |
- this[_zone].runUnary(this[_onListenHandler], new async._BroadcastSubscriptionWrapper(this)); |
+ this[_zone].runUnary(dart.dynamic, async._BroadcastSubscriptionWrapper$(T))(this[_onListenHandler], new (async._BroadcastSubscriptionWrapper$(T))(this)); |
} |
} |
[_cancelSubscription]() { |
@@ -16884,7 +17044,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
} |
dart.setSignature(_AsBroadcastStream, { |
- constructors: () => ({_AsBroadcastStream: [async._AsBroadcastStream$(T), [async.Stream$(T), dart.functionType(dart.void, [async.StreamSubscription]), dart.functionType(dart.void, [async.StreamSubscription])]]}), |
+ constructors: () => ({_AsBroadcastStream: [async._AsBroadcastStream$(T), [async.Stream$(T), dart.functionType(dart.void, [async.StreamSubscription$(T)]), dart.functionType(dart.void, [async.StreamSubscription$(T)])]]}), |
methods: () => ({ |
listen: [async.StreamSubscription$(T), [dart.functionType(dart.void, [T])], {onError: core.Function, onDone: dart.functionType(dart.void, []), cancelOnError: core.bool}], |
[_onCancel]: [dart.void, []], |
@@ -16927,9 +17087,11 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
get isPaused() { |
return this[_stream][_isSubscriptionPaused]; |
} |
- asFuture(futureValue) { |
- if (futureValue === void 0) futureValue = null; |
- dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription.")); |
+ asFuture(E) { |
+ return futureValue => { |
+ if (futureValue === void 0) futureValue = null; |
+ dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription.")); |
+ }; |
} |
} |
_BroadcastSubscriptionWrapper[dart.implements] = () => [async.StreamSubscription$(T)]; |
@@ -16942,7 +17104,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
pause: [dart.void, [], [async.Future]], |
resume: [dart.void, []], |
cancel: [async.Future, []], |
- asFuture: [async.Future, [], [dart.dynamic]] |
+ asFuture: [E => [async.Future$(E), [], [E]]] |
}) |
}); |
return _BroadcastSubscriptionWrapper; |
@@ -16973,8 +17135,9 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (this[_state] == async._StreamIteratorImpl._STATE_FOUND) { |
this[_state] = async._StreamIteratorImpl._STATE_MOVING; |
this[_current$1] = null; |
- this[_futureOrPrefetch] = new (async._Future$(core.bool))(); |
- return dart.as(this[_futureOrPrefetch], async.Future$(core.bool)); |
+ let result = new (async._Future$(core.bool))(); |
+ this[_futureOrPrefetch] = result; |
+ return result; |
} else { |
dart.assert(dart.notNull(this[_state]) >= dart.notNull(async._StreamIteratorImpl._STATE_EXTRA_DATA)); |
switch (this[_state]) { |
@@ -17079,6 +17242,30 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._StreamIteratorImpl._STATE_EXTRA_DATA = 3; |
async._StreamIteratorImpl._STATE_EXTRA_ERROR = 4; |
async._StreamIteratorImpl._STATE_EXTRA_DONE = 5; |
+ async._EmptyStream$ = dart.generic(T => { |
+ class _EmptyStream extends async.Stream$(T) { |
+ _EmptyStream() { |
+ super._internal(); |
+ } |
+ get isBroadcast() { |
+ return true; |
+ } |
+ listen(onData, opts) { |
+ dart.as(onData, dart.functionType(dart.void, [T])); |
+ let onError = opts && 'onError' in opts ? opts.onError : null; |
+ let onDone = opts && 'onDone' in opts ? opts.onDone : null; |
+ dart.as(onDone, dart.functionType(dart.void, [])); |
+ let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null; |
+ return new (async._DoneStreamSubscription$(T))(onDone); |
+ } |
+ } |
+ dart.setSignature(_EmptyStream, { |
+ constructors: () => ({_EmptyStream: [async._EmptyStream$(T), []]}), |
+ methods: () => ({listen: [async.StreamSubscription$(T), [dart.functionType(dart.void, [T])], {onError: core.Function, onDone: dart.functionType(dart.void, []), cancelOnError: core.bool}]}) |
+ }); |
+ return _EmptyStream; |
+ }); |
+ async._EmptyStream = async._EmptyStream$(); |
async._runUserCode = function(userCode, onSuccess, onError) { |
try { |
dart.dcall(onSuccess, userCode()); |
@@ -17114,10 +17301,13 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._cancelAndError(subscription, future, error, stackTrace); |
}; |
dart.lazyFn(async._cancelAndErrorWithReplacement, () => [dart.void, [async.StreamSubscription, async._Future, dart.dynamic, core.StackTrace]]); |
+ async._ErrorCallback = dart.typedef('_ErrorCallback', () => dart.functionType(dart.void, [dart.dynamic, core.StackTrace])); |
async._cancelAndErrorClosure = function(subscription, future) { |
- return dart.fn((error, stackTrace) => async._cancelAndError(subscription, future, error, stackTrace), dart.void, [dart.dynamic, core.StackTrace]); |
+ return dart.fn((error, stackTrace) => { |
+ async._cancelAndError(subscription, future, error, stackTrace); |
+ }, dart.void, [dart.dynamic, core.StackTrace]); |
}; |
- dart.fn(async._cancelAndErrorClosure, dart.dynamic, [async.StreamSubscription, async._Future]); |
+ dart.fn(async._cancelAndErrorClosure, async._ErrorCallback, [async.StreamSubscription, async._Future]); |
async._cancelAndValue = function(subscription, future, value) { |
let cancelFuture = subscription.cancel(); |
if (dart.is(cancelFuture, async.Future)) { |
@@ -17156,8 +17346,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
[_handleData](data, sink) { |
dart.as(data, S); |
dart.as(sink, async._EventSink$(T)); |
- let outputData = data; |
- sink[_add$](dart.as(outputData, T)); |
+ sink[_add$](dart.as(data, T)); |
} |
[_handleError](error, stackTrace, sink) { |
dart.as(sink, async._EventSink$(T)); |
@@ -17210,7 +17399,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (this[_subscription] != null) { |
let subscription = this[_subscription]; |
this[_subscription] = null; |
- subscription.cancel(); |
+ return subscription.cancel(); |
} |
return null; |
} |
@@ -17299,7 +17488,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
dart.as(sink, async._EventSink$(T)); |
let outputEvent = null; |
try { |
- outputEvent = dart.as(dart.dcall(this[_transform], inputEvent), T); |
+ outputEvent = this[_transform](inputEvent); |
} catch (e) { |
let s = dart.stackTrace(e); |
async._addErrorWithReplacement(sink, e, s); |
@@ -17390,21 +17579,29 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return _HandleErrorStream; |
}); |
async._HandleErrorStream = async._HandleErrorStream$(); |
- const _remaining$ = Symbol('_remaining'); |
+ const _count = Symbol('_count'); |
async._TakeStream$ = dart.generic(T => { |
class _TakeStream extends async._ForwardingStream$(T, T) { |
_TakeStream(source, count) { |
- this[_remaining$] = count; |
+ this[_count] = count; |
super._ForwardingStream(source); |
if (!(typeof count == 'number')) dart.throw(new core.ArgumentError(count)); |
} |
+ [_createSubscription](onData, onError, onDone, cancelOnError) { |
+ dart.as(onData, dart.functionType(dart.void, [T])); |
+ dart.as(onDone, dart.functionType(dart.void, [])); |
+ return new (async._StateStreamSubscription$(T))(this, onData, onError, onDone, cancelOnError, this[_count]); |
+ } |
[_handleData](inputEvent, sink) { |
dart.as(inputEvent, T); |
dart.as(sink, async._EventSink$(T)); |
- if (dart.notNull(this[_remaining$]) > 0) { |
+ let subscription = dart.as(sink, async._StateStreamSubscription$(T)); |
+ let count = subscription[_count]; |
+ if (dart.notNull(count) > 0) { |
sink[_add$](inputEvent); |
- this[_remaining$] = dart.notNull(this[_remaining$]) - 1; |
- if (this[_remaining$] == 0) { |
+ count = dart.notNull(count) - 1; |
+ subscription[_count] = count; |
+ if (count == 0) { |
sink[_close$](); |
} |
} |
@@ -17412,11 +17609,41 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
dart.setSignature(_TakeStream, { |
constructors: () => ({_TakeStream: [async._TakeStream$(T), [async.Stream$(T), core.int]]}), |
- methods: () => ({[_handleData]: [dart.void, [T, async._EventSink$(T)]]}) |
+ methods: () => ({ |
+ [_createSubscription]: [async.StreamSubscription$(T), [dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]], |
+ [_handleData]: [dart.void, [T, async._EventSink$(T)]] |
+ }) |
}); |
return _TakeStream; |
}); |
async._TakeStream = async._TakeStream$(); |
+ const _sharedState = Symbol('_sharedState'); |
+ const _flag = Symbol('_flag'); |
+ async._StateStreamSubscription$ = dart.generic(T => { |
+ class _StateStreamSubscription extends async._ForwardingStreamSubscription$(T, T) { |
+ _StateStreamSubscription(stream, onData, onError, onDone, cancelOnError, sharedState) { |
+ this[_sharedState] = sharedState; |
+ super._ForwardingStreamSubscription(stream, onData, onError, onDone, cancelOnError); |
+ } |
+ get [_flag]() { |
+ return dart.as(this[_sharedState], core.bool); |
+ } |
+ set [_flag](flag) { |
+ this[_sharedState] = flag; |
+ } |
+ get [_count]() { |
+ return dart.as(this[_sharedState], core.int); |
+ } |
+ set [_count](count) { |
+ this[_sharedState] = count; |
+ } |
+ } |
+ dart.setSignature(_StateStreamSubscription, { |
+ constructors: () => ({_StateStreamSubscription: [async._StateStreamSubscription$(T), [async._ForwardingStream$(T, T), dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool, dart.dynamic]]}) |
+ }); |
+ return _StateStreamSubscription; |
+ }); |
+ async._StateStreamSubscription = async._StateStreamSubscription$(); |
async._TakeWhileStream$ = dart.generic(T => { |
class _TakeWhileStream extends async._ForwardingStream$(T, T) { |
_TakeWhileStream(source, test) { |
@@ -17453,15 +17680,22 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._SkipStream$ = dart.generic(T => { |
class _SkipStream extends async._ForwardingStream$(T, T) { |
_SkipStream(source, count) { |
- this[_remaining$] = count; |
+ this[_count] = count; |
super._ForwardingStream(source); |
if (!(typeof count == 'number') || dart.notNull(count) < 0) dart.throw(new core.ArgumentError(count)); |
} |
+ [_createSubscription](onData, onError, onDone, cancelOnError) { |
+ dart.as(onData, dart.functionType(dart.void, [T])); |
+ dart.as(onDone, dart.functionType(dart.void, [])); |
+ return new (async._StateStreamSubscription$(T))(this, onData, onError, onDone, cancelOnError, this[_count]); |
+ } |
[_handleData](inputEvent, sink) { |
dart.as(inputEvent, T); |
dart.as(sink, async._EventSink$(T)); |
- if (dart.notNull(this[_remaining$]) > 0) { |
- this[_remaining$] = dart.notNull(this[_remaining$]) - 1; |
+ let subscription = dart.as(sink, async._StateStreamSubscription$(T)); |
+ let count = subscription[_count]; |
+ if (dart.notNull(count) > 0) { |
+ subscription[_count] = dart.notNull(count) - 1; |
return; |
} |
sink[_add$](inputEvent); |
@@ -17469,23 +17703,31 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
dart.setSignature(_SkipStream, { |
constructors: () => ({_SkipStream: [async._SkipStream$(T), [async.Stream$(T), core.int]]}), |
- methods: () => ({[_handleData]: [dart.void, [T, async._EventSink$(T)]]}) |
+ methods: () => ({ |
+ [_createSubscription]: [async.StreamSubscription$(T), [dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]], |
+ [_handleData]: [dart.void, [T, async._EventSink$(T)]] |
+ }) |
}); |
return _SkipStream; |
}); |
async._SkipStream = async._SkipStream$(); |
- const _hasFailed = Symbol('_hasFailed'); |
async._SkipWhileStream$ = dart.generic(T => { |
class _SkipWhileStream extends async._ForwardingStream$(T, T) { |
_SkipWhileStream(source, test) { |
this[_test] = test; |
- this[_hasFailed] = false; |
super._ForwardingStream(source); |
} |
+ [_createSubscription](onData, onError, onDone, cancelOnError) { |
+ dart.as(onData, dart.functionType(dart.void, [T])); |
+ dart.as(onDone, dart.functionType(dart.void, [])); |
+ return new (async._StateStreamSubscription$(T))(this, onData, onError, onDone, cancelOnError, false); |
+ } |
[_handleData](inputEvent, sink) { |
dart.as(inputEvent, T); |
dart.as(sink, async._EventSink$(T)); |
- if (dart.notNull(this[_hasFailed])) { |
+ let subscription = dart.as(sink, async._StateStreamSubscription$(T)); |
+ let hasFailed = subscription[_flag]; |
+ if (dart.notNull(hasFailed)) { |
sink[_add$](inputEvent); |
return; |
} |
@@ -17495,19 +17737,22 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} catch (e) { |
let s = dart.stackTrace(e); |
async._addErrorWithReplacement(sink, e, s); |
- this[_hasFailed] = true; |
+ subscription[_flag] = true; |
return; |
} |
if (!dart.notNull(satisfies)) { |
- this[_hasFailed] = true; |
+ subscription[_flag] = true; |
sink[_add$](inputEvent); |
} |
} |
} |
dart.setSignature(_SkipWhileStream, { |
constructors: () => ({_SkipWhileStream: [async._SkipWhileStream$(T), [async.Stream$(T), dart.functionType(core.bool, [T])]]}), |
- methods: () => ({[_handleData]: [dart.void, [T, async._EventSink$(T)]]}) |
+ methods: () => ({ |
+ [_createSubscription]: [async.StreamSubscription$(T), [dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]], |
+ [_handleData]: [dart.void, [T, async._EventSink$(T)]] |
+ }) |
}); |
return _SkipWhileStream; |
}); |
@@ -17730,7 +17975,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
dart.as(onDone, dart.functionType(dart.void, [])); |
let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null; |
cancelOnError = core.identical(true, cancelOnError); |
- let subscription = new (async._SinkTransformerStreamSubscription$(dart.dynamic, T))(this[_stream], this[_sinkMapper], onData, onError, onDone, cancelOnError); |
+ let subscription = new (async._SinkTransformerStreamSubscription$(S, T))(this[_stream], this[_sinkMapper], onData, onError, onDone, cancelOnError); |
return subscription; |
} |
} |
@@ -17766,14 +18011,14 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
add(data) { |
dart.as(data, S); |
- return this[_handleData](data, this[_sink]); |
+ this[_handleData](data, this[_sink]); |
} |
addError(error, stackTrace) { |
if (stackTrace === void 0) stackTrace = null; |
- return this[_handleError](error, stackTrace, this[_sink]); |
+ this[_handleError](error, stackTrace, this[_sink]); |
} |
close() { |
- return this[_handleDone](this[_sink]); |
+ this[_handleDone](this[_sink]); |
} |
} |
_HandlerEventSink[dart.implements] = () => [async.EventSink$(S)]; |
@@ -17810,7 +18055,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
sink.add(data); |
} |
static _defaultHandleError(error, stackTrace, sink) { |
- sink.addError(error); |
+ sink.addError(error, stackTrace); |
} |
static _defaultHandleDone(sink) { |
sink.close(); |
@@ -17886,13 +18131,14 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (dart.equals(async.Zone.current, async.Zone.ROOT)) { |
return async.Zone.current.createTimer(duration, callback); |
} |
- return async.Zone.current.createTimer(duration, async.Zone.current.bindCallback(callback, {runGuarded: true})); |
+ return async.Zone.current.createTimer(duration, async.Zone.current.bindCallback(dart.dynamic)(callback, {runGuarded: true})); |
} |
static periodic(duration, callback) { |
if (dart.equals(async.Zone.current, async.Zone.ROOT)) { |
return async.Zone.current.createPeriodicTimer(duration, callback); |
} |
- return async.Zone.current.createPeriodicTimer(duration, dart.as(async.Zone.current.bindUnaryCallback(callback, {runGuarded: true}), dart.functionType(dart.void, [async.Timer]))); |
+ let boundCallback = async.Zone.current.bindUnaryCallback(dart.dynamic, async.Timer)(callback, {runGuarded: true}); |
+ return async.Zone.current.createPeriodicTimer(duration, boundCallback); |
} |
static run(callback) { |
async.Timer.new(core.Duration.ZERO, callback); |
@@ -17920,31 +18166,75 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
}), |
names: ['run', '_createTimer', '_createPeriodicTimer'] |
}); |
- async.ZoneCallback = dart.typedef('ZoneCallback', () => dart.functionType(dart.dynamic, [])); |
- async.ZoneUnaryCallback = dart.typedef('ZoneUnaryCallback', () => dart.functionType(dart.dynamic, [dart.dynamic])); |
- async.ZoneBinaryCallback = dart.typedef('ZoneBinaryCallback', () => dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])); |
- async.HandleUncaughtErrorHandler = dart.typedef('HandleUncaughtErrorHandler', () => dart.functionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace])); |
- async.RunHandler = dart.typedef('RunHandler', () => dart.functionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [])])); |
- async.RunUnaryHandler = dart.typedef('RunUnaryHandler', () => dart.functionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic])); |
- async.RunBinaryHandler = dart.typedef('RunBinaryHandler', () => dart.functionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic])); |
- async.RegisterCallbackHandler = dart.typedef('RegisterCallbackHandler', () => dart.functionType(async.ZoneCallback, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [])])); |
- async.RegisterUnaryCallbackHandler = dart.typedef('RegisterUnaryCallbackHandler', () => dart.functionType(async.ZoneUnaryCallback, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic])])); |
- async.RegisterBinaryCallbackHandler = dart.typedef('RegisterBinaryCallbackHandler', () => dart.functionType(async.ZoneBinaryCallback, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])])); |
+ async.ZoneCallback$ = dart.generic(R => { |
+ const ZoneCallback = dart.typedef('ZoneCallback', () => dart.functionType(R, [])); |
+ return ZoneCallback; |
+ }); |
+ async.ZoneCallback = async.ZoneCallback$(); |
+ async.ZoneUnaryCallback$ = dart.generic((R, T) => { |
+ const ZoneUnaryCallback = dart.typedef('ZoneUnaryCallback', () => dart.functionType(R, [T])); |
+ return ZoneUnaryCallback; |
+ }); |
+ async.ZoneUnaryCallback = async.ZoneUnaryCallback$(); |
+ async.ZoneBinaryCallback$ = dart.generic((R, T1, T2) => { |
+ const ZoneBinaryCallback = dart.typedef('ZoneBinaryCallback', () => dart.functionType(R, [T1, T2])); |
+ return ZoneBinaryCallback; |
+ }); |
+ async.ZoneBinaryCallback = async.ZoneBinaryCallback$(); |
+ async.HandleUncaughtErrorHandler$ = dart.generic(R => { |
+ const HandleUncaughtErrorHandler = dart.typedef('HandleUncaughtErrorHandler', () => dart.functionType(R, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace])); |
+ return HandleUncaughtErrorHandler; |
+ }); |
+ async.HandleUncaughtErrorHandler = async.HandleUncaughtErrorHandler$(); |
+ async.RunHandler$ = dart.generic(R => { |
+ const RunHandler = dart.typedef('RunHandler', () => dart.functionType(R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])])); |
+ return RunHandler; |
+ }); |
+ async.RunHandler = async.RunHandler$(); |
+ async.RunUnaryHandler$ = dart.generic((R, T) => { |
+ const RunUnaryHandler = dart.typedef('RunUnaryHandler', () => dart.functionType(R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T]), T])); |
+ return RunUnaryHandler; |
+ }); |
+ async.RunUnaryHandler = async.RunUnaryHandler$(); |
+ async.RunBinaryHandler$ = dart.generic((R, T1, T2) => { |
+ const RunBinaryHandler = dart.typedef('RunBinaryHandler', () => dart.functionType(R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2]), T1, T2])); |
+ return RunBinaryHandler; |
+ }); |
+ async.RunBinaryHandler = async.RunBinaryHandler$(); |
+ async.RegisterCallbackHandler$ = dart.generic(R => { |
+ const RegisterCallbackHandler = dart.typedef('RegisterCallbackHandler', () => dart.functionType(async.ZoneCallback$(R), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])])); |
+ return RegisterCallbackHandler; |
+ }); |
+ async.RegisterCallbackHandler = async.RegisterCallbackHandler$(); |
+ async.RegisterUnaryCallbackHandler$ = dart.generic((R, T) => { |
+ const RegisterUnaryCallbackHandler = dart.typedef('RegisterUnaryCallbackHandler', () => dart.functionType(async.ZoneUnaryCallback$(R, T), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T])])); |
+ return RegisterUnaryCallbackHandler; |
+ }); |
+ async.RegisterUnaryCallbackHandler = async.RegisterUnaryCallbackHandler$(); |
+ async.RegisterBinaryCallbackHandler$ = dart.generic((R, T1, T2) => { |
+ const RegisterBinaryCallbackHandler = dart.typedef('RegisterBinaryCallbackHandler', () => dart.functionType(async.ZoneBinaryCallback$(R, T1, T2), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2])])); |
+ return RegisterBinaryCallbackHandler; |
+ }); |
+ async.RegisterBinaryCallbackHandler = async.RegisterBinaryCallbackHandler$(); |
async.ErrorCallbackHandler = dart.typedef('ErrorCallbackHandler', () => dart.functionType(async.AsyncError, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])); |
- async.ScheduleMicrotaskHandler = dart.typedef('ScheduleMicrotaskHandler', () => dart.functionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [])])); |
+ async.ScheduleMicrotaskHandler = dart.typedef('ScheduleMicrotaskHandler', () => dart.functionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.void, [])])); |
async.CreateTimerHandler = dart.typedef('CreateTimerHandler', () => dart.functionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.functionType(dart.void, [])])); |
async.CreatePeriodicTimerHandler = dart.typedef('CreatePeriodicTimerHandler', () => dart.functionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.functionType(dart.void, [async.Timer])])); |
async.PrintHandler = dart.typedef('PrintHandler', () => dart.functionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String])); |
async.ForkHandler = dart.typedef('ForkHandler', () => dart.functionType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map])); |
- async._ZoneFunction = class _ZoneFunction extends core.Object { |
- _ZoneFunction(zone, func) { |
- this.zone = zone; |
- this.function = func; |
+ async._ZoneFunction$ = dart.generic(T => { |
+ class _ZoneFunction extends core.Object { |
+ _ZoneFunction(zone, func) { |
+ this.zone = zone; |
+ this.function = func; |
+ } |
} |
- }; |
- dart.setSignature(async._ZoneFunction, { |
- constructors: () => ({_ZoneFunction: [async._ZoneFunction, [async._Zone, core.Function]]}) |
+ dart.setSignature(_ZoneFunction, { |
+ constructors: () => ({_ZoneFunction: [async._ZoneFunction$(T), [async._Zone, T]]}) |
+ }); |
+ return _ZoneFunction; |
}); |
+ async._ZoneFunction = async._ZoneFunction$(); |
async.ZoneSpecification = class ZoneSpecification extends core.Object { |
static new(opts) { |
return new async._ZoneSpecification(opts); |
@@ -17963,13 +18253,13 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
let createPeriodicTimer = opts && 'createPeriodicTimer' in opts ? opts.createPeriodicTimer : null; |
let print = opts && 'print' in opts ? opts.print : null; |
let fork = opts && 'fork' in opts ? opts.fork : null; |
- return async.ZoneSpecification.new({handleUncaughtError: handleUncaughtError != null ? handleUncaughtError : other.handleUncaughtError, run: run != null ? run : other.run, runUnary: runUnary != null ? runUnary : other.runUnary, runBinary: runBinary != null ? runBinary : other.runBinary, registerCallback: registerCallback != null ? registerCallback : other.registerCallback, registerUnaryCallback: registerUnaryCallback != null ? registerUnaryCallback : other.registerUnaryCallback, registerBinaryCallback: registerBinaryCallback != null ? registerBinaryCallback : other.registerBinaryCallback, errorCallback: errorCallback != null ? errorCallback : other.errorCallback, scheduleMicrotask: scheduleMicrotask != null ? scheduleMicrotask : other.scheduleMicrotask, createTimer: createTimer != null ? createTimer : other.createTimer, createPeriodicTimer: createPeriodicTimer != null ? createPeriodicTimer : other.createPeriodicTimer, print: print != null ? print : other.print, fork: fork != null ? fork : other.fork}); |
+ return async.ZoneSpecification.new({handleUncaughtError: (handleUncaughtError != null ? handleUncaughtError : other.handleUncaughtError), run: (run != null ? run : other.run), runUnary: (runUnary != null ? runUnary : other.runUnary), runBinary: (runBinary != null ? runBinary : other.runBinary), registerCallback: (registerCallback != null ? registerCallback : other.registerCallback), registerUnaryCallback: (registerUnaryCallback != null ? registerUnaryCallback : other.registerUnaryCallback), registerBinaryCallback: (registerBinaryCallback != null ? registerBinaryCallback : other.registerBinaryCallback), errorCallback: (errorCallback != null ? errorCallback : other.errorCallback), scheduleMicrotask: (scheduleMicrotask != null ? scheduleMicrotask : other.scheduleMicrotask), createTimer: (createTimer != null ? createTimer : other.createTimer), createPeriodicTimer: (createPeriodicTimer != null ? createPeriodicTimer : other.createPeriodicTimer), print: (print != null ? print : other.print), fork: (fork != null ? fork : other.fork)}); |
} |
}; |
dart.setSignature(async.ZoneSpecification, { |
constructors: () => ({ |
- new: [async.ZoneSpecification, [], {handleUncaughtError: dart.functionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace]), run: dart.functionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [])]), runUnary: dart.functionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic]), runBinary: dart.functionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic]), registerCallback: dart.functionType(async.ZoneCallback, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [])]), registerUnaryCallback: dart.functionType(async.ZoneUnaryCallback, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic])]), registerBinaryCallback: dart.functionType(async.ZoneBinaryCallback, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])]), errorCallback: dart.functionType(async.AsyncError, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace]), scheduleMicrotask: dart.functionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [])]), createTimer: dart.functionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.functionType(dart.void, [])]), createPeriodicTimer: dart.functionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.functionType(dart.void, [async.Timer])]), print: dart.functionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String]), fork: dart.functionType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map])}], |
- from: [async.ZoneSpecification, [async.ZoneSpecification], {handleUncaughtError: dart.functionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace]), run: dart.functionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [])]), runUnary: dart.functionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic]), runBinary: dart.functionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic]), registerCallback: dart.functionType(async.ZoneCallback, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [])]), registerUnaryCallback: dart.functionType(async.ZoneUnaryCallback, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic])]), registerBinaryCallback: dart.functionType(async.ZoneBinaryCallback, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])]), errorCallback: dart.functionType(async.AsyncError, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace]), scheduleMicrotask: dart.functionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [])]), createTimer: dart.functionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.functionType(dart.void, [])]), createPeriodicTimer: dart.functionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.functionType(dart.void, [async.Timer])]), print: dart.functionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String]), fork: dart.functionType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map])}] |
+ new: [async.ZoneSpecification, [], {handleUncaughtError: async.HandleUncaughtErrorHandler, run: async.RunHandler, runUnary: async.RunUnaryHandler, runBinary: async.RunBinaryHandler, registerCallback: async.RegisterCallbackHandler, registerUnaryCallback: async.RegisterUnaryCallbackHandler, registerBinaryCallback: async.RegisterBinaryCallbackHandler, errorCallback: async.ErrorCallbackHandler, scheduleMicrotask: async.ScheduleMicrotaskHandler, createTimer: async.CreateTimerHandler, createPeriodicTimer: async.CreatePeriodicTimerHandler, print: async.PrintHandler, fork: async.ForkHandler}], |
+ from: [async.ZoneSpecification, [async.ZoneSpecification], {handleUncaughtError: async.HandleUncaughtErrorHandler, run: async.RunHandler, runUnary: async.RunUnaryHandler, runBinary: async.RunBinaryHandler, registerCallback: async.RegisterCallbackHandler, registerUnaryCallback: async.RegisterUnaryCallbackHandler, registerBinaryCallback: async.RegisterBinaryCallbackHandler, errorCallback: async.ErrorCallbackHandler, scheduleMicrotask: async.ScheduleMicrotaskHandler, createTimer: async.CreateTimerHandler, createPeriodicTimer: async.CreatePeriodicTimerHandler, print: async.PrintHandler, fork: async.ForkHandler}] |
}) |
}); |
async._ZoneSpecification = class _ZoneSpecification extends core.Object { |
@@ -18058,7 +18348,6 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
const _registerUnaryCallback = Symbol('_registerUnaryCallback'); |
const _registerBinaryCallback = Symbol('_registerBinaryCallback'); |
const _errorCallback = Symbol('_errorCallback'); |
- const _scheduleMicrotask = Symbol('_scheduleMicrotask'); |
const _createTimer = Symbol('_createTimer'); |
const _createPeriodicTimer = Symbol('_createPeriodicTimer'); |
const _print = Symbol('_print'); |
@@ -18067,84 +18356,111 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
_ZoneDelegate(delegationTarget) { |
this[_delegationTarget] = delegationTarget; |
} |
- handleUncaughtError(zone, error, stackTrace) { |
- let implementation = this[_delegationTarget][_handleUncaughtError]; |
- let implZone = implementation.zone; |
- return dart.dcall(implementation.function, implZone, async._parentDelegate(implZone), zone, error, stackTrace); |
+ handleUncaughtError(R) { |
+ return (zone, error, stackTrace) => { |
+ let implementation = this[_delegationTarget][_handleUncaughtError]; |
+ let implZone = implementation.zone; |
+ let handler = implementation.function; |
+ return dart.as(dart.dcall(handler, implZone, async._parentDelegate(implZone), zone, error, stackTrace), R); |
+ }; |
} |
- run(zone, f) { |
- let implementation = this[_delegationTarget][_run]; |
- let implZone = implementation.zone; |
- return dart.dcall(implementation.function, implZone, async._parentDelegate(implZone), zone, f); |
+ run(R) { |
+ return (zone, f) => { |
+ let implementation = this[_delegationTarget][_run]; |
+ let implZone = implementation.zone; |
+ let handler = implementation.function; |
+ return dart.as(handler(implZone, async._parentDelegate(implZone), zone, f), R); |
+ }; |
} |
- runUnary(zone, f, arg) { |
- let implementation = this[_delegationTarget][_runUnary]; |
- let implZone = implementation.zone; |
- return dart.dcall(implementation.function, implZone, async._parentDelegate(implZone), zone, f, arg); |
+ runUnary(R, T) { |
+ return (zone, f, arg) => { |
+ let implementation = this[_delegationTarget][_runUnary]; |
+ let implZone = implementation.zone; |
+ let handler = implementation.function; |
+ return dart.as(dart.dcall(handler, implZone, async._parentDelegate(implZone), zone, f, arg), R); |
+ }; |
} |
- runBinary(zone, f, arg1, arg2) { |
- let implementation = this[_delegationTarget][_runBinary]; |
- let implZone = implementation.zone; |
- return dart.dcall(implementation.function, implZone, async._parentDelegate(implZone), zone, f, arg1, arg2); |
+ runBinary(R, T1, T2) { |
+ return (zone, f, arg1, arg2) => { |
+ let implementation = this[_delegationTarget][_runBinary]; |
+ let implZone = implementation.zone; |
+ let handler = implementation.function; |
+ return dart.as(dart.dcall(handler, implZone, async._parentDelegate(implZone), zone, f, arg1, arg2), R); |
+ }; |
} |
- registerCallback(zone, f) { |
- let implementation = this[_delegationTarget][_registerCallback]; |
- let implZone = implementation.zone; |
- return dart.as(dart.dcall(implementation.function, implZone, async._parentDelegate(implZone), zone, f), async.ZoneCallback); |
+ registerCallback(R) { |
+ return (zone, f) => { |
+ let implementation = this[_delegationTarget][_registerCallback]; |
+ let implZone = implementation.zone; |
+ let handler = implementation.function; |
+ return dart.as(handler(implZone, async._parentDelegate(implZone), zone, f), async.ZoneCallback$(R)); |
+ }; |
} |
- registerUnaryCallback(zone, f) { |
- let implementation = this[_delegationTarget][_registerUnaryCallback]; |
- let implZone = implementation.zone; |
- return dart.as(dart.dcall(implementation.function, implZone, async._parentDelegate(implZone), zone, f), async.ZoneUnaryCallback); |
+ registerUnaryCallback(R, T) { |
+ return (zone, f) => { |
+ let implementation = this[_delegationTarget][_registerUnaryCallback]; |
+ let implZone = implementation.zone; |
+ let handler = implementation.function; |
+ return dart.as(handler(implZone, async._parentDelegate(implZone), zone, f), async.ZoneUnaryCallback$(R, T)); |
+ }; |
} |
- registerBinaryCallback(zone, f) { |
- let implementation = this[_delegationTarget][_registerBinaryCallback]; |
- let implZone = implementation.zone; |
- return dart.as(dart.dcall(implementation.function, implZone, async._parentDelegate(implZone), zone, f), async.ZoneBinaryCallback); |
+ registerBinaryCallback(R, T1, T2) { |
+ return (zone, f) => { |
+ let implementation = this[_delegationTarget][_registerBinaryCallback]; |
+ let implZone = implementation.zone; |
+ let handler = implementation.function; |
+ return dart.as(handler(implZone, async._parentDelegate(implZone), zone, f), async.ZoneBinaryCallback$(R, T1, T2)); |
+ }; |
} |
errorCallback(zone, error, stackTrace) { |
let implementation = this[_delegationTarget][_errorCallback]; |
let implZone = implementation.zone; |
if (core.identical(implZone, async._ROOT_ZONE)) return null; |
- return dart.as(dart.dcall(implementation.function, implZone, async._parentDelegate(implZone), zone, error, stackTrace), async.AsyncError); |
+ let handler = implementation.function; |
+ return handler(implZone, async._parentDelegate(implZone), zone, error, stackTrace); |
} |
scheduleMicrotask(zone, f) { |
let implementation = this[_delegationTarget][_scheduleMicrotask]; |
let implZone = implementation.zone; |
- dart.dcall(implementation.function, implZone, async._parentDelegate(implZone), zone, f); |
+ let handler = implementation.function; |
+ handler(implZone, async._parentDelegate(implZone), zone, f); |
} |
createTimer(zone, duration, f) { |
let implementation = this[_delegationTarget][_createTimer]; |
let implZone = implementation.zone; |
- return dart.as(dart.dcall(implementation.function, implZone, async._parentDelegate(implZone), zone, duration, f), async.Timer); |
+ let handler = implementation.function; |
+ return handler(implZone, async._parentDelegate(implZone), zone, duration, f); |
} |
createPeriodicTimer(zone, period, f) { |
let implementation = this[_delegationTarget][_createPeriodicTimer]; |
let implZone = implementation.zone; |
- return dart.as(dart.dcall(implementation.function, implZone, async._parentDelegate(implZone), zone, period, f), async.Timer); |
+ let handler = implementation.function; |
+ return handler(implZone, async._parentDelegate(implZone), zone, period, f); |
} |
print(zone, line) { |
let implementation = this[_delegationTarget][_print]; |
let implZone = implementation.zone; |
- dart.dcall(implementation.function, implZone, async._parentDelegate(implZone), zone, line); |
+ let handler = implementation.function; |
+ handler(implZone, async._parentDelegate(implZone), zone, line); |
} |
fork(zone, specification, zoneValues) { |
let implementation = this[_delegationTarget][_fork]; |
let implZone = implementation.zone; |
- return dart.as(dart.dcall(implementation.function, implZone, async._parentDelegate(implZone), zone, specification, zoneValues), async.Zone); |
+ let handler = implementation.function; |
+ return handler(implZone, async._parentDelegate(implZone), zone, specification, zoneValues); |
} |
}; |
async._ZoneDelegate[dart.implements] = () => [async.ZoneDelegate]; |
dart.setSignature(async._ZoneDelegate, { |
constructors: () => ({_ZoneDelegate: [async._ZoneDelegate, [async._Zone]]}), |
methods: () => ({ |
- handleUncaughtError: [dart.dynamic, [async.Zone, dart.dynamic, core.StackTrace]], |
- run: [dart.dynamic, [async.Zone, dart.functionType(dart.dynamic, [])]], |
- runUnary: [dart.dynamic, [async.Zone, dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic]], |
- runBinary: [dart.dynamic, [async.Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic]], |
- registerCallback: [async.ZoneCallback, [async.Zone, dart.functionType(dart.dynamic, [])]], |
- registerUnaryCallback: [async.ZoneUnaryCallback, [async.Zone, dart.functionType(dart.dynamic, [dart.dynamic])]], |
- registerBinaryCallback: [async.ZoneBinaryCallback, [async.Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])]], |
+ handleUncaughtError: [R => [R, [async.Zone, dart.dynamic, core.StackTrace]]], |
+ run: [R => [R, [async.Zone, dart.functionType(R, [])]]], |
+ runUnary: [(R, T) => [R, [async.Zone, dart.functionType(R, [T]), T]]], |
+ runBinary: [(R, T1, T2) => [R, [async.Zone, dart.functionType(R, [T1, T2]), T1, T2]]], |
+ registerCallback: [R => [async.ZoneCallback$(R), [async.Zone, dart.functionType(R, [])]]], |
+ registerUnaryCallback: [(R, T) => [async.ZoneUnaryCallback$(R, T), [async.Zone, dart.functionType(R, [T])]]], |
+ registerBinaryCallback: [(R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [async.Zone, dart.functionType(R, [T1, T2])]]], |
errorCallback: [async.AsyncError, [async.Zone, core.Object, core.StackTrace]], |
scheduleMicrotask: [dart.void, [async.Zone, dart.functionType(dart.dynamic, [])]], |
createTimer: [async.Timer, [async.Zone, core.Duration, dart.functionType(dart.void, [])]], |
@@ -18176,8 +18492,8 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
_CustomZone(parent, specification, map) { |
this.parent = parent; |
this[_map] = map; |
- this[_runUnary] = null; |
this[_run] = null; |
+ this[_runUnary] = null; |
this[_runBinary] = null; |
this[_registerCallback] = null; |
this[_registerUnaryCallback] = null; |
@@ -18191,76 +18507,88 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
this[_handleUncaughtError] = null; |
this[_delegateCache] = null; |
super._Zone(); |
- this[_run] = specification.run != null ? new async._ZoneFunction(this, specification.run) : this.parent[_run]; |
- this[_runUnary] = specification.runUnary != null ? new async._ZoneFunction(this, specification.runUnary) : this.parent[_runUnary]; |
- this[_runBinary] = specification.runBinary != null ? new async._ZoneFunction(this, specification.runBinary) : this.parent[_runBinary]; |
- this[_registerCallback] = specification.registerCallback != null ? new async._ZoneFunction(this, specification.registerCallback) : this.parent[_registerCallback]; |
- this[_registerUnaryCallback] = specification.registerUnaryCallback != null ? new async._ZoneFunction(this, specification.registerUnaryCallback) : this.parent[_registerUnaryCallback]; |
- this[_registerBinaryCallback] = specification.registerBinaryCallback != null ? new async._ZoneFunction(this, specification.registerBinaryCallback) : this.parent[_registerBinaryCallback]; |
- this[_errorCallback] = specification.errorCallback != null ? new async._ZoneFunction(this, specification.errorCallback) : this.parent[_errorCallback]; |
- this[_scheduleMicrotask] = specification.scheduleMicrotask != null ? new async._ZoneFunction(this, specification.scheduleMicrotask) : this.parent[_scheduleMicrotask]; |
- this[_createTimer] = specification.createTimer != null ? new async._ZoneFunction(this, specification.createTimer) : this.parent[_createTimer]; |
- this[_createPeriodicTimer] = specification.createPeriodicTimer != null ? new async._ZoneFunction(this, specification.createPeriodicTimer) : this.parent[_createPeriodicTimer]; |
- this[_print] = specification.print != null ? new async._ZoneFunction(this, specification.print) : this.parent[_print]; |
- this[_fork] = specification.fork != null ? new async._ZoneFunction(this, specification.fork) : this.parent[_fork]; |
- this[_handleUncaughtError] = specification.handleUncaughtError != null ? new async._ZoneFunction(this, specification.handleUncaughtError) : this.parent[_handleUncaughtError]; |
+ this[_run] = specification.run != null ? new (async._ZoneFunction$(async.RunHandler))(this, specification.run) : this.parent[_run]; |
+ this[_runUnary] = specification.runUnary != null ? new (async._ZoneFunction$(async.RunUnaryHandler))(this, specification.runUnary) : this.parent[_runUnary]; |
+ this[_runBinary] = specification.runBinary != null ? new (async._ZoneFunction$(async.RunBinaryHandler))(this, specification.runBinary) : this.parent[_runBinary]; |
+ this[_registerCallback] = specification.registerCallback != null ? new (async._ZoneFunction$(async.RegisterCallbackHandler))(this, specification.registerCallback) : this.parent[_registerCallback]; |
+ this[_registerUnaryCallback] = specification.registerUnaryCallback != null ? new (async._ZoneFunction$(async.RegisterUnaryCallbackHandler))(this, specification.registerUnaryCallback) : this.parent[_registerUnaryCallback]; |
+ this[_registerBinaryCallback] = specification.registerBinaryCallback != null ? new (async._ZoneFunction$(async.RegisterBinaryCallbackHandler))(this, specification.registerBinaryCallback) : this.parent[_registerBinaryCallback]; |
+ this[_errorCallback] = specification.errorCallback != null ? new (async._ZoneFunction$(async.ErrorCallbackHandler))(this, specification.errorCallback) : this.parent[_errorCallback]; |
+ this[_scheduleMicrotask] = specification.scheduleMicrotask != null ? new (async._ZoneFunction$(async.ScheduleMicrotaskHandler))(this, specification.scheduleMicrotask) : this.parent[_scheduleMicrotask]; |
+ this[_createTimer] = specification.createTimer != null ? new (async._ZoneFunction$(async.CreateTimerHandler))(this, specification.createTimer) : this.parent[_createTimer]; |
+ this[_createPeriodicTimer] = specification.createPeriodicTimer != null ? new (async._ZoneFunction$(async.CreatePeriodicTimerHandler))(this, specification.createPeriodicTimer) : this.parent[_createPeriodicTimer]; |
+ this[_print] = specification.print != null ? new (async._ZoneFunction$(async.PrintHandler))(this, specification.print) : this.parent[_print]; |
+ this[_fork] = specification.fork != null ? new (async._ZoneFunction$(async.ForkHandler))(this, specification.fork) : this.parent[_fork]; |
+ this[_handleUncaughtError] = specification.handleUncaughtError != null ? new (async._ZoneFunction$(async.HandleUncaughtErrorHandler))(this, specification.handleUncaughtError) : this.parent[_handleUncaughtError]; |
} |
get errorZone() { |
return this[_handleUncaughtError].zone; |
} |
- runGuarded(f) { |
- try { |
- return this.run(f); |
- } catch (e) { |
- let s = dart.stackTrace(e); |
- return this.handleUncaughtError(e, s); |
- } |
+ runGuarded(R) { |
+ return f => { |
+ try { |
+ return this.run(R)(f); |
+ } catch (e) { |
+ let s = dart.stackTrace(e); |
+ return this.handleUncaughtError(R)(e, s); |
+ } |
+ }; |
} |
- runUnaryGuarded(f, arg) { |
- try { |
- return this.runUnary(f, arg); |
- } catch (e) { |
- let s = dart.stackTrace(e); |
- return this.handleUncaughtError(e, s); |
- } |
+ runUnaryGuarded(R, T) { |
+ return (f, arg) => { |
+ try { |
+ return this.runUnary(R, T)(f, arg); |
+ } catch (e) { |
+ let s = dart.stackTrace(e); |
+ return this.handleUncaughtError(R)(e, s); |
+ } |
+ }; |
} |
- runBinaryGuarded(f, arg1, arg2) { |
- try { |
- return this.runBinary(f, arg1, arg2); |
- } catch (e) { |
- let s = dart.stackTrace(e); |
- return this.handleUncaughtError(e, s); |
- } |
+ runBinaryGuarded(R, T1, T2) { |
+ return (f, arg1, arg2) => { |
+ try { |
+ return this.runBinary(R, T1, T2)(f, arg1, arg2); |
+ } catch (e) { |
+ let s = dart.stackTrace(e); |
+ return this.handleUncaughtError(R)(e, s); |
+ } |
+ }; |
} |
- bindCallback(f, opts) { |
- let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true; |
- let registered = this.registerCallback(f); |
- if (dart.notNull(runGuarded)) { |
- return dart.fn(() => this.runGuarded(registered)); |
- } else { |
- return dart.fn(() => this.run(registered)); |
- } |
+ bindCallback(R) { |
+ return (f, opts) => { |
+ let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true; |
+ let registered = this.registerCallback(R)(f); |
+ if (dart.notNull(runGuarded)) { |
+ return dart.fn(() => this.runGuarded(R)(registered), R, []); |
+ } else { |
+ return dart.fn(() => this.run(R)(registered), R, []); |
+ } |
+ }; |
} |
- 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)); |
- } else { |
- return dart.fn(arg => this.runUnary(registered, arg)); |
- } |
+ bindUnaryCallback(R, T) { |
+ return (f, opts) => { |
+ let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true; |
+ let registered = this.registerUnaryCallback(R, T)(f); |
+ if (dart.notNull(runGuarded)) { |
+ return dart.fn(arg => this.runUnaryGuarded(R, T)(registered, arg), R, [T]); |
+ } else { |
+ return dart.fn(arg => this.runUnary(R, T)(registered, arg), R, [T]); |
+ } |
+ }; |
} |
- 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)); |
- } else { |
- return dart.fn((arg1, arg2) => this.runBinary(registered, arg1, arg2)); |
- } |
+ bindBinaryCallback(R, T1, T2) { |
+ return (f, opts) => { |
+ let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true; |
+ let registered = this.registerBinaryCallback(R, T1, T2)(f); |
+ if (dart.notNull(runGuarded)) { |
+ return dart.fn((arg1, arg2) => this.runBinaryGuarded(R, T1, T2)(registered, arg1, arg2), R, [T1, T2]); |
+ } else { |
+ return dart.fn((arg1, arg2) => this.runBinary(R, T1, T2)(registered, arg1, arg2), R, [T1, T2]); |
+ } |
+ }; |
} |
get(key) { |
let result = this[_map][dartx.get](key); |
@@ -18275,11 +18603,14 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
dart.assert(dart.equals(this, async._ROOT_ZONE)); |
return null; |
} |
- handleUncaughtError(error, stackTrace) { |
- let implementation = this[_handleUncaughtError]; |
- dart.assert(implementation != null); |
- let parentDelegate = async._parentDelegate(implementation.zone); |
- return dart.dcall(implementation.function, implementation.zone, parentDelegate, this, error, stackTrace); |
+ handleUncaughtError(R) { |
+ return (error, stackTrace) => { |
+ let implementation = this[_handleUncaughtError]; |
+ dart.assert(implementation != null); |
+ let parentDelegate = async._parentDelegate(implementation.zone); |
+ let handler = implementation.function; |
+ return dart.as(dart.dcall(handler, implementation.zone, parentDelegate, this, error, stackTrace), R); |
+ }; |
} |
fork(opts) { |
let specification = opts && 'specification' in opts ? opts.specification : null; |
@@ -18287,43 +18618,62 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
let implementation = this[_fork]; |
dart.assert(implementation != null); |
let parentDelegate = async._parentDelegate(implementation.zone); |
- return dart.as(dart.dcall(implementation.function, implementation.zone, parentDelegate, this, specification, zoneValues), async.Zone); |
+ let handler = implementation.function; |
+ return handler(implementation.zone, parentDelegate, this, specification, zoneValues); |
} |
- run(f) { |
- let implementation = this[_run]; |
- dart.assert(implementation != null); |
- let parentDelegate = async._parentDelegate(implementation.zone); |
- return dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f); |
+ run(R) { |
+ return f => { |
+ let implementation = this[_run]; |
+ dart.assert(implementation != null); |
+ let parentDelegate = async._parentDelegate(implementation.zone); |
+ let handler = implementation.function; |
+ return dart.as(handler(implementation.zone, parentDelegate, this, f), R); |
+ }; |
} |
- runUnary(f, arg) { |
- let implementation = this[_runUnary]; |
- dart.assert(implementation != null); |
- let parentDelegate = async._parentDelegate(implementation.zone); |
- return dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f, arg); |
+ runUnary(R, T) { |
+ return (f, arg) => { |
+ let implementation = this[_runUnary]; |
+ dart.assert(implementation != null); |
+ let parentDelegate = async._parentDelegate(implementation.zone); |
+ let handler = implementation.function; |
+ return dart.as(dart.dcall(handler, implementation.zone, parentDelegate, this, f, arg), R); |
+ }; |
} |
- runBinary(f, arg1, arg2) { |
- let implementation = this[_runBinary]; |
- dart.assert(implementation != null); |
- let parentDelegate = async._parentDelegate(implementation.zone); |
- return dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f, arg1, arg2); |
+ runBinary(R, T1, T2) { |
+ return (f, arg1, arg2) => { |
+ let implementation = this[_runBinary]; |
+ dart.assert(implementation != null); |
+ let parentDelegate = async._parentDelegate(implementation.zone); |
+ let handler = implementation.function; |
+ return dart.as(dart.dcall(handler, implementation.zone, parentDelegate, this, f, arg1, arg2), R); |
+ }; |
} |
- registerCallback(f) { |
- let implementation = this[_registerCallback]; |
- dart.assert(implementation != null); |
- let parentDelegate = async._parentDelegate(implementation.zone); |
- return dart.as(dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f), async.ZoneCallback); |
+ registerCallback(R) { |
+ return callback => { |
+ let implementation = this[_registerCallback]; |
+ dart.assert(implementation != null); |
+ let parentDelegate = async._parentDelegate(implementation.zone); |
+ let handler = implementation.function; |
+ return dart.as(handler(implementation.zone, parentDelegate, this, callback), async.ZoneCallback$(R)); |
+ }; |
} |
- registerUnaryCallback(f) { |
- let implementation = this[_registerUnaryCallback]; |
- dart.assert(implementation != null); |
- let parentDelegate = async._parentDelegate(implementation.zone); |
- return dart.as(dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f), async.ZoneUnaryCallback); |
+ registerUnaryCallback(R, T) { |
+ return callback => { |
+ let implementation = this[_registerUnaryCallback]; |
+ dart.assert(implementation != null); |
+ let parentDelegate = async._parentDelegate(implementation.zone); |
+ let handler = implementation.function; |
+ return dart.as(handler(implementation.zone, parentDelegate, this, callback), async.ZoneUnaryCallback$(R, T)); |
+ }; |
} |
- registerBinaryCallback(f) { |
- let implementation = this[_registerBinaryCallback]; |
- dart.assert(implementation != null); |
- let parentDelegate = async._parentDelegate(implementation.zone); |
- return dart.as(dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f), async.ZoneBinaryCallback); |
+ registerBinaryCallback(R, T1, T2) { |
+ return callback => { |
+ let implementation = this[_registerBinaryCallback]; |
+ dart.assert(implementation != null); |
+ let parentDelegate = async._parentDelegate(implementation.zone); |
+ let handler = implementation.function; |
+ return dart.as(handler(implementation.zone, parentDelegate, this, callback), async.ZoneBinaryCallback$(R, T1, T2)); |
+ }; |
} |
errorCallback(error, stackTrace) { |
let implementation = this[_errorCallback]; |
@@ -18331,51 +18681,56 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
let implementationZone = implementation.zone; |
if (core.identical(implementationZone, async._ROOT_ZONE)) return null; |
let parentDelegate = async._parentDelegate(dart.as(implementationZone, async._Zone)); |
- return dart.as(dart.dcall(implementation.function, implementationZone, parentDelegate, this, error, stackTrace), async.AsyncError); |
+ let handler = implementation.function; |
+ return handler(implementationZone, parentDelegate, this, error, stackTrace); |
} |
scheduleMicrotask(f) { |
let implementation = this[_scheduleMicrotask]; |
dart.assert(implementation != null); |
let parentDelegate = async._parentDelegate(implementation.zone); |
- return dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f); |
+ let handler = implementation.function; |
+ return handler(implementation.zone, parentDelegate, this, f); |
} |
createTimer(duration, f) { |
let implementation = this[_createTimer]; |
dart.assert(implementation != null); |
let parentDelegate = async._parentDelegate(implementation.zone); |
- return dart.as(dart.dcall(implementation.function, implementation.zone, parentDelegate, this, duration, f), async.Timer); |
+ let handler = implementation.function; |
+ return handler(implementation.zone, parentDelegate, this, duration, f); |
} |
createPeriodicTimer(duration, f) { |
let implementation = this[_createPeriodicTimer]; |
dart.assert(implementation != null); |
let parentDelegate = async._parentDelegate(implementation.zone); |
- return dart.as(dart.dcall(implementation.function, implementation.zone, parentDelegate, this, duration, f), async.Timer); |
+ let handler = implementation.function; |
+ return handler(implementation.zone, parentDelegate, this, duration, f); |
} |
print(line) { |
let implementation = this[_print]; |
dart.assert(implementation != null); |
let parentDelegate = async._parentDelegate(implementation.zone); |
- return dart.dcall(implementation.function, implementation.zone, parentDelegate, this, line); |
+ let handler = implementation.function; |
+ return handler(implementation.zone, parentDelegate, this, line); |
} |
}; |
dart.setSignature(async._CustomZone, { |
constructors: () => ({_CustomZone: [async._CustomZone, [async._Zone, async.ZoneSpecification, core.Map]]}), |
methods: () => ({ |
- runGuarded: [dart.dynamic, [dart.functionType(dart.dynamic, [])]], |
- runUnaryGuarded: [dart.dynamic, [dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic]], |
- runBinaryGuarded: [dart.dynamic, [dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic]], |
- bindCallback: [async.ZoneCallback, [dart.functionType(dart.dynamic, [])], {runGuarded: core.bool}], |
- bindUnaryCallback: [async.ZoneUnaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic])], {runGuarded: core.bool}], |
- bindBinaryCallback: [async.ZoneBinaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])], {runGuarded: core.bool}], |
+ runGuarded: [R => [R, [dart.functionType(R, [])]]], |
+ runUnaryGuarded: [(R, T) => [R, [dart.functionType(R, [T]), T]]], |
+ runBinaryGuarded: [(R, T1, T2) => [R, [dart.functionType(R, [T1, T2]), T1, T2]]], |
+ bindCallback: [R => [async.ZoneCallback$(R), [dart.functionType(R, [])], {runGuarded: core.bool}]], |
+ bindUnaryCallback: [(R, T) => [async.ZoneUnaryCallback$(R, T), [dart.functionType(R, [T])], {runGuarded: core.bool}]], |
+ bindBinaryCallback: [(R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [dart.functionType(R, [T1, T2])], {runGuarded: core.bool}]], |
get: [dart.dynamic, [core.Object]], |
- handleUncaughtError: [dart.dynamic, [dart.dynamic, core.StackTrace]], |
+ handleUncaughtError: [R => [R, [dart.dynamic, core.StackTrace]]], |
fork: [async.Zone, [], {specification: async.ZoneSpecification, zoneValues: core.Map}], |
- run: [dart.dynamic, [dart.functionType(dart.dynamic, [])]], |
- runUnary: [dart.dynamic, [dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic]], |
- runBinary: [dart.dynamic, [dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic]], |
- registerCallback: [async.ZoneCallback, [dart.functionType(dart.dynamic, [])]], |
- registerUnaryCallback: [async.ZoneUnaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic])]], |
- registerBinaryCallback: [async.ZoneBinaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])]], |
+ run: [R => [R, [dart.functionType(R, [])]]], |
+ runUnary: [(R, T) => [R, [dart.functionType(R, [T]), T]]], |
+ runBinary: [(R, T1, T2) => [R, [dart.functionType(R, [T1, T2]), T1, T2]]], |
+ registerCallback: [R => [async.ZoneCallback$(R), [dart.functionType(R, [])]]], |
+ registerUnaryCallback: [(R, T) => [async.ZoneUnaryCallback$(R, T), [dart.functionType(R, [T])]]], |
+ registerBinaryCallback: [(R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [dart.functionType(R, [T1, T2])]]], |
errorCallback: [async.AsyncError, [core.Object, core.StackTrace]], |
scheduleMicrotask: [dart.void, [dart.functionType(dart.void, [])]], |
createTimer: [async.Timer, [core.Duration, dart.functionType(dart.void, [])]], |
@@ -18383,54 +18738,75 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
print: [dart.void, [core.String]] |
}) |
}); |
- async._rootHandleUncaughtError = function(self, parent, zone, error, stackTrace) { |
- async._schedulePriorityAsyncCallback(dart.fn(() => { |
- dart.throw(new async._UncaughtAsyncError(error, stackTrace)); |
- })); |
+ async._rootHandleUncaughtError = function(R) { |
+ return (self, parent, zone, error, stackTrace) => { |
+ async._schedulePriorityAsyncCallback(dart.fn(() => { |
+ if (error == null) error = new core.NullThrownError(); |
+ if (stackTrace == null) dart.throw(error); |
+ async._rethrow(error, stackTrace); |
+ }, dart.void, [])); |
+ }; |
}; |
- dart.lazyFn(async._rootHandleUncaughtError, () => [dart.void, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace]]); |
- async._rootRun = function(self, parent, zone, f) { |
- if (dart.equals(async.Zone._current, zone)) return f(); |
- let old = async.Zone._enter(zone); |
- try { |
- return f(); |
- } finally { |
- async.Zone._leave(old); |
- } |
+ dart.lazyFn(async._rootHandleUncaughtError, () => [R => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace]]]); |
+ async._rethrow = function(error, stackTrace) { |
+ error.stack = dart.toString(stackTrace); |
+ throw error; |
}; |
- dart.fn(async._rootRun, dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [])]); |
- async._rootRunUnary = function(self, parent, zone, f, arg) { |
- if (dart.equals(async.Zone._current, zone)) return dart.dcall(f, arg); |
- let old = async.Zone._enter(zone); |
- try { |
- return dart.dcall(f, arg); |
- } finally { |
- async.Zone._leave(old); |
- } |
+ dart.lazyFn(async._rethrow, () => [dart.void, [core.Object, core.StackTrace]]); |
+ async._rootRun = function(R) { |
+ return (self, parent, zone, f) => { |
+ if (dart.equals(async.Zone._current, zone)) return f(); |
+ let old = async.Zone._enter(zone); |
+ try { |
+ return f(); |
+ } finally { |
+ async.Zone._leave(old); |
+ } |
+ }; |
}; |
- dart.fn(async._rootRunUnary, dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic]); |
- async._rootRunBinary = function(self, parent, zone, f, arg1, arg2) { |
- if (dart.equals(async.Zone._current, zone)) return dart.dcall(f, arg1, arg2); |
- let old = async.Zone._enter(zone); |
- try { |
- return dart.dcall(f, arg1, arg2); |
- } finally { |
- async.Zone._leave(old); |
- } |
+ dart.fn(async._rootRun, R => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])]]); |
+ async._rootRunUnary = function(R, T) { |
+ return (self, parent, zone, f, arg) => { |
+ if (dart.equals(async.Zone._current, zone)) return f(arg); |
+ let old = async.Zone._enter(zone); |
+ try { |
+ return f(arg); |
+ } finally { |
+ async.Zone._leave(old); |
+ } |
+ }; |
}; |
- dart.fn(async._rootRunBinary, dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic]); |
- async._rootRegisterCallback = function(self, parent, zone, f) { |
- return f; |
+ dart.fn(async._rootRunUnary, (R, T) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T]), T]]); |
+ async._rootRunBinary = function(R, T1, T2) { |
+ return (self, parent, zone, f, arg1, arg2) => { |
+ if (dart.equals(async.Zone._current, zone)) return f(arg1, arg2); |
+ let old = async.Zone._enter(zone); |
+ try { |
+ return f(arg1, arg2); |
+ } finally { |
+ async.Zone._leave(old); |
+ } |
+ }; |
}; |
- dart.fn(async._rootRegisterCallback, async.ZoneCallback, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [])]); |
- async._rootRegisterUnaryCallback = function(self, parent, zone, f) { |
- return f; |
+ dart.fn(async._rootRunBinary, (R, T1, T2) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2]), T1, T2]]); |
+ async._rootRegisterCallback = function(R) { |
+ return (self, parent, zone, f) => { |
+ return f; |
+ }; |
}; |
- dart.fn(async._rootRegisterUnaryCallback, async.ZoneUnaryCallback, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic])]); |
- async._rootRegisterBinaryCallback = function(self, parent, zone, f) { |
- return f; |
+ dart.fn(async._rootRegisterCallback, R => [async.ZoneCallback$(R), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])]]); |
+ async._rootRegisterUnaryCallback = function(R, T) { |
+ return (self, parent, zone, f) => { |
+ return f; |
+ }; |
+ }; |
+ dart.fn(async._rootRegisterUnaryCallback, (R, T) => [async.ZoneUnaryCallback$(R, T), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T])]]); |
+ async._rootRegisterBinaryCallback = function(R, T1, T2) { |
+ return (self, parent, zone, f) => { |
+ return f; |
+ }; |
}; |
- dart.fn(async._rootRegisterBinaryCallback, async.ZoneBinaryCallback, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])]); |
+ dart.fn(async._rootRegisterBinaryCallback, (R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2])]]); |
async._rootErrorCallback = function(self, parent, zone, error, stackTrace) { |
return null; |
}; |
@@ -18438,21 +18814,22 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
async._rootScheduleMicrotask = function(self, parent, zone, f) { |
if (!core.identical(async._ROOT_ZONE, zone)) { |
let hasErrorHandler = !dart.notNull(async._ROOT_ZONE.inSameErrorZone(zone)); |
- f = zone.bindCallback(f, {runGuarded: hasErrorHandler}); |
+ f = zone.bindCallback(dart.dynamic)(f, {runGuarded: hasErrorHandler}); |
+ zone = async._ROOT_ZONE; |
} |
async._scheduleAsyncCallback(f); |
}; |
dart.fn(async._rootScheduleMicrotask, dart.void, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(dart.dynamic, [])]); |
async._rootCreateTimer = function(self, parent, zone, duration, callback) { |
if (!core.identical(async._ROOT_ZONE, zone)) { |
- callback = zone.bindCallback(callback); |
+ callback = zone.bindCallback(dart.dynamic)(callback); |
} |
return async.Timer._createTimer(duration, callback); |
}; |
dart.lazyFn(async._rootCreateTimer, () => [async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.functionType(dart.void, [])]]); |
async._rootCreatePeriodicTimer = function(self, parent, zone, duration, callback) { |
if (!core.identical(async._ROOT_ZONE, zone)) { |
- callback = dart.as(zone.bindUnaryCallback(callback), dart.functionType(dart.void, [async.Timer])); |
+ callback = zone.bindUnaryCallback(dart.dynamic, async.Timer)(callback); |
} |
return async.Timer._createPeriodicTimer(duration, callback); |
}; |
@@ -18485,90 +18862,48 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return new async._CustomZone(dart.as(zone, async._Zone), specification, valueMap); |
}; |
dart.lazyFn(async._rootFork, () => [async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map]]); |
- async._RootZoneSpecification = class _RootZoneSpecification extends core.Object { |
- get handleUncaughtError() { |
- return async._rootHandleUncaughtError; |
- } |
- get run() { |
- return async._rootRun; |
- } |
- get runUnary() { |
- return async._rootRunUnary; |
- } |
- get runBinary() { |
- return async._rootRunBinary; |
- } |
- get registerCallback() { |
- return async._rootRegisterCallback; |
- } |
- get registerUnaryCallback() { |
- return async._rootRegisterUnaryCallback; |
- } |
- get registerBinaryCallback() { |
- return async._rootRegisterBinaryCallback; |
- } |
- get errorCallback() { |
- return async._rootErrorCallback; |
- } |
- get scheduleMicrotask() { |
- return async._rootScheduleMicrotask; |
- } |
- get createTimer() { |
- return async._rootCreateTimer; |
- } |
- get createPeriodicTimer() { |
- return async._rootCreatePeriodicTimer; |
- } |
- get print() { |
- return async._rootPrint; |
- } |
- get fork() { |
- return async._rootFork; |
- } |
- }; |
- async._RootZoneSpecification[dart.implements] = () => [async.ZoneSpecification]; |
async._RootZone = class _RootZone extends async._Zone { |
_RootZone() { |
super._Zone(); |
} |
get [_run]() { |
- return dart.const(new async._ZoneFunction(async._ROOT_ZONE, async._rootRun)); |
+ return dart.const(new (async._ZoneFunction$(async.RunHandler))(async._ROOT_ZONE, dart.gbind(async._rootRun, dart.dynamic))); |
} |
get [_runUnary]() { |
- return dart.const(new async._ZoneFunction(async._ROOT_ZONE, async._rootRunUnary)); |
+ return dart.const(new (async._ZoneFunction$(async.RunUnaryHandler))(async._ROOT_ZONE, dart.gbind(async._rootRunUnary, dart.dynamic, dart.dynamic))); |
} |
get [_runBinary]() { |
- return dart.const(new async._ZoneFunction(async._ROOT_ZONE, async._rootRunBinary)); |
+ return dart.const(new (async._ZoneFunction$(async.RunBinaryHandler))(async._ROOT_ZONE, dart.gbind(async._rootRunBinary, dart.dynamic, dart.dynamic, dart.dynamic))); |
} |
get [_registerCallback]() { |
- return dart.const(new async._ZoneFunction(async._ROOT_ZONE, async._rootRegisterCallback)); |
+ return dart.const(new (async._ZoneFunction$(async.RegisterCallbackHandler))(async._ROOT_ZONE, dart.gbind(async._rootRegisterCallback, dart.dynamic))); |
} |
get [_registerUnaryCallback]() { |
- return dart.const(new async._ZoneFunction(async._ROOT_ZONE, async._rootRegisterUnaryCallback)); |
+ return dart.const(new (async._ZoneFunction$(async.RegisterUnaryCallbackHandler))(async._ROOT_ZONE, dart.gbind(async._rootRegisterUnaryCallback, dart.dynamic, dart.dynamic))); |
} |
get [_registerBinaryCallback]() { |
- return dart.const(new async._ZoneFunction(async._ROOT_ZONE, async._rootRegisterBinaryCallback)); |
+ return dart.const(new (async._ZoneFunction$(async.RegisterBinaryCallbackHandler))(async._ROOT_ZONE, dart.gbind(async._rootRegisterBinaryCallback, dart.dynamic, dart.dynamic, dart.dynamic))); |
} |
get [_errorCallback]() { |
- return dart.const(new async._ZoneFunction(async._ROOT_ZONE, async._rootErrorCallback)); |
+ return dart.const(new (async._ZoneFunction$(async.ErrorCallbackHandler))(async._ROOT_ZONE, async._rootErrorCallback)); |
} |
get [_scheduleMicrotask]() { |
- return dart.const(new async._ZoneFunction(async._ROOT_ZONE, async._rootScheduleMicrotask)); |
+ return dart.const(new (async._ZoneFunction$(async.ScheduleMicrotaskHandler))(async._ROOT_ZONE, async._rootScheduleMicrotask)); |
} |
get [_createTimer]() { |
- return dart.const(new async._ZoneFunction(async._ROOT_ZONE, async._rootCreateTimer)); |
+ return dart.const(new (async._ZoneFunction$(async.CreateTimerHandler))(async._ROOT_ZONE, async._rootCreateTimer)); |
} |
get [_createPeriodicTimer]() { |
- return dart.const(new async._ZoneFunction(async._ROOT_ZONE, async._rootCreatePeriodicTimer)); |
+ return dart.const(new (async._ZoneFunction$(async.CreatePeriodicTimerHandler))(async._ROOT_ZONE, async._rootCreatePeriodicTimer)); |
} |
get [_print]() { |
- return dart.const(new async._ZoneFunction(async._ROOT_ZONE, async._rootPrint)); |
+ return dart.const(new (async._ZoneFunction$(async.PrintHandler))(async._ROOT_ZONE, async._rootPrint)); |
} |
get [_fork]() { |
- return dart.const(new async._ZoneFunction(async._ROOT_ZONE, async._rootFork)); |
+ return dart.const(new (async._ZoneFunction$(async.ForkHandler))(async._ROOT_ZONE, async._rootFork)); |
} |
get [_handleUncaughtError]() { |
- return dart.const(new async._ZoneFunction(async._ROOT_ZONE, async._rootHandleUncaughtError)); |
+ return dart.const(new (async._ZoneFunction$(async.HandleUncaughtErrorHandler))(async._ROOT_ZONE, dart.gbind(async._rootHandleUncaughtError, dart.dynamic))); |
} |
get parent() { |
return null; |
@@ -18583,97 +18918,123 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
get errorZone() { |
return this; |
} |
- runGuarded(f) { |
- try { |
- if (core.identical(async._ROOT_ZONE, async.Zone._current)) { |
- return f(); |
+ runGuarded(R) { |
+ return f => { |
+ try { |
+ if (core.identical(async._ROOT_ZONE, async.Zone._current)) { |
+ return f(); |
+ } |
+ return async._rootRun(R)(null, null, this, f); |
+ } catch (e) { |
+ let s = dart.stackTrace(e); |
+ return this.handleUncaughtError(R)(e, s); |
} |
- return async._rootRun(null, null, this, f); |
- } catch (e) { |
- let s = dart.stackTrace(e); |
- return this.handleUncaughtError(e, s); |
- } |
+ }; |
} |
- runUnaryGuarded(f, arg) { |
- try { |
- if (core.identical(async._ROOT_ZONE, async.Zone._current)) { |
- return dart.dcall(f, arg); |
+ runUnaryGuarded(R, T) { |
+ return (f, arg) => { |
+ try { |
+ if (core.identical(async._ROOT_ZONE, async.Zone._current)) { |
+ return f(arg); |
+ } |
+ return async._rootRunUnary(R, T)(null, null, this, f, arg); |
+ } catch (e) { |
+ let s = dart.stackTrace(e); |
+ return this.handleUncaughtError(R)(e, s); |
} |
- return async._rootRunUnary(null, null, this, f, arg); |
- } catch (e) { |
- let s = dart.stackTrace(e); |
- return this.handleUncaughtError(e, s); |
- } |
+ }; |
} |
- runBinaryGuarded(f, arg1, arg2) { |
- try { |
- if (core.identical(async._ROOT_ZONE, async.Zone._current)) { |
- return dart.dcall(f, arg1, arg2); |
+ runBinaryGuarded(R, T1, T2) { |
+ return (f, arg1, arg2) => { |
+ try { |
+ if (core.identical(async._ROOT_ZONE, async.Zone._current)) { |
+ return f(arg1, arg2); |
+ } |
+ return async._rootRunBinary(R, T1, T2)(null, null, this, f, arg1, arg2); |
+ } catch (e) { |
+ let s = dart.stackTrace(e); |
+ return this.handleUncaughtError(R)(e, s); |
} |
- return async._rootRunBinary(null, null, this, f, arg1, arg2); |
- } catch (e) { |
- let s = dart.stackTrace(e); |
- return this.handleUncaughtError(e, s); |
- } |
+ }; |
} |
- bindCallback(f, opts) { |
- let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true; |
- if (dart.notNull(runGuarded)) { |
- return dart.fn(() => this.runGuarded(f)); |
- } else { |
- return dart.fn(() => this.run(f)); |
- } |
+ bindCallback(R) { |
+ return (f, opts) => { |
+ let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true; |
+ if (dart.notNull(runGuarded)) { |
+ return dart.fn(() => this.runGuarded(R)(f), R, []); |
+ } else { |
+ return dart.fn(() => this.run(R)(f), R, []); |
+ } |
+ }; |
} |
- bindUnaryCallback(f, opts) { |
- let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true; |
- if (dart.notNull(runGuarded)) { |
- return dart.fn(arg => this.runUnaryGuarded(f, arg)); |
- } else { |
- return dart.fn(arg => this.runUnary(f, arg)); |
- } |
+ bindUnaryCallback(R, T) { |
+ return (f, opts) => { |
+ let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true; |
+ if (dart.notNull(runGuarded)) { |
+ return dart.fn(arg => this.runUnaryGuarded(R, T)(f, arg), R, [T]); |
+ } else { |
+ return dart.fn(arg => this.runUnary(R, T)(f, arg), R, [T]); |
+ } |
+ }; |
} |
- 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)); |
- } else { |
- return dart.fn((arg1, arg2) => this.runBinary(f, arg1, arg2)); |
- } |
+ bindBinaryCallback(R, T1, T2) { |
+ return (f, opts) => { |
+ let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true; |
+ if (dart.notNull(runGuarded)) { |
+ return dart.fn((arg1, arg2) => this.runBinaryGuarded(R, T1, T2)(f, arg1, arg2), R, [T1, T2]); |
+ } else { |
+ return dart.fn((arg1, arg2) => this.runBinary(R, T1, T2)(f, arg1, arg2), R, [T1, T2]); |
+ } |
+ }; |
} |
get(key) { |
return null; |
} |
- handleUncaughtError(error, stackTrace) { |
- return async._rootHandleUncaughtError(null, null, this, error, stackTrace); |
+ handleUncaughtError(R) { |
+ return (error, stackTrace) => { |
+ return async._rootHandleUncaughtError(R)(null, null, this, error, stackTrace); |
+ }; |
} |
fork(opts) { |
let specification = opts && 'specification' in opts ? opts.specification : null; |
let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null; |
return async._rootFork(null, null, this, specification, zoneValues); |
} |
- run(f) { |
- if (core.identical(async.Zone._current, async._ROOT_ZONE)) return f(); |
- return async._rootRun(null, null, this, f); |
+ run(R) { |
+ return f => { |
+ if (core.identical(async.Zone._current, async._ROOT_ZONE)) return f(); |
+ return async._rootRun(R)(null, null, this, f); |
+ }; |
} |
- runUnary(f, arg) { |
- if (core.identical(async.Zone._current, async._ROOT_ZONE)) return dart.dcall(f, arg); |
- return async._rootRunUnary(null, null, this, f, arg); |
+ runUnary(R, T) { |
+ return (f, arg) => { |
+ if (core.identical(async.Zone._current, async._ROOT_ZONE)) return f(arg); |
+ return async._rootRunUnary(R, T)(null, null, this, f, arg); |
+ }; |
} |
- runBinary(f, arg1, arg2) { |
- if (core.identical(async.Zone._current, async._ROOT_ZONE)) return dart.dcall(f, arg1, arg2); |
- return async._rootRunBinary(null, null, this, f, arg1, arg2); |
+ runBinary(R, T1, T2) { |
+ return (f, arg1, arg2) => { |
+ if (core.identical(async.Zone._current, async._ROOT_ZONE)) return f(arg1, arg2); |
+ return async._rootRunBinary(R, T1, T2)(null, null, this, f, arg1, arg2); |
+ }; |
} |
- registerCallback(f) { |
- return f; |
+ registerCallback(R) { |
+ return f => { |
+ return f; |
+ }; |
} |
- registerUnaryCallback(f) { |
- return f; |
+ registerUnaryCallback(R, T) { |
+ return f => { |
+ return f; |
+ }; |
} |
- registerBinaryCallback(f) { |
- return f; |
+ registerBinaryCallback(R, T1, T2) { |
+ return f => { |
+ return f; |
+ }; |
} |
errorCallback(error, stackTrace) { |
return null; |
@@ -18694,21 +19055,21 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
dart.setSignature(async._RootZone, { |
constructors: () => ({_RootZone: [async._RootZone, []]}), |
methods: () => ({ |
- runGuarded: [dart.dynamic, [dart.functionType(dart.dynamic, [])]], |
- runUnaryGuarded: [dart.dynamic, [dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic]], |
- runBinaryGuarded: [dart.dynamic, [dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic]], |
- bindCallback: [async.ZoneCallback, [dart.functionType(dart.dynamic, [])], {runGuarded: core.bool}], |
- bindUnaryCallback: [async.ZoneUnaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic])], {runGuarded: core.bool}], |
- bindBinaryCallback: [async.ZoneBinaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])], {runGuarded: core.bool}], |
+ runGuarded: [R => [R, [dart.functionType(R, [])]]], |
+ runUnaryGuarded: [(R, T) => [R, [dart.functionType(R, [T]), T]]], |
+ runBinaryGuarded: [(R, T1, T2) => [R, [dart.functionType(R, [T1, T2]), T1, T2]]], |
+ bindCallback: [R => [async.ZoneCallback$(R), [dart.functionType(R, [])], {runGuarded: core.bool}]], |
+ bindUnaryCallback: [(R, T) => [async.ZoneUnaryCallback$(R, T), [dart.functionType(R, [T])], {runGuarded: core.bool}]], |
+ bindBinaryCallback: [(R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [dart.functionType(R, [T1, T2])], {runGuarded: core.bool}]], |
get: [dart.dynamic, [core.Object]], |
- handleUncaughtError: [dart.dynamic, [dart.dynamic, core.StackTrace]], |
+ handleUncaughtError: [R => [R, [dart.dynamic, core.StackTrace]]], |
fork: [async.Zone, [], {specification: async.ZoneSpecification, zoneValues: core.Map}], |
- run: [dart.dynamic, [dart.functionType(dart.dynamic, [])]], |
- runUnary: [dart.dynamic, [dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic]], |
- runBinary: [dart.dynamic, [dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic]], |
- registerCallback: [async.ZoneCallback, [dart.functionType(dart.dynamic, [])]], |
- registerUnaryCallback: [async.ZoneUnaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic])]], |
- registerBinaryCallback: [async.ZoneBinaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])]], |
+ run: [R => [R, [dart.functionType(R, [])]]], |
+ runUnary: [(R, T) => [R, [dart.functionType(R, [T]), T]]], |
+ runBinary: [(R, T1, T2) => [R, [dart.functionType(R, [T1, T2]), T1, T2]]], |
+ registerCallback: [R => [async.ZoneCallback$(R), [dart.functionType(R, [])]]], |
+ registerUnaryCallback: [(R, T) => [async.ZoneUnaryCallback$(R, T), [dart.functionType(R, [T])]]], |
+ registerBinaryCallback: [(R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [dart.functionType(R, [T1, T2])]]], |
errorCallback: [async.AsyncError, [core.Object, core.StackTrace]], |
scheduleMicrotask: [dart.void, [dart.functionType(dart.void, [])]], |
createTimer: [async.Timer, [core.Duration, dart.functionType(dart.void, [])]], |
@@ -18724,42 +19085,44 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
set _rootMap(_) {} |
}); |
async._ROOT_ZONE = dart.const(new async._RootZone()); |
- async.runZoned = function(body, opts) { |
- let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null; |
- let zoneSpecification = opts && 'zoneSpecification' in opts ? opts.zoneSpecification : null; |
- let onError = opts && 'onError' in opts ? opts.onError : null; |
- let errorHandler = null; |
- if (onError != null) { |
- errorHandler = dart.fn((self, parent, zone, error, stackTrace) => { |
- try { |
- if (dart.is(onError, async.ZoneBinaryCallback)) { |
- return self.parent.runBinary(onError, error, stackTrace); |
- } |
- return self.parent.runUnary(dart.as(onError, dart.functionType(dart.dynamic, [dart.dynamic])), error); |
- } catch (e) { |
- let s = dart.stackTrace(e); |
- if (core.identical(e, error)) { |
- return parent.handleUncaughtError(zone, error, stackTrace); |
- } else { |
- return parent.handleUncaughtError(zone, e, s); |
+ async.runZoned = function(R) { |
+ return (body, opts) => { |
+ let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null; |
+ let zoneSpecification = opts && 'zoneSpecification' in opts ? opts.zoneSpecification : null; |
+ let onError = opts && 'onError' in opts ? opts.onError : null; |
+ let errorHandler = null; |
+ if (onError != null) { |
+ errorHandler = dart.fn((self, parent, zone, error, stackTrace) => { |
+ try { |
+ if (dart.is(onError, async.ZoneBinaryCallback$(R, dart.dynamic, core.StackTrace))) { |
+ return self.parent.runBinary(R, dart.dynamic, core.StackTrace)(onError, error, stackTrace); |
+ } |
+ return self.parent.runUnary(dart.dynamic, dart.dynamic)(dart.as(onError, dart.functionType(dart.dynamic, [dart.dynamic])), error); |
+ } catch (e) { |
+ let s = dart.stackTrace(e); |
+ if (core.identical(e, error)) { |
+ return parent.handleUncaughtError(dart.dynamic)(zone, error, stackTrace); |
+ } else { |
+ return parent.handleUncaughtError(dart.dynamic)(zone, e, s); |
+ } |
} |
- } |
- }, dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace]); |
- } |
- if (zoneSpecification == null) { |
- zoneSpecification = async.ZoneSpecification.new({handleUncaughtError: errorHandler}); |
- } else if (errorHandler != null) { |
- zoneSpecification = async.ZoneSpecification.from(zoneSpecification, {handleUncaughtError: errorHandler}); |
- } |
- let zone = async.Zone.current.fork({specification: zoneSpecification, zoneValues: zoneValues}); |
- if (onError != null) { |
- return zone.runGuarded(body); |
- } else { |
- return zone.run(body); |
- } |
+ }, dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace]); |
+ } |
+ if (zoneSpecification == null) { |
+ zoneSpecification = async.ZoneSpecification.new({handleUncaughtError: errorHandler}); |
+ } else if (errorHandler != null) { |
+ zoneSpecification = async.ZoneSpecification.from(zoneSpecification, {handleUncaughtError: errorHandler}); |
+ } |
+ let zone = async.Zone.current.fork({specification: zoneSpecification, zoneValues: zoneValues}); |
+ if (onError != null) { |
+ return zone.runGuarded(R)(body); |
+ } else { |
+ return zone.run(R)(body); |
+ } |
+ }; |
}; |
- dart.lazyFn(async.runZoned, () => [dart.dynamic, [dart.functionType(dart.dynamic, [])], {zoneValues: core.Map, zoneSpecification: async.ZoneSpecification, onError: core.Function}]); |
+ dart.lazyFn(async.runZoned, () => [R => [R, [dart.functionType(R, [])], {zoneValues: core.Map, zoneSpecification: async.ZoneSpecification, onError: core.Function}]]); |
const _length$0 = Symbol('_length'); |
const _strings = Symbol('_strings'); |
const _nums = Symbol('_nums'); |
@@ -19253,7 +19616,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
const _first = Symbol('_first'); |
const _last = Symbol('_last'); |
const _modifications = Symbol('_modifications'); |
- const _value$ = Symbol('_value'); |
+ const _value = Symbol('_value'); |
const _newLinkedCell = Symbol('_newLinkedCell'); |
const _unlinkCell = Symbol('_unlinkCell'); |
const _modified = Symbol('_modified'); |
@@ -19329,12 +19692,12 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
let strings = this[_strings]; |
if (strings == null) return null; |
let cell = dart.as(collection._LinkedHashMap._getTableEntry(strings, key), collection.LinkedHashMapCell); |
- return dart.as(cell == null ? null : cell[_value$], V); |
+ return dart.as(cell == null ? null : cell[_value], V); |
} else if (dart.notNull(collection._LinkedHashMap._isNumericKey(key))) { |
let nums = this[_nums]; |
if (nums == null) return null; |
let cell = dart.as(collection._LinkedHashMap._getTableEntry(nums, key), collection.LinkedHashMapCell); |
- return dart.as(cell == null ? null : cell[_value$], V); |
+ return dart.as(cell == null ? null : cell[_value], V); |
} else { |
return this[_get](key); |
} |
@@ -19346,7 +19709,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
let index = this[_findBucketIndex](bucket, key); |
if (dart.notNull(index) < 0) return null; |
let cell = bucket[index]; |
- return dart.as(cell[_value$], V); |
+ return dart.as(cell[_value], V); |
} |
set(key, value) { |
dart.as(key, K); |
@@ -19378,7 +19741,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
let index = this[_findBucketIndex](bucket, key); |
if (dart.notNull(index) >= 0) { |
let cell = bucket[index]; |
- cell[_value$] = value; |
+ cell[_value] = value; |
} else { |
let cell = this[_newLinkedCell](key, value); |
bucket.push(cell); |
@@ -19410,7 +19773,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (dart.notNull(index) < 0) return null; |
let cell = bucket.splice(index, 1)[0]; |
this[_unlinkCell](cell); |
- return dart.as(cell[_value$], V); |
+ return dart.as(cell[_value], V); |
} |
clear() { |
if (dart.notNull(this[_length$0]) > 0) { |
@@ -19424,7 +19787,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
let cell = this[_first]; |
let modifications = this[_modifications]; |
while (cell != null) { |
- action(dart.as(cell[_key], K), dart.as(cell[_value$], V)); |
+ action(dart.as(cell[_key], K), dart.as(cell[_value], V)); |
if (modifications != this[_modifications]) { |
dart.throw(new core.ConcurrentModificationError(this)); |
} |
@@ -19438,7 +19801,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (cell == null) { |
collection._LinkedHashMap._setTableEntry(table, key, this[_newLinkedCell](key, value)); |
} else { |
- cell[_value$] = value; |
+ cell[_value] = value; |
} |
} |
[_removeHashTableEntry](table, key) { |
@@ -19447,7 +19810,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (cell == null) return null; |
this[_unlinkCell](cell); |
collection._LinkedHashMap._deleteTableEntry(table, key); |
- return dart.as(cell[_value$], V); |
+ return dart.as(cell[_value], V); |
} |
[_modified]() { |
this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863; |
@@ -19658,7 +20021,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
collection.LinkedHashMapCell = class LinkedHashMapCell extends core.Object { |
LinkedHashMapCell(key, value) { |
this[_key] = key; |
- this[_value$] = value; |
+ this[_value] = value; |
this[_next$] = null; |
this[_previous$] = null; |
} |
@@ -22865,7 +23228,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
collection._SplayTreeMapNode = collection._SplayTreeMapNode$(); |
const _dummy = Symbol('_dummy'); |
const _root = Symbol('_root'); |
- const _count = Symbol('_count'); |
+ const _count$ = Symbol('_count'); |
const _splayCount = Symbol('_splayCount'); |
const _comparator = Symbol('_comparator'); |
const _compare = Symbol('_compare'); |
@@ -22879,7 +23242,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
_SplayTree() { |
this[_dummy] = new (collection._SplayTreeNode$(K))(null); |
this[_root] = null; |
- this[_count] = 0; |
+ this[_count$] = 0; |
this[_modificationCount] = 0; |
this[_splayCount] = 0; |
} |
@@ -22960,7 +23323,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
let comp = this[_splay](key); |
if (comp != 0) return null; |
let result = this[_root]; |
- this[_count] = dart.notNull(this[_count]) - 1; |
+ this[_count$] = dart.notNull(this[_count$]) - 1; |
if (this[_root].left == null) { |
this[_root] = this[_root].right; |
} else { |
@@ -22973,7 +23336,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
[_addNewRoot](node, comp) { |
dart.as(node, collection._SplayTreeNode$(K)); |
- this[_count] = dart.notNull(this[_count]) + 1; |
+ this[_count$] = dart.notNull(this[_count$]) + 1; |
this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; |
if (this[_root] == null) { |
this[_root] = node; |
@@ -23002,7 +23365,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
[_clear$]() { |
this[_root] = null; |
- this[_count] = 0; |
+ this[_count$] = 0; |
this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; |
} |
} |
@@ -23141,7 +23504,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
} |
get length() { |
- return this[_count]; |
+ return this[_count$]; |
} |
clear() { |
this[_clear$](); |
@@ -23348,10 +23711,10 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
super.IterableBase(); |
} |
get length() { |
- return this[_tree][_count]; |
+ return this[_tree][_count$]; |
} |
get isEmpty() { |
- return this[_tree][_count] == 0; |
+ return this[_tree][_count$] == 0; |
} |
get iterator() { |
return new (collection._SplayTreeKeyIterator$(K))(this[_tree]); |
@@ -23359,7 +23722,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
toSet() { |
let setOrMap = this[_tree]; |
let set = new (collection.SplayTreeSet$(K))(setOrMap[_comparator], setOrMap[_validKey]); |
- set[_count] = this[_tree][_count]; |
+ set[_count$] = this[_tree][_count$]; |
set[_root] = set[_copyNode](this[_tree][_root]); |
return set; |
} |
@@ -23380,10 +23743,10 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
super.IterableBase(); |
} |
get length() { |
- return this[_map$][_count]; |
+ return this[_map$][_count$]; |
} |
get isEmpty() { |
- return this[_map$][_count] == 0; |
+ return this[_map$][_count$] == 0; |
} |
get iterator() { |
return new (collection._SplayTreeValueIterator$(K, V))(this[_map$]); |
@@ -23481,7 +23844,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return new (collection._SplayTreeKeyIterator$(E))(this); |
} |
get length() { |
- return this[_count]; |
+ return this[_count$]; |
} |
get isEmpty() { |
return this[_root] == null; |
@@ -23490,16 +23853,16 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return this[_root] != null; |
} |
get first() { |
- if (this[_count] == 0) dart.throw(_internal.IterableElementError.noElement()); |
+ if (this[_count$] == 0) dart.throw(_internal.IterableElementError.noElement()); |
return dart.as(this[_first].key, E); |
} |
get last() { |
- if (this[_count] == 0) dart.throw(_internal.IterableElementError.noElement()); |
+ if (this[_count$] == 0) dart.throw(_internal.IterableElementError.noElement()); |
return dart.as(this[_last].key, E); |
} |
get single() { |
- if (this[_count] == 0) dart.throw(_internal.IterableElementError.noElement()); |
- if (dart.notNull(this[_count]) > 1) dart.throw(_internal.IterableElementError.tooMany()); |
+ if (this[_count$] == 0) dart.throw(_internal.IterableElementError.noElement()); |
+ if (dart.notNull(this[_count$]) > 1) dart.throw(_internal.IterableElementError.tooMany()); |
return this[_root].key; |
} |
contains(object) { |
@@ -23539,9 +23902,9 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
if (dart.notNull(this[_validKey](object)) && this[_splay](dart.as(object, E)) == 0) retainSet.add(this[_root].key); |
} |
- if (retainSet[_count] != this[_count]) { |
+ if (retainSet[_count$] != this[_count$]) { |
this[_root] = retainSet[_root]; |
- this[_count] = retainSet[_count]; |
+ this[_count$] = retainSet[_count$]; |
this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; |
} |
} |
@@ -23573,7 +23936,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
[_clone]() { |
let set = new (collection.SplayTreeSet$(E))(this[_comparator], this[_validKey]); |
- set[_count] = this[_count]; |
+ set[_count$] = this[_count$]; |
set[_root] = this[_copyNode](this[_root]); |
return set; |
} |
@@ -26391,7 +26754,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
}; |
dart.fn(convert._combineSurrogatePair, core.int, [core.int, core.int]); |
const _isFirstCharacter = Symbol('_isFirstCharacter'); |
- const _value$0 = Symbol('_value'); |
+ const _value$ = Symbol('_value'); |
const _expectedUnits = Symbol('_expectedUnits'); |
const _extraUnits = Symbol('_extraUnits'); |
convert._Utf8Decoder = class _Utf8Decoder extends core.Object { |
@@ -26399,7 +26762,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
this[_stringSink] = stringSink; |
this[_allowMalformed] = allowMalformed; |
this[_isFirstCharacter] = true; |
- this[_value$0] = 0; |
+ this[_value$] = 0; |
this[_expectedUnits] = 0; |
this[_extraUnits] = 0; |
} |
@@ -26415,16 +26778,16 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
dart.throw(new core.FormatException("Unfinished UTF-8 octet sequence")); |
} |
this[_stringSink].writeCharCode(convert.UNICODE_REPLACEMENT_CHARACTER_RUNE); |
- this[_value$0] = 0; |
+ this[_value$] = 0; |
this[_expectedUnits] = 0; |
this[_extraUnits] = 0; |
} |
} |
convert(codeUnits, startIndex, endIndex) { |
- let value = this[_value$0]; |
+ let value = this[_value$]; |
let expectedUnits = this[_expectedUnits]; |
let extraUnits = this[_extraUnits]; |
- this[_value$0] = 0; |
+ this[_value$] = 0; |
this[_expectedUnits] = 0; |
this[_extraUnits] = 0; |
function scanOneByteCharacters(units, from) { |
@@ -26532,7 +26895,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
break loop; |
} |
if (dart.notNull(expectedUnits) > 0) { |
- this[_value$0] = value; |
+ this[_value$] = value; |
this[_expectedUnits] = expectedUnits; |
this[_extraUnits] = extraUnits; |
} |
@@ -27081,7 +27444,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return "Throw of null."; |
} |
}; |
- const _hasValue$ = Symbol('_hasValue'); |
+ const _hasValue = Symbol('_hasValue'); |
const _errorName = Symbol('_errorName'); |
const _errorExplanation = Symbol('_errorExplanation'); |
core.ArgumentError = class ArgumentError extends core.Error { |
@@ -27089,7 +27452,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (message === void 0) message = null; |
this.message = message; |
this.invalidValue = null; |
- this[_hasValue$] = false; |
+ this[_hasValue] = false; |
this.name = null; |
super.Error(); |
} |
@@ -27099,19 +27462,19 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
this.name = name; |
this.message = message; |
this.invalidValue = value; |
- this[_hasValue$] = true; |
+ this[_hasValue] = true; |
super.Error(); |
} |
notNull(name) { |
if (name === void 0) name = null; |
this.name = name; |
- this[_hasValue$] = false; |
+ this[_hasValue] = false; |
this.message = "Must not be null"; |
this.invalidValue = null; |
super.Error(); |
} |
get [_errorName]() { |
- return `Invalid argument${!dart.notNull(this[_hasValue$]) ? "(s)" : ""}`; |
+ return `Invalid argument${!dart.notNull(this[_hasValue]) ? "(s)" : ""}`; |
} |
get [_errorExplanation]() { |
return ""; |
@@ -27123,7 +27486,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
} |
let message = this.message == null ? "" : `: ${this.message}`; |
let prefix = `${this[_errorName]}${nameString}${message}`; |
- if (!dart.notNull(this[_hasValue$])) return prefix; |
+ if (!dart.notNull(this[_hasValue])) return prefix; |
let explanation = this[_errorExplanation]; |
let errorValue = core.Error.safeToString(this.invalidValue); |
return `${prefix}${explanation}: ${errorValue}`; |
@@ -27204,7 +27567,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return "RangeError"; |
} |
get [_errorExplanation]() { |
- dart.assert(this[_hasValue$]); |
+ dart.assert(this[_hasValue]); |
let explanation = ""; |
if (this.start == null) { |
if (this.end != null) { |
@@ -27258,7 +27621,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return "RangeError"; |
} |
get [_errorExplanation]() { |
- dart.assert(this[_hasValue$]); |
+ dart.assert(this[_hasValue]); |
if (dart.notNull(dart.as(dart.dsend(this.invalidValue, '<', 0), core.bool))) { |
return ": index must not be negative"; |
} |
@@ -31560,7 +31923,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
}; |
}; |
dart.lazyFn(indexed_db._completeRequest, () => [T => [async.Future$(T), [indexed_db.Request]]]); |
- const _count$ = Symbol('_count'); |
+ const _count$0 = Symbol('_count'); |
const _get$ = Symbol('_get'); |
const _getKey$ = Symbol('_getKey'); |
const _openCursor = Symbol('_openCursor'); |
@@ -31583,7 +31946,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
[dartx.count](key_OR_range) { |
if (key_OR_range === void 0) key_OR_range = null; |
try { |
- let request = this[_count$](key_OR_range); |
+ let request = this[_count$0](key_OR_range); |
return indexed_db._completeRequest(core.int)(request); |
} catch (e) { |
let stacktrace = dart.stackTrace(e); |
@@ -31673,7 +32036,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
get [dartx.unique]() { |
return this.unique; |
} |
- [_count$](key) { |
+ [_count$0](key) { |
return this.count(key); |
} |
[_get$](key) { |
@@ -31703,7 +32066,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
[dartx.getKey]: [async.Future, [dart.dynamic]], |
[dartx.openCursor]: [async.Stream$(indexed_db.CursorWithValue), [], {key: dart.dynamic, range: indexed_db.KeyRange, direction: core.String, autoAdvance: core.bool}], |
[dartx.openKeyCursor]: [async.Stream$(indexed_db.Cursor), [], {key: dart.dynamic, range: indexed_db.KeyRange, direction: core.String, autoAdvance: core.bool}], |
- [_count$]: [indexed_db.Request, [core.Object]], |
+ [_count$0]: [indexed_db.Request, [core.Object]], |
[_get$]: [indexed_db.Request, [core.Object]], |
[dartx.getAll]: [indexed_db.Request, [core.Object], [core.int]], |
[dartx.getAllKeys]: [indexed_db.Request, [core.Object], [core.int]], |
@@ -31839,7 +32202,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
[dartx.count](key_OR_range) { |
if (key_OR_range === void 0) key_OR_range = null; |
try { |
- let request = this[_count$](key_OR_range); |
+ let request = this[_count$0](key_OR_range); |
return indexed_db._completeRequest(core.int)(request); |
} catch (e) { |
let stacktrace = dart.stackTrace(e); |
@@ -31944,7 +32307,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
[_clear$0]() { |
return this.clear(); |
} |
- [_count$](key) { |
+ [_count$0](key) { |
return this.count(key); |
} |
[_createIndex](name, keyPath, options) { |
@@ -32035,7 +32398,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
[_add_1]: [indexed_db.Request, [dart.dynamic, dart.dynamic]], |
[_add_2]: [indexed_db.Request, [dart.dynamic]], |
[_clear$0]: [indexed_db.Request, []], |
- [_count$]: [indexed_db.Request, [core.Object]], |
+ [_count$0]: [indexed_db.Request, [core.Object]], |
[_createIndex]: [indexed_db.Index, [core.String, core.Object], [core.Map]], |
[_createIndex_1]: [indexed_db.Index, [dart.dynamic, dart.dynamic, dart.dynamic]], |
[_createIndex_2]: [indexed_db.Index, [dart.dynamic, dart.dynamic]], |
@@ -47698,13 +48061,13 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
statics: () => ({createElement_tag: [dart.dynamic, [core.String, core.String]]}), |
names: ['createElement_tag'] |
}); |
- const _value$1 = Symbol('_value'); |
+ const _value$0 = Symbol('_value'); |
html$.ScrollAlignment = class ScrollAlignment extends core.Object { |
_internal(value) { |
- this[_value$1] = value; |
+ this[_value$0] = value; |
} |
toString() { |
- return `ScrollAlignment.${this[_value$1]}`; |
+ return `ScrollAlignment.${this[_value$0]}`; |
} |
}; |
dart.defineNamedConstructor(html$.ScrollAlignment, '_internal'); |
@@ -68124,43 +68487,43 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
const _unit = Symbol('_unit'); |
html$.Dimension = class Dimension extends core.Object { |
percent(value) { |
- this[_value$1] = value; |
+ this[_value$0] = value; |
this[_unit] = '%'; |
} |
px(value) { |
- this[_value$1] = value; |
+ this[_value$0] = value; |
this[_unit] = 'px'; |
} |
pc(value) { |
- this[_value$1] = value; |
+ this[_value$0] = value; |
this[_unit] = 'pc'; |
} |
pt(value) { |
- this[_value$1] = value; |
+ this[_value$0] = value; |
this[_unit] = 'pt'; |
} |
inch(value) { |
- this[_value$1] = value; |
+ this[_value$0] = value; |
this[_unit] = 'in'; |
} |
cm(value) { |
- this[_value$1] = value; |
+ this[_value$0] = value; |
this[_unit] = 'cm'; |
} |
mm(value) { |
- this[_value$1] = value; |
+ this[_value$0] = value; |
this[_unit] = 'mm'; |
} |
em(value) { |
- this[_value$1] = value; |
+ this[_value$0] = value; |
this[_unit] = 'em'; |
} |
ex(value) { |
- this[_value$1] = value; |
+ this[_value$0] = value; |
this[_unit] = 'ex'; |
} |
css(cssValue) { |
- this[_value$1] = null; |
+ this[_value$0] = null; |
this[_unit] = null; |
if (cssValue == '') cssValue = '0px'; |
if (dart.notNull(cssValue[dartx.endsWith]('%'))) { |
@@ -68169,16 +68532,16 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
this[_unit] = cssValue[dartx.substring](dart.notNull(cssValue[dartx.length]) - 2); |
} |
if (dart.notNull(cssValue[dartx.contains]('.'))) { |
- this[_value$1] = core.double.parse(cssValue[dartx.substring](0, dart.notNull(cssValue[dartx.length]) - dart.notNull(this[_unit][dartx.length]))); |
+ this[_value$0] = core.double.parse(cssValue[dartx.substring](0, dart.notNull(cssValue[dartx.length]) - dart.notNull(this[_unit][dartx.length]))); |
} else { |
- this[_value$1] = core.int.parse(cssValue[dartx.substring](0, dart.notNull(cssValue[dartx.length]) - dart.notNull(this[_unit][dartx.length]))); |
+ this[_value$0] = core.int.parse(cssValue[dartx.substring](0, dart.notNull(cssValue[dartx.length]) - dart.notNull(this[_unit][dartx.length]))); |
} |
} |
toString() { |
- return `${this[_value$1]}${this[_unit]}`; |
+ return `${this[_value$0]}${this[_unit]}`; |
} |
get value() { |
- return this[_value$1]; |
+ return this[_value$0]; |
} |
}; |
dart.defineNamedConstructor(html$.Dimension, 'percent'); |
@@ -70466,7 +70829,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return callback => { |
if (dart.equals(async.Zone.current, async.Zone.ROOT)) return callback; |
if (callback == null) return null; |
- return dart.as(async.Zone.current.bindUnaryCallback(callback, {runGuarded: true}), html$._wrapZoneCallback$(A, R)); |
+ return async.Zone.current.bindUnaryCallback(R, A)(callback, {runGuarded: true}); |
}; |
}; |
dart.fn(html$._wrapZone, (A, R) => [html$._wrapZoneCallback$(A, R), [html$._wrapZoneCallback$(A, R)]]); |
@@ -70474,7 +70837,7 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
return callback => { |
if (dart.equals(async.Zone.current, async.Zone.ROOT)) return callback; |
if (callback == null) return null; |
- return dart.as(async.Zone.current.bindBinaryCallback(callback, {runGuarded: true}), html$._wrapZoneBinaryCallback$(A, B, R)); |
+ return async.Zone.current.bindBinaryCallback(R, A, B)(callback, {runGuarded: true}); |
}; |
}; |
dart.fn(html$._wrapBinaryZone, (A, B, R) => [html$._wrapZoneBinaryCallback$(A, B, R), [html$._wrapZoneBinaryCallback$(A, B, R)]]); |