| OLD | NEW |
| 1 dart_library.library('dart/async', null, /* Imports */[ | 1 dart_library.library('dart/async', null, /* Imports */[ |
| 2 "dart_runtime/dart", | 2 "dart_runtime/dart", |
| 3 'dart/core', | 3 'dart/core', |
| 4 'dart/_internal', | 4 'dart/_internal', |
| 5 'dart/collection' | 5 'dart/collection' |
| 6 ], /* Lazy imports */[ | 6 ], /* Lazy imports */[ |
| 7 'dart/_isolate_helper' | 7 'dart/_isolate_helper' |
| 8 ], function(exports, dart, core, _internal, collection, _isolate_helper) { | 8 ], function(exports, dart, core, _internal, collection, _isolate_helper) { |
| 9 'use strict'; | 9 'use strict'; |
| 10 let dartx = dart.dartx; | 10 let dartx = dart.dartx; |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 } | 89 } |
| 90 static periodic(period, computation) { | 90 static periodic(period, computation) { |
| 91 if (computation === void 0) | 91 if (computation === void 0) |
| 92 computation = null; | 92 computation = null; |
| 93 if (computation == null) | 93 if (computation == null) |
| 94 computation = dart.fn(i => null, dart.bottom, [dart.dynamic]); | 94 computation = dart.fn(i => null, dart.bottom, [dart.dynamic]); |
| 95 let timer = null; | 95 let timer = null; |
| 96 let computationCount = 0; | 96 let computationCount = 0; |
| 97 let controller = null; | 97 let controller = null; |
| 98 let watch = new core.Stopwatch(); | 98 let watch = new core.Stopwatch(); |
| 99 let sendEvent = () => { | 99 function sendEvent() { |
| 100 watch.reset(); | 100 watch.reset(); |
| 101 let data = computation((() => { | 101 let data = computation((() => { |
| 102 let x = computationCount; | 102 let x = computationCount; |
| 103 computationCount = dart.notNull(x) + 1; | 103 computationCount = dart.notNull(x) + 1; |
| 104 return x; | 104 return x; |
| 105 })()); | 105 })()); |
| 106 controller.add(data); | 106 controller.add(data); |
| 107 }; | 107 } |
| 108 dart.fn(sendEvent, dart.void, []); | 108 dart.fn(sendEvent, dart.void, []); |
| 109 let startPeriodicTimer = () => { | 109 function startPeriodicTimer() { |
| 110 dart.assert(timer == null); | 110 dart.assert(timer == null); |
| 111 timer = Timer.periodic(period, dart.fn(timer => { | 111 timer = Timer.periodic(period, dart.fn(timer => { |
| 112 sendEvent(); | 112 sendEvent(); |
| 113 }, dart.dynamic, [Timer])); | 113 }, dart.dynamic, [Timer])); |
| 114 }; | 114 } |
| 115 dart.fn(startPeriodicTimer, dart.void, []); | 115 dart.fn(startPeriodicTimer, dart.void, []); |
| 116 controller = StreamController$(T).new({sync: true, onListen: dart.fn(()
=> { | 116 controller = StreamController$(T).new({sync: true, onListen: dart.fn(()
=> { |
| 117 watch.start(); | 117 watch.start(); |
| 118 startPeriodicTimer(); | 118 startPeriodicTimer(); |
| 119 }), onPause: dart.fn(() => { | 119 }), onPause: dart.fn(() => { |
| 120 timer.cancel(); | 120 timer.cancel(); |
| 121 timer = null; | 121 timer = null; |
| 122 watch.stop(); | 122 watch.stop(); |
| 123 }), onResume: dart.fn(() => { | 123 }), onResume: dart.fn(() => { |
| 124 dart.assert(timer == null); | 124 dart.assert(timer == null); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 154 return new (_WhereStream$(T))(this, test); | 154 return new (_WhereStream$(T))(this, test); |
| 155 } | 155 } |
| 156 map(convert) { | 156 map(convert) { |
| 157 dart.as(convert, dart.functionType(dart.dynamic, [T])); | 157 dart.as(convert, dart.functionType(dart.dynamic, [T])); |
| 158 return new (_MapStream$(T, dart.dynamic))(this, convert); | 158 return new (_MapStream$(T, dart.dynamic))(this, convert); |
| 159 } | 159 } |
| 160 asyncMap(convert) { | 160 asyncMap(convert) { |
| 161 dart.as(convert, dart.functionType(dart.dynamic, [T])); | 161 dart.as(convert, dart.functionType(dart.dynamic, [T])); |
| 162 let controller = null; | 162 let controller = null; |
| 163 let subscription = null; | 163 let subscription = null; |
| 164 let onListen = () => { | 164 let onListen = (function() { |
| 165 let add = dart.bind(controller, 'add'); | 165 let add = dart.bind(controller, 'add'); |
| 166 dart.assert(dart.is(controller, _StreamController) || dart.is(controll
er, _BroadcastStreamController)); | 166 dart.assert(dart.is(controller, _StreamController) || dart.is(controll
er, _BroadcastStreamController)); |
| 167 let eventSink = controller; | 167 let eventSink = controller; |
| 168 let addError = eventSink[_addError]; | 168 let addError = eventSink[_addError]; |
| 169 subscription = this.listen(dart.fn(event => { | 169 subscription = this.listen(dart.fn(event => { |
| 170 dart.as(event, T); | 170 dart.as(event, T); |
| 171 let newValue = null; | 171 let newValue = null; |
| 172 try { | 172 try { |
| 173 newValue = convert(event); | 173 newValue = convert(event); |
| 174 } catch (e) { | 174 } catch (e) { |
| 175 let s = dart.stackTrace(e); | 175 let s = dart.stackTrace(e); |
| 176 controller.addError(e, s); | 176 controller.addError(e, s); |
| 177 return; | 177 return; |
| 178 } | 178 } |
| 179 | 179 |
| 180 if (dart.is(newValue, Future)) { | 180 if (dart.is(newValue, Future)) { |
| 181 subscription.pause(); | 181 subscription.pause(); |
| 182 dart.dsend(dart.dsend(newValue, 'then', add, {onError: addError}),
'whenComplete', dart.bind(subscription, 'resume')); | 182 dart.dsend(dart.dsend(newValue, 'then', add, {onError: addError}),
'whenComplete', dart.bind(subscription, 'resume')); |
| 183 } else { | 183 } else { |
| 184 controller.add(newValue); | 184 controller.add(newValue); |
| 185 } | 185 } |
| 186 }, dart.dynamic, [T]), {onError: dart.as(addError, core.Function), onD
one: dart.bind(controller, 'close')}); | 186 }, dart.dynamic, [T]), {onError: dart.as(addError, core.Function), onD
one: dart.bind(controller, 'close')}); |
| 187 }; | 187 }).bind(this); |
| 188 dart.fn(onListen, dart.void, []); | 188 dart.fn(onListen, dart.void, []); |
| 189 if (dart.notNull(this.isBroadcast)) { | 189 if (dart.notNull(this.isBroadcast)) { |
| 190 controller = StreamController.broadcast({onListen: onListen, onCancel:
dart.fn(() => { | 190 controller = StreamController.broadcast({onListen: onListen, onCancel:
dart.fn(() => { |
| 191 subscription.cancel(); | 191 subscription.cancel(); |
| 192 }), sync: true}); | 192 }), sync: true}); |
| 193 } else { | 193 } else { |
| 194 controller = StreamController.new({onListen: onListen, onPause: dart.f
n(() => { | 194 controller = StreamController.new({onListen: onListen, onPause: dart.f
n(() => { |
| 195 subscription.pause(); | 195 subscription.pause(); |
| 196 }), onResume: dart.fn(() => { | 196 }), onResume: dart.fn(() => { |
| 197 subscription.resume(); | 197 subscription.resume(); |
| 198 }), onCancel: dart.fn(() => { | 198 }), onCancel: dart.fn(() => { |
| 199 subscription.cancel(); | 199 subscription.cancel(); |
| 200 }), sync: true}); | 200 }), sync: true}); |
| 201 } | 201 } |
| 202 return controller.stream; | 202 return controller.stream; |
| 203 } | 203 } |
| 204 asyncExpand(convert) { | 204 asyncExpand(convert) { |
| 205 dart.as(convert, dart.functionType(Stream$(), [T])); | 205 dart.as(convert, dart.functionType(Stream$(), [T])); |
| 206 let controller = null; | 206 let controller = null; |
| 207 let subscription = null; | 207 let subscription = null; |
| 208 let onListen = () => { | 208 let onListen = (function() { |
| 209 dart.assert(dart.is(controller, _StreamController) || dart.is(controll
er, _BroadcastStreamController)); | 209 dart.assert(dart.is(controller, _StreamController) || dart.is(controll
er, _BroadcastStreamController)); |
| 210 let eventSink = controller; | 210 let eventSink = controller; |
| 211 subscription = this.listen(dart.fn(event => { | 211 subscription = this.listen(dart.fn(event => { |
| 212 dart.as(event, T); | 212 dart.as(event, T); |
| 213 let newStream = null; | 213 let newStream = null; |
| 214 try { | 214 try { |
| 215 newStream = convert(event); | 215 newStream = convert(event); |
| 216 } catch (e) { | 216 } catch (e) { |
| 217 let s = dart.stackTrace(e); | 217 let s = dart.stackTrace(e); |
| 218 controller.addError(e, s); | 218 controller.addError(e, s); |
| 219 return; | 219 return; |
| 220 } | 220 } |
| 221 | 221 |
| 222 if (newStream != null) { | 222 if (newStream != null) { |
| 223 subscription.pause(); | 223 subscription.pause(); |
| 224 controller.addStream(newStream).whenComplete(dart.bind(subscriptio
n, 'resume')); | 224 controller.addStream(newStream).whenComplete(dart.bind(subscriptio
n, 'resume')); |
| 225 } | 225 } |
| 226 }, dart.dynamic, [T]), {onError: dart.as(eventSink[_addError], core.Fu
nction), onDone: dart.bind(controller, 'close')}); | 226 }, dart.dynamic, [T]), {onError: dart.as(eventSink[_addError], core.Fu
nction), onDone: dart.bind(controller, 'close')}); |
| 227 }; | 227 }).bind(this); |
| 228 dart.fn(onListen, dart.void, []); | 228 dart.fn(onListen, dart.void, []); |
| 229 if (dart.notNull(this.isBroadcast)) { | 229 if (dart.notNull(this.isBroadcast)) { |
| 230 controller = StreamController.broadcast({onListen: onListen, onCancel:
dart.fn(() => { | 230 controller = StreamController.broadcast({onListen: onListen, onCancel:
dart.fn(() => { |
| 231 subscription.cancel(); | 231 subscription.cancel(); |
| 232 }), sync: true}); | 232 }), sync: true}); |
| 233 } else { | 233 } else { |
| 234 controller = StreamController.new({onListen: onListen, onPause: dart.f
n(() => { | 234 controller = StreamController.new({onListen: onListen, onPause: dart.f
n(() => { |
| 235 subscription.pause(); | 235 subscription.pause(); |
| 236 }), onResume: dart.fn(() => { | 236 }), onResume: dart.fn(() => { |
| 237 subscription.resume(); | 237 subscription.resume(); |
| (...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 657 return future; | 657 return future; |
| 658 } | 658 } |
| 659 timeout(timeLimit, opts) { | 659 timeout(timeLimit, opts) { |
| 660 let onTimeout = opts && 'onTimeout' in opts ? opts.onTimeout : null; | 660 let onTimeout = opts && 'onTimeout' in opts ? opts.onTimeout : null; |
| 661 dart.as(onTimeout, dart.functionType(dart.void, [EventSink])); | 661 dart.as(onTimeout, dart.functionType(dart.void, [EventSink])); |
| 662 let controller = null; | 662 let controller = null; |
| 663 let subscription = null; | 663 let subscription = null; |
| 664 let timer = null; | 664 let timer = null; |
| 665 let zone = null; | 665 let zone = null; |
| 666 let timeout = null; | 666 let timeout = null; |
| 667 let onData = event => { | 667 function onData(event) { |
| 668 dart.as(event, T); | 668 dart.as(event, T); |
| 669 timer.cancel(); | 669 timer.cancel(); |
| 670 controller.add(event); | 670 controller.add(event); |
| 671 timer = zone.createTimer(timeLimit, dart.as(timeout, __CastType17)); | 671 timer = zone.createTimer(timeLimit, dart.as(timeout, __CastType17)); |
| 672 }; | 672 } |
| 673 dart.fn(onData, dart.void, [T]); | 673 dart.fn(onData, dart.void, [T]); |
| 674 let onError = (error, stackTrace) => { | 674 function onError(error, stackTrace) { |
| 675 timer.cancel(); | 675 timer.cancel(); |
| 676 dart.assert(dart.is(controller, _StreamController) || dart.is(controll
er, _BroadcastStreamController)); | 676 dart.assert(dart.is(controller, _StreamController) || dart.is(controll
er, _BroadcastStreamController)); |
| 677 let eventSink = controller; | 677 let eventSink = controller; |
| 678 dart.dcall(eventSink[_addError], error, stackTrace); | 678 dart.dcall(eventSink[_addError], error, stackTrace); |
| 679 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.functionType
(dart.void, []))); | 679 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.functionType
(dart.void, []))); |
| 680 }; | 680 } |
| 681 dart.fn(onError, dart.void, [dart.dynamic, core.StackTrace]); | 681 dart.fn(onError, dart.void, [dart.dynamic, core.StackTrace]); |
| 682 let onDone = () => { | 682 function onDone() { |
| 683 timer.cancel(); | 683 timer.cancel(); |
| 684 controller.close(); | 684 controller.close(); |
| 685 }; | 685 } |
| 686 dart.fn(onDone, dart.void, []); | 686 dart.fn(onDone, dart.void, []); |
| 687 let onListen = () => { | 687 let onListen = (function() { |
| 688 zone = Zone.current; | 688 zone = Zone.current; |
| 689 if (onTimeout == null) { | 689 if (onTimeout == null) { |
| 690 timeout = dart.fn(() => { | 690 timeout = dart.fn(() => { |
| 691 controller.addError(new TimeoutException("No stream event", timeLi
mit), null); | 691 controller.addError(new TimeoutException("No stream event", timeLi
mit), null); |
| 692 }); | 692 }); |
| 693 } else { | 693 } else { |
| 694 onTimeout = dart.as(zone.registerUnaryCallback(onTimeout), __CastTyp
e18); | 694 onTimeout = dart.as(zone.registerUnaryCallback(onTimeout), __CastTyp
e18); |
| 695 let wrapper = new _ControllerEventSinkWrapper(null); | 695 let wrapper = new _ControllerEventSinkWrapper(null); |
| 696 timeout = dart.fn(() => { | 696 timeout = dart.fn(() => { |
| 697 wrapper[_sink] = controller; | 697 wrapper[_sink] = controller; |
| 698 zone.runUnaryGuarded(onTimeout, wrapper); | 698 zone.runUnaryGuarded(onTimeout, wrapper); |
| 699 wrapper[_sink] = null; | 699 wrapper[_sink] = null; |
| 700 }); | 700 }); |
| 701 } | 701 } |
| 702 subscription = this.listen(onData, {onError: onError, onDone: onDone})
; | 702 subscription = this.listen(onData, {onError: onError, onDone: onDone})
; |
| 703 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.functionType
(dart.void, []))); | 703 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.functionType
(dart.void, []))); |
| 704 }; | 704 }).bind(this); |
| 705 dart.fn(onListen, dart.void, []); | 705 dart.fn(onListen, dart.void, []); |
| 706 let onCancel = () => { | 706 function onCancel() { |
| 707 timer.cancel(); | 707 timer.cancel(); |
| 708 let result = subscription.cancel(); | 708 let result = subscription.cancel(); |
| 709 subscription = null; | 709 subscription = null; |
| 710 return result; | 710 return result; |
| 711 }; | 711 } |
| 712 dart.fn(onCancel, Future, []); | 712 dart.fn(onCancel, Future, []); |
| 713 controller = dart.notNull(this.isBroadcast) ? new _SyncBroadcastStreamCo
ntroller(onListen, onCancel) : new _SyncStreamController(onListen, dart.fn(() =>
{ | 713 controller = dart.notNull(this.isBroadcast) ? new _SyncBroadcastStreamCo
ntroller(onListen, onCancel) : new _SyncStreamController(onListen, dart.fn(() =>
{ |
| 714 timer.cancel(); | 714 timer.cancel(); |
| 715 subscription.pause(); | 715 subscription.pause(); |
| 716 }), dart.fn(() => { | 716 }), dart.fn(() => { |
| 717 subscription.resume(); | 717 subscription.resume(); |
| 718 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.functionType
(dart.void, []))); | 718 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.functionType
(dart.void, []))); |
| 719 }), onCancel); | 719 }), onCancel); |
| 720 return controller.stream; | 720 return controller.stream; |
| 721 } | 721 } |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1097 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription$()._STATE_IN_CALLBACK); | 1097 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription$()._STATE_IN_CALLBACK); |
| 1098 this[_zone].runUnaryGuarded(this[_onData], data); | 1098 this[_zone].runUnaryGuarded(this[_onData], data); |
| 1099 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStre
amSubscription$()._STATE_IN_CALLBACK); | 1099 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStre
amSubscription$()._STATE_IN_CALLBACK); |
| 1100 this[_checkState](wasInputPaused); | 1100 this[_checkState](wasInputPaused); |
| 1101 } | 1101 } |
| 1102 [_sendError](error, stackTrace) { | 1102 [_sendError](error, stackTrace) { |
| 1103 dart.assert(!dart.notNull(this[_isCanceled])); | 1103 dart.assert(!dart.notNull(this[_isCanceled])); |
| 1104 dart.assert(!dart.notNull(this[_isPaused])); | 1104 dart.assert(!dart.notNull(this[_isPaused])); |
| 1105 dart.assert(!dart.notNull(this[_inCallback])); | 1105 dart.assert(!dart.notNull(this[_inCallback])); |
| 1106 let wasInputPaused = this[_isInputPaused]; | 1106 let wasInputPaused = this[_isInputPaused]; |
| 1107 let sendError = () => { | 1107 let sendError = (function() { |
| 1108 if (dart.notNull(this[_isCanceled]) && !dart.notNull(this[_waitsForCan
cel])) | 1108 if (dart.notNull(this[_isCanceled]) && !dart.notNull(this[_waitsForCan
cel])) |
| 1109 return; | 1109 return; |
| 1110 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription$()._STATE_IN_CALLBACK); | 1110 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription$()._STATE_IN_CALLBACK); |
| 1111 if (dart.is(this[_onError], ZoneBinaryCallback)) { | 1111 if (dart.is(this[_onError], ZoneBinaryCallback)) { |
| 1112 this[_zone].runBinaryGuarded(dart.as(this[_onError], __CastType22),
error, stackTrace); | 1112 this[_zone].runBinaryGuarded(dart.as(this[_onError], __CastType22),
error, stackTrace); |
| 1113 } else { | 1113 } else { |
| 1114 this[_zone].runUnaryGuarded(dart.as(this[_onError], __CastType25), e
rror); | 1114 this[_zone].runUnaryGuarded(dart.as(this[_onError], __CastType25), e
rror); |
| 1115 } | 1115 } |
| 1116 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingSt
reamSubscription$()._STATE_IN_CALLBACK); | 1116 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingSt
reamSubscription$()._STATE_IN_CALLBACK); |
| 1117 }; | 1117 }).bind(this); |
| 1118 dart.fn(sendError, dart.void, []); | 1118 dart.fn(sendError, dart.void, []); |
| 1119 if (dart.notNull(this[_cancelOnError])) { | 1119 if (dart.notNull(this[_cancelOnError])) { |
| 1120 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription$()._STATE_WAIT_FOR_CANCEL); | 1120 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription$()._STATE_WAIT_FOR_CANCEL); |
| 1121 this[_cancel](); | 1121 this[_cancel](); |
| 1122 if (dart.is(this[_cancelFuture], Future)) { | 1122 if (dart.is(this[_cancelFuture], Future)) { |
| 1123 this[_cancelFuture].whenComplete(sendError); | 1123 this[_cancelFuture].whenComplete(sendError); |
| 1124 } else { | 1124 } else { |
| 1125 sendError(); | 1125 sendError(); |
| 1126 } | 1126 } |
| 1127 } else { | 1127 } else { |
| 1128 sendError(); | 1128 sendError(); |
| 1129 this[_checkState](wasInputPaused); | 1129 this[_checkState](wasInputPaused); |
| 1130 } | 1130 } |
| 1131 } | 1131 } |
| 1132 [_sendDone]() { | 1132 [_sendDone]() { |
| 1133 dart.assert(!dart.notNull(this[_isCanceled])); | 1133 dart.assert(!dart.notNull(this[_isCanceled])); |
| 1134 dart.assert(!dart.notNull(this[_isPaused])); | 1134 dart.assert(!dart.notNull(this[_isPaused])); |
| 1135 dart.assert(!dart.notNull(this[_inCallback])); | 1135 dart.assert(!dart.notNull(this[_inCallback])); |
| 1136 let sendDone = () => { | 1136 let sendDone = (function() { |
| 1137 if (!dart.notNull(this[_waitsForCancel])) | 1137 if (!dart.notNull(this[_waitsForCancel])) |
| 1138 return; | 1138 return; |
| 1139 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription$()._STATE_CANCELED) | dart.notNull(_BufferingStreamSubscription$
()._STATE_CLOSED) | dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLB
ACK); | 1139 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription$()._STATE_CANCELED) | dart.notNull(_BufferingStreamSubscription$
()._STATE_CLOSED) | dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLB
ACK); |
| 1140 this[_zone].runGuarded(this[_onDone]); | 1140 this[_zone].runGuarded(this[_onDone]); |
| 1141 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingSt
reamSubscription$()._STATE_IN_CALLBACK); | 1141 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingSt
reamSubscription$()._STATE_IN_CALLBACK); |
| 1142 }; | 1142 }).bind(this); |
| 1143 dart.fn(sendDone, dart.void, []); | 1143 dart.fn(sendDone, dart.void, []); |
| 1144 this[_cancel](); | 1144 this[_cancel](); |
| 1145 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription$()._STATE_WAIT_FOR_CANCEL); | 1145 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription$()._STATE_WAIT_FOR_CANCEL); |
| 1146 if (dart.is(this[_cancelFuture], Future)) { | 1146 if (dart.is(this[_cancelFuture], Future)) { |
| 1147 this[_cancelFuture].whenComplete(sendDone); | 1147 this[_cancelFuture].whenComplete(sendDone); |
| 1148 } else { | 1148 } else { |
| 1149 sendDone(); | 1149 sendDone(); |
| 1150 } | 1150 } |
| 1151 } | 1151 } |
| 1152 [_guardCallback](callback) { | 1152 [_guardCallback](callback) { |
| (...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1880 } | 1880 } |
| 1881 static wait(futures, opts) { | 1881 static wait(futures, opts) { |
| 1882 let eagerError = opts && 'eagerError' in opts ? opts.eagerError : false; | 1882 let eagerError = opts && 'eagerError' in opts ? opts.eagerError : false; |
| 1883 let cleanUp = opts && 'cleanUp' in opts ? opts.cleanUp : null; | 1883 let cleanUp = opts && 'cleanUp' in opts ? opts.cleanUp : null; |
| 1884 dart.as(cleanUp, dart.functionType(dart.void, [dart.dynamic])); | 1884 dart.as(cleanUp, dart.functionType(dart.void, [dart.dynamic])); |
| 1885 let result = new (_Future$(core.List))(); | 1885 let result = new (_Future$(core.List))(); |
| 1886 let values = null; | 1886 let values = null; |
| 1887 let remaining = 0; | 1887 let remaining = 0; |
| 1888 let error = null; | 1888 let error = null; |
| 1889 let stackTrace = null; | 1889 let stackTrace = null; |
| 1890 let handleError = (theError, theStackTrace) => { | 1890 function handleError(theError, theStackTrace) { |
| 1891 remaining = dart.notNull(remaining) - 1; | 1891 remaining = dart.notNull(remaining) - 1; |
| 1892 if (values != null) { | 1892 if (values != null) { |
| 1893 if (cleanUp != null) { | 1893 if (cleanUp != null) { |
| 1894 for (let value of values) { | 1894 for (let value of values) { |
| 1895 if (value != null) { | 1895 if (value != null) { |
| 1896 Future$().sync(dart.fn(() => { | 1896 Future$().sync(dart.fn(() => { |
| 1897 dart.dcall(cleanUp, value); | 1897 dart.dcall(cleanUp, value); |
| 1898 })); | 1898 })); |
| 1899 } | 1899 } |
| 1900 } | 1900 } |
| 1901 } | 1901 } |
| 1902 values = null; | 1902 values = null; |
| 1903 if (remaining == 0 || dart.notNull(eagerError)) { | 1903 if (remaining == 0 || dart.notNull(eagerError)) { |
| 1904 result[_completeError](theError, dart.as(theStackTrace, core.Stack
Trace)); | 1904 result[_completeError](theError, dart.as(theStackTrace, core.Stack
Trace)); |
| 1905 } else { | 1905 } else { |
| 1906 error = theError; | 1906 error = theError; |
| 1907 stackTrace = dart.as(theStackTrace, core.StackTrace); | 1907 stackTrace = dart.as(theStackTrace, core.StackTrace); |
| 1908 } | 1908 } |
| 1909 } else if (remaining == 0 && !dart.notNull(eagerError)) { | 1909 } else if (remaining == 0 && !dart.notNull(eagerError)) { |
| 1910 result[_completeError](error, stackTrace); | 1910 result[_completeError](error, stackTrace); |
| 1911 } | 1911 } |
| 1912 }; | 1912 } |
| 1913 dart.fn(handleError, dart.void, [dart.dynamic, dart.dynamic]); | 1913 dart.fn(handleError, dart.void, [dart.dynamic, dart.dynamic]); |
| 1914 for (let future of futures) { | 1914 for (let future of futures) { |
| 1915 let pos = remaining; | 1915 let pos = remaining; |
| 1916 remaining = dart.notNull(pos) + 1; | 1916 remaining = dart.notNull(pos) + 1; |
| 1917 future.then(dart.fn(value => { | 1917 future.then(dart.fn(value => { |
| 1918 remaining = dart.notNull(remaining) - 1; | 1918 remaining = dart.notNull(remaining) - 1; |
| 1919 if (values != null) { | 1919 if (values != null) { |
| 1920 values[dartx.set](pos, value); | 1920 values[dartx.set](pos, value); |
| 1921 if (remaining == 0) { | 1921 if (remaining == 0) { |
| 1922 result[_completeWithValue](values); | 1922 result[_completeWithValue](values); |
| (...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2471 let zone = listener[_zone]; | 2471 let zone = listener[_zone]; |
| 2472 if (dart.notNull(hasError) && !dart.notNull(source[_zone].inSameErro
rZone(zone))) { | 2472 if (dart.notNull(hasError) && !dart.notNull(source[_zone].inSameErro
rZone(zone))) { |
| 2473 let asyncError = source[_error]; | 2473 let asyncError = source[_error]; |
| 2474 source[_zone].handleUncaughtError(asyncError.error, asyncError.sta
ckTrace); | 2474 source[_zone].handleUncaughtError(asyncError.error, asyncError.sta
ckTrace); |
| 2475 return; | 2475 return; |
| 2476 } | 2476 } |
| 2477 let oldZone = null; | 2477 let oldZone = null; |
| 2478 if (!dart.notNull(core.identical(Zone.current, zone))) { | 2478 if (!dart.notNull(core.identical(Zone.current, zone))) { |
| 2479 oldZone = Zone._enter(zone); | 2479 oldZone = Zone._enter(zone); |
| 2480 } | 2480 } |
| 2481 let handleValueCallback = () => { | 2481 function handleValueCallback() { |
| 2482 try { | 2482 try { |
| 2483 listenerValueOrError = zone.runUnary(listener[_onValue], sourceV
alue); | 2483 listenerValueOrError = zone.runUnary(listener[_onValue], sourceV
alue); |
| 2484 return true; | 2484 return true; |
| 2485 } catch (e) { | 2485 } catch (e) { |
| 2486 let s = dart.stackTrace(e); | 2486 let s = dart.stackTrace(e); |
| 2487 listenerValueOrError = new AsyncError(e, s); | 2487 listenerValueOrError = new AsyncError(e, s); |
| 2488 return false; | 2488 return false; |
| 2489 } | 2489 } |
| 2490 | 2490 |
| 2491 }; | 2491 } |
| 2492 dart.fn(handleValueCallback, core.bool, []); | 2492 dart.fn(handleValueCallback, core.bool, []); |
| 2493 let handleError = () => { | 2493 function handleError() { |
| 2494 let asyncError = source[_error]; | 2494 let asyncError = source[_error]; |
| 2495 let matchesTest = true; | 2495 let matchesTest = true; |
| 2496 if (dart.notNull(listener.hasErrorTest)) { | 2496 if (dart.notNull(listener.hasErrorTest)) { |
| 2497 let test = listener[_errorTest]; | 2497 let test = listener[_errorTest]; |
| 2498 try { | 2498 try { |
| 2499 matchesTest = dart.as(zone.runUnary(test, asyncError.error), c
ore.bool); | 2499 matchesTest = dart.as(zone.runUnary(test, asyncError.error), c
ore.bool); |
| 2500 } catch (e) { | 2500 } catch (e) { |
| 2501 let s = dart.stackTrace(e); | 2501 let s = dart.stackTrace(e); |
| 2502 listenerValueOrError = dart.notNull(core.identical(asyncError.
error, e)) ? asyncError : new AsyncError(e, s); | 2502 listenerValueOrError = dart.notNull(core.identical(asyncError.
error, e)) ? asyncError : new AsyncError(e, s); |
| 2503 listenerHasValue = false; | 2503 listenerHasValue = false; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2518 listenerValueOrError = dart.notNull(core.identical(asyncError.
error, e)) ? asyncError : new AsyncError(e, s); | 2518 listenerValueOrError = dart.notNull(core.identical(asyncError.
error, e)) ? asyncError : new AsyncError(e, s); |
| 2519 listenerHasValue = false; | 2519 listenerHasValue = false; |
| 2520 return; | 2520 return; |
| 2521 } | 2521 } |
| 2522 | 2522 |
| 2523 listenerHasValue = true; | 2523 listenerHasValue = true; |
| 2524 } else { | 2524 } else { |
| 2525 listenerValueOrError = asyncError; | 2525 listenerValueOrError = asyncError; |
| 2526 listenerHasValue = false; | 2526 listenerHasValue = false; |
| 2527 } | 2527 } |
| 2528 }; | 2528 } |
| 2529 dart.fn(handleError, dart.void, []); | 2529 dart.fn(handleError, dart.void, []); |
| 2530 let handleWhenCompleteCallback = () => { | 2530 function handleWhenCompleteCallback() { |
| 2531 let completeResult = null; | 2531 let completeResult = null; |
| 2532 try { | 2532 try { |
| 2533 completeResult = zone.run(listener[_whenCompleteAction]); | 2533 completeResult = zone.run(listener[_whenCompleteAction]); |
| 2534 } catch (e) { | 2534 } catch (e) { |
| 2535 let s = dart.stackTrace(e); | 2535 let s = dart.stackTrace(e); |
| 2536 if (dart.notNull(hasError) && dart.notNull(core.identical(source
[_error].error, e))) { | 2536 if (dart.notNull(hasError) && dart.notNull(core.identical(source
[_error].error, e))) { |
| 2537 listenerValueOrError = source[_error]; | 2537 listenerValueOrError = source[_error]; |
| 2538 } else { | 2538 } else { |
| 2539 listenerValueOrError = new AsyncError(e, s); | 2539 listenerValueOrError = new AsyncError(e, s); |
| 2540 } | 2540 } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 2551 }), {onError: dart.fn((error, stackTrace) => { | 2551 }), {onError: dart.fn((error, stackTrace) => { |
| 2552 if (stackTrace === void 0) | 2552 if (stackTrace === void 0) |
| 2553 stackTrace = null; | 2553 stackTrace = null; |
| 2554 if (!dart.is(completeResult, _Future$())) { | 2554 if (!dart.is(completeResult, _Future$())) { |
| 2555 completeResult = new (_Future$())(); | 2555 completeResult = new (_Future$())(); |
| 2556 dart.dsend(completeResult, _setError, error, stackTrace); | 2556 dart.dsend(completeResult, _setError, error, stackTrace); |
| 2557 } | 2557 } |
| 2558 _Future$()._propagateToListeners(dart.as(completeResult, _Fu
ture$()), new _FutureListener.chain(result)); | 2558 _Future$()._propagateToListeners(dart.as(completeResult, _Fu
ture$()), new _FutureListener.chain(result)); |
| 2559 }, dart.dynamic, [dart.dynamic], [dart.dynamic])}); | 2559 }, dart.dynamic, [dart.dynamic], [dart.dynamic])}); |
| 2560 } | 2560 } |
| 2561 }; | 2561 } |
| 2562 dart.fn(handleWhenCompleteCallback, dart.void, []); | 2562 dart.fn(handleWhenCompleteCallback, dart.void, []); |
| 2563 if (!dart.notNull(hasError)) { | 2563 if (!dart.notNull(hasError)) { |
| 2564 if (dart.notNull(listener.handlesValue)) { | 2564 if (dart.notNull(listener.handlesValue)) { |
| 2565 listenerHasValue = handleValueCallback(); | 2565 listenerHasValue = handleValueCallback(); |
| 2566 } | 2566 } |
| 2567 } else { | 2567 } else { |
| 2568 handleError(); | 2568 handleError(); |
| 2569 } | 2569 } |
| 2570 if (dart.notNull(listener.handlesComplete)) { | 2570 if (dart.notNull(listener.handlesComplete)) { |
| 2571 handleWhenCompleteCallback(); | 2571 handleWhenCompleteCallback(); |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2772 dart.dcall(_AsyncRun.scheduleImmediateClosure, callback); | 2772 dart.dcall(_AsyncRun.scheduleImmediateClosure, callback); |
| 2773 } | 2773 } |
| 2774 static _initializeScheduleImmediate() { | 2774 static _initializeScheduleImmediate() { |
| 2775 if (self.scheduleImmediate != null) { | 2775 if (self.scheduleImmediate != null) { |
| 2776 return _AsyncRun._scheduleImmediateJsOverride; | 2776 return _AsyncRun._scheduleImmediateJsOverride; |
| 2777 } | 2777 } |
| 2778 if (self.MutationObserver != null && self.document != null) { | 2778 if (self.MutationObserver != null && self.document != null) { |
| 2779 let div = self.document.createElement("div"); | 2779 let div = self.document.createElement("div"); |
| 2780 let span = self.document.createElement("span"); | 2780 let span = self.document.createElement("span"); |
| 2781 let storedCallback = null; | 2781 let storedCallback = null; |
| 2782 let internalCallback = _ => { | 2782 function internalCallback(_) { |
| 2783 _isolate_helper.leaveJsAsync(); | 2783 _isolate_helper.leaveJsAsync(); |
| 2784 let f = storedCallback; | 2784 let f = storedCallback; |
| 2785 storedCallback = null; | 2785 storedCallback = null; |
| 2786 dart.dcall(f); | 2786 dart.dcall(f); |
| 2787 }; | 2787 } |
| 2788 dart.fn(internalCallback); | 2788 dart.fn(internalCallback); |
| 2789 ; | 2789 ; |
| 2790 let observer = new self.MutationObserver(internalCallback); | 2790 let observer = new self.MutationObserver(internalCallback); |
| 2791 observer.observe(div, {childList: true}); | 2791 observer.observe(div, {childList: true}); |
| 2792 return dart.fn(callback => { | 2792 return dart.fn(callback => { |
| 2793 dart.assert(storedCallback == null); | 2793 dart.assert(storedCallback == null); |
| 2794 _isolate_helper.enterJsAsync(); | 2794 _isolate_helper.enterJsAsync(); |
| 2795 storedCallback = callback; | 2795 storedCallback = callback; |
| 2796 div.firstChild ? div.removeChild(span) : div.appendChild(span); | 2796 div.firstChild ? div.removeChild(span) : div.appendChild(span); |
| 2797 }, dart.dynamic, [dart.functionType(dart.void, [])]); | 2797 }, dart.dynamic, [dart.functionType(dart.void, [])]); |
| 2798 } else if (self.setImmediate != null) { | 2798 } else if (self.setImmediate != null) { |
| 2799 return _AsyncRun._scheduleImmediateWithSetImmediate; | 2799 return _AsyncRun._scheduleImmediateWithSetImmediate; |
| 2800 } | 2800 } |
| 2801 return _AsyncRun._scheduleImmediateWithTimer; | 2801 return _AsyncRun._scheduleImmediateWithTimer; |
| 2802 } | 2802 } |
| 2803 static _scheduleImmediateJsOverride(callback) { | 2803 static _scheduleImmediateJsOverride(callback) { |
| 2804 let internalCallback = () => { | 2804 function internalCallback() { |
| 2805 _isolate_helper.leaveJsAsync(); | 2805 _isolate_helper.leaveJsAsync(); |
| 2806 callback(); | 2806 callback(); |
| 2807 }; | 2807 } |
| 2808 dart.fn(internalCallback); | 2808 dart.fn(internalCallback); |
| 2809 ; | 2809 ; |
| 2810 _isolate_helper.enterJsAsync(); | 2810 _isolate_helper.enterJsAsync(); |
| 2811 self.scheduleImmediate(internalCallback); | 2811 self.scheduleImmediate(internalCallback); |
| 2812 } | 2812 } |
| 2813 static _scheduleImmediateWithSetImmediate(callback) { | 2813 static _scheduleImmediateWithSetImmediate(callback) { |
| 2814 let internalCallback = () => { | 2814 function internalCallback() { |
| 2815 _isolate_helper.leaveJsAsync(); | 2815 _isolate_helper.leaveJsAsync(); |
| 2816 callback(); | 2816 callback(); |
| 2817 }; | 2817 } |
| 2818 dart.fn(internalCallback); | 2818 dart.fn(internalCallback); |
| 2819 ; | 2819 ; |
| 2820 _isolate_helper.enterJsAsync(); | 2820 _isolate_helper.enterJsAsync(); |
| 2821 self.setImmediate(internalCallback); | 2821 self.setImmediate(internalCallback); |
| 2822 } | 2822 } |
| 2823 static _scheduleImmediateWithTimer(callback) { | 2823 static _scheduleImmediateWithTimer(callback) { |
| 2824 Timer._createTimer(core.Duration.ZERO, callback); | 2824 Timer._createTimer(core.Duration.ZERO, callback); |
| 2825 } | 2825 } |
| 2826 } | 2826 } |
| 2827 dart.setSignature(_AsyncRun, { | 2827 dart.setSignature(_AsyncRun, { |
| (...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3206 } catch (e) { | 3206 } catch (e) { |
| 3207 let s = dart.stackTrace(e); | 3207 let s = dart.stackTrace(e); |
| 3208 result = new _Future(); | 3208 result = new _Future(); |
| 3209 result[_asyncCompleteError](e, s); | 3209 result[_asyncCompleteError](e, s); |
| 3210 } | 3210 } |
| 3211 | 3211 |
| 3212 } else { | 3212 } else { |
| 3213 result = result.whenComplete(this[_onCancel]); | 3213 result = result.whenComplete(this[_onCancel]); |
| 3214 } | 3214 } |
| 3215 } | 3215 } |
| 3216 let complete = () => { | 3216 let complete = (function() { |
| 3217 if (this[_doneFuture] != null && dart.notNull(this[_doneFuture][_mayCo
mplete])) { | 3217 if (this[_doneFuture] != null && dart.notNull(this[_doneFuture][_mayCo
mplete])) { |
| 3218 this[_doneFuture][_asyncComplete](null); | 3218 this[_doneFuture][_asyncComplete](null); |
| 3219 } | 3219 } |
| 3220 }; | 3220 }).bind(this); |
| 3221 dart.fn(complete, dart.void, []); | 3221 dart.fn(complete, dart.void, []); |
| 3222 if (result != null) { | 3222 if (result != null) { |
| 3223 result = result.whenComplete(complete); | 3223 result = result.whenComplete(complete); |
| 3224 } else { | 3224 } else { |
| 3225 complete(); | 3225 complete(); |
| 3226 } | 3226 } |
| 3227 return result; | 3227 return result; |
| 3228 } | 3228 } |
| 3229 [_recordPause](subscription) { | 3229 [_recordPause](subscription) { |
| 3230 dart.as(subscription, StreamSubscription$(T)); | 3230 dart.as(subscription, StreamSubscription$(T)); |
| (...skipping 2680 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5911 exports.ScheduleMicrotaskHandler = ScheduleMicrotaskHandler; | 5911 exports.ScheduleMicrotaskHandler = ScheduleMicrotaskHandler; |
| 5912 exports.CreateTimerHandler = CreateTimerHandler; | 5912 exports.CreateTimerHandler = CreateTimerHandler; |
| 5913 exports.CreatePeriodicTimerHandler = CreatePeriodicTimerHandler; | 5913 exports.CreatePeriodicTimerHandler = CreatePeriodicTimerHandler; |
| 5914 exports.PrintHandler = PrintHandler; | 5914 exports.PrintHandler = PrintHandler; |
| 5915 exports.ForkHandler = ForkHandler; | 5915 exports.ForkHandler = ForkHandler; |
| 5916 exports.ZoneSpecification = ZoneSpecification; | 5916 exports.ZoneSpecification = ZoneSpecification; |
| 5917 exports.ZoneDelegate = ZoneDelegate; | 5917 exports.ZoneDelegate = ZoneDelegate; |
| 5918 exports.Zone = Zone; | 5918 exports.Zone = Zone; |
| 5919 exports.runZoned = runZoned; | 5919 exports.runZoned = runZoned; |
| 5920 }); | 5920 }); |
| OLD | NEW |