| dart_library.library('dart/async', null, /* Imports */[ |
| "dart/_runtime", |
| 'dart/core', |
| 'dart/_internal', |
| 'dart/collection' |
| ], /* Lazy imports */[ |
| 'dart/_isolate_helper' |
| ], function(exports, dart, core, _internal, collection, _isolate_helper) { |
| 'use strict'; |
| let dartx = dart.dartx; |
| function _invokeErrorHandler(errorHandler, error, stackTrace) { |
| if (dart.is(errorHandler, ZoneBinaryCallback)) { |
| return dart.dcall(errorHandler, error, stackTrace); |
| } else { |
| return dart.dcall(errorHandler, error); |
| } |
| } |
| dart.fn(_invokeErrorHandler, dart.dynamic, [core.Function, core.Object, core.StackTrace]); |
| function _registerErrorHandler(errorHandler, zone) { |
| if (dart.is(errorHandler, ZoneBinaryCallback)) { |
| return zone.registerBinaryCallback(errorHandler); |
| } else { |
| return zone.registerUnaryCallback(dart.as(errorHandler, __CastType0)); |
| } |
| } |
| dart.fn(_registerErrorHandler, () => dart.definiteFunctionType(core.Function, [core.Function, Zone])); |
| class AsyncError extends core.Object { |
| AsyncError(error, stackTrace) { |
| this.error = error; |
| this.stackTrace = stackTrace; |
| } |
| toString() { |
| return dart.toString(this.error); |
| } |
| } |
| AsyncError[dart.implements] = () => [core.Error]; |
| dart.setSignature(AsyncError, { |
| constructors: () => ({AsyncError: [AsyncError, [dart.dynamic, core.StackTrace]]}) |
| }); |
| class _UncaughtAsyncError extends AsyncError { |
| _UncaughtAsyncError(error, stackTrace) { |
| super.AsyncError(error, _UncaughtAsyncError._getBestStackTrace(error, stackTrace)); |
| } |
| static _getBestStackTrace(error, stackTrace) { |
| if (stackTrace != null) |
| return stackTrace; |
| if (dart.is(error, core.Error)) { |
| return dart.as(dart.dload(error, 'stackTrace'), core.StackTrace); |
| } |
| return null; |
| } |
| toString() { |
| let result = `Uncaught Error: ${this.error}`; |
| if (this.stackTrace != null) { |
| result = dart.notNull(result) + `\nStack Trace:\n${this.stackTrace}`; |
| } |
| return result; |
| } |
| } |
| dart.setSignature(_UncaughtAsyncError, { |
| constructors: () => ({_UncaughtAsyncError: [_UncaughtAsyncError, [dart.dynamic, core.StackTrace]]}), |
| statics: () => ({_getBestStackTrace: [core.StackTrace, [dart.dynamic, core.StackTrace]]}), |
| names: ['_getBestStackTrace'] |
| }); |
| let __CastType0 = dart.typedef('__CastType0', () => dart.functionType(dart.dynamic, [dart.dynamic])); |
| let _controller = Symbol('_controller'); |
| let _subscribe = Symbol('_subscribe'); |
| let _createSubscription = Symbol('_createSubscription'); |
| let _onListen = Symbol('_onListen'); |
| let _add = Symbol('_add'); |
| let _closeUnchecked = Symbol('_closeUnchecked'); |
| let _addError = Symbol('_addError'); |
| let _completeError = Symbol('_completeError'); |
| let _complete = Symbol('_complete'); |
| let _sink = Symbol('_sink'); |
| let Stream$ = dart.generic(function(T) { |
| class Stream extends core.Object { |
| Stream() { |
| } |
| static fromFuture(future) { |
| let controller = dart.as(StreamController$(T).new({sync: true}), _StreamController$(T)); |
| future.then(dart.fn(value => { |
| controller[_add](dart.as(value, T)); |
| controller[_closeUnchecked](); |
| }), {onError: dart.fn((error, stackTrace) => { |
| controller[_addError](error, dart.as(stackTrace, core.StackTrace)); |
| controller[_closeUnchecked](); |
| })}); |
| return controller.stream; |
| } |
| static fromIterable(data) { |
| return new (_GeneratedStreamImpl$(T))(dart.fn(() => new (_IterablePendingEvents$(T))(data), _IterablePendingEvents$(T), [])); |
| } |
| static periodic(period, computation) { |
| if (computation === void 0) |
| computation = null; |
| if (computation == null) |
| computation = dart.fn(i => null, dart.bottom, [dart.dynamic]); |
| let timer = null; |
| let computationCount = 0; |
| let controller = null; |
| let watch = new core.Stopwatch(); |
| function sendEvent() { |
| watch.reset(); |
| let data = computation((() => { |
| let x = computationCount; |
| computationCount = dart.notNull(x) + 1; |
| return x; |
| })()); |
| controller.add(data); |
| } |
| dart.fn(sendEvent, dart.void, []); |
| function startPeriodicTimer() { |
| dart.assert(timer == null); |
| timer = Timer.periodic(period, dart.fn(timer => { |
| sendEvent(); |
| }, dart.dynamic, [Timer])); |
| } |
| dart.fn(startPeriodicTimer, dart.void, []); |
| controller = StreamController$(T).new({sync: true, onListen: dart.fn(() => { |
| watch.start(); |
| startPeriodicTimer(); |
| }), onPause: dart.fn(() => { |
| timer.cancel(); |
| timer = null; |
| watch.stop(); |
| }), onResume: dart.fn(() => { |
| dart.assert(timer == null); |
| let elapsed = watch.elapsed; |
| watch.start(); |
| timer = Timer.new(period['-'](elapsed), dart.fn(() => { |
| timer = null; |
| startPeriodicTimer(); |
| sendEvent(); |
| })); |
| }), onCancel: dart.fn(() => { |
| if (timer != null) |
| timer.cancel(); |
| timer = null; |
| })}); |
| return controller.stream; |
| } |
| static eventTransformed(source, mapSink) { |
| return new (_BoundSinkStream$(dart.dynamic, T))(source, dart.as(mapSink, _SinkMapper)); |
| } |
| get isBroadcast() { |
| return false; |
| } |
| asBroadcastStream(opts) { |
| let onListen = opts && 'onListen' in opts ? opts.onListen : null; |
| dart.as(onListen, dart.functionType(dart.void, [StreamSubscription$(T)])); |
| let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null; |
| dart.as(onCancel, dart.functionType(dart.void, [StreamSubscription$(T)])); |
| return new (_AsBroadcastStream$(T))(this, dart.as(onListen, __CastType12), dart.as(onCancel, dart.functionType(dart.void, [StreamSubscription]))); |
| } |
| where(test) { |
| dart.as(test, dart.functionType(core.bool, [T])); |
| return new (_WhereStream$(T))(this, test); |
| } |
| map(convert) { |
| dart.as(convert, dart.functionType(dart.dynamic, [T])); |
| return new (_MapStream$(T, dart.dynamic))(this, convert); |
| } |
| asyncMap(convert) { |
| dart.as(convert, dart.functionType(dart.dynamic, [T])); |
| let controller = null; |
| let subscription = null; |
| let onListen = (function() { |
| let add = dart.bind(controller, 'add'); |
| dart.assert(dart.is(controller, _StreamController) || dart.is(controller, _BroadcastStreamController)); |
| let eventSink = dart.as(controller, _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; |
| } |
| |
| if (dart.is(newValue, Future)) { |
| subscription.pause(); |
| dart.dsend(dart.dsend(newValue, 'then', add, {onError: addError}), 'whenComplete', dart.bind(subscription, 'resume')); |
| } else { |
| controller.add(newValue); |
| } |
| }, dart.dynamic, [T]), {onError: addError, onDone: dart.bind(controller, 'close')}); |
| }).bind(this); |
| dart.fn(onListen, dart.void, []); |
| if (dart.notNull(this.isBroadcast)) { |
| controller = StreamController.broadcast({onListen: onListen, onCancel: dart.fn(() => { |
| subscription.cancel(); |
| }), sync: true}); |
| } else { |
| controller = StreamController.new({onListen: onListen, onPause: dart.fn(() => { |
| subscription.pause(); |
| }), onResume: dart.fn(() => { |
| subscription.resume(); |
| }), onCancel: dart.fn(() => { |
| subscription.cancel(); |
| }), sync: true}); |
| } |
| return controller.stream; |
| } |
| asyncExpand(convert) { |
| dart.as(convert, dart.functionType(Stream$(), [T])); |
| let controller = null; |
| let subscription = null; |
| let onListen = (function() { |
| dart.assert(dart.is(controller, _StreamController) || dart.is(controller, _BroadcastStreamController)); |
| let eventSink = dart.as(controller, _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; |
| } |
| |
| if (newStream != null) { |
| subscription.pause(); |
| controller.addStream(newStream).whenComplete(dart.bind(subscription, 'resume')); |
| } |
| }, dart.dynamic, [T]), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')}); |
| }).bind(this); |
| dart.fn(onListen, dart.void, []); |
| if (dart.notNull(this.isBroadcast)) { |
| controller = StreamController.broadcast({onListen: onListen, onCancel: dart.fn(() => { |
| subscription.cancel(); |
| }), sync: true}); |
| } else { |
| controller = StreamController.new({onListen: onListen, onPause: dart.fn(() => { |
| subscription.pause(); |
| }), onResume: dart.fn(() => { |
| subscription.resume(); |
| }), onCancel: dart.fn(() => { |
| subscription.cancel(); |
| }), sync: true}); |
| } |
| return controller.stream; |
| } |
| handleError(onError, opts) { |
| let test = opts && 'test' in opts ? opts.test : null; |
| dart.as(test, dart.functionType(core.bool, [dart.dynamic])); |
| return new (_HandleErrorStream$(T))(this, onError, test); |
| } |
| expand(convert) { |
| dart.as(convert, dart.functionType(core.Iterable, [T])); |
| return new (_ExpandStream$(T, dart.dynamic))(this, convert); |
| } |
| pipe(streamConsumer) { |
| dart.as(streamConsumer, StreamConsumer$(T)); |
| return streamConsumer.addStream(this).then(dart.fn(_ => streamConsumer.close(), Future, [dart.dynamic])); |
| } |
| transform(streamTransformer) { |
| dart.as(streamTransformer, StreamTransformer$(T, dart.dynamic)); |
| return streamTransformer.bind(this); |
| } |
| reduce(combine) { |
| dart.as(combine, dart.functionType(T, [T, T])); |
| let result = new (_Future$(T))(); |
| let seenFirst = false; |
| let value = null; |
| let subscription = null; |
| subscription = this.listen(dart.fn(element => { |
| dart.as(element, T); |
| if (dart.notNull(seenFirst)) { |
| _runUserCode(dart.fn(() => combine(value, element), T, []), dart.fn(newValue => { |
| dart.as(newValue, T); |
| value = newValue; |
| }, dart.dynamic, [T]), dart.as(_cancelAndErrorClosure(subscription, result), __CastType14)); |
| } else { |
| value = element; |
| seenFirst = true; |
| } |
| }, dart.dynamic, [T]), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => { |
| if (!dart.notNull(seenFirst)) { |
| try { |
| dart.throw(_internal.IterableElementError.noElement()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _completeWithErrorCallback(result, e, s); |
| } |
| |
| } else { |
| result[_complete](value); |
| } |
| }), cancelOnError: true}); |
| return result; |
| } |
| fold(initialValue, combine) { |
| dart.as(combine, dart.functionType(dart.dynamic, [dart.dynamic, T])); |
| let result = new _Future(); |
| let value = initialValue; |
| let subscription = null; |
| subscription = this.listen(dart.fn(element => { |
| dart.as(element, T); |
| _runUserCode(dart.fn(() => dart.dcall(combine, value, element)), dart.fn(newValue => { |
| value = newValue; |
| }), dart.as(_cancelAndErrorClosure(subscription, result), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
| }, dart.dynamic, [T]), {onError: dart.fn((e, st) => { |
| result[_completeError](e, dart.as(st, core.StackTrace)); |
| }), onDone: dart.fn(() => { |
| result[_complete](value); |
| }), cancelOnError: true}); |
| return result; |
| } |
| join(separator) { |
| if (separator === void 0) |
| separator = ""; |
| let result = new (_Future$(core.String))(); |
| let buffer = new core.StringBuffer(); |
| let subscription = null; |
| let first = true; |
| subscription = this.listen(dart.fn(element => { |
| dart.as(element, T); |
| if (!dart.notNull(first)) { |
| buffer.write(separator); |
| } |
| first = false; |
| try { |
| buffer.write(element); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _cancelAndErrorWithReplacement(subscription, result, e, s); |
| } |
| |
| }, dart.dynamic, [T]), {onError: dart.fn(e => { |
| result[_completeError](e); |
| }), onDone: dart.fn(() => { |
| result[_complete](dart.toString(buffer)); |
| }), cancelOnError: true}); |
| return result; |
| } |
| contains(needle) { |
| let future = new (_Future$(core.bool))(); |
| let subscription = null; |
| subscription = this.listen(dart.fn(element => { |
| dart.as(element, T); |
| _runUserCode(dart.fn(() => dart.equals(element, needle), core.bool, []), dart.fn(isMatch => { |
| if (dart.notNull(isMatch)) { |
| _cancelAndValue(subscription, future, true); |
| } |
| }, dart.dynamic, [core.bool]), dart.as(_cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
| }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| future[_complete](false); |
| }), cancelOnError: true}); |
| return future; |
| } |
| forEach(action) { |
| dart.as(action, dart.functionType(dart.void, [T])); |
| let future = new _Future(); |
| let subscription = null; |
| subscription = this.listen(dart.fn(element => { |
| dart.as(element, T); |
| _runUserCode(dart.fn(() => action(element), dart.void, []), dart.fn(_ => { |
| }), dart.as(_cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
| }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| future[_complete](null); |
| }), cancelOnError: true}); |
| return future; |
| } |
| every(test) { |
| dart.as(test, dart.functionType(core.bool, [T])); |
| let future = new (_Future$(core.bool))(); |
| let subscription = null; |
| subscription = this.listen(dart.fn(element => { |
| dart.as(element, T); |
| _runUserCode(dart.fn(() => test(element), core.bool, []), dart.fn(isMatch => { |
| if (!dart.notNull(isMatch)) { |
| _cancelAndValue(subscription, future, false); |
| } |
| }, dart.dynamic, [core.bool]), dart.as(_cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
| }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| future[_complete](true); |
| }), cancelOnError: true}); |
| return future; |
| } |
| any(test) { |
| dart.as(test, dart.functionType(core.bool, [T])); |
| let future = new (_Future$(core.bool))(); |
| let subscription = null; |
| subscription = this.listen(dart.fn(element => { |
| dart.as(element, T); |
| _runUserCode(dart.fn(() => test(element), core.bool, []), dart.fn(isMatch => { |
| if (dart.notNull(isMatch)) { |
| _cancelAndValue(subscription, future, true); |
| } |
| }, dart.dynamic, [core.bool]), dart.as(_cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
| }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| future[_complete](false); |
| }), cancelOnError: true}); |
| return future; |
| } |
| get length() { |
| let future = new (_Future$(core.int))(); |
| let count = 0; |
| this.listen(dart.fn(_ => { |
| count = dart.notNull(count) + 1; |
| }), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| future[_complete](count); |
| }), cancelOnError: true}); |
| return future; |
| } |
| get isEmpty() { |
| let future = new (_Future$(core.bool))(); |
| let subscription = null; |
| subscription = this.listen(dart.fn(_ => { |
| _cancelAndValue(subscription, future, false); |
| }), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| future[_complete](true); |
| }), cancelOnError: true}); |
| return future; |
| } |
| toList() { |
| let result = dart.list([], T); |
| let future = new (_Future$(core.List$(T)))(); |
| this.listen(dart.fn(data => { |
| dart.as(data, T); |
| result[dartx.add](data); |
| }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| future[_complete](result); |
| }), cancelOnError: true}); |
| return future; |
| } |
| toSet() { |
| let result = core.Set$(T).new(); |
| let future = new (_Future$(core.Set$(T)))(); |
| this.listen(dart.fn(data => { |
| dart.as(data, T); |
| result.add(data); |
| }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| future[_complete](result); |
| }), cancelOnError: true}); |
| return future; |
| } |
| drain(futureValue) { |
| if (futureValue === void 0) |
| futureValue = null; |
| return this.listen(null, {cancelOnError: true}).asFuture(futureValue); |
| } |
| take(count) { |
| return new (_TakeStream$(T))(this, count); |
| } |
| takeWhile(test) { |
| dart.as(test, dart.functionType(core.bool, [T])); |
| return new (_TakeWhileStream$(T))(this, test); |
| } |
| skip(count) { |
| return new (_SkipStream$(T))(this, count); |
| } |
| skipWhile(test) { |
| dart.as(test, dart.functionType(core.bool, [T])); |
| return new (_SkipWhileStream$(T))(this, test); |
| } |
| distinct(equals) { |
| if (equals === void 0) |
| equals = null; |
| dart.as(equals, dart.functionType(core.bool, [T, T])); |
| return new (_DistinctStream$(T))(this, equals); |
| } |
| get first() { |
| let future = new (_Future$(T))(); |
| let subscription = null; |
| subscription = this.listen(dart.fn(value => { |
| dart.as(value, T); |
| _cancelAndValue(subscription, future, value); |
| }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| try { |
| dart.throw(_internal.IterableElementError.noElement()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _completeWithErrorCallback(future, e, s); |
| } |
| |
| }), cancelOnError: true}); |
| return future; |
| } |
| get last() { |
| let future = new (_Future$(T))(); |
| let result = null; |
| let foundResult = false; |
| let subscription = null; |
| subscription = this.listen(dart.fn(value => { |
| dart.as(value, T); |
| foundResult = true; |
| result = value; |
| }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| if (dart.notNull(foundResult)) { |
| future[_complete](result); |
| return; |
| } |
| try { |
| dart.throw(_internal.IterableElementError.noElement()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _completeWithErrorCallback(future, e, s); |
| } |
| |
| }), cancelOnError: true}); |
| return future; |
| } |
| get single() { |
| let future = new (_Future$(T))(); |
| let result = null; |
| let foundResult = false; |
| let subscription = null; |
| subscription = this.listen(dart.fn(value => { |
| dart.as(value, T); |
| if (dart.notNull(foundResult)) { |
| try { |
| dart.throw(_internal.IterableElementError.tooMany()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _cancelAndErrorWithReplacement(subscription, future, e, s); |
| } |
| |
| return; |
| } |
| foundResult = true; |
| result = value; |
| }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| if (dart.notNull(foundResult)) { |
| future[_complete](result); |
| return; |
| } |
| try { |
| dart.throw(_internal.IterableElementError.noElement()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _completeWithErrorCallback(future, e, s); |
| } |
| |
| }), cancelOnError: true}); |
| return future; |
| } |
| firstWhere(test, opts) { |
| dart.as(test, dart.functionType(core.bool, [T])); |
| let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : null; |
| dart.as(defaultValue, dart.functionType(core.Object, [])); |
| let future = new _Future(); |
| let subscription = null; |
| subscription = this.listen(dart.fn(value => { |
| dart.as(value, T); |
| _runUserCode(dart.fn(() => test(value), core.bool, []), dart.fn(isMatch => { |
| if (dart.notNull(isMatch)) { |
| _cancelAndValue(subscription, future, value); |
| } |
| }, dart.dynamic, [core.bool]), dart.as(_cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
| }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| if (defaultValue != null) { |
| _runUserCode(defaultValue, dart.bind(future, _complete), dart.bind(future, _completeError)); |
| return; |
| } |
| try { |
| dart.throw(_internal.IterableElementError.noElement()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _completeWithErrorCallback(future, e, s); |
| } |
| |
| }), cancelOnError: true}); |
| return future; |
| } |
| lastWhere(test, opts) { |
| dart.as(test, dart.functionType(core.bool, [T])); |
| let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : null; |
| dart.as(defaultValue, dart.functionType(core.Object, [])); |
| let future = new _Future(); |
| let result = null; |
| let foundResult = false; |
| let subscription = null; |
| subscription = this.listen(dart.fn(value => { |
| dart.as(value, T); |
| _runUserCode(dart.fn(() => true == test(value), core.bool, []), dart.fn(isMatch => { |
| if (dart.notNull(isMatch)) { |
| foundResult = true; |
| result = value; |
| } |
| }, dart.dynamic, [core.bool]), dart.as(_cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
| }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| if (dart.notNull(foundResult)) { |
| future[_complete](result); |
| return; |
| } |
| if (defaultValue != null) { |
| _runUserCode(defaultValue, dart.bind(future, _complete), dart.bind(future, _completeError)); |
| return; |
| } |
| try { |
| dart.throw(_internal.IterableElementError.noElement()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _completeWithErrorCallback(future, e, s); |
| } |
| |
| }), cancelOnError: true}); |
| return future; |
| } |
| singleWhere(test) { |
| dart.as(test, dart.functionType(core.bool, [T])); |
| let future = new (_Future$(T))(); |
| let result = null; |
| let foundResult = false; |
| let subscription = null; |
| subscription = this.listen(dart.fn(value => { |
| dart.as(value, T); |
| _runUserCode(dart.fn(() => true == test(value), core.bool, []), dart.fn(isMatch => { |
| if (dart.notNull(isMatch)) { |
| if (dart.notNull(foundResult)) { |
| try { |
| dart.throw(_internal.IterableElementError.tooMany()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _cancelAndErrorWithReplacement(subscription, future, e, s); |
| } |
| |
| return; |
| } |
| foundResult = true; |
| result = value; |
| } |
| }, dart.dynamic, [core.bool]), dart.as(_cancelAndErrorClosure(subscription, future), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace]))); |
| }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => { |
| if (dart.notNull(foundResult)) { |
| future[_complete](result); |
| return; |
| } |
| try { |
| dart.throw(_internal.IterableElementError.noElement()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _completeWithErrorCallback(future, e, s); |
| } |
| |
| }), cancelOnError: true}); |
| return future; |
| } |
| elementAt(index) { |
| if (!(typeof index == 'number') || dart.notNull(index) < 0) |
| dart.throw(new core.ArgumentError(index)); |
| let future = new (_Future$(T))(); |
| let subscription = null; |
| let elementIndex = 0; |
| subscription = this.listen(dart.fn(value => { |
| dart.as(value, T); |
| if (index == elementIndex) { |
| _cancelAndValue(subscription, future, value); |
| return; |
| } |
| elementIndex = dart.notNull(elementIndex) + 1; |
| }, dart.dynamic, [T]), {onError: dart.bind(future, _completeError), onDone: dart.fn((() => { |
| future[_completeError](core.RangeError.index(index, this, "index", null, elementIndex)); |
| }).bind(this)), cancelOnError: true}); |
| return future; |
| } |
| timeout(timeLimit, opts) { |
| let onTimeout = opts && 'onTimeout' in opts ? opts.onTimeout : null; |
| dart.as(onTimeout, dart.functionType(dart.void, [EventSink])); |
| let controller = null; |
| let subscription = null; |
| let timer = null; |
| let zone = null; |
| let timeout = null; |
| function onData(event) { |
| dart.as(event, T); |
| timer.cancel(); |
| controller.add(event); |
| timer = zone.createTimer(timeLimit, dart.as(timeout, __CastType17)); |
| } |
| dart.fn(onData, dart.void, [T]); |
| function onError(error, stackTrace) { |
| timer.cancel(); |
| dart.assert(dart.is(controller, _StreamController) || dart.is(controller, _BroadcastStreamController)); |
| let eventSink = dart.as(controller, _EventSink$(T)); |
| eventSink[_addError](error, stackTrace); |
| timer = zone.createTimer(timeLimit, dart.as(timeout, dart.functionType(dart.void, []))); |
| } |
| dart.fn(onError, dart.void, [dart.dynamic, core.StackTrace]); |
| function onDone() { |
| timer.cancel(); |
| controller.close(); |
| } |
| dart.fn(onDone, dart.void, []); |
| let onListen = (function() { |
| zone = Zone.current; |
| if (onTimeout == null) { |
| timeout = dart.fn(() => { |
| controller.addError(new TimeoutException("No stream event", timeLimit), null); |
| }); |
| } else { |
| onTimeout = dart.as(zone.registerUnaryCallback(onTimeout), __CastType18); |
| let wrapper = new _ControllerEventSinkWrapper(null); |
| timeout = dart.fn(() => { |
| wrapper[_sink] = controller; |
| zone.runUnaryGuarded(onTimeout, wrapper); |
| wrapper[_sink] = null; |
| }); |
| } |
| subscription = this.listen(onData, {onError: onError, onDone: onDone}); |
| timer = zone.createTimer(timeLimit, dart.as(timeout, dart.functionType(dart.void, []))); |
| }).bind(this); |
| dart.fn(onListen, dart.void, []); |
| function onCancel() { |
| timer.cancel(); |
| let result = subscription.cancel(); |
| subscription = null; |
| return result; |
| } |
| dart.fn(onCancel, Future, []); |
| controller = dart.notNull(this.isBroadcast) ? new _SyncBroadcastStreamController(onListen, onCancel) : new _SyncStreamController(onListen, dart.fn(() => { |
| timer.cancel(); |
| subscription.pause(); |
| }), dart.fn(() => { |
| subscription.resume(); |
| timer = zone.createTimer(timeLimit, dart.as(timeout, dart.functionType(dart.void, []))); |
| }), onCancel); |
| return controller.stream; |
| } |
| } |
| dart.setSignature(Stream, { |
| constructors: () => ({ |
| Stream: [Stream$(T), []], |
| fromFuture: [Stream$(T), [Future$(T)]], |
| fromIterable: [Stream$(T), [core.Iterable$(T)]], |
| periodic: [Stream$(T), [core.Duration], [dart.functionType(T, [core.int])]], |
| eventTransformed: [Stream$(T), [Stream$(), dart.functionType(EventSink, [EventSink$(T)])]] |
| }), |
| methods: () => ({ |
| asBroadcastStream: [Stream$(T), [], {onListen: dart.functionType(dart.void, [StreamSubscription$(T)]), onCancel: dart.functionType(dart.void, [StreamSubscription$(T)])}], |
| where: [Stream$(T), [dart.functionType(core.bool, [T])]], |
| map: [Stream$(), [dart.functionType(dart.dynamic, [T])]], |
| asyncMap: [Stream$(), [dart.functionType(dart.dynamic, [T])]], |
| asyncExpand: [Stream$(), [dart.functionType(Stream$(), [T])]], |
| handleError: [Stream$(T), [core.Function], {test: dart.functionType(core.bool, [dart.dynamic])}], |
| expand: [Stream$(), [dart.functionType(core.Iterable, [T])]], |
| pipe: [Future, [StreamConsumer$(T)]], |
| transform: [Stream$(), [StreamTransformer$(T, dart.dynamic)]], |
| reduce: [Future$(T), [dart.functionType(T, [T, T])]], |
| fold: [Future, [dart.dynamic, dart.functionType(dart.dynamic, [dart.dynamic, T])]], |
| join: [Future$(core.String), [], [core.String]], |
| contains: [Future$(core.bool), [core.Object]], |
| forEach: [Future, [dart.functionType(dart.void, [T])]], |
| every: [Future$(core.bool), [dart.functionType(core.bool, [T])]], |
| any: [Future$(core.bool), [dart.functionType(core.bool, [T])]], |
| toList: [Future$(core.List$(T)), []], |
| toSet: [Future$(core.Set$(T)), []], |
| drain: [Future, [], [dart.dynamic]], |
| take: [Stream$(T), [core.int]], |
| takeWhile: [Stream$(T), [dart.functionType(core.bool, [T])]], |
| skip: [Stream$(T), [core.int]], |
| skipWhile: [Stream$(T), [dart.functionType(core.bool, [T])]], |
| distinct: [Stream$(T), [], [dart.functionType(core.bool, [T, T])]], |
| firstWhere: [Future, [dart.functionType(core.bool, [T])], {defaultValue: dart.functionType(core.Object, [])}], |
| lastWhere: [Future, [dart.functionType(core.bool, [T])], {defaultValue: dart.functionType(core.Object, [])}], |
| singleWhere: [Future$(T), [dart.functionType(core.bool, [T])]], |
| elementAt: [Future$(T), [core.int]], |
| timeout: [Stream$(), [core.Duration], {onTimeout: dart.functionType(dart.void, [EventSink])}] |
| }) |
| }); |
| return Stream; |
| }); |
| let Stream = Stream$(); |
| let _StreamImpl$ = dart.generic(function(T) { |
| class _StreamImpl extends Stream$(T) { |
| _StreamImpl() { |
| super.Stream(); |
| } |
| 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; |
| cancelOnError = core.identical(true, cancelOnError); |
| let subscription = this[_createSubscription](onData, onError, onDone, cancelOnError); |
| this[_onListen](subscription); |
| return dart.as(subscription, StreamSubscription$(T)); |
| } |
| [_createSubscription](onData, onError, onDone, cancelOnError) { |
| dart.as(onData, dart.functionType(dart.void, [T])); |
| dart.as(onDone, dart.functionType(dart.void, [])); |
| return new (_BufferingStreamSubscription$(T))(onData, onError, onDone, cancelOnError); |
| } |
| [_onListen](subscription) {} |
| } |
| dart.setSignature(_StreamImpl, { |
| methods: () => ({ |
| listen: [StreamSubscription$(T), [dart.functionType(dart.void, [T])], {onError: core.Function, onDone: dart.functionType(dart.void, []), cancelOnError: core.bool}], |
| [_createSubscription]: [StreamSubscription$(T), [dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]], |
| [_onListen]: [dart.void, [StreamSubscription]] |
| }) |
| }); |
| return _StreamImpl; |
| }); |
| let _StreamImpl = _StreamImpl$(); |
| let _ControllerStream$ = dart.generic(function(T) { |
| class _ControllerStream extends _StreamImpl$(T) { |
| _ControllerStream(controller) { |
| this[_controller] = controller; |
| } |
| [_createSubscription](onData, onError, onDone, cancelOnError) { |
| dart.as(onData, dart.functionType(dart.void, [T])); |
| dart.as(onDone, dart.functionType(dart.void, [])); |
| return this[_controller][_subscribe](onData, onError, onDone, cancelOnError); |
| } |
| get hashCode() { |
| return dart.notNull(dart.hashCode(this[_controller])) ^ 892482866; |
| } |
| ['=='](other) { |
| if (dart.notNull(core.identical(this, other))) |
| return true; |
| if (!dart.is(other, _ControllerStream$())) |
| return false; |
| let otherStream = dart.as(other, _ControllerStream$()); |
| return core.identical(otherStream[_controller], this[_controller]); |
| } |
| } |
| dart.setSignature(_ControllerStream, { |
| constructors: () => ({_ControllerStream: [_ControllerStream$(T), [_StreamControllerLifecycle$(T)]]}), |
| methods: () => ({ |
| [_createSubscription]: [StreamSubscription$(T), [dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]], |
| '==': [core.bool, [core.Object]] |
| }) |
| }); |
| return _ControllerStream; |
| }); |
| let _ControllerStream = _ControllerStream$(); |
| let _BroadcastStream$ = dart.generic(function(T) { |
| class _BroadcastStream extends _ControllerStream$(T) { |
| _BroadcastStream(controller) { |
| super._ControllerStream(dart.as(controller, _StreamControllerLifecycle$(T))); |
| } |
| get isBroadcast() { |
| return true; |
| } |
| } |
| dart.setSignature(_BroadcastStream, { |
| constructors: () => ({_BroadcastStream: [_BroadcastStream$(T), [_StreamControllerLifecycle]]}) |
| }); |
| return _BroadcastStream; |
| }); |
| let _BroadcastStream = _BroadcastStream$(); |
| let _next = Symbol('_next'); |
| let _previous = Symbol('_previous'); |
| class _BroadcastSubscriptionLink extends core.Object { |
| _BroadcastSubscriptionLink() { |
| this[_next] = null; |
| this[_previous] = null; |
| } |
| } |
| let _eventState = Symbol('_eventState'); |
| let _expectsEvent = Symbol('_expectsEvent'); |
| let _toggleEventId = Symbol('_toggleEventId'); |
| let _isFiring = Symbol('_isFiring'); |
| let _setRemoveAfterFiring = Symbol('_setRemoveAfterFiring'); |
| let _removeAfterFiring = Symbol('_removeAfterFiring'); |
| let _onPause = Symbol('_onPause'); |
| let _onResume = Symbol('_onResume'); |
| let _recordCancel = Symbol('_recordCancel'); |
| let _onCancel = Symbol('_onCancel'); |
| let _recordPause = Symbol('_recordPause'); |
| let _recordResume = Symbol('_recordResume'); |
| let _zone = Symbol('_zone'); |
| let _state = Symbol('_state'); |
| let _onData = Symbol('_onData'); |
| let _onError = Symbol('_onError'); |
| let _onDone = Symbol('_onDone'); |
| let _cancelFuture = Symbol('_cancelFuture'); |
| let _pending = Symbol('_pending'); |
| let _setPendingEvents = Symbol('_setPendingEvents'); |
| let _isCanceled = Symbol('_isCanceled'); |
| let _extractPending = Symbol('_extractPending'); |
| let _isPaused = Symbol('_isPaused'); |
| let _isInputPaused = Symbol('_isInputPaused'); |
| let _inCallback = Symbol('_inCallback'); |
| let _guardCallback = Symbol('_guardCallback'); |
| let _decrementPauseCount = Symbol('_decrementPauseCount'); |
| let _hasPending = Symbol('_hasPending'); |
| let _mayResumeInput = Symbol('_mayResumeInput'); |
| let _cancel = Symbol('_cancel'); |
| let _isClosed = Symbol('_isClosed'); |
| let _waitsForCancel = Symbol('_waitsForCancel'); |
| let _canFire = Symbol('_canFire'); |
| let _cancelOnError = Symbol('_cancelOnError'); |
| let _incrementPauseCount = Symbol('_incrementPauseCount'); |
| let _sendData = Symbol('_sendData'); |
| let _addPending = Symbol('_addPending'); |
| let _sendError = Symbol('_sendError'); |
| let _sendDone = Symbol('_sendDone'); |
| let _close = Symbol('_close'); |
| let _checkState = Symbol('_checkState'); |
| let _BufferingStreamSubscription$ = dart.generic(function(T) { |
| class _BufferingStreamSubscription extends core.Object { |
| _BufferingStreamSubscription(onData, onError, onDone, cancelOnError) { |
| this[_zone] = Zone.current; |
| this[_state] = dart.notNull(cancelOnError) ? _BufferingStreamSubscription$()._STATE_CANCEL_ON_ERROR : 0; |
| this[_onData] = null; |
| this[_onError] = null; |
| this[_onDone] = null; |
| this[_cancelFuture] = null; |
| this[_pending] = null; |
| this.onData(onData); |
| this.onError(onError); |
| this.onDone(onDone); |
| } |
| [_setPendingEvents](pendingEvents) { |
| dart.assert(this[_pending] == null); |
| if (pendingEvents == null) |
| return; |
| this[_pending] = pendingEvents; |
| if (!dart.notNull(pendingEvents.isEmpty)) { |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStreamSubscription$()._STATE_HAS_PENDING); |
| 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 = dart.as(_nullDataHandler, __CastType20); |
| this[_onData] = dart.as(this[_zone].registerUnaryCallback(handleData), _DataHandler$(T)); |
| } |
| onError(handleError) { |
| if (handleError == null) |
| handleError = _nullErrorHandler; |
| this[_onError] = _registerErrorHandler(handleError, this[_zone]); |
| } |
| onDone(handleDone) { |
| dart.as(handleDone, dart.functionType(dart.void, [])); |
| if (handleDone == null) |
| handleDone = _nullDoneHandler; |
| this[_onDone] = this[_zone].registerCallback(handleDone); |
| } |
| pause(resumeSignal) { |
| if (resumeSignal === void 0) |
| resumeSignal = null; |
| if (dart.notNull(this[_isCanceled])) |
| return; |
| let wasPaused = this[_isPaused]; |
| let wasInputPaused = this[_isInputPaused]; |
| this[_state] = dart.notNull(this[_state]) + dart.notNull(_BufferingStreamSubscription$()._STATE_PAUSE_COUNT) | dart.notNull(_BufferingStreamSubscription$()._STATE_INPUT_PAUSED); |
| if (resumeSignal != null) |
| resumeSignal.whenComplete(dart.bind(this, 'resume')); |
| if (!dart.notNull(wasPaused) && this[_pending] != null) |
| this[_pending].cancelSchedule(); |
| if (!dart.notNull(wasInputPaused) && !dart.notNull(this[_inCallback])) |
| this[_guardCallback](dart.bind(this, _onPause)); |
| } |
| resume() { |
| if (dart.notNull(this[_isCanceled])) |
| return; |
| if (dart.notNull(this[_isPaused])) { |
| this[_decrementPauseCount](); |
| if (!dart.notNull(this[_isPaused])) { |
| if (dart.notNull(this[_hasPending]) && !dart.notNull(this[_pending].isEmpty)) { |
| this[_pending].schedule(this); |
| } else { |
| dart.assert(this[_mayResumeInput]); |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStreamSubscription$()._STATE_INPUT_PAUSED); |
| if (!dart.notNull(this[_inCallback])) |
| this[_guardCallback](dart.bind(this, _onResume)); |
| } |
| } |
| } |
| } |
| cancel() { |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStreamSubscription$()._STATE_WAIT_FOR_CANCEL); |
| if (dart.notNull(this[_isCanceled])) |
| return this[_cancelFuture]; |
| this[_cancel](); |
| return this[_cancelFuture]; |
| } |
| asFuture(futureValue) { |
| if (futureValue === void 0) |
| futureValue = null; |
| let result = new (_Future$(T))(); |
| this[_onDone] = dart.fn(() => { |
| result[_complete](futureValue); |
| }); |
| this[_onError] = dart.fn(((error, stackTrace) => { |
| this.cancel(); |
| result[_completeError](error, dart.as(stackTrace, core.StackTrace)); |
| }).bind(this)); |
| return result; |
| } |
| get [_isInputPaused]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscription$()._STATE_INPUT_PAUSED)) != 0; |
| } |
| get [_isClosed]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscription$()._STATE_CLOSED)) != 0; |
| } |
| get [_isCanceled]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscription$()._STATE_CANCELED)) != 0; |
| } |
| get [_waitsForCancel]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscription$()._STATE_WAIT_FOR_CANCEL)) != 0; |
| } |
| get [_inCallback]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK)) != 0; |
| } |
| get [_hasPending]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscription$()._STATE_HAS_PENDING)) != 0; |
| } |
| get [_isPaused]() { |
| return dart.notNull(this[_state]) >= dart.notNull(_BufferingStreamSubscription$()._STATE_PAUSE_COUNT); |
| } |
| get [_canFire]() { |
| return dart.notNull(this[_state]) < dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK); |
| } |
| get [_mayResumeInput]() { |
| return !dart.notNull(this[_isPaused]) && (this[_pending] == null || dart.notNull(this[_pending].isEmpty)); |
| } |
| get [_cancelOnError]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscription$()._STATE_CANCEL_ON_ERROR)) != 0; |
| } |
| get isPaused() { |
| return this[_isPaused]; |
| } |
| [_cancel]() { |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStreamSubscription$()._STATE_CANCELED); |
| if (dart.notNull(this[_hasPending])) { |
| this[_pending].cancelSchedule(); |
| } |
| if (!dart.notNull(this[_inCallback])) |
| this[_pending] = null; |
| this[_cancelFuture] = this[_onCancel](); |
| } |
| [_incrementPauseCount]() { |
| this[_state] = dart.notNull(this[_state]) + dart.notNull(_BufferingStreamSubscription$()._STATE_PAUSE_COUNT) | dart.notNull(_BufferingStreamSubscription$()._STATE_INPUT_PAUSED); |
| } |
| [_decrementPauseCount]() { |
| dart.assert(this[_isPaused]); |
| this[_state] = dart.notNull(this[_state]) - dart.notNull(_BufferingStreamSubscription$()._STATE_PAUSE_COUNT); |
| } |
| [_add](data) { |
| dart.as(data, T); |
| dart.assert(!dart.notNull(this[_isClosed])); |
| if (dart.notNull(this[_isCanceled])) |
| return; |
| if (dart.notNull(this[_canFire])) { |
| this[_sendData](data); |
| } else { |
| this[_addPending](new _DelayedData(data)); |
| } |
| } |
| [_addError](error, stackTrace) { |
| if (dart.notNull(this[_isCanceled])) |
| return; |
| if (dart.notNull(this[_canFire])) { |
| this[_sendError](error, stackTrace); |
| } else { |
| this[_addPending](new _DelayedError(error, stackTrace)); |
| } |
| } |
| [_close]() { |
| dart.assert(!dart.notNull(this[_isClosed])); |
| if (dart.notNull(this[_isCanceled])) |
| return; |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStreamSubscription$()._STATE_CLOSED); |
| if (dart.notNull(this[_canFire])) { |
| this[_sendDone](); |
| } else { |
| this[_addPending](dart.const(new _DelayedDone())); |
| } |
| } |
| [_onPause]() { |
| dart.assert(this[_isInputPaused]); |
| } |
| [_onResume]() { |
| dart.assert(!dart.notNull(this[_isInputPaused])); |
| } |
| [_onCancel]() { |
| dart.assert(this[_isCanceled]); |
| return null; |
| } |
| [_addPending](event) { |
| let pending = dart.as(this[_pending], _StreamImplEvents); |
| if (this[_pending] == null) |
| pending = this[_pending] = new _StreamImplEvents(); |
| pending.add(event); |
| if (!dart.notNull(this[_hasPending])) { |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStreamSubscription$()._STATE_HAS_PENDING); |
| if (!dart.notNull(this[_isPaused])) { |
| this[_pending].schedule(this); |
| } |
| } |
| } |
| [_sendData](data) { |
| dart.as(data, T); |
| dart.assert(!dart.notNull(this[_isCanceled])); |
| dart.assert(!dart.notNull(this[_isPaused])); |
| dart.assert(!dart.notNull(this[_inCallback])); |
| let wasInputPaused = this[_isInputPaused]; |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK); |
| this[_zone].runUnaryGuarded(this[_onData], data); |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK); |
| this[_checkState](wasInputPaused); |
| } |
| [_sendError](error, stackTrace) { |
| dart.assert(!dart.notNull(this[_isCanceled])); |
| dart.assert(!dart.notNull(this[_isPaused])); |
| dart.assert(!dart.notNull(this[_inCallback])); |
| let wasInputPaused = this[_isInputPaused]; |
| let sendError = (function() { |
| if (dart.notNull(this[_isCanceled]) && !dart.notNull(this[_waitsForCancel])) |
| return; |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK); |
| if (dart.is(this[_onError], ZoneBinaryCallback)) { |
| this[_zone].runBinaryGuarded(dart.as(this[_onError], __CastType22), error, stackTrace); |
| } else { |
| this[_zone].runUnaryGuarded(dart.as(this[_onError], __CastType25), error); |
| } |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK); |
| }).bind(this); |
| dart.fn(sendError, dart.void, []); |
| if (dart.notNull(this[_cancelOnError])) { |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStreamSubscription$()._STATE_WAIT_FOR_CANCEL); |
| this[_cancel](); |
| if (dart.is(this[_cancelFuture], Future)) { |
| this[_cancelFuture].whenComplete(sendError); |
| } else { |
| sendError(); |
| } |
| } else { |
| sendError(); |
| this[_checkState](wasInputPaused); |
| } |
| } |
| [_sendDone]() { |
| dart.assert(!dart.notNull(this[_isCanceled])); |
| dart.assert(!dart.notNull(this[_isPaused])); |
| dart.assert(!dart.notNull(this[_inCallback])); |
| let sendDone = (function() { |
| if (!dart.notNull(this[_waitsForCancel])) |
| return; |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStreamSubscription$()._STATE_CANCELED) | dart.notNull(_BufferingStreamSubscription$()._STATE_CLOSED) | dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK); |
| this[_zone].runGuarded(this[_onDone]); |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK); |
| }).bind(this); |
| dart.fn(sendDone, dart.void, []); |
| this[_cancel](); |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStreamSubscription$()._STATE_WAIT_FOR_CANCEL); |
| if (dart.is(this[_cancelFuture], Future)) { |
| this[_cancelFuture].whenComplete(sendDone); |
| } else { |
| sendDone(); |
| } |
| } |
| [_guardCallback](callback) { |
| dart.assert(!dart.notNull(this[_inCallback])); |
| let wasInputPaused = this[_isInputPaused]; |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK); |
| dart.dcall(callback); |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK); |
| this[_checkState](wasInputPaused); |
| } |
| [_checkState](wasInputPaused) { |
| dart.assert(!dart.notNull(this[_inCallback])); |
| if (dart.notNull(this[_hasPending]) && dart.notNull(this[_pending].isEmpty)) { |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStreamSubscription$()._STATE_HAS_PENDING); |
| if (dart.notNull(this[_isInputPaused]) && dart.notNull(this[_mayResumeInput])) { |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStreamSubscription$()._STATE_INPUT_PAUSED); |
| } |
| } |
| while (true) { |
| if (dart.notNull(this[_isCanceled])) { |
| this[_pending] = null; |
| return; |
| } |
| let isInputPaused = this[_isInputPaused]; |
| if (wasInputPaused == isInputPaused) |
| break; |
| this[_state] = dart.notNull(this[_state]) ^ dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK); |
| if (dart.notNull(isInputPaused)) { |
| this[_onPause](); |
| } else { |
| this[_onResume](); |
| } |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK); |
| wasInputPaused = isInputPaused; |
| } |
| if (dart.notNull(this[_hasPending]) && !dart.notNull(this[_isPaused])) { |
| this[_pending].schedule(this); |
| } |
| } |
| } |
| _BufferingStreamSubscription[dart.implements] = () => [StreamSubscription$(T), _EventSink$(T), _EventDispatch$(T)]; |
| dart.setSignature(_BufferingStreamSubscription, { |
| constructors: () => ({_BufferingStreamSubscription: [_BufferingStreamSubscription$(T), [dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]]}), |
| methods: () => ({ |
| [_setPendingEvents]: [dart.void, [_PendingEvents]], |
| [_extractPending]: [_PendingEvents, []], |
| onData: [dart.void, [dart.functionType(dart.void, [T])]], |
| onError: [dart.void, [core.Function]], |
| onDone: [dart.void, [dart.functionType(dart.void, [])]], |
| pause: [dart.void, [], [Future]], |
| resume: [dart.void, []], |
| cancel: [Future, []], |
| asFuture: [Future, [], [dart.dynamic]], |
| [_cancel]: [dart.void, []], |
| [_incrementPauseCount]: [dart.void, []], |
| [_decrementPauseCount]: [dart.void, []], |
| [_add]: [dart.void, [T]], |
| [_addError]: [dart.void, [core.Object, core.StackTrace]], |
| [_close]: [dart.void, []], |
| [_onPause]: [dart.void, []], |
| [_onResume]: [dart.void, []], |
| [_onCancel]: [Future, []], |
| [_addPending]: [dart.void, [_DelayedEvent]], |
| [_sendData]: [dart.void, [T]], |
| [_sendError]: [dart.void, [core.Object, core.StackTrace]], |
| [_sendDone]: [dart.void, []], |
| [_guardCallback]: [dart.void, [dart.dynamic]], |
| [_checkState]: [dart.void, [core.bool]] |
| }) |
| }); |
| return _BufferingStreamSubscription; |
| }); |
| let _BufferingStreamSubscription = _BufferingStreamSubscription$(); |
| let _ControllerSubscription$ = dart.generic(function(T) { |
| class _ControllerSubscription extends _BufferingStreamSubscription$(T) { |
| _ControllerSubscription(controller, onData, onError, onDone, cancelOnError) { |
| this[_controller] = controller; |
| super._BufferingStreamSubscription(onData, onError, onDone, cancelOnError); |
| } |
| [_onCancel]() { |
| return this[_controller][_recordCancel](this); |
| } |
| [_onPause]() { |
| this[_controller][_recordPause](this); |
| } |
| [_onResume]() { |
| this[_controller][_recordResume](this); |
| } |
| } |
| dart.setSignature(_ControllerSubscription, { |
| constructors: () => ({_ControllerSubscription: [_ControllerSubscription$(T), [_StreamControllerLifecycle$(T), dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]]}) |
| }); |
| return _ControllerSubscription; |
| }); |
| let _ControllerSubscription = _ControllerSubscription$(); |
| let _BroadcastSubscription$ = dart.generic(function(T) { |
| class _BroadcastSubscription extends _ControllerSubscription$(T) { |
| _BroadcastSubscription(controller, onData, onError, onDone, cancelOnError) { |
| this[_eventState] = null; |
| this[_next] = null; |
| this[_previous] = null; |
| super._ControllerSubscription(dart.as(controller, _StreamControllerLifecycle$(T)), onData, onError, onDone, cancelOnError); |
| this[_next] = this[_previous] = this; |
| } |
| get [_controller]() { |
| return dart.as(super[_controller], _BroadcastStreamController$(T)); |
| } |
| [_expectsEvent](eventId) { |
| return (dart.notNull(this[_eventState]) & dart.notNull(_BroadcastSubscription$()._STATE_EVENT_ID)) == eventId; |
| } |
| [_toggleEventId]() { |
| this[_eventState] = dart.notNull(this[_eventState]) ^ dart.notNull(_BroadcastSubscription$()._STATE_EVENT_ID); |
| } |
| get [_isFiring]() { |
| return (dart.notNull(this[_eventState]) & dart.notNull(_BroadcastSubscription$()._STATE_FIRING)) != 0; |
| } |
| [_setRemoveAfterFiring]() { |
| dart.assert(this[_isFiring]); |
| this[_eventState] = dart.notNull(this[_eventState]) | dart.notNull(_BroadcastSubscription$()._STATE_REMOVE_AFTER_FIRING); |
| } |
| get [_removeAfterFiring]() { |
| return (dart.notNull(this[_eventState]) & dart.notNull(_BroadcastSubscription$()._STATE_REMOVE_AFTER_FIRING)) != 0; |
| } |
| [_onPause]() {} |
| [_onResume]() {} |
| } |
| _BroadcastSubscription[dart.implements] = () => [_BroadcastSubscriptionLink]; |
| dart.setSignature(_BroadcastSubscription, { |
| constructors: () => ({_BroadcastSubscription: [_BroadcastSubscription$(T), [_StreamControllerLifecycle, dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]]}), |
| methods: () => ({ |
| [_expectsEvent]: [core.bool, [core.int]], |
| [_toggleEventId]: [dart.void, []], |
| [_setRemoveAfterFiring]: [dart.void, []] |
| }) |
| }); |
| return _BroadcastSubscription; |
| }); |
| let _BroadcastSubscription = _BroadcastSubscription$(); |
| _BroadcastSubscription._STATE_EVENT_ID = 1; |
| _BroadcastSubscription._STATE_FIRING = 2; |
| _BroadcastSubscription._STATE_REMOVE_AFTER_FIRING = 4; |
| let _addStreamState = Symbol('_addStreamState'); |
| let _doneFuture = Symbol('_doneFuture'); |
| let _isEmpty = Symbol('_isEmpty'); |
| let _hasOneListener = Symbol('_hasOneListener'); |
| let _isAddingStream = Symbol('_isAddingStream'); |
| let _mayAddEvent = Symbol('_mayAddEvent'); |
| let _ensureDoneFuture = Symbol('_ensureDoneFuture'); |
| let _addListener = Symbol('_addListener'); |
| let _removeListener = Symbol('_removeListener'); |
| let _callOnCancel = Symbol('_callOnCancel'); |
| let _addEventError = Symbol('_addEventError'); |
| let _forEachListener = Symbol('_forEachListener'); |
| let _mayComplete = Symbol('_mayComplete'); |
| let _asyncComplete = Symbol('_asyncComplete'); |
| let _BroadcastStreamController$ = dart.generic(function(T) { |
| class _BroadcastStreamController extends core.Object { |
| _BroadcastStreamController(onListen, onCancel) { |
| this[_onListen] = onListen; |
| this[_onCancel] = onCancel; |
| this[_state] = _BroadcastStreamController$()._STATE_INITIAL; |
| this[_next] = null; |
| this[_previous] = null; |
| this[_addStreamState] = null; |
| this[_doneFuture] = null; |
| this[_next] = this[_previous] = this; |
| } |
| get stream() { |
| return new (_BroadcastStream$(T))(this); |
| } |
| get sink() { |
| return new (_StreamSinkWrapper$(T))(this); |
| } |
| get isClosed() { |
| return (dart.notNull(this[_state]) & dart.notNull(_BroadcastStreamController$()._STATE_CLOSED)) != 0; |
| } |
| get isPaused() { |
| return false; |
| } |
| get hasListener() { |
| return !dart.notNull(this[_isEmpty]); |
| } |
| get [_hasOneListener]() { |
| dart.assert(!dart.notNull(this[_isEmpty])); |
| return core.identical(this[_next][_next], this); |
| } |
| get [_isFiring]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_BroadcastStreamController$()._STATE_FIRING)) != 0; |
| } |
| get [_isAddingStream]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_BroadcastStreamController$()._STATE_ADDSTREAM)) != 0; |
| } |
| get [_mayAddEvent]() { |
| return dart.notNull(this[_state]) < dart.notNull(_BroadcastStreamController$()._STATE_CLOSED); |
| } |
| [_ensureDoneFuture]() { |
| if (this[_doneFuture] != null) |
| return this[_doneFuture]; |
| return this[_doneFuture] = new _Future(); |
| } |
| get [_isEmpty]() { |
| return core.identical(this[_next], this); |
| } |
| [_addListener](subscription) { |
| dart.as(subscription, _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(_BroadcastStreamController$()._STATE_EVENT_ID); |
| } |
| [_removeListener](subscription) { |
| dart.as(subscription, _BroadcastSubscription$(T)); |
| dart.assert(core.identical(subscription[_controller], this)); |
| dart.assert(!dart.notNull(core.identical(subscription[_next], subscription))); |
| let previous = subscription[_previous]; |
| let next = subscription[_next]; |
| previous[_next] = next; |
| next[_previous] = previous; |
| subscription[_next] = subscription[_previous] = subscription; |
| } |
| [_subscribe](onData, onError, onDone, cancelOnError) { |
| dart.as(onData, dart.functionType(dart.void, [T])); |
| dart.as(onDone, dart.functionType(dart.void, [])); |
| if (dart.notNull(this.isClosed)) { |
| if (onDone == null) |
| onDone = _nullDoneHandler; |
| return new (_DoneStreamSubscription$(T))(onDone); |
| } |
| let subscription = new (_BroadcastSubscription$(T))(this, onData, onError, onDone, cancelOnError); |
| this[_addListener](dart.as(subscription, _BroadcastSubscription$(T))); |
| if (dart.notNull(core.identical(this[_next], this[_previous]))) { |
| _runGuarded(this[_onListen]); |
| } |
| return dart.as(subscription, StreamSubscription$(T)); |
| } |
| [_recordCancel](sub) { |
| dart.as(sub, StreamSubscription$(T)); |
| let subscription = dart.as(sub, _BroadcastSubscription$(T)); |
| if (dart.notNull(core.identical(subscription[_next], subscription))) |
| return null; |
| dart.assert(!dart.notNull(core.identical(subscription[_next], subscription))); |
| if (dart.notNull(subscription[_isFiring])) { |
| subscription[_setRemoveAfterFiring](); |
| } else { |
| dart.assert(!dart.notNull(core.identical(subscription[_next], subscription))); |
| this[_removeListener](subscription); |
| if (!dart.notNull(this[_isFiring]) && dart.notNull(this[_isEmpty])) { |
| this[_callOnCancel](); |
| } |
| } |
| return null; |
| } |
| [_recordPause](subscription) { |
| dart.as(subscription, StreamSubscription$(T)); |
| } |
| [_recordResume](subscription) { |
| dart.as(subscription, StreamSubscription$(T)); |
| } |
| [_addEventError]() { |
| if (dart.notNull(this.isClosed)) { |
| return new core.StateError("Cannot add new events after calling close"); |
| } |
| dart.assert(this[_isAddingStream]); |
| return new core.StateError("Cannot add new events while doing an addStream"); |
| } |
| add(data) { |
| dart.as(data, T); |
| if (!dart.notNull(this[_mayAddEvent])) |
| dart.throw(this[_addEventError]()); |
| this[_sendData](data); |
| } |
| addError(error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| error = _nonNullError(error); |
| if (!dart.notNull(this[_mayAddEvent])) |
| dart.throw(this[_addEventError]()); |
| let replacement = Zone.current.errorCallback(error, stackTrace); |
| if (replacement != null) { |
| error = _nonNullError(replacement.error); |
| stackTrace = replacement.stackTrace; |
| } |
| this[_sendError](error, stackTrace); |
| } |
| close() { |
| if (dart.notNull(this.isClosed)) { |
| dart.assert(this[_doneFuture] != null); |
| return this[_doneFuture]; |
| } |
| if (!dart.notNull(this[_mayAddEvent])) |
| dart.throw(this[_addEventError]()); |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_BroadcastStreamController$()._STATE_CLOSED); |
| let doneFuture = this[_ensureDoneFuture](); |
| this[_sendDone](); |
| return doneFuture; |
| } |
| get done() { |
| return this[_ensureDoneFuture](); |
| } |
| addStream(stream, opts) { |
| dart.as(stream, Stream$(T)); |
| let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : true; |
| if (!dart.notNull(this[_mayAddEvent])) |
| dart.throw(this[_addEventError]()); |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_BroadcastStreamController$()._STATE_ADDSTREAM); |
| this[_addStreamState] = new (_AddStreamState$(T))(this, stream, cancelOnError); |
| return this[_addStreamState].addStreamFuture; |
| } |
| [_add](data) { |
| dart.as(data, T); |
| this[_sendData](data); |
| } |
| [_addError](error, stackTrace) { |
| this[_sendError](error, stackTrace); |
| } |
| [_close]() { |
| dart.assert(this[_isAddingStream]); |
| let addState = this[_addStreamState]; |
| this[_addStreamState] = null; |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BroadcastStreamController$()._STATE_ADDSTREAM); |
| addState.complete(); |
| } |
| [_forEachListener](action) { |
| dart.as(action, dart.functionType(dart.void, [_BufferingStreamSubscription$(T)])); |
| if (dart.notNull(this[_isFiring])) { |
| dart.throw(new core.StateError("Cannot fire new event. Controller is already firing an event")); |
| } |
| if (dart.notNull(this[_isEmpty])) |
| return; |
| let id = dart.notNull(this[_state]) & dart.notNull(_BroadcastStreamController$()._STATE_EVENT_ID); |
| this[_state] = dart.notNull(this[_state]) ^ (dart.notNull(_BroadcastStreamController$()._STATE_EVENT_ID) | dart.notNull(_BroadcastStreamController$()._STATE_FIRING)); |
| let link = this[_next]; |
| while (!dart.notNull(core.identical(link, this))) { |
| let subscription = dart.as(link, _BroadcastSubscription$(T)); |
| if (dart.notNull(subscription[_expectsEvent](id))) { |
| subscription[_eventState] = dart.notNull(subscription[_eventState]) | dart.notNull(_BroadcastSubscription._STATE_FIRING); |
| action(subscription); |
| subscription[_toggleEventId](); |
| link = subscription[_next]; |
| if (dart.notNull(subscription[_removeAfterFiring])) { |
| this[_removeListener](subscription); |
| } |
| subscription[_eventState] = dart.notNull(subscription[_eventState]) & ~dart.notNull(_BroadcastSubscription._STATE_FIRING); |
| } else { |
| link = subscription[_next]; |
| } |
| } |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BroadcastStreamController$()._STATE_FIRING); |
| if (dart.notNull(this[_isEmpty])) { |
| this[_callOnCancel](); |
| } |
| } |
| [_callOnCancel]() { |
| dart.assert(this[_isEmpty]); |
| if (dart.notNull(this.isClosed) && dart.notNull(this[_doneFuture][_mayComplete])) { |
| this[_doneFuture][_asyncComplete](null); |
| } |
| _runGuarded(this[_onCancel]); |
| } |
| } |
| _BroadcastStreamController[dart.implements] = () => [StreamController$(T), _StreamControllerLifecycle$(T), _BroadcastSubscriptionLink, _EventSink$(T), _EventDispatch$(T)]; |
| dart.setSignature(_BroadcastStreamController, { |
| constructors: () => ({_BroadcastStreamController: [_BroadcastStreamController$(T), [_NotificationHandler, _NotificationHandler]]}), |
| methods: () => ({ |
| [_ensureDoneFuture]: [_Future, []], |
| [_addListener]: [dart.void, [_BroadcastSubscription$(T)]], |
| [_removeListener]: [dart.void, [_BroadcastSubscription$(T)]], |
| [_subscribe]: [StreamSubscription$(T), [dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]], |
| [_recordCancel]: [Future, [StreamSubscription$(T)]], |
| [_recordPause]: [dart.void, [StreamSubscription$(T)]], |
| [_recordResume]: [dart.void, [StreamSubscription$(T)]], |
| [_addEventError]: [core.Error, []], |
| add: [dart.void, [T]], |
| addError: [dart.void, [core.Object], [core.StackTrace]], |
| close: [Future, []], |
| addStream: [Future, [Stream$(T)], {cancelOnError: core.bool}], |
| [_add]: [dart.void, [T]], |
| [_addError]: [dart.void, [core.Object, core.StackTrace]], |
| [_close]: [dart.void, []], |
| [_forEachListener]: [dart.void, [dart.functionType(dart.void, [_BufferingStreamSubscription$(T)])]], |
| [_callOnCancel]: [dart.void, []] |
| }) |
| }); |
| return _BroadcastStreamController; |
| }); |
| let _BroadcastStreamController = _BroadcastStreamController$(); |
| _BroadcastStreamController._STATE_INITIAL = 0; |
| _BroadcastStreamController._STATE_EVENT_ID = 1; |
| _BroadcastStreamController._STATE_FIRING = 2; |
| _BroadcastStreamController._STATE_CLOSED = 4; |
| _BroadcastStreamController._STATE_ADDSTREAM = 8; |
| let _SyncBroadcastStreamController$ = dart.generic(function(T) { |
| class _SyncBroadcastStreamController extends _BroadcastStreamController$(T) { |
| _SyncBroadcastStreamController(onListen, onCancel) { |
| super._BroadcastStreamController(onListen, onCancel); |
| } |
| [_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(_BroadcastStreamController._STATE_FIRING); |
| let subscription = dart.as(this[_next], _BroadcastSubscription); |
| subscription[_add](data); |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BroadcastStreamController._STATE_FIRING); |
| if (dart.notNull(this[_isEmpty])) { |
| this[_callOnCancel](); |
| } |
| return; |
| } |
| this[_forEachListener](dart.fn(subscription => { |
| dart.as(subscription, _BufferingStreamSubscription$(T)); |
| subscription[_add](data); |
| }, dart.dynamic, [_BufferingStreamSubscription$(T)])); |
| } |
| [_sendError](error, stackTrace) { |
| if (dart.notNull(this[_isEmpty])) |
| return; |
| this[_forEachListener](dart.fn(subscription => { |
| dart.as(subscription, _BufferingStreamSubscription$(T)); |
| subscription[_addError](error, stackTrace); |
| }, dart.dynamic, [_BufferingStreamSubscription$(T)])); |
| } |
| [_sendDone]() { |
| if (!dart.notNull(this[_isEmpty])) { |
| this[_forEachListener](dart.as(dart.fn(subscription => { |
| dart.as(subscription, _BroadcastSubscription$(T)); |
| subscription[_close](); |
| }, dart.dynamic, [_BroadcastSubscription$(T)]), __CastType2)); |
| } else { |
| dart.assert(this[_doneFuture] != null); |
| dart.assert(this[_doneFuture][_mayComplete]); |
| this[_doneFuture][_asyncComplete](null); |
| } |
| } |
| } |
| dart.setSignature(_SyncBroadcastStreamController, { |
| constructors: () => ({_SyncBroadcastStreamController: [_SyncBroadcastStreamController$(T), [dart.functionType(dart.void, []), dart.functionType(dart.void, [])]]}), |
| methods: () => ({ |
| [_sendData]: [dart.void, [T]], |
| [_sendError]: [dart.void, [core.Object, core.StackTrace]], |
| [_sendDone]: [dart.void, []] |
| }) |
| }); |
| return _SyncBroadcastStreamController; |
| }); |
| let _SyncBroadcastStreamController = _SyncBroadcastStreamController$(); |
| let _AsyncBroadcastStreamController$ = dart.generic(function(T) { |
| class _AsyncBroadcastStreamController extends _BroadcastStreamController$(T) { |
| _AsyncBroadcastStreamController(onListen, onCancel) { |
| super._BroadcastStreamController(onListen, onCancel); |
| } |
| [_sendData](data) { |
| dart.as(data, T); |
| for (let link = this[_next]; !dart.notNull(core.identical(link, this)); link = link[_next]) { |
| let subscription = dart.as(link, _BroadcastSubscription$(T)); |
| subscription[_addPending](new _DelayedData(data)); |
| } |
| } |
| [_sendError](error, stackTrace) { |
| for (let link = this[_next]; !dart.notNull(core.identical(link, this)); link = link[_next]) { |
| let subscription = dart.as(link, _BroadcastSubscription$(T)); |
| subscription[_addPending](new _DelayedError(error, stackTrace)); |
| } |
| } |
| [_sendDone]() { |
| if (!dart.notNull(this[_isEmpty])) { |
| for (let link = this[_next]; !dart.notNull(core.identical(link, this)); link = link[_next]) { |
| let subscription = dart.as(link, _BroadcastSubscription$(T)); |
| subscription[_addPending](dart.const(new _DelayedDone())); |
| } |
| } else { |
| dart.assert(this[_doneFuture] != null); |
| dart.assert(this[_doneFuture][_mayComplete]); |
| this[_doneFuture][_asyncComplete](null); |
| } |
| } |
| } |
| dart.setSignature(_AsyncBroadcastStreamController, { |
| constructors: () => ({_AsyncBroadcastStreamController: [_AsyncBroadcastStreamController$(T), [dart.functionType(dart.void, []), dart.functionType(dart.void, [])]]}), |
| methods: () => ({ |
| [_sendData]: [dart.void, [T]], |
| [_sendError]: [dart.void, [core.Object, core.StackTrace]], |
| [_sendDone]: [dart.void, []] |
| }) |
| }); |
| return _AsyncBroadcastStreamController; |
| }); |
| let _AsyncBroadcastStreamController = _AsyncBroadcastStreamController$(); |
| let _addPendingEvent = Symbol('_addPendingEvent'); |
| let _AsBroadcastStreamController$ = dart.generic(function(T) { |
| class _AsBroadcastStreamController extends _SyncBroadcastStreamController$(T) { |
| _AsBroadcastStreamController(onListen, onCancel) { |
| this[_pending] = null; |
| super._SyncBroadcastStreamController(onListen, onCancel); |
| } |
| get [_hasPending]() { |
| return this[_pending] != null && !dart.notNull(this[_pending].isEmpty); |
| } |
| [_addPendingEvent](event) { |
| if (this[_pending] == null) { |
| this[_pending] = new _StreamImplEvents(); |
| } |
| this[_pending].add(event); |
| } |
| add(data) { |
| dart.as(data, T); |
| if (!dart.notNull(this.isClosed) && dart.notNull(this[_isFiring])) { |
| this[_addPendingEvent](new (_DelayedData$(T))(data)); |
| return; |
| } |
| super.add(data); |
| while (dart.notNull(this[_hasPending])) { |
| this[_pending].handleNext(this); |
| } |
| } |
| addError(error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| if (!dart.notNull(this.isClosed) && dart.notNull(this[_isFiring])) { |
| this[_addPendingEvent](new _DelayedError(error, stackTrace)); |
| return; |
| } |
| if (!dart.notNull(this[_mayAddEvent])) |
| dart.throw(this[_addEventError]()); |
| this[_sendError](error, stackTrace); |
| while (dart.notNull(this[_hasPending])) { |
| this[_pending].handleNext(this); |
| } |
| } |
| close() { |
| if (!dart.notNull(this.isClosed) && dart.notNull(this[_isFiring])) { |
| this[_addPendingEvent](dart.const(new _DelayedDone())); |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_BroadcastStreamController._STATE_CLOSED); |
| return super.done; |
| } |
| let result = super.close(); |
| dart.assert(!dart.notNull(this[_hasPending])); |
| return result; |
| } |
| [_callOnCancel]() { |
| if (dart.notNull(this[_hasPending])) { |
| this[_pending].clear(); |
| this[_pending] = null; |
| } |
| super[_callOnCancel](); |
| } |
| } |
| _AsBroadcastStreamController[dart.implements] = () => [_EventDispatch$(T)]; |
| dart.setSignature(_AsBroadcastStreamController, { |
| constructors: () => ({_AsBroadcastStreamController: [_AsBroadcastStreamController$(T), [dart.functionType(dart.void, []), dart.functionType(dart.void, [])]]}), |
| methods: () => ({ |
| [_addPendingEvent]: [dart.void, [_DelayedEvent]], |
| add: [dart.void, [T]] |
| }) |
| }); |
| return _AsBroadcastStreamController; |
| }); |
| let _AsBroadcastStreamController = _AsBroadcastStreamController$(); |
| let _pauseCount = Symbol('_pauseCount'); |
| let _resume = Symbol('_resume'); |
| let _DoneSubscription$ = dart.generic(function(T) { |
| class _DoneSubscription extends core.Object { |
| _DoneSubscription() { |
| this[_pauseCount] = 0; |
| } |
| onData(handleData) { |
| dart.as(handleData, dart.functionType(dart.void, [T])); |
| } |
| onError(handleError) {} |
| onDone(handleDone) { |
| dart.as(handleDone, dart.functionType(dart.void, [])); |
| } |
| pause(resumeSignal) { |
| if (resumeSignal === void 0) |
| resumeSignal = null; |
| if (resumeSignal != null) |
| resumeSignal.then(dart.bind(this, _resume)); |
| this[_pauseCount] = dart.notNull(this[_pauseCount]) + 1; |
| } |
| resume() { |
| this[_resume](null); |
| } |
| [_resume](_) { |
| if (dart.notNull(this[_pauseCount]) > 0) { |
| this[_pauseCount] = dart.notNull(this[_pauseCount]) - 1; |
| } |
| } |
| cancel() { |
| return new _Future.immediate(null); |
| } |
| get isPaused() { |
| return dart.notNull(this[_pauseCount]) > 0; |
| } |
| asFuture(value) { |
| if (value === void 0) |
| value = null; |
| return new _Future(); |
| } |
| } |
| _DoneSubscription[dart.implements] = () => [StreamSubscription$(T)]; |
| dart.setSignature(_DoneSubscription, { |
| methods: () => ({ |
| onData: [dart.void, [dart.functionType(dart.void, [T])]], |
| onError: [dart.void, [core.Function]], |
| onDone: [dart.void, [dart.functionType(dart.void, [])]], |
| pause: [dart.void, [], [Future]], |
| resume: [dart.void, []], |
| [_resume]: [dart.void, [dart.dynamic]], |
| cancel: [Future, []], |
| asFuture: [Future, [], [core.Object]] |
| }) |
| }); |
| return _DoneSubscription; |
| }); |
| let _DoneSubscription = _DoneSubscription$(); |
| let __CastType2$ = dart.generic(function(T) { |
| let __CastType2 = dart.typedef('__CastType2', () => dart.functionType(dart.void, [_BufferingStreamSubscription$(T)])); |
| return __CastType2; |
| }); |
| let __CastType2 = __CastType2$(); |
| class DeferredLibrary extends core.Object { |
| DeferredLibrary(libraryName, opts) { |
| let uri = opts && 'uri' in opts ? opts.uri : null; |
| this.libraryName = libraryName; |
| this.uri = uri; |
| } |
| load() { |
| dart.throw('DeferredLibrary not supported. ' + 'please use the `import "lib.dart" deferred as lib` syntax.'); |
| } |
| } |
| dart.setSignature(DeferredLibrary, { |
| constructors: () => ({DeferredLibrary: [DeferredLibrary, [core.String], {uri: core.String}]}), |
| methods: () => ({load: [Future$(core.Null), []]}) |
| }); |
| DeferredLibrary[dart.metadata] = () => [dart.const(new core.Deprecated("Dart sdk v. 1.8"))]; |
| let _s = Symbol('_s'); |
| class DeferredLoadException extends core.Object { |
| DeferredLoadException(s) { |
| this[_s] = s; |
| } |
| toString() { |
| return `DeferredLoadException: '${this[_s]}'`; |
| } |
| } |
| DeferredLoadException[dart.implements] = () => [core.Exception]; |
| dart.setSignature(DeferredLoadException, { |
| constructors: () => ({DeferredLoadException: [DeferredLoadException, [core.String]]}) |
| }); |
| let _completeWithValue = Symbol('_completeWithValue'); |
| let Future$ = dart.generic(function(T) { |
| class Future extends core.Object { |
| static new(computation) { |
| let result = new (_Future$(T))(); |
| Timer.run(dart.fn(() => { |
| try { |
| result[_complete](computation()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _completeWithErrorCallback(result, e, s); |
| } |
| |
| })); |
| return dart.as(result, Future$(T)); |
| } |
| static microtask(computation) { |
| let result = new (_Future$(T))(); |
| scheduleMicrotask(dart.fn(() => { |
| try { |
| result[_complete](computation()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _completeWithErrorCallback(result, e, s); |
| } |
| |
| })); |
| return dart.as(result, Future$(T)); |
| } |
| static sync(computation) { |
| try { |
| let result = computation(); |
| return Future$(T).value(result); |
| } catch (error) { |
| let stackTrace = dart.stackTrace(error); |
| return Future$(T).error(error, stackTrace); |
| } |
| |
| } |
| static value(value) { |
| if (value === void 0) |
| value = null; |
| return new (_Future$(T)).immediate(value); |
| } |
| static error(error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| error = _nonNullError(error); |
| if (!dart.notNull(core.identical(Zone.current, _ROOT_ZONE))) { |
| let replacement = Zone.current.errorCallback(error, stackTrace); |
| if (replacement != null) { |
| error = _nonNullError(replacement.error); |
| stackTrace = replacement.stackTrace; |
| } |
| } |
| return new (_Future$(T)).immediateError(error, stackTrace); |
| } |
| static delayed(duration, computation) { |
| if (computation === void 0) |
| computation = null; |
| let result = new (_Future$(T))(); |
| Timer.new(duration, dart.fn(() => { |
| try { |
| result[_complete](computation == null ? null : computation()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _completeWithErrorCallback(result, e, s); |
| } |
| |
| })); |
| return dart.as(result, Future$(T)); |
| } |
| static wait(futures, opts) { |
| let eagerError = opts && 'eagerError' in opts ? opts.eagerError : false; |
| let cleanUp = opts && 'cleanUp' in opts ? opts.cleanUp : null; |
| dart.as(cleanUp, dart.functionType(dart.void, [dart.dynamic])); |
| let result = new (_Future$(core.List))(); |
| let values = null; |
| let remaining = 0; |
| let error = null; |
| let stackTrace = null; |
| function handleError(theError, theStackTrace) { |
| remaining = dart.notNull(remaining) - 1; |
| if (values != null) { |
| if (cleanUp != null) { |
| for (let value of values) { |
| if (value != null) { |
| Future$().sync(dart.fn(() => { |
| dart.dcall(cleanUp, value); |
| })); |
| } |
| } |
| } |
| values = null; |
| if (remaining == 0 || dart.notNull(eagerError)) { |
| result[_completeError](theError, dart.as(theStackTrace, core.StackTrace)); |
| } else { |
| error = theError; |
| stackTrace = dart.as(theStackTrace, core.StackTrace); |
| } |
| } else if (remaining == 0 && !dart.notNull(eagerError)) { |
| result[_completeError](error, stackTrace); |
| } |
| } |
| dart.fn(handleError, dart.void, [dart.dynamic, dart.dynamic]); |
| for (let future of futures) { |
| let pos = remaining; |
| remaining = dart.notNull(pos) + 1; |
| future.then(dart.fn(value => { |
| remaining = dart.notNull(remaining) - 1; |
| if (values != null) { |
| values[dartx.set](pos, value); |
| if (remaining == 0) { |
| result[_completeWithValue](values); |
| } |
| } else { |
| if (cleanUp != null && value != null) { |
| Future$().sync(dart.fn(() => { |
| dart.dcall(cleanUp, value); |
| })); |
| } |
| if (remaining == 0 && !dart.notNull(eagerError)) { |
| result[_completeError](error, stackTrace); |
| } |
| } |
| }, dart.dynamic, [core.Object]), {onError: handleError}); |
| } |
| if (remaining == 0) { |
| return Future$(core.List).value(dart.const([])); |
| } |
| values = core.List.new(remaining); |
| return result; |
| } |
| static forEach(input, f) { |
| dart.as(f, dart.functionType(dart.dynamic, [dart.dynamic])); |
| let iterator = input[dartx.iterator]; |
| return Future$().doWhile(dart.fn(() => { |
| if (!dart.notNull(iterator.moveNext())) |
| return false; |
| return Future$().sync(dart.fn(() => dart.dcall(f, iterator.current))).then(dart.fn(_ => true, core.bool, [dart.dynamic])); |
| })); |
| } |
| static doWhile(f) { |
| dart.as(f, dart.functionType(dart.dynamic, [])); |
| let doneSignal = new _Future(); |
| let nextIteration = null; |
| nextIteration = Zone.current.bindUnaryCallback(dart.fn(keepGoing => { |
| if (dart.notNull(keepGoing)) { |
| Future$().sync(f).then(dart.as(nextIteration, __CastType4), {onError: dart.bind(doneSignal, _completeError)}); |
| } else { |
| doneSignal[_complete](null); |
| } |
| }, dart.dynamic, [core.bool]), {runGuarded: true}); |
| dart.dcall(nextIteration, true); |
| return doneSignal; |
| } |
| } |
| dart.setSignature(Future, { |
| constructors: () => ({ |
| new: [Future$(T), [dart.functionType(dart.dynamic, [])]], |
| microtask: [Future$(T), [dart.functionType(dart.dynamic, [])]], |
| sync: [Future$(T), [dart.functionType(dart.dynamic, [])]], |
| value: [Future$(T), [], [dart.dynamic]], |
| error: [Future$(T), [core.Object], [core.StackTrace]], |
| delayed: [Future$(T), [core.Duration], [dart.functionType(T, [])]] |
| }), |
| statics: () => ({ |
| wait: [Future$(core.List), [core.Iterable$(Future$())], {eagerError: core.bool, cleanUp: dart.functionType(dart.void, [dart.dynamic])}], |
| forEach: [Future$(), [core.Iterable, dart.functionType(dart.dynamic, [dart.dynamic])]], |
| doWhile: [Future$(), [dart.functionType(dart.dynamic, [])]] |
| }), |
| names: ['wait', 'forEach', 'doWhile'] |
| }); |
| return Future; |
| }); |
| let Future = Future$(); |
| dart.defineLazyProperties(Future, { |
| get _nullFuture() { |
| return new _Future.immediate(null); |
| } |
| }); |
| class TimeoutException extends core.Object { |
| TimeoutException(message, duration) { |
| if (duration === void 0) |
| duration = null; |
| this.message = message; |
| this.duration = duration; |
| } |
| toString() { |
| let result = "TimeoutException"; |
| if (this.duration != null) |
| result = `TimeoutException after ${this.duration}`; |
| if (this.message != null) |
| result = `${result}: ${this.message}`; |
| return result; |
| } |
| } |
| TimeoutException[dart.implements] = () => [core.Exception]; |
| dart.setSignature(TimeoutException, { |
| constructors: () => ({TimeoutException: [TimeoutException, [core.String], [core.Duration]]}) |
| }); |
| let Completer$ = dart.generic(function(T) { |
| class Completer extends core.Object { |
| static new() { |
| return new (_AsyncCompleter$(T))(); |
| } |
| static sync() { |
| return new (_SyncCompleter$(T))(); |
| } |
| } |
| dart.setSignature(Completer, { |
| constructors: () => ({ |
| new: [Completer$(T), []], |
| sync: [Completer$(T), []] |
| }) |
| }); |
| return Completer; |
| }); |
| let Completer = Completer$(); |
| function _completeWithErrorCallback(result, error, stackTrace) { |
| let replacement = Zone.current.errorCallback(error, dart.as(stackTrace, core.StackTrace)); |
| if (replacement != null) { |
| error = _nonNullError(replacement.error); |
| stackTrace = replacement.stackTrace; |
| } |
| result[_completeError](error, dart.as(stackTrace, core.StackTrace)); |
| } |
| dart.fn(_completeWithErrorCallback, () => dart.definiteFunctionType(dart.void, [_Future, dart.dynamic, dart.dynamic])); |
| function _nonNullError(error) { |
| return error != null ? error : new core.NullThrownError(); |
| } |
| dart.fn(_nonNullError, core.Object, [core.Object]); |
| let __CastType4 = dart.typedef('__CastType4', () => dart.functionType(dart.dynamic, [dart.dynamic])); |
| let _FutureOnValue$ = dart.generic(function(T) { |
| let _FutureOnValue = dart.typedef('_FutureOnValue', () => dart.functionType(dart.dynamic, [T])); |
| return _FutureOnValue; |
| }); |
| let _FutureOnValue = _FutureOnValue$(); |
| let _FutureErrorTest = dart.typedef('_FutureErrorTest', () => dart.functionType(core.bool, [dart.dynamic])); |
| let _FutureAction = dart.typedef('_FutureAction', () => dart.functionType(dart.dynamic, [])); |
| let _Completer$ = dart.generic(function(T) { |
| class _Completer extends core.Object { |
| _Completer() { |
| this.future = new (_Future$(T))(); |
| } |
| completeError(error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| error = _nonNullError(error); |
| if (!dart.notNull(this.future[_mayComplete])) |
| dart.throw(new core.StateError("Future already completed")); |
| let replacement = Zone.current.errorCallback(error, stackTrace); |
| if (replacement != null) { |
| error = _nonNullError(replacement.error); |
| stackTrace = replacement.stackTrace; |
| } |
| this[_completeError](error, stackTrace); |
| } |
| get isCompleted() { |
| return !dart.notNull(this.future[_mayComplete]); |
| } |
| } |
| _Completer[dart.implements] = () => [Completer$(T)]; |
| dart.setSignature(_Completer, { |
| methods: () => ({completeError: [dart.void, [core.Object], [core.StackTrace]]}) |
| }); |
| return _Completer; |
| }); |
| let _Completer = _Completer$(); |
| let _asyncCompleteError = Symbol('_asyncCompleteError'); |
| let _AsyncCompleter$ = dart.generic(function(T) { |
| class _AsyncCompleter extends _Completer$(T) { |
| _AsyncCompleter() { |
| super._Completer(); |
| } |
| complete(value) { |
| if (value === void 0) |
| value = null; |
| if (!dart.notNull(this.future[_mayComplete])) |
| dart.throw(new core.StateError("Future already completed")); |
| this.future[_asyncComplete](value); |
| } |
| [_completeError](error, stackTrace) { |
| this.future[_asyncCompleteError](error, stackTrace); |
| } |
| } |
| dart.setSignature(_AsyncCompleter, { |
| methods: () => ({ |
| complete: [dart.void, [], [dart.dynamic]], |
| [_completeError]: [dart.void, [core.Object, core.StackTrace]] |
| }) |
| }); |
| return _AsyncCompleter; |
| }); |
| let _AsyncCompleter = _AsyncCompleter$(); |
| let _SyncCompleter$ = dart.generic(function(T) { |
| class _SyncCompleter extends _Completer$(T) { |
| _SyncCompleter() { |
| super._Completer(); |
| } |
| complete(value) { |
| if (value === void 0) |
| value = null; |
| if (!dart.notNull(this.future[_mayComplete])) |
| dart.throw(new core.StateError("Future already completed")); |
| this.future[_complete](value); |
| } |
| [_completeError](error, stackTrace) { |
| this.future[_completeError](error, stackTrace); |
| } |
| } |
| dart.setSignature(_SyncCompleter, { |
| methods: () => ({ |
| complete: [dart.void, [], [dart.dynamic]], |
| [_completeError]: [dart.void, [core.Object, core.StackTrace]] |
| }) |
| }); |
| return _SyncCompleter; |
| }); |
| let _SyncCompleter = _SyncCompleter$(); |
| let _nextListener = Symbol('_nextListener'); |
| let _onValue = Symbol('_onValue'); |
| let _errorTest = Symbol('_errorTest'); |
| let _whenCompleteAction = Symbol('_whenCompleteAction'); |
| class _FutureListener extends core.Object { |
| then(result, onValue, errorCallback) { |
| this.result = result; |
| this.callback = onValue; |
| this.errorCallback = errorCallback; |
| this.state = errorCallback == null ? _FutureListener.STATE_THEN : _FutureListener.STATE_THEN_ONERROR; |
| this[_nextListener] = null; |
| } |
| catchError(result, errorCallback, test) { |
| this.result = result; |
| this.errorCallback = errorCallback; |
| this.callback = test; |
| this.state = test == null ? _FutureListener.STATE_CATCHERROR : _FutureListener.STATE_CATCHERROR_TEST; |
| this[_nextListener] = null; |
| } |
| whenComplete(result, onComplete) { |
| this.result = result; |
| this.callback = onComplete; |
| this.errorCallback = null; |
| this.state = _FutureListener.STATE_WHENCOMPLETE; |
| this[_nextListener] = null; |
| } |
| chain(result) { |
| this.result = result; |
| this.callback = null; |
| this.errorCallback = null; |
| this.state = _FutureListener.STATE_CHAIN; |
| this[_nextListener] = null; |
| } |
| get [_zone]() { |
| return this.result[_zone]; |
| } |
| get handlesValue() { |
| return (dart.notNull(this.state) & dart.notNull(_FutureListener.MASK_VALUE)) != 0; |
| } |
| get handlesError() { |
| return (dart.notNull(this.state) & dart.notNull(_FutureListener.MASK_ERROR)) != 0; |
| } |
| get hasErrorTest() { |
| return this.state == _FutureListener.STATE_CATCHERROR_TEST; |
| } |
| get handlesComplete() { |
| return this.state == _FutureListener.STATE_WHENCOMPLETE; |
| } |
| get [_onValue]() { |
| dart.assert(this.handlesValue); |
| return dart.as(this.callback, _FutureOnValue); |
| } |
| get [_onError]() { |
| return this.errorCallback; |
| } |
| get [_errorTest]() { |
| dart.assert(this.hasErrorTest); |
| return dart.as(this.callback, _FutureErrorTest); |
| } |
| get [_whenCompleteAction]() { |
| dart.assert(this.handlesComplete); |
| return dart.as(this.callback, _FutureAction); |
| } |
| } |
| dart.defineNamedConstructor(_FutureListener, 'then'); |
| dart.defineNamedConstructor(_FutureListener, 'catchError'); |
| dart.defineNamedConstructor(_FutureListener, 'whenComplete'); |
| dart.defineNamedConstructor(_FutureListener, 'chain'); |
| dart.setSignature(_FutureListener, { |
| constructors: () => ({ |
| then: [_FutureListener, [_Future, _FutureOnValue, core.Function]], |
| catchError: [_FutureListener, [_Future, core.Function, _FutureErrorTest]], |
| whenComplete: [_FutureListener, [_Future, _FutureAction]], |
| chain: [_FutureListener, [_Future]] |
| }) |
| }); |
| _FutureListener.MASK_VALUE = 1; |
| _FutureListener.MASK_ERROR = 2; |
| _FutureListener.MASK_TEST_ERROR = 4; |
| _FutureListener.MASK_WHENCOMPLETE = 8; |
| _FutureListener.STATE_CHAIN = 0; |
| _FutureListener.STATE_THEN = _FutureListener.MASK_VALUE; |
| _FutureListener.STATE_THEN_ONERROR = dart.notNull(_FutureListener.MASK_VALUE) | dart.notNull(_FutureListener.MASK_ERROR); |
| _FutureListener.STATE_CATCHERROR = _FutureListener.MASK_ERROR; |
| _FutureListener.STATE_CATCHERROR_TEST = dart.notNull(_FutureListener.MASK_ERROR) | dart.notNull(_FutureListener.MASK_TEST_ERROR); |
| _FutureListener.STATE_WHENCOMPLETE = _FutureListener.MASK_WHENCOMPLETE; |
| let _resultOrListeners = Symbol('_resultOrListeners'); |
| let _isChained = Symbol('_isChained'); |
| let _isComplete = Symbol('_isComplete'); |
| let _hasValue = Symbol('_hasValue'); |
| let _hasError = Symbol('_hasError'); |
| let _markPendingCompletion = Symbol('_markPendingCompletion'); |
| let _value = Symbol('_value'); |
| let _error = Symbol('_error'); |
| let _setValue = Symbol('_setValue'); |
| let _setErrorObject = Symbol('_setErrorObject'); |
| let _setError = Symbol('_setError'); |
| let _removeListeners = Symbol('_removeListeners'); |
| let _Future$ = dart.generic(function(T) { |
| class _Future extends core.Object { |
| _Future() { |
| this[_zone] = Zone.current; |
| this[_state] = _Future$()._INCOMPLETE; |
| this[_resultOrListeners] = null; |
| } |
| immediate(value) { |
| this[_zone] = Zone.current; |
| this[_state] = _Future$()._INCOMPLETE; |
| this[_resultOrListeners] = null; |
| this[_asyncComplete](value); |
| } |
| immediateError(error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| this[_zone] = Zone.current; |
| this[_state] = _Future$()._INCOMPLETE; |
| this[_resultOrListeners] = null; |
| this[_asyncCompleteError](error, stackTrace); |
| } |
| get [_mayComplete]() { |
| return this[_state] == _Future$()._INCOMPLETE; |
| } |
| get [_isChained]() { |
| return this[_state] == _Future$()._CHAINED; |
| } |
| get [_isComplete]() { |
| return dart.notNull(this[_state]) >= dart.notNull(_Future$()._VALUE); |
| } |
| get [_hasValue]() { |
| return this[_state] == _Future$()._VALUE; |
| } |
| get [_hasError]() { |
| return this[_state] == _Future$()._ERROR; |
| } |
| set [_isChained](value) { |
| if (dart.notNull(value)) { |
| dart.assert(!dart.notNull(this[_isComplete])); |
| this[_state] = _Future$()._CHAINED; |
| } else { |
| dart.assert(this[_isChained]); |
| this[_state] = _Future$()._INCOMPLETE; |
| } |
| } |
| then(f, opts) { |
| dart.as(f, dart.functionType(dart.dynamic, [T])); |
| let onError = opts && 'onError' in opts ? opts.onError : null; |
| let result = new (_Future$())(); |
| if (!dart.notNull(core.identical(result[_zone], _ROOT_ZONE))) { |
| f = dart.as(result[_zone].registerUnaryCallback(f), __CastType6); |
| if (onError != null) { |
| onError = _registerErrorHandler(onError, result[_zone]); |
| } |
| } |
| this[_addListener](new _FutureListener.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 (_Future$())(); |
| if (!dart.notNull(core.identical(result[_zone], _ROOT_ZONE))) { |
| onError = _registerErrorHandler(onError, result[_zone]); |
| if (test != null) |
| test = dart.as(result[_zone].registerUnaryCallback(test), __CastType8); |
| } |
| this[_addListener](new _FutureListener.catchError(result, onError, test)); |
| return result; |
| } |
| whenComplete(action) { |
| dart.as(action, dart.functionType(dart.dynamic, [])); |
| let result = new (_Future$(T))(); |
| if (!dart.notNull(core.identical(result[_zone], _ROOT_ZONE))) { |
| action = result[_zone].registerCallback(action); |
| } |
| this[_addListener](new _FutureListener.whenComplete(result, action)); |
| return dart.as(result, Future$(T)); |
| } |
| asStream() { |
| return Stream$(T).fromFuture(this); |
| } |
| [_markPendingCompletion]() { |
| if (!dart.notNull(this[_mayComplete])) |
| dart.throw(new core.StateError("Future already completed")); |
| this[_state] = _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])); |
| return dart.as(this[_resultOrListeners], AsyncError); |
| } |
| [_setValue](value) { |
| dart.as(value, T); |
| dart.assert(!dart.notNull(this[_isComplete])); |
| this[_state] = _Future$()._VALUE; |
| this[_resultOrListeners] = value; |
| } |
| [_setErrorObject](error) { |
| dart.assert(!dart.notNull(this[_isComplete])); |
| this[_state] = _Future$()._ERROR; |
| this[_resultOrListeners] = error; |
| } |
| [_setError](error, stackTrace) { |
| this[_setErrorObject](new AsyncError(error, stackTrace)); |
| } |
| [_addListener](listener) { |
| dart.assert(listener[_nextListener] == null); |
| if (dart.notNull(this[_isComplete])) { |
| this[_zone].scheduleMicrotask(dart.fn((() => { |
| _Future$()._propagateToListeners(this, listener); |
| }).bind(this))); |
| } else { |
| listener[_nextListener] = dart.as(this[_resultOrListeners], _FutureListener); |
| this[_resultOrListeners] = listener; |
| } |
| } |
| [_removeListeners]() { |
| dart.assert(!dart.notNull(this[_isComplete])); |
| let current = dart.as(this[_resultOrListeners], _FutureListener); |
| this[_resultOrListeners] = null; |
| let prev = null; |
| while (current != null) { |
| let next = current[_nextListener]; |
| current[_nextListener] = prev; |
| prev = current; |
| current = next; |
| } |
| return prev; |
| } |
| static _chainForeignFuture(source, target) { |
| dart.assert(!dart.notNull(target[_isComplete])); |
| dart.assert(!dart.is(source, _Future$())); |
| target[_isChained] = true; |
| source.then(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])}); |
| } |
| static _chainCoreFuture(source, target) { |
| dart.assert(!dart.notNull(target[_isComplete])); |
| dart.assert(dart.is(source, _Future$())); |
| target[_isChained] = true; |
| let listener = new _FutureListener.chain(target); |
| if (dart.notNull(source[_isComplete])) { |
| _Future$()._propagateToListeners(source, listener); |
| } else { |
| source[_addListener](listener); |
| } |
| } |
| [_complete](value) { |
| dart.assert(!dart.notNull(this[_isComplete])); |
| if (dart.is(value, Future)) { |
| if (dart.is(value, _Future$())) { |
| _Future$()._chainCoreFuture(dart.as(value, _Future$()), this); |
| } else { |
| _Future$()._chainForeignFuture(dart.as(value, Future), this); |
| } |
| } else { |
| let listeners = this[_removeListeners](); |
| this[_setValue](dart.as(value, T)); |
| _Future$()._propagateToListeners(this, listeners); |
| } |
| } |
| [_completeWithValue](value) { |
| dart.assert(!dart.notNull(this[_isComplete])); |
| dart.assert(!dart.is(value, Future)); |
| let listeners = this[_removeListeners](); |
| this[_setValue](dart.as(value, T)); |
| _Future$()._propagateToListeners(this, listeners); |
| } |
| [_completeError](error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| dart.assert(!dart.notNull(this[_isComplete])); |
| let listeners = this[_removeListeners](); |
| this[_setError](error, stackTrace); |
| _Future$()._propagateToListeners(this, listeners); |
| } |
| [_asyncComplete](value) { |
| dart.assert(!dart.notNull(this[_isComplete])); |
| if (value == null) { |
| } else if (dart.is(value, Future)) { |
| let typedFuture = dart.as(value, Future$(T)); |
| if (dart.is(typedFuture, _Future$())) { |
| let coreFuture = dart.as(typedFuture, _Future$(T)); |
| if (dart.notNull(coreFuture[_isComplete]) && dart.notNull(coreFuture[_hasError])) { |
| this[_markPendingCompletion](); |
| this[_zone].scheduleMicrotask(dart.fn((() => { |
| _Future$()._chainCoreFuture(coreFuture, this); |
| }).bind(this))); |
| } else { |
| _Future$()._chainCoreFuture(coreFuture, this); |
| } |
| } else { |
| _Future$()._chainForeignFuture(typedFuture, this); |
| } |
| return; |
| } else { |
| let typedValue = dart.as(value, T); |
| } |
| this[_markPendingCompletion](); |
| this[_zone].scheduleMicrotask(dart.fn((() => { |
| this[_completeWithValue](value); |
| }).bind(this))); |
| } |
| [_asyncCompleteError](error, stackTrace) { |
| dart.assert(!dart.notNull(this[_isComplete])); |
| this[_markPendingCompletion](); |
| this[_zone].scheduleMicrotask(dart.fn((() => { |
| this[_completeError](error, stackTrace); |
| }).bind(this))); |
| } |
| static _propagateToListeners(source, listeners) { |
| while (true) { |
| dart.assert(source[_isComplete]); |
| let hasError = source[_hasError]; |
| if (listeners == null) { |
| if (dart.notNull(hasError)) { |
| let asyncError = source[_error]; |
| source[_zone].handleUncaughtError(asyncError.error, asyncError.stackTrace); |
| } |
| return; |
| } |
| while (listeners[_nextListener] != null) { |
| let listener = listeners; |
| listeners = listener[_nextListener]; |
| listener[_nextListener] = null; |
| _Future$()._propagateToListeners(source, listener); |
| } |
| let listener = listeners; |
| let listenerHasValue = true; |
| let sourceValue = dart.notNull(hasError) ? null : source[_value]; |
| let listenerValueOrError = sourceValue; |
| let isPropagationAborted = false; |
| 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); |
| return; |
| } |
| let oldZone = null; |
| if (!dart.notNull(core.identical(Zone.current, zone))) { |
| oldZone = Zone._enter(zone); |
| } |
| function handleValueCallback() { |
| try { |
| listenerValueOrError = zone.runUnary(listener[_onValue], sourceValue); |
| return true; |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| listenerValueOrError = new 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 = dart.notNull(core.identical(asyncError.error, e)) ? asyncError : new AsyncError(e, s); |
| listenerHasValue = false; |
| return; |
| } |
| |
| } |
| let errorCallback = listener[_onError]; |
| if (dart.notNull(matchesTest) && errorCallback != null) { |
| try { |
| if (dart.is(errorCallback, ZoneBinaryCallback)) { |
| listenerValueOrError = zone.runBinary(errorCallback, asyncError.error, asyncError.stackTrace); |
| } else { |
| listenerValueOrError = zone.runUnary(dart.as(errorCallback, __CastType10), asyncError.error); |
| } |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| listenerValueOrError = dart.notNull(core.identical(asyncError.error, e)) ? asyncError : new AsyncError(e, s); |
| listenerHasValue = false; |
| return; |
| } |
| |
| listenerHasValue = true; |
| } else { |
| listenerValueOrError = asyncError; |
| listenerHasValue = false; |
| } |
| } |
| dart.fn(handleError, dart.void, []); |
| function handleWhenCompleteCallback() { |
| let completeResult = null; |
| try { |
| completeResult = zone.run(listener[_whenCompleteAction]); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| if (dart.notNull(hasError) && dart.notNull(core.identical(source[_error].error, e))) { |
| listenerValueOrError = source[_error]; |
| } else { |
| listenerValueOrError = new AsyncError(e, s); |
| } |
| listenerHasValue = false; |
| return; |
| } |
| |
| if (dart.is(completeResult, Future)) { |
| let result = listener.result; |
| result[_isChained] = true; |
| isPropagationAborted = true; |
| dart.dsend(completeResult, 'then', dart.fn(ignored => { |
| _Future$()._propagateToListeners(source, new _FutureListener.chain(result)); |
| }), {onError: dart.fn((error, stackTrace) => { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| if (!dart.is(completeResult, _Future$())) { |
| completeResult = new (_Future$())(); |
| dart.dsend(completeResult, _setError, error, stackTrace); |
| } |
| _Future$()._propagateToListeners(dart.as(completeResult, _Future$()), new _FutureListener.chain(result)); |
| }, dart.dynamic, [dart.dynamic], [dart.dynamic])}); |
| } |
| } |
| dart.fn(handleWhenCompleteCallback, dart.void, []); |
| if (!dart.notNull(hasError)) { |
| if (dart.notNull(listener.handlesValue)) { |
| listenerHasValue = handleValueCallback(); |
| } |
| } else { |
| handleError(); |
| } |
| if (dart.notNull(listener.handlesComplete)) { |
| handleWhenCompleteCallback(); |
| } |
| if (oldZone != null) |
| Zone._leave(oldZone); |
| if (dart.notNull(isPropagationAborted)) |
| return; |
| if (dart.notNull(listenerHasValue) && !dart.notNull(core.identical(sourceValue, listenerValueOrError)) && dart.is(listenerValueOrError, Future)) { |
| let chainSource = dart.as(listenerValueOrError, Future); |
| let result = listener.result; |
| if (dart.is(chainSource, _Future$())) { |
| if (dart.notNull(chainSource[_isComplete])) { |
| result[_isChained] = true; |
| source = chainSource; |
| listeners = new _FutureListener.chain(result); |
| continue; |
| } else { |
| _Future$()._chainCoreFuture(chainSource, result); |
| } |
| } else { |
| _Future$()._chainForeignFuture(chainSource, result); |
| } |
| return; |
| } |
| } |
| let result = listener.result; |
| listeners = result[_removeListeners](); |
| if (dart.notNull(listenerHasValue)) { |
| result[_setValue](listenerValueOrError); |
| } else { |
| let asyncError = dart.as(listenerValueOrError, AsyncError); |
| result[_setErrorObject](asyncError); |
| } |
| source = result; |
| } |
| } |
| 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 (_Future$()).immediate(this); |
| let result = new (_Future$())(); |
| let timer = null; |
| if (onTimeout == null) { |
| timer = Timer.new(timeLimit, dart.fn(() => { |
| result[_completeError](new TimeoutException("Future not completed", timeLimit)); |
| })); |
| } else { |
| let zone = Zone.current; |
| onTimeout = zone.registerCallback(onTimeout); |
| timer = Timer.new(timeLimit, dart.fn(() => { |
| try { |
| result[_complete](zone.run(onTimeout)); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| result[_completeError](e, s); |
| } |
| |
| })); |
| } |
| this.then(dart.fn(v => { |
| dart.as(v, T); |
| if (dart.notNull(timer.isActive)) { |
| timer.cancel(); |
| result[_completeWithValue](v); |
| } |
| }, dart.dynamic, [T]), {onError: dart.fn((e, s) => { |
| if (dart.notNull(timer.isActive)) { |
| timer.cancel(); |
| result[_completeError](e, dart.as(s, core.StackTrace)); |
| } |
| })}); |
| return result; |
| } |
| } |
| _Future[dart.implements] = () => [Future$(T)]; |
| dart.defineNamedConstructor(_Future, 'immediate'); |
| dart.defineNamedConstructor(_Future, 'immediateError'); |
| dart.setSignature(_Future, { |
| constructors: () => ({ |
| _Future: [_Future$(T), []], |
| immediate: [_Future$(T), [dart.dynamic]], |
| immediateError: [_Future$(T), [dart.dynamic], [core.StackTrace]] |
| }), |
| methods: () => ({ |
| then: [Future, [dart.functionType(dart.dynamic, [T])], {onError: core.Function}], |
| catchError: [Future, [core.Function], {test: dart.functionType(core.bool, [dart.dynamic])}], |
| whenComplete: [Future$(T), [dart.functionType(dart.dynamic, [])]], |
| asStream: [Stream$(T), []], |
| [_markPendingCompletion]: [dart.void, []], |
| [_setValue]: [dart.void, [T]], |
| [_setErrorObject]: [dart.void, [AsyncError]], |
| [_setError]: [dart.void, [core.Object, core.StackTrace]], |
| [_addListener]: [dart.void, [_FutureListener]], |
| [_removeListeners]: [_FutureListener, []], |
| [_complete]: [dart.void, [dart.dynamic]], |
| [_completeWithValue]: [dart.void, [dart.dynamic]], |
| [_completeError]: [dart.void, [dart.dynamic], [core.StackTrace]], |
| [_asyncComplete]: [dart.void, [dart.dynamic]], |
| [_asyncCompleteError]: [dart.void, [dart.dynamic, core.StackTrace]], |
| timeout: [Future, [core.Duration], {onTimeout: dart.functionType(dart.dynamic, [])}] |
| }), |
| statics: () => ({ |
| _chainForeignFuture: [dart.void, [Future, _Future$()]], |
| _chainCoreFuture: [dart.void, [_Future$(), _Future$()]], |
| _propagateToListeners: [dart.void, [_Future$(), _FutureListener]] |
| }), |
| names: ['_chainForeignFuture', '_chainCoreFuture', '_propagateToListeners'] |
| }); |
| return _Future; |
| }); |
| let _Future = _Future$(); |
| _Future._INCOMPLETE = 0; |
| _Future._PENDING_COMPLETE = 1; |
| _Future._CHAINED = 2; |
| _Future._VALUE = 4; |
| _Future._ERROR = 8; |
| let __CastType6$ = dart.generic(function(T) { |
| let __CastType6 = dart.typedef('__CastType6', () => dart.functionType(dart.dynamic, [T])); |
| return __CastType6; |
| }); |
| let __CastType6 = __CastType6$(); |
| let __CastType8 = dart.typedef('__CastType8', () => dart.functionType(core.bool, [dart.dynamic])); |
| let __CastType10 = dart.typedef('__CastType10', () => dart.functionType(dart.dynamic, [dart.dynamic])); |
| let _AsyncCallback = dart.typedef('_AsyncCallback', () => dart.functionType(dart.void, [])); |
| class _AsyncCallbackEntry extends core.Object { |
| _AsyncCallbackEntry(callback) { |
| this.callback = callback; |
| this.next = null; |
| } |
| } |
| dart.setSignature(_AsyncCallbackEntry, { |
| constructors: () => ({_AsyncCallbackEntry: [_AsyncCallbackEntry, [_AsyncCallback]]}) |
| }); |
| exports._nextCallback = null; |
| exports._lastCallback = null; |
| exports._lastPriorityCallback = null; |
| exports._isInCallbackLoop = false; |
| function _asyncRunCallbackLoop() { |
| while (exports._nextCallback != null) { |
| exports._lastPriorityCallback = null; |
| let entry = exports._nextCallback; |
| exports._nextCallback = entry.next; |
| if (exports._nextCallback == null) |
| exports._lastCallback = null; |
| entry.callback(); |
| } |
| } |
| dart.fn(_asyncRunCallbackLoop, dart.void, []); |
| function _asyncRunCallback() { |
| exports._isInCallbackLoop = true; |
| try { |
| _asyncRunCallbackLoop(); |
| } finally { |
| exports._lastPriorityCallback = null; |
| exports._isInCallbackLoop = false; |
| if (exports._nextCallback != null) |
| _AsyncRun._scheduleImmediate(_asyncRunCallback); |
| } |
| } |
| dart.fn(_asyncRunCallback, dart.void, []); |
| function _scheduleAsyncCallback(callback) { |
| if (exports._nextCallback == null) { |
| exports._nextCallback = exports._lastCallback = new _AsyncCallbackEntry(dart.as(callback, _AsyncCallback)); |
| if (!dart.notNull(exports._isInCallbackLoop)) { |
| _AsyncRun._scheduleImmediate(_asyncRunCallback); |
| } |
| } else { |
| let newEntry = new _AsyncCallbackEntry(dart.as(callback, _AsyncCallback)); |
| exports._lastCallback.next = newEntry; |
| exports._lastCallback = newEntry; |
| } |
| } |
| dart.fn(_scheduleAsyncCallback, dart.void, [dart.dynamic]); |
| function _schedulePriorityAsyncCallback(callback) { |
| let entry = new _AsyncCallbackEntry(dart.as(callback, _AsyncCallback)); |
| if (exports._nextCallback == null) { |
| _scheduleAsyncCallback(callback); |
| exports._lastPriorityCallback = exports._lastCallback; |
| } else if (exports._lastPriorityCallback == null) { |
| entry.next = exports._nextCallback; |
| exports._nextCallback = exports._lastPriorityCallback = entry; |
| } else { |
| entry.next = exports._lastPriorityCallback.next; |
| exports._lastPriorityCallback.next = entry; |
| exports._lastPriorityCallback = entry; |
| if (entry.next == null) { |
| exports._lastCallback = entry; |
| } |
| } |
| } |
| dart.fn(_schedulePriorityAsyncCallback, dart.void, [dart.dynamic]); |
| function scheduleMicrotask(callback) { |
| if (dart.notNull(core.identical(_ROOT_ZONE, Zone.current))) { |
| _rootScheduleMicrotask(null, null, _ROOT_ZONE, callback); |
| return; |
| } |
| Zone.current.scheduleMicrotask(Zone.current.bindCallback(callback, {runGuarded: true})); |
| } |
| dart.fn(scheduleMicrotask, dart.void, [dart.functionType(dart.void, [])]); |
| class _AsyncRun extends core.Object { |
| static _scheduleImmediate(callback) { |
| dart.dcall(_AsyncRun.scheduleImmediateClosure, callback); |
| } |
| static _initializeScheduleImmediate() { |
| if (self.scheduleImmediate != null) { |
| return _AsyncRun._scheduleImmediateJsOverride; |
| } |
| if (self.MutationObserver != null && self.document != null) { |
| let div = self.document.createElement("div"); |
| let span = self.document.createElement("span"); |
| let storedCallback = null; |
| function internalCallback(_) { |
| _isolate_helper.leaveJsAsync(); |
| let f = storedCallback; |
| storedCallback = null; |
| dart.dcall(f); |
| } |
| dart.fn(internalCallback); |
| ; |
| let observer = new self.MutationObserver(internalCallback); |
| observer.observe(div, {childList: true}); |
| return dart.fn(callback => { |
| dart.assert(storedCallback == null); |
| _isolate_helper.enterJsAsync(); |
| storedCallback = callback; |
| div.firstChild ? div.removeChild(span) : div.appendChild(span); |
| }, dart.dynamic, [dart.functionType(dart.void, [])]); |
| } else if (self.setImmediate != null) { |
| return _AsyncRun._scheduleImmediateWithSetImmediate; |
| } |
| return _AsyncRun._scheduleImmediateWithTimer; |
| } |
| static _scheduleImmediateJsOverride(callback) { |
| function internalCallback() { |
| _isolate_helper.leaveJsAsync(); |
| callback(); |
| } |
| dart.fn(internalCallback); |
| ; |
| _isolate_helper.enterJsAsync(); |
| self.scheduleImmediate(internalCallback); |
| } |
| static _scheduleImmediateWithSetImmediate(callback) { |
| function internalCallback() { |
| _isolate_helper.leaveJsAsync(); |
| callback(); |
| } |
| dart.fn(internalCallback); |
| ; |
| _isolate_helper.enterJsAsync(); |
| self.setImmediate(internalCallback); |
| } |
| static _scheduleImmediateWithTimer(callback) { |
| Timer._createTimer(core.Duration.ZERO, callback); |
| } |
| } |
| dart.setSignature(_AsyncRun, { |
| statics: () => ({ |
| _scheduleImmediate: [dart.void, [dart.functionType(dart.void, [])]], |
| _initializeScheduleImmediate: [core.Function, []], |
| _scheduleImmediateJsOverride: [dart.void, [dart.functionType(dart.void, [])]], |
| _scheduleImmediateWithSetImmediate: [dart.void, [dart.functionType(dart.void, [])]], |
| _scheduleImmediateWithTimer: [dart.void, [dart.functionType(dart.void, [])]] |
| }), |
| names: ['_scheduleImmediate', '_initializeScheduleImmediate', '_scheduleImmediateJsOverride', '_scheduleImmediateWithSetImmediate', '_scheduleImmediateWithTimer'] |
| }); |
| dart.defineLazyProperties(_AsyncRun, { |
| get scheduleImmediateClosure() { |
| return _AsyncRun._initializeScheduleImmediate(); |
| } |
| }); |
| let StreamSubscription$ = dart.generic(function(T) { |
| class StreamSubscription extends core.Object {} |
| return StreamSubscription; |
| }); |
| let StreamSubscription = StreamSubscription$(); |
| let EventSink$ = dart.generic(function(T) { |
| class EventSink extends core.Object {} |
| EventSink[dart.implements] = () => [core.Sink$(T)]; |
| return EventSink; |
| }); |
| let EventSink = EventSink$(); |
| let _stream = Symbol('_stream'); |
| let StreamView$ = dart.generic(function(T) { |
| class StreamView extends Stream$(T) { |
| StreamView(stream) { |
| this[_stream] = stream; |
| super.Stream(); |
| } |
| get isBroadcast() { |
| return this[_stream].isBroadcast; |
| } |
| asBroadcastStream(opts) { |
| let onListen = opts && 'onListen' in opts ? opts.onListen : null; |
| dart.as(onListen, dart.functionType(dart.void, [StreamSubscription$(T)])); |
| let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null; |
| dart.as(onCancel, dart.functionType(dart.void, [StreamSubscription$(T)])); |
| return this[_stream].asBroadcastStream({onListen: onListen, onCancel: onCancel}); |
| } |
| 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 this[_stream].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError}); |
| } |
| } |
| dart.setSignature(StreamView, { |
| constructors: () => ({StreamView: [StreamView$(T), [Stream$(T)]]}), |
| methods: () => ({ |
| asBroadcastStream: [Stream$(T), [], {onListen: dart.functionType(dart.void, [StreamSubscription$(T)]), onCancel: dart.functionType(dart.void, [StreamSubscription$(T)])}], |
| listen: [StreamSubscription$(T), [dart.functionType(dart.void, [T])], {onError: core.Function, onDone: dart.functionType(dart.void, []), cancelOnError: core.bool}] |
| }) |
| }); |
| return StreamView; |
| }); |
| let StreamView = StreamView$(); |
| let StreamConsumer$ = dart.generic(function(S) { |
| class StreamConsumer extends core.Object {} |
| return StreamConsumer; |
| }); |
| let StreamConsumer = StreamConsumer$(); |
| let StreamSink$ = dart.generic(function(S) { |
| class StreamSink extends core.Object {} |
| StreamSink[dart.implements] = () => [StreamConsumer$(S), EventSink$(S)]; |
| return StreamSink; |
| }); |
| let StreamSink = StreamSink$(); |
| let StreamTransformer$ = dart.generic(function(S, T) { |
| class StreamTransformer extends core.Object { |
| static new(transformer) { |
| return new _StreamSubscriptionTransformer(transformer); |
| } |
| static fromHandlers(opts) { |
| return new _StreamHandlerTransformer(opts); |
| } |
| } |
| dart.setSignature(StreamTransformer, { |
| constructors: () => ({ |
| new: [StreamTransformer$(S, T), [dart.functionType(StreamSubscription$(T), [Stream$(S), core.bool])]], |
| fromHandlers: [StreamTransformer$(S, T), [], {handleData: dart.functionType(dart.void, [S, EventSink$(T)]), handleError: dart.functionType(dart.void, [core.Object, core.StackTrace, EventSink$(T)]), handleDone: dart.functionType(dart.void, [EventSink$(T)])}] |
| }) |
| }); |
| return StreamTransformer; |
| }); |
| let StreamTransformer = StreamTransformer$(); |
| let StreamIterator$ = dart.generic(function(T) { |
| class StreamIterator extends core.Object { |
| static new(stream) { |
| return new (_StreamIteratorImpl$(T))(stream); |
| } |
| } |
| dart.setSignature(StreamIterator, { |
| constructors: () => ({new: [StreamIterator$(T), [Stream$(T)]]}) |
| }); |
| return StreamIterator; |
| }); |
| let StreamIterator = StreamIterator$(); |
| let _ControllerEventSinkWrapper$ = dart.generic(function(T) { |
| class _ControllerEventSinkWrapper extends core.Object { |
| _ControllerEventSinkWrapper(sink) { |
| this[_sink] = sink; |
| } |
| add(data) { |
| dart.as(data, T); |
| this[_sink].add(data); |
| } |
| addError(error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| this[_sink].addError(error, stackTrace); |
| } |
| close() { |
| this[_sink].close(); |
| } |
| } |
| _ControllerEventSinkWrapper[dart.implements] = () => [EventSink$(T)]; |
| dart.setSignature(_ControllerEventSinkWrapper, { |
| constructors: () => ({_ControllerEventSinkWrapper: [_ControllerEventSinkWrapper$(T), [EventSink]]}), |
| methods: () => ({ |
| add: [dart.void, [T]], |
| addError: [dart.void, [dart.dynamic], [core.StackTrace]], |
| close: [dart.void, []] |
| }) |
| }); |
| return _ControllerEventSinkWrapper; |
| }); |
| let _ControllerEventSinkWrapper = _ControllerEventSinkWrapper$(); |
| let __CastType12 = dart.typedef('__CastType12', () => dart.functionType(dart.void, [StreamSubscription])); |
| let __CastType14 = dart.typedef('__CastType14', () => dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace])); |
| let __CastType17 = dart.typedef('__CastType17', () => dart.functionType(dart.void, [])); |
| let __CastType18 = dart.typedef('__CastType18', () => dart.functionType(dart.void, [EventSink])); |
| let StreamController$ = dart.generic(function(T) { |
| class StreamController extends core.Object { |
| static new(opts) { |
| let onListen = opts && 'onListen' in opts ? opts.onListen : null; |
| let onPause = opts && 'onPause' in opts ? opts.onPause : null; |
| 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.as(dart.notNull(sync) ? new _NoCallbackSyncStreamController() : new _NoCallbackAsyncStreamController(), StreamController$(T)); |
| } |
| return dart.notNull(sync) ? new (_SyncStreamController$(T))(onListen, onPause, onResume, onCancel) : new (_AsyncStreamController$(T))(onListen, onPause, onResume, onCancel); |
| } |
| static broadcast(opts) { |
| let onListen = opts && 'onListen' in opts ? opts.onListen : null; |
| let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null; |
| let sync = opts && 'sync' in opts ? opts.sync : false; |
| return dart.notNull(sync) ? new (_SyncBroadcastStreamController$(T))(onListen, onCancel) : new (_AsyncBroadcastStreamController$(T))(onListen, onCancel); |
| } |
| } |
| StreamController[dart.implements] = () => [StreamSink$(T)]; |
| dart.setSignature(StreamController, { |
| constructors: () => ({ |
| new: [StreamController$(T), [], {onListen: dart.functionType(dart.void, []), onPause: dart.functionType(dart.void, []), onResume: dart.functionType(dart.void, []), onCancel: dart.functionType(dart.dynamic, []), sync: core.bool}], |
| broadcast: [StreamController$(T), [], {onListen: dart.functionType(dart.void, []), onCancel: dart.functionType(dart.void, []), sync: core.bool}] |
| }) |
| }); |
| return StreamController; |
| }); |
| let StreamController = StreamController$(); |
| let _StreamControllerLifecycle$ = dart.generic(function(T) { |
| class _StreamControllerLifecycle extends core.Object { |
| [_recordPause](subscription) { |
| dart.as(subscription, StreamSubscription$(T)); |
| } |
| [_recordResume](subscription) { |
| dart.as(subscription, StreamSubscription$(T)); |
| } |
| [_recordCancel](subscription) { |
| dart.as(subscription, StreamSubscription$(T)); |
| return null; |
| } |
| } |
| dart.setSignature(_StreamControllerLifecycle, { |
| methods: () => ({ |
| [_recordPause]: [dart.void, [StreamSubscription$(T)]], |
| [_recordResume]: [dart.void, [StreamSubscription$(T)]], |
| [_recordCancel]: [Future, [StreamSubscription$(T)]] |
| }) |
| }); |
| return _StreamControllerLifecycle; |
| }); |
| let _StreamControllerLifecycle = _StreamControllerLifecycle$(); |
| let _varData = Symbol('_varData'); |
| let _isInitialState = Symbol('_isInitialState'); |
| let _subscription = Symbol('_subscription'); |
| let _pendingEvents = Symbol('_pendingEvents'); |
| let _ensurePendingEvents = Symbol('_ensurePendingEvents'); |
| let _badEventState = Symbol('_badEventState'); |
| let _StreamController$ = dart.generic(function(T) { |
| class _StreamController extends core.Object { |
| _StreamController() { |
| this[_varData] = null; |
| this[_state] = _StreamController$()._STATE_INITIAL; |
| this[_doneFuture] = null; |
| } |
| get stream() { |
| return new (_ControllerStream$(T))(this); |
| } |
| get sink() { |
| return new (_StreamSinkWrapper$(T))(this); |
| } |
| get [_isCanceled]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_StreamController$()._STATE_CANCELED)) != 0; |
| } |
| get hasListener() { |
| return (dart.notNull(this[_state]) & dart.notNull(_StreamController$()._STATE_SUBSCRIBED)) != 0; |
| } |
| get [_isInitialState]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_StreamController$()._STATE_SUBSCRIPTION_MASK)) == _StreamController$()._STATE_INITIAL; |
| } |
| get isClosed() { |
| return (dart.notNull(this[_state]) & dart.notNull(_StreamController$()._STATE_CLOSED)) != 0; |
| } |
| get isPaused() { |
| return dart.notNull(this.hasListener) ? this[_subscription][_isInputPaused] : !dart.notNull(this[_isCanceled]); |
| } |
| get [_isAddingStream]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_StreamController$()._STATE_ADDSTREAM)) != 0; |
| } |
| get [_mayAddEvent]() { |
| return dart.notNull(this[_state]) < dart.notNull(_StreamController$()._STATE_CLOSED); |
| } |
| get [_pendingEvents]() { |
| dart.assert(this[_isInitialState]); |
| if (!dart.notNull(this[_isAddingStream])) { |
| return dart.as(this[_varData], _PendingEvents); |
| } |
| let state = dart.as(this[_varData], _StreamControllerAddStreamState); |
| return dart.as(state.varData, _PendingEvents); |
| } |
| [_ensurePendingEvents]() { |
| dart.assert(this[_isInitialState]); |
| if (!dart.notNull(this[_isAddingStream])) { |
| if (this[_varData] == null) |
| this[_varData] = new _StreamImplEvents(); |
| return dart.as(this[_varData], _StreamImplEvents); |
| } |
| let state = dart.as(this[_varData], _StreamControllerAddStreamState); |
| if (state.varData == null) |
| state.varData = new _StreamImplEvents(); |
| return dart.as(state.varData, _StreamImplEvents); |
| } |
| get [_subscription]() { |
| dart.assert(this.hasListener); |
| if (dart.notNull(this[_isAddingStream])) { |
| let addState = dart.as(this[_varData], _StreamControllerAddStreamState); |
| return dart.as(addState.varData, _ControllerSubscription); |
| } |
| return dart.as(this[_varData], _ControllerSubscription); |
| } |
| [_badEventState]() { |
| if (dart.notNull(this.isClosed)) { |
| return new core.StateError("Cannot add event after closing"); |
| } |
| dart.assert(this[_isAddingStream]); |
| return new core.StateError("Cannot add event while adding a stream"); |
| } |
| addStream(source, opts) { |
| dart.as(source, Stream$(T)); |
| 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 _Future.immediate(null); |
| let addState = new _StreamControllerAddStreamState(this, this[_varData], source, cancelOnError); |
| this[_varData] = addState; |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_StreamController$()._STATE_ADDSTREAM); |
| return addState.addStreamFuture; |
| } |
| get done() { |
| return this[_ensureDoneFuture](); |
| } |
| [_ensureDoneFuture]() { |
| if (this[_doneFuture] == null) { |
| this[_doneFuture] = dart.notNull(this[_isCanceled]) ? Future._nullFuture : new _Future(); |
| } |
| return this[_doneFuture]; |
| } |
| add(value) { |
| dart.as(value, T); |
| if (!dart.notNull(this[_mayAddEvent])) |
| dart.throw(this[_badEventState]()); |
| this[_add](value); |
| } |
| addError(error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| error = _nonNullError(error); |
| if (!dart.notNull(this[_mayAddEvent])) |
| dart.throw(this[_badEventState]()); |
| let replacement = Zone.current.errorCallback(error, stackTrace); |
| if (replacement != null) { |
| error = _nonNullError(replacement.error); |
| stackTrace = replacement.stackTrace; |
| } |
| this[_addError](error, stackTrace); |
| } |
| close() { |
| if (dart.notNull(this.isClosed)) { |
| return this[_ensureDoneFuture](); |
| } |
| if (!dart.notNull(this[_mayAddEvent])) |
| dart.throw(this[_badEventState]()); |
| this[_closeUnchecked](); |
| return this[_ensureDoneFuture](); |
| } |
| [_closeUnchecked]() { |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_StreamController$()._STATE_CLOSED); |
| if (dart.notNull(this.hasListener)) { |
| this[_sendDone](); |
| } else if (dart.notNull(this[_isInitialState])) { |
| this[_ensurePendingEvents]().add(dart.const(new _DelayedDone())); |
| } |
| } |
| [_add](value) { |
| dart.as(value, T); |
| if (dart.notNull(this.hasListener)) { |
| this[_sendData](value); |
| } else if (dart.notNull(this[_isInitialState])) { |
| this[_ensurePendingEvents]().add(new (_DelayedData$(T))(value)); |
| } |
| } |
| [_addError](error, stackTrace) { |
| if (dart.notNull(this.hasListener)) { |
| this[_sendError](error, stackTrace); |
| } else if (dart.notNull(this[_isInitialState])) { |
| this[_ensurePendingEvents]().add(new _DelayedError(error, stackTrace)); |
| } |
| } |
| [_close]() { |
| dart.assert(this[_isAddingStream]); |
| let addState = dart.as(this[_varData], _StreamControllerAddStreamState); |
| this[_varData] = addState.varData; |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_StreamController$()._STATE_ADDSTREAM); |
| addState.complete(); |
| } |
| [_subscribe](onData, onError, onDone, cancelOnError) { |
| dart.as(onData, dart.functionType(dart.void, [T])); |
| dart.as(onDone, dart.functionType(dart.void, [])); |
| if (!dart.notNull(this[_isInitialState])) { |
| dart.throw(new core.StateError("Stream has already been listened to.")); |
| } |
| let subscription = new _ControllerSubscription(this, onData, onError, onDone, cancelOnError); |
| let pendingEvents = this[_pendingEvents]; |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_StreamController$()._STATE_SUBSCRIBED); |
| if (dart.notNull(this[_isAddingStream])) { |
| let addState = dart.as(this[_varData], _StreamControllerAddStreamState); |
| addState.varData = subscription; |
| addState.resume(); |
| } else { |
| this[_varData] = subscription; |
| } |
| subscription[_setPendingEvents](pendingEvents); |
| subscription[_guardCallback](dart.fn((() => { |
| _runGuarded(this[_onListen]); |
| }).bind(this))); |
| return dart.as(subscription, StreamSubscription$(T)); |
| } |
| [_recordCancel](subscription) { |
| dart.as(subscription, StreamSubscription$(T)); |
| let result = null; |
| if (dart.notNull(this[_isAddingStream])) { |
| let addState = dart.as(this[_varData], _StreamControllerAddStreamState); |
| result = addState.cancel(); |
| } |
| this[_varData] = null; |
| this[_state] = dart.notNull(this[_state]) & ~(dart.notNull(_StreamController$()._STATE_SUBSCRIBED) | dart.notNull(_StreamController$()._STATE_ADDSTREAM)) | dart.notNull(_StreamController$()._STATE_CANCELED); |
| if (this[_onCancel] != null) { |
| if (result == null) { |
| try { |
| result = dart.as(this[_onCancel](), Future); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| result = new _Future(); |
| result[_asyncCompleteError](e, s); |
| } |
| |
| } else { |
| result = result.whenComplete(this[_onCancel]); |
| } |
| } |
| let complete = (function() { |
| if (this[_doneFuture] != null && dart.notNull(this[_doneFuture][_mayComplete])) { |
| this[_doneFuture][_asyncComplete](null); |
| } |
| }).bind(this); |
| dart.fn(complete, dart.void, []); |
| if (result != null) { |
| result = result.whenComplete(complete); |
| } else { |
| complete(); |
| } |
| return result; |
| } |
| [_recordPause](subscription) { |
| dart.as(subscription, StreamSubscription$(T)); |
| if (dart.notNull(this[_isAddingStream])) { |
| let addState = dart.as(this[_varData], _StreamControllerAddStreamState); |
| addState.pause(); |
| } |
| _runGuarded(this[_onPause]); |
| } |
| [_recordResume](subscription) { |
| dart.as(subscription, StreamSubscription$(T)); |
| if (dart.notNull(this[_isAddingStream])) { |
| let addState = dart.as(this[_varData], _StreamControllerAddStreamState); |
| addState.resume(); |
| } |
| _runGuarded(this[_onResume]); |
| } |
| } |
| _StreamController[dart.implements] = () => [StreamController$(T), _StreamControllerLifecycle$(T), _EventSink$(T), _EventDispatch$(T)]; |
| dart.setSignature(_StreamController, { |
| constructors: () => ({_StreamController: [_StreamController$(T), []]}), |
| methods: () => ({ |
| [_ensurePendingEvents]: [_StreamImplEvents, []], |
| [_badEventState]: [core.Error, []], |
| addStream: [Future, [Stream$(T)], {cancelOnError: core.bool}], |
| [_ensureDoneFuture]: [Future, []], |
| add: [dart.void, [T]], |
| addError: [dart.void, [core.Object], [core.StackTrace]], |
| close: [Future, []], |
| [_closeUnchecked]: [dart.void, []], |
| [_add]: [dart.void, [T]], |
| [_addError]: [dart.void, [core.Object, core.StackTrace]], |
| [_close]: [dart.void, []], |
| [_subscribe]: [StreamSubscription$(T), [dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]], |
| [_recordCancel]: [Future, [StreamSubscription$(T)]], |
| [_recordPause]: [dart.void, [StreamSubscription$(T)]], |
| [_recordResume]: [dart.void, [StreamSubscription$(T)]] |
| }) |
| }); |
| return _StreamController; |
| }); |
| let _StreamController = _StreamController$(); |
| _StreamController._STATE_INITIAL = 0; |
| _StreamController._STATE_SUBSCRIBED = 1; |
| _StreamController._STATE_CANCELED = 2; |
| _StreamController._STATE_SUBSCRIPTION_MASK = 3; |
| _StreamController._STATE_CLOSED = 4; |
| _StreamController._STATE_ADDSTREAM = 8; |
| let _SyncStreamControllerDispatch$ = dart.generic(function(T) { |
| class _SyncStreamControllerDispatch extends core.Object { |
| [_sendData](data) { |
| dart.as(data, T); |
| this[_subscription][_add](data); |
| } |
| [_sendError](error, stackTrace) { |
| this[_subscription][_addError](error, stackTrace); |
| } |
| [_sendDone]() { |
| this[_subscription][_close](); |
| } |
| } |
| _SyncStreamControllerDispatch[dart.implements] = () => [_StreamController$(T)]; |
| dart.setSignature(_SyncStreamControllerDispatch, { |
| methods: () => ({ |
| [_sendData]: [dart.void, [T]], |
| [_sendError]: [dart.void, [core.Object, core.StackTrace]], |
| [_sendDone]: [dart.void, []] |
| }) |
| }); |
| return _SyncStreamControllerDispatch; |
| }); |
| let _SyncStreamControllerDispatch = _SyncStreamControllerDispatch$(); |
| let _AsyncStreamControllerDispatch$ = dart.generic(function(T) { |
| class _AsyncStreamControllerDispatch extends core.Object { |
| [_sendData](data) { |
| dart.as(data, T); |
| this[_subscription][_addPending](new _DelayedData(data)); |
| } |
| [_sendError](error, stackTrace) { |
| this[_subscription][_addPending](new _DelayedError(error, stackTrace)); |
| } |
| [_sendDone]() { |
| this[_subscription][_addPending](dart.const(new _DelayedDone())); |
| } |
| } |
| _AsyncStreamControllerDispatch[dart.implements] = () => [_StreamController$(T)]; |
| dart.setSignature(_AsyncStreamControllerDispatch, { |
| methods: () => ({ |
| [_sendData]: [dart.void, [T]], |
| [_sendError]: [dart.void, [core.Object, core.StackTrace]], |
| [_sendDone]: [dart.void, []] |
| }) |
| }); |
| return _AsyncStreamControllerDispatch; |
| }); |
| let _AsyncStreamControllerDispatch = _AsyncStreamControllerDispatch$(); |
| let _AsyncStreamController$ = dart.generic(function(T) { |
| class _AsyncStreamController extends dart.mixin(_StreamController$(T), _AsyncStreamControllerDispatch$(T)) { |
| _AsyncStreamController(onListen, onPause, onResume, onCancel) { |
| this[_onListen] = onListen; |
| this[_onPause] = onPause; |
| this[_onResume] = onResume; |
| this[_onCancel] = onCancel; |
| super._StreamController(); |
| } |
| } |
| dart.setSignature(_AsyncStreamController, { |
| constructors: () => ({_AsyncStreamController: [_AsyncStreamController$(T), [dart.functionType(dart.void, []), dart.functionType(dart.void, []), dart.functionType(dart.void, []), dart.functionType(dart.dynamic, [])]]}) |
| }); |
| return _AsyncStreamController; |
| }); |
| let _AsyncStreamController = _AsyncStreamController$(); |
| let _SyncStreamController$ = dart.generic(function(T) { |
| class _SyncStreamController extends dart.mixin(_StreamController$(T), _SyncStreamControllerDispatch$(T)) { |
| _SyncStreamController(onListen, onPause, onResume, onCancel) { |
| this[_onListen] = onListen; |
| this[_onPause] = onPause; |
| this[_onResume] = onResume; |
| this[_onCancel] = onCancel; |
| super._StreamController(); |
| } |
| } |
| dart.setSignature(_SyncStreamController, { |
| constructors: () => ({_SyncStreamController: [_SyncStreamController$(T), [dart.functionType(dart.void, []), dart.functionType(dart.void, []), dart.functionType(dart.void, []), dart.functionType(dart.dynamic, [])]]}) |
| }); |
| return _SyncStreamController; |
| }); |
| let _SyncStreamController = _SyncStreamController$(); |
| class _NoCallbacks extends core.Object { |
| get [_onListen]() { |
| return null; |
| } |
| get [_onPause]() { |
| return null; |
| } |
| get [_onResume]() { |
| return null; |
| } |
| get [_onCancel]() { |
| return null; |
| } |
| } |
| class _NoCallbackAsyncStreamController extends dart.mixin(_StreamController, _AsyncStreamControllerDispatch, _NoCallbacks) { |
| _NoCallbackAsyncStreamController() { |
| super._StreamController(...arguments); |
| } |
| } |
| class _NoCallbackSyncStreamController extends dart.mixin(_StreamController, _SyncStreamControllerDispatch, _NoCallbacks) { |
| _NoCallbackSyncStreamController() { |
| super._StreamController(...arguments); |
| } |
| } |
| let _NotificationHandler = dart.typedef('_NotificationHandler', () => dart.functionType(dart.dynamic, [])); |
| function _runGuarded(notificationHandler) { |
| if (notificationHandler == null) |
| return null; |
| try { |
| let result = notificationHandler(); |
| if (dart.is(result, Future)) |
| return dart.as(result, Future); |
| return null; |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| Zone.current.handleUncaughtError(e, s); |
| } |
| |
| } |
| dart.fn(_runGuarded, Future, [_NotificationHandler]); |
| let _target = Symbol('_target'); |
| let _StreamSinkWrapper$ = dart.generic(function(T) { |
| class _StreamSinkWrapper extends core.Object { |
| _StreamSinkWrapper(target) { |
| this[_target] = target; |
| } |
| add(data) { |
| dart.as(data, T); |
| this[_target].add(data); |
| } |
| addError(error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| this[_target].addError(error, stackTrace); |
| } |
| close() { |
| return this[_target].close(); |
| } |
| addStream(source, opts) { |
| dart.as(source, Stream$(T)); |
| let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : true; |
| return this[_target].addStream(source, {cancelOnError: cancelOnError}); |
| } |
| get done() { |
| return this[_target].done; |
| } |
| } |
| _StreamSinkWrapper[dart.implements] = () => [StreamSink$(T)]; |
| dart.setSignature(_StreamSinkWrapper, { |
| constructors: () => ({_StreamSinkWrapper: [_StreamSinkWrapper$(T), [StreamController]]}), |
| methods: () => ({ |
| add: [dart.void, [T]], |
| addError: [dart.void, [core.Object], [core.StackTrace]], |
| close: [Future, []], |
| addStream: [Future, [Stream$(T)], {cancelOnError: core.bool}] |
| }) |
| }); |
| return _StreamSinkWrapper; |
| }); |
| let _StreamSinkWrapper = _StreamSinkWrapper$(); |
| let _AddStreamState$ = dart.generic(function(T) { |
| class _AddStreamState extends core.Object { |
| _AddStreamState(controller, source, cancelOnError) { |
| this.addStreamFuture = new _Future(); |
| this.addSubscription = source.listen(dart.bind(controller, _add), {onError: dart.notNull(cancelOnError) ? dart.as(_AddStreamState$().makeErrorHandler(controller), core.Function) : dart.bind(controller, _addError), onDone: dart.bind(controller, _close), cancelOnError: cancelOnError}); |
| } |
| static makeErrorHandler(controller) { |
| return dart.fn((e, s) => { |
| controller[_addError](e, s); |
| controller[_close](); |
| }, dart.dynamic, [dart.dynamic, core.StackTrace]); |
| } |
| pause() { |
| this.addSubscription.pause(); |
| } |
| resume() { |
| this.addSubscription.resume(); |
| } |
| cancel() { |
| let cancel = this.addSubscription.cancel(); |
| if (cancel == null) { |
| this.addStreamFuture[_asyncComplete](null); |
| return null; |
| } |
| return cancel.whenComplete(dart.fn((() => { |
| this.addStreamFuture[_asyncComplete](null); |
| }).bind(this))); |
| } |
| complete() { |
| this.addStreamFuture[_asyncComplete](null); |
| } |
| } |
| dart.setSignature(_AddStreamState, { |
| constructors: () => ({_AddStreamState: [_AddStreamState$(T), [_EventSink$(T), Stream, core.bool]]}), |
| methods: () => ({ |
| pause: [dart.void, []], |
| resume: [dart.void, []], |
| cancel: [Future, []], |
| complete: [dart.void, []] |
| }), |
| statics: () => ({makeErrorHandler: [dart.dynamic, [_EventSink]]}), |
| names: ['makeErrorHandler'] |
| }); |
| return _AddStreamState; |
| }); |
| let _AddStreamState = _AddStreamState$(); |
| let _StreamControllerAddStreamState$ = dart.generic(function(T) { |
| class _StreamControllerAddStreamState extends _AddStreamState$(T) { |
| _StreamControllerAddStreamState(controller, varData, source, cancelOnError) { |
| this.varData = varData; |
| super._AddStreamState(dart.as(controller, _EventSink$(T)), source, cancelOnError); |
| if (dart.notNull(controller.isPaused)) { |
| this.addSubscription.pause(); |
| } |
| } |
| } |
| dart.setSignature(_StreamControllerAddStreamState, { |
| constructors: () => ({_StreamControllerAddStreamState: [_StreamControllerAddStreamState$(T), [_StreamController, dart.dynamic, Stream, core.bool]]}) |
| }); |
| return _StreamControllerAddStreamState; |
| }); |
| let _StreamControllerAddStreamState = _StreamControllerAddStreamState$(); |
| let _EventSink$ = dart.generic(function(T) { |
| class _EventSink extends core.Object {} |
| return _EventSink; |
| }); |
| let _EventSink = _EventSink$(); |
| let _EventDispatch$ = dart.generic(function(T) { |
| class _EventDispatch extends core.Object {} |
| return _EventDispatch; |
| }); |
| let _EventDispatch = _EventDispatch$(); |
| _BufferingStreamSubscription._STATE_CANCEL_ON_ERROR = 1; |
| _BufferingStreamSubscription._STATE_CLOSED = 2; |
| _BufferingStreamSubscription._STATE_INPUT_PAUSED = 4; |
| _BufferingStreamSubscription._STATE_CANCELED = 8; |
| _BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL = 16; |
| _BufferingStreamSubscription._STATE_IN_CALLBACK = 32; |
| _BufferingStreamSubscription._STATE_HAS_PENDING = 64; |
| _BufferingStreamSubscription._STATE_PAUSE_COUNT = 128; |
| _BufferingStreamSubscription._STATE_PAUSE_COUNT_SHIFT = 7; |
| let _EventGenerator = dart.typedef('_EventGenerator', () => dart.functionType(_PendingEvents, [])); |
| let _isUsed = Symbol('_isUsed'); |
| let _GeneratedStreamImpl$ = dart.generic(function(T) { |
| class _GeneratedStreamImpl extends _StreamImpl$(T) { |
| _GeneratedStreamImpl(pending) { |
| this[_pending] = pending; |
| this[_isUsed] = false; |
| } |
| [_createSubscription](onData, onError, onDone, cancelOnError) { |
| dart.as(onData, dart.functionType(dart.void, [T])); |
| dart.as(onDone, dart.functionType(dart.void, [])); |
| if (dart.notNull(this[_isUsed])) |
| dart.throw(new core.StateError("Stream has already been listened to.")); |
| this[_isUsed] = true; |
| return dart.as((() => { |
| let _ = new _BufferingStreamSubscription(onData, onError, onDone, cancelOnError); |
| _[_setPendingEvents](this[_pending]()); |
| return _; |
| }).bind(this)(), StreamSubscription$(T)); |
| } |
| } |
| dart.setSignature(_GeneratedStreamImpl, { |
| constructors: () => ({_GeneratedStreamImpl: [_GeneratedStreamImpl$(T), [_EventGenerator]]}), |
| methods: () => ({[_createSubscription]: [StreamSubscription$(T), [dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]]}) |
| }); |
| return _GeneratedStreamImpl; |
| }); |
| let _GeneratedStreamImpl = _GeneratedStreamImpl$(); |
| let _iterator = Symbol('_iterator'); |
| let _eventScheduled = Symbol('_eventScheduled'); |
| class _PendingEvents extends core.Object { |
| _PendingEvents() { |
| this[_state] = _PendingEvents._STATE_UNSCHEDULED; |
| } |
| get isScheduled() { |
| return this[_state] == _PendingEvents._STATE_SCHEDULED; |
| } |
| get [_eventScheduled]() { |
| return dart.notNull(this[_state]) >= dart.notNull(_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] == _PendingEvents._STATE_CANCELED); |
| this[_state] = _PendingEvents._STATE_SCHEDULED; |
| return; |
| } |
| scheduleMicrotask(dart.fn((() => { |
| let oldState = this[_state]; |
| this[_state] = _PendingEvents._STATE_UNSCHEDULED; |
| if (oldState == _PendingEvents._STATE_CANCELED) |
| return; |
| this.handleNext(dispatch); |
| }).bind(this))); |
| this[_state] = _PendingEvents._STATE_SCHEDULED; |
| } |
| cancelSchedule() { |
| if (dart.notNull(this.isScheduled)) |
| this[_state] = _PendingEvents._STATE_CANCELED; |
| } |
| } |
| dart.setSignature(_PendingEvents, { |
| methods: () => ({ |
| schedule: [dart.void, [_EventDispatch]], |
| cancelSchedule: [dart.void, []] |
| }) |
| }); |
| let _IterablePendingEvents$ = dart.generic(function(T) { |
| class _IterablePendingEvents extends _PendingEvents { |
| _IterablePendingEvents(data) { |
| this[_iterator] = data[dartx.iterator]; |
| super._PendingEvents(); |
| } |
| get isEmpty() { |
| return this[_iterator] == null; |
| } |
| handleNext(dispatch) { |
| if (this[_iterator] == null) { |
| dart.throw(new core.StateError("No events pending.")); |
| } |
| let isDone = null; |
| try { |
| isDone = !dart.notNull(this[_iterator].moveNext()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| this[_iterator] = null; |
| dispatch[_sendError](e, s); |
| return; |
| } |
| |
| if (!dart.notNull(isDone)) { |
| dispatch[_sendData](this[_iterator].current); |
| } else { |
| this[_iterator] = null; |
| dispatch[_sendDone](); |
| } |
| } |
| clear() { |
| if (dart.notNull(this.isScheduled)) |
| this.cancelSchedule(); |
| this[_iterator] = null; |
| } |
| } |
| dart.setSignature(_IterablePendingEvents, { |
| constructors: () => ({_IterablePendingEvents: [_IterablePendingEvents$(T), [core.Iterable$(T)]]}), |
| methods: () => ({ |
| handleNext: [dart.void, [_EventDispatch]], |
| clear: [dart.void, []] |
| }) |
| }); |
| return _IterablePendingEvents; |
| }); |
| let _IterablePendingEvents = _IterablePendingEvents$(); |
| let _DataHandler$ = dart.generic(function(T) { |
| let _DataHandler = dart.typedef('_DataHandler', () => dart.functionType(dart.void, [T])); |
| return _DataHandler; |
| }); |
| let _DataHandler = _DataHandler$(); |
| let _DoneHandler = dart.typedef('_DoneHandler', () => dart.functionType(dart.void, [])); |
| function _nullDataHandler(value) { |
| } |
| dart.fn(_nullDataHandler, dart.void, [dart.dynamic]); |
| function _nullErrorHandler(error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| Zone.current.handleUncaughtError(error, stackTrace); |
| } |
| dart.fn(_nullErrorHandler, dart.void, [dart.dynamic], [core.StackTrace]); |
| function _nullDoneHandler() { |
| } |
| dart.fn(_nullDoneHandler, dart.void, []); |
| let _DelayedEvent$ = dart.generic(function(T) { |
| class _DelayedEvent extends core.Object { |
| _DelayedEvent() { |
| this.next = null; |
| } |
| } |
| return _DelayedEvent; |
| }); |
| let _DelayedEvent = _DelayedEvent$(); |
| let _DelayedData$ = dart.generic(function(T) { |
| class _DelayedData extends _DelayedEvent$(T) { |
| _DelayedData(value) { |
| this.value = value; |
| super._DelayedEvent(); |
| } |
| perform(dispatch) { |
| dart.as(dispatch, _EventDispatch$(T)); |
| dispatch[_sendData](this.value); |
| } |
| } |
| dart.setSignature(_DelayedData, { |
| constructors: () => ({_DelayedData: [_DelayedData$(T), [T]]}), |
| methods: () => ({perform: [dart.void, [_EventDispatch$(T)]]}) |
| }); |
| return _DelayedData; |
| }); |
| let _DelayedData = _DelayedData$(); |
| class _DelayedError extends _DelayedEvent { |
| _DelayedError(error, stackTrace) { |
| this.error = error; |
| this.stackTrace = stackTrace; |
| super._DelayedEvent(); |
| } |
| perform(dispatch) { |
| dispatch[_sendError](this.error, this.stackTrace); |
| } |
| } |
| dart.setSignature(_DelayedError, { |
| constructors: () => ({_DelayedError: [_DelayedError, [dart.dynamic, core.StackTrace]]}), |
| methods: () => ({perform: [dart.void, [_EventDispatch]]}) |
| }); |
| class _DelayedDone extends core.Object { |
| _DelayedDone() { |
| } |
| perform(dispatch) { |
| dispatch[_sendDone](); |
| } |
| get next() { |
| return null; |
| } |
| set next(_) { |
| dart.throw(new core.StateError("No events after a done.")); |
| } |
| } |
| _DelayedDone[dart.implements] = () => [_DelayedEvent]; |
| dart.setSignature(_DelayedDone, { |
| constructors: () => ({_DelayedDone: [_DelayedDone, []]}), |
| methods: () => ({perform: [dart.void, [_EventDispatch]]}) |
| }); |
| _PendingEvents._STATE_UNSCHEDULED = 0; |
| _PendingEvents._STATE_SCHEDULED = 1; |
| _PendingEvents._STATE_CANCELED = 3; |
| class _StreamImplEvents extends _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) { |
| this.lastPendingEvent = null; |
| } |
| event.perform(dispatch); |
| } |
| clear() { |
| if (dart.notNull(this.isScheduled)) |
| this.cancelSchedule(); |
| this.firstPendingEvent = this.lastPendingEvent = null; |
| } |
| } |
| dart.setSignature(_StreamImplEvents, { |
| methods: () => ({ |
| add: [dart.void, [_DelayedEvent]], |
| handleNext: [dart.void, [_EventDispatch]], |
| clear: [dart.void, []] |
| }) |
| }); |
| let _unlink = Symbol('_unlink'); |
| let _insertBefore = Symbol('_insertBefore'); |
| class _BroadcastLinkedList extends core.Object { |
| _BroadcastLinkedList() { |
| this[_next] = null; |
| this[_previous] = null; |
| } |
| [_unlink]() { |
| this[_previous][_next] = this[_next]; |
| this[_next][_previous] = this[_previous]; |
| this[_next] = this[_previous] = this; |
| } |
| [_insertBefore](newNext) { |
| let newPrevious = newNext[_previous]; |
| newPrevious[_next] = this; |
| newNext[_previous] = this[_previous]; |
| this[_previous][_next] = newNext; |
| this[_previous] = newPrevious; |
| } |
| } |
| dart.setSignature(_BroadcastLinkedList, { |
| methods: () => ({ |
| [_unlink]: [dart.void, []], |
| [_insertBefore]: [dart.void, [_BroadcastLinkedList]] |
| }) |
| }); |
| let _broadcastCallback = dart.typedef('_broadcastCallback', () => dart.functionType(dart.void, [StreamSubscription])); |
| let _schedule = Symbol('_schedule'); |
| let _isSent = Symbol('_isSent'); |
| let _isScheduled = Symbol('_isScheduled'); |
| let _DoneStreamSubscription$ = dart.generic(function(T) { |
| class _DoneStreamSubscription extends core.Object { |
| _DoneStreamSubscription(onDone) { |
| this[_onDone] = onDone; |
| this[_zone] = Zone.current; |
| this[_state] = 0; |
| this[_schedule](); |
| } |
| get [_isSent]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_DoneStreamSubscription$()._DONE_SENT)) != 0; |
| } |
| get [_isScheduled]() { |
| return (dart.notNull(this[_state]) & dart.notNull(_DoneStreamSubscription$()._SCHEDULED)) != 0; |
| } |
| get isPaused() { |
| return dart.notNull(this[_state]) >= dart.notNull(_DoneStreamSubscription$()._PAUSED); |
| } |
| [_schedule]() { |
| if (dart.notNull(this[_isScheduled])) |
| return; |
| this[_zone].scheduleMicrotask(dart.bind(this, _sendDone)); |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_DoneStreamSubscription$()._SCHEDULED); |
| } |
| onData(handleData) { |
| dart.as(handleData, dart.functionType(dart.void, [T])); |
| } |
| onError(handleError) {} |
| onDone(handleDone) { |
| dart.as(handleDone, dart.functionType(dart.void, [])); |
| this[_onDone] = handleDone; |
| } |
| pause(resumeSignal) { |
| if (resumeSignal === void 0) |
| resumeSignal = null; |
| this[_state] = dart.notNull(this[_state]) + dart.notNull(_DoneStreamSubscription$()._PAUSED); |
| if (resumeSignal != null) |
| resumeSignal.whenComplete(dart.bind(this, 'resume')); |
| } |
| resume() { |
| if (dart.notNull(this.isPaused)) { |
| this[_state] = dart.notNull(this[_state]) - dart.notNull(_DoneStreamSubscription$()._PAUSED); |
| if (!dart.notNull(this.isPaused) && !dart.notNull(this[_isSent])) { |
| this[_schedule](); |
| } |
| } |
| } |
| cancel() { |
| return null; |
| } |
| asFuture(futureValue) { |
| if (futureValue === void 0) |
| futureValue = null; |
| let result = new _Future(); |
| this[_onDone] = dart.fn(() => { |
| result[_completeWithValue](null); |
| }); |
| return result; |
| } |
| [_sendDone]() { |
| this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_DoneStreamSubscription$()._SCHEDULED); |
| if (dart.notNull(this.isPaused)) |
| return; |
| this[_state] = dart.notNull(this[_state]) | dart.notNull(_DoneStreamSubscription$()._DONE_SENT); |
| if (this[_onDone] != null) |
| this[_zone].runGuarded(this[_onDone]); |
| } |
| } |
| _DoneStreamSubscription[dart.implements] = () => [StreamSubscription$(T)]; |
| dart.setSignature(_DoneStreamSubscription, { |
| constructors: () => ({_DoneStreamSubscription: [_DoneStreamSubscription$(T), [_DoneHandler]]}), |
| methods: () => ({ |
| [_schedule]: [dart.void, []], |
| onData: [dart.void, [dart.functionType(dart.void, [T])]], |
| onError: [dart.void, [core.Function]], |
| onDone: [dart.void, [dart.functionType(dart.void, [])]], |
| pause: [dart.void, [], [Future]], |
| resume: [dart.void, []], |
| cancel: [Future, []], |
| asFuture: [Future, [], [dart.dynamic]], |
| [_sendDone]: [dart.void, []] |
| }) |
| }); |
| return _DoneStreamSubscription; |
| }); |
| let _DoneStreamSubscription = _DoneStreamSubscription$(); |
| _DoneStreamSubscription._DONE_SENT = 1; |
| _DoneStreamSubscription._SCHEDULED = 2; |
| _DoneStreamSubscription._PAUSED = 4; |
| let _source = Symbol('_source'); |
| let _onListenHandler = Symbol('_onListenHandler'); |
| let _onCancelHandler = Symbol('_onCancelHandler'); |
| let _cancelSubscription = Symbol('_cancelSubscription'); |
| let _pauseSubscription = Symbol('_pauseSubscription'); |
| let _resumeSubscription = Symbol('_resumeSubscription'); |
| let _isSubscriptionPaused = Symbol('_isSubscriptionPaused'); |
| let _AsBroadcastStream$ = dart.generic(function(T) { |
| class _AsBroadcastStream extends Stream$(T) { |
| _AsBroadcastStream(source, onListenHandler, onCancelHandler) { |
| this[_source] = source; |
| this[_onListenHandler] = dart.as(Zone.current.registerUnaryCallback(onListenHandler), _broadcastCallback); |
| this[_onCancelHandler] = dart.as(Zone.current.registerUnaryCallback(onCancelHandler), _broadcastCallback); |
| this[_zone] = Zone.current; |
| this[_controller] = null; |
| this[_subscription] = null; |
| super.Stream(); |
| this[_controller] = new (_AsBroadcastStreamController$(T))(dart.bind(this, _onListen), dart.bind(this, _onCancel)); |
| } |
| 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; |
| if (this[_controller] == null || dart.notNull(this[_controller].isClosed)) { |
| return new (_DoneStreamSubscription$(T))(onDone); |
| } |
| if (this[_subscription] == null) { |
| this[_subscription] = this[_source].listen(dart.bind(this[_controller], 'add'), {onError: dart.bind(this[_controller], 'addError'), onDone: dart.bind(this[_controller], 'close')}); |
| } |
| cancelOnError = core.identical(true, cancelOnError); |
| return this[_controller][_subscribe](onData, onError, onDone, cancelOnError); |
| } |
| [_onCancel]() { |
| let shutdown = this[_controller] == null || dart.notNull(this[_controller].isClosed); |
| if (this[_onCancelHandler] != null) { |
| this[_zone].runUnary(this[_onCancelHandler], new _BroadcastSubscriptionWrapper(this)); |
| } |
| if (dart.notNull(shutdown)) { |
| if (this[_subscription] != null) { |
| this[_subscription].cancel(); |
| this[_subscription] = null; |
| } |
| } |
| } |
| [_onListen]() { |
| if (this[_onListenHandler] != null) { |
| this[_zone].runUnary(this[_onListenHandler], new _BroadcastSubscriptionWrapper(this)); |
| } |
| } |
| [_cancelSubscription]() { |
| if (this[_subscription] == null) |
| return; |
| let subscription = this[_subscription]; |
| this[_subscription] = null; |
| this[_controller] = null; |
| subscription.cancel(); |
| } |
| [_pauseSubscription](resumeSignal) { |
| if (this[_subscription] == null) |
| return; |
| this[_subscription].pause(resumeSignal); |
| } |
| [_resumeSubscription]() { |
| if (this[_subscription] == null) |
| return; |
| this[_subscription].resume(); |
| } |
| get [_isSubscriptionPaused]() { |
| if (this[_subscription] == null) |
| return false; |
| return this[_subscription].isPaused; |
| } |
| } |
| dart.setSignature(_AsBroadcastStream, { |
| constructors: () => ({_AsBroadcastStream: [_AsBroadcastStream$(T), [Stream$(T), dart.functionType(dart.void, [StreamSubscription]), dart.functionType(dart.void, [StreamSubscription])]]}), |
| methods: () => ({ |
| listen: [StreamSubscription$(T), [dart.functionType(dart.void, [T])], {onError: core.Function, onDone: dart.functionType(dart.void, []), cancelOnError: core.bool}], |
| [_onCancel]: [dart.void, []], |
| [_onListen]: [dart.void, []], |
| [_cancelSubscription]: [dart.void, []], |
| [_pauseSubscription]: [dart.void, [Future]], |
| [_resumeSubscription]: [dart.void, []] |
| }) |
| }); |
| return _AsBroadcastStream; |
| }); |
| let _AsBroadcastStream = _AsBroadcastStream$(); |
| let _BroadcastSubscriptionWrapper$ = dart.generic(function(T) { |
| class _BroadcastSubscriptionWrapper extends core.Object { |
| _BroadcastSubscriptionWrapper(stream) { |
| this[_stream] = stream; |
| } |
| onData(handleData) { |
| dart.as(handleData, dart.functionType(dart.void, [T])); |
| dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription.")); |
| } |
| onError(handleError) { |
| dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription.")); |
| } |
| onDone(handleDone) { |
| dart.as(handleDone, dart.functionType(dart.void, [])); |
| dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription.")); |
| } |
| pause(resumeSignal) { |
| if (resumeSignal === void 0) |
| resumeSignal = null; |
| this[_stream][_pauseSubscription](resumeSignal); |
| } |
| resume() { |
| this[_stream][_resumeSubscription](); |
| } |
| cancel() { |
| this[_stream][_cancelSubscription](); |
| return null; |
| } |
| 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.")); |
| } |
| } |
| _BroadcastSubscriptionWrapper[dart.implements] = () => [StreamSubscription$(T)]; |
| dart.setSignature(_BroadcastSubscriptionWrapper, { |
| constructors: () => ({_BroadcastSubscriptionWrapper: [_BroadcastSubscriptionWrapper$(T), [_AsBroadcastStream]]}), |
| methods: () => ({ |
| onData: [dart.void, [dart.functionType(dart.void, [T])]], |
| onError: [dart.void, [core.Function]], |
| onDone: [dart.void, [dart.functionType(dart.void, [])]], |
| pause: [dart.void, [], [Future]], |
| resume: [dart.void, []], |
| cancel: [Future, []], |
| asFuture: [Future, [], [dart.dynamic]] |
| }) |
| }); |
| return _BroadcastSubscriptionWrapper; |
| }); |
| let _BroadcastSubscriptionWrapper = _BroadcastSubscriptionWrapper$(); |
| let _current = Symbol('_current'); |
| let _futureOrPrefetch = Symbol('_futureOrPrefetch'); |
| let _clear = Symbol('_clear'); |
| let _StreamIteratorImpl$ = dart.generic(function(T) { |
| class _StreamIteratorImpl extends core.Object { |
| _StreamIteratorImpl(stream) { |
| this[_subscription] = null; |
| this[_current] = null; |
| this[_futureOrPrefetch] = null; |
| this[_state] = _StreamIteratorImpl$()._STATE_FOUND; |
| this[_subscription] = stream.listen(dart.bind(this, _onData), {onError: dart.bind(this, _onError), onDone: dart.bind(this, _onDone), cancelOnError: true}); |
| } |
| get current() { |
| return this[_current]; |
| } |
| moveNext() { |
| if (this[_state] == _StreamIteratorImpl$()._STATE_DONE) { |
| return new (_Future$(core.bool)).immediate(false); |
| } |
| if (this[_state] == _StreamIteratorImpl$()._STATE_MOVING) { |
| dart.throw(new core.StateError("Already waiting for next.")); |
| } |
| if (this[_state] == _StreamIteratorImpl$()._STATE_FOUND) { |
| this[_state] = _StreamIteratorImpl$()._STATE_MOVING; |
| this[_current] = null; |
| this[_futureOrPrefetch] = new (_Future$(core.bool))(); |
| return dart.as(this[_futureOrPrefetch], Future$(core.bool)); |
| } else { |
| dart.assert(dart.notNull(this[_state]) >= dart.notNull(_StreamIteratorImpl$()._STATE_EXTRA_DATA)); |
| switch (this[_state]) { |
| case _StreamIteratorImpl$()._STATE_EXTRA_DATA: |
| { |
| this[_state] = _StreamIteratorImpl$()._STATE_FOUND; |
| this[_current] = dart.as(this[_futureOrPrefetch], T); |
| this[_futureOrPrefetch] = null; |
| this[_subscription].resume(); |
| return new (_Future$(core.bool)).immediate(true); |
| } |
| case _StreamIteratorImpl$()._STATE_EXTRA_ERROR: |
| { |
| let prefetch = dart.as(this[_futureOrPrefetch], AsyncError); |
| this[_clear](); |
| return new (_Future$(core.bool)).immediateError(prefetch.error, prefetch.stackTrace); |
| } |
| case _StreamIteratorImpl$()._STATE_EXTRA_DONE: |
| { |
| this[_clear](); |
| return new (_Future$(core.bool)).immediate(false); |
| } |
| } |
| } |
| } |
| [_clear]() { |
| this[_subscription] = null; |
| this[_futureOrPrefetch] = null; |
| this[_current] = null; |
| this[_state] = _StreamIteratorImpl$()._STATE_DONE; |
| } |
| cancel() { |
| let subscription = this[_subscription]; |
| if (subscription == null) |
| return null; |
| if (this[_state] == _StreamIteratorImpl$()._STATE_MOVING) { |
| let hasNext = dart.as(this[_futureOrPrefetch], _Future$(core.bool)); |
| this[_clear](); |
| hasNext[_complete](false); |
| } else { |
| this[_clear](); |
| } |
| return subscription.cancel(); |
| } |
| [_onData](data) { |
| dart.as(data, T); |
| if (this[_state] == _StreamIteratorImpl$()._STATE_MOVING) { |
| this[_current] = data; |
| let hasNext = dart.as(this[_futureOrPrefetch], _Future$(core.bool)); |
| this[_futureOrPrefetch] = null; |
| this[_state] = _StreamIteratorImpl$()._STATE_FOUND; |
| hasNext[_complete](true); |
| return; |
| } |
| this[_subscription].pause(); |
| dart.assert(this[_futureOrPrefetch] == null); |
| this[_futureOrPrefetch] = data; |
| this[_state] = _StreamIteratorImpl$()._STATE_EXTRA_DATA; |
| } |
| [_onError](error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| if (this[_state] == _StreamIteratorImpl$()._STATE_MOVING) { |
| let hasNext = dart.as(this[_futureOrPrefetch], _Future$(core.bool)); |
| this[_clear](); |
| hasNext[_completeError](error, stackTrace); |
| return; |
| } |
| this[_subscription].pause(); |
| dart.assert(this[_futureOrPrefetch] == null); |
| this[_futureOrPrefetch] = new AsyncError(error, stackTrace); |
| this[_state] = _StreamIteratorImpl$()._STATE_EXTRA_ERROR; |
| } |
| [_onDone]() { |
| if (this[_state] == _StreamIteratorImpl$()._STATE_MOVING) { |
| let hasNext = dart.as(this[_futureOrPrefetch], _Future$(core.bool)); |
| this[_clear](); |
| hasNext[_complete](false); |
| return; |
| } |
| this[_subscription].pause(); |
| this[_futureOrPrefetch] = null; |
| this[_state] = _StreamIteratorImpl$()._STATE_EXTRA_DONE; |
| } |
| } |
| _StreamIteratorImpl[dart.implements] = () => [StreamIterator$(T)]; |
| dart.setSignature(_StreamIteratorImpl, { |
| constructors: () => ({_StreamIteratorImpl: [_StreamIteratorImpl$(T), [Stream$(T)]]}), |
| methods: () => ({ |
| moveNext: [Future$(core.bool), []], |
| [_clear]: [dart.void, []], |
| cancel: [Future, []], |
| [_onData]: [dart.void, [T]], |
| [_onError]: [dart.void, [core.Object], [core.StackTrace]], |
| [_onDone]: [dart.void, []] |
| }) |
| }); |
| return _StreamIteratorImpl; |
| }); |
| let _StreamIteratorImpl = _StreamIteratorImpl$(); |
| _StreamIteratorImpl._STATE_FOUND = 0; |
| _StreamIteratorImpl._STATE_DONE = 1; |
| _StreamIteratorImpl._STATE_MOVING = 2; |
| _StreamIteratorImpl._STATE_EXTRA_DATA = 3; |
| _StreamIteratorImpl._STATE_EXTRA_ERROR = 4; |
| _StreamIteratorImpl._STATE_EXTRA_DONE = 5; |
| let __CastType20$ = dart.generic(function(T) { |
| let __CastType20 = dart.typedef('__CastType20', () => dart.functionType(dart.void, [T])); |
| return __CastType20; |
| }); |
| let __CastType20 = __CastType20$(); |
| let __CastType22 = dart.typedef('__CastType22', () => dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])); |
| let __CastType25 = dart.typedef('__CastType25', () => dart.functionType(dart.dynamic, [dart.dynamic])); |
| function _runUserCode(userCode, onSuccess, onError) { |
| try { |
| dart.dcall(onSuccess, userCode()); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| let replacement = Zone.current.errorCallback(e, s); |
| if (replacement == null) { |
| dart.dcall(onError, e, s); |
| } else { |
| let error = _nonNullError(replacement.error); |
| let stackTrace = replacement.stackTrace; |
| dart.dcall(onError, error, stackTrace); |
| } |
| } |
| |
| } |
| dart.fn(_runUserCode, dart.dynamic, [dart.functionType(dart.dynamic, []), dart.functionType(dart.dynamic, [dart.dynamic]), dart.functionType(dart.dynamic, [dart.dynamic, core.StackTrace])]); |
| function _cancelAndError(subscription, future, error, stackTrace) { |
| let cancelFuture = subscription.cancel(); |
| if (dart.is(cancelFuture, Future)) { |
| cancelFuture.whenComplete(dart.fn(() => future[_completeError](error, stackTrace), dart.void, [])); |
| } else { |
| future[_completeError](error, stackTrace); |
| } |
| } |
| dart.fn(_cancelAndError, dart.void, [StreamSubscription, _Future, dart.dynamic, core.StackTrace]); |
| function _cancelAndErrorWithReplacement(subscription, future, error, stackTrace) { |
| let replacement = Zone.current.errorCallback(error, stackTrace); |
| if (replacement != null) { |
| error = _nonNullError(replacement.error); |
| stackTrace = replacement.stackTrace; |
| } |
| _cancelAndError(subscription, future, error, stackTrace); |
| } |
| dart.fn(_cancelAndErrorWithReplacement, dart.void, [StreamSubscription, _Future, dart.dynamic, core.StackTrace]); |
| function _cancelAndErrorClosure(subscription, future) { |
| return dart.fn((error, stackTrace) => _cancelAndError(subscription, future, error, stackTrace), dart.void, [dart.dynamic, core.StackTrace]); |
| } |
| dart.fn(_cancelAndErrorClosure, dart.dynamic, [StreamSubscription, _Future]); |
| function _cancelAndValue(subscription, future, value) { |
| let cancelFuture = subscription.cancel(); |
| if (dart.is(cancelFuture, Future)) { |
| cancelFuture.whenComplete(dart.fn(() => future[_complete](value), dart.void, [])); |
| } else { |
| future[_complete](value); |
| } |
| } |
| dart.fn(_cancelAndValue, dart.void, [StreamSubscription, _Future, dart.dynamic]); |
| let _handleData = Symbol('_handleData'); |
| let _handleError = Symbol('_handleError'); |
| let _handleDone = Symbol('_handleDone'); |
| let _ForwardingStream$ = dart.generic(function(S, T) { |
| class _ForwardingStream extends Stream$(T) { |
| _ForwardingStream(source) { |
| this[_source] = source; |
| super.Stream(); |
| } |
| get isBroadcast() { |
| return this[_source].isBroadcast; |
| } |
| 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; |
| cancelOnError = core.identical(true, cancelOnError); |
| return this[_createSubscription](onData, onError, onDone, cancelOnError); |
| } |
| [_createSubscription](onData, onError, onDone, cancelOnError) { |
| dart.as(onData, dart.functionType(dart.void, [T])); |
| dart.as(onDone, dart.functionType(dart.void, [])); |
| return new (_ForwardingStreamSubscription$(S, T))(this, onData, onError, onDone, cancelOnError); |
| } |
| [_handleData](data, sink) { |
| dart.as(data, S); |
| dart.as(sink, _EventSink$(T)); |
| let outputData = data; |
| sink[_add](dart.as(outputData, T)); |
| } |
| [_handleError](error, stackTrace, sink) { |
| dart.as(sink, _EventSink$(T)); |
| sink[_addError](error, stackTrace); |
| } |
| [_handleDone](sink) { |
| dart.as(sink, _EventSink$(T)); |
| sink[_close](); |
| } |
| } |
| dart.setSignature(_ForwardingStream, { |
| constructors: () => ({_ForwardingStream: [_ForwardingStream$(S, T), [Stream$(S)]]}), |
| methods: () => ({ |
| listen: [StreamSubscription$(T), [dart.functionType(dart.void, [T])], {onError: core.Function, onDone: dart.functionType(dart.void, []), cancelOnError: core.bool}], |
| [_createSubscription]: [StreamSubscription$(T), [dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]], |
| [_handleData]: [dart.void, [S, _EventSink$(T)]], |
| [_handleError]: [dart.void, [dart.dynamic, core.StackTrace, _EventSink$(T)]], |
| [_handleDone]: [dart.void, [_EventSink$(T)]] |
| }) |
| }); |
| return _ForwardingStream; |
| }); |
| let _ForwardingStream = _ForwardingStream$(); |
| let _ForwardingStreamSubscription$ = dart.generic(function(S, T) { |
| class _ForwardingStreamSubscription extends _BufferingStreamSubscription$(T) { |
| _ForwardingStreamSubscription(stream, onData, onError, onDone, cancelOnError) { |
| this[_stream] = stream; |
| this[_subscription] = null; |
| super._BufferingStreamSubscription(onData, onError, onDone, cancelOnError); |
| this[_subscription] = this[_stream][_source].listen(dart.bind(this, _handleData), {onError: dart.bind(this, _handleError), onDone: dart.bind(this, _handleDone)}); |
| } |
| [_add](data) { |
| dart.as(data, T); |
| if (dart.notNull(this[_isClosed])) |
| return; |
| super[_add](data); |
| } |
| [_addError](error, stackTrace) { |
| if (dart.notNull(this[_isClosed])) |
| return; |
| super[_addError](error, stackTrace); |
| } |
| [_onPause]() { |
| if (this[_subscription] == null) |
| return; |
| this[_subscription].pause(); |
| } |
| [_onResume]() { |
| if (this[_subscription] == null) |
| return; |
| this[_subscription].resume(); |
| } |
| [_onCancel]() { |
| if (this[_subscription] != null) { |
| let subscription = this[_subscription]; |
| this[_subscription] = null; |
| subscription.cancel(); |
| } |
| return null; |
| } |
| [_handleData](data) { |
| dart.as(data, S); |
| this[_stream][_handleData](data, this); |
| } |
| [_handleError](error, stackTrace) { |
| this[_stream][_handleError](error, stackTrace, this); |
| } |
| [_handleDone]() { |
| this[_stream][_handleDone](this); |
| } |
| } |
| dart.setSignature(_ForwardingStreamSubscription, { |
| constructors: () => ({_ForwardingStreamSubscription: [_ForwardingStreamSubscription$(S, T), [_ForwardingStream$(S, T), dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]]}), |
| methods: () => ({ |
| [_add]: [dart.void, [T]], |
| [_handleData]: [dart.void, [S]], |
| [_handleError]: [dart.void, [dart.dynamic, core.StackTrace]], |
| [_handleDone]: [dart.void, []] |
| }) |
| }); |
| return _ForwardingStreamSubscription; |
| }); |
| let _ForwardingStreamSubscription = _ForwardingStreamSubscription$(); |
| let _Predicate$ = dart.generic(function(T) { |
| let _Predicate = dart.typedef('_Predicate', () => dart.functionType(core.bool, [T])); |
| return _Predicate; |
| }); |
| let _Predicate = _Predicate$(); |
| function _addErrorWithReplacement(sink, error, stackTrace) { |
| let replacement = Zone.current.errorCallback(error, dart.as(stackTrace, core.StackTrace)); |
| if (replacement != null) { |
| error = _nonNullError(replacement.error); |
| stackTrace = replacement.stackTrace; |
| } |
| sink[_addError](error, dart.as(stackTrace, core.StackTrace)); |
| } |
| dart.fn(_addErrorWithReplacement, dart.void, [_EventSink, dart.dynamic, dart.dynamic]); |
| let _test = Symbol('_test'); |
| let _WhereStream$ = dart.generic(function(T) { |
| class _WhereStream extends _ForwardingStream$(T, T) { |
| _WhereStream(source, test) { |
| this[_test] = test; |
| super._ForwardingStream(source); |
| } |
| [_handleData](inputEvent, sink) { |
| dart.as(inputEvent, T); |
| dart.as(sink, _EventSink$(T)); |
| let satisfies = null; |
| try { |
| satisfies = this[_test](inputEvent); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _addErrorWithReplacement(sink, e, s); |
| return; |
| } |
| |
| if (dart.notNull(satisfies)) { |
| sink[_add](inputEvent); |
| } |
| } |
| } |
| dart.setSignature(_WhereStream, { |
| constructors: () => ({_WhereStream: [_WhereStream$(T), [Stream$(T), dart.functionType(core.bool, [T])]]}), |
| methods: () => ({[_handleData]: [dart.void, [T, _EventSink$(T)]]}) |
| }); |
| return _WhereStream; |
| }); |
| let _WhereStream = _WhereStream$(); |
| let _Transformation$ = dart.generic(function(S, T) { |
| let _Transformation = dart.typedef('_Transformation', () => dart.functionType(T, [S])); |
| return _Transformation; |
| }); |
| let _Transformation = _Transformation$(); |
| let _transform = Symbol('_transform'); |
| let _MapStream$ = dart.generic(function(S, T) { |
| class _MapStream extends _ForwardingStream$(S, T) { |
| _MapStream(source, transform) { |
| this[_transform] = transform; |
| super._ForwardingStream(source); |
| } |
| [_handleData](inputEvent, sink) { |
| dart.as(inputEvent, S); |
| dart.as(sink, _EventSink$(T)); |
| let outputEvent = null; |
| try { |
| outputEvent = dart.as(dart.dcall(this[_transform], inputEvent), T); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _addErrorWithReplacement(sink, e, s); |
| return; |
| } |
| |
| sink[_add](outputEvent); |
| } |
| } |
| dart.setSignature(_MapStream, { |
| constructors: () => ({_MapStream: [_MapStream$(S, T), [Stream$(S), dart.functionType(T, [S])]]}), |
| methods: () => ({[_handleData]: [dart.void, [S, _EventSink$(T)]]}) |
| }); |
| return _MapStream; |
| }); |
| let _MapStream = _MapStream$(); |
| let _expand = Symbol('_expand'); |
| let _ExpandStream$ = dart.generic(function(S, T) { |
| class _ExpandStream extends _ForwardingStream$(S, T) { |
| _ExpandStream(source, expand) { |
| this[_expand] = expand; |
| super._ForwardingStream(source); |
| } |
| [_handleData](inputEvent, sink) { |
| dart.as(inputEvent, S); |
| dart.as(sink, _EventSink$(T)); |
| try { |
| for (let value of this[_expand](inputEvent)) { |
| sink[_add](value); |
| } |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _addErrorWithReplacement(sink, e, s); |
| } |
| |
| } |
| } |
| dart.setSignature(_ExpandStream, { |
| constructors: () => ({_ExpandStream: [_ExpandStream$(S, T), [Stream$(S), dart.functionType(core.Iterable$(T), [S])]]}), |
| methods: () => ({[_handleData]: [dart.void, [S, _EventSink$(T)]]}) |
| }); |
| return _ExpandStream; |
| }); |
| let _ExpandStream = _ExpandStream$(); |
| let _ErrorTest = dart.typedef('_ErrorTest', () => dart.functionType(core.bool, [dart.dynamic])); |
| let _HandleErrorStream$ = dart.generic(function(T) { |
| class _HandleErrorStream extends _ForwardingStream$(T, T) { |
| _HandleErrorStream(source, onError, test) { |
| this[_transform] = onError; |
| this[_test] = test; |
| super._ForwardingStream(source); |
| } |
| [_handleError](error, stackTrace, sink) { |
| dart.as(sink, _EventSink$(T)); |
| let matches = true; |
| if (this[_test] != null) { |
| try { |
| matches = dart.dcall(this[_test], error); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _addErrorWithReplacement(sink, e, s); |
| return; |
| } |
| |
| } |
| if (dart.notNull(matches)) { |
| try { |
| _invokeErrorHandler(this[_transform], error, stackTrace); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| if (dart.notNull(core.identical(e, error))) { |
| sink[_addError](error, stackTrace); |
| } else { |
| _addErrorWithReplacement(sink, e, s); |
| } |
| return; |
| } |
| |
| } else { |
| sink[_addError](error, stackTrace); |
| } |
| } |
| } |
| dart.setSignature(_HandleErrorStream, { |
| constructors: () => ({_HandleErrorStream: [_HandleErrorStream$(T), [Stream$(T), core.Function, dart.functionType(core.bool, [dart.dynamic])]]}), |
| methods: () => ({[_handleError]: [dart.void, [core.Object, core.StackTrace, _EventSink$(T)]]}) |
| }); |
| return _HandleErrorStream; |
| }); |
| let _HandleErrorStream = _HandleErrorStream$(); |
| let _remaining = Symbol('_remaining'); |
| let _TakeStream$ = dart.generic(function(T) { |
| class _TakeStream extends _ForwardingStream$(T, T) { |
| _TakeStream(source, count) { |
| this[_remaining] = count; |
| super._ForwardingStream(source); |
| if (!(typeof count == 'number')) |
| dart.throw(new core.ArgumentError(count)); |
| } |
| [_handleData](inputEvent, sink) { |
| dart.as(inputEvent, T); |
| dart.as(sink, _EventSink$(T)); |
| if (dart.notNull(this[_remaining]) > 0) { |
| sink[_add](inputEvent); |
| this[_remaining] = dart.notNull(this[_remaining]) - 1; |
| if (this[_remaining] == 0) { |
| sink[_close](); |
| } |
| } |
| } |
| } |
| dart.setSignature(_TakeStream, { |
| constructors: () => ({_TakeStream: [_TakeStream$(T), [Stream$(T), core.int]]}), |
| methods: () => ({[_handleData]: [dart.void, [T, _EventSink$(T)]]}) |
| }); |
| return _TakeStream; |
| }); |
| let _TakeStream = _TakeStream$(); |
| let _TakeWhileStream$ = dart.generic(function(T) { |
| class _TakeWhileStream extends _ForwardingStream$(T, T) { |
| _TakeWhileStream(source, test) { |
| this[_test] = test; |
| super._ForwardingStream(source); |
| } |
| [_handleData](inputEvent, sink) { |
| dart.as(inputEvent, T); |
| dart.as(sink, _EventSink$(T)); |
| let satisfies = null; |
| try { |
| satisfies = this[_test](inputEvent); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _addErrorWithReplacement(sink, e, s); |
| sink[_close](); |
| return; |
| } |
| |
| if (dart.notNull(satisfies)) { |
| sink[_add](inputEvent); |
| } else { |
| sink[_close](); |
| } |
| } |
| } |
| dart.setSignature(_TakeWhileStream, { |
| constructors: () => ({_TakeWhileStream: [_TakeWhileStream$(T), [Stream$(T), dart.functionType(core.bool, [T])]]}), |
| methods: () => ({[_handleData]: [dart.void, [T, _EventSink$(T)]]}) |
| }); |
| return _TakeWhileStream; |
| }); |
| let _TakeWhileStream = _TakeWhileStream$(); |
| let _SkipStream$ = dart.generic(function(T) { |
| class _SkipStream extends _ForwardingStream$(T, T) { |
| _SkipStream(source, count) { |
| this[_remaining] = count; |
| super._ForwardingStream(source); |
| if (!(typeof count == 'number') || dart.notNull(count) < 0) |
| dart.throw(new core.ArgumentError(count)); |
| } |
| [_handleData](inputEvent, sink) { |
| dart.as(inputEvent, T); |
| dart.as(sink, _EventSink$(T)); |
| if (dart.notNull(this[_remaining]) > 0) { |
| this[_remaining] = dart.notNull(this[_remaining]) - 1; |
| return; |
| } |
| sink[_add](inputEvent); |
| } |
| } |
| dart.setSignature(_SkipStream, { |
| constructors: () => ({_SkipStream: [_SkipStream$(T), [Stream$(T), core.int]]}), |
| methods: () => ({[_handleData]: [dart.void, [T, _EventSink$(T)]]}) |
| }); |
| return _SkipStream; |
| }); |
| let _SkipStream = _SkipStream$(); |
| let _hasFailed = Symbol('_hasFailed'); |
| let _SkipWhileStream$ = dart.generic(function(T) { |
| class _SkipWhileStream extends _ForwardingStream$(T, T) { |
| _SkipWhileStream(source, test) { |
| this[_test] = test; |
| this[_hasFailed] = false; |
| super._ForwardingStream(source); |
| } |
| [_handleData](inputEvent, sink) { |
| dart.as(inputEvent, T); |
| dart.as(sink, _EventSink$(T)); |
| if (dart.notNull(this[_hasFailed])) { |
| sink[_add](inputEvent); |
| return; |
| } |
| let satisfies = null; |
| try { |
| satisfies = this[_test](inputEvent); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _addErrorWithReplacement(sink, e, s); |
| this[_hasFailed] = true; |
| return; |
| } |
| |
| if (!dart.notNull(satisfies)) { |
| this[_hasFailed] = true; |
| sink[_add](inputEvent); |
| } |
| } |
| } |
| dart.setSignature(_SkipWhileStream, { |
| constructors: () => ({_SkipWhileStream: [_SkipWhileStream$(T), [Stream$(T), dart.functionType(core.bool, [T])]]}), |
| methods: () => ({[_handleData]: [dart.void, [T, _EventSink$(T)]]}) |
| }); |
| return _SkipWhileStream; |
| }); |
| let _SkipWhileStream = _SkipWhileStream$(); |
| let _Equality$ = dart.generic(function(T) { |
| let _Equality = dart.typedef('_Equality', () => dart.functionType(core.bool, [T, T])); |
| return _Equality; |
| }); |
| let _Equality = _Equality$(); |
| let _equals = Symbol('_equals'); |
| let _DistinctStream$ = dart.generic(function(T) { |
| class _DistinctStream extends _ForwardingStream$(T, T) { |
| _DistinctStream(source, equals) { |
| this[_previous] = _DistinctStream$()._SENTINEL; |
| this[_equals] = equals; |
| super._ForwardingStream(source); |
| } |
| [_handleData](inputEvent, sink) { |
| dart.as(inputEvent, T); |
| dart.as(sink, _EventSink$(T)); |
| if (dart.notNull(core.identical(this[_previous], _DistinctStream$()._SENTINEL))) { |
| this[_previous] = inputEvent; |
| return sink[_add](inputEvent); |
| } else { |
| let isEqual = null; |
| try { |
| if (this[_equals] == null) { |
| isEqual = dart.equals(this[_previous], inputEvent); |
| } else { |
| isEqual = this[_equals](dart.as(this[_previous], T), inputEvent); |
| } |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| _addErrorWithReplacement(sink, e, s); |
| return null; |
| } |
| |
| if (!dart.notNull(isEqual)) { |
| sink[_add](inputEvent); |
| this[_previous] = inputEvent; |
| } |
| } |
| } |
| } |
| dart.setSignature(_DistinctStream, { |
| constructors: () => ({_DistinctStream: [_DistinctStream$(T), [Stream$(T), dart.functionType(core.bool, [T, T])]]}), |
| methods: () => ({[_handleData]: [dart.void, [T, _EventSink$(T)]]}) |
| }); |
| return _DistinctStream; |
| }); |
| let _DistinctStream = _DistinctStream$(); |
| dart.defineLazyProperties(_DistinctStream, { |
| get _SENTINEL() { |
| return new core.Object(); |
| }, |
| set _SENTINEL(_) {} |
| }); |
| let _EventSinkWrapper$ = dart.generic(function(T) { |
| class _EventSinkWrapper extends core.Object { |
| _EventSinkWrapper(sink) { |
| this[_sink] = sink; |
| } |
| add(data) { |
| dart.as(data, T); |
| this[_sink][_add](data); |
| } |
| addError(error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| this[_sink][_addError](error, stackTrace); |
| } |
| close() { |
| this[_sink][_close](); |
| } |
| } |
| _EventSinkWrapper[dart.implements] = () => [EventSink$(T)]; |
| dart.setSignature(_EventSinkWrapper, { |
| constructors: () => ({_EventSinkWrapper: [_EventSinkWrapper$(T), [_EventSink]]}), |
| methods: () => ({ |
| add: [dart.void, [T]], |
| addError: [dart.void, [dart.dynamic], [core.StackTrace]], |
| close: [dart.void, []] |
| }) |
| }); |
| return _EventSinkWrapper; |
| }); |
| let _EventSinkWrapper = _EventSinkWrapper$(); |
| let _transformerSink = Symbol('_transformerSink'); |
| let _isSubscribed = Symbol('_isSubscribed'); |
| let _SinkTransformerStreamSubscription$ = dart.generic(function(S, T) { |
| class _SinkTransformerStreamSubscription extends _BufferingStreamSubscription$(T) { |
| _SinkTransformerStreamSubscription(source, mapper, onData, onError, onDone, cancelOnError) { |
| this[_transformerSink] = null; |
| this[_subscription] = null; |
| super._BufferingStreamSubscription(onData, onError, onDone, cancelOnError); |
| let eventSink = new (_EventSinkWrapper$(T))(this); |
| this[_transformerSink] = mapper(eventSink); |
| this[_subscription] = source.listen(dart.bind(this, _handleData), {onError: dart.bind(this, _handleError), onDone: dart.bind(this, _handleDone)}); |
| } |
| get [_isSubscribed]() { |
| return this[_subscription] != null; |
| } |
| [_add](data) { |
| dart.as(data, T); |
| if (dart.notNull(this[_isClosed])) { |
| dart.throw(new core.StateError("Stream is already closed")); |
| } |
| super[_add](data); |
| } |
| [_addError](error, stackTrace) { |
| if (dart.notNull(this[_isClosed])) { |
| dart.throw(new core.StateError("Stream is already closed")); |
| } |
| super[_addError](error, stackTrace); |
| } |
| [_close]() { |
| if (dart.notNull(this[_isClosed])) { |
| dart.throw(new core.StateError("Stream is already closed")); |
| } |
| super[_close](); |
| } |
| [_onPause]() { |
| if (dart.notNull(this[_isSubscribed])) |
| this[_subscription].pause(); |
| } |
| [_onResume]() { |
| if (dart.notNull(this[_isSubscribed])) |
| this[_subscription].resume(); |
| } |
| [_onCancel]() { |
| if (dart.notNull(this[_isSubscribed])) { |
| let subscription = this[_subscription]; |
| this[_subscription] = null; |
| subscription.cancel(); |
| } |
| return null; |
| } |
| [_handleData](data) { |
| dart.as(data, S); |
| try { |
| this[_transformerSink].add(data); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| this[_addError](e, s); |
| } |
| |
| } |
| [_handleError](error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| try { |
| this[_transformerSink].addError(error, dart.as(stackTrace, core.StackTrace)); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| if (dart.notNull(core.identical(e, error))) { |
| this[_addError](error, dart.as(stackTrace, core.StackTrace)); |
| } else { |
| this[_addError](e, s); |
| } |
| } |
| |
| } |
| [_handleDone]() { |
| try { |
| this[_subscription] = null; |
| this[_transformerSink].close(); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| this[_addError](e, s); |
| } |
| |
| } |
| } |
| dart.setSignature(_SinkTransformerStreamSubscription, { |
| constructors: () => ({_SinkTransformerStreamSubscription: [_SinkTransformerStreamSubscription$(S, T), [Stream$(S), _SinkMapper$(S, T), dart.functionType(dart.void, [T]), core.Function, dart.functionType(dart.void, []), core.bool]]}), |
| methods: () => ({ |
| [_add]: [dart.void, [T]], |
| [_handleData]: [dart.void, [S]], |
| [_handleError]: [dart.void, [dart.dynamic], [dart.dynamic]], |
| [_handleDone]: [dart.void, []] |
| }) |
| }); |
| return _SinkTransformerStreamSubscription; |
| }); |
| let _SinkTransformerStreamSubscription = _SinkTransformerStreamSubscription$(); |
| let _SinkMapper$ = dart.generic(function(S, T) { |
| let _SinkMapper = dart.typedef('_SinkMapper', () => dart.functionType(EventSink$(S), [EventSink$(T)])); |
| return _SinkMapper; |
| }); |
| let _SinkMapper = _SinkMapper$(); |
| let _sinkMapper = Symbol('_sinkMapper'); |
| let _StreamSinkTransformer$ = dart.generic(function(S, T) { |
| class _StreamSinkTransformer extends core.Object { |
| _StreamSinkTransformer(sinkMapper) { |
| this[_sinkMapper] = sinkMapper; |
| } |
| bind(stream) { |
| dart.as(stream, Stream$(S)); |
| return new (_BoundSinkStream$(S, T))(stream, this[_sinkMapper]); |
| } |
| } |
| _StreamSinkTransformer[dart.implements] = () => [StreamTransformer$(S, T)]; |
| dart.setSignature(_StreamSinkTransformer, { |
| constructors: () => ({_StreamSinkTransformer: [_StreamSinkTransformer$(S, T), [_SinkMapper$(S, T)]]}), |
| methods: () => ({bind: [Stream$(T), [Stream$(S)]]}) |
| }); |
| return _StreamSinkTransformer; |
| }); |
| let _StreamSinkTransformer = _StreamSinkTransformer$(); |
| let _BoundSinkStream$ = dart.generic(function(S, T) { |
| class _BoundSinkStream extends Stream$(T) { |
| get isBroadcast() { |
| return this[_stream].isBroadcast; |
| } |
| _BoundSinkStream(stream, sinkMapper) { |
| this[_stream] = stream; |
| this[_sinkMapper] = sinkMapper; |
| super.Stream(); |
| } |
| 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; |
| cancelOnError = core.identical(true, cancelOnError); |
| let subscription = new (_SinkTransformerStreamSubscription$(dart.dynamic, T))(this[_stream], dart.as(this[_sinkMapper], _SinkMapper), onData, onError, onDone, cancelOnError); |
| return subscription; |
| } |
| } |
| dart.setSignature(_BoundSinkStream, { |
| constructors: () => ({_BoundSinkStream: [_BoundSinkStream$(S, T), [Stream$(S), _SinkMapper$(S, T)]]}), |
| methods: () => ({listen: [StreamSubscription$(T), [dart.functionType(dart.void, [T])], {onError: core.Function, onDone: dart.functionType(dart.void, []), cancelOnError: core.bool}]}) |
| }); |
| return _BoundSinkStream; |
| }); |
| let _BoundSinkStream = _BoundSinkStream$(); |
| let _TransformDataHandler$ = dart.generic(function(S, T) { |
| let _TransformDataHandler = dart.typedef('_TransformDataHandler', () => dart.functionType(dart.void, [S, EventSink$(T)])); |
| return _TransformDataHandler; |
| }); |
| let _TransformDataHandler = _TransformDataHandler$(); |
| let _TransformErrorHandler$ = dart.generic(function(T) { |
| let _TransformErrorHandler = dart.typedef('_TransformErrorHandler', () => dart.functionType(dart.void, [core.Object, core.StackTrace, EventSink$(T)])); |
| return _TransformErrorHandler; |
| }); |
| let _TransformErrorHandler = _TransformErrorHandler$(); |
| let _TransformDoneHandler$ = dart.generic(function(T) { |
| let _TransformDoneHandler = dart.typedef('_TransformDoneHandler', () => dart.functionType(dart.void, [EventSink$(T)])); |
| return _TransformDoneHandler; |
| }); |
| let _TransformDoneHandler = _TransformDoneHandler$(); |
| let _HandlerEventSink$ = dart.generic(function(S, T) { |
| class _HandlerEventSink extends core.Object { |
| _HandlerEventSink(handleData, handleError, handleDone, sink) { |
| this[_handleData] = handleData; |
| this[_handleError] = handleError; |
| this[_handleDone] = handleDone; |
| this[_sink] = sink; |
| } |
| add(data) { |
| dart.as(data, S); |
| return this[_handleData](data, this[_sink]); |
| } |
| addError(error, stackTrace) { |
| if (stackTrace === void 0) |
| stackTrace = null; |
| return this[_handleError](error, stackTrace, this[_sink]); |
| } |
| close() { |
| return this[_handleDone](this[_sink]); |
| } |
| } |
| _HandlerEventSink[dart.implements] = () => [EventSink$(S)]; |
| dart.setSignature(_HandlerEventSink, { |
| constructors: () => ({_HandlerEventSink: [_HandlerEventSink$(S, T), [_TransformDataHandler$(S, T), _TransformErrorHandler$(T), _TransformDoneHandler$(T), EventSink$(T)]]}), |
| methods: () => ({ |
| add: [dart.void, [S]], |
| addError: [dart.void, [core.Object], [core.StackTrace]], |
| close: [dart.void, []] |
| }) |
| }); |
| return _HandlerEventSink; |
| }); |
| let _HandlerEventSink = _HandlerEventSink$(); |
| let _StreamHandlerTransformer$ = dart.generic(function(S, T) { |
| class _StreamHandlerTransformer extends _StreamSinkTransformer$(S, T) { |
| _StreamHandlerTransformer(opts) { |
| let handleData = opts && 'handleData' in opts ? opts.handleData : null; |
| let handleError = opts && 'handleError' in opts ? opts.handleError : null; |
| let handleDone = opts && 'handleDone' in opts ? opts.handleDone : null; |
| super._StreamSinkTransformer(dart.as(dart.fn(outputSink => { |
| dart.as(outputSink, EventSink$(T)); |
| if (handleData == null) |
| handleData = dart.as(_StreamHandlerTransformer$()._defaultHandleData, __CastType27); |
| if (handleError == null) |
| handleError = dart.as(_StreamHandlerTransformer$()._defaultHandleError, __CastType30); |
| if (handleDone == null) |
| handleDone = _StreamHandlerTransformer$()._defaultHandleDone; |
| return new (_HandlerEventSink$(S, T))(handleData, handleError, handleDone, outputSink); |
| }, dart.dynamic, [EventSink$(T)]), _SinkMapper$(S, T))); |
| } |
| bind(stream) { |
| dart.as(stream, Stream$(S)); |
| return super.bind(stream); |
| } |
| static _defaultHandleData(data, sink) { |
| sink.add(data); |
| } |
| static _defaultHandleError(error, stackTrace, sink) { |
| sink.addError(error); |
| } |
| static _defaultHandleDone(sink) { |
| sink.close(); |
| } |
| } |
| dart.setSignature(_StreamHandlerTransformer, { |
| constructors: () => ({_StreamHandlerTransformer: [_StreamHandlerTransformer$(S, T), [], {handleData: dart.functionType(dart.void, [S, EventSink$(T)]), handleError: dart.functionType(dart.void, [core.Object, core.StackTrace, EventSink$(T)]), handleDone: dart.functionType(dart.void, [EventSink$(T)])}]}), |
| methods: () => ({bind: [Stream$(T), [Stream$(S)]]}), |
| statics: () => ({ |
| _defaultHandleData: [dart.void, [dart.dynamic, EventSink]], |
| _defaultHandleError: [dart.void, [dart.dynamic, core.StackTrace, EventSink]], |
| _defaultHandleDone: [dart.void, [EventSink]] |
| }), |
| names: ['_defaultHandleData', '_defaultHandleError', '_defaultHandleDone'] |
| }); |
| return _StreamHandlerTransformer; |
| }); |
| let _StreamHandlerTransformer = _StreamHandlerTransformer$(); |
| let _SubscriptionTransformer$ = dart.generic(function(S, T) { |
| let _SubscriptionTransformer = dart.typedef('_SubscriptionTransformer', () => dart.functionType(StreamSubscription$(T), [Stream$(S), core.bool])); |
| return _SubscriptionTransformer; |
| }); |
| let _SubscriptionTransformer = _SubscriptionTransformer$(); |
| let _transformer = Symbol('_transformer'); |
| let _StreamSubscriptionTransformer$ = dart.generic(function(S, T) { |
| class _StreamSubscriptionTransformer extends core.Object { |
| _StreamSubscriptionTransformer(transformer) { |
| this[_transformer] = transformer; |
| } |
| bind(stream) { |
| dart.as(stream, Stream$(S)); |
| return new (_BoundSubscriptionStream$(S, T))(stream, this[_transformer]); |
| } |
| } |
| _StreamSubscriptionTransformer[dart.implements] = () => [StreamTransformer$(S, T)]; |
| dart.setSignature(_StreamSubscriptionTransformer, { |
| constructors: () => ({_StreamSubscriptionTransformer: [_StreamSubscriptionTransformer$(S, T), [_SubscriptionTransformer$(S, T)]]}), |
| methods: () => ({bind: [Stream$(T), [Stream$(S)]]}) |
| }); |
| return _StreamSubscriptionTransformer; |
| }); |
| let _StreamSubscriptionTransformer = _StreamSubscriptionTransformer$(); |
| let _BoundSubscriptionStream$ = dart.generic(function(S, T) { |
| class _BoundSubscriptionStream extends Stream$(T) { |
| _BoundSubscriptionStream(stream, transformer) { |
| this[_stream] = stream; |
| this[_transformer] = transformer; |
| super.Stream(); |
| } |
| 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; |
| cancelOnError = core.identical(true, cancelOnError); |
| let result = this[_transformer](this[_stream], cancelOnError); |
| result.onData(onData); |
| result.onError(onError); |
| result.onDone(onDone); |
| return result; |
| } |
| } |
| dart.setSignature(_BoundSubscriptionStream, { |
| constructors: () => ({_BoundSubscriptionStream: [_BoundSubscriptionStream$(S, T), [Stream$(S), _SubscriptionTransformer$(S, T)]]}), |
| methods: () => ({listen: [StreamSubscription$(T), [dart.functionType(dart.void, [T])], {onError: core.Function, onDone: dart.functionType(dart.void, []), cancelOnError: core.bool}]}) |
| }); |
| return _BoundSubscriptionStream; |
| }); |
| let _BoundSubscriptionStream = _BoundSubscriptionStream$(); |
| let __CastType27$ = dart.generic(function(S, T) { |
| let __CastType27 = dart.typedef('__CastType27', () => dart.functionType(dart.void, [S, EventSink$(T)])); |
| return __CastType27; |
| }); |
| let __CastType27 = __CastType27$(); |
| let __CastType30$ = dart.generic(function(T) { |
| let __CastType30 = dart.typedef('__CastType30', () => dart.functionType(dart.void, [core.Object, core.StackTrace, EventSink$(T)])); |
| return __CastType30; |
| }); |
| let __CastType30 = __CastType30$(); |
| class Timer extends core.Object { |
| static new(duration, callback) { |
| if (dart.equals(Zone.current, Zone.ROOT)) { |
| return Zone.current.createTimer(duration, callback); |
| } |
| return Zone.current.createTimer(duration, Zone.current.bindCallback(callback, {runGuarded: true})); |
| } |
| static periodic(duration, callback) { |
| if (dart.equals(Zone.current, Zone.ROOT)) { |
| return Zone.current.createPeriodicTimer(duration, callback); |
| } |
| return Zone.current.createPeriodicTimer(duration, dart.as(Zone.current.bindUnaryCallback(callback, {runGuarded: true}), __CastType34)); |
| } |
| static run(callback) { |
| Timer.new(core.Duration.ZERO, callback); |
| } |
| static _createTimer(duration, callback) { |
| let milliseconds = duration.inMilliseconds; |
| if (dart.notNull(milliseconds) < 0) |
| milliseconds = 0; |
| return new _isolate_helper.TimerImpl(milliseconds, callback); |
| } |
| static _createPeriodicTimer(duration, callback) { |
| let milliseconds = duration.inMilliseconds; |
| if (dart.notNull(milliseconds) < 0) |
| milliseconds = 0; |
| return new _isolate_helper.TimerImpl.periodic(milliseconds, callback); |
| } |
| } |
| dart.setSignature(Timer, { |
| constructors: () => ({ |
| new: [Timer, [core.Duration, dart.functionType(dart.void, [])]], |
| periodic: [Timer, [core.Duration, dart.functionType(dart.void, [Timer])]] |
| }), |
| statics: () => ({ |
| run: [dart.void, [dart.functionType(dart.void, [])]], |
| _createTimer: [Timer, [core.Duration, dart.functionType(dart.void, [])]], |
| _createPeriodicTimer: [Timer, [core.Duration, dart.functionType(dart.void, [Timer])]] |
| }), |
| names: ['run', '_createTimer', '_createPeriodicTimer'] |
| }); |
| let __CastType34 = dart.typedef('__CastType34', () => dart.functionType(dart.void, [Timer])); |
| let ZoneCallback = dart.typedef('ZoneCallback', () => dart.functionType(dart.dynamic, [])); |
| let ZoneUnaryCallback = dart.typedef('ZoneUnaryCallback', () => dart.functionType(dart.dynamic, [dart.dynamic])); |
| let ZoneBinaryCallback = dart.typedef('ZoneBinaryCallback', () => dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])); |
| let HandleUncaughtErrorHandler = dart.typedef('HandleUncaughtErrorHandler', () => dart.functionType(dart.dynamic, [Zone, ZoneDelegate, Zone, dart.dynamic, core.StackTrace])); |
| let RunHandler = dart.typedef('RunHandler', () => dart.functionType(dart.dynamic, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [])])); |
| let RunUnaryHandler = dart.typedef('RunUnaryHandler', () => dart.functionType(dart.dynamic, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic])); |
| let RunBinaryHandler = dart.typedef('RunBinaryHandler', () => dart.functionType(dart.dynamic, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic])); |
| let RegisterCallbackHandler = dart.typedef('RegisterCallbackHandler', () => dart.functionType(ZoneCallback, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [])])); |
| let RegisterUnaryCallbackHandler = dart.typedef('RegisterUnaryCallbackHandler', () => dart.functionType(ZoneUnaryCallback, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic])])); |
| let RegisterBinaryCallbackHandler = dart.typedef('RegisterBinaryCallbackHandler', () => dart.functionType(ZoneBinaryCallback, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])])); |
| let ErrorCallbackHandler = dart.typedef('ErrorCallbackHandler', () => dart.functionType(AsyncError, [Zone, ZoneDelegate, Zone, core.Object, core.StackTrace])); |
| let ScheduleMicrotaskHandler = dart.typedef('ScheduleMicrotaskHandler', () => dart.functionType(dart.void, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [])])); |
| let CreateTimerHandler = dart.typedef('CreateTimerHandler', () => dart.functionType(Timer, [Zone, ZoneDelegate, Zone, core.Duration, dart.functionType(dart.void, [])])); |
| let CreatePeriodicTimerHandler = dart.typedef('CreatePeriodicTimerHandler', () => dart.functionType(Timer, [Zone, ZoneDelegate, Zone, core.Duration, dart.functionType(dart.void, [Timer])])); |
| let PrintHandler = dart.typedef('PrintHandler', () => dart.functionType(dart.void, [Zone, ZoneDelegate, Zone, core.String])); |
| let ForkHandler = dart.typedef('ForkHandler', () => dart.functionType(Zone, [Zone, ZoneDelegate, Zone, ZoneSpecification, core.Map])); |
| class _ZoneFunction extends core.Object { |
| _ZoneFunction(zone, func) { |
| this.zone = zone; |
| this.function = func; |
| } |
| } |
| dart.setSignature(_ZoneFunction, { |
| constructors: () => ({_ZoneFunction: [_ZoneFunction, [_Zone, core.Function]]}) |
| }); |
| class ZoneSpecification extends core.Object { |
| static new(opts) { |
| return new _ZoneSpecification(opts); |
| } |
| static from(other, opts) { |
| let handleUncaughtError = opts && 'handleUncaughtError' in opts ? opts.handleUncaughtError : null; |
| let run = opts && 'run' in opts ? opts.run : null; |
| let runUnary = opts && 'runUnary' in opts ? opts.runUnary : null; |
| let runBinary = opts && 'runBinary' in opts ? opts.runBinary : null; |
| let registerCallback = opts && 'registerCallback' in opts ? opts.registerCallback : null; |
| let registerUnaryCallback = opts && 'registerUnaryCallback' in opts ? opts.registerUnaryCallback : null; |
| let registerBinaryCallback = opts && 'registerBinaryCallback' in opts ? opts.registerBinaryCallback : null; |
| let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null; |
| let scheduleMicrotask = opts && 'scheduleMicrotask' in opts ? opts.scheduleMicrotask : null; |
| let createTimer = opts && 'createTimer' in opts ? opts.createTimer : null; |
| 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 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(ZoneSpecification, { |
| constructors: () => ({ |
| new: [ZoneSpecification, [], {handleUncaughtError: dart.functionType(dart.dynamic, [Zone, ZoneDelegate, Zone, dart.dynamic, core.StackTrace]), run: dart.functionType(dart.dynamic, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [])]), runUnary: dart.functionType(dart.dynamic, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic]), runBinary: dart.functionType(dart.dynamic, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic]), registerCallback: dart.functionType(ZoneCallback, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [])]), registerUnaryCallback: dart.functionType(ZoneUnaryCallback, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic])]), registerBinaryCallback: dart.functionType(ZoneBinaryCallback, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])]), errorCallback: dart.functionType(AsyncError, [Zone, ZoneDelegate, Zone, core.Object, core.StackTrace]), scheduleMicrotask: dart.functionType(dart.void, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [])]), createTimer: dart.functionType(Timer, [Zone, ZoneDelegate, Zone, core.Duration, dart.functionType(dart.void, [])]), createPeriodicTimer: dart.functionType(Timer, [Zone, ZoneDelegate, Zone, core.Duration, dart.functionType(dart.void, [Timer])]), print: dart.functionType(dart.void, [Zone, ZoneDelegate, Zone, core.String]), fork: dart.functionType(Zone, [Zone, ZoneDelegate, Zone, ZoneSpecification, core.Map])}], |
| from: [ZoneSpecification, [ZoneSpecification], {handleUncaughtError: dart.functionType(dart.dynamic, [Zone, ZoneDelegate, Zone, dart.dynamic, core.StackTrace]), run: dart.functionType(dart.dynamic, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [])]), runUnary: dart.functionType(dart.dynamic, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic]), runBinary: dart.functionType(dart.dynamic, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic]), registerCallback: dart.functionType(ZoneCallback, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [])]), registerUnaryCallback: dart.functionType(ZoneUnaryCallback, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic])]), registerBinaryCallback: dart.functionType(ZoneBinaryCallback, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])]), errorCallback: dart.functionType(AsyncError, [Zone, ZoneDelegate, Zone, core.Object, core.StackTrace]), scheduleMicrotask: dart.functionType(dart.void, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [])]), createTimer: dart.functionType(Timer, [Zone, ZoneDelegate, Zone, core.Duration, dart.functionType(dart.void, [])]), createPeriodicTimer: dart.functionType(Timer, [Zone, ZoneDelegate, Zone, core.Duration, dart.functionType(dart.void, [Timer])]), print: dart.functionType(dart.void, [Zone, ZoneDelegate, Zone, core.String]), fork: dart.functionType(Zone, [Zone, ZoneDelegate, Zone, ZoneSpecification, core.Map])}] |
| }) |
| }); |
| class _ZoneSpecification extends core.Object { |
| _ZoneSpecification(opts) { |
| let handleUncaughtError = opts && 'handleUncaughtError' in opts ? opts.handleUncaughtError : null; |
| let run = opts && 'run' in opts ? opts.run : null; |
| let runUnary = opts && 'runUnary' in opts ? opts.runUnary : null; |
| let runBinary = opts && 'runBinary' in opts ? opts.runBinary : null; |
| let registerCallback = opts && 'registerCallback' in opts ? opts.registerCallback : null; |
| let registerUnaryCallback = opts && 'registerUnaryCallback' in opts ? opts.registerUnaryCallback : null; |
| let registerBinaryCallback = opts && 'registerBinaryCallback' in opts ? opts.registerBinaryCallback : null; |
| let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null; |
| let scheduleMicrotask = opts && 'scheduleMicrotask' in opts ? opts.scheduleMicrotask : null; |
| let createTimer = opts && 'createTimer' in opts ? opts.createTimer : null; |
| 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; |
| this.handleUncaughtError = handleUncaughtError; |
| this.run = run; |
| this.runUnary = runUnary; |
| this.runBinary = runBinary; |
| this.registerCallback = registerCallback; |
| this.registerUnaryCallback = registerUnaryCallback; |
| this.registerBinaryCallback = registerBinaryCallback; |
| this.errorCallback = errorCallback; |
| this.scheduleMicrotask = scheduleMicrotask; |
| this.createTimer = createTimer; |
| this.createPeriodicTimer = createPeriodicTimer; |
| this.print = print; |
| this.fork = fork; |
| } |
| } |
| _ZoneSpecification[dart.implements] = () => [ZoneSpecification]; |
| dart.setSignature(_ZoneSpecification, { |
| constructors: () => ({_ZoneSpecification: [_ZoneSpecification, [], {handleUncaughtError: HandleUncaughtErrorHandler, run: RunHandler, runUnary: RunUnaryHandler, runBinary: RunBinaryHandler, registerCallback: RegisterCallbackHandler, registerUnaryCallback: RegisterUnaryCallbackHandler, registerBinaryCallback: RegisterBinaryCallbackHandler, errorCallback: ErrorCallbackHandler, scheduleMicrotask: ScheduleMicrotaskHandler, createTimer: CreateTimerHandler, createPeriodicTimer: CreatePeriodicTimerHandler, print: PrintHandler, fork: ForkHandler}]}) |
| }); |
| class ZoneDelegate extends core.Object {} |
| class Zone extends core.Object { |
| _() { |
| } |
| static get current() { |
| return Zone._current; |
| } |
| static _enter(zone) { |
| dart.assert(zone != null); |
| dart.assert(!dart.notNull(core.identical(zone, Zone._current))); |
| let previous = Zone._current; |
| Zone._current = zone; |
| return previous; |
| } |
| static _leave(previous) { |
| dart.assert(previous != null); |
| Zone._current = previous; |
| } |
| } |
| dart.defineNamedConstructor(Zone, '_'); |
| dart.setSignature(Zone, { |
| constructors: () => ({_: [Zone, []]}), |
| statics: () => ({ |
| _enter: [Zone, [Zone]], |
| _leave: [dart.void, [Zone]] |
| }), |
| names: ['_enter', '_leave'] |
| }); |
| let _run = Symbol('_run'); |
| let _runUnary = Symbol('_runUnary'); |
| let _runBinary = Symbol('_runBinary'); |
| let _registerCallback = Symbol('_registerCallback'); |
| let _registerUnaryCallback = Symbol('_registerUnaryCallback'); |
| let _registerBinaryCallback = Symbol('_registerBinaryCallback'); |
| let _errorCallback = Symbol('_errorCallback'); |
| let _scheduleMicrotask = Symbol('_scheduleMicrotask'); |
| let _createTimer = Symbol('_createTimer'); |
| let _createPeriodicTimer = Symbol('_createPeriodicTimer'); |
| let _print = Symbol('_print'); |
| let _fork = Symbol('_fork'); |
| let _handleUncaughtError = Symbol('_handleUncaughtError'); |
| let _map = Symbol('_map'); |
| let _delegate = Symbol('_delegate'); |
| class _Zone extends core.Object { |
| _Zone() { |
| } |
| inSameErrorZone(otherZone) { |
| return dart.notNull(core.identical(this, otherZone)) || dart.notNull(core.identical(this.errorZone, otherZone.errorZone)); |
| } |
| } |
| _Zone[dart.implements] = () => [Zone]; |
| dart.setSignature(_Zone, { |
| constructors: () => ({_Zone: [_Zone, []]}), |
| methods: () => ({inSameErrorZone: [core.bool, [Zone]]}) |
| }); |
| class _RootZone extends _Zone { |
| _RootZone() { |
| super._Zone(); |
| } |
| get [_run]() { |
| return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootRun)); |
| } |
| get [_runUnary]() { |
| return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootRunUnary)); |
| } |
| get [_runBinary]() { |
| return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootRunBinary)); |
| } |
| get [_registerCallback]() { |
| return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootRegisterCallback)); |
| } |
| get [_registerUnaryCallback]() { |
| return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootRegisterUnaryCallback)); |
| } |
| get [_registerBinaryCallback]() { |
| return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootRegisterBinaryCallback)); |
| } |
| get [_errorCallback]() { |
| return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootErrorCallback)); |
| } |
| get [_scheduleMicrotask]() { |
| return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootScheduleMicrotask)); |
| } |
| get [_createTimer]() { |
| return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootCreateTimer)); |
| } |
| get [_createPeriodicTimer]() { |
| return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootCreatePeriodicTimer)); |
| } |
| get [_print]() { |
| return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootPrint)); |
| } |
| get [_fork]() { |
| return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootFork)); |
| } |
| get [_handleUncaughtError]() { |
| return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootHandleUncaughtError)); |
| } |
| get parent() { |
| return null; |
| } |
| get [_map]() { |
| return _RootZone._rootMap; |
| } |
| get [_delegate]() { |
| if (_RootZone._rootDelegate != null) |
| return _RootZone._rootDelegate; |
| return _RootZone._rootDelegate = new _ZoneDelegate(this); |
| } |
| get errorZone() { |
| return this; |
| } |
| runGuarded(f) { |
| try { |
| if (dart.notNull(core.identical(_ROOT_ZONE, Zone._current))) { |
| return f(); |
| } |
| return _rootRun(null, null, this, f); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| return this.handleUncaughtError(e, s); |
| } |
| |
| } |
| runUnaryGuarded(f, arg) { |
| try { |
| if (dart.notNull(core.identical(_ROOT_ZONE, Zone._current))) { |
| return dart.dcall(f, arg); |
| } |
| return _rootRunUnary(null, null, this, f, arg); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| return this.handleUncaughtError(e, s); |
| } |
| |
| } |
| runBinaryGuarded(f, arg1, arg2) { |
| try { |
| if (dart.notNull(core.identical(_ROOT_ZONE, Zone._current))) { |
| return dart.dcall(f, arg1, arg2); |
| } |
| return _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)).bind(this)); |
| } else { |
| return dart.fn((() => this.run(f)).bind(this)); |
| } |
| } |
| bindUnaryCallback(f, opts) { |
| let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true; |
| if (dart.notNull(runGuarded)) { |
| return dart.fn((arg => this.runUnaryGuarded(f, arg)).bind(this)); |
| } else { |
| return dart.fn((arg => this.runUnary(f, arg)).bind(this)); |
| } |
| } |
| bindBinaryCallback(f, opts) { |
| let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true; |
| if (dart.notNull(runGuarded)) { |
| return dart.fn(((arg1, arg2) => this.runBinaryGuarded(f, arg1, arg2)).bind(this)); |
| } else { |
| return dart.fn(((arg1, arg2) => this.runBinary(f, arg1, arg2)).bind(this)); |
| } |
| } |
| get(key) { |
| return null; |
| } |
| handleUncaughtError(error, stackTrace) { |
| return _rootHandleUncaughtError(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 _rootFork(null, null, this, specification, zoneValues); |
| } |
| run(f) { |
| if (dart.notNull(core.identical(Zone._current, _ROOT_ZONE))) |
| return f(); |
| return _rootRun(null, null, this, f); |
| } |
| runUnary(f, arg) { |
| if (dart.notNull(core.identical(Zone._current, _ROOT_ZONE))) |
| return dart.dcall(f, arg); |
| return _rootRunUnary(null, null, this, f, arg); |
| } |
| runBinary(f, arg1, arg2) { |
| if (dart.notNull(core.identical(Zone._current, _ROOT_ZONE))) |
| return dart.dcall(f, arg1, arg2); |
| return _rootRunBinary(null, null, this, f, arg1, arg2); |
| } |
| registerCallback(f) { |
| return f; |
| } |
| registerUnaryCallback(f) { |
| return f; |
| } |
| registerBinaryCallback(f) { |
| return f; |
| } |
| errorCallback(error, stackTrace) { |
| return null; |
| } |
| scheduleMicrotask(f) { |
| _rootScheduleMicrotask(null, null, this, f); |
| } |
| createTimer(duration, f) { |
| return Timer._createTimer(duration, f); |
| } |
| createPeriodicTimer(duration, f) { |
| return Timer._createPeriodicTimer(duration, f); |
| } |
| print(line) { |
| _internal.printToConsole(line); |
| } |
| } |
| dart.setSignature(_RootZone, { |
| constructors: () => ({_RootZone: [_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: [ZoneCallback, [dart.functionType(dart.dynamic, [])], {runGuarded: core.bool}], |
| bindUnaryCallback: [ZoneUnaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic])], {runGuarded: core.bool}], |
| bindBinaryCallback: [ZoneBinaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])], {runGuarded: core.bool}], |
| get: [dart.dynamic, [core.Object]], |
| handleUncaughtError: [dart.dynamic, [dart.dynamic, core.StackTrace]], |
| fork: [Zone, [], {specification: 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: [ZoneCallback, [dart.functionType(dart.dynamic, [])]], |
| registerUnaryCallback: [ZoneUnaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic])]], |
| registerBinaryCallback: [ZoneBinaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])]], |
| errorCallback: [AsyncError, [core.Object, core.StackTrace]], |
| scheduleMicrotask: [dart.void, [dart.functionType(dart.void, [])]], |
| createTimer: [Timer, [core.Duration, dart.functionType(dart.void, [])]], |
| createPeriodicTimer: [Timer, [core.Duration, dart.functionType(dart.void, [Timer])]], |
| print: [dart.void, [core.String]] |
| }) |
| }); |
| let _ROOT_ZONE = dart.const(new _RootZone()); |
| Zone.ROOT = _ROOT_ZONE; |
| Zone._current = _ROOT_ZONE; |
| function _parentDelegate(zone) { |
| if (zone.parent == null) |
| return null; |
| return zone.parent[_delegate]; |
| } |
| dart.fn(_parentDelegate, ZoneDelegate, [_Zone]); |
| let _delegationTarget = Symbol('_delegationTarget'); |
| class _ZoneDelegate extends core.Object { |
| _ZoneDelegate(delegationTarget) { |
| this[_delegationTarget] = delegationTarget; |
| } |
| handleUncaughtError(zone, error, stackTrace) { |
| let implementation = this[_delegationTarget][_handleUncaughtError]; |
| let implZone = implementation.zone; |
| return dart.dcall(implementation.function, implZone, _parentDelegate(implZone), zone, error, stackTrace); |
| } |
| run(zone, f) { |
| let implementation = this[_delegationTarget][_run]; |
| let implZone = implementation.zone; |
| return dart.dcall(implementation.function, implZone, _parentDelegate(implZone), zone, f); |
| } |
| runUnary(zone, f, arg) { |
| let implementation = this[_delegationTarget][_runUnary]; |
| let implZone = implementation.zone; |
| return dart.dcall(implementation.function, implZone, _parentDelegate(implZone), zone, f, arg); |
| } |
| runBinary(zone, f, arg1, arg2) { |
| let implementation = this[_delegationTarget][_runBinary]; |
| let implZone = implementation.zone; |
| return dart.dcall(implementation.function, implZone, _parentDelegate(implZone), zone, f, arg1, arg2); |
| } |
| registerCallback(zone, f) { |
| let implementation = this[_delegationTarget][_registerCallback]; |
| let implZone = implementation.zone; |
| return dart.as(dart.dcall(implementation.function, implZone, _parentDelegate(implZone), zone, f), ZoneCallback); |
| } |
| registerUnaryCallback(zone, f) { |
| let implementation = this[_delegationTarget][_registerUnaryCallback]; |
| let implZone = implementation.zone; |
| return dart.as(dart.dcall(implementation.function, implZone, _parentDelegate(implZone), zone, f), ZoneUnaryCallback); |
| } |
| registerBinaryCallback(zone, f) { |
| let implementation = this[_delegationTarget][_registerBinaryCallback]; |
| let implZone = implementation.zone; |
| return dart.as(dart.dcall(implementation.function, implZone, _parentDelegate(implZone), zone, f), ZoneBinaryCallback); |
| } |
| errorCallback(zone, error, stackTrace) { |
| let implementation = this[_delegationTarget][_errorCallback]; |
| let implZone = implementation.zone; |
| if (dart.notNull(core.identical(implZone, _ROOT_ZONE))) |
| return null; |
| return dart.as(dart.dcall(implementation.function, implZone, _parentDelegate(implZone), zone, error, stackTrace), AsyncError); |
| } |
| scheduleMicrotask(zone, f) { |
| let implementation = this[_delegationTarget][_scheduleMicrotask]; |
| let implZone = implementation.zone; |
| dart.dcall(implementation.function, implZone, _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, _parentDelegate(implZone), zone, duration, f), Timer); |
| } |
| createPeriodicTimer(zone, period, f) { |
| let implementation = this[_delegationTarget][_createPeriodicTimer]; |
| let implZone = implementation.zone; |
| return dart.as(dart.dcall(implementation.function, implZone, _parentDelegate(implZone), zone, period, f), Timer); |
| } |
| print(zone, line) { |
| let implementation = this[_delegationTarget][_print]; |
| let implZone = implementation.zone; |
| dart.dcall(implementation.function, implZone, _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, _parentDelegate(implZone), zone, specification, zoneValues), Zone); |
| } |
| } |
| _ZoneDelegate[dart.implements] = () => [ZoneDelegate]; |
| dart.setSignature(_ZoneDelegate, { |
| constructors: () => ({_ZoneDelegate: [_ZoneDelegate, [_Zone]]}), |
| methods: () => ({ |
| handleUncaughtError: [dart.dynamic, [Zone, dart.dynamic, core.StackTrace]], |
| run: [dart.dynamic, [Zone, dart.functionType(dart.dynamic, [])]], |
| runUnary: [dart.dynamic, [Zone, dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic]], |
| runBinary: [dart.dynamic, [Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic]], |
| registerCallback: [ZoneCallback, [Zone, dart.functionType(dart.dynamic, [])]], |
| registerUnaryCallback: [ZoneUnaryCallback, [Zone, dart.functionType(dart.dynamic, [dart.dynamic])]], |
| registerBinaryCallback: [ZoneBinaryCallback, [Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])]], |
| errorCallback: [AsyncError, [Zone, core.Object, core.StackTrace]], |
| scheduleMicrotask: [dart.void, [Zone, dart.functionType(dart.dynamic, [])]], |
| createTimer: [Timer, [Zone, core.Duration, dart.functionType(dart.void, [])]], |
| createPeriodicTimer: [Timer, [Zone, core.Duration, dart.functionType(dart.void, [Timer])]], |
| print: [dart.void, [Zone, core.String]], |
| fork: [Zone, [Zone, ZoneSpecification, core.Map]] |
| }) |
| }); |
| let _delegateCache = Symbol('_delegateCache'); |
| class _CustomZone extends _Zone { |
| get [_delegate]() { |
| if (this[_delegateCache] != null) |
| return this[_delegateCache]; |
| this[_delegateCache] = new _ZoneDelegate(this); |
| return this[_delegateCache]; |
| } |
| _CustomZone(parent, specification, map) { |
| this.parent = parent; |
| this[_map] = map; |
| this[_runUnary] = null; |
| this[_run] = null; |
| this[_runBinary] = null; |
| this[_registerCallback] = null; |
| this[_registerUnaryCallback] = null; |
| this[_registerBinaryCallback] = null; |
| this[_errorCallback] = null; |
| this[_scheduleMicrotask] = null; |
| this[_createTimer] = null; |
| this[_createPeriodicTimer] = null; |
| this[_print] = null; |
| this[_fork] = null; |
| this[_handleUncaughtError] = null; |
| this[_delegateCache] = null; |
| super._Zone(); |
| this[_run] = specification.run != null ? new _ZoneFunction(this, specification.run) : this.parent[_run]; |
| this[_runUnary] = specification.runUnary != null ? new _ZoneFunction(this, specification.runUnary) : this.parent[_runUnary]; |
| this[_runBinary] = specification.runBinary != null ? new _ZoneFunction(this, specification.runBinary) : this.parent[_runBinary]; |
| this[_registerCallback] = specification.registerCallback != null ? new _ZoneFunction(this, specification.registerCallback) : this.parent[_registerCallback]; |
| this[_registerUnaryCallback] = specification.registerUnaryCallback != null ? new _ZoneFunction(this, specification.registerUnaryCallback) : this.parent[_registerUnaryCallback]; |
| this[_registerBinaryCallback] = specification.registerBinaryCallback != null ? new _ZoneFunction(this, specification.registerBinaryCallback) : this.parent[_registerBinaryCallback]; |
| this[_errorCallback] = specification.errorCallback != null ? new _ZoneFunction(this, specification.errorCallback) : this.parent[_errorCallback]; |
| this[_scheduleMicrotask] = specification.scheduleMicrotask != null ? new _ZoneFunction(this, specification.scheduleMicrotask) : this.parent[_scheduleMicrotask]; |
| this[_createTimer] = specification.createTimer != null ? new _ZoneFunction(this, specification.createTimer) : this.parent[_createTimer]; |
| this[_createPeriodicTimer] = specification.createPeriodicTimer != null ? new _ZoneFunction(this, specification.createPeriodicTimer) : this.parent[_createPeriodicTimer]; |
| this[_print] = specification.print != null ? new _ZoneFunction(this, specification.print) : this.parent[_print]; |
| this[_fork] = specification.fork != null ? new _ZoneFunction(this, specification.fork) : this.parent[_fork]; |
| this[_handleUncaughtError] = specification.handleUncaughtError != null ? new _ZoneFunction(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); |
| } |
| |
| } |
| runUnaryGuarded(f, arg) { |
| try { |
| return this.runUnary(f, arg); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| return this.handleUncaughtError(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); |
| } |
| |
| } |
| 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)).bind(this)); |
| } else { |
| return dart.fn((() => this.run(registered)).bind(this)); |
| } |
| } |
| bindUnaryCallback(f, opts) { |
| let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true; |
| let registered = this.registerUnaryCallback(f); |
| if (dart.notNull(runGuarded)) { |
| return dart.fn((arg => this.runUnaryGuarded(registered, arg)).bind(this)); |
| } else { |
| return dart.fn((arg => this.runUnary(registered, arg)).bind(this)); |
| } |
| } |
| bindBinaryCallback(f, opts) { |
| let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true; |
| let registered = this.registerBinaryCallback(f); |
| if (dart.notNull(runGuarded)) { |
| return dart.fn(((arg1, arg2) => this.runBinaryGuarded(registered, arg1, arg2)).bind(this)); |
| } else { |
| return dart.fn(((arg1, arg2) => this.runBinary(registered, arg1, arg2)).bind(this)); |
| } |
| } |
| get(key) { |
| let result = this[_map].get(key); |
| if (result != null || dart.notNull(this[_map].containsKey(key))) |
| return result; |
| if (this.parent != null) { |
| let value = this.parent.get(key); |
| if (value != null) { |
| this[_map].set(key, value); |
| } |
| return value; |
| } |
| dart.assert(dart.equals(this, _ROOT_ZONE)); |
| return null; |
| } |
| handleUncaughtError(error, stackTrace) { |
| let implementation = this[_handleUncaughtError]; |
| dart.assert(implementation != null); |
| let parentDelegate = _parentDelegate(implementation.zone); |
| return dart.dcall(implementation.function, implementation.zone, parentDelegate, this, error, stackTrace); |
| } |
| fork(opts) { |
| let specification = opts && 'specification' in opts ? opts.specification : null; |
| let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null; |
| let implementation = this[_fork]; |
| dart.assert(implementation != null); |
| let parentDelegate = _parentDelegate(implementation.zone); |
| return dart.as(dart.dcall(implementation.function, implementation.zone, parentDelegate, this, specification, zoneValues), Zone); |
| } |
| run(f) { |
| let implementation = this[_run]; |
| dart.assert(implementation != null); |
| let parentDelegate = _parentDelegate(implementation.zone); |
| return dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f); |
| } |
| runUnary(f, arg) { |
| let implementation = this[_runUnary]; |
| dart.assert(implementation != null); |
| let parentDelegate = _parentDelegate(implementation.zone); |
| return dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f, arg); |
| } |
| runBinary(f, arg1, arg2) { |
| let implementation = this[_runBinary]; |
| dart.assert(implementation != null); |
| let parentDelegate = _parentDelegate(implementation.zone); |
| return dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f, arg1, arg2); |
| } |
| registerCallback(f) { |
| let implementation = this[_registerCallback]; |
| dart.assert(implementation != null); |
| let parentDelegate = _parentDelegate(implementation.zone); |
| return dart.as(dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f), ZoneCallback); |
| } |
| registerUnaryCallback(f) { |
| let implementation = this[_registerUnaryCallback]; |
| dart.assert(implementation != null); |
| let parentDelegate = _parentDelegate(implementation.zone); |
| return dart.as(dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f), ZoneUnaryCallback); |
| } |
| registerBinaryCallback(f) { |
| let implementation = this[_registerBinaryCallback]; |
| dart.assert(implementation != null); |
| let parentDelegate = _parentDelegate(implementation.zone); |
| return dart.as(dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f), ZoneBinaryCallback); |
| } |
| errorCallback(error, stackTrace) { |
| let implementation = this[_errorCallback]; |
| dart.assert(implementation != null); |
| let implementationZone = implementation.zone; |
| if (dart.notNull(core.identical(implementationZone, _ROOT_ZONE))) |
| return null; |
| let parentDelegate = _parentDelegate(dart.as(implementationZone, _Zone)); |
| return dart.as(dart.dcall(implementation.function, implementationZone, parentDelegate, this, error, stackTrace), AsyncError); |
| } |
| scheduleMicrotask(f) { |
| let implementation = this[_scheduleMicrotask]; |
| dart.assert(implementation != null); |
| let parentDelegate = _parentDelegate(implementation.zone); |
| return dart.dcall(implementation.function, implementation.zone, parentDelegate, this, f); |
| } |
| createTimer(duration, f) { |
| let implementation = this[_createTimer]; |
| dart.assert(implementation != null); |
| let parentDelegate = _parentDelegate(implementation.zone); |
| return dart.as(dart.dcall(implementation.function, implementation.zone, parentDelegate, this, duration, f), Timer); |
| } |
| createPeriodicTimer(duration, f) { |
| let implementation = this[_createPeriodicTimer]; |
| dart.assert(implementation != null); |
| let parentDelegate = _parentDelegate(implementation.zone); |
| return dart.as(dart.dcall(implementation.function, implementation.zone, parentDelegate, this, duration, f), Timer); |
| } |
| print(line) { |
| let implementation = this[_print]; |
| dart.assert(implementation != null); |
| let parentDelegate = _parentDelegate(implementation.zone); |
| return dart.dcall(implementation.function, implementation.zone, parentDelegate, this, line); |
| } |
| } |
| dart.setSignature(_CustomZone, { |
| constructors: () => ({_CustomZone: [_CustomZone, [_Zone, 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: [ZoneCallback, [dart.functionType(dart.dynamic, [])], {runGuarded: core.bool}], |
| bindUnaryCallback: [ZoneUnaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic])], {runGuarded: core.bool}], |
| bindBinaryCallback: [ZoneBinaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])], {runGuarded: core.bool}], |
| get: [dart.dynamic, [core.Object]], |
| handleUncaughtError: [dart.dynamic, [dart.dynamic, core.StackTrace]], |
| fork: [Zone, [], {specification: 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: [ZoneCallback, [dart.functionType(dart.dynamic, [])]], |
| registerUnaryCallback: [ZoneUnaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic])]], |
| registerBinaryCallback: [ZoneBinaryCallback, [dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])]], |
| errorCallback: [AsyncError, [core.Object, core.StackTrace]], |
| scheduleMicrotask: [dart.void, [dart.functionType(dart.void, [])]], |
| createTimer: [Timer, [core.Duration, dart.functionType(dart.void, [])]], |
| createPeriodicTimer: [Timer, [core.Duration, dart.functionType(dart.void, [Timer])]], |
| print: [dart.void, [core.String]] |
| }) |
| }); |
| function _rootHandleUncaughtError(self, parent, zone, error, stackTrace) { |
| _schedulePriorityAsyncCallback(dart.fn(() => { |
| dart.throw(new _UncaughtAsyncError(error, stackTrace)); |
| })); |
| } |
| dart.fn(_rootHandleUncaughtError, dart.void, [Zone, ZoneDelegate, Zone, dart.dynamic, core.StackTrace]); |
| function _rootRun(self, parent, zone, f) { |
| if (dart.equals(Zone._current, zone)) |
| return f(); |
| let old = Zone._enter(zone); |
| try { |
| return f(); |
| } finally { |
| Zone._leave(old); |
| } |
| } |
| dart.fn(_rootRun, dart.dynamic, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [])]); |
| function _rootRunUnary(self, parent, zone, f, arg) { |
| if (dart.equals(Zone._current, zone)) |
| return dart.dcall(f, arg); |
| let old = Zone._enter(zone); |
| try { |
| return dart.dcall(f, arg); |
| } finally { |
| Zone._leave(old); |
| } |
| } |
| dart.fn(_rootRunUnary, dart.dynamic, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic]), dart.dynamic]); |
| function _rootRunBinary(self, parent, zone, f, arg1, arg2) { |
| if (dart.equals(Zone._current, zone)) |
| return dart.dcall(f, arg1, arg2); |
| let old = Zone._enter(zone); |
| try { |
| return dart.dcall(f, arg1, arg2); |
| } finally { |
| Zone._leave(old); |
| } |
| } |
| dart.fn(_rootRunBinary, dart.dynamic, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]), dart.dynamic, dart.dynamic]); |
| function _rootRegisterCallback(self, parent, zone, f) { |
| return f; |
| } |
| dart.fn(_rootRegisterCallback, ZoneCallback, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [])]); |
| function _rootRegisterUnaryCallback(self, parent, zone, f) { |
| return f; |
| } |
| dart.fn(_rootRegisterUnaryCallback, ZoneUnaryCallback, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic])]); |
| function _rootRegisterBinaryCallback(self, parent, zone, f) { |
| return f; |
| } |
| dart.fn(_rootRegisterBinaryCallback, ZoneBinaryCallback, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])]); |
| function _rootErrorCallback(self, parent, zone, error, stackTrace) { |
| return null; |
| } |
| dart.fn(_rootErrorCallback, AsyncError, [Zone, ZoneDelegate, Zone, core.Object, core.StackTrace]); |
| function _rootScheduleMicrotask(self, parent, zone, f) { |
| if (!dart.notNull(core.identical(_ROOT_ZONE, zone))) { |
| let hasErrorHandler = !dart.notNull(_ROOT_ZONE.inSameErrorZone(zone)); |
| f = zone.bindCallback(f, {runGuarded: hasErrorHandler}); |
| } |
| _scheduleAsyncCallback(f); |
| } |
| dart.fn(_rootScheduleMicrotask, dart.void, [Zone, ZoneDelegate, Zone, dart.functionType(dart.dynamic, [])]); |
| function _rootCreateTimer(self, parent, zone, duration, callback) { |
| if (!dart.notNull(core.identical(_ROOT_ZONE, zone))) { |
| callback = zone.bindCallback(callback); |
| } |
| return Timer._createTimer(duration, callback); |
| } |
| dart.fn(_rootCreateTimer, Timer, [Zone, ZoneDelegate, Zone, core.Duration, dart.functionType(dart.void, [])]); |
| function _rootCreatePeriodicTimer(self, parent, zone, duration, callback) { |
| if (!dart.notNull(core.identical(_ROOT_ZONE, zone))) { |
| callback = dart.as(zone.bindUnaryCallback(callback), __CastType36); |
| } |
| return Timer._createPeriodicTimer(duration, callback); |
| } |
| dart.fn(_rootCreatePeriodicTimer, Timer, [Zone, ZoneDelegate, Zone, core.Duration, dart.functionType(dart.void, [Timer])]); |
| function _rootPrint(self, parent, zone, line) { |
| _internal.printToConsole(line); |
| } |
| dart.fn(_rootPrint, dart.void, [Zone, ZoneDelegate, Zone, core.String]); |
| function _printToZone(line) { |
| Zone.current.print(line); |
| } |
| dart.fn(_printToZone, dart.void, [core.String]); |
| function _rootFork(self, parent, zone, specification, zoneValues) { |
| _internal.printToZone = _printToZone; |
| if (specification == null) { |
| specification = dart.const(ZoneSpecification.new()); |
| } else if (!dart.is(specification, _ZoneSpecification)) { |
| dart.throw(new core.ArgumentError("ZoneSpecifications must be instantiated" + " with the provided constructor.")); |
| } |
| let valueMap = null; |
| if (zoneValues == null) { |
| if (dart.is(zone, _Zone)) { |
| valueMap = zone[_map]; |
| } else { |
| valueMap = collection.HashMap.new(); |
| } |
| } else { |
| valueMap = collection.HashMap.from(zoneValues); |
| } |
| return new _CustomZone(dart.as(zone, _Zone), specification, valueMap); |
| } |
| dart.fn(_rootFork, Zone, [Zone, ZoneDelegate, Zone, ZoneSpecification, core.Map]); |
| class _RootZoneSpecification extends core.Object { |
| get handleUncaughtError() { |
| return _rootHandleUncaughtError; |
| } |
| get run() { |
| return _rootRun; |
| } |
| get runUnary() { |
| return _rootRunUnary; |
| } |
| get runBinary() { |
| return _rootRunBinary; |
| } |
| get registerCallback() { |
| return _rootRegisterCallback; |
| } |
| get registerUnaryCallback() { |
| return _rootRegisterUnaryCallback; |
| } |
| get registerBinaryCallback() { |
| return _rootRegisterBinaryCallback; |
| } |
| get errorCallback() { |
| return _rootErrorCallback; |
| } |
| get scheduleMicrotask() { |
| return _rootScheduleMicrotask; |
| } |
| get createTimer() { |
| return _rootCreateTimer; |
| } |
| get createPeriodicTimer() { |
| return _rootCreatePeriodicTimer; |
| } |
| get print() { |
| return _rootPrint; |
| } |
| get fork() { |
| return _rootFork; |
| } |
| } |
| _RootZoneSpecification[dart.implements] = () => [ZoneSpecification]; |
| _RootZone._rootDelegate = null; |
| dart.defineLazyProperties(_RootZone, { |
| get _rootMap() { |
| return collection.HashMap.new(); |
| }, |
| set _rootMap(_) {} |
| }); |
| function runZoned(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, ZoneBinaryCallback)) { |
| return self.parent.runBinary(onError, error, stackTrace); |
| } |
| return self.parent.runUnary(dart.as(onError, __CastType38), error); |
| } catch (e) { |
| let s = dart.stackTrace(e); |
| if (dart.notNull(core.identical(e, error))) { |
| return parent.handleUncaughtError(zone, error, stackTrace); |
| } else { |
| return parent.handleUncaughtError(zone, e, s); |
| } |
| } |
| |
| }, dart.dynamic, [Zone, ZoneDelegate, Zone, dart.dynamic, core.StackTrace]); |
| } |
| if (zoneSpecification == null) { |
| zoneSpecification = ZoneSpecification.new({handleUncaughtError: errorHandler}); |
| } else if (errorHandler != null) { |
| zoneSpecification = ZoneSpecification.from(zoneSpecification, {handleUncaughtError: errorHandler}); |
| } |
| let zone = Zone.current.fork({specification: zoneSpecification, zoneValues: zoneValues}); |
| if (onError != null) { |
| return zone.runGuarded(body); |
| } else { |
| return zone.run(body); |
| } |
| } |
| dart.fn(runZoned, dart.dynamic, [dart.functionType(dart.dynamic, [])], {zoneValues: core.Map, zoneSpecification: ZoneSpecification, onError: core.Function}); |
| let __CastType36 = dart.typedef('__CastType36', () => dart.functionType(dart.void, [Timer])); |
| let __CastType38 = dart.typedef('__CastType38', () => dart.functionType(dart.dynamic, [dart.dynamic])); |
| dart.copyProperties(exports, { |
| get _hasDocument() { |
| return typeof document == 'object'; |
| } |
| }); |
| // Exports: |
| exports.AsyncError = AsyncError; |
| exports.Stream$ = Stream$; |
| exports.Stream = Stream; |
| exports.DeferredLibrary = DeferredLibrary; |
| exports.DeferredLoadException = DeferredLoadException; |
| exports.Future$ = Future$; |
| exports.Future = Future; |
| exports.TimeoutException = TimeoutException; |
| exports.Completer$ = Completer$; |
| exports.Completer = Completer; |
| exports.scheduleMicrotask = scheduleMicrotask; |
| exports.StreamSubscription$ = StreamSubscription$; |
| exports.StreamSubscription = StreamSubscription; |
| exports.EventSink$ = EventSink$; |
| exports.EventSink = EventSink; |
| exports.StreamView$ = StreamView$; |
| exports.StreamView = StreamView; |
| exports.StreamConsumer$ = StreamConsumer$; |
| exports.StreamConsumer = StreamConsumer; |
| exports.StreamSink$ = StreamSink$; |
| exports.StreamSink = StreamSink; |
| exports.StreamTransformer$ = StreamTransformer$; |
| exports.StreamTransformer = StreamTransformer; |
| exports.StreamIterator$ = StreamIterator$; |
| exports.StreamIterator = StreamIterator; |
| exports.StreamController$ = StreamController$; |
| exports.StreamController = StreamController; |
| exports.Timer = Timer; |
| exports.ZoneCallback = ZoneCallback; |
| exports.ZoneUnaryCallback = ZoneUnaryCallback; |
| exports.ZoneBinaryCallback = ZoneBinaryCallback; |
| exports.HandleUncaughtErrorHandler = HandleUncaughtErrorHandler; |
| exports.RunHandler = RunHandler; |
| exports.RunUnaryHandler = RunUnaryHandler; |
| exports.RunBinaryHandler = RunBinaryHandler; |
| exports.RegisterCallbackHandler = RegisterCallbackHandler; |
| exports.RegisterUnaryCallbackHandler = RegisterUnaryCallbackHandler; |
| exports.RegisterBinaryCallbackHandler = RegisterBinaryCallbackHandler; |
| exports.ErrorCallbackHandler = ErrorCallbackHandler; |
| exports.ScheduleMicrotaskHandler = ScheduleMicrotaskHandler; |
| exports.CreateTimerHandler = CreateTimerHandler; |
| exports.CreatePeriodicTimerHandler = CreatePeriodicTimerHandler; |
| exports.PrintHandler = PrintHandler; |
| exports.ForkHandler = ForkHandler; |
| exports.ZoneSpecification = ZoneSpecification; |
| exports.ZoneDelegate = ZoneDelegate; |
| exports.Zone = Zone; |
| exports.runZoned = runZoned; |
| }); |