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

Side by Side Diff: test/codegen/expect/dart/async.js

Issue 1016003003: sort classes in dependency order, or load lazily if needed, fixes #78 (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 var async; 1 var async;
2 (function(exports) { 2 (function(exports) {
3 'use strict'; 3 'use strict';
4 // Function _invokeErrorHandler: (Function, Object, StackTrace) → dynamic 4 // Function _invokeErrorHandler: (Function, Object, StackTrace) → dynamic
5 function _invokeErrorHandler(errorHandler, error, stackTrace) { 5 function _invokeErrorHandler(errorHandler, error, stackTrace) {
6 if (dart.is(errorHandler, ZoneBinaryCallback)) { 6 if (dart.is(errorHandler, ZoneBinaryCallback)) {
7 return dart.dinvokef(errorHandler, error, stackTrace); 7 return dart.dinvokef(errorHandler, error, stackTrace);
8 } else { 8 } else {
9 return dart.dinvokef(errorHandler, error); 9 return dart.dinvokef(errorHandler, error);
10 } 10 }
11 } 11 }
12 // Function _registerErrorHandler: (Function, Zone) → Function 12 // Function _registerErrorHandler: (Function, Zone) → Function
13 function _registerErrorHandler(errorHandler, zone) { 13 function _registerErrorHandler(errorHandler, zone) {
14 if (dart.is(errorHandler, ZoneBinaryCallback)) { 14 if (dart.is(errorHandler, ZoneBinaryCallback)) {
15 return zone.registerBinaryCallback(errorHandler); 15 return zone.registerBinaryCallback(errorHandler);
16 } else { 16 } else {
17 return zone.registerUnaryCallback(dart.as(errorHandler, dart.throw_("Unimp lemented type (dynamic) → dynamic"))); 17 return zone.registerUnaryCallback(dart.as(errorHandler, dart.throw_("Unimp lemented type (dynamic) → dynamic")));
18 } 18 }
19 } 19 }
20 let _getBestStackTrace = Symbol('_getBestStackTrace'); 20 let _getBestStackTrace = Symbol('_getBestStackTrace');
21 class AsyncError extends core.Object {
22 AsyncError(error, stackTrace) {
23 this.error = error;
24 this.stackTrace = stackTrace;
25 }
26 toString() {
27 return dart.as(dart.dinvoke(this.error, 'toString'), core.String);
28 }
29 }
21 class _UncaughtAsyncError extends AsyncError { 30 class _UncaughtAsyncError extends AsyncError {
22 _UncaughtAsyncError(error, stackTrace) { 31 _UncaughtAsyncError(error, stackTrace) {
23 super.AsyncError(error, _getBestStackTrace(error, stackTrace)); 32 super.AsyncError(error, _getBestStackTrace(error, stackTrace));
24 } 33 }
25 static [_getBestStackTrace](error, stackTrace) { 34 static [_getBestStackTrace](error, stackTrace) {
26 if (stackTrace !== null) 35 if (stackTrace !== null)
27 return stackTrace; 36 return stackTrace;
28 if (dart.is(error, core.Error)) { 37 if (dart.is(error, core.Error)) {
29 return dart.as(dart.dload(error, 'stackTrace'), core.StackTrace); 38 return dart.as(dart.dload(error, 'stackTrace'), core.StackTrace);
30 } 39 }
31 return null; 40 return null;
32 } 41 }
33 toString() { 42 toString() {
34 let result = `Uncaught Error: ${this.error}`; 43 let result = `Uncaught Error: ${this.error}`;
35 if (this.stackTrace !== null) { 44 if (this.stackTrace !== null) {
36 result = `\nStack Trace:\n${this.stackTrace}`; 45 result = `\nStack Trace:\n${this.stackTrace}`;
37 } 46 }
38 return result; 47 return result;
39 } 48 }
40 } 49 }
50 let _controller = Symbol('_controller');
51 let _createSubscription = Symbol('_createSubscription');
52 let _onListen = Symbol('_onListen');
53 let _addError = Symbol('_addError');
54 let _completeError = Symbol('_completeError');
55 let _complete = Symbol('_complete');
56 let _sink = Symbol('_sink');
57 let Stream$ = dart.generic(function(T) {
58 class Stream extends core.Object {
59 Stream() {
60 }
61 Stream$fromFuture(future) {
62 let controller = dart.as(new StreamController({sync: true}), _StreamCont roller$(T));
63 future.then(((value) => {
64 controller._add(dart.as(value, T));
65 controller._closeUnchecked();
66 }).bind(this), {onError: ((error, stackTrace) => {
67 controller._addError(error, dart.as(stackTrace, core.StackTrace));
68 controller._closeUnchecked();
69 }).bind(this)});
70 return controller.stream;
71 }
72 Stream$fromIterable(data) {
73 return new _GeneratedStreamImpl(() => new _IterablePendingEvents(data));
74 }
75 Stream$periodic(period, computation) {
76 if (computation === void 0)
77 computation = null;
78 if (computation === null)
79 computation = (i) => null;
80 let timer = null;
81 let computationCount = 0;
82 let controller = null;
83 let watch = new core.Stopwatch();
84 // Function sendEvent: () → void
85 function sendEvent() {
86 watch.reset();
87 let data = computation((($tmp) => computationCount = dart.notNull($tmp ) + 1, $tmp)(computationCount));
88 controller.add(data);
89 }
90 // Function startPeriodicTimer: () → void
91 function startPeriodicTimer() {
92 dart.assert(timer === null);
93 timer = new Timer.periodic(period, (timer) => {
94 sendEvent();
95 });
96 }
97 controller = new StreamController({sync: true, onListen: (() => {
98 watch.start();
99 startPeriodicTimer();
100 }).bind(this), onPause: (() => {
101 timer.cancel();
102 timer = null;
103 watch.stop();
104 }).bind(this), onResume: (() => {
105 dart.assert(timer === null);
106 let elapsed = watch.elapsed;
107 watch.start();
108 timer = new Timer(period['-'](elapsed), () => {
109 timer = null;
110 startPeriodicTimer();
111 sendEvent();
112 });
113 }).bind(this), onCancel: (() => {
114 if (timer !== null)
115 timer.cancel();
116 timer = null;
117 }).bind(this)});
118 return controller.stream;
119 }
120 Stream$eventTransformed(source, mapSink) {
121 return dart.as(new _BoundSinkStream(source, dart.as(mapSink, _SinkMapper )), Stream$(T));
122 }
123 get isBroadcast() {
124 return false;
125 }
126 asBroadcastStream(opt$) {
127 let onListen = opt$.onListen === void 0 ? null : opt$.onListen;
128 let onCancel = opt$.onCancel === void 0 ? null : opt$.onCancel;
129 return new _AsBroadcastStream(this, dart.as(onListen, dart.throw_("Unimp lemented type (StreamSubscription<dynamic>) → void")), dart.as(onCancel, dart.th row_("Unimplemented type (StreamSubscription<dynamic>) → void")));
130 }
131 where(test) {
132 return new _WhereStream(this, test);
133 }
134 map(convert) {
135 return new _MapStream(this, convert);
136 }
137 asyncMap(convert) {
138 let controller = null;
139 let subscription = null;
140 // Function onListen: () → void
141 function onListen() {
142 let add = controller.add;
143 dart.assert(dart.notNull(dart.is(controller, _StreamController)) || da rt.notNull(dart.is(controller, _BroadcastStreamController)));
144 let eventSink = controller;
145 let addError = eventSink[_addError];
146 subscription = this.listen(((event) => {
147 let newValue = null;
148 try {
149 newValue = convert(event);
150 } catch (e) {
151 let s = dart.stackTrace(e);
152 controller.addError(e, s);
153 return;
154 }
155
156 if (dart.is(newValue, Future)) {
157 subscription.pause();
158 dart.dinvoke(dart.dinvoke(newValue, 'then', add, {onError: addErro r}), 'whenComplete', subscription.resume);
159 } else {
160 controller.add(newValue);
161 }
162 }).bind(this), {onError: dart.as(addError, core.Function), onDone: con troller.close});
163 }
164 if (this.isBroadcast) {
165 controller = new StreamController.broadcast({onListen: onListen, onCan cel: (() => {
166 subscription.cancel();
167 }).bind(this), sync: true});
168 } else {
169 controller = new StreamController({onListen: onListen, onPause: (() => {
170 subscription.pause();
171 }).bind(this), onResume: (() => {
172 subscription.resume();
173 }).bind(this), onCancel: (() => {
174 subscription.cancel();
175 }).bind(this), sync: true});
176 }
177 return controller.stream;
178 }
179 asyncExpand(convert) {
180 let controller = null;
181 let subscription = null;
182 // Function onListen: () → void
183 function onListen() {
184 dart.assert(dart.notNull(dart.is(controller, _StreamController)) || da rt.notNull(dart.is(controller, _BroadcastStreamController)));
185 let eventSink = controller;
186 subscription = this.listen(((event) => {
187 let newStream = null;
188 try {
189 newStream = convert(event);
190 } catch (e) {
191 let s = dart.stackTrace(e);
192 controller.addError(e, s);
193 return;
194 }
195
196 if (newStream !== null) {
197 subscription.pause();
198 controller.addStream(newStream).whenComplete(subscription.resume);
199 }
200 }).bind(this), {onError: dart.as(eventSink[_addError], core.Function), onDone: controller.close});
201 }
202 if (this.isBroadcast) {
203 controller = new StreamController.broadcast({onListen: onListen, onCan cel: (() => {
204 subscription.cancel();
205 }).bind(this), sync: true});
206 } else {
207 controller = new StreamController({onListen: onListen, onPause: (() => {
208 subscription.pause();
209 }).bind(this), onResume: (() => {
210 subscription.resume();
211 }).bind(this), onCancel: (() => {
212 subscription.cancel();
213 }).bind(this), sync: true});
214 }
215 return controller.stream;
216 }
217 handleError(onError, opt$) {
218 let test = opt$.test === void 0 ? null : opt$.test;
219 return new _HandleErrorStream(this, onError, test);
220 }
221 expand(convert) {
222 return new _ExpandStream(this, convert);
223 }
224 pipe(streamConsumer) {
225 return streamConsumer.addStream(this).then(((_) => streamConsumer.close( )).bind(this));
226 }
227 transform(streamTransformer) {
228 return streamTransformer.bind(this);
229 }
230 reduce(combine) {
231 let result = new _Future();
232 let seenFirst = false;
233 let value = null;
234 let subscription = null;
235 subscription = this.listen((element) => {
236 if (seenFirst) {
237 _runUserCode(() => combine(value, element), dart.as((newValue) => {
238 value = newValue;
239 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ cancelAndErrorClosure(subscription, result), dart.throw_("Unimplemented type (dy namic, StackTrace) → dynamic")));
240 } else {
241 value = element;
242 seenFirst = true;
243 }
244 }, {onError: result[_completeError], onDone: (() => {
245 if (!dart.notNull(seenFirst)) {
246 try {
247 throw _internal.IterableElementError.noElement();
248 } catch (e) {
249 let s = dart.stackTrace(e);
250 _completeWithErrorCallback(result, e, s);
251 }
252
253 } else {
254 result._complete(value);
255 }
256 }).bind(this), cancelOnError: true});
257 return result;
258 }
259 fold(initialValue, combine) {
260 let result = new _Future();
261 let value = initialValue;
262 let subscription = null;
263 subscription = this.listen((element) => {
264 _runUserCode(() => combine(value, element), (newValue) => {
265 value = newValue;
266 }, dart.as(_cancelAndErrorClosure(subscription, result), dart.throw_(" Unimplemented type (dynamic, StackTrace) → dynamic")));
267 }, {onError: ((e, st) => {
268 result._completeError(e, dart.as(st, core.StackTrace));
269 }).bind(this), onDone: (() => {
270 result._complete(value);
271 }).bind(this), cancelOnError: true});
272 return result;
273 }
274 join(separator) {
275 if (separator === void 0)
276 separator = "";
277 let result = new _Future();
278 let buffer = new core.StringBuffer();
279 let subscription = null;
280 let first = true;
281 subscription = this.listen(((element) => {
282 if (!dart.notNull(first)) {
283 buffer.write(separator);
284 }
285 first = false;
286 try {
287 buffer.write(element);
288 } catch (e) {
289 let s = dart.stackTrace(e);
290 _cancelAndErrorWithReplacement(subscription, result, e, s);
291 }
292
293 }).bind(this), {onError: ((e) => {
294 result._completeError(e);
295 }).bind(this), onDone: (() => {
296 result._complete(buffer.toString());
297 }).bind(this), cancelOnError: true});
298 return result;
299 }
300 contains(needle) {
301 let future = new _Future();
302 let subscription = null;
303 subscription = this.listen((element) => {
304 _runUserCode(() => dart.equals(element, needle), dart.as((isMatch) => {
305 if (isMatch) {
306 _cancelAndValue(subscription, future, true);
307 }
308 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ca ncelAndErrorClosure(subscription, future), dart.throw_("Unimplemented type (dyna mic, StackTrace) → dynamic")));
309 }, {onError: future[_completeError], onDone: (() => {
310 future._complete(false);
311 }).bind(this), cancelOnError: true});
312 return future;
313 }
314 forEach(action) {
315 let future = new _Future();
316 let subscription = null;
317 subscription = this.listen((element) => {
318 _runUserCode(() => action(element), (_) => {
319 }, dart.as(_cancelAndErrorClosure(subscription, future), dart.throw_(" Unimplemented type (dynamic, StackTrace) → dynamic")));
320 }, {onError: future[_completeError], onDone: (() => {
321 future._complete(null);
322 }).bind(this), cancelOnError: true});
323 return future;
324 }
325 every(test) {
326 let future = new _Future();
327 let subscription = null;
328 subscription = this.listen((element) => {
329 _runUserCode(() => test(element), dart.as((isMatch) => {
330 if (!dart.notNull(isMatch)) {
331 _cancelAndValue(subscription, future, false);
332 }
333 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ca ncelAndErrorClosure(subscription, future), dart.throw_("Unimplemented type (dyna mic, StackTrace) → dynamic")));
334 }, {onError: future[_completeError], onDone: (() => {
335 future._complete(true);
336 }).bind(this), cancelOnError: true});
337 return future;
338 }
339 any(test) {
340 let future = new _Future();
341 let subscription = null;
342 subscription = this.listen((element) => {
343 _runUserCode(() => test(element), dart.as((isMatch) => {
344 if (isMatch) {
345 _cancelAndValue(subscription, future, true);
346 }
347 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ca ncelAndErrorClosure(subscription, future), dart.throw_("Unimplemented type (dyna mic, StackTrace) → dynamic")));
348 }, {onError: future[_completeError], onDone: (() => {
349 future._complete(false);
350 }).bind(this), cancelOnError: true});
351 return future;
352 }
353 get length() {
354 let future = new _Future();
355 let count = 0;
356 this.listen((_) => {
357 count = dart.notNull(count) + 1;
358 }, {onError: future[_completeError], onDone: (() => {
359 future._complete(count);
360 }).bind(this), cancelOnError: true});
361 return future;
362 }
363 get isEmpty() {
364 let future = new _Future();
365 let subscription = null;
366 subscription = this.listen((_) => {
367 _cancelAndValue(subscription, future, false);
368 }, {onError: future[_completeError], onDone: (() => {
369 future._complete(true);
370 }).bind(this), cancelOnError: true});
371 return future;
372 }
373 toList() {
374 let result = new List.from([]);
375 let future = new _Future();
376 this.listen(((data) => {
377 result.add(data);
378 }).bind(this), {onError: future[_completeError], onDone: (() => {
379 future._complete(result);
380 }).bind(this), cancelOnError: true});
381 return future;
382 }
383 toSet() {
384 let result = new core.Set();
385 let future = new _Future();
386 this.listen(((data) => {
387 result.add(data);
388 }).bind(this), {onError: future[_completeError], onDone: (() => {
389 future._complete(result);
390 }).bind(this), cancelOnError: true});
391 return future;
392 }
393 drain(futureValue) {
394 if (futureValue === void 0)
395 futureValue = null;
396 return this.listen(null, {cancelOnError: true}).asFuture(futureValue);
397 }
398 take(count) {
399 return dart.as(new _TakeStream(this, count), Stream$(T));
400 }
401 takeWhile(test) {
402 return dart.as(new _TakeWhileStream(this, dart.as(test, dart.throw_("Uni mplemented type (dynamic) → bool"))), Stream$(T));
403 }
404 skip(count) {
405 return dart.as(new _SkipStream(this, count), Stream$(T));
406 }
407 skipWhile(test) {
408 return dart.as(new _SkipWhileStream(this, dart.as(test, dart.throw_("Uni mplemented type (dynamic) → bool"))), Stream$(T));
409 }
410 distinct(equals) {
411 if (equals === void 0)
412 equals = null;
413 return dart.as(new _DistinctStream(this, dart.as(equals, dart.throw_("Un implemented type (dynamic, dynamic) → bool"))), Stream$(T));
414 }
415 get first() {
416 let future = new _Future();
417 let subscription = null;
418 subscription = this.listen((value) => {
419 _cancelAndValue(subscription, future, value);
420 }, {
421 onError: future[_completeError],
422 onDone: () => {
423 try {
424 throw _internal.IterableElementError.noElement();
425 } catch (e) {
426 let s = dart.stackTrace(e);
427 _completeWithErrorCallback(future, e, s);
428 }
429
430 },
431 cancelOnError: true
432 });
433 return future;
434 }
435 get last() {
436 let future = new _Future();
437 let result = null;
438 let foundResult = false;
439 let subscription = null;
440 subscription = this.listen((value) => {
441 foundResult = true;
442 result = value;
443 }, {onError: future[_completeError], onDone: (() => {
444 if (foundResult) {
445 future._complete(result);
446 return;
447 }
448 try {
449 throw _internal.IterableElementError.noElement();
450 } catch (e) {
451 let s = dart.stackTrace(e);
452 _completeWithErrorCallback(future, e, s);
453 }
454
455 }).bind(this), cancelOnError: true});
456 return future;
457 }
458 get single() {
459 let future = new _Future();
460 let result = null;
461 let foundResult = false;
462 let subscription = null;
463 subscription = this.listen((value) => {
464 if (foundResult) {
465 try {
466 throw _internal.IterableElementError.tooMany();
467 } catch (e) {
468 let s = dart.stackTrace(e);
469 _cancelAndErrorWithReplacement(subscription, future, e, s);
470 }
471
472 return;
473 }
474 foundResult = true;
475 result = value;
476 }, {onError: future[_completeError], onDone: (() => {
477 if (foundResult) {
478 future._complete(result);
479 return;
480 }
481 try {
482 throw _internal.IterableElementError.noElement();
483 } catch (e) {
484 let s = dart.stackTrace(e);
485 _completeWithErrorCallback(future, e, s);
486 }
487
488 }).bind(this), cancelOnError: true});
489 return future;
490 }
491 firstWhere(test, opt$) {
492 let defaultValue = opt$.defaultValue === void 0 ? null : opt$.defaultVal ue;
493 let future = new _Future();
494 let subscription = null;
495 subscription = this.listen((value) => {
496 _runUserCode(() => test(value), dart.as((isMatch) => {
497 if (isMatch) {
498 _cancelAndValue(subscription, future, value);
499 }
500 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ca ncelAndErrorClosure(subscription, future), dart.throw_("Unimplemented type (dyna mic, StackTrace) → dynamic")));
501 }, {onError: future[_completeError], onDone: (() => {
502 if (defaultValue !== null) {
503 _runUserCode(defaultValue, future[_complete], future[_completeErro r]);
504 return;
505 }
506 try {
507 throw _internal.IterableElementError.noElement();
508 } catch (e) {
509 let s = dart.stackTrace(e);
510 _completeWithErrorCallback(future, e, s);
511 }
512
513 }).bind(this), cancelOnError: true});
514 return future;
515 }
516 lastWhere(test, opt$) {
517 let defaultValue = opt$.defaultValue === void 0 ? null : opt$.defaultVal ue;
518 let future = new _Future();
519 let result = null;
520 let foundResult = false;
521 let subscription = null;
522 subscription = this.listen((value) => {
523 _runUserCode(() => true === test(value), dart.as((isMatch) => {
524 if (isMatch) {
525 foundResult = true;
526 result = value;
527 }
528 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ca ncelAndErrorClosure(subscription, future), dart.throw_("Unimplemented type (dyna mic, StackTrace) → dynamic")));
529 }, {onError: future[_completeError], onDone: (() => {
530 if (foundResult) {
531 future._complete(result);
532 return;
533 }
534 if (defaultValue !== null) {
535 _runUserCode(defaultValue, future[_complete], future[_completeErro r]);
536 return;
537 }
538 try {
539 throw _internal.IterableElementError.noElement();
540 } catch (e) {
541 let s = dart.stackTrace(e);
542 _completeWithErrorCallback(future, e, s);
543 }
544
545 }).bind(this), cancelOnError: true});
546 return future;
547 }
548 singleWhere(test) {
549 let future = new _Future();
550 let result = null;
551 let foundResult = false;
552 let subscription = null;
553 subscription = this.listen((value) => {
554 _runUserCode(() => true === test(value), dart.as((isMatch) => {
555 if (isMatch) {
556 if (foundResult) {
557 try {
558 throw _internal.IterableElementError.tooMany();
559 } catch (e) {
560 let s = dart.stackTrace(e);
561 _cancelAndErrorWithReplacement(subscription, future, e, s);
562 }
563
564 return;
565 }
566 foundResult = true;
567 result = value;
568 }
569 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ca ncelAndErrorClosure(subscription, future), dart.throw_("Unimplemented type (dyna mic, StackTrace) → dynamic")));
570 }, {onError: future[_completeError], onDone: (() => {
571 if (foundResult) {
572 future._complete(result);
573 return;
574 }
575 try {
576 throw _internal.IterableElementError.noElement();
577 } catch (e) {
578 let s = dart.stackTrace(e);
579 _completeWithErrorCallback(future, e, s);
580 }
581
582 }).bind(this), cancelOnError: true});
583 return future;
584 }
585 elementAt(index) {
586 if (dart.notNull(!(typeof index == number)) || dart.notNull(index) < 0)
587 throw new core.ArgumentError(index);
588 let future = new _Future();
589 let subscription = null;
590 let elementIndex = 0;
591 subscription = this.listen((value) => {
592 if (index === elementIndex) {
593 _cancelAndValue(subscription, future, value);
594 return;
595 }
596 elementIndex = 1;
597 }, {onError: future[_completeError], onDone: (() => {
598 future._completeError(new core.RangeError.index(index, this, "index" , null, elementIndex));
599 }).bind(this), cancelOnError: true});
600 return future;
601 }
602 timeout(timeLimit, opt$) {
603 let onTimeout = opt$.onTimeout === void 0 ? null : opt$.onTimeout;
604 let controller = null;
605 let subscription = null;
606 let timer = null;
607 let zone = null;
608 let timeout = null;
609 // Function onData: (T) → void
610 function onData(event) {
611 timer.cancel();
612 controller.add(event);
613 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.throw_("Unim plemented type () → void")));
614 }
615 // Function onError: (dynamic, StackTrace) → void
616 function onError(error, stackTrace) {
617 timer.cancel();
618 dart.assert(dart.notNull(dart.is(controller, _StreamController)) || da rt.notNull(dart.is(controller, _BroadcastStreamController)));
619 let eventSink = controller;
620 dart.dinvoke(eventSink, '_addError', error, stackTrace);
621 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.throw_("Unim plemented type () → void")));
622 }
623 // Function onDone: () → void
624 function onDone() {
625 timer.cancel();
626 controller.close();
627 }
628 // Function onListen: () → void
629 function onListen() {
630 zone = Zone.current;
631 if (onTimeout === null) {
632 timeout = (() => {
633 controller.addError(new TimeoutException("No stream event", timeLi mit), null);
634 }).bind(this);
635 } else {
636 onTimeout = zone.registerUnaryCallback(dart.as(onTimeout, dart.throw _("Unimplemented type (dynamic) → dynamic")));
637 let wrapper = new _ControllerEventSinkWrapper(null);
638 timeout = (() => {
639 wrapper[_sink] = controller;
640 zone.runUnaryGuarded(dart.as(onTimeout, dart.throw_("Unimplemented type (dynamic) → dynamic")), wrapper);
641 wrapper[_sink] = null;
642 }).bind(this);
643 }
644 subscription = this.listen(onData, {onError: onError, onDone: onDone}) ;
645 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.throw_("Unim plemented type () → void")));
646 }
647 // Function onCancel: () → Future<dynamic>
648 function onCancel() {
649 timer.cancel();
650 let result = subscription.cancel();
651 subscription = null;
652 return result;
653 }
654 controller = this.isBroadcast ? new _SyncBroadcastStreamController(onLis ten, onCancel) : new _SyncStreamController(onListen, (() => {
655 timer.cancel();
656 subscription.pause();
657 }).bind(this), (() => {
658 subscription.resume();
659 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.throw_("Unim plemented type () → void")));
660 }).bind(this), onCancel);
661 return controller.stream;
662 }
663 }
664 dart.defineNamedConstructor(Stream, 'fromFuture');
665 dart.defineNamedConstructor(Stream, 'fromIterable');
666 dart.defineNamedConstructor(Stream, 'periodic');
667 dart.defineNamedConstructor(Stream, 'eventTransformed');
668 return Stream;
669 });
670 let Stream = Stream$(dart.dynamic);
671 let _StreamImpl$ = dart.generic(function(T) {
672 class _StreamImpl extends Stream$(T) {
673 listen(onData, opt$) {
674 let onError = opt$.onError === void 0 ? null : opt$.onError;
675 let onDone = opt$.onDone === void 0 ? null : opt$.onDone;
676 let cancelOnError = opt$.cancelOnError === void 0 ? null : opt$.cancelOn Error;
677 cancelOnError = core.identical(true, cancelOnError);
678 let subscription = this[_createSubscription](onData, onError, onDone, ca ncelOnError);
679 this[_onListen](subscription);
680 return dart.as(subscription, StreamSubscription$(T));
681 }
682 [_createSubscription](onData, onError, onDone, cancelOnError) {
683 return new _BufferingStreamSubscription(onData, onError, onDone, cancelO nError);
684 }
685 [_onListen](subscription) {}
686 }
687 return _StreamImpl;
688 });
689 let _StreamImpl = _StreamImpl$(dart.dynamic);
690 let _ControllerStream$ = dart.generic(function(T) {
691 class _ControllerStream extends _StreamImpl$(T) {
692 _ControllerStream($_controller) {
693 this[_controller] = $_controller;
694 super._StreamImpl();
695 }
696 [_createSubscription](onData, onError, onDone, cancelOnError) {
697 return this[_controller]._subscribe(onData, onError, onDone, cancelOnErr or);
698 }
699 get hashCode() {
700 return dart.notNull(this[_controller].hashCode) ^ 892482866;
701 }
702 ['=='](other) {
703 if (core.identical(this, other))
704 return true;
705 if (!dart.is(other, _ControllerStream))
706 return false;
707 let otherStream = dart.as(other, _ControllerStream);
708 return core.identical(otherStream[_controller], this[_controller]);
709 }
710 }
711 return _ControllerStream;
712 });
713 let _ControllerStream = _ControllerStream$(dart.dynamic);
41 let _BroadcastStream$ = dart.generic(function(T) { 714 let _BroadcastStream$ = dart.generic(function(T) {
42 class _BroadcastStream extends _ControllerStream$(T) { 715 class _BroadcastStream extends _ControllerStream$(T) {
43 _BroadcastStream(controller) { 716 _BroadcastStream(controller) {
44 super._ControllerStream(dart.as(controller, _StreamControllerLifecycle$( T))); 717 super._ControllerStream(dart.as(controller, _StreamControllerLifecycle$( T)));
45 } 718 }
46 get isBroadcast() { 719 get isBroadcast() {
47 return true; 720 return true;
48 } 721 }
49 } 722 }
50 return _BroadcastStream; 723 return _BroadcastStream;
51 }); 724 });
52 let _BroadcastStream = _BroadcastStream$(dart.dynamic); 725 let _BroadcastStream = _BroadcastStream$(dart.dynamic);
53 let _next = Symbol('_next'); 726 let _next = Symbol('_next');
54 let _previous = Symbol('_previous'); 727 let _previous = Symbol('_previous');
55 class _BroadcastSubscriptionLink extends core.Object { 728 class _BroadcastSubscriptionLink extends core.Object {
56 _BroadcastSubscriptionLink() { 729 _BroadcastSubscriptionLink() {
57 this[_next] = null; 730 this[_next] = null;
58 this[_previous] = null; 731 this[_previous] = null;
59 } 732 }
60 } 733 }
61 let _eventState = Symbol('_eventState'); 734 let _eventState = Symbol('_eventState');
62 let _controller = Symbol('_controller');
63 let _expectsEvent = Symbol('_expectsEvent'); 735 let _expectsEvent = Symbol('_expectsEvent');
64 let _toggleEventId = Symbol('_toggleEventId'); 736 let _toggleEventId = Symbol('_toggleEventId');
65 let _isFiring = Symbol('_isFiring'); 737 let _isFiring = Symbol('_isFiring');
66 let _setRemoveAfterFiring = Symbol('_setRemoveAfterFiring'); 738 let _setRemoveAfterFiring = Symbol('_setRemoveAfterFiring');
67 let _removeAfterFiring = Symbol('_removeAfterFiring'); 739 let _removeAfterFiring = Symbol('_removeAfterFiring');
68 let _onPause = Symbol('_onPause'); 740 let _onPause = Symbol('_onPause');
69 let _onResume = Symbol('_onResume'); 741 let _onResume = Symbol('_onResume');
742 let _onCancel = Symbol('_onCancel');
743 let _zone = Symbol('_zone');
744 let _state = Symbol('_state');
745 let _onData = Symbol('_onData');
746 let _onError = Symbol('_onError');
747 let _onDone = Symbol('_onDone');
748 let _cancelFuture = Symbol('_cancelFuture');
749 let _pending = Symbol('_pending');
750 let _setPendingEvents = Symbol('_setPendingEvents');
751 let _extractPending = Symbol('_extractPending');
752 let _isCanceled = Symbol('_isCanceled');
753 let _isPaused = Symbol('_isPaused');
754 let _isInputPaused = Symbol('_isInputPaused');
755 let _inCallback = Symbol('_inCallback');
756 let _guardCallback = Symbol('_guardCallback');
757 let _decrementPauseCount = Symbol('_decrementPauseCount');
758 let _hasPending = Symbol('_hasPending');
759 let _mayResumeInput = Symbol('_mayResumeInput');
760 let _cancel = Symbol('_cancel');
761 let _isClosed = Symbol('_isClosed');
762 let _waitsForCancel = Symbol('_waitsForCancel');
763 let _canFire = Symbol('_canFire');
764 let _cancelOnError = Symbol('_cancelOnError');
765 let _incrementPauseCount = Symbol('_incrementPauseCount');
766 let _add = Symbol('_add');
767 let _sendData = Symbol('_sendData');
768 let _addPending = Symbol('_addPending');
769 let _sendError = Symbol('_sendError');
770 let _close = Symbol('_close');
771 let _sendDone = Symbol('_sendDone');
772 let _checkState = Symbol('_checkState');
773 let _BufferingStreamSubscription$ = dart.generic(function(T) {
774 class _BufferingStreamSubscription extends core.Object {
775 _BufferingStreamSubscription(onData, onError, onDone, cancelOnError) {
776 this[_zone] = Zone.current;
777 this[_state] = cancelOnError ? _BufferingStreamSubscription._STATE_CANCE L_ON_ERROR : 0;
778 this[_onData] = null;
779 this[_onError] = null;
780 this[_onDone] = null;
781 this[_cancelFuture] = null;
782 this[_pending] = null;
783 this.onData(onData);
784 this.onError(onError);
785 this.onDone(onDone);
786 }
787 [_setPendingEvents](pendingEvents) {
788 dart.assert(this[_pending] === null);
789 if (pendingEvents === null)
790 return;
791 this[_pending] = pendingEvents;
792 if (!dart.notNull(pendingEvents.isEmpty)) {
793 this[_state] = _BufferingStreamSubscription._STATE_HAS_PENDING;
794 this[_pending].schedule(this);
795 }
796 }
797 [_extractPending]() {
798 dart.assert(this[_isCanceled]);
799 let events = this[_pending];
800 this[_pending] = null;
801 return events;
802 }
803 onData(handleData) {
804 if (handleData === null)
805 handleData = _nullDataHandler;
806 this[_onData] = this[_zone].registerUnaryCallback(dart.as(handleData, da rt.throw_("Unimplemented type (dynamic) → dynamic")));
807 }
808 onError(handleError) {
809 if (handleError === null)
810 handleError = _nullErrorHandler;
811 this[_onError] = _registerErrorHandler(handleError, this[_zone]);
812 }
813 onDone(handleDone) {
814 if (handleDone === null)
815 handleDone = _nullDoneHandler;
816 this[_onDone] = this[_zone].registerCallback(handleDone);
817 }
818 pause(resumeSignal) {
819 if (resumeSignal === void 0)
820 resumeSignal = null;
821 if (this[_isCanceled])
822 return;
823 let wasPaused = this[_isPaused];
824 let wasInputPaused = this[_isInputPaused];
825 this[_state] = dart.notNull(this[_state]) + dart.notNull(_BufferingStrea mSubscription._STATE_PAUSE_COUNT) | dart.notNull(_BufferingStreamSubscription._S TATE_INPUT_PAUSED);
826 if (resumeSignal !== null)
827 resumeSignal.whenComplete(this.resume);
828 if (!dart.notNull(wasPaused) && dart.notNull(this[_pending] !== null))
829 this[_pending].cancelSchedule();
830 if (!dart.notNull(wasInputPaused) && !dart.notNull(this[_inCallback]))
831 this[_guardCallback](this[_onPause]);
832 }
833 resume() {
834 if (this[_isCanceled])
835 return;
836 if (this[_isPaused]) {
837 this[_decrementPauseCount]();
838 if (!dart.notNull(this[_isPaused])) {
839 if (dart.notNull(this[_hasPending]) && !dart.notNull(this[_pending]. isEmpty)) {
840 this[_pending].schedule(this);
841 } else {
842 dart.assert(this[_mayResumeInput]);
843 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_I NPUT_PAUSED);
844 if (!dart.notNull(this[_inCallback]))
845 this[_guardCallback](this[_onResume]);
846 }
847 }
848 }
849 }
850 cancel() {
851 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_WAIT_FO R_CANCEL);
852 if (this[_isCanceled])
853 return this[_cancelFuture];
854 this[_cancel]();
855 return this[_cancelFuture];
856 }
857 asFuture(futureValue) {
858 if (futureValue === void 0)
859 futureValue = null;
860 let result = new _Future();
861 this[_onDone] = (() => {
862 result._complete(futureValue);
863 }).bind(this);
864 this[_onError] = ((error, stackTrace) => {
865 this.cancel();
866 result._completeError(error, dart.as(stackTrace, core.StackTrace));
867 }).bind(this);
868 return result;
869 }
870 get [_isInputPaused]() {
871 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_INPUT_PAUSED)) !== 0;
872 }
873 get [_isClosed]() {
874 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_CLOSED)) !== 0;
875 }
876 get [_isCanceled]() {
877 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_CANCELED)) !== 0;
878 }
879 get [_waitsForCancel]() {
880 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_WAIT_FOR_CANCEL)) !== 0;
881 }
882 get [_inCallback]() {
883 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_IN_CALLBACK)) !== 0;
884 }
885 get [_hasPending]() {
886 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_HAS_PENDING)) !== 0;
887 }
888 get [_isPaused]() {
889 return dart.notNull(this[_state]) >= dart.notNull(_BufferingStreamSubscr iption._STATE_PAUSE_COUNT);
890 }
891 get [_canFire]() {
892 return dart.notNull(this[_state]) < dart.notNull(_BufferingStreamSubscri ption._STATE_IN_CALLBACK);
893 }
894 get [_mayResumeInput]() {
895 return !dart.notNull(this[_isPaused]) && (dart.notNull(this[_pending] == = null) || dart.notNull(this[_pending].isEmpty));
896 }
897 get [_cancelOnError]() {
898 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_CANCEL_ON_ERROR)) !== 0;
899 }
900 get isPaused() {
901 return this[_isPaused];
902 }
903 [_cancel]() {
904 this[_state] = _BufferingStreamSubscription._STATE_CANCELED;
905 if (this[_hasPending]) {
906 this[_pending].cancelSchedule();
907 }
908 if (!dart.notNull(this[_inCallback]))
909 this[_pending] = null;
910 this[_cancelFuture] = this[_onCancel]();
911 }
912 [_incrementPauseCount]() {
913 this[_state] = dart.notNull(this[_state]) + dart.notNull(_BufferingStrea mSubscription._STATE_PAUSE_COUNT) | dart.notNull(_BufferingStreamSubscription._S TATE_INPUT_PAUSED);
914 }
915 [_decrementPauseCount]() {
916 dart.assert(this[_isPaused]);
917 this[_state] = _BufferingStreamSubscription._STATE_PAUSE_COUNT;
918 }
919 [_add](data) {
920 dart.assert(!dart.notNull(this[_isClosed]));
921 if (this[_isCanceled])
922 return;
923 if (this[_canFire]) {
924 this[_sendData](data);
925 } else {
926 this[_addPending](new _DelayedData(data));
927 }
928 }
929 [_addError](error, stackTrace) {
930 if (this[_isCanceled])
931 return;
932 if (this[_canFire]) {
933 this[_sendError](error, stackTrace);
934 } else {
935 this[_addPending](new _DelayedError(error, stackTrace));
936 }
937 }
938 [_close]() {
939 dart.assert(!dart.notNull(this[_isClosed]));
940 if (this[_isCanceled])
941 return;
942 this[_state] = _BufferingStreamSubscription._STATE_CLOSED;
943 if (this[_canFire]) {
944 this[_sendDone]();
945 } else {
946 this[_addPending](new _DelayedDone());
947 }
948 }
949 [_onPause]() {
950 dart.assert(this[_isInputPaused]);
951 }
952 [_onResume]() {
953 dart.assert(!dart.notNull(this[_isInputPaused]));
954 }
955 [_onCancel]() {
956 dart.assert(this[_isCanceled]);
957 return null;
958 }
959 [_addPending](event) {
960 let pending = dart.as(this[_pending], _StreamImplEvents);
961 if (this[_pending] === null)
962 pending = this[_pending] = new _StreamImplEvents();
963 pending.add(event);
964 if (!dart.notNull(this[_hasPending])) {
965 this[_state] = _BufferingStreamSubscription._STATE_HAS_PENDING;
966 if (!dart.notNull(this[_isPaused])) {
967 this[_pending].schedule(this);
968 }
969 }
970 }
971 [_sendData](data) {
972 dart.assert(!dart.notNull(this[_isCanceled]));
973 dart.assert(!dart.notNull(this[_isPaused]));
974 dart.assert(!dart.notNull(this[_inCallback]));
975 let wasInputPaused = this[_isInputPaused];
976 this[_state] = _BufferingStreamSubscription._STATE_IN_CALLBACK;
977 this[_zone].runUnaryGuarded(dart.as(this[_onData], dart.throw_("Unimplem ented type (dynamic) → dynamic")), data);
978 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_IN_CALL BACK);
979 this[_checkState](wasInputPaused);
980 }
981 [_sendError](error, stackTrace) {
982 dart.assert(!dart.notNull(this[_isCanceled]));
983 dart.assert(!dart.notNull(this[_isPaused]));
984 dart.assert(!dart.notNull(this[_inCallback]));
985 let wasInputPaused = this[_isInputPaused];
986 // Function sendError: () → void
987 function sendError() {
988 if (dart.notNull(this[_isCanceled]) && !dart.notNull(this[_waitsForCan cel]))
989 return;
990 this[_state] = _BufferingStreamSubscription._STATE_IN_CALLBACK;
991 if (dart.is(this[_onError], ZoneBinaryCallback)) {
992 this[_zone].runBinaryGuarded(dart.as(this[_onError], dart.throw_("Un implemented type (dynamic, dynamic) → dynamic")), error, stackTrace);
993 } else {
994 this[_zone].runUnaryGuarded(dart.as(this[_onError], dart.throw_("Uni mplemented type (dynamic) → dynamic")), error);
995 }
996 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_IN_CA LLBACK);
997 }
998 if (this[_cancelOnError]) {
999 this[_state] = _BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL;
1000 this[_cancel]();
1001 if (dart.is(this[_cancelFuture], Future)) {
1002 this[_cancelFuture].whenComplete(sendError);
1003 } else {
1004 sendError();
1005 }
1006 } else {
1007 sendError();
1008 this[_checkState](wasInputPaused);
1009 }
1010 }
1011 [_sendDone]() {
1012 dart.assert(!dart.notNull(this[_isCanceled]));
1013 dart.assert(!dart.notNull(this[_isPaused]));
1014 dart.assert(!dart.notNull(this[_inCallback]));
1015 // Function sendDone: () → void
1016 function sendDone() {
1017 if (!dart.notNull(this[_waitsForCancel]))
1018 return;
1019 this[_state] = dart.notNull(_BufferingStreamSubscription._STATE_CANCEL ED) | dart.notNull(_BufferingStreamSubscription._STATE_CLOSED) | dart.notNull(_B ufferingStreamSubscription._STATE_IN_CALLBACK);
1020 this[_zone].runGuarded(this[_onDone]);
1021 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_IN_CA LLBACK);
1022 }
1023 this[_cancel]();
1024 this[_state] = _BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL;
1025 if (dart.is(this[_cancelFuture], Future)) {
1026 this[_cancelFuture].whenComplete(sendDone);
1027 } else {
1028 sendDone();
1029 }
1030 }
1031 [_guardCallback](callback) {
1032 dart.assert(!dart.notNull(this[_inCallback]));
1033 let wasInputPaused = this[_isInputPaused];
1034 this[_state] = _BufferingStreamSubscription._STATE_IN_CALLBACK;
1035 dart.dinvokef(callback);
1036 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_IN_CALL BACK);
1037 this[_checkState](wasInputPaused);
1038 }
1039 [_checkState](wasInputPaused) {
1040 dart.assert(!dart.notNull(this[_inCallback]));
1041 if (dart.notNull(this[_hasPending]) && dart.notNull(this[_pending].isEmp ty)) {
1042 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_HAS_P ENDING);
1043 if (dart.notNull(this[_isInputPaused]) && dart.notNull(this[_mayResume Input])) {
1044 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_INP UT_PAUSED);
1045 }
1046 }
1047 while (true) {
1048 if (this[_isCanceled]) {
1049 this[_pending] = null;
1050 return;
1051 }
1052 let isInputPaused = this[_isInputPaused];
1053 if (wasInputPaused === isInputPaused)
1054 break;
1055 this[_state] = _BufferingStreamSubscription._STATE_IN_CALLBACK;
1056 if (isInputPaused) {
1057 this[_onPause]();
1058 } else {
1059 this[_onResume]();
1060 }
1061 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_IN_CA LLBACK);
1062 wasInputPaused = isInputPaused;
1063 }
1064 if (dart.notNull(this[_hasPending]) && !dart.notNull(this[_isPaused])) {
1065 this[_pending].schedule(this);
1066 }
1067 }
1068 }
1069 _BufferingStreamSubscription._STATE_CANCEL_ON_ERROR = 1;
1070 _BufferingStreamSubscription._STATE_CLOSED = 2;
1071 _BufferingStreamSubscription._STATE_INPUT_PAUSED = 4;
1072 _BufferingStreamSubscription._STATE_CANCELED = 8;
1073 _BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL = 16;
1074 _BufferingStreamSubscription._STATE_IN_CALLBACK = 32;
1075 _BufferingStreamSubscription._STATE_HAS_PENDING = 64;
1076 _BufferingStreamSubscription._STATE_PAUSE_COUNT = 128;
1077 _BufferingStreamSubscription._STATE_PAUSE_COUNT_SHIFT = 7;
1078 return _BufferingStreamSubscription;
1079 });
1080 let _BufferingStreamSubscription = _BufferingStreamSubscription$(dart.dynamic) ;
1081 let _ControllerSubscription$ = dart.generic(function(T) {
1082 class _ControllerSubscription extends _BufferingStreamSubscription$(T) {
1083 _ControllerSubscription($_controller, onData, onError, onDone, cancelOnErr or) {
1084 this[_controller] = $_controller;
1085 super._BufferingStreamSubscription(onData, onError, onDone, cancelOnErro r);
1086 }
1087 [_onCancel]() {
1088 return this[_controller]._recordCancel(this);
1089 }
1090 [_onPause]() {
1091 this[_controller]._recordPause(this);
1092 }
1093 [_onResume]() {
1094 this[_controller]._recordResume(this);
1095 }
1096 }
1097 return _ControllerSubscription;
1098 });
1099 let _ControllerSubscription = _ControllerSubscription$(dart.dynamic);
70 let _BroadcastSubscription$ = dart.generic(function(T) { 1100 let _BroadcastSubscription$ = dart.generic(function(T) {
71 class _BroadcastSubscription extends _ControllerSubscription$(T) { 1101 class _BroadcastSubscription extends _ControllerSubscription$(T) {
72 _BroadcastSubscription(controller, onData, onError, onDone, cancelOnError) { 1102 _BroadcastSubscription(controller, onData, onError, onDone, cancelOnError) {
73 this[_eventState] = null; 1103 this[_eventState] = null;
74 this[_next] = null; 1104 this[_next] = null;
75 this[_previous] = null; 1105 this[_previous] = null;
76 super._ControllerSubscription(dart.as(controller, _StreamControllerLifec ycle$(T)), onData, onError, onDone, cancelOnError); 1106 super._ControllerSubscription(dart.as(controller, _StreamControllerLifec ycle$(T)), onData, onError, onDone, cancelOnError);
77 this[_next] = this[_previous] = this; 1107 this[_next] = this[_previous] = this;
78 } 1108 }
79 get [_controller]() { 1109 get [_controller]() {
(...skipping 17 matching lines...) Expand all
97 } 1127 }
98 [_onPause]() {} 1128 [_onPause]() {}
99 [_onResume]() {} 1129 [_onResume]() {}
100 } 1130 }
101 _BroadcastSubscription._STATE_EVENT_ID = 1; 1131 _BroadcastSubscription._STATE_EVENT_ID = 1;
102 _BroadcastSubscription._STATE_FIRING = 2; 1132 _BroadcastSubscription._STATE_FIRING = 2;
103 _BroadcastSubscription._STATE_REMOVE_AFTER_FIRING = 4; 1133 _BroadcastSubscription._STATE_REMOVE_AFTER_FIRING = 4;
104 return _BroadcastSubscription; 1134 return _BroadcastSubscription;
105 }); 1135 });
106 let _BroadcastSubscription = _BroadcastSubscription$(dart.dynamic); 1136 let _BroadcastSubscription = _BroadcastSubscription$(dart.dynamic);
107 let _onListen = Symbol('_onListen');
108 let _onCancel = Symbol('_onCancel');
109 let _state = Symbol('_state');
110 let _addStreamState = Symbol('_addStreamState'); 1137 let _addStreamState = Symbol('_addStreamState');
111 let _doneFuture = Symbol('_doneFuture'); 1138 let _doneFuture = Symbol('_doneFuture');
112 let _isEmpty = Symbol('_isEmpty'); 1139 let _isEmpty = Symbol('_isEmpty');
113 let _hasOneListener = Symbol('_hasOneListener'); 1140 let _hasOneListener = Symbol('_hasOneListener');
114 let _isAddingStream = Symbol('_isAddingStream'); 1141 let _isAddingStream = Symbol('_isAddingStream');
115 let _mayAddEvent = Symbol('_mayAddEvent'); 1142 let _mayAddEvent = Symbol('_mayAddEvent');
116 let _ensureDoneFuture = Symbol('_ensureDoneFuture'); 1143 let _ensureDoneFuture = Symbol('_ensureDoneFuture');
117 let _addListener = Symbol('_addListener'); 1144 let _addListener = Symbol('_addListener');
118 let _removeListener = Symbol('_removeListener'); 1145 let _removeListener = Symbol('_removeListener');
119 let _subscribe = Symbol('_subscribe'); 1146 let _subscribe = Symbol('_subscribe');
120 let _recordCancel = Symbol('_recordCancel'); 1147 let _recordCancel = Symbol('_recordCancel');
121 let _callOnCancel = Symbol('_callOnCancel'); 1148 let _callOnCancel = Symbol('_callOnCancel');
122 let _recordPause = Symbol('_recordPause'); 1149 let _recordPause = Symbol('_recordPause');
123 let _recordResume = Symbol('_recordResume'); 1150 let _recordResume = Symbol('_recordResume');
124 let _addEventError = Symbol('_addEventError'); 1151 let _addEventError = Symbol('_addEventError');
125 let _sendData = Symbol('_sendData');
126 let _sendError = Symbol('_sendError');
127 let _sendDone = Symbol('_sendDone');
128 let _add = Symbol('_add');
129 let _addError = Symbol('_addError');
130 let _close = Symbol('_close');
131 let _forEachListener = Symbol('_forEachListener'); 1152 let _forEachListener = Symbol('_forEachListener');
132 let _STATE_FIRING = Symbol('_STATE_FIRING'); 1153 let _STATE_FIRING = Symbol('_STATE_FIRING');
133 let _mayComplete = Symbol('_mayComplete'); 1154 let _mayComplete = Symbol('_mayComplete');
134 let _BroadcastStreamController$ = dart.generic(function(T) { 1155 let _BroadcastStreamController$ = dart.generic(function(T) {
135 class _BroadcastStreamController extends core.Object { 1156 class _BroadcastStreamController extends core.Object {
136 _BroadcastStreamController($_onListen, $_onCancel) { 1157 _BroadcastStreamController($_onListen, $_onCancel) {
137 this[_onListen] = $_onListen; 1158 this[_onListen] = $_onListen;
138 this[_onCancel] = $_onCancel; 1159 this[_onCancel] = $_onCancel;
139 this[_state] = _BroadcastStreamController._STATE_INITIAL; 1160 this[_state] = _BroadcastStreamController._STATE_INITIAL;
140 this[_next] = null; 1161 this[_next] = null;
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 } else { 1423 } else {
403 dart.assert(this[_doneFuture] !== null); 1424 dart.assert(this[_doneFuture] !== null);
404 dart.assert(this[_doneFuture][_mayComplete]); 1425 dart.assert(this[_doneFuture][_mayComplete]);
405 this[_doneFuture]._asyncComplete(null); 1426 this[_doneFuture]._asyncComplete(null);
406 } 1427 }
407 } 1428 }
408 } 1429 }
409 return _AsyncBroadcastStreamController; 1430 return _AsyncBroadcastStreamController;
410 }); 1431 });
411 let _AsyncBroadcastStreamController = _AsyncBroadcastStreamController$(dart.dy namic); 1432 let _AsyncBroadcastStreamController = _AsyncBroadcastStreamController$(dart.dy namic);
412 let _pending = Symbol('_pending');
413 let _hasPending = Symbol('_hasPending');
414 let _addPendingEvent = Symbol('_addPendingEvent'); 1433 let _addPendingEvent = Symbol('_addPendingEvent');
415 let _STATE_CLOSED = Symbol('_STATE_CLOSED'); 1434 let _STATE_CLOSED = Symbol('_STATE_CLOSED');
416 let _AsBroadcastStreamController$ = dart.generic(function(T) { 1435 let _AsBroadcastStreamController$ = dart.generic(function(T) {
417 class _AsBroadcastStreamController extends _SyncBroadcastStreamController$(T ) { 1436 class _AsBroadcastStreamController extends _SyncBroadcastStreamController$(T ) {
418 _AsBroadcastStreamController(onListen, onCancel) { 1437 _AsBroadcastStreamController(onListen, onCancel) {
419 this[_pending] = null; 1438 this[_pending] = null;
420 super._SyncBroadcastStreamController(onListen, onCancel); 1439 super._SyncBroadcastStreamController(onListen, onCancel);
421 } 1440 }
422 get [_hasPending]() { 1441 get [_hasPending]() {
423 return dart.notNull(this[_pending] !== null) && !dart.notNull(this[_pend ing].isEmpty); 1442 return dart.notNull(this[_pending] !== null) && !dart.notNull(this[_pend ing].isEmpty);
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 } 1543 }
525 let _s = Symbol('_s'); 1544 let _s = Symbol('_s');
526 class DeferredLoadException extends core.Object { 1545 class DeferredLoadException extends core.Object {
527 DeferredLoadException($_s) { 1546 DeferredLoadException($_s) {
528 this[_s] = $_s; 1547 this[_s] = $_s;
529 } 1548 }
530 toString() { 1549 toString() {
531 return `DeferredLoadException: '${this[_s]}'`; 1550 return `DeferredLoadException: '${this[_s]}'`;
532 } 1551 }
533 } 1552 }
534 let _completeError = Symbol('_completeError');
535 let Future$ = dart.generic(function(T) { 1553 let Future$ = dart.generic(function(T) {
536 class Future extends core.Object { 1554 class Future extends core.Object {
537 Future(computation) { 1555 Future(computation) {
538 let result = new _Future(); 1556 let result = new _Future();
539 Timer.run((() => { 1557 Timer.run((() => {
540 try { 1558 try {
541 result._complete(computation()); 1559 result._complete(computation());
542 } catch (e) { 1560 } catch (e) {
543 let s = dart.stackTrace(e); 1561 let s = dart.stackTrace(e);
544 _completeWithErrorCallback(result, e, s); 1562 _completeWithErrorCallback(result, e, s);
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
790 this.future._complete(value); 1808 this.future._complete(value);
791 } 1809 }
792 [_completeError](error, stackTrace) { 1810 [_completeError](error, stackTrace) {
793 this.future._completeError(error, stackTrace); 1811 this.future._completeError(error, stackTrace);
794 } 1812 }
795 } 1813 }
796 return _SyncCompleter; 1814 return _SyncCompleter;
797 }); 1815 });
798 let _SyncCompleter = _SyncCompleter$(dart.dynamic); 1816 let _SyncCompleter = _SyncCompleter$(dart.dynamic);
799 let _nextListener = Symbol('_nextListener'); 1817 let _nextListener = Symbol('_nextListener');
800 let _zone = Symbol('_zone');
801 let _onValue = Symbol('_onValue'); 1818 let _onValue = Symbol('_onValue');
802 let _onError = Symbol('_onError');
803 let _errorTest = Symbol('_errorTest'); 1819 let _errorTest = Symbol('_errorTest');
804 let _whenCompleteAction = Symbol('_whenCompleteAction'); 1820 let _whenCompleteAction = Symbol('_whenCompleteAction');
805 class _FutureListener extends core.Object { 1821 class _FutureListener extends core.Object {
806 _FutureListener$then(result, onValue, errorCallback) { 1822 _FutureListener$then(result, onValue, errorCallback) {
807 this.result = result; 1823 this.result = result;
808 this.callback = onValue; 1824 this.callback = onValue;
809 this.errorCallback = errorCallback; 1825 this.errorCallback = errorCallback;
810 this.state = errorCallback === null ? _FutureListener.STATE_THEN : _Future Listener.STATE_THEN_ONERROR; 1826 this.state = errorCallback === null ? _FutureListener.STATE_THEN : _Future Listener.STATE_THEN_ONERROR;
811 this[_nextListener] = null; 1827 this[_nextListener] = null;
812 } 1828 }
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 let _hasError = Symbol('_hasError'); 1901 let _hasError = Symbol('_hasError');
886 let _markPendingCompletion = Symbol('_markPendingCompletion'); 1902 let _markPendingCompletion = Symbol('_markPendingCompletion');
887 let _value = Symbol('_value'); 1903 let _value = Symbol('_value');
888 let _error = Symbol('_error'); 1904 let _error = Symbol('_error');
889 let _setValue = Symbol('_setValue'); 1905 let _setValue = Symbol('_setValue');
890 let _setErrorObject = Symbol('_setErrorObject'); 1906 let _setErrorObject = Symbol('_setErrorObject');
891 let _setError = Symbol('_setError'); 1907 let _setError = Symbol('_setError');
892 let _removeListeners = Symbol('_removeListeners'); 1908 let _removeListeners = Symbol('_removeListeners');
893 let _chainForeignFuture = Symbol('_chainForeignFuture'); 1909 let _chainForeignFuture = Symbol('_chainForeignFuture');
894 let _chainCoreFuture = Symbol('_chainCoreFuture'); 1910 let _chainCoreFuture = Symbol('_chainCoreFuture');
895 let _complete = Symbol('_complete');
896 let _completeWithValue = Symbol('_completeWithValue'); 1911 let _completeWithValue = Symbol('_completeWithValue');
897 let _propagateToListeners = Symbol('_propagateToListeners'); 1912 let _propagateToListeners = Symbol('_propagateToListeners');
898 let _Future$ = dart.generic(function(T) { 1913 let _Future$ = dart.generic(function(T) {
899 class _Future extends core.Object { 1914 class _Future extends core.Object {
900 _Future() { 1915 _Future() {
901 this[_zone] = Zone.current; 1916 this[_zone] = Zone.current;
902 this[_state] = _Future._INCOMPLETE; 1917 this[_state] = _Future._INCOMPLETE;
903 this[_resultOrListeners] = null; 1918 this[_resultOrListeners] = null;
904 } 1919 }
905 _Future$immediate(value) { 1920 _Future$immediate(value) {
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
1452 } 2467 }
1453 static [_scheduleImmediateWithTimer](callback) { 2468 static [_scheduleImmediateWithTimer](callback) {
1454 Timer._createTimer(core.Duration.ZERO, callback); 2469 Timer._createTimer(core.Duration.ZERO, callback);
1455 } 2470 }
1456 } 2471 }
1457 dart.defineLazyProperties(_AsyncRun, { 2472 dart.defineLazyProperties(_AsyncRun, {
1458 get scheduleImmediateClosure() { 2473 get scheduleImmediateClosure() {
1459 return _initializeScheduleImmediate(); 2474 return _initializeScheduleImmediate();
1460 } 2475 }
1461 }); 2476 });
1462 let _sink = Symbol('_sink');
1463 let Stream$ = dart.generic(function(T) {
1464 class Stream extends core.Object {
1465 Stream() {
1466 }
1467 Stream$fromFuture(future) {
1468 let controller = dart.as(new StreamController({sync: true}), _StreamCont roller$(T));
1469 future.then(((value) => {
1470 controller._add(dart.as(value, T));
1471 controller._closeUnchecked();
1472 }).bind(this), {onError: ((error, stackTrace) => {
1473 controller._addError(error, dart.as(stackTrace, core.StackTrace));
1474 controller._closeUnchecked();
1475 }).bind(this)});
1476 return controller.stream;
1477 }
1478 Stream$fromIterable(data) {
1479 return new _GeneratedStreamImpl(() => new _IterablePendingEvents(data));
1480 }
1481 Stream$periodic(period, computation) {
1482 if (computation === void 0)
1483 computation = null;
1484 if (computation === null)
1485 computation = (i) => null;
1486 let timer = null;
1487 let computationCount = 0;
1488 let controller = null;
1489 let watch = new core.Stopwatch();
1490 // Function sendEvent: () → void
1491 function sendEvent() {
1492 watch.reset();
1493 let data = computation((($tmp) => computationCount = dart.notNull($tmp ) + 1, $tmp)(computationCount));
1494 controller.add(data);
1495 }
1496 // Function startPeriodicTimer: () → void
1497 function startPeriodicTimer() {
1498 dart.assert(timer === null);
1499 timer = new Timer.periodic(period, (timer) => {
1500 sendEvent();
1501 });
1502 }
1503 controller = new StreamController({sync: true, onListen: (() => {
1504 watch.start();
1505 startPeriodicTimer();
1506 }).bind(this), onPause: (() => {
1507 timer.cancel();
1508 timer = null;
1509 watch.stop();
1510 }).bind(this), onResume: (() => {
1511 dart.assert(timer === null);
1512 let elapsed = watch.elapsed;
1513 watch.start();
1514 timer = new Timer(period['-'](elapsed), () => {
1515 timer = null;
1516 startPeriodicTimer();
1517 sendEvent();
1518 });
1519 }).bind(this), onCancel: (() => {
1520 if (timer !== null)
1521 timer.cancel();
1522 timer = null;
1523 }).bind(this)});
1524 return controller.stream;
1525 }
1526 Stream$eventTransformed(source, mapSink) {
1527 return dart.as(new _BoundSinkStream(source, dart.as(mapSink, _SinkMapper )), Stream$(T));
1528 }
1529 get isBroadcast() {
1530 return false;
1531 }
1532 asBroadcastStream(opt$) {
1533 let onListen = opt$.onListen === void 0 ? null : opt$.onListen;
1534 let onCancel = opt$.onCancel === void 0 ? null : opt$.onCancel;
1535 return new _AsBroadcastStream(this, dart.as(onListen, dart.throw_("Unimp lemented type (StreamSubscription<dynamic>) → void")), dart.as(onCancel, dart.th row_("Unimplemented type (StreamSubscription<dynamic>) → void")));
1536 }
1537 where(test) {
1538 return new _WhereStream(this, test);
1539 }
1540 map(convert) {
1541 return new _MapStream(this, convert);
1542 }
1543 asyncMap(convert) {
1544 let controller = null;
1545 let subscription = null;
1546 // Function onListen: () → void
1547 function onListen() {
1548 let add = controller.add;
1549 dart.assert(dart.notNull(dart.is(controller, _StreamController)) || da rt.notNull(dart.is(controller, _BroadcastStreamController)));
1550 let eventSink = controller;
1551 let addError = eventSink[_addError];
1552 subscription = this.listen(((event) => {
1553 let newValue = null;
1554 try {
1555 newValue = convert(event);
1556 } catch (e) {
1557 let s = dart.stackTrace(e);
1558 controller.addError(e, s);
1559 return;
1560 }
1561
1562 if (dart.is(newValue, Future)) {
1563 subscription.pause();
1564 dart.dinvoke(dart.dinvoke(newValue, 'then', add, {onError: addErro r}), 'whenComplete', subscription.resume);
1565 } else {
1566 controller.add(newValue);
1567 }
1568 }).bind(this), {onError: dart.as(addError, core.Function), onDone: con troller.close});
1569 }
1570 if (this.isBroadcast) {
1571 controller = new StreamController.broadcast({onListen: onListen, onCan cel: (() => {
1572 subscription.cancel();
1573 }).bind(this), sync: true});
1574 } else {
1575 controller = new StreamController({onListen: onListen, onPause: (() => {
1576 subscription.pause();
1577 }).bind(this), onResume: (() => {
1578 subscription.resume();
1579 }).bind(this), onCancel: (() => {
1580 subscription.cancel();
1581 }).bind(this), sync: true});
1582 }
1583 return controller.stream;
1584 }
1585 asyncExpand(convert) {
1586 let controller = null;
1587 let subscription = null;
1588 // Function onListen: () → void
1589 function onListen() {
1590 dart.assert(dart.notNull(dart.is(controller, _StreamController)) || da rt.notNull(dart.is(controller, _BroadcastStreamController)));
1591 let eventSink = controller;
1592 subscription = this.listen(((event) => {
1593 let newStream = null;
1594 try {
1595 newStream = convert(event);
1596 } catch (e) {
1597 let s = dart.stackTrace(e);
1598 controller.addError(e, s);
1599 return;
1600 }
1601
1602 if (newStream !== null) {
1603 subscription.pause();
1604 controller.addStream(newStream).whenComplete(subscription.resume);
1605 }
1606 }).bind(this), {onError: dart.as(eventSink[_addError], core.Function), onDone: controller.close});
1607 }
1608 if (this.isBroadcast) {
1609 controller = new StreamController.broadcast({onListen: onListen, onCan cel: (() => {
1610 subscription.cancel();
1611 }).bind(this), sync: true});
1612 } else {
1613 controller = new StreamController({onListen: onListen, onPause: (() => {
1614 subscription.pause();
1615 }).bind(this), onResume: (() => {
1616 subscription.resume();
1617 }).bind(this), onCancel: (() => {
1618 subscription.cancel();
1619 }).bind(this), sync: true});
1620 }
1621 return controller.stream;
1622 }
1623 handleError(onError, opt$) {
1624 let test = opt$.test === void 0 ? null : opt$.test;
1625 return new _HandleErrorStream(this, onError, test);
1626 }
1627 expand(convert) {
1628 return new _ExpandStream(this, convert);
1629 }
1630 pipe(streamConsumer) {
1631 return streamConsumer.addStream(this).then(((_) => streamConsumer.close( )).bind(this));
1632 }
1633 transform(streamTransformer) {
1634 return streamTransformer.bind(this);
1635 }
1636 reduce(combine) {
1637 let result = new _Future();
1638 let seenFirst = false;
1639 let value = null;
1640 let subscription = null;
1641 subscription = this.listen((element) => {
1642 if (seenFirst) {
1643 _runUserCode(() => combine(value, element), dart.as((newValue) => {
1644 value = newValue;
1645 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ cancelAndErrorClosure(subscription, result), dart.throw_("Unimplemented type (dy namic, StackTrace) → dynamic")));
1646 } else {
1647 value = element;
1648 seenFirst = true;
1649 }
1650 }, {onError: result[_completeError], onDone: (() => {
1651 if (!dart.notNull(seenFirst)) {
1652 try {
1653 throw _internal.IterableElementError.noElement();
1654 } catch (e) {
1655 let s = dart.stackTrace(e);
1656 _completeWithErrorCallback(result, e, s);
1657 }
1658
1659 } else {
1660 result._complete(value);
1661 }
1662 }).bind(this), cancelOnError: true});
1663 return result;
1664 }
1665 fold(initialValue, combine) {
1666 let result = new _Future();
1667 let value = initialValue;
1668 let subscription = null;
1669 subscription = this.listen((element) => {
1670 _runUserCode(() => combine(value, element), (newValue) => {
1671 value = newValue;
1672 }, dart.as(_cancelAndErrorClosure(subscription, result), dart.throw_(" Unimplemented type (dynamic, StackTrace) → dynamic")));
1673 }, {onError: ((e, st) => {
1674 result._completeError(e, dart.as(st, core.StackTrace));
1675 }).bind(this), onDone: (() => {
1676 result._complete(value);
1677 }).bind(this), cancelOnError: true});
1678 return result;
1679 }
1680 join(separator) {
1681 if (separator === void 0)
1682 separator = "";
1683 let result = new _Future();
1684 let buffer = new core.StringBuffer();
1685 let subscription = null;
1686 let first = true;
1687 subscription = this.listen(((element) => {
1688 if (!dart.notNull(first)) {
1689 buffer.write(separator);
1690 }
1691 first = false;
1692 try {
1693 buffer.write(element);
1694 } catch (e) {
1695 let s = dart.stackTrace(e);
1696 _cancelAndErrorWithReplacement(subscription, result, e, s);
1697 }
1698
1699 }).bind(this), {onError: ((e) => {
1700 result._completeError(e);
1701 }).bind(this), onDone: (() => {
1702 result._complete(buffer.toString());
1703 }).bind(this), cancelOnError: true});
1704 return result;
1705 }
1706 contains(needle) {
1707 let future = new _Future();
1708 let subscription = null;
1709 subscription = this.listen((element) => {
1710 _runUserCode(() => dart.equals(element, needle), dart.as((isMatch) => {
1711 if (isMatch) {
1712 _cancelAndValue(subscription, future, true);
1713 }
1714 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ca ncelAndErrorClosure(subscription, future), dart.throw_("Unimplemented type (dyna mic, StackTrace) → dynamic")));
1715 }, {onError: future[_completeError], onDone: (() => {
1716 future._complete(false);
1717 }).bind(this), cancelOnError: true});
1718 return future;
1719 }
1720 forEach(action) {
1721 let future = new _Future();
1722 let subscription = null;
1723 subscription = this.listen((element) => {
1724 _runUserCode(() => action(element), (_) => {
1725 }, dart.as(_cancelAndErrorClosure(subscription, future), dart.throw_(" Unimplemented type (dynamic, StackTrace) → dynamic")));
1726 }, {onError: future[_completeError], onDone: (() => {
1727 future._complete(null);
1728 }).bind(this), cancelOnError: true});
1729 return future;
1730 }
1731 every(test) {
1732 let future = new _Future();
1733 let subscription = null;
1734 subscription = this.listen((element) => {
1735 _runUserCode(() => test(element), dart.as((isMatch) => {
1736 if (!dart.notNull(isMatch)) {
1737 _cancelAndValue(subscription, future, false);
1738 }
1739 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ca ncelAndErrorClosure(subscription, future), dart.throw_("Unimplemented type (dyna mic, StackTrace) → dynamic")));
1740 }, {onError: future[_completeError], onDone: (() => {
1741 future._complete(true);
1742 }).bind(this), cancelOnError: true});
1743 return future;
1744 }
1745 any(test) {
1746 let future = new _Future();
1747 let subscription = null;
1748 subscription = this.listen((element) => {
1749 _runUserCode(() => test(element), dart.as((isMatch) => {
1750 if (isMatch) {
1751 _cancelAndValue(subscription, future, true);
1752 }
1753 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ca ncelAndErrorClosure(subscription, future), dart.throw_("Unimplemented type (dyna mic, StackTrace) → dynamic")));
1754 }, {onError: future[_completeError], onDone: (() => {
1755 future._complete(false);
1756 }).bind(this), cancelOnError: true});
1757 return future;
1758 }
1759 get length() {
1760 let future = new _Future();
1761 let count = 0;
1762 this.listen((_) => {
1763 count = dart.notNull(count) + 1;
1764 }, {onError: future[_completeError], onDone: (() => {
1765 future._complete(count);
1766 }).bind(this), cancelOnError: true});
1767 return future;
1768 }
1769 get isEmpty() {
1770 let future = new _Future();
1771 let subscription = null;
1772 subscription = this.listen((_) => {
1773 _cancelAndValue(subscription, future, false);
1774 }, {onError: future[_completeError], onDone: (() => {
1775 future._complete(true);
1776 }).bind(this), cancelOnError: true});
1777 return future;
1778 }
1779 toList() {
1780 let result = new List.from([]);
1781 let future = new _Future();
1782 this.listen(((data) => {
1783 result.add(data);
1784 }).bind(this), {onError: future[_completeError], onDone: (() => {
1785 future._complete(result);
1786 }).bind(this), cancelOnError: true});
1787 return future;
1788 }
1789 toSet() {
1790 let result = new core.Set();
1791 let future = new _Future();
1792 this.listen(((data) => {
1793 result.add(data);
1794 }).bind(this), {onError: future[_completeError], onDone: (() => {
1795 future._complete(result);
1796 }).bind(this), cancelOnError: true});
1797 return future;
1798 }
1799 drain(futureValue) {
1800 if (futureValue === void 0)
1801 futureValue = null;
1802 return this.listen(null, {cancelOnError: true}).asFuture(futureValue);
1803 }
1804 take(count) {
1805 return dart.as(new _TakeStream(this, count), Stream$(T));
1806 }
1807 takeWhile(test) {
1808 return dart.as(new _TakeWhileStream(this, dart.as(test, dart.throw_("Uni mplemented type (dynamic) → bool"))), Stream$(T));
1809 }
1810 skip(count) {
1811 return dart.as(new _SkipStream(this, count), Stream$(T));
1812 }
1813 skipWhile(test) {
1814 return dart.as(new _SkipWhileStream(this, dart.as(test, dart.throw_("Uni mplemented type (dynamic) → bool"))), Stream$(T));
1815 }
1816 distinct(equals) {
1817 if (equals === void 0)
1818 equals = null;
1819 return dart.as(new _DistinctStream(this, dart.as(equals, dart.throw_("Un implemented type (dynamic, dynamic) → bool"))), Stream$(T));
1820 }
1821 get first() {
1822 let future = new _Future();
1823 let subscription = null;
1824 subscription = this.listen((value) => {
1825 _cancelAndValue(subscription, future, value);
1826 }, {
1827 onError: future[_completeError],
1828 onDone: () => {
1829 try {
1830 throw _internal.IterableElementError.noElement();
1831 } catch (e) {
1832 let s = dart.stackTrace(e);
1833 _completeWithErrorCallback(future, e, s);
1834 }
1835
1836 },
1837 cancelOnError: true
1838 });
1839 return future;
1840 }
1841 get last() {
1842 let future = new _Future();
1843 let result = null;
1844 let foundResult = false;
1845 let subscription = null;
1846 subscription = this.listen((value) => {
1847 foundResult = true;
1848 result = value;
1849 }, {onError: future[_completeError], onDone: (() => {
1850 if (foundResult) {
1851 future._complete(result);
1852 return;
1853 }
1854 try {
1855 throw _internal.IterableElementError.noElement();
1856 } catch (e) {
1857 let s = dart.stackTrace(e);
1858 _completeWithErrorCallback(future, e, s);
1859 }
1860
1861 }).bind(this), cancelOnError: true});
1862 return future;
1863 }
1864 get single() {
1865 let future = new _Future();
1866 let result = null;
1867 let foundResult = false;
1868 let subscription = null;
1869 subscription = this.listen((value) => {
1870 if (foundResult) {
1871 try {
1872 throw _internal.IterableElementError.tooMany();
1873 } catch (e) {
1874 let s = dart.stackTrace(e);
1875 _cancelAndErrorWithReplacement(subscription, future, e, s);
1876 }
1877
1878 return;
1879 }
1880 foundResult = true;
1881 result = value;
1882 }, {onError: future[_completeError], onDone: (() => {
1883 if (foundResult) {
1884 future._complete(result);
1885 return;
1886 }
1887 try {
1888 throw _internal.IterableElementError.noElement();
1889 } catch (e) {
1890 let s = dart.stackTrace(e);
1891 _completeWithErrorCallback(future, e, s);
1892 }
1893
1894 }).bind(this), cancelOnError: true});
1895 return future;
1896 }
1897 firstWhere(test, opt$) {
1898 let defaultValue = opt$.defaultValue === void 0 ? null : opt$.defaultVal ue;
1899 let future = new _Future();
1900 let subscription = null;
1901 subscription = this.listen((value) => {
1902 _runUserCode(() => test(value), dart.as((isMatch) => {
1903 if (isMatch) {
1904 _cancelAndValue(subscription, future, value);
1905 }
1906 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ca ncelAndErrorClosure(subscription, future), dart.throw_("Unimplemented type (dyna mic, StackTrace) → dynamic")));
1907 }, {onError: future[_completeError], onDone: (() => {
1908 if (defaultValue !== null) {
1909 _runUserCode(defaultValue, future[_complete], future[_completeErro r]);
1910 return;
1911 }
1912 try {
1913 throw _internal.IterableElementError.noElement();
1914 } catch (e) {
1915 let s = dart.stackTrace(e);
1916 _completeWithErrorCallback(future, e, s);
1917 }
1918
1919 }).bind(this), cancelOnError: true});
1920 return future;
1921 }
1922 lastWhere(test, opt$) {
1923 let defaultValue = opt$.defaultValue === void 0 ? null : opt$.defaultVal ue;
1924 let future = new _Future();
1925 let result = null;
1926 let foundResult = false;
1927 let subscription = null;
1928 subscription = this.listen((value) => {
1929 _runUserCode(() => true === test(value), dart.as((isMatch) => {
1930 if (isMatch) {
1931 foundResult = true;
1932 result = value;
1933 }
1934 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ca ncelAndErrorClosure(subscription, future), dart.throw_("Unimplemented type (dyna mic, StackTrace) → dynamic")));
1935 }, {onError: future[_completeError], onDone: (() => {
1936 if (foundResult) {
1937 future._complete(result);
1938 return;
1939 }
1940 if (defaultValue !== null) {
1941 _runUserCode(defaultValue, future[_complete], future[_completeErro r]);
1942 return;
1943 }
1944 try {
1945 throw _internal.IterableElementError.noElement();
1946 } catch (e) {
1947 let s = dart.stackTrace(e);
1948 _completeWithErrorCallback(future, e, s);
1949 }
1950
1951 }).bind(this), cancelOnError: true});
1952 return future;
1953 }
1954 singleWhere(test) {
1955 let future = new _Future();
1956 let result = null;
1957 let foundResult = false;
1958 let subscription = null;
1959 subscription = this.listen((value) => {
1960 _runUserCode(() => true === test(value), dart.as((isMatch) => {
1961 if (isMatch) {
1962 if (foundResult) {
1963 try {
1964 throw _internal.IterableElementError.tooMany();
1965 } catch (e) {
1966 let s = dart.stackTrace(e);
1967 _cancelAndErrorWithReplacement(subscription, future, e, s);
1968 }
1969
1970 return;
1971 }
1972 foundResult = true;
1973 result = value;
1974 }
1975 }, dart.throw_("Unimplemented type (dynamic) → dynamic")), dart.as(_ca ncelAndErrorClosure(subscription, future), dart.throw_("Unimplemented type (dyna mic, StackTrace) → dynamic")));
1976 }, {onError: future[_completeError], onDone: (() => {
1977 if (foundResult) {
1978 future._complete(result);
1979 return;
1980 }
1981 try {
1982 throw _internal.IterableElementError.noElement();
1983 } catch (e) {
1984 let s = dart.stackTrace(e);
1985 _completeWithErrorCallback(future, e, s);
1986 }
1987
1988 }).bind(this), cancelOnError: true});
1989 return future;
1990 }
1991 elementAt(index) {
1992 if (dart.notNull(!(typeof index == number)) || dart.notNull(index) < 0)
1993 throw new core.ArgumentError(index);
1994 let future = new _Future();
1995 let subscription = null;
1996 let elementIndex = 0;
1997 subscription = this.listen((value) => {
1998 if (index === elementIndex) {
1999 _cancelAndValue(subscription, future, value);
2000 return;
2001 }
2002 elementIndex = 1;
2003 }, {onError: future[_completeError], onDone: (() => {
2004 future._completeError(new core.RangeError.index(index, this, "index" , null, elementIndex));
2005 }).bind(this), cancelOnError: true});
2006 return future;
2007 }
2008 timeout(timeLimit, opt$) {
2009 let onTimeout = opt$.onTimeout === void 0 ? null : opt$.onTimeout;
2010 let controller = null;
2011 let subscription = null;
2012 let timer = null;
2013 let zone = null;
2014 let timeout = null;
2015 // Function onData: (T) → void
2016 function onData(event) {
2017 timer.cancel();
2018 controller.add(event);
2019 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.throw_("Unim plemented type () → void")));
2020 }
2021 // Function onError: (dynamic, StackTrace) → void
2022 function onError(error, stackTrace) {
2023 timer.cancel();
2024 dart.assert(dart.notNull(dart.is(controller, _StreamController)) || da rt.notNull(dart.is(controller, _BroadcastStreamController)));
2025 let eventSink = controller;
2026 dart.dinvoke(eventSink, '_addError', error, stackTrace);
2027 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.throw_("Unim plemented type () → void")));
2028 }
2029 // Function onDone: () → void
2030 function onDone() {
2031 timer.cancel();
2032 controller.close();
2033 }
2034 // Function onListen: () → void
2035 function onListen() {
2036 zone = Zone.current;
2037 if (onTimeout === null) {
2038 timeout = (() => {
2039 controller.addError(new TimeoutException("No stream event", timeLi mit), null);
2040 }).bind(this);
2041 } else {
2042 onTimeout = zone.registerUnaryCallback(dart.as(onTimeout, dart.throw _("Unimplemented type (dynamic) → dynamic")));
2043 let wrapper = new _ControllerEventSinkWrapper(null);
2044 timeout = (() => {
2045 wrapper[_sink] = controller;
2046 zone.runUnaryGuarded(dart.as(onTimeout, dart.throw_("Unimplemented type (dynamic) → dynamic")), wrapper);
2047 wrapper[_sink] = null;
2048 }).bind(this);
2049 }
2050 subscription = this.listen(onData, {onError: onError, onDone: onDone}) ;
2051 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.throw_("Unim plemented type () → void")));
2052 }
2053 // Function onCancel: () → Future<dynamic>
2054 function onCancel() {
2055 timer.cancel();
2056 let result = subscription.cancel();
2057 subscription = null;
2058 return result;
2059 }
2060 controller = this.isBroadcast ? new _SyncBroadcastStreamController(onLis ten, onCancel) : new _SyncStreamController(onListen, (() => {
2061 timer.cancel();
2062 subscription.pause();
2063 }).bind(this), (() => {
2064 subscription.resume();
2065 timer = zone.createTimer(timeLimit, dart.as(timeout, dart.throw_("Unim plemented type () → void")));
2066 }).bind(this), onCancel);
2067 return controller.stream;
2068 }
2069 }
2070 dart.defineNamedConstructor(Stream, 'fromFuture');
2071 dart.defineNamedConstructor(Stream, 'fromIterable');
2072 dart.defineNamedConstructor(Stream, 'periodic');
2073 dart.defineNamedConstructor(Stream, 'eventTransformed');
2074 return Stream;
2075 });
2076 let Stream = Stream$(dart.dynamic);
2077 let StreamSubscription$ = dart.generic(function(T) { 2477 let StreamSubscription$ = dart.generic(function(T) {
2078 class StreamSubscription extends core.Object { 2478 class StreamSubscription extends core.Object {
2079 } 2479 }
2080 return StreamSubscription; 2480 return StreamSubscription;
2081 }); 2481 });
2082 let StreamSubscription = StreamSubscription$(dart.dynamic); 2482 let StreamSubscription = StreamSubscription$(dart.dynamic);
2083 let EventSink$ = dart.generic(function(T) { 2483 let EventSink$ = dart.generic(function(T) {
2084 class EventSink extends core.Object { 2484 class EventSink extends core.Object {
2085 } 2485 }
2086 return EventSink; 2486 return EventSink;
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
2194 [_recordPause](subscription) {} 2594 [_recordPause](subscription) {}
2195 [_recordResume](subscription) {} 2595 [_recordResume](subscription) {}
2196 [_recordCancel](subscription) { 2596 [_recordCancel](subscription) {
2197 return null; 2597 return null;
2198 } 2598 }
2199 } 2599 }
2200 return _StreamControllerLifecycle; 2600 return _StreamControllerLifecycle;
2201 }); 2601 });
2202 let _StreamControllerLifecycle = _StreamControllerLifecycle$(dart.dynamic); 2602 let _StreamControllerLifecycle = _StreamControllerLifecycle$(dart.dynamic);
2203 let _varData = Symbol('_varData'); 2603 let _varData = Symbol('_varData');
2204 let _isCanceled = Symbol('_isCanceled');
2205 let _isInitialState = Symbol('_isInitialState'); 2604 let _isInitialState = Symbol('_isInitialState');
2206 let _subscription = Symbol('_subscription'); 2605 let _subscription = Symbol('_subscription');
2207 let _isInputPaused = Symbol('_isInputPaused');
2208 let _pendingEvents = Symbol('_pendingEvents'); 2606 let _pendingEvents = Symbol('_pendingEvents');
2209 let _ensurePendingEvents = Symbol('_ensurePendingEvents'); 2607 let _ensurePendingEvents = Symbol('_ensurePendingEvents');
2210 let _badEventState = Symbol('_badEventState'); 2608 let _badEventState = Symbol('_badEventState');
2211 let _nullFuture = Symbol('_nullFuture'); 2609 let _nullFuture = Symbol('_nullFuture');
2212 let _closeUnchecked = Symbol('_closeUnchecked'); 2610 let _closeUnchecked = Symbol('_closeUnchecked');
2213 let _StreamController$ = dart.generic(function(T) { 2611 let _StreamController$ = dart.generic(function(T) {
2214 class _StreamController extends core.Object { 2612 class _StreamController extends core.Object {
2215 _StreamController() { 2613 _StreamController() {
2216 this[_varData] = null; 2614 this[_varData] = null;
2217 this[_state] = _StreamController._STATE_INITIAL; 2615 this[_state] = _StreamController._STATE_INITIAL;
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
2518 let result = notificationHandler(); 2916 let result = notificationHandler();
2519 if (dart.is(result, Future)) 2917 if (dart.is(result, Future))
2520 return dart.as(result, Future); 2918 return dart.as(result, Future);
2521 return null; 2919 return null;
2522 } catch (e) { 2920 } catch (e) {
2523 let s = dart.stackTrace(e); 2921 let s = dart.stackTrace(e);
2524 Zone.current.handleUncaughtError(e, s); 2922 Zone.current.handleUncaughtError(e, s);
2525 } 2923 }
2526 2924
2527 } 2925 }
2528 let _createSubscription = Symbol('_createSubscription');
2529 let _ControllerStream$ = dart.generic(function(T) {
2530 class _ControllerStream extends _StreamImpl$(T) {
2531 _ControllerStream($_controller) {
2532 this[_controller] = $_controller;
2533 super._StreamImpl();
2534 }
2535 [_createSubscription](onData, onError, onDone, cancelOnError) {
2536 return this[_controller]._subscribe(onData, onError, onDone, cancelOnErr or);
2537 }
2538 get hashCode() {
2539 return dart.notNull(this[_controller].hashCode) ^ 892482866;
2540 }
2541 ['=='](other) {
2542 if (core.identical(this, other))
2543 return true;
2544 if (!dart.is(other, _ControllerStream))
2545 return false;
2546 let otherStream = dart.as(other, _ControllerStream);
2547 return core.identical(otherStream[_controller], this[_controller]);
2548 }
2549 }
2550 return _ControllerStream;
2551 });
2552 let _ControllerStream = _ControllerStream$(dart.dynamic);
2553 let _ControllerSubscription$ = dart.generic(function(T) {
2554 class _ControllerSubscription extends _BufferingStreamSubscription$(T) {
2555 _ControllerSubscription($_controller, onData, onError, onDone, cancelOnErr or) {
2556 this[_controller] = $_controller;
2557 super._BufferingStreamSubscription(onData, onError, onDone, cancelOnErro r);
2558 }
2559 [_onCancel]() {
2560 return this[_controller]._recordCancel(this);
2561 }
2562 [_onPause]() {
2563 this[_controller]._recordPause(this);
2564 }
2565 [_onResume]() {
2566 this[_controller]._recordResume(this);
2567 }
2568 }
2569 return _ControllerSubscription;
2570 });
2571 let _ControllerSubscription = _ControllerSubscription$(dart.dynamic);
2572 let _target = Symbol('_target'); 2926 let _target = Symbol('_target');
2573 let _StreamSinkWrapper$ = dart.generic(function(T) { 2927 let _StreamSinkWrapper$ = dart.generic(function(T) {
2574 class _StreamSinkWrapper extends core.Object { 2928 class _StreamSinkWrapper extends core.Object {
2575 _StreamSinkWrapper($_target) { 2929 _StreamSinkWrapper($_target) {
2576 this[_target] = $_target; 2930 this[_target] = $_target;
2577 } 2931 }
2578 add(data) { 2932 add(data) {
2579 this[_target].add(data); 2933 this[_target].add(data);
2580 } 2934 }
2581 addError(error, stackTrace) { 2935 addError(error, stackTrace) {
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
2650 } 3004 }
2651 return _EventSink; 3005 return _EventSink;
2652 }); 3006 });
2653 let _EventSink = _EventSink$(dart.dynamic); 3007 let _EventSink = _EventSink$(dart.dynamic);
2654 let _EventDispatch$ = dart.generic(function(T) { 3008 let _EventDispatch$ = dart.generic(function(T) {
2655 class _EventDispatch extends core.Object { 3009 class _EventDispatch extends core.Object {
2656 } 3010 }
2657 return _EventDispatch; 3011 return _EventDispatch;
2658 }); 3012 });
2659 let _EventDispatch = _EventDispatch$(dart.dynamic); 3013 let _EventDispatch = _EventDispatch$(dart.dynamic);
2660 let _onData = Symbol('_onData');
2661 let _onDone = Symbol('_onDone');
2662 let _cancelFuture = Symbol('_cancelFuture');
2663 let _setPendingEvents = Symbol('_setPendingEvents');
2664 let _extractPending = Symbol('_extractPending');
2665 let _isPaused = Symbol('_isPaused');
2666 let _inCallback = Symbol('_inCallback');
2667 let _guardCallback = Symbol('_guardCallback');
2668 let _decrementPauseCount = Symbol('_decrementPauseCount');
2669 let _mayResumeInput = Symbol('_mayResumeInput');
2670 let _cancel = Symbol('_cancel');
2671 let _isClosed = Symbol('_isClosed');
2672 let _waitsForCancel = Symbol('_waitsForCancel');
2673 let _canFire = Symbol('_canFire');
2674 let _cancelOnError = Symbol('_cancelOnError');
2675 let _incrementPauseCount = Symbol('_incrementPauseCount');
2676 let _addPending = Symbol('_addPending');
2677 let _checkState = Symbol('_checkState');
2678 let _BufferingStreamSubscription$ = dart.generic(function(T) {
2679 class _BufferingStreamSubscription extends core.Object {
2680 _BufferingStreamSubscription(onData, onError, onDone, cancelOnError) {
2681 this[_zone] = Zone.current;
2682 this[_state] = cancelOnError ? _BufferingStreamSubscription._STATE_CANCE L_ON_ERROR : 0;
2683 this[_onData] = null;
2684 this[_onError] = null;
2685 this[_onDone] = null;
2686 this[_cancelFuture] = null;
2687 this[_pending] = null;
2688 this.onData(onData);
2689 this.onError(onError);
2690 this.onDone(onDone);
2691 }
2692 [_setPendingEvents](pendingEvents) {
2693 dart.assert(this[_pending] === null);
2694 if (pendingEvents === null)
2695 return;
2696 this[_pending] = pendingEvents;
2697 if (!dart.notNull(pendingEvents.isEmpty)) {
2698 this[_state] = _BufferingStreamSubscription._STATE_HAS_PENDING;
2699 this[_pending].schedule(this);
2700 }
2701 }
2702 [_extractPending]() {
2703 dart.assert(this[_isCanceled]);
2704 let events = this[_pending];
2705 this[_pending] = null;
2706 return events;
2707 }
2708 onData(handleData) {
2709 if (handleData === null)
2710 handleData = _nullDataHandler;
2711 this[_onData] = this[_zone].registerUnaryCallback(dart.as(handleData, da rt.throw_("Unimplemented type (dynamic) → dynamic")));
2712 }
2713 onError(handleError) {
2714 if (handleError === null)
2715 handleError = _nullErrorHandler;
2716 this[_onError] = _registerErrorHandler(handleError, this[_zone]);
2717 }
2718 onDone(handleDone) {
2719 if (handleDone === null)
2720 handleDone = _nullDoneHandler;
2721 this[_onDone] = this[_zone].registerCallback(handleDone);
2722 }
2723 pause(resumeSignal) {
2724 if (resumeSignal === void 0)
2725 resumeSignal = null;
2726 if (this[_isCanceled])
2727 return;
2728 let wasPaused = this[_isPaused];
2729 let wasInputPaused = this[_isInputPaused];
2730 this[_state] = dart.notNull(this[_state]) + dart.notNull(_BufferingStrea mSubscription._STATE_PAUSE_COUNT) | dart.notNull(_BufferingStreamSubscription._S TATE_INPUT_PAUSED);
2731 if (resumeSignal !== null)
2732 resumeSignal.whenComplete(this.resume);
2733 if (!dart.notNull(wasPaused) && dart.notNull(this[_pending] !== null))
2734 this[_pending].cancelSchedule();
2735 if (!dart.notNull(wasInputPaused) && !dart.notNull(this[_inCallback]))
2736 this[_guardCallback](this[_onPause]);
2737 }
2738 resume() {
2739 if (this[_isCanceled])
2740 return;
2741 if (this[_isPaused]) {
2742 this[_decrementPauseCount]();
2743 if (!dart.notNull(this[_isPaused])) {
2744 if (dart.notNull(this[_hasPending]) && !dart.notNull(this[_pending]. isEmpty)) {
2745 this[_pending].schedule(this);
2746 } else {
2747 dart.assert(this[_mayResumeInput]);
2748 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_I NPUT_PAUSED);
2749 if (!dart.notNull(this[_inCallback]))
2750 this[_guardCallback](this[_onResume]);
2751 }
2752 }
2753 }
2754 }
2755 cancel() {
2756 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_WAIT_FO R_CANCEL);
2757 if (this[_isCanceled])
2758 return this[_cancelFuture];
2759 this[_cancel]();
2760 return this[_cancelFuture];
2761 }
2762 asFuture(futureValue) {
2763 if (futureValue === void 0)
2764 futureValue = null;
2765 let result = new _Future();
2766 this[_onDone] = (() => {
2767 result._complete(futureValue);
2768 }).bind(this);
2769 this[_onError] = ((error, stackTrace) => {
2770 this.cancel();
2771 result._completeError(error, dart.as(stackTrace, core.StackTrace));
2772 }).bind(this);
2773 return result;
2774 }
2775 get [_isInputPaused]() {
2776 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_INPUT_PAUSED)) !== 0;
2777 }
2778 get [_isClosed]() {
2779 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_CLOSED)) !== 0;
2780 }
2781 get [_isCanceled]() {
2782 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_CANCELED)) !== 0;
2783 }
2784 get [_waitsForCancel]() {
2785 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_WAIT_FOR_CANCEL)) !== 0;
2786 }
2787 get [_inCallback]() {
2788 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_IN_CALLBACK)) !== 0;
2789 }
2790 get [_hasPending]() {
2791 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_HAS_PENDING)) !== 0;
2792 }
2793 get [_isPaused]() {
2794 return dart.notNull(this[_state]) >= dart.notNull(_BufferingStreamSubscr iption._STATE_PAUSE_COUNT);
2795 }
2796 get [_canFire]() {
2797 return dart.notNull(this[_state]) < dart.notNull(_BufferingStreamSubscri ption._STATE_IN_CALLBACK);
2798 }
2799 get [_mayResumeInput]() {
2800 return !dart.notNull(this[_isPaused]) && (dart.notNull(this[_pending] == = null) || dart.notNull(this[_pending].isEmpty));
2801 }
2802 get [_cancelOnError]() {
2803 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr iption._STATE_CANCEL_ON_ERROR)) !== 0;
2804 }
2805 get isPaused() {
2806 return this[_isPaused];
2807 }
2808 [_cancel]() {
2809 this[_state] = _BufferingStreamSubscription._STATE_CANCELED;
2810 if (this[_hasPending]) {
2811 this[_pending].cancelSchedule();
2812 }
2813 if (!dart.notNull(this[_inCallback]))
2814 this[_pending] = null;
2815 this[_cancelFuture] = this[_onCancel]();
2816 }
2817 [_incrementPauseCount]() {
2818 this[_state] = dart.notNull(this[_state]) + dart.notNull(_BufferingStrea mSubscription._STATE_PAUSE_COUNT) | dart.notNull(_BufferingStreamSubscription._S TATE_INPUT_PAUSED);
2819 }
2820 [_decrementPauseCount]() {
2821 dart.assert(this[_isPaused]);
2822 this[_state] = _BufferingStreamSubscription._STATE_PAUSE_COUNT;
2823 }
2824 [_add](data) {
2825 dart.assert(!dart.notNull(this[_isClosed]));
2826 if (this[_isCanceled])
2827 return;
2828 if (this[_canFire]) {
2829 this[_sendData](data);
2830 } else {
2831 this[_addPending](new _DelayedData(data));
2832 }
2833 }
2834 [_addError](error, stackTrace) {
2835 if (this[_isCanceled])
2836 return;
2837 if (this[_canFire]) {
2838 this[_sendError](error, stackTrace);
2839 } else {
2840 this[_addPending](new _DelayedError(error, stackTrace));
2841 }
2842 }
2843 [_close]() {
2844 dart.assert(!dart.notNull(this[_isClosed]));
2845 if (this[_isCanceled])
2846 return;
2847 this[_state] = _BufferingStreamSubscription._STATE_CLOSED;
2848 if (this[_canFire]) {
2849 this[_sendDone]();
2850 } else {
2851 this[_addPending](new _DelayedDone());
2852 }
2853 }
2854 [_onPause]() {
2855 dart.assert(this[_isInputPaused]);
2856 }
2857 [_onResume]() {
2858 dart.assert(!dart.notNull(this[_isInputPaused]));
2859 }
2860 [_onCancel]() {
2861 dart.assert(this[_isCanceled]);
2862 return null;
2863 }
2864 [_addPending](event) {
2865 let pending = dart.as(this[_pending], _StreamImplEvents);
2866 if (this[_pending] === null)
2867 pending = this[_pending] = new _StreamImplEvents();
2868 pending.add(event);
2869 if (!dart.notNull(this[_hasPending])) {
2870 this[_state] = _BufferingStreamSubscription._STATE_HAS_PENDING;
2871 if (!dart.notNull(this[_isPaused])) {
2872 this[_pending].schedule(this);
2873 }
2874 }
2875 }
2876 [_sendData](data) {
2877 dart.assert(!dart.notNull(this[_isCanceled]));
2878 dart.assert(!dart.notNull(this[_isPaused]));
2879 dart.assert(!dart.notNull(this[_inCallback]));
2880 let wasInputPaused = this[_isInputPaused];
2881 this[_state] = _BufferingStreamSubscription._STATE_IN_CALLBACK;
2882 this[_zone].runUnaryGuarded(dart.as(this[_onData], dart.throw_("Unimplem ented type (dynamic) → dynamic")), data);
2883 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_IN_CALL BACK);
2884 this[_checkState](wasInputPaused);
2885 }
2886 [_sendError](error, stackTrace) {
2887 dart.assert(!dart.notNull(this[_isCanceled]));
2888 dart.assert(!dart.notNull(this[_isPaused]));
2889 dart.assert(!dart.notNull(this[_inCallback]));
2890 let wasInputPaused = this[_isInputPaused];
2891 // Function sendError: () → void
2892 function sendError() {
2893 if (dart.notNull(this[_isCanceled]) && !dart.notNull(this[_waitsForCan cel]))
2894 return;
2895 this[_state] = _BufferingStreamSubscription._STATE_IN_CALLBACK;
2896 if (dart.is(this[_onError], ZoneBinaryCallback)) {
2897 this[_zone].runBinaryGuarded(dart.as(this[_onError], dart.throw_("Un implemented type (dynamic, dynamic) → dynamic")), error, stackTrace);
2898 } else {
2899 this[_zone].runUnaryGuarded(dart.as(this[_onError], dart.throw_("Uni mplemented type (dynamic) → dynamic")), error);
2900 }
2901 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_IN_CA LLBACK);
2902 }
2903 if (this[_cancelOnError]) {
2904 this[_state] = _BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL;
2905 this[_cancel]();
2906 if (dart.is(this[_cancelFuture], Future)) {
2907 this[_cancelFuture].whenComplete(sendError);
2908 } else {
2909 sendError();
2910 }
2911 } else {
2912 sendError();
2913 this[_checkState](wasInputPaused);
2914 }
2915 }
2916 [_sendDone]() {
2917 dart.assert(!dart.notNull(this[_isCanceled]));
2918 dart.assert(!dart.notNull(this[_isPaused]));
2919 dart.assert(!dart.notNull(this[_inCallback]));
2920 // Function sendDone: () → void
2921 function sendDone() {
2922 if (!dart.notNull(this[_waitsForCancel]))
2923 return;
2924 this[_state] = dart.notNull(_BufferingStreamSubscription._STATE_CANCEL ED) | dart.notNull(_BufferingStreamSubscription._STATE_CLOSED) | dart.notNull(_B ufferingStreamSubscription._STATE_IN_CALLBACK);
2925 this[_zone].runGuarded(this[_onDone]);
2926 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_IN_CA LLBACK);
2927 }
2928 this[_cancel]();
2929 this[_state] = _BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL;
2930 if (dart.is(this[_cancelFuture], Future)) {
2931 this[_cancelFuture].whenComplete(sendDone);
2932 } else {
2933 sendDone();
2934 }
2935 }
2936 [_guardCallback](callback) {
2937 dart.assert(!dart.notNull(this[_inCallback]));
2938 let wasInputPaused = this[_isInputPaused];
2939 this[_state] = _BufferingStreamSubscription._STATE_IN_CALLBACK;
2940 dart.dinvokef(callback);
2941 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_IN_CALL BACK);
2942 this[_checkState](wasInputPaused);
2943 }
2944 [_checkState](wasInputPaused) {
2945 dart.assert(!dart.notNull(this[_inCallback]));
2946 if (dart.notNull(this[_hasPending]) && dart.notNull(this[_pending].isEmp ty)) {
2947 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_HAS_P ENDING);
2948 if (dart.notNull(this[_isInputPaused]) && dart.notNull(this[_mayResume Input])) {
2949 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_INP UT_PAUSED);
2950 }
2951 }
2952 while (true) {
2953 if (this[_isCanceled]) {
2954 this[_pending] = null;
2955 return;
2956 }
2957 let isInputPaused = this[_isInputPaused];
2958 if (wasInputPaused === isInputPaused)
2959 break;
2960 this[_state] = _BufferingStreamSubscription._STATE_IN_CALLBACK;
2961 if (isInputPaused) {
2962 this[_onPause]();
2963 } else {
2964 this[_onResume]();
2965 }
2966 this[_state] = ~dart.notNull(_BufferingStreamSubscription._STATE_IN_CA LLBACK);
2967 wasInputPaused = isInputPaused;
2968 }
2969 if (dart.notNull(this[_hasPending]) && !dart.notNull(this[_isPaused])) {
2970 this[_pending].schedule(this);
2971 }
2972 }
2973 }
2974 _BufferingStreamSubscription._STATE_CANCEL_ON_ERROR = 1;
2975 _BufferingStreamSubscription._STATE_CLOSED = 2;
2976 _BufferingStreamSubscription._STATE_INPUT_PAUSED = 4;
2977 _BufferingStreamSubscription._STATE_CANCELED = 8;
2978 _BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL = 16;
2979 _BufferingStreamSubscription._STATE_IN_CALLBACK = 32;
2980 _BufferingStreamSubscription._STATE_HAS_PENDING = 64;
2981 _BufferingStreamSubscription._STATE_PAUSE_COUNT = 128;
2982 _BufferingStreamSubscription._STATE_PAUSE_COUNT_SHIFT = 7;
2983 return _BufferingStreamSubscription;
2984 });
2985 let _BufferingStreamSubscription = _BufferingStreamSubscription$(dart.dynamic) ;
2986 let _StreamImpl$ = dart.generic(function(T) {
2987 class _StreamImpl extends Stream$(T) {
2988 listen(onData, opt$) {
2989 let onError = opt$.onError === void 0 ? null : opt$.onError;
2990 let onDone = opt$.onDone === void 0 ? null : opt$.onDone;
2991 let cancelOnError = opt$.cancelOnError === void 0 ? null : opt$.cancelOn Error;
2992 cancelOnError = core.identical(true, cancelOnError);
2993 let subscription = this[_createSubscription](onData, onError, onDone, ca ncelOnError);
2994 this[_onListen](subscription);
2995 return dart.as(subscription, StreamSubscription$(T));
2996 }
2997 [_createSubscription](onData, onError, onDone, cancelOnError) {
2998 return new _BufferingStreamSubscription(onData, onError, onDone, cancelO nError);
2999 }
3000 [_onListen](subscription) {}
3001 }
3002 return _StreamImpl;
3003 });
3004 let _StreamImpl = _StreamImpl$(dart.dynamic);
3005 let _isUsed = Symbol('_isUsed'); 3014 let _isUsed = Symbol('_isUsed');
3006 let _GeneratedStreamImpl$ = dart.generic(function(T) { 3015 let _GeneratedStreamImpl$ = dart.generic(function(T) {
3007 class _GeneratedStreamImpl extends _StreamImpl$(T) { 3016 class _GeneratedStreamImpl extends _StreamImpl$(T) {
3008 _GeneratedStreamImpl($_pending) { 3017 _GeneratedStreamImpl($_pending) {
3009 this[_pending] = $_pending; 3018 this[_pending] = $_pending;
3010 this[_isUsed] = false; 3019 this[_isUsed] = false;
3011 super._StreamImpl(); 3020 super._StreamImpl();
3012 } 3021 }
3013 [_createSubscription](onData, onError, onDone, cancelOnError) { 3022 [_createSubscription](onData, onError, onDone, cancelOnError) {
3014 if (this[_isUsed]) 3023 if (this[_isUsed])
3015 throw new core.StateError("Stream has already been listened to."); 3024 throw new core.StateError("Stream has already been listened to.");
3016 this[_isUsed] = true; 3025 this[_isUsed] = true;
3017 return ((_) => { 3026 return ((_) => {
3018 _._setPendingEvents(this[_pending]()); 3027 _._setPendingEvents(this[_pending]());
3019 return _; 3028 return _;
3020 }).bind(this)(new _BufferingStreamSubscription(dart.as(onData, dart.thro w_("Unimplemented type (dynamic) → void")), onError, onDone, cancelOnError)); 3029 }).bind(this)(new _BufferingStreamSubscription(dart.as(onData, dart.thro w_("Unimplemented type (dynamic) → void")), onError, onDone, cancelOnError));
3021 } 3030 }
3022 } 3031 }
3023 return _GeneratedStreamImpl; 3032 return _GeneratedStreamImpl;
3024 }); 3033 });
3025 let _GeneratedStreamImpl = _GeneratedStreamImpl$(dart.dynamic); 3034 let _GeneratedStreamImpl = _GeneratedStreamImpl$(dart.dynamic);
3026 let _iterator = Symbol('_iterator'); 3035 let _iterator = Symbol('_iterator');
3036 let _eventScheduled = Symbol('_eventScheduled');
3037 class _PendingEvents extends core.Object {
3038 _PendingEvents() {
3039 this[_state] = _PendingEvents._STATE_UNSCHEDULED;
3040 }
3041 get isScheduled() {
3042 return this[_state] === _PendingEvents._STATE_SCHEDULED;
3043 }
3044 get [_eventScheduled]() {
3045 return dart.notNull(this[_state]) >= dart.notNull(_PendingEvents._STATE_SC HEDULED);
3046 }
3047 schedule(dispatch) {
3048 if (this.isScheduled)
3049 return;
3050 dart.assert(!dart.notNull(this.isEmpty));
3051 if (this[_eventScheduled]) {
3052 dart.assert(this[_state] === _PendingEvents._STATE_CANCELED);
3053 this[_state] = _PendingEvents._STATE_SCHEDULED;
3054 return;
3055 }
3056 scheduleMicrotask((() => {
3057 let oldState = this[_state];
3058 this[_state] = _PendingEvents._STATE_UNSCHEDULED;
3059 if (oldState === _PendingEvents._STATE_CANCELED)
3060 return;
3061 this.handleNext(dispatch);
3062 }).bind(this));
3063 this[_state] = _PendingEvents._STATE_SCHEDULED;
3064 }
3065 cancelSchedule() {
3066 if (this.isScheduled)
3067 this[_state] = _PendingEvents._STATE_CANCELED;
3068 }
3069 }
3070 _PendingEvents._STATE_UNSCHEDULED = 0;
3071 _PendingEvents._STATE_SCHEDULED = 1;
3072 _PendingEvents._STATE_CANCELED = 3;
3027 let _IterablePendingEvents$ = dart.generic(function(T) { 3073 let _IterablePendingEvents$ = dart.generic(function(T) {
3028 class _IterablePendingEvents extends _PendingEvents { 3074 class _IterablePendingEvents extends _PendingEvents {
3029 _IterablePendingEvents(data) { 3075 _IterablePendingEvents(data) {
3030 this[_iterator] = data.iterator; 3076 this[_iterator] = data.iterator;
3031 super._PendingEvents(); 3077 super._PendingEvents();
3032 } 3078 }
3033 get isEmpty() { 3079 get isEmpty() {
3034 return this[_iterator] === null; 3080 return this[_iterator] === null;
3035 } 3081 }
3036 handleNext(dispatch) { 3082 handleNext(dispatch) {
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
3109 perform(dispatch) { 3155 perform(dispatch) {
3110 dispatch._sendDone(); 3156 dispatch._sendDone();
3111 } 3157 }
3112 get next() { 3158 get next() {
3113 return null; 3159 return null;
3114 } 3160 }
3115 set next(_) { 3161 set next(_) {
3116 throw new core.StateError("No events after a done."); 3162 throw new core.StateError("No events after a done.");
3117 } 3163 }
3118 } 3164 }
3119 let _eventScheduled = Symbol('_eventScheduled');
3120 class _PendingEvents extends core.Object {
3121 _PendingEvents() {
3122 this[_state] = _PendingEvents._STATE_UNSCHEDULED;
3123 }
3124 get isScheduled() {
3125 return this[_state] === _PendingEvents._STATE_SCHEDULED;
3126 }
3127 get [_eventScheduled]() {
3128 return dart.notNull(this[_state]) >= dart.notNull(_PendingEvents._STATE_SC HEDULED);
3129 }
3130 schedule(dispatch) {
3131 if (this.isScheduled)
3132 return;
3133 dart.assert(!dart.notNull(this.isEmpty));
3134 if (this[_eventScheduled]) {
3135 dart.assert(this[_state] === _PendingEvents._STATE_CANCELED);
3136 this[_state] = _PendingEvents._STATE_SCHEDULED;
3137 return;
3138 }
3139 scheduleMicrotask((() => {
3140 let oldState = this[_state];
3141 this[_state] = _PendingEvents._STATE_UNSCHEDULED;
3142 if (oldState === _PendingEvents._STATE_CANCELED)
3143 return;
3144 this.handleNext(dispatch);
3145 }).bind(this));
3146 this[_state] = _PendingEvents._STATE_SCHEDULED;
3147 }
3148 cancelSchedule() {
3149 if (this.isScheduled)
3150 this[_state] = _PendingEvents._STATE_CANCELED;
3151 }
3152 }
3153 _PendingEvents._STATE_UNSCHEDULED = 0;
3154 _PendingEvents._STATE_SCHEDULED = 1;
3155 _PendingEvents._STATE_CANCELED = 3;
3156 class _StreamImplEvents extends _PendingEvents { 3165 class _StreamImplEvents extends _PendingEvents {
3157 _StreamImplEvents() { 3166 _StreamImplEvents() {
3158 this.firstPendingEvent = null; 3167 this.firstPendingEvent = null;
3159 this.lastPendingEvent = null; 3168 this.lastPendingEvent = null;
3160 super._PendingEvents(); 3169 super._PendingEvents();
3161 } 3170 }
3162 get isEmpty() { 3171 get isEmpty() {
3163 return this.lastPendingEvent === null; 3172 return this.lastPendingEvent === null;
3164 } 3173 }
3165 add(event) { 3174 add(event) {
(...skipping 994 matching lines...) Expand 10 before | Expand all | Expand 10 after
4160 return new _isolate_helper.TimerImpl(milliseconds, callback); 4169 return new _isolate_helper.TimerImpl(milliseconds, callback);
4161 } 4170 }
4162 static [_createPeriodicTimer](duration, callback) { 4171 static [_createPeriodicTimer](duration, callback) {
4163 let milliseconds = duration.inMilliseconds; 4172 let milliseconds = duration.inMilliseconds;
4164 if (dart.notNull(milliseconds) < 0) 4173 if (dart.notNull(milliseconds) < 0)
4165 milliseconds = 0; 4174 milliseconds = 0;
4166 return new _isolate_helper.TimerImpl.periodic(milliseconds, callback); 4175 return new _isolate_helper.TimerImpl.periodic(milliseconds, callback);
4167 } 4176 }
4168 } 4177 }
4169 dart.defineNamedConstructor(Timer, 'periodic'); 4178 dart.defineNamedConstructor(Timer, 'periodic');
4170 class AsyncError extends core.Object {
4171 AsyncError(error, stackTrace) {
4172 this.error = error;
4173 this.stackTrace = stackTrace;
4174 }
4175 toString() {
4176 return dart.as(dart.dinvoke(this.error, 'toString'), core.String);
4177 }
4178 }
4179 class _ZoneFunction extends core.Object { 4179 class _ZoneFunction extends core.Object {
4180 _ZoneFunction(zone, function) { 4180 _ZoneFunction(zone, function) {
4181 this.zone = zone; 4181 this.zone = zone;
4182 this['function'] = function; 4182 this['function'] = function;
4183 } 4183 }
4184 } 4184 }
4185 class ZoneSpecification extends core.Object { 4185 class ZoneSpecification extends core.Object {
4186 ZoneSpecification(opt$) { 4186 ZoneSpecification(opt$) {
4187 return new _ZoneSpecification(opt$); 4187 return new _ZoneSpecification(opt$);
4188 } 4188 }
(...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after
4910 } else { 4910 } else {
4911 return zone.run(body); 4911 return zone.run(body);
4912 } 4912 }
4913 } 4913 }
4914 dart.copyProperties(exports, { 4914 dart.copyProperties(exports, {
4915 get _hasDocument() { 4915 get _hasDocument() {
4916 return dart.equals(typeof document, 'object'); 4916 return dart.equals(typeof document, 'object');
4917 } 4917 }
4918 }); 4918 });
4919 // Exports: 4919 // Exports:
4920 exports.AsyncError = AsyncError;
4921 exports.Stream = Stream;
4922 exports.Stream$ = Stream$;
4920 exports.DeferredLibrary = DeferredLibrary; 4923 exports.DeferredLibrary = DeferredLibrary;
4921 exports.DeferredLoadException = DeferredLoadException; 4924 exports.DeferredLoadException = DeferredLoadException;
4922 exports.Future = Future; 4925 exports.Future = Future;
4923 exports.Future$ = Future$; 4926 exports.Future$ = Future$;
4924 exports.TimeoutException = TimeoutException; 4927 exports.TimeoutException = TimeoutException;
4925 exports.Completer = Completer; 4928 exports.Completer = Completer;
4926 exports.Completer$ = Completer$; 4929 exports.Completer$ = Completer$;
4927 exports.scheduleMicrotask = scheduleMicrotask; 4930 exports.scheduleMicrotask = scheduleMicrotask;
4928 exports.Stream = Stream;
4929 exports.Stream$ = Stream$;
4930 exports.StreamSubscription = StreamSubscription; 4931 exports.StreamSubscription = StreamSubscription;
4931 exports.StreamSubscription$ = StreamSubscription$; 4932 exports.StreamSubscription$ = StreamSubscription$;
4932 exports.EventSink = EventSink; 4933 exports.EventSink = EventSink;
4933 exports.EventSink$ = EventSink$; 4934 exports.EventSink$ = EventSink$;
4934 exports.StreamView = StreamView; 4935 exports.StreamView = StreamView;
4935 exports.StreamView$ = StreamView$; 4936 exports.StreamView$ = StreamView$;
4936 exports.StreamConsumer = StreamConsumer; 4937 exports.StreamConsumer = StreamConsumer;
4937 exports.StreamConsumer$ = StreamConsumer$; 4938 exports.StreamConsumer$ = StreamConsumer$;
4938 exports.StreamSink = StreamSink; 4939 exports.StreamSink = StreamSink;
4939 exports.StreamSink$ = StreamSink$; 4940 exports.StreamSink$ = StreamSink$;
4940 exports.StreamTransformer = StreamTransformer; 4941 exports.StreamTransformer = StreamTransformer;
4941 exports.StreamTransformer$ = StreamTransformer$; 4942 exports.StreamTransformer$ = StreamTransformer$;
4942 exports.StreamIterator = StreamIterator; 4943 exports.StreamIterator = StreamIterator;
4943 exports.StreamIterator$ = StreamIterator$; 4944 exports.StreamIterator$ = StreamIterator$;
4944 exports.StreamController = StreamController; 4945 exports.StreamController = StreamController;
4945 exports.StreamController$ = StreamController$; 4946 exports.StreamController$ = StreamController$;
4946 exports.Timer = Timer; 4947 exports.Timer = Timer;
4947 exports.AsyncError = AsyncError;
4948 exports.ZoneSpecification = ZoneSpecification; 4948 exports.ZoneSpecification = ZoneSpecification;
4949 exports.ZoneDelegate = ZoneDelegate; 4949 exports.ZoneDelegate = ZoneDelegate;
4950 exports.Zone = Zone; 4950 exports.Zone = Zone;
4951 exports.runZoned = runZoned; 4951 exports.runZoned = runZoned;
4952 })(async || (async = {})); 4952 })(async || (async = {}));
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698