OLD | NEW |
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.dcall(errorHandler, error, stackTrace); | 7 return dart.dcall(errorHandler, error, stackTrace); |
8 } else { | 8 } else { |
9 return dart.dcall(errorHandler, error); | 9 return dart.dcall(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, __CastType0)); | 17 return zone.registerUnaryCallback(dart.as(errorHandler, __CastType0)); |
18 } | 18 } |
19 } | 19 } |
20 let _getBestStackTrace = Symbol('_getBestStackTrace'); | |
21 class AsyncError extends core.Object { | 20 class AsyncError extends core.Object { |
22 AsyncError(error, stackTrace) { | 21 AsyncError(error, stackTrace) { |
23 this.error = error; | 22 this.error = error; |
24 this.stackTrace = stackTrace; | 23 this.stackTrace = stackTrace; |
25 } | 24 } |
26 toString() { | 25 toString() { |
27 return dart.toString(this.error); | 26 return dart.toString(this.error); |
28 } | 27 } |
29 } | 28 } |
30 AsyncError[dart.implements] = () => [core.Error]; | 29 AsyncError[dart.implements] = () => [core.Error]; |
31 class _UncaughtAsyncError extends AsyncError { | 30 class _UncaughtAsyncError extends AsyncError { |
32 _UncaughtAsyncError(error, stackTrace) { | 31 _UncaughtAsyncError(error, stackTrace) { |
33 super.AsyncError(error, _UncaughtAsyncError[_getBestStackTrace](error, sta
ckTrace)); | 32 super.AsyncError(error, _UncaughtAsyncError._getBestStackTrace(error, stac
kTrace)); |
34 } | 33 } |
35 static [_getBestStackTrace](error, stackTrace) { | 34 static _getBestStackTrace(error, stackTrace) { |
36 if (stackTrace != null) | 35 if (stackTrace != null) |
37 return stackTrace; | 36 return stackTrace; |
38 if (dart.is(error, core.Error)) { | 37 if (dart.is(error, core.Error)) { |
39 return dart.as(dart.dload(error, 'stackTrace'), core.StackTrace); | 38 return dart.as(dart.dload(error, 'stackTrace'), core.StackTrace); |
40 } | 39 } |
41 return null; | 40 return null; |
42 } | 41 } |
43 toString() { | 42 toString() { |
44 let result = `Uncaught Error: ${this.error}`; | 43 let result = `Uncaught Error: ${this.error}`; |
45 if (this.stackTrace != null) { | 44 if (this.stackTrace != null) { |
(...skipping 784 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
830 let _next = Symbol('_next'); | 829 let _next = Symbol('_next'); |
831 let _previous = Symbol('_previous'); | 830 let _previous = Symbol('_previous'); |
832 class _BroadcastSubscriptionLink extends core.Object { | 831 class _BroadcastSubscriptionLink extends core.Object { |
833 _BroadcastSubscriptionLink() { | 832 _BroadcastSubscriptionLink() { |
834 this[_next] = null; | 833 this[_next] = null; |
835 this[_previous] = null; | 834 this[_previous] = null; |
836 } | 835 } |
837 } | 836 } |
838 let _eventState = Symbol('_eventState'); | 837 let _eventState = Symbol('_eventState'); |
839 let _expectsEvent = Symbol('_expectsEvent'); | 838 let _expectsEvent = Symbol('_expectsEvent'); |
840 let _STATE_EVENT_ID = Symbol('_STATE_EVENT_ID'); | |
841 let _toggleEventId = Symbol('_toggleEventId'); | 839 let _toggleEventId = Symbol('_toggleEventId'); |
842 let _isFiring = Symbol('_isFiring'); | 840 let _isFiring = Symbol('_isFiring'); |
843 let _STATE_FIRING = Symbol('_STATE_FIRING'); | |
844 let _setRemoveAfterFiring = Symbol('_setRemoveAfterFiring'); | 841 let _setRemoveAfterFiring = Symbol('_setRemoveAfterFiring'); |
845 let _STATE_REMOVE_AFTER_FIRING = Symbol('_STATE_REMOVE_AFTER_FIRING'); | |
846 let _removeAfterFiring = Symbol('_removeAfterFiring'); | 842 let _removeAfterFiring = Symbol('_removeAfterFiring'); |
847 let _onPause = Symbol('_onPause'); | 843 let _onPause = Symbol('_onPause'); |
848 let _onResume = Symbol('_onResume'); | 844 let _onResume = Symbol('_onResume'); |
849 let _onCancel = Symbol('_onCancel'); | 845 let _onCancel = Symbol('_onCancel'); |
850 let _recordCancel = Symbol('_recordCancel'); | 846 let _recordCancel = Symbol('_recordCancel'); |
851 let _recordPause = Symbol('_recordPause'); | 847 let _recordPause = Symbol('_recordPause'); |
852 let _recordResume = Symbol('_recordResume'); | 848 let _recordResume = Symbol('_recordResume'); |
853 let _STATE_CANCEL_ON_ERROR = Symbol('_STATE_CANCEL_ON_ERROR'); | |
854 let _zone = Symbol('_zone'); | 849 let _zone = Symbol('_zone'); |
855 let _state = Symbol('_state'); | 850 let _state = Symbol('_state'); |
856 let _onData = Symbol('_onData'); | 851 let _onData = Symbol('_onData'); |
857 let _onError = Symbol('_onError'); | 852 let _onError = Symbol('_onError'); |
858 let _onDone = Symbol('_onDone'); | 853 let _onDone = Symbol('_onDone'); |
859 let _cancelFuture = Symbol('_cancelFuture'); | 854 let _cancelFuture = Symbol('_cancelFuture'); |
860 let _pending = Symbol('_pending'); | 855 let _pending = Symbol('_pending'); |
861 let _setPendingEvents = Symbol('_setPendingEvents'); | 856 let _setPendingEvents = Symbol('_setPendingEvents'); |
862 let _STATE_HAS_PENDING = Symbol('_STATE_HAS_PENDING'); | |
863 let _extractPending = Symbol('_extractPending'); | 857 let _extractPending = Symbol('_extractPending'); |
864 let _isCanceled = Symbol('_isCanceled'); | 858 let _isCanceled = Symbol('_isCanceled'); |
865 let _isPaused = Symbol('_isPaused'); | 859 let _isPaused = Symbol('_isPaused'); |
866 let _isInputPaused = Symbol('_isInputPaused'); | 860 let _isInputPaused = Symbol('_isInputPaused'); |
867 let _STATE_PAUSE_COUNT = Symbol('_STATE_PAUSE_COUNT'); | |
868 let _STATE_INPUT_PAUSED = Symbol('_STATE_INPUT_PAUSED'); | |
869 let _inCallback = Symbol('_inCallback'); | 861 let _inCallback = Symbol('_inCallback'); |
870 let _guardCallback = Symbol('_guardCallback'); | 862 let _guardCallback = Symbol('_guardCallback'); |
871 let _decrementPauseCount = Symbol('_decrementPauseCount'); | 863 let _decrementPauseCount = Symbol('_decrementPauseCount'); |
872 let _hasPending = Symbol('_hasPending'); | 864 let _hasPending = Symbol('_hasPending'); |
873 let _mayResumeInput = Symbol('_mayResumeInput'); | 865 let _mayResumeInput = Symbol('_mayResumeInput'); |
874 let _STATE_WAIT_FOR_CANCEL = Symbol('_STATE_WAIT_FOR_CANCEL'); | |
875 let _cancel = Symbol('_cancel'); | 866 let _cancel = Symbol('_cancel'); |
876 let _isClosed = Symbol('_isClosed'); | 867 let _isClosed = Symbol('_isClosed'); |
877 let _STATE_CLOSED = Symbol('_STATE_CLOSED'); | |
878 let _STATE_CANCELED = Symbol('_STATE_CANCELED'); | |
879 let _waitsForCancel = Symbol('_waitsForCancel'); | 868 let _waitsForCancel = Symbol('_waitsForCancel'); |
880 let _STATE_IN_CALLBACK = Symbol('_STATE_IN_CALLBACK'); | |
881 let _canFire = Symbol('_canFire'); | 869 let _canFire = Symbol('_canFire'); |
882 let _cancelOnError = Symbol('_cancelOnError'); | 870 let _cancelOnError = Symbol('_cancelOnError'); |
883 let _incrementPauseCount = Symbol('_incrementPauseCount'); | 871 let _incrementPauseCount = Symbol('_incrementPauseCount'); |
884 let _sendData = Symbol('_sendData'); | 872 let _sendData = Symbol('_sendData'); |
885 let _addPending = Symbol('_addPending'); | 873 let _addPending = Symbol('_addPending'); |
886 let _sendError = Symbol('_sendError'); | 874 let _sendError = Symbol('_sendError'); |
887 let _close = Symbol('_close'); | 875 let _close = Symbol('_close'); |
888 let _sendDone = Symbol('_sendDone'); | 876 let _sendDone = Symbol('_sendDone'); |
889 let _checkState = Symbol('_checkState'); | 877 let _checkState = Symbol('_checkState'); |
890 let _BufferingStreamSubscription$ = dart.generic(function(T) { | 878 let _BufferingStreamSubscription$ = dart.generic(function(T) { |
891 class _BufferingStreamSubscription extends core.Object { | 879 class _BufferingStreamSubscription extends core.Object { |
892 _BufferingStreamSubscription(onData, onError, onDone, cancelOnError) { | 880 _BufferingStreamSubscription(onData, onError, onDone, cancelOnError) { |
893 this[_zone] = Zone.current; | 881 this[_zone] = Zone.current; |
894 this[_state] = cancelOnError ? _BufferingStreamSubscription[_STATE_CANCE
L_ON_ERROR] : 0; | 882 this[_state] = cancelOnError ? _BufferingStreamSubscription._STATE_CANCE
L_ON_ERROR : 0; |
895 this[_onData] = null; | 883 this[_onData] = null; |
896 this[_onError] = null; | 884 this[_onError] = null; |
897 this[_onDone] = null; | 885 this[_onDone] = null; |
898 this[_cancelFuture] = null; | 886 this[_cancelFuture] = null; |
899 this[_pending] = null; | 887 this[_pending] = null; |
900 this.onData(onData); | 888 this.onData(onData); |
901 this.onError(onError); | 889 this.onError(onError); |
902 this.onDone(onDone); | 890 this.onDone(onDone); |
903 } | 891 } |
904 [_setPendingEvents](pendingEvents) { | 892 [_setPendingEvents](pendingEvents) { |
905 dart.assert(this[_pending] == null); | 893 dart.assert(this[_pending] == null); |
906 if (pendingEvents == null) | 894 if (pendingEvents == null) |
907 return; | 895 return; |
908 this[_pending] = pendingEvents; | 896 this[_pending] = pendingEvents; |
909 if (!dart.notNull(pendingEvents.isEmpty)) { | 897 if (!dart.notNull(pendingEvents.isEmpty)) { |
910 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription[_STATE_HAS_PENDING]); | 898 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription._STATE_HAS_PENDING); |
911 this[_pending].schedule(this); | 899 this[_pending].schedule(this); |
912 } | 900 } |
913 } | 901 } |
914 [_extractPending]() { | 902 [_extractPending]() { |
915 dart.assert(this[_isCanceled]); | 903 dart.assert(this[_isCanceled]); |
916 let events = this[_pending]; | 904 let events = this[_pending]; |
917 this[_pending] = null; | 905 this[_pending] = null; |
918 return events; | 906 return events; |
919 } | 907 } |
920 onData(handleData) { | 908 onData(handleData) { |
(...skipping 11 matching lines...) Expand all Loading... |
932 handleDone = _nullDoneHandler; | 920 handleDone = _nullDoneHandler; |
933 this[_onDone] = this[_zone].registerCallback(handleDone); | 921 this[_onDone] = this[_zone].registerCallback(handleDone); |
934 } | 922 } |
935 pause(resumeSignal) { | 923 pause(resumeSignal) { |
936 if (resumeSignal === void 0) | 924 if (resumeSignal === void 0) |
937 resumeSignal = null; | 925 resumeSignal = null; |
938 if (this[_isCanceled]) | 926 if (this[_isCanceled]) |
939 return; | 927 return; |
940 let wasPaused = this[_isPaused]; | 928 let wasPaused = this[_isPaused]; |
941 let wasInputPaused = this[_isInputPaused]; | 929 let wasInputPaused = this[_isInputPaused]; |
942 this[_state] = dart.notNull(this[_state]) + dart.notNull(_BufferingStrea
mSubscription[_STATE_PAUSE_COUNT]) | dart.notNull(_BufferingStreamSubscription[_
STATE_INPUT_PAUSED]); | 930 this[_state] = dart.notNull(this[_state]) + dart.notNull(_BufferingStrea
mSubscription._STATE_PAUSE_COUNT) | dart.notNull(_BufferingStreamSubscription._S
TATE_INPUT_PAUSED); |
943 if (resumeSignal != null) | 931 if (resumeSignal != null) |
944 resumeSignal.whenComplete(this.resume.bind(this)); | 932 resumeSignal.whenComplete(this.resume.bind(this)); |
945 if (!dart.notNull(wasPaused) && dart.notNull(this[_pending] != null)) | 933 if (!dart.notNull(wasPaused) && dart.notNull(this[_pending] != null)) |
946 this[_pending].cancelSchedule(); | 934 this[_pending].cancelSchedule(); |
947 if (!dart.notNull(wasInputPaused) && !dart.notNull(this[_inCallback])) | 935 if (!dart.notNull(wasInputPaused) && !dart.notNull(this[_inCallback])) |
948 this[_guardCallback](this[_onPause].bind(this)); | 936 this[_guardCallback](this[_onPause].bind(this)); |
949 } | 937 } |
950 resume() { | 938 resume() { |
951 if (this[_isCanceled]) | 939 if (this[_isCanceled]) |
952 return; | 940 return; |
953 if (this[_isPaused]) { | 941 if (this[_isPaused]) { |
954 this[_decrementPauseCount](); | 942 this[_decrementPauseCount](); |
955 if (!dart.notNull(this[_isPaused])) { | 943 if (!dart.notNull(this[_isPaused])) { |
956 if (dart.notNull(this[_hasPending]) && !dart.notNull(this[_pending].
isEmpty)) { | 944 if (dart.notNull(this[_hasPending]) && !dart.notNull(this[_pending].
isEmpty)) { |
957 this[_pending].schedule(this); | 945 this[_pending].schedule(this); |
958 } else { | 946 } else { |
959 dart.assert(this[_mayResumeInput]); | 947 dart.assert(this[_mayResumeInput]); |
960 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_Bufferi
ngStreamSubscription[_STATE_INPUT_PAUSED]); | 948 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_Bufferi
ngStreamSubscription._STATE_INPUT_PAUSED); |
961 if (!dart.notNull(this[_inCallback])) | 949 if (!dart.notNull(this[_inCallback])) |
962 this[_guardCallback](this[_onResume].bind(this)); | 950 this[_guardCallback](this[_onResume].bind(this)); |
963 } | 951 } |
964 } | 952 } |
965 } | 953 } |
966 } | 954 } |
967 cancel() { | 955 cancel() { |
968 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStre
amSubscription[_STATE_WAIT_FOR_CANCEL]); | 956 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStre
amSubscription._STATE_WAIT_FOR_CANCEL); |
969 if (this[_isCanceled]) | 957 if (this[_isCanceled]) |
970 return this[_cancelFuture]; | 958 return this[_cancelFuture]; |
971 this[_cancel](); | 959 this[_cancel](); |
972 return this[_cancelFuture]; | 960 return this[_cancelFuture]; |
973 } | 961 } |
974 asFuture(futureValue) { | 962 asFuture(futureValue) { |
975 if (futureValue === void 0) | 963 if (futureValue === void 0) |
976 futureValue = null; | 964 futureValue = null; |
977 let result = new (_Future$(T))(); | 965 let result = new (_Future$(T))(); |
978 this[_onDone] = () => { | 966 this[_onDone] = () => { |
979 result[_complete](futureValue); | 967 result[_complete](futureValue); |
980 }; | 968 }; |
981 this[_onError] = ((error, stackTrace) => { | 969 this[_onError] = ((error, stackTrace) => { |
982 this.cancel(); | 970 this.cancel(); |
983 result[_completeError](error, dart.as(stackTrace, core.StackTrace)); | 971 result[_completeError](error, dart.as(stackTrace, core.StackTrace)); |
984 }).bind(this); | 972 }).bind(this); |
985 return result; | 973 return result; |
986 } | 974 } |
987 get [_isInputPaused]() { | 975 get [_isInputPaused]() { |
988 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption[_STATE_INPUT_PAUSED])) != 0; | 976 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption._STATE_INPUT_PAUSED)) != 0; |
989 } | 977 } |
990 get [_isClosed]() { | 978 get [_isClosed]() { |
991 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption[_STATE_CLOSED])) != 0; | 979 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption._STATE_CLOSED)) != 0; |
992 } | 980 } |
993 get [_isCanceled]() { | 981 get [_isCanceled]() { |
994 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption[_STATE_CANCELED])) != 0; | 982 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption._STATE_CANCELED)) != 0; |
995 } | 983 } |
996 get [_waitsForCancel]() { | 984 get [_waitsForCancel]() { |
997 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption[_STATE_WAIT_FOR_CANCEL])) != 0; | 985 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption._STATE_WAIT_FOR_CANCEL)) != 0; |
998 } | 986 } |
999 get [_inCallback]() { | 987 get [_inCallback]() { |
1000 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption[_STATE_IN_CALLBACK])) != 0; | 988 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption._STATE_IN_CALLBACK)) != 0; |
1001 } | 989 } |
1002 get [_hasPending]() { | 990 get [_hasPending]() { |
1003 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption[_STATE_HAS_PENDING])) != 0; | 991 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption._STATE_HAS_PENDING)) != 0; |
1004 } | 992 } |
1005 get [_isPaused]() { | 993 get [_isPaused]() { |
1006 return dart.notNull(this[_state]) >= dart.notNull(_BufferingStreamSubscr
iption[_STATE_PAUSE_COUNT]); | 994 return dart.notNull(this[_state]) >= dart.notNull(_BufferingStreamSubscr
iption._STATE_PAUSE_COUNT); |
1007 } | 995 } |
1008 get [_canFire]() { | 996 get [_canFire]() { |
1009 return dart.notNull(this[_state]) < dart.notNull(_BufferingStreamSubscri
ption[_STATE_IN_CALLBACK]); | 997 return dart.notNull(this[_state]) < dart.notNull(_BufferingStreamSubscri
ption._STATE_IN_CALLBACK); |
1010 } | 998 } |
1011 get [_mayResumeInput]() { | 999 get [_mayResumeInput]() { |
1012 return !dart.notNull(this[_isPaused]) && (dart.notNull(this[_pending] ==
null) || dart.notNull(this[_pending].isEmpty)); | 1000 return !dart.notNull(this[_isPaused]) && (dart.notNull(this[_pending] ==
null) || dart.notNull(this[_pending].isEmpty)); |
1013 } | 1001 } |
1014 get [_cancelOnError]() { | 1002 get [_cancelOnError]() { |
1015 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption[_STATE_CANCEL_ON_ERROR])) != 0; | 1003 return (dart.notNull(this[_state]) & dart.notNull(_BufferingStreamSubscr
iption._STATE_CANCEL_ON_ERROR)) != 0; |
1016 } | 1004 } |
1017 get isPaused() { | 1005 get isPaused() { |
1018 return this[_isPaused]; | 1006 return this[_isPaused]; |
1019 } | 1007 } |
1020 [_cancel]() { | 1008 [_cancel]() { |
1021 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription[_STATE_CANCELED]); | 1009 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription._STATE_CANCELED); |
1022 if (this[_hasPending]) { | 1010 if (this[_hasPending]) { |
1023 this[_pending].cancelSchedule(); | 1011 this[_pending].cancelSchedule(); |
1024 } | 1012 } |
1025 if (!dart.notNull(this[_inCallback])) | 1013 if (!dart.notNull(this[_inCallback])) |
1026 this[_pending] = null; | 1014 this[_pending] = null; |
1027 this[_cancelFuture] = this[_onCancel](); | 1015 this[_cancelFuture] = this[_onCancel](); |
1028 } | 1016 } |
1029 [_incrementPauseCount]() { | 1017 [_incrementPauseCount]() { |
1030 this[_state] = dart.notNull(this[_state]) + dart.notNull(_BufferingStrea
mSubscription[_STATE_PAUSE_COUNT]) | dart.notNull(_BufferingStreamSubscription[_
STATE_INPUT_PAUSED]); | 1018 this[_state] = dart.notNull(this[_state]) + dart.notNull(_BufferingStrea
mSubscription._STATE_PAUSE_COUNT) | dart.notNull(_BufferingStreamSubscription._S
TATE_INPUT_PAUSED); |
1031 } | 1019 } |
1032 [_decrementPauseCount]() { | 1020 [_decrementPauseCount]() { |
1033 dart.assert(this[_isPaused]); | 1021 dart.assert(this[_isPaused]); |
1034 this[_state] = dart.notNull(this[_state]) - dart.notNull(_BufferingStrea
mSubscription[_STATE_PAUSE_COUNT]); | 1022 this[_state] = dart.notNull(this[_state]) - dart.notNull(_BufferingStrea
mSubscription._STATE_PAUSE_COUNT); |
1035 } | 1023 } |
1036 [_add](data) { | 1024 [_add](data) { |
1037 dart.assert(!dart.notNull(this[_isClosed])); | 1025 dart.assert(!dart.notNull(this[_isClosed])); |
1038 if (this[_isCanceled]) | 1026 if (this[_isCanceled]) |
1039 return; | 1027 return; |
1040 if (this[_canFire]) { | 1028 if (this[_canFire]) { |
1041 this[_sendData](data); | 1029 this[_sendData](data); |
1042 } else { | 1030 } else { |
1043 this[_addPending](new _DelayedData(data)); | 1031 this[_addPending](new _DelayedData(data)); |
1044 } | 1032 } |
1045 } | 1033 } |
1046 [_addError](error, stackTrace) { | 1034 [_addError](error, stackTrace) { |
1047 if (this[_isCanceled]) | 1035 if (this[_isCanceled]) |
1048 return; | 1036 return; |
1049 if (this[_canFire]) { | 1037 if (this[_canFire]) { |
1050 this[_sendError](error, stackTrace); | 1038 this[_sendError](error, stackTrace); |
1051 } else { | 1039 } else { |
1052 this[_addPending](new _DelayedError(error, stackTrace)); | 1040 this[_addPending](new _DelayedError(error, stackTrace)); |
1053 } | 1041 } |
1054 } | 1042 } |
1055 [_close]() { | 1043 [_close]() { |
1056 dart.assert(!dart.notNull(this[_isClosed])); | 1044 dart.assert(!dart.notNull(this[_isClosed])); |
1057 if (this[_isCanceled]) | 1045 if (this[_isCanceled]) |
1058 return; | 1046 return; |
1059 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription[_STATE_CLOSED]); | 1047 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription._STATE_CLOSED); |
1060 if (this[_canFire]) { | 1048 if (this[_canFire]) { |
1061 this[_sendDone](); | 1049 this[_sendDone](); |
1062 } else { | 1050 } else { |
1063 this[_addPending](dart.const(new _DelayedDone())); | 1051 this[_addPending](dart.const(new _DelayedDone())); |
1064 } | 1052 } |
1065 } | 1053 } |
1066 [_onPause]() { | 1054 [_onPause]() { |
1067 dart.assert(this[_isInputPaused]); | 1055 dart.assert(this[_isInputPaused]); |
1068 } | 1056 } |
1069 [_onResume]() { | 1057 [_onResume]() { |
1070 dart.assert(!dart.notNull(this[_isInputPaused])); | 1058 dart.assert(!dart.notNull(this[_isInputPaused])); |
1071 } | 1059 } |
1072 [_onCancel]() { | 1060 [_onCancel]() { |
1073 dart.assert(this[_isCanceled]); | 1061 dart.assert(this[_isCanceled]); |
1074 return null; | 1062 return null; |
1075 } | 1063 } |
1076 [_addPending](event) { | 1064 [_addPending](event) { |
1077 let pending = dart.as(this[_pending], _StreamImplEvents); | 1065 let pending = dart.as(this[_pending], _StreamImplEvents); |
1078 if (this[_pending] == null) | 1066 if (this[_pending] == null) |
1079 pending = this[_pending] = new _StreamImplEvents(); | 1067 pending = this[_pending] = new _StreamImplEvents(); |
1080 pending.add(event); | 1068 pending.add(event); |
1081 if (!dart.notNull(this[_hasPending])) { | 1069 if (!dart.notNull(this[_hasPending])) { |
1082 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription[_STATE_HAS_PENDING]); | 1070 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription._STATE_HAS_PENDING); |
1083 if (!dart.notNull(this[_isPaused])) { | 1071 if (!dart.notNull(this[_isPaused])) { |
1084 this[_pending].schedule(this); | 1072 this[_pending].schedule(this); |
1085 } | 1073 } |
1086 } | 1074 } |
1087 } | 1075 } |
1088 [_sendData](data) { | 1076 [_sendData](data) { |
1089 dart.assert(!dart.notNull(this[_isCanceled])); | 1077 dart.assert(!dart.notNull(this[_isCanceled])); |
1090 dart.assert(!dart.notNull(this[_isPaused])); | 1078 dart.assert(!dart.notNull(this[_isPaused])); |
1091 dart.assert(!dart.notNull(this[_inCallback])); | 1079 dart.assert(!dart.notNull(this[_inCallback])); |
1092 let wasInputPaused = this[_isInputPaused]; | 1080 let wasInputPaused = this[_isInputPaused]; |
1093 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription[_STATE_IN_CALLBACK]); | 1081 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription._STATE_IN_CALLBACK); |
1094 this[_zone].runUnaryGuarded(this[_onData], data); | 1082 this[_zone].runUnaryGuarded(this[_onData], data); |
1095 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStre
amSubscription[_STATE_IN_CALLBACK]); | 1083 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStre
amSubscription._STATE_IN_CALLBACK); |
1096 this[_checkState](wasInputPaused); | 1084 this[_checkState](wasInputPaused); |
1097 } | 1085 } |
1098 [_sendError](error, stackTrace) { | 1086 [_sendError](error, stackTrace) { |
1099 dart.assert(!dart.notNull(this[_isCanceled])); | 1087 dart.assert(!dart.notNull(this[_isCanceled])); |
1100 dart.assert(!dart.notNull(this[_isPaused])); | 1088 dart.assert(!dart.notNull(this[_isPaused])); |
1101 dart.assert(!dart.notNull(this[_inCallback])); | 1089 dart.assert(!dart.notNull(this[_inCallback])); |
1102 let wasInputPaused = this[_isInputPaused]; | 1090 let wasInputPaused = this[_isInputPaused]; |
1103 // Function sendError: () → void | 1091 // Function sendError: () → void |
1104 function sendError() { | 1092 function sendError() { |
1105 if (dart.notNull(this[_isCanceled]) && !dart.notNull(this[_waitsForCan
cel])) | 1093 if (dart.notNull(this[_isCanceled]) && !dart.notNull(this[_waitsForCan
cel])) |
1106 return; | 1094 return; |
1107 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription[_STATE_IN_CALLBACK]); | 1095 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription._STATE_IN_CALLBACK); |
1108 if (dart.is(this[_onError], ZoneBinaryCallback)) { | 1096 if (dart.is(this[_onError], ZoneBinaryCallback)) { |
1109 this[_zone].runBinaryGuarded(dart.as(this[_onError], __CastType24),
error, stackTrace); | 1097 this[_zone].runBinaryGuarded(dart.as(this[_onError], __CastType24),
error, stackTrace); |
1110 } else { | 1098 } else { |
1111 this[_zone].runUnaryGuarded(dart.as(this[_onError], __CastType27), e
rror); | 1099 this[_zone].runUnaryGuarded(dart.as(this[_onError], __CastType27), e
rror); |
1112 } | 1100 } |
1113 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingSt
reamSubscription[_STATE_IN_CALLBACK]); | 1101 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingSt
reamSubscription._STATE_IN_CALLBACK); |
1114 } | 1102 } |
1115 if (this[_cancelOnError]) { | 1103 if (this[_cancelOnError]) { |
1116 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription[_STATE_WAIT_FOR_CANCEL]); | 1104 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription._STATE_WAIT_FOR_CANCEL); |
1117 this[_cancel](); | 1105 this[_cancel](); |
1118 if (dart.is(this[_cancelFuture], Future)) { | 1106 if (dart.is(this[_cancelFuture], Future)) { |
1119 this[_cancelFuture].whenComplete(sendError); | 1107 this[_cancelFuture].whenComplete(sendError); |
1120 } else { | 1108 } else { |
1121 sendError(); | 1109 sendError(); |
1122 } | 1110 } |
1123 } else { | 1111 } else { |
1124 sendError(); | 1112 sendError(); |
1125 this[_checkState](wasInputPaused); | 1113 this[_checkState](wasInputPaused); |
1126 } | 1114 } |
1127 } | 1115 } |
1128 [_sendDone]() { | 1116 [_sendDone]() { |
1129 dart.assert(!dart.notNull(this[_isCanceled])); | 1117 dart.assert(!dart.notNull(this[_isCanceled])); |
1130 dart.assert(!dart.notNull(this[_isPaused])); | 1118 dart.assert(!dart.notNull(this[_isPaused])); |
1131 dart.assert(!dart.notNull(this[_inCallback])); | 1119 dart.assert(!dart.notNull(this[_inCallback])); |
1132 // Function sendDone: () → void | 1120 // Function sendDone: () → void |
1133 function sendDone() { | 1121 function sendDone() { |
1134 if (!dart.notNull(this[_waitsForCancel])) | 1122 if (!dart.notNull(this[_waitsForCancel])) |
1135 return; | 1123 return; |
1136 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription[_STATE_CANCELED]) | dart.notNull(_BufferingStreamSubscription[_S
TATE_CLOSED]) | dart.notNull(_BufferingStreamSubscription[_STATE_IN_CALLBACK]); | 1124 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStr
eamSubscription._STATE_CANCELED) | dart.notNull(_BufferingStreamSubscription._ST
ATE_CLOSED) | dart.notNull(_BufferingStreamSubscription._STATE_IN_CALLBACK); |
1137 this[_zone].runGuarded(this[_onDone]); | 1125 this[_zone].runGuarded(this[_onDone]); |
1138 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingSt
reamSubscription[_STATE_IN_CALLBACK]); | 1126 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingSt
reamSubscription._STATE_IN_CALLBACK); |
1139 } | 1127 } |
1140 this[_cancel](); | 1128 this[_cancel](); |
1141 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription[_STATE_WAIT_FOR_CANCEL]); | 1129 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription._STATE_WAIT_FOR_CANCEL); |
1142 if (dart.is(this[_cancelFuture], Future)) { | 1130 if (dart.is(this[_cancelFuture], Future)) { |
1143 this[_cancelFuture].whenComplete(sendDone); | 1131 this[_cancelFuture].whenComplete(sendDone); |
1144 } else { | 1132 } else { |
1145 sendDone(); | 1133 sendDone(); |
1146 } | 1134 } |
1147 } | 1135 } |
1148 [_guardCallback](callback) { | 1136 [_guardCallback](callback) { |
1149 dart.assert(!dart.notNull(this[_inCallback])); | 1137 dart.assert(!dart.notNull(this[_inCallback])); |
1150 let wasInputPaused = this[_isInputPaused]; | 1138 let wasInputPaused = this[_isInputPaused]; |
1151 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription[_STATE_IN_CALLBACK]); | 1139 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BufferingStrea
mSubscription._STATE_IN_CALLBACK); |
1152 dart.dcall(callback); | 1140 dart.dcall(callback); |
1153 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStre
amSubscription[_STATE_IN_CALLBACK]); | 1141 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingStre
amSubscription._STATE_IN_CALLBACK); |
1154 this[_checkState](wasInputPaused); | 1142 this[_checkState](wasInputPaused); |
1155 } | 1143 } |
1156 [_checkState](wasInputPaused) { | 1144 [_checkState](wasInputPaused) { |
1157 dart.assert(!dart.notNull(this[_inCallback])); | 1145 dart.assert(!dart.notNull(this[_inCallback])); |
1158 if (dart.notNull(this[_hasPending]) && dart.notNull(this[_pending].isEmp
ty)) { | 1146 if (dart.notNull(this[_hasPending]) && dart.notNull(this[_pending].isEmp
ty)) { |
1159 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingSt
reamSubscription[_STATE_HAS_PENDING]); | 1147 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingSt
reamSubscription._STATE_HAS_PENDING); |
1160 if (dart.notNull(this[_isInputPaused]) && dart.notNull(this[_mayResume
Input])) { | 1148 if (dart.notNull(this[_isInputPaused]) && dart.notNull(this[_mayResume
Input])) { |
1161 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_Buffering
StreamSubscription[_STATE_INPUT_PAUSED]); | 1149 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_Buffering
StreamSubscription._STATE_INPUT_PAUSED); |
1162 } | 1150 } |
1163 } | 1151 } |
1164 while (true) { | 1152 while (true) { |
1165 if (this[_isCanceled]) { | 1153 if (this[_isCanceled]) { |
1166 this[_pending] = null; | 1154 this[_pending] = null; |
1167 return; | 1155 return; |
1168 } | 1156 } |
1169 let isInputPaused = this[_isInputPaused]; | 1157 let isInputPaused = this[_isInputPaused]; |
1170 if (wasInputPaused == isInputPaused) | 1158 if (wasInputPaused == isInputPaused) |
1171 break; | 1159 break; |
1172 this[_state] = dart.notNull(this[_state]) ^ dart.notNull(_BufferingStr
eamSubscription[_STATE_IN_CALLBACK]); | 1160 this[_state] = dart.notNull(this[_state]) ^ dart.notNull(_BufferingStr
eamSubscription._STATE_IN_CALLBACK); |
1173 if (isInputPaused) { | 1161 if (isInputPaused) { |
1174 this[_onPause](); | 1162 this[_onPause](); |
1175 } else { | 1163 } else { |
1176 this[_onResume](); | 1164 this[_onResume](); |
1177 } | 1165 } |
1178 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingSt
reamSubscription[_STATE_IN_CALLBACK]); | 1166 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BufferingSt
reamSubscription._STATE_IN_CALLBACK); |
1179 wasInputPaused = isInputPaused; | 1167 wasInputPaused = isInputPaused; |
1180 } | 1168 } |
1181 if (dart.notNull(this[_hasPending]) && !dart.notNull(this[_isPaused])) { | 1169 if (dart.notNull(this[_hasPending]) && !dart.notNull(this[_isPaused])) { |
1182 this[_pending].schedule(this); | 1170 this[_pending].schedule(this); |
1183 } | 1171 } |
1184 } | 1172 } |
1185 } | 1173 } |
1186 _BufferingStreamSubscription[dart.implements] = () => [StreamSubscription$(T
), _EventSink$(T), _EventDispatch$(T)]; | 1174 _BufferingStreamSubscription[dart.implements] = () => [StreamSubscription$(T
), _EventSink$(T), _EventDispatch$(T)]; |
1187 _BufferingStreamSubscription._STATE_CANCEL_ON_ERROR = 1; | 1175 _BufferingStreamSubscription._STATE_CANCEL_ON_ERROR = 1; |
1188 _BufferingStreamSubscription._STATE_CLOSED = 2; | 1176 _BufferingStreamSubscription._STATE_CLOSED = 2; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1221 this[_eventState] = null; | 1209 this[_eventState] = null; |
1222 this[_next] = null; | 1210 this[_next] = null; |
1223 this[_previous] = null; | 1211 this[_previous] = null; |
1224 super._ControllerSubscription(dart.as(controller, _StreamControllerLifec
ycle$(T)), onData, onError, onDone, cancelOnError); | 1212 super._ControllerSubscription(dart.as(controller, _StreamControllerLifec
ycle$(T)), onData, onError, onDone, cancelOnError); |
1225 this[_next] = this[_previous] = this; | 1213 this[_next] = this[_previous] = this; |
1226 } | 1214 } |
1227 get [_controller]() { | 1215 get [_controller]() { |
1228 return dart.as(super[_controller], _BroadcastStreamController); | 1216 return dart.as(super[_controller], _BroadcastStreamController); |
1229 } | 1217 } |
1230 [_expectsEvent](eventId) { | 1218 [_expectsEvent](eventId) { |
1231 return (dart.notNull(this[_eventState]) & dart.notNull(_BroadcastSubscri
ption[_STATE_EVENT_ID])) == eventId; | 1219 return (dart.notNull(this[_eventState]) & dart.notNull(_BroadcastSubscri
ption._STATE_EVENT_ID)) == eventId; |
1232 } | 1220 } |
1233 [_toggleEventId]() { | 1221 [_toggleEventId]() { |
1234 this[_eventState] = dart.notNull(this[_eventState]) ^ dart.notNull(_Broa
dcastSubscription[_STATE_EVENT_ID]); | 1222 this[_eventState] = dart.notNull(this[_eventState]) ^ dart.notNull(_Broa
dcastSubscription._STATE_EVENT_ID); |
1235 } | 1223 } |
1236 get [_isFiring]() { | 1224 get [_isFiring]() { |
1237 return (dart.notNull(this[_eventState]) & dart.notNull(_BroadcastSubscri
ption[_STATE_FIRING])) != 0; | 1225 return (dart.notNull(this[_eventState]) & dart.notNull(_BroadcastSubscri
ption._STATE_FIRING)) != 0; |
1238 } | 1226 } |
1239 [_setRemoveAfterFiring]() { | 1227 [_setRemoveAfterFiring]() { |
1240 dart.assert(this[_isFiring]); | 1228 dart.assert(this[_isFiring]); |
1241 this[_eventState] = dart.notNull(this[_eventState]) | dart.notNull(_Broa
dcastSubscription[_STATE_REMOVE_AFTER_FIRING]); | 1229 this[_eventState] = dart.notNull(this[_eventState]) | dart.notNull(_Broa
dcastSubscription._STATE_REMOVE_AFTER_FIRING); |
1242 } | 1230 } |
1243 get [_removeAfterFiring]() { | 1231 get [_removeAfterFiring]() { |
1244 return (dart.notNull(this[_eventState]) & dart.notNull(_BroadcastSubscri
ption[_STATE_REMOVE_AFTER_FIRING])) != 0; | 1232 return (dart.notNull(this[_eventState]) & dart.notNull(_BroadcastSubscri
ption._STATE_REMOVE_AFTER_FIRING)) != 0; |
1245 } | 1233 } |
1246 [_onPause]() {} | 1234 [_onPause]() {} |
1247 [_onResume]() {} | 1235 [_onResume]() {} |
1248 } | 1236 } |
1249 _BroadcastSubscription[dart.implements] = () => [_BroadcastSubscriptionLink]
; | 1237 _BroadcastSubscription[dart.implements] = () => [_BroadcastSubscriptionLink]
; |
1250 _BroadcastSubscription._STATE_EVENT_ID = 1; | 1238 _BroadcastSubscription._STATE_EVENT_ID = 1; |
1251 _BroadcastSubscription._STATE_FIRING = 2; | 1239 _BroadcastSubscription._STATE_FIRING = 2; |
1252 _BroadcastSubscription._STATE_REMOVE_AFTER_FIRING = 4; | 1240 _BroadcastSubscription._STATE_REMOVE_AFTER_FIRING = 4; |
1253 return _BroadcastSubscription; | 1241 return _BroadcastSubscription; |
1254 }); | 1242 }); |
1255 let _BroadcastSubscription = _BroadcastSubscription$(); | 1243 let _BroadcastSubscription = _BroadcastSubscription$(); |
1256 let _STATE_INITIAL = Symbol('_STATE_INITIAL'); | |
1257 let _addStreamState = Symbol('_addStreamState'); | 1244 let _addStreamState = Symbol('_addStreamState'); |
1258 let _doneFuture = Symbol('_doneFuture'); | 1245 let _doneFuture = Symbol('_doneFuture'); |
1259 let _isEmpty = Symbol('_isEmpty'); | 1246 let _isEmpty = Symbol('_isEmpty'); |
1260 let _hasOneListener = Symbol('_hasOneListener'); | 1247 let _hasOneListener = Symbol('_hasOneListener'); |
1261 let _isAddingStream = Symbol('_isAddingStream'); | 1248 let _isAddingStream = Symbol('_isAddingStream'); |
1262 let _STATE_ADDSTREAM = Symbol('_STATE_ADDSTREAM'); | |
1263 let _mayAddEvent = Symbol('_mayAddEvent'); | 1249 let _mayAddEvent = Symbol('_mayAddEvent'); |
1264 let _ensureDoneFuture = Symbol('_ensureDoneFuture'); | 1250 let _ensureDoneFuture = Symbol('_ensureDoneFuture'); |
1265 let _addListener = Symbol('_addListener'); | 1251 let _addListener = Symbol('_addListener'); |
1266 let _removeListener = Symbol('_removeListener'); | 1252 let _removeListener = Symbol('_removeListener'); |
1267 let _callOnCancel = Symbol('_callOnCancel'); | 1253 let _callOnCancel = Symbol('_callOnCancel'); |
1268 let _addEventError = Symbol('_addEventError'); | 1254 let _addEventError = Symbol('_addEventError'); |
1269 let _forEachListener = Symbol('_forEachListener'); | 1255 let _forEachListener = Symbol('_forEachListener'); |
1270 let _mayComplete = Symbol('_mayComplete'); | 1256 let _mayComplete = Symbol('_mayComplete'); |
1271 let _asyncComplete = Symbol('_asyncComplete'); | 1257 let _asyncComplete = Symbol('_asyncComplete'); |
1272 let _BroadcastStreamController$ = dart.generic(function(T) { | 1258 let _BroadcastStreamController$ = dart.generic(function(T) { |
1273 class _BroadcastStreamController extends core.Object { | 1259 class _BroadcastStreamController extends core.Object { |
1274 _BroadcastStreamController(onListen, onCancel) { | 1260 _BroadcastStreamController(onListen, onCancel) { |
1275 this[_onListen] = onListen; | 1261 this[_onListen] = onListen; |
1276 this[_onCancel] = onCancel; | 1262 this[_onCancel] = onCancel; |
1277 this[_state] = _BroadcastStreamController[_STATE_INITIAL]; | 1263 this[_state] = _BroadcastStreamController._STATE_INITIAL; |
1278 this[_next] = null; | 1264 this[_next] = null; |
1279 this[_previous] = null; | 1265 this[_previous] = null; |
1280 this[_addStreamState] = null; | 1266 this[_addStreamState] = null; |
1281 this[_doneFuture] = null; | 1267 this[_doneFuture] = null; |
1282 this[_next] = this[_previous] = this; | 1268 this[_next] = this[_previous] = this; |
1283 } | 1269 } |
1284 get stream() { | 1270 get stream() { |
1285 return new (_BroadcastStream$(T))(this); | 1271 return new (_BroadcastStream$(T))(this); |
1286 } | 1272 } |
1287 get sink() { | 1273 get sink() { |
1288 return new (_StreamSinkWrapper$(T))(this); | 1274 return new (_StreamSinkWrapper$(T))(this); |
1289 } | 1275 } |
1290 get isClosed() { | 1276 get isClosed() { |
1291 return (dart.notNull(this[_state]) & dart.notNull(_BroadcastStreamContro
ller[_STATE_CLOSED])) != 0; | 1277 return (dart.notNull(this[_state]) & dart.notNull(_BroadcastStreamContro
ller._STATE_CLOSED)) != 0; |
1292 } | 1278 } |
1293 get isPaused() { | 1279 get isPaused() { |
1294 return false; | 1280 return false; |
1295 } | 1281 } |
1296 get hasListener() { | 1282 get hasListener() { |
1297 return !dart.notNull(this[_isEmpty]); | 1283 return !dart.notNull(this[_isEmpty]); |
1298 } | 1284 } |
1299 get [_hasOneListener]() { | 1285 get [_hasOneListener]() { |
1300 dart.assert(!dart.notNull(this[_isEmpty])); | 1286 dart.assert(!dart.notNull(this[_isEmpty])); |
1301 return core.identical(this[_next][_next], this); | 1287 return core.identical(this[_next][_next], this); |
1302 } | 1288 } |
1303 get [_isFiring]() { | 1289 get [_isFiring]() { |
1304 return (dart.notNull(this[_state]) & dart.notNull(_BroadcastStreamContro
ller[_STATE_FIRING])) != 0; | 1290 return (dart.notNull(this[_state]) & dart.notNull(_BroadcastStreamContro
ller._STATE_FIRING)) != 0; |
1305 } | 1291 } |
1306 get [_isAddingStream]() { | 1292 get [_isAddingStream]() { |
1307 return (dart.notNull(this[_state]) & dart.notNull(_BroadcastStreamContro
ller[_STATE_ADDSTREAM])) != 0; | 1293 return (dart.notNull(this[_state]) & dart.notNull(_BroadcastStreamContro
ller._STATE_ADDSTREAM)) != 0; |
1308 } | 1294 } |
1309 get [_mayAddEvent]() { | 1295 get [_mayAddEvent]() { |
1310 return dart.notNull(this[_state]) < dart.notNull(_BroadcastStreamControl
ler[_STATE_CLOSED]); | 1296 return dart.notNull(this[_state]) < dart.notNull(_BroadcastStreamControl
ler._STATE_CLOSED); |
1311 } | 1297 } |
1312 [_ensureDoneFuture]() { | 1298 [_ensureDoneFuture]() { |
1313 if (this[_doneFuture] != null) | 1299 if (this[_doneFuture] != null) |
1314 return this[_doneFuture]; | 1300 return this[_doneFuture]; |
1315 return this[_doneFuture] = new _Future(); | 1301 return this[_doneFuture] = new _Future(); |
1316 } | 1302 } |
1317 get [_isEmpty]() { | 1303 get [_isEmpty]() { |
1318 return core.identical(this[_next], this); | 1304 return core.identical(this[_next], this); |
1319 } | 1305 } |
1320 [_addListener](subscription) { | 1306 [_addListener](subscription) { |
1321 dart.assert(core.identical(subscription[_next], subscription)); | 1307 dart.assert(core.identical(subscription[_next], subscription)); |
1322 subscription[_previous] = this[_previous]; | 1308 subscription[_previous] = this[_previous]; |
1323 subscription[_next] = this; | 1309 subscription[_next] = this; |
1324 this[_previous][_next] = subscription; | 1310 this[_previous][_next] = subscription; |
1325 this[_previous] = subscription; | 1311 this[_previous] = subscription; |
1326 subscription[_eventState] = dart.notNull(this[_state]) & dart.notNull(_B
roadcastStreamController[_STATE_EVENT_ID]); | 1312 subscription[_eventState] = dart.notNull(this[_state]) & dart.notNull(_B
roadcastStreamController._STATE_EVENT_ID); |
1327 } | 1313 } |
1328 [_removeListener](subscription) { | 1314 [_removeListener](subscription) { |
1329 dart.assert(core.identical(subscription[_controller], this)); | 1315 dart.assert(core.identical(subscription[_controller], this)); |
1330 dart.assert(!dart.notNull(core.identical(subscription[_next], subscripti
on))); | 1316 dart.assert(!dart.notNull(core.identical(subscription[_next], subscripti
on))); |
1331 let previous = subscription[_previous]; | 1317 let previous = subscription[_previous]; |
1332 let next = subscription[_next]; | 1318 let next = subscription[_next]; |
1333 previous[_next] = next; | 1319 previous[_next] = next; |
1334 next[_previous] = previous; | 1320 next[_previous] = previous; |
1335 subscription[_next] = subscription[_previous] = subscription; | 1321 subscription[_next] = subscription[_previous] = subscription; |
1336 } | 1322 } |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1389 } | 1375 } |
1390 this[_sendError](error, stackTrace); | 1376 this[_sendError](error, stackTrace); |
1391 } | 1377 } |
1392 close() { | 1378 close() { |
1393 if (this.isClosed) { | 1379 if (this.isClosed) { |
1394 dart.assert(this[_doneFuture] != null); | 1380 dart.assert(this[_doneFuture] != null); |
1395 return this[_doneFuture]; | 1381 return this[_doneFuture]; |
1396 } | 1382 } |
1397 if (!dart.notNull(this[_mayAddEvent])) | 1383 if (!dart.notNull(this[_mayAddEvent])) |
1398 throw this[_addEventError](); | 1384 throw this[_addEventError](); |
1399 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BroadcastStrea
mController[_STATE_CLOSED]); | 1385 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BroadcastStrea
mController._STATE_CLOSED); |
1400 let doneFuture = this[_ensureDoneFuture](); | 1386 let doneFuture = this[_ensureDoneFuture](); |
1401 this[_sendDone](); | 1387 this[_sendDone](); |
1402 return doneFuture; | 1388 return doneFuture; |
1403 } | 1389 } |
1404 get done() { | 1390 get done() { |
1405 return this[_ensureDoneFuture](); | 1391 return this[_ensureDoneFuture](); |
1406 } | 1392 } |
1407 addStream(stream, opts) { | 1393 addStream(stream, opts) { |
1408 let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError
: true; | 1394 let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError
: true; |
1409 if (!dart.notNull(this[_mayAddEvent])) | 1395 if (!dart.notNull(this[_mayAddEvent])) |
1410 throw this[_addEventError](); | 1396 throw this[_addEventError](); |
1411 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BroadcastStrea
mController[_STATE_ADDSTREAM]); | 1397 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BroadcastStrea
mController._STATE_ADDSTREAM); |
1412 this[_addStreamState] = new (_AddStreamState$(T))(this, stream, cancelOn
Error); | 1398 this[_addStreamState] = new (_AddStreamState$(T))(this, stream, cancelOn
Error); |
1413 return this[_addStreamState].addStreamFuture; | 1399 return this[_addStreamState].addStreamFuture; |
1414 } | 1400 } |
1415 [_add](data) { | 1401 [_add](data) { |
1416 this[_sendData](data); | 1402 this[_sendData](data); |
1417 } | 1403 } |
1418 [_addError](error, stackTrace) { | 1404 [_addError](error, stackTrace) { |
1419 this[_sendError](error, stackTrace); | 1405 this[_sendError](error, stackTrace); |
1420 } | 1406 } |
1421 [_close]() { | 1407 [_close]() { |
1422 dart.assert(this[_isAddingStream]); | 1408 dart.assert(this[_isAddingStream]); |
1423 let addState = this[_addStreamState]; | 1409 let addState = this[_addStreamState]; |
1424 this[_addStreamState] = null; | 1410 this[_addStreamState] = null; |
1425 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BroadcastStre
amController[_STATE_ADDSTREAM]); | 1411 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BroadcastStre
amController._STATE_ADDSTREAM); |
1426 addState.complete(); | 1412 addState.complete(); |
1427 } | 1413 } |
1428 [_forEachListener](action) { | 1414 [_forEachListener](action) { |
1429 if (this[_isFiring]) { | 1415 if (this[_isFiring]) { |
1430 throw new core.StateError("Cannot fire new event. Controller is alread
y firing an event"); | 1416 throw new core.StateError("Cannot fire new event. Controller is alread
y firing an event"); |
1431 } | 1417 } |
1432 if (this[_isEmpty]) | 1418 if (this[_isEmpty]) |
1433 return; | 1419 return; |
1434 let id = dart.notNull(this[_state]) & dart.notNull(_BroadcastStreamContr
oller[_STATE_EVENT_ID]); | 1420 let id = dart.notNull(this[_state]) & dart.notNull(_BroadcastStreamContr
oller._STATE_EVENT_ID); |
1435 this[_state] = dart.notNull(this[_state]) ^ (dart.notNull(_BroadcastStre
amController[_STATE_EVENT_ID]) | dart.notNull(_BroadcastStreamController[_STATE_
FIRING])); | 1421 this[_state] = dart.notNull(this[_state]) ^ (dart.notNull(_BroadcastStre
amController._STATE_EVENT_ID) | dart.notNull(_BroadcastStreamController._STATE_F
IRING)); |
1436 let link = this[_next]; | 1422 let link = this[_next]; |
1437 while (!dart.notNull(core.identical(link, this))) { | 1423 while (!dart.notNull(core.identical(link, this))) { |
1438 let subscription = dart.as(link, _BroadcastSubscription$(T)); | 1424 let subscription = dart.as(link, _BroadcastSubscription$(T)); |
1439 if (subscription[_expectsEvent](id)) { | 1425 if (subscription[_expectsEvent](id)) { |
1440 subscription[_eventState] = dart.notNull(subscription[_eventState])
| dart.notNull(_BroadcastSubscription[_STATE_FIRING]); | 1426 subscription[_eventState] = dart.notNull(subscription[_eventState])
| dart.notNull(_BroadcastSubscription._STATE_FIRING); |
1441 action(subscription); | 1427 action(subscription); |
1442 subscription[_toggleEventId](); | 1428 subscription[_toggleEventId](); |
1443 link = subscription[_next]; | 1429 link = subscription[_next]; |
1444 if (subscription[_removeAfterFiring]) { | 1430 if (subscription[_removeAfterFiring]) { |
1445 this[_removeListener](subscription); | 1431 this[_removeListener](subscription); |
1446 } | 1432 } |
1447 subscription[_eventState] = dart.notNull(subscription[_eventState])
& ~dart.notNull(_BroadcastSubscription[_STATE_FIRING]); | 1433 subscription[_eventState] = dart.notNull(subscription[_eventState])
& ~dart.notNull(_BroadcastSubscription._STATE_FIRING); |
1448 } else { | 1434 } else { |
1449 link = subscription[_next]; | 1435 link = subscription[_next]; |
1450 } | 1436 } |
1451 } | 1437 } |
1452 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BroadcastStre
amController[_STATE_FIRING]); | 1438 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BroadcastStre
amController._STATE_FIRING); |
1453 if (this[_isEmpty]) { | 1439 if (this[_isEmpty]) { |
1454 this[_callOnCancel](); | 1440 this[_callOnCancel](); |
1455 } | 1441 } |
1456 } | 1442 } |
1457 [_callOnCancel]() { | 1443 [_callOnCancel]() { |
1458 dart.assert(this[_isEmpty]); | 1444 dart.assert(this[_isEmpty]); |
1459 if (dart.notNull(this.isClosed) && dart.notNull(this[_doneFuture][_mayCo
mplete])) { | 1445 if (dart.notNull(this.isClosed) && dart.notNull(this[_doneFuture][_mayCo
mplete])) { |
1460 this[_doneFuture][_asyncComplete](null); | 1446 this[_doneFuture][_asyncComplete](null); |
1461 } | 1447 } |
1462 _runGuarded(this[_onCancel]); | 1448 _runGuarded(this[_onCancel]); |
(...skipping 10 matching lines...) Expand all Loading... |
1473 let _BroadcastStreamController = _BroadcastStreamController$(); | 1459 let _BroadcastStreamController = _BroadcastStreamController$(); |
1474 let _SyncBroadcastStreamController$ = dart.generic(function(T) { | 1460 let _SyncBroadcastStreamController$ = dart.generic(function(T) { |
1475 class _SyncBroadcastStreamController extends _BroadcastStreamController$(T)
{ | 1461 class _SyncBroadcastStreamController extends _BroadcastStreamController$(T)
{ |
1476 _SyncBroadcastStreamController(onListen, onCancel) { | 1462 _SyncBroadcastStreamController(onListen, onCancel) { |
1477 super._BroadcastStreamController(onListen, onCancel); | 1463 super._BroadcastStreamController(onListen, onCancel); |
1478 } | 1464 } |
1479 [_sendData](data) { | 1465 [_sendData](data) { |
1480 if (this[_isEmpty]) | 1466 if (this[_isEmpty]) |
1481 return; | 1467 return; |
1482 if (this[_hasOneListener]) { | 1468 if (this[_hasOneListener]) { |
1483 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BroadcastStr
eamController[_STATE_FIRING]); | 1469 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BroadcastStr
eamController._STATE_FIRING); |
1484 let subscription = dart.as(this[_next], _BroadcastSubscription); | 1470 let subscription = dart.as(this[_next], _BroadcastSubscription); |
1485 subscription[_add](data); | 1471 subscription[_add](data); |
1486 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BroadcastSt
reamController[_STATE_FIRING]); | 1472 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_BroadcastSt
reamController._STATE_FIRING); |
1487 if (this[_isEmpty]) { | 1473 if (this[_isEmpty]) { |
1488 this[_callOnCancel](); | 1474 this[_callOnCancel](); |
1489 } | 1475 } |
1490 return; | 1476 return; |
1491 } | 1477 } |
1492 this[_forEachListener](subscription => { | 1478 this[_forEachListener](subscription => { |
1493 subscription[_add](data); | 1479 subscription[_add](data); |
1494 }); | 1480 }); |
1495 } | 1481 } |
1496 [_sendError](error, stackTrace) { | 1482 [_sendError](error, stackTrace) { |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1584 if (!dart.notNull(this[_mayAddEvent])) | 1570 if (!dart.notNull(this[_mayAddEvent])) |
1585 throw this[_addEventError](); | 1571 throw this[_addEventError](); |
1586 this[_sendError](error, stackTrace); | 1572 this[_sendError](error, stackTrace); |
1587 while (this[_hasPending]) { | 1573 while (this[_hasPending]) { |
1588 this[_pending].handleNext(this); | 1574 this[_pending].handleNext(this); |
1589 } | 1575 } |
1590 } | 1576 } |
1591 close() { | 1577 close() { |
1592 if (!dart.notNull(this.isClosed) && dart.notNull(this[_isFiring])) { | 1578 if (!dart.notNull(this.isClosed) && dart.notNull(this[_isFiring])) { |
1593 this[_addPendingEvent](dart.const(new _DelayedDone())); | 1579 this[_addPendingEvent](dart.const(new _DelayedDone())); |
1594 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BroadcastStr
eamController[_STATE_CLOSED]); | 1580 this[_state] = dart.notNull(this[_state]) | dart.notNull(_BroadcastStr
eamController._STATE_CLOSED); |
1595 return super.done; | 1581 return super.done; |
1596 } | 1582 } |
1597 let result = super.close(); | 1583 let result = super.close(); |
1598 dart.assert(!dart.notNull(this[_hasPending])); | 1584 dart.assert(!dart.notNull(this[_hasPending])); |
1599 return result; | 1585 return result; |
1600 } | 1586 } |
1601 [_callOnCancel]() { | 1587 [_callOnCancel]() { |
1602 if (this[_hasPending]) { | 1588 if (this[_hasPending]) { |
1603 this[_pending].clear(); | 1589 this[_pending].clear(); |
1604 this[_pending] = null; | 1590 this[_pending] = null; |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1670 class DeferredLoadException extends core.Object { | 1656 class DeferredLoadException extends core.Object { |
1671 DeferredLoadException(s) { | 1657 DeferredLoadException(s) { |
1672 this[_s] = s; | 1658 this[_s] = s; |
1673 } | 1659 } |
1674 toString() { | 1660 toString() { |
1675 return `DeferredLoadException: '${this[_s]}'`; | 1661 return `DeferredLoadException: '${this[_s]}'`; |
1676 } | 1662 } |
1677 } | 1663 } |
1678 DeferredLoadException[dart.implements] = () => [core.Exception]; | 1664 DeferredLoadException[dart.implements] = () => [core.Exception]; |
1679 let _completeWithValue = Symbol('_completeWithValue'); | 1665 let _completeWithValue = Symbol('_completeWithValue'); |
1680 let _nullFuture = Symbol('_nullFuture'); | |
1681 let Future$ = dart.generic(function(T) { | 1666 let Future$ = dart.generic(function(T) { |
1682 class Future extends core.Object { | 1667 class Future extends core.Object { |
1683 Future(computation) { | 1668 Future(computation) { |
1684 let result = new (_Future$(T))(); | 1669 let result = new (_Future$(T))(); |
1685 Timer.run(() => { | 1670 Timer.run(() => { |
1686 try { | 1671 try { |
1687 result[_complete](computation()); | 1672 result[_complete](computation()); |
1688 } catch (e) { | 1673 } catch (e) { |
1689 let s = dart.stackTrace(e); | 1674 let s = dart.stackTrace(e); |
1690 _completeWithErrorCallback(result, e, s); | 1675 _completeWithErrorCallback(result, e, s); |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1830 dart.dcall(nextIteration, true); | 1815 dart.dcall(nextIteration, true); |
1831 return doneSignal; | 1816 return doneSignal; |
1832 } | 1817 } |
1833 } | 1818 } |
1834 dart.defineNamedConstructor(Future, 'microtask'); | 1819 dart.defineNamedConstructor(Future, 'microtask'); |
1835 dart.defineNamedConstructor(Future, 'sync'); | 1820 dart.defineNamedConstructor(Future, 'sync'); |
1836 dart.defineNamedConstructor(Future, 'value'); | 1821 dart.defineNamedConstructor(Future, 'value'); |
1837 dart.defineNamedConstructor(Future, 'error'); | 1822 dart.defineNamedConstructor(Future, 'error'); |
1838 dart.defineNamedConstructor(Future, 'delayed'); | 1823 dart.defineNamedConstructor(Future, 'delayed'); |
1839 dart.defineLazyProperties(Future, { | 1824 dart.defineLazyProperties(Future, { |
1840 get [_nullFuture]() { | 1825 get _nullFuture() { |
1841 return new Future.value(null); | 1826 return new Future.value(null); |
1842 } | 1827 } |
1843 }); | 1828 }); |
1844 return Future; | 1829 return Future; |
1845 }); | 1830 }); |
1846 let Future = Future$(); | 1831 let Future = Future$(); |
1847 class TimeoutException extends core.Object { | 1832 class TimeoutException extends core.Object { |
1848 TimeoutException(message, duration) { | 1833 TimeoutException(message, duration) { |
1849 if (duration === void 0) | 1834 if (duration === void 0) |
1850 duration = null; | 1835 duration = null; |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2025 _FutureListener.MASK_VALUE = 1; | 2010 _FutureListener.MASK_VALUE = 1; |
2026 _FutureListener.MASK_ERROR = 2; | 2011 _FutureListener.MASK_ERROR = 2; |
2027 _FutureListener.MASK_TEST_ERROR = 4; | 2012 _FutureListener.MASK_TEST_ERROR = 4; |
2028 _FutureListener.MASK_WHENCOMPLETE = 8; | 2013 _FutureListener.MASK_WHENCOMPLETE = 8; |
2029 _FutureListener.STATE_CHAIN = 0; | 2014 _FutureListener.STATE_CHAIN = 0; |
2030 _FutureListener.STATE_THEN = _FutureListener.MASK_VALUE; | 2015 _FutureListener.STATE_THEN = _FutureListener.MASK_VALUE; |
2031 _FutureListener.STATE_THEN_ONERROR = dart.notNull(_FutureListener.MASK_VALUE)
| dart.notNull(_FutureListener.MASK_ERROR); | 2016 _FutureListener.STATE_THEN_ONERROR = dart.notNull(_FutureListener.MASK_VALUE)
| dart.notNull(_FutureListener.MASK_ERROR); |
2032 _FutureListener.STATE_CATCHERROR = _FutureListener.MASK_ERROR; | 2017 _FutureListener.STATE_CATCHERROR = _FutureListener.MASK_ERROR; |
2033 _FutureListener.STATE_CATCHERROR_TEST = dart.notNull(_FutureListener.MASK_ERRO
R) | dart.notNull(_FutureListener.MASK_TEST_ERROR); | 2018 _FutureListener.STATE_CATCHERROR_TEST = dart.notNull(_FutureListener.MASK_ERRO
R) | dart.notNull(_FutureListener.MASK_TEST_ERROR); |
2034 _FutureListener.STATE_WHENCOMPLETE = _FutureListener.MASK_WHENCOMPLETE; | 2019 _FutureListener.STATE_WHENCOMPLETE = _FutureListener.MASK_WHENCOMPLETE; |
2035 let _INCOMPLETE = Symbol('_INCOMPLETE'); | |
2036 let _resultOrListeners = Symbol('_resultOrListeners'); | 2020 let _resultOrListeners = Symbol('_resultOrListeners'); |
2037 let _isChained = Symbol('_isChained'); | 2021 let _isChained = Symbol('_isChained'); |
2038 let _CHAINED = Symbol('_CHAINED'); | |
2039 let _isComplete = Symbol('_isComplete'); | 2022 let _isComplete = Symbol('_isComplete'); |
2040 let _VALUE = Symbol('_VALUE'); | |
2041 let _hasValue = Symbol('_hasValue'); | 2023 let _hasValue = Symbol('_hasValue'); |
2042 let _hasError = Symbol('_hasError'); | 2024 let _hasError = Symbol('_hasError'); |
2043 let _ERROR = Symbol('_ERROR'); | |
2044 let _markPendingCompletion = Symbol('_markPendingCompletion'); | 2025 let _markPendingCompletion = Symbol('_markPendingCompletion'); |
2045 let _PENDING_COMPLETE = Symbol('_PENDING_COMPLETE'); | |
2046 let _value = Symbol('_value'); | 2026 let _value = Symbol('_value'); |
2047 let _error = Symbol('_error'); | 2027 let _error = Symbol('_error'); |
2048 let _setValue = Symbol('_setValue'); | 2028 let _setValue = Symbol('_setValue'); |
2049 let _setErrorObject = Symbol('_setErrorObject'); | 2029 let _setErrorObject = Symbol('_setErrorObject'); |
2050 let _setError = Symbol('_setError'); | 2030 let _setError = Symbol('_setError'); |
2051 let _propagateToListeners = Symbol('_propagateToListeners'); | |
2052 let _removeListeners = Symbol('_removeListeners'); | 2031 let _removeListeners = Symbol('_removeListeners'); |
2053 let _chainForeignFuture = Symbol('_chainForeignFuture'); | |
2054 let _chainCoreFuture = Symbol('_chainCoreFuture'); | |
2055 let _enter = Symbol('_enter'); | |
2056 let _leave = Symbol('_leave'); | |
2057 let _Future$ = dart.generic(function(T) { | 2032 let _Future$ = dart.generic(function(T) { |
2058 class _Future extends core.Object { | 2033 class _Future extends core.Object { |
2059 _Future() { | 2034 _Future() { |
2060 this[_zone] = Zone.current; | 2035 this[_zone] = Zone.current; |
2061 this[_state] = _Future[_INCOMPLETE]; | 2036 this[_state] = _Future._INCOMPLETE; |
2062 this[_resultOrListeners] = null; | 2037 this[_resultOrListeners] = null; |
2063 } | 2038 } |
2064 immediate(value) { | 2039 immediate(value) { |
2065 this[_zone] = Zone.current; | 2040 this[_zone] = Zone.current; |
2066 this[_state] = _Future[_INCOMPLETE]; | 2041 this[_state] = _Future._INCOMPLETE; |
2067 this[_resultOrListeners] = null; | 2042 this[_resultOrListeners] = null; |
2068 this[_asyncComplete](value); | 2043 this[_asyncComplete](value); |
2069 } | 2044 } |
2070 immediateError(error, stackTrace) { | 2045 immediateError(error, stackTrace) { |
2071 if (stackTrace === void 0) | 2046 if (stackTrace === void 0) |
2072 stackTrace = null; | 2047 stackTrace = null; |
2073 this[_zone] = Zone.current; | 2048 this[_zone] = Zone.current; |
2074 this[_state] = _Future[_INCOMPLETE]; | 2049 this[_state] = _Future._INCOMPLETE; |
2075 this[_resultOrListeners] = null; | 2050 this[_resultOrListeners] = null; |
2076 this[_asyncCompleteError](error, stackTrace); | 2051 this[_asyncCompleteError](error, stackTrace); |
2077 } | 2052 } |
2078 get [_mayComplete]() { | 2053 get [_mayComplete]() { |
2079 return this[_state] == _Future[_INCOMPLETE]; | 2054 return this[_state] == _Future._INCOMPLETE; |
2080 } | 2055 } |
2081 get [_isChained]() { | 2056 get [_isChained]() { |
2082 return this[_state] == _Future[_CHAINED]; | 2057 return this[_state] == _Future._CHAINED; |
2083 } | 2058 } |
2084 get [_isComplete]() { | 2059 get [_isComplete]() { |
2085 return dart.notNull(this[_state]) >= dart.notNull(_Future[_VALUE]); | 2060 return dart.notNull(this[_state]) >= dart.notNull(_Future._VALUE); |
2086 } | 2061 } |
2087 get [_hasValue]() { | 2062 get [_hasValue]() { |
2088 return this[_state] == _Future[_VALUE]; | 2063 return this[_state] == _Future._VALUE; |
2089 } | 2064 } |
2090 get [_hasError]() { | 2065 get [_hasError]() { |
2091 return this[_state] == _Future[_ERROR]; | 2066 return this[_state] == _Future._ERROR; |
2092 } | 2067 } |
2093 set [_isChained](value) { | 2068 set [_isChained](value) { |
2094 if (value) { | 2069 if (value) { |
2095 dart.assert(!dart.notNull(this[_isComplete])); | 2070 dart.assert(!dart.notNull(this[_isComplete])); |
2096 this[_state] = _Future[_CHAINED]; | 2071 this[_state] = _Future._CHAINED; |
2097 } else { | 2072 } else { |
2098 dart.assert(this[_isChained]); | 2073 dart.assert(this[_isChained]); |
2099 this[_state] = _Future[_INCOMPLETE]; | 2074 this[_state] = _Future._INCOMPLETE; |
2100 } | 2075 } |
2101 } | 2076 } |
2102 then(f, opts) { | 2077 then(f, opts) { |
2103 let onError = opts && 'onError' in opts ? opts.onError : null; | 2078 let onError = opts && 'onError' in opts ? opts.onError : null; |
2104 let result = new _Future(); | 2079 let result = new _Future(); |
2105 if (!dart.notNull(core.identical(result[_zone], _ROOT_ZONE))) { | 2080 if (!dart.notNull(core.identical(result[_zone], _ROOT_ZONE))) { |
2106 f = dart.as(result[_zone].registerUnaryCallback(f), __CastType6); | 2081 f = dart.as(result[_zone].registerUnaryCallback(f), __CastType6); |
2107 if (onError != null) { | 2082 if (onError != null) { |
2108 onError = _registerErrorHandler(onError, result[_zone]); | 2083 onError = _registerErrorHandler(onError, result[_zone]); |
2109 } | 2084 } |
(...skipping 19 matching lines...) Expand all Loading... |
2129 } | 2104 } |
2130 this[_addListener](new _FutureListener.whenComplete(result, action)); | 2105 this[_addListener](new _FutureListener.whenComplete(result, action)); |
2131 return dart.as(result, Future$(T)); | 2106 return dart.as(result, Future$(T)); |
2132 } | 2107 } |
2133 asStream() { | 2108 asStream() { |
2134 return new Stream$(T).fromFuture(this); | 2109 return new Stream$(T).fromFuture(this); |
2135 } | 2110 } |
2136 [_markPendingCompletion]() { | 2111 [_markPendingCompletion]() { |
2137 if (!dart.notNull(this[_mayComplete])) | 2112 if (!dart.notNull(this[_mayComplete])) |
2138 throw new core.StateError("Future already completed"); | 2113 throw new core.StateError("Future already completed"); |
2139 this[_state] = _Future[_PENDING_COMPLETE]; | 2114 this[_state] = _Future._PENDING_COMPLETE; |
2140 } | 2115 } |
2141 get [_value]() { | 2116 get [_value]() { |
2142 dart.assert(dart.notNull(this[_isComplete]) && dart.notNull(this[_hasVal
ue])); | 2117 dart.assert(dart.notNull(this[_isComplete]) && dart.notNull(this[_hasVal
ue])); |
2143 return dart.as(this[_resultOrListeners], T); | 2118 return dart.as(this[_resultOrListeners], T); |
2144 } | 2119 } |
2145 get [_error]() { | 2120 get [_error]() { |
2146 dart.assert(dart.notNull(this[_isComplete]) && dart.notNull(this[_hasErr
or])); | 2121 dart.assert(dart.notNull(this[_isComplete]) && dart.notNull(this[_hasErr
or])); |
2147 return dart.as(this[_resultOrListeners], AsyncError); | 2122 return dart.as(this[_resultOrListeners], AsyncError); |
2148 } | 2123 } |
2149 [_setValue](value) { | 2124 [_setValue](value) { |
2150 dart.assert(!dart.notNull(this[_isComplete])); | 2125 dart.assert(!dart.notNull(this[_isComplete])); |
2151 this[_state] = _Future[_VALUE]; | 2126 this[_state] = _Future._VALUE; |
2152 this[_resultOrListeners] = value; | 2127 this[_resultOrListeners] = value; |
2153 } | 2128 } |
2154 [_setErrorObject](error) { | 2129 [_setErrorObject](error) { |
2155 dart.assert(!dart.notNull(this[_isComplete])); | 2130 dart.assert(!dart.notNull(this[_isComplete])); |
2156 this[_state] = _Future[_ERROR]; | 2131 this[_state] = _Future._ERROR; |
2157 this[_resultOrListeners] = error; | 2132 this[_resultOrListeners] = error; |
2158 } | 2133 } |
2159 [_setError](error, stackTrace) { | 2134 [_setError](error, stackTrace) { |
2160 this[_setErrorObject](new AsyncError(error, stackTrace)); | 2135 this[_setErrorObject](new AsyncError(error, stackTrace)); |
2161 } | 2136 } |
2162 [_addListener](listener) { | 2137 [_addListener](listener) { |
2163 dart.assert(listener[_nextListener] == null); | 2138 dart.assert(listener[_nextListener] == null); |
2164 if (this[_isComplete]) { | 2139 if (this[_isComplete]) { |
2165 this[_zone].scheduleMicrotask((() => { | 2140 this[_zone].scheduleMicrotask((() => { |
2166 _Future[_propagateToListeners](this, listener); | 2141 _Future._propagateToListeners(this, listener); |
2167 }).bind(this)); | 2142 }).bind(this)); |
2168 } else { | 2143 } else { |
2169 listener[_nextListener] = dart.as(this[_resultOrListeners], _FutureLis
tener); | 2144 listener[_nextListener] = dart.as(this[_resultOrListeners], _FutureLis
tener); |
2170 this[_resultOrListeners] = listener; | 2145 this[_resultOrListeners] = listener; |
2171 } | 2146 } |
2172 } | 2147 } |
2173 [_removeListeners]() { | 2148 [_removeListeners]() { |
2174 dart.assert(!dart.notNull(this[_isComplete])); | 2149 dart.assert(!dart.notNull(this[_isComplete])); |
2175 let current = dart.as(this[_resultOrListeners], _FutureListener); | 2150 let current = dart.as(this[_resultOrListeners], _FutureListener); |
2176 this[_resultOrListeners] = null; | 2151 this[_resultOrListeners] = null; |
2177 let prev = null; | 2152 let prev = null; |
2178 while (current != null) { | 2153 while (current != null) { |
2179 let next = current[_nextListener]; | 2154 let next = current[_nextListener]; |
2180 current[_nextListener] = prev; | 2155 current[_nextListener] = prev; |
2181 prev = current; | 2156 prev = current; |
2182 current = next; | 2157 current = next; |
2183 } | 2158 } |
2184 return prev; | 2159 return prev; |
2185 } | 2160 } |
2186 static [_chainForeignFuture](source, target) { | 2161 static _chainForeignFuture(source, target) { |
2187 dart.assert(!dart.notNull(target[_isComplete])); | 2162 dart.assert(!dart.notNull(target[_isComplete])); |
2188 dart.assert(!dart.is(source, _Future)); | 2163 dart.assert(!dart.is(source, _Future)); |
2189 target[_isChained] = true; | 2164 target[_isChained] = true; |
2190 source.then(value => { | 2165 source.then(value => { |
2191 dart.assert(target[_isChained]); | 2166 dart.assert(target[_isChained]); |
2192 target[_completeWithValue](value); | 2167 target[_completeWithValue](value); |
2193 }, { | 2168 }, { |
2194 onError: (error, stackTrace) => { | 2169 onError: (error, stackTrace) => { |
2195 if (stackTrace === void 0) | 2170 if (stackTrace === void 0) |
2196 stackTrace = null; | 2171 stackTrace = null; |
2197 dart.assert(target[_isChained]); | 2172 dart.assert(target[_isChained]); |
2198 target[_completeError](error, dart.as(stackTrace, core.StackTrace)); | 2173 target[_completeError](error, dart.as(stackTrace, core.StackTrace)); |
2199 } | 2174 } |
2200 }); | 2175 }); |
2201 } | 2176 } |
2202 static [_chainCoreFuture](source, target) { | 2177 static _chainCoreFuture(source, target) { |
2203 dart.assert(!dart.notNull(target[_isComplete])); | 2178 dart.assert(!dart.notNull(target[_isComplete])); |
2204 dart.assert(dart.is(source, _Future)); | 2179 dart.assert(dart.is(source, _Future)); |
2205 target[_isChained] = true; | 2180 target[_isChained] = true; |
2206 let listener = new _FutureListener.chain(target); | 2181 let listener = new _FutureListener.chain(target); |
2207 if (source[_isComplete]) { | 2182 if (source[_isComplete]) { |
2208 _Future[_propagateToListeners](source, listener); | 2183 _Future._propagateToListeners(source, listener); |
2209 } else { | 2184 } else { |
2210 source[_addListener](listener); | 2185 source[_addListener](listener); |
2211 } | 2186 } |
2212 } | 2187 } |
2213 [_complete](value) { | 2188 [_complete](value) { |
2214 dart.assert(!dart.notNull(this[_isComplete])); | 2189 dart.assert(!dart.notNull(this[_isComplete])); |
2215 if (dart.is(value, Future)) { | 2190 if (dart.is(value, Future)) { |
2216 if (dart.is(value, _Future)) { | 2191 if (dart.is(value, _Future)) { |
2217 _Future[_chainCoreFuture](dart.as(value, _Future), this); | 2192 _Future._chainCoreFuture(dart.as(value, _Future), this); |
2218 } else { | 2193 } else { |
2219 _Future[_chainForeignFuture](dart.as(value, Future), this); | 2194 _Future._chainForeignFuture(dart.as(value, Future), this); |
2220 } | 2195 } |
2221 } else { | 2196 } else { |
2222 let listeners = this[_removeListeners](); | 2197 let listeners = this[_removeListeners](); |
2223 this[_setValue](dart.as(value, T)); | 2198 this[_setValue](dart.as(value, T)); |
2224 _Future[_propagateToListeners](this, listeners); | 2199 _Future._propagateToListeners(this, listeners); |
2225 } | 2200 } |
2226 } | 2201 } |
2227 [_completeWithValue](value) { | 2202 [_completeWithValue](value) { |
2228 dart.assert(!dart.notNull(this[_isComplete])); | 2203 dart.assert(!dart.notNull(this[_isComplete])); |
2229 dart.assert(!dart.is(value, Future)); | 2204 dart.assert(!dart.is(value, Future)); |
2230 let listeners = this[_removeListeners](); | 2205 let listeners = this[_removeListeners](); |
2231 this[_setValue](dart.as(value, T)); | 2206 this[_setValue](dart.as(value, T)); |
2232 _Future[_propagateToListeners](this, listeners); | 2207 _Future._propagateToListeners(this, listeners); |
2233 } | 2208 } |
2234 [_completeError](error, stackTrace) { | 2209 [_completeError](error, stackTrace) { |
2235 if (stackTrace === void 0) | 2210 if (stackTrace === void 0) |
2236 stackTrace = null; | 2211 stackTrace = null; |
2237 dart.assert(!dart.notNull(this[_isComplete])); | 2212 dart.assert(!dart.notNull(this[_isComplete])); |
2238 let listeners = this[_removeListeners](); | 2213 let listeners = this[_removeListeners](); |
2239 this[_setError](error, stackTrace); | 2214 this[_setError](error, stackTrace); |
2240 _Future[_propagateToListeners](this, listeners); | 2215 _Future._propagateToListeners(this, listeners); |
2241 } | 2216 } |
2242 [_asyncComplete](value) { | 2217 [_asyncComplete](value) { |
2243 dart.assert(!dart.notNull(this[_isComplete])); | 2218 dart.assert(!dart.notNull(this[_isComplete])); |
2244 if (value == null) { | 2219 if (value == null) { |
2245 } else if (dart.is(value, Future)) { | 2220 } else if (dart.is(value, Future)) { |
2246 let typedFuture = dart.as(value, Future$(T)); | 2221 let typedFuture = dart.as(value, Future$(T)); |
2247 if (dart.is(typedFuture, _Future)) { | 2222 if (dart.is(typedFuture, _Future)) { |
2248 let coreFuture = dart.as(typedFuture, _Future$(T)); | 2223 let coreFuture = dart.as(typedFuture, _Future$(T)); |
2249 if (dart.notNull(coreFuture[_isComplete]) && dart.notNull(coreFuture
[_hasError])) { | 2224 if (dart.notNull(coreFuture[_isComplete]) && dart.notNull(coreFuture
[_hasError])) { |
2250 this[_markPendingCompletion](); | 2225 this[_markPendingCompletion](); |
2251 this[_zone].scheduleMicrotask((() => { | 2226 this[_zone].scheduleMicrotask((() => { |
2252 _Future[_chainCoreFuture](coreFuture, this); | 2227 _Future._chainCoreFuture(coreFuture, this); |
2253 }).bind(this)); | 2228 }).bind(this)); |
2254 } else { | 2229 } else { |
2255 _Future[_chainCoreFuture](coreFuture, this); | 2230 _Future._chainCoreFuture(coreFuture, this); |
2256 } | 2231 } |
2257 } else { | 2232 } else { |
2258 _Future[_chainForeignFuture](typedFuture, this); | 2233 _Future._chainForeignFuture(typedFuture, this); |
2259 } | 2234 } |
2260 return; | 2235 return; |
2261 } else { | 2236 } else { |
2262 let typedValue = dart.as(value, T); | 2237 let typedValue = dart.as(value, T); |
2263 } | 2238 } |
2264 this[_markPendingCompletion](); | 2239 this[_markPendingCompletion](); |
2265 this[_zone].scheduleMicrotask((() => { | 2240 this[_zone].scheduleMicrotask((() => { |
2266 this[_completeWithValue](value); | 2241 this[_completeWithValue](value); |
2267 }).bind(this)); | 2242 }).bind(this)); |
2268 } | 2243 } |
2269 [_asyncCompleteError](error, stackTrace) { | 2244 [_asyncCompleteError](error, stackTrace) { |
2270 dart.assert(!dart.notNull(this[_isComplete])); | 2245 dart.assert(!dart.notNull(this[_isComplete])); |
2271 this[_markPendingCompletion](); | 2246 this[_markPendingCompletion](); |
2272 this[_zone].scheduleMicrotask((() => { | 2247 this[_zone].scheduleMicrotask((() => { |
2273 this[_completeError](error, stackTrace); | 2248 this[_completeError](error, stackTrace); |
2274 }).bind(this)); | 2249 }).bind(this)); |
2275 } | 2250 } |
2276 static [_propagateToListeners](source, listeners) { | 2251 static _propagateToListeners(source, listeners) { |
2277 while (true) { | 2252 while (true) { |
2278 dart.assert(source[_isComplete]); | 2253 dart.assert(source[_isComplete]); |
2279 let hasError = source[_hasError]; | 2254 let hasError = source[_hasError]; |
2280 if (listeners == null) { | 2255 if (listeners == null) { |
2281 if (hasError) { | 2256 if (hasError) { |
2282 let asyncError = source[_error]; | 2257 let asyncError = source[_error]; |
2283 source[_zone].handleUncaughtError(asyncError.error, asyncError.sta
ckTrace); | 2258 source[_zone].handleUncaughtError(asyncError.error, asyncError.sta
ckTrace); |
2284 } | 2259 } |
2285 return; | 2260 return; |
2286 } | 2261 } |
2287 while (listeners[_nextListener] != null) { | 2262 while (listeners[_nextListener] != null) { |
2288 let listener = listeners; | 2263 let listener = listeners; |
2289 listeners = listener[_nextListener]; | 2264 listeners = listener[_nextListener]; |
2290 listener[_nextListener] = null; | 2265 listener[_nextListener] = null; |
2291 _Future[_propagateToListeners](source, listener); | 2266 _Future._propagateToListeners(source, listener); |
2292 } | 2267 } |
2293 let listener = listeners; | 2268 let listener = listeners; |
2294 let listenerHasValue = true; | 2269 let listenerHasValue = true; |
2295 let sourceValue = hasError ? null : source[_value]; | 2270 let sourceValue = hasError ? null : source[_value]; |
2296 let listenerValueOrError = sourceValue; | 2271 let listenerValueOrError = sourceValue; |
2297 let isPropagationAborted = false; | 2272 let isPropagationAborted = false; |
2298 if (dart.notNull(hasError) || dart.notNull(listener.handlesValue) || d
art.notNull(listener.handlesComplete)) { | 2273 if (dart.notNull(hasError) || dart.notNull(listener.handlesValue) || d
art.notNull(listener.handlesComplete)) { |
2299 let zone = listener[_zone]; | 2274 let zone = listener[_zone]; |
2300 if (dart.notNull(hasError) && !dart.notNull(source[_zone].inSameErro
rZone(zone))) { | 2275 if (dart.notNull(hasError) && !dart.notNull(source[_zone].inSameErro
rZone(zone))) { |
2301 let asyncError = source[_error]; | 2276 let asyncError = source[_error]; |
2302 source[_zone].handleUncaughtError(asyncError.error, asyncError.sta
ckTrace); | 2277 source[_zone].handleUncaughtError(asyncError.error, asyncError.sta
ckTrace); |
2303 return; | 2278 return; |
2304 } | 2279 } |
2305 let oldZone = null; | 2280 let oldZone = null; |
2306 if (!dart.notNull(core.identical(Zone.current, zone))) { | 2281 if (!dart.notNull(core.identical(Zone.current, zone))) { |
2307 oldZone = Zone[_enter](zone); | 2282 oldZone = Zone._enter(zone); |
2308 } | 2283 } |
2309 // Function handleValueCallback: () → bool | 2284 // Function handleValueCallback: () → bool |
2310 function handleValueCallback() { | 2285 function handleValueCallback() { |
2311 try { | 2286 try { |
2312 listenerValueOrError = zone.runUnary(listener[_onValue], sourceV
alue); | 2287 listenerValueOrError = zone.runUnary(listener[_onValue], sourceV
alue); |
2313 return true; | 2288 return true; |
2314 } catch (e) { | 2289 } catch (e) { |
2315 let s = dart.stackTrace(e); | 2290 let s = dart.stackTrace(e); |
2316 listenerValueOrError = new AsyncError(e, s); | 2291 listenerValueOrError = new AsyncError(e, s); |
2317 return false; | 2292 return false; |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2369 } | 2344 } |
2370 listenerHasValue = false; | 2345 listenerHasValue = false; |
2371 return; | 2346 return; |
2372 } | 2347 } |
2373 | 2348 |
2374 if (dart.is(completeResult, Future)) { | 2349 if (dart.is(completeResult, Future)) { |
2375 let result = listener.result; | 2350 let result = listener.result; |
2376 result[_isChained] = true; | 2351 result[_isChained] = true; |
2377 isPropagationAborted = true; | 2352 isPropagationAborted = true; |
2378 dart.dsend(completeResult, 'then', ignored => { | 2353 dart.dsend(completeResult, 'then', ignored => { |
2379 _Future[_propagateToListeners](source, new _FutureListener.cha
in(result)); | 2354 _Future._propagateToListeners(source, new _FutureListener.chai
n(result)); |
2380 }, { | 2355 }, { |
2381 onError: (error, stackTrace) => { | 2356 onError: (error, stackTrace) => { |
2382 if (stackTrace === void 0) | 2357 if (stackTrace === void 0) |
2383 stackTrace = null; | 2358 stackTrace = null; |
2384 if (!dart.is(completeResult, _Future)) { | 2359 if (!dart.is(completeResult, _Future)) { |
2385 completeResult = new _Future(); | 2360 completeResult = new _Future(); |
2386 dart.dsend(completeResult, _setError, error, stackTrace); | 2361 dart.dsend(completeResult, _setError, error, stackTrace); |
2387 } | 2362 } |
2388 _Future[_propagateToListeners](dart.as(completeResult, _Futu
re), new _FutureListener.chain(result)); | 2363 _Future._propagateToListeners(dart.as(completeResult, _Futur
e), new _FutureListener.chain(result)); |
2389 } | 2364 } |
2390 }); | 2365 }); |
2391 } | 2366 } |
2392 } | 2367 } |
2393 if (!dart.notNull(hasError)) { | 2368 if (!dart.notNull(hasError)) { |
2394 if (listener.handlesValue) { | 2369 if (listener.handlesValue) { |
2395 listenerHasValue = handleValueCallback(); | 2370 listenerHasValue = handleValueCallback(); |
2396 } | 2371 } |
2397 } else { | 2372 } else { |
2398 handleError(); | 2373 handleError(); |
2399 } | 2374 } |
2400 if (listener.handlesComplete) { | 2375 if (listener.handlesComplete) { |
2401 handleWhenCompleteCallback(); | 2376 handleWhenCompleteCallback(); |
2402 } | 2377 } |
2403 if (oldZone != null) | 2378 if (oldZone != null) |
2404 Zone[_leave](oldZone); | 2379 Zone._leave(oldZone); |
2405 if (isPropagationAborted) | 2380 if (isPropagationAborted) |
2406 return; | 2381 return; |
2407 if (dart.notNull(listenerHasValue) && !dart.notNull(core.identical(s
ourceValue, listenerValueOrError)) && dart.is(listenerValueOrError, Future)) { | 2382 if (dart.notNull(listenerHasValue) && !dart.notNull(core.identical(s
ourceValue, listenerValueOrError)) && dart.is(listenerValueOrError, Future)) { |
2408 let chainSource = dart.as(listenerValueOrError, Future); | 2383 let chainSource = dart.as(listenerValueOrError, Future); |
2409 let result = listener.result; | 2384 let result = listener.result; |
2410 if (dart.is(chainSource, _Future)) { | 2385 if (dart.is(chainSource, _Future)) { |
2411 if (chainSource[_isComplete]) { | 2386 if (chainSource[_isComplete]) { |
2412 result[_isChained] = true; | 2387 result[_isChained] = true; |
2413 source = chainSource; | 2388 source = chainSource; |
2414 listeners = new _FutureListener.chain(result); | 2389 listeners = new _FutureListener.chain(result); |
2415 continue; | 2390 continue; |
2416 } else { | 2391 } else { |
2417 _Future[_chainCoreFuture](chainSource, result); | 2392 _Future._chainCoreFuture(chainSource, result); |
2418 } | 2393 } |
2419 } else { | 2394 } else { |
2420 _Future[_chainForeignFuture](chainSource, result); | 2395 _Future._chainForeignFuture(chainSource, result); |
2421 } | 2396 } |
2422 return; | 2397 return; |
2423 } | 2398 } |
2424 } | 2399 } |
2425 let result = listener.result; | 2400 let result = listener.result; |
2426 listeners = result[_removeListeners](); | 2401 listeners = result[_removeListeners](); |
2427 if (listenerHasValue) { | 2402 if (listenerHasValue) { |
2428 result[_setValue](listenerValueOrError); | 2403 result[_setValue](listenerValueOrError); |
2429 } else { | 2404 } else { |
2430 let asyncError = dart.as(listenerValueOrError, AsyncError); | 2405 let asyncError = dart.as(listenerValueOrError, AsyncError); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2505 function _asyncRunCallbackLoop() { | 2480 function _asyncRunCallbackLoop() { |
2506 while (exports._nextCallback != null) { | 2481 while (exports._nextCallback != null) { |
2507 exports._lastPriorityCallback = null; | 2482 exports._lastPriorityCallback = null; |
2508 let entry = exports._nextCallback; | 2483 let entry = exports._nextCallback; |
2509 exports._nextCallback = entry.next; | 2484 exports._nextCallback = entry.next; |
2510 if (exports._nextCallback == null) | 2485 if (exports._nextCallback == null) |
2511 exports._lastCallback = null; | 2486 exports._lastCallback = null; |
2512 entry.callback(); | 2487 entry.callback(); |
2513 } | 2488 } |
2514 } | 2489 } |
2515 let _scheduleImmediate = Symbol('_scheduleImmediate'); | |
2516 // Function _asyncRunCallback: () → void | 2490 // Function _asyncRunCallback: () → void |
2517 function _asyncRunCallback() { | 2491 function _asyncRunCallback() { |
2518 exports._isInCallbackLoop = true; | 2492 exports._isInCallbackLoop = true; |
2519 try { | 2493 try { |
2520 _asyncRunCallbackLoop(); | 2494 _asyncRunCallbackLoop(); |
2521 } finally { | 2495 } finally { |
2522 exports._lastPriorityCallback = null; | 2496 exports._lastPriorityCallback = null; |
2523 exports._isInCallbackLoop = false; | 2497 exports._isInCallbackLoop = false; |
2524 if (exports._nextCallback != null) | 2498 if (exports._nextCallback != null) |
2525 _AsyncRun[_scheduleImmediate](_asyncRunCallback); | 2499 _AsyncRun._scheduleImmediate(_asyncRunCallback); |
2526 } | 2500 } |
2527 } | 2501 } |
2528 // Function _scheduleAsyncCallback: (dynamic) → void | 2502 // Function _scheduleAsyncCallback: (dynamic) → void |
2529 function _scheduleAsyncCallback(callback) { | 2503 function _scheduleAsyncCallback(callback) { |
2530 if (exports._nextCallback == null) { | 2504 if (exports._nextCallback == null) { |
2531 exports._nextCallback = exports._lastCallback = new _AsyncCallbackEntry(da
rt.as(callback, _AsyncCallback)); | 2505 exports._nextCallback = exports._lastCallback = new _AsyncCallbackEntry(da
rt.as(callback, _AsyncCallback)); |
2532 if (!dart.notNull(exports._isInCallbackLoop)) { | 2506 if (!dart.notNull(exports._isInCallbackLoop)) { |
2533 _AsyncRun[_scheduleImmediate](_asyncRunCallback); | 2507 _AsyncRun._scheduleImmediate(_asyncRunCallback); |
2534 } | 2508 } |
2535 } else { | 2509 } else { |
2536 let newEntry = new _AsyncCallbackEntry(dart.as(callback, _AsyncCallback)); | 2510 let newEntry = new _AsyncCallbackEntry(dart.as(callback, _AsyncCallback)); |
2537 exports._lastCallback.next = newEntry; | 2511 exports._lastCallback.next = newEntry; |
2538 exports._lastCallback = newEntry; | 2512 exports._lastCallback = newEntry; |
2539 } | 2513 } |
2540 } | 2514 } |
2541 // Function _schedulePriorityAsyncCallback: (dynamic) → void | 2515 // Function _schedulePriorityAsyncCallback: (dynamic) → void |
2542 function _schedulePriorityAsyncCallback(callback) { | 2516 function _schedulePriorityAsyncCallback(callback) { |
2543 let entry = new _AsyncCallbackEntry(dart.as(callback, _AsyncCallback)); | 2517 let entry = new _AsyncCallbackEntry(dart.as(callback, _AsyncCallback)); |
(...skipping 13 matching lines...) Expand all Loading... |
2557 } | 2531 } |
2558 } | 2532 } |
2559 // Function scheduleMicrotask: (() → void) → void | 2533 // Function scheduleMicrotask: (() → void) → void |
2560 function scheduleMicrotask(callback) { | 2534 function scheduleMicrotask(callback) { |
2561 if (core.identical(_ROOT_ZONE, Zone.current)) { | 2535 if (core.identical(_ROOT_ZONE, Zone.current)) { |
2562 _rootScheduleMicrotask(null, null, _ROOT_ZONE, callback); | 2536 _rootScheduleMicrotask(null, null, _ROOT_ZONE, callback); |
2563 return; | 2537 return; |
2564 } | 2538 } |
2565 Zone.current.scheduleMicrotask(Zone.current.bindCallback(callback, {runGuard
ed: true})); | 2539 Zone.current.scheduleMicrotask(Zone.current.bindCallback(callback, {runGuard
ed: true})); |
2566 } | 2540 } |
2567 let _initializeScheduleImmediate = Symbol('_initializeScheduleImmediate'); | |
2568 let _scheduleImmediateJsOverride = Symbol('_scheduleImmediateJsOverride'); | |
2569 let _scheduleImmediateWithSetImmediate = Symbol('_scheduleImmediateWithSetImme
diate'); | |
2570 let _scheduleImmediateWithTimer = Symbol('_scheduleImmediateWithTimer'); | |
2571 let _createTimer = Symbol('_createTimer'); | |
2572 class _AsyncRun extends core.Object { | 2541 class _AsyncRun extends core.Object { |
2573 static [_scheduleImmediate](callback) { | 2542 static _scheduleImmediate(callback) { |
2574 dart.dcall(_AsyncRun.scheduleImmediateClosure, callback); | 2543 dart.dcall(_AsyncRun.scheduleImmediateClosure, callback); |
2575 } | 2544 } |
2576 static [_initializeScheduleImmediate]() { | 2545 static _initializeScheduleImmediate() { |
2577 _js_helper.requiresPreamble(); | 2546 _js_helper.requiresPreamble(); |
2578 if (self.scheduleImmediate != null) { | 2547 if (self.scheduleImmediate != null) { |
2579 return _AsyncRun[_scheduleImmediateJsOverride]; | 2548 return _AsyncRun._scheduleImmediateJsOverride; |
2580 } | 2549 } |
2581 if (dart.notNull(self.MutationObserver != null) && dart.notNull(self.docum
ent != null)) { | 2550 if (dart.notNull(self.MutationObserver != null) && dart.notNull(self.docum
ent != null)) { |
2582 let div = self.document.createElement("div"); | 2551 let div = self.document.createElement("div"); |
2583 let span = self.document.createElement("span"); | 2552 let span = self.document.createElement("span"); |
2584 let storedCallback = null; | 2553 let storedCallback = null; |
2585 // Function internalCallback: (dynamic) → dynamic | 2554 // Function internalCallback: (dynamic) → dynamic |
2586 function internalCallback(_) { | 2555 function internalCallback(_) { |
2587 _isolate_helper.leaveJsAsync(); | 2556 _isolate_helper.leaveJsAsync(); |
2588 let f = storedCallback; | 2557 let f = storedCallback; |
2589 storedCallback = null; | 2558 storedCallback = null; |
2590 dart.dcall(f); | 2559 dart.dcall(f); |
2591 } | 2560 } |
2592 ; | 2561 ; |
2593 let observer = new self.MutationObserver(_js_helper.convertDartClosureTo
JS(internalCallback, 1)); | 2562 let observer = new self.MutationObserver(_js_helper.convertDartClosureTo
JS(internalCallback, 1)); |
2594 observer.observe(div, {childList: true}); | 2563 observer.observe(div, {childList: true}); |
2595 return callback => { | 2564 return callback => { |
2596 dart.assert(storedCallback == null); | 2565 dart.assert(storedCallback == null); |
2597 _isolate_helper.enterJsAsync(); | 2566 _isolate_helper.enterJsAsync(); |
2598 storedCallback = callback; | 2567 storedCallback = callback; |
2599 div.firstChild ? div.removeChild(span) : div.appendChild(span); | 2568 div.firstChild ? div.removeChild(span) : div.appendChild(span); |
2600 }; | 2569 }; |
2601 } else if (self.setImmediate != null) { | 2570 } else if (self.setImmediate != null) { |
2602 return _AsyncRun[_scheduleImmediateWithSetImmediate]; | 2571 return _AsyncRun._scheduleImmediateWithSetImmediate; |
2603 } | 2572 } |
2604 return _AsyncRun[_scheduleImmediateWithTimer]; | 2573 return _AsyncRun._scheduleImmediateWithTimer; |
2605 } | 2574 } |
2606 static [_scheduleImmediateJsOverride](callback) { | 2575 static _scheduleImmediateJsOverride(callback) { |
2607 // Function internalCallback: () → dynamic | 2576 // Function internalCallback: () → dynamic |
2608 function internalCallback() { | 2577 function internalCallback() { |
2609 _isolate_helper.leaveJsAsync(); | 2578 _isolate_helper.leaveJsAsync(); |
2610 callback(); | 2579 callback(); |
2611 } | 2580 } |
2612 ; | 2581 ; |
2613 _isolate_helper.enterJsAsync(); | 2582 _isolate_helper.enterJsAsync(); |
2614 self.scheduleImmediate(_js_helper.convertDartClosureToJS(internalCallback,
0)); | 2583 self.scheduleImmediate(_js_helper.convertDartClosureToJS(internalCallback,
0)); |
2615 } | 2584 } |
2616 static [_scheduleImmediateWithSetImmediate](callback) { | 2585 static _scheduleImmediateWithSetImmediate(callback) { |
2617 // Function internalCallback: () → dynamic | 2586 // Function internalCallback: () → dynamic |
2618 function internalCallback() { | 2587 function internalCallback() { |
2619 _isolate_helper.leaveJsAsync(); | 2588 _isolate_helper.leaveJsAsync(); |
2620 callback(); | 2589 callback(); |
2621 } | 2590 } |
2622 ; | 2591 ; |
2623 _isolate_helper.enterJsAsync(); | 2592 _isolate_helper.enterJsAsync(); |
2624 self.setImmediate(_js_helper.convertDartClosureToJS(internalCallback, 0)); | 2593 self.setImmediate(_js_helper.convertDartClosureToJS(internalCallback, 0)); |
2625 } | 2594 } |
2626 static [_scheduleImmediateWithTimer](callback) { | 2595 static _scheduleImmediateWithTimer(callback) { |
2627 Timer[_createTimer](core.Duration.ZERO, callback); | 2596 Timer._createTimer(core.Duration.ZERO, callback); |
2628 } | 2597 } |
2629 } | 2598 } |
2630 dart.defineLazyProperties(_AsyncRun, { | 2599 dart.defineLazyProperties(_AsyncRun, { |
2631 get scheduleImmediateClosure() { | 2600 get scheduleImmediateClosure() { |
2632 return _AsyncRun[_initializeScheduleImmediate](); | 2601 return _AsyncRun._initializeScheduleImmediate(); |
2633 } | 2602 } |
2634 }); | 2603 }); |
2635 let StreamSubscription$ = dart.generic(function(T) { | 2604 let StreamSubscription$ = dart.generic(function(T) { |
2636 class StreamSubscription extends core.Object {} | 2605 class StreamSubscription extends core.Object {} |
2637 return StreamSubscription; | 2606 return StreamSubscription; |
2638 }); | 2607 }); |
2639 let StreamSubscription = StreamSubscription$(); | 2608 let StreamSubscription = StreamSubscription$(); |
2640 let EventSink$ = dart.generic(function(T) { | 2609 let EventSink$ = dart.generic(function(T) { |
2641 class EventSink extends core.Object {} | 2610 class EventSink extends core.Object {} |
2642 EventSink[dart.implements] = () => [core.Sink$(T)]; | 2611 EventSink[dart.implements] = () => [core.Sink$(T)]; |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2761 [_recordPause](subscription) {} | 2730 [_recordPause](subscription) {} |
2762 [_recordResume](subscription) {} | 2731 [_recordResume](subscription) {} |
2763 [_recordCancel](subscription) { | 2732 [_recordCancel](subscription) { |
2764 return null; | 2733 return null; |
2765 } | 2734 } |
2766 } | 2735 } |
2767 return _StreamControllerLifecycle; | 2736 return _StreamControllerLifecycle; |
2768 }); | 2737 }); |
2769 let _StreamControllerLifecycle = _StreamControllerLifecycle$(); | 2738 let _StreamControllerLifecycle = _StreamControllerLifecycle$(); |
2770 let _varData = Symbol('_varData'); | 2739 let _varData = Symbol('_varData'); |
2771 let _STATE_SUBSCRIBED = Symbol('_STATE_SUBSCRIBED'); | |
2772 let _isInitialState = Symbol('_isInitialState'); | 2740 let _isInitialState = Symbol('_isInitialState'); |
2773 let _STATE_SUBSCRIPTION_MASK = Symbol('_STATE_SUBSCRIPTION_MASK'); | |
2774 let _subscription = Symbol('_subscription'); | 2741 let _subscription = Symbol('_subscription'); |
2775 let _pendingEvents = Symbol('_pendingEvents'); | 2742 let _pendingEvents = Symbol('_pendingEvents'); |
2776 let _ensurePendingEvents = Symbol('_ensurePendingEvents'); | 2743 let _ensurePendingEvents = Symbol('_ensurePendingEvents'); |
2777 let _badEventState = Symbol('_badEventState'); | 2744 let _badEventState = Symbol('_badEventState'); |
2778 let _StreamController$ = dart.generic(function(T) { | 2745 let _StreamController$ = dart.generic(function(T) { |
2779 class _StreamController extends core.Object { | 2746 class _StreamController extends core.Object { |
2780 _StreamController() { | 2747 _StreamController() { |
2781 this[_varData] = null; | 2748 this[_varData] = null; |
2782 this[_state] = _StreamController[_STATE_INITIAL]; | 2749 this[_state] = _StreamController._STATE_INITIAL; |
2783 this[_doneFuture] = null; | 2750 this[_doneFuture] = null; |
2784 } | 2751 } |
2785 get stream() { | 2752 get stream() { |
2786 return new (_ControllerStream$(T))(this); | 2753 return new (_ControllerStream$(T))(this); |
2787 } | 2754 } |
2788 get sink() { | 2755 get sink() { |
2789 return new (_StreamSinkWrapper$(T))(this); | 2756 return new (_StreamSinkWrapper$(T))(this); |
2790 } | 2757 } |
2791 get [_isCanceled]() { | 2758 get [_isCanceled]() { |
2792 return (dart.notNull(this[_state]) & dart.notNull(_StreamController[_STA
TE_CANCELED])) != 0; | 2759 return (dart.notNull(this[_state]) & dart.notNull(_StreamController._STA
TE_CANCELED)) != 0; |
2793 } | 2760 } |
2794 get hasListener() { | 2761 get hasListener() { |
2795 return (dart.notNull(this[_state]) & dart.notNull(_StreamController[_STA
TE_SUBSCRIBED])) != 0; | 2762 return (dart.notNull(this[_state]) & dart.notNull(_StreamController._STA
TE_SUBSCRIBED)) != 0; |
2796 } | 2763 } |
2797 get [_isInitialState]() { | 2764 get [_isInitialState]() { |
2798 return (dart.notNull(this[_state]) & dart.notNull(_StreamController[_STA
TE_SUBSCRIPTION_MASK])) == _StreamController[_STATE_INITIAL]; | 2765 return (dart.notNull(this[_state]) & dart.notNull(_StreamController._STA
TE_SUBSCRIPTION_MASK)) == _StreamController._STATE_INITIAL; |
2799 } | 2766 } |
2800 get isClosed() { | 2767 get isClosed() { |
2801 return (dart.notNull(this[_state]) & dart.notNull(_StreamController[_STA
TE_CLOSED])) != 0; | 2768 return (dart.notNull(this[_state]) & dart.notNull(_StreamController._STA
TE_CLOSED)) != 0; |
2802 } | 2769 } |
2803 get isPaused() { | 2770 get isPaused() { |
2804 return this.hasListener ? this[_subscription][_isInputPaused] : !dart.no
tNull(this[_isCanceled]); | 2771 return this.hasListener ? this[_subscription][_isInputPaused] : !dart.no
tNull(this[_isCanceled]); |
2805 } | 2772 } |
2806 get [_isAddingStream]() { | 2773 get [_isAddingStream]() { |
2807 return (dart.notNull(this[_state]) & dart.notNull(_StreamController[_STA
TE_ADDSTREAM])) != 0; | 2774 return (dart.notNull(this[_state]) & dart.notNull(_StreamController._STA
TE_ADDSTREAM)) != 0; |
2808 } | 2775 } |
2809 get [_mayAddEvent]() { | 2776 get [_mayAddEvent]() { |
2810 return dart.notNull(this[_state]) < dart.notNull(_StreamController[_STAT
E_CLOSED]); | 2777 return dart.notNull(this[_state]) < dart.notNull(_StreamController._STAT
E_CLOSED); |
2811 } | 2778 } |
2812 get [_pendingEvents]() { | 2779 get [_pendingEvents]() { |
2813 dart.assert(this[_isInitialState]); | 2780 dart.assert(this[_isInitialState]); |
2814 if (!dart.notNull(this[_isAddingStream])) { | 2781 if (!dart.notNull(this[_isAddingStream])) { |
2815 return dart.as(this[_varData], _PendingEvents); | 2782 return dart.as(this[_varData], _PendingEvents); |
2816 } | 2783 } |
2817 let state = dart.as(this[_varData], _StreamControllerAddStreamState); | 2784 let state = dart.as(this[_varData], _StreamControllerAddStreamState); |
2818 return dart.as(state.varData, _PendingEvents); | 2785 return dart.as(state.varData, _PendingEvents); |
2819 } | 2786 } |
2820 [_ensurePendingEvents]() { | 2787 [_ensurePendingEvents]() { |
(...skipping 24 matching lines...) Expand all Loading... |
2845 return new core.StateError("Cannot add event while adding a stream"); | 2812 return new core.StateError("Cannot add event while adding a stream"); |
2846 } | 2813 } |
2847 addStream(source, opts) { | 2814 addStream(source, opts) { |
2848 let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError
: true; | 2815 let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError
: true; |
2849 if (!dart.notNull(this[_mayAddEvent])) | 2816 if (!dart.notNull(this[_mayAddEvent])) |
2850 throw this[_badEventState](); | 2817 throw this[_badEventState](); |
2851 if (this[_isCanceled]) | 2818 if (this[_isCanceled]) |
2852 return new _Future.immediate(null); | 2819 return new _Future.immediate(null); |
2853 let addState = new _StreamControllerAddStreamState(this, this[_varData],
source, cancelOnError); | 2820 let addState = new _StreamControllerAddStreamState(this, this[_varData],
source, cancelOnError); |
2854 this[_varData] = addState; | 2821 this[_varData] = addState; |
2855 this[_state] = dart.notNull(this[_state]) | dart.notNull(_StreamControll
er[_STATE_ADDSTREAM]); | 2822 this[_state] = dart.notNull(this[_state]) | dart.notNull(_StreamControll
er._STATE_ADDSTREAM); |
2856 return addState.addStreamFuture; | 2823 return addState.addStreamFuture; |
2857 } | 2824 } |
2858 get done() { | 2825 get done() { |
2859 return this[_ensureDoneFuture](); | 2826 return this[_ensureDoneFuture](); |
2860 } | 2827 } |
2861 [_ensureDoneFuture]() { | 2828 [_ensureDoneFuture]() { |
2862 if (this[_doneFuture] == null) { | 2829 if (this[_doneFuture] == null) { |
2863 this[_doneFuture] = this[_isCanceled] ? Future[_nullFuture] : new _Fut
ure(); | 2830 this[_doneFuture] = this[_isCanceled] ? Future._nullFuture : new _Futu
re(); |
2864 } | 2831 } |
2865 return this[_doneFuture]; | 2832 return this[_doneFuture]; |
2866 } | 2833 } |
2867 add(value) { | 2834 add(value) { |
2868 if (!dart.notNull(this[_mayAddEvent])) | 2835 if (!dart.notNull(this[_mayAddEvent])) |
2869 throw this[_badEventState](); | 2836 throw this[_badEventState](); |
2870 this[_add](value); | 2837 this[_add](value); |
2871 } | 2838 } |
2872 addError(error, stackTrace) { | 2839 addError(error, stackTrace) { |
2873 if (stackTrace === void 0) | 2840 if (stackTrace === void 0) |
(...skipping 11 matching lines...) Expand all Loading... |
2885 close() { | 2852 close() { |
2886 if (this.isClosed) { | 2853 if (this.isClosed) { |
2887 return this[_ensureDoneFuture](); | 2854 return this[_ensureDoneFuture](); |
2888 } | 2855 } |
2889 if (!dart.notNull(this[_mayAddEvent])) | 2856 if (!dart.notNull(this[_mayAddEvent])) |
2890 throw this[_badEventState](); | 2857 throw this[_badEventState](); |
2891 this[_closeUnchecked](); | 2858 this[_closeUnchecked](); |
2892 return this[_ensureDoneFuture](); | 2859 return this[_ensureDoneFuture](); |
2893 } | 2860 } |
2894 [_closeUnchecked]() { | 2861 [_closeUnchecked]() { |
2895 this[_state] = dart.notNull(this[_state]) | dart.notNull(_StreamControll
er[_STATE_CLOSED]); | 2862 this[_state] = dart.notNull(this[_state]) | dart.notNull(_StreamControll
er._STATE_CLOSED); |
2896 if (this.hasListener) { | 2863 if (this.hasListener) { |
2897 this[_sendDone](); | 2864 this[_sendDone](); |
2898 } else if (this[_isInitialState]) { | 2865 } else if (this[_isInitialState]) { |
2899 this[_ensurePendingEvents]().add(dart.const(new _DelayedDone())); | 2866 this[_ensurePendingEvents]().add(dart.const(new _DelayedDone())); |
2900 } | 2867 } |
2901 } | 2868 } |
2902 [_add](value) { | 2869 [_add](value) { |
2903 if (this.hasListener) { | 2870 if (this.hasListener) { |
2904 this[_sendData](value); | 2871 this[_sendData](value); |
2905 } else if (this[_isInitialState]) { | 2872 } else if (this[_isInitialState]) { |
2906 this[_ensurePendingEvents]().add(new (_DelayedData$(T))(value)); | 2873 this[_ensurePendingEvents]().add(new (_DelayedData$(T))(value)); |
2907 } | 2874 } |
2908 } | 2875 } |
2909 [_addError](error, stackTrace) { | 2876 [_addError](error, stackTrace) { |
2910 if (this.hasListener) { | 2877 if (this.hasListener) { |
2911 this[_sendError](error, stackTrace); | 2878 this[_sendError](error, stackTrace); |
2912 } else if (this[_isInitialState]) { | 2879 } else if (this[_isInitialState]) { |
2913 this[_ensurePendingEvents]().add(new _DelayedError(error, stackTrace))
; | 2880 this[_ensurePendingEvents]().add(new _DelayedError(error, stackTrace))
; |
2914 } | 2881 } |
2915 } | 2882 } |
2916 [_close]() { | 2883 [_close]() { |
2917 dart.assert(this[_isAddingStream]); | 2884 dart.assert(this[_isAddingStream]); |
2918 let addState = dart.as(this[_varData], _StreamControllerAddStreamState); | 2885 let addState = dart.as(this[_varData], _StreamControllerAddStreamState); |
2919 this[_varData] = addState.varData; | 2886 this[_varData] = addState.varData; |
2920 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_StreamControl
ler[_STATE_ADDSTREAM]); | 2887 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_StreamControl
ler._STATE_ADDSTREAM); |
2921 addState.complete(); | 2888 addState.complete(); |
2922 } | 2889 } |
2923 [_subscribe](onData, onError, onDone, cancelOnError) { | 2890 [_subscribe](onData, onError, onDone, cancelOnError) { |
2924 if (!dart.notNull(this[_isInitialState])) { | 2891 if (!dart.notNull(this[_isInitialState])) { |
2925 throw new core.StateError("Stream has already been listened to."); | 2892 throw new core.StateError("Stream has already been listened to."); |
2926 } | 2893 } |
2927 let subscription = new _ControllerSubscription(this, onData, onError, on
Done, cancelOnError); | 2894 let subscription = new _ControllerSubscription(this, onData, onError, on
Done, cancelOnError); |
2928 let pendingEvents = this[_pendingEvents]; | 2895 let pendingEvents = this[_pendingEvents]; |
2929 this[_state] = dart.notNull(this[_state]) | dart.notNull(_StreamControll
er[_STATE_SUBSCRIBED]); | 2896 this[_state] = dart.notNull(this[_state]) | dart.notNull(_StreamControll
er._STATE_SUBSCRIBED); |
2930 if (this[_isAddingStream]) { | 2897 if (this[_isAddingStream]) { |
2931 let addState = dart.as(this[_varData], _StreamControllerAddStreamState
); | 2898 let addState = dart.as(this[_varData], _StreamControllerAddStreamState
); |
2932 addState.varData = subscription; | 2899 addState.varData = subscription; |
2933 addState.resume(); | 2900 addState.resume(); |
2934 } else { | 2901 } else { |
2935 this[_varData] = subscription; | 2902 this[_varData] = subscription; |
2936 } | 2903 } |
2937 subscription[_setPendingEvents](pendingEvents); | 2904 subscription[_setPendingEvents](pendingEvents); |
2938 subscription[_guardCallback]((() => { | 2905 subscription[_guardCallback]((() => { |
2939 _runGuarded(this[_onListen]); | 2906 _runGuarded(this[_onListen]); |
2940 }).bind(this)); | 2907 }).bind(this)); |
2941 return dart.as(subscription, StreamSubscription$(T)); | 2908 return dart.as(subscription, StreamSubscription$(T)); |
2942 } | 2909 } |
2943 [_recordCancel](subscription) { | 2910 [_recordCancel](subscription) { |
2944 let result = null; | 2911 let result = null; |
2945 if (this[_isAddingStream]) { | 2912 if (this[_isAddingStream]) { |
2946 let addState = dart.as(this[_varData], _StreamControllerAddStreamState
); | 2913 let addState = dart.as(this[_varData], _StreamControllerAddStreamState
); |
2947 result = addState.cancel(); | 2914 result = addState.cancel(); |
2948 } | 2915 } |
2949 this[_varData] = null; | 2916 this[_varData] = null; |
2950 this[_state] = dart.notNull(this[_state]) & ~(dart.notNull(_StreamContro
ller[_STATE_SUBSCRIBED]) | dart.notNull(_StreamController[_STATE_ADDSTREAM])) |
dart.notNull(_StreamController[_STATE_CANCELED]); | 2917 this[_state] = dart.notNull(this[_state]) & ~(dart.notNull(_StreamContro
ller._STATE_SUBSCRIBED) | dart.notNull(_StreamController._STATE_ADDSTREAM)) | da
rt.notNull(_StreamController._STATE_CANCELED); |
2951 if (this[_onCancel] != null) { | 2918 if (this[_onCancel] != null) { |
2952 if (result == null) { | 2919 if (result == null) { |
2953 try { | 2920 try { |
2954 result = dart.as(this[_onCancel](), Future); | 2921 result = dart.as(this[_onCancel](), Future); |
2955 } catch (e) { | 2922 } catch (e) { |
2956 let s = dart.stackTrace(e); | 2923 let s = dart.stackTrace(e); |
2957 result = new _Future(); | 2924 result = new _Future(); |
2958 result[_asyncCompleteError](e, s); | 2925 result[_asyncCompleteError](e, s); |
2959 } | 2926 } |
2960 | 2927 |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3191 this[_isUsed] = true; | 3158 this[_isUsed] = true; |
3192 let _ = new _BufferingStreamSubscription(onData, onError, onDone, cancel
OnError); | 3159 let _ = new _BufferingStreamSubscription(onData, onError, onDone, cancel
OnError); |
3193 _[_setPendingEvents](this[_pending]()); | 3160 _[_setPendingEvents](this[_pending]()); |
3194 return _; | 3161 return _; |
3195 } | 3162 } |
3196 } | 3163 } |
3197 return _GeneratedStreamImpl; | 3164 return _GeneratedStreamImpl; |
3198 }); | 3165 }); |
3199 let _GeneratedStreamImpl = _GeneratedStreamImpl$(); | 3166 let _GeneratedStreamImpl = _GeneratedStreamImpl$(); |
3200 let _iterator = Symbol('_iterator'); | 3167 let _iterator = Symbol('_iterator'); |
3201 let _STATE_UNSCHEDULED = Symbol('_STATE_UNSCHEDULED'); | |
3202 let _STATE_SCHEDULED = Symbol('_STATE_SCHEDULED'); | |
3203 let _eventScheduled = Symbol('_eventScheduled'); | 3168 let _eventScheduled = Symbol('_eventScheduled'); |
3204 class _PendingEvents extends core.Object { | 3169 class _PendingEvents extends core.Object { |
3205 _PendingEvents() { | 3170 _PendingEvents() { |
3206 this[_state] = _PendingEvents[_STATE_UNSCHEDULED]; | 3171 this[_state] = _PendingEvents._STATE_UNSCHEDULED; |
3207 } | 3172 } |
3208 get isScheduled() { | 3173 get isScheduled() { |
3209 return this[_state] == _PendingEvents[_STATE_SCHEDULED]; | 3174 return this[_state] == _PendingEvents._STATE_SCHEDULED; |
3210 } | 3175 } |
3211 get [_eventScheduled]() { | 3176 get [_eventScheduled]() { |
3212 return dart.notNull(this[_state]) >= dart.notNull(_PendingEvents[_STATE_SC
HEDULED]); | 3177 return dart.notNull(this[_state]) >= dart.notNull(_PendingEvents._STATE_SC
HEDULED); |
3213 } | 3178 } |
3214 schedule(dispatch) { | 3179 schedule(dispatch) { |
3215 if (this.isScheduled) | 3180 if (this.isScheduled) |
3216 return; | 3181 return; |
3217 dart.assert(!dart.notNull(this.isEmpty)); | 3182 dart.assert(!dart.notNull(this.isEmpty)); |
3218 if (this[_eventScheduled]) { | 3183 if (this[_eventScheduled]) { |
3219 dart.assert(this[_state] == _PendingEvents[_STATE_CANCELED]); | 3184 dart.assert(this[_state] == _PendingEvents._STATE_CANCELED); |
3220 this[_state] = _PendingEvents[_STATE_SCHEDULED]; | 3185 this[_state] = _PendingEvents._STATE_SCHEDULED; |
3221 return; | 3186 return; |
3222 } | 3187 } |
3223 scheduleMicrotask((() => { | 3188 scheduleMicrotask((() => { |
3224 let oldState = this[_state]; | 3189 let oldState = this[_state]; |
3225 this[_state] = _PendingEvents[_STATE_UNSCHEDULED]; | 3190 this[_state] = _PendingEvents._STATE_UNSCHEDULED; |
3226 if (oldState == _PendingEvents[_STATE_CANCELED]) | 3191 if (oldState == _PendingEvents._STATE_CANCELED) |
3227 return; | 3192 return; |
3228 this.handleNext(dispatch); | 3193 this.handleNext(dispatch); |
3229 }).bind(this)); | 3194 }).bind(this)); |
3230 this[_state] = _PendingEvents[_STATE_SCHEDULED]; | 3195 this[_state] = _PendingEvents._STATE_SCHEDULED; |
3231 } | 3196 } |
3232 cancelSchedule() { | 3197 cancelSchedule() { |
3233 if (this.isScheduled) | 3198 if (this.isScheduled) |
3234 this[_state] = _PendingEvents[_STATE_CANCELED]; | 3199 this[_state] = _PendingEvents._STATE_CANCELED; |
3235 } | 3200 } |
3236 } | 3201 } |
3237 _PendingEvents._STATE_UNSCHEDULED = 0; | 3202 _PendingEvents._STATE_UNSCHEDULED = 0; |
3238 _PendingEvents._STATE_SCHEDULED = 1; | 3203 _PendingEvents._STATE_SCHEDULED = 1; |
3239 _PendingEvents._STATE_CANCELED = 3; | 3204 _PendingEvents._STATE_CANCELED = 3; |
3240 let _IterablePendingEvents$ = dart.generic(function(T) { | 3205 let _IterablePendingEvents$ = dart.generic(function(T) { |
3241 class _IterablePendingEvents extends _PendingEvents { | 3206 class _IterablePendingEvents extends _PendingEvents { |
3242 _IterablePendingEvents(data) { | 3207 _IterablePendingEvents(data) { |
3243 this[_iterator] = data[core.$iterator]; | 3208 this[_iterator] = data[core.$iterator]; |
3244 super._PendingEvents(); | 3209 super._PendingEvents(); |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3383 let newPrevious = newNext[_previous]; | 3348 let newPrevious = newNext[_previous]; |
3384 newPrevious[_next] = this; | 3349 newPrevious[_next] = this; |
3385 newNext[_previous] = this[_previous]; | 3350 newNext[_previous] = this[_previous]; |
3386 this[_previous][_next] = newNext; | 3351 this[_previous][_next] = newNext; |
3387 this[_previous] = newPrevious; | 3352 this[_previous] = newPrevious; |
3388 } | 3353 } |
3389 } | 3354 } |
3390 let _broadcastCallback = dart.typedef('_broadcastCallback', () => dart.functio
nType(dart.void, [StreamSubscription])); | 3355 let _broadcastCallback = dart.typedef('_broadcastCallback', () => dart.functio
nType(dart.void, [StreamSubscription])); |
3391 let _schedule = Symbol('_schedule'); | 3356 let _schedule = Symbol('_schedule'); |
3392 let _isSent = Symbol('_isSent'); | 3357 let _isSent = Symbol('_isSent'); |
3393 let _DONE_SENT = Symbol('_DONE_SENT'); | |
3394 let _isScheduled = Symbol('_isScheduled'); | 3358 let _isScheduled = Symbol('_isScheduled'); |
3395 let _SCHEDULED = Symbol('_SCHEDULED'); | |
3396 let _PAUSED = Symbol('_PAUSED'); | |
3397 let _DoneStreamSubscription$ = dart.generic(function(T) { | 3359 let _DoneStreamSubscription$ = dart.generic(function(T) { |
3398 class _DoneStreamSubscription extends core.Object { | 3360 class _DoneStreamSubscription extends core.Object { |
3399 _DoneStreamSubscription(onDone) { | 3361 _DoneStreamSubscription(onDone) { |
3400 this[_onDone] = onDone; | 3362 this[_onDone] = onDone; |
3401 this[_zone] = Zone.current; | 3363 this[_zone] = Zone.current; |
3402 this[_state] = 0; | 3364 this[_state] = 0; |
3403 this[_schedule](); | 3365 this[_schedule](); |
3404 } | 3366 } |
3405 get [_isSent]() { | 3367 get [_isSent]() { |
3406 return (dart.notNull(this[_state]) & dart.notNull(_DoneStreamSubscriptio
n[_DONE_SENT])) != 0; | 3368 return (dart.notNull(this[_state]) & dart.notNull(_DoneStreamSubscriptio
n._DONE_SENT)) != 0; |
3407 } | 3369 } |
3408 get [_isScheduled]() { | 3370 get [_isScheduled]() { |
3409 return (dart.notNull(this[_state]) & dart.notNull(_DoneStreamSubscriptio
n[_SCHEDULED])) != 0; | 3371 return (dart.notNull(this[_state]) & dart.notNull(_DoneStreamSubscriptio
n._SCHEDULED)) != 0; |
3410 } | 3372 } |
3411 get isPaused() { | 3373 get isPaused() { |
3412 return dart.notNull(this[_state]) >= dart.notNull(_DoneStreamSubscriptio
n[_PAUSED]); | 3374 return dart.notNull(this[_state]) >= dart.notNull(_DoneStreamSubscriptio
n._PAUSED); |
3413 } | 3375 } |
3414 [_schedule]() { | 3376 [_schedule]() { |
3415 if (this[_isScheduled]) | 3377 if (this[_isScheduled]) |
3416 return; | 3378 return; |
3417 this[_zone].scheduleMicrotask(this[_sendDone].bind(this)); | 3379 this[_zone].scheduleMicrotask(this[_sendDone].bind(this)); |
3418 this[_state] = dart.notNull(this[_state]) | dart.notNull(_DoneStreamSubs
cription[_SCHEDULED]); | 3380 this[_state] = dart.notNull(this[_state]) | dart.notNull(_DoneStreamSubs
cription._SCHEDULED); |
3419 } | 3381 } |
3420 onData(handleData) {} | 3382 onData(handleData) {} |
3421 onError(handleError) {} | 3383 onError(handleError) {} |
3422 onDone(handleDone) { | 3384 onDone(handleDone) { |
3423 this[_onDone] = handleDone; | 3385 this[_onDone] = handleDone; |
3424 } | 3386 } |
3425 pause(resumeSignal) { | 3387 pause(resumeSignal) { |
3426 if (resumeSignal === void 0) | 3388 if (resumeSignal === void 0) |
3427 resumeSignal = null; | 3389 resumeSignal = null; |
3428 this[_state] = dart.notNull(this[_state]) + dart.notNull(_DoneStreamSubs
cription[_PAUSED]); | 3390 this[_state] = dart.notNull(this[_state]) + dart.notNull(_DoneStreamSubs
cription._PAUSED); |
3429 if (resumeSignal != null) | 3391 if (resumeSignal != null) |
3430 resumeSignal.whenComplete(this.resume.bind(this)); | 3392 resumeSignal.whenComplete(this.resume.bind(this)); |
3431 } | 3393 } |
3432 resume() { | 3394 resume() { |
3433 if (this.isPaused) { | 3395 if (this.isPaused) { |
3434 this[_state] = dart.notNull(this[_state]) - dart.notNull(_DoneStreamSu
bscription[_PAUSED]); | 3396 this[_state] = dart.notNull(this[_state]) - dart.notNull(_DoneStreamSu
bscription._PAUSED); |
3435 if (!dart.notNull(this.isPaused) && !dart.notNull(this[_isSent])) { | 3397 if (!dart.notNull(this.isPaused) && !dart.notNull(this[_isSent])) { |
3436 this[_schedule](); | 3398 this[_schedule](); |
3437 } | 3399 } |
3438 } | 3400 } |
3439 } | 3401 } |
3440 cancel() { | 3402 cancel() { |
3441 return null; | 3403 return null; |
3442 } | 3404 } |
3443 asFuture(futureValue) { | 3405 asFuture(futureValue) { |
3444 if (futureValue === void 0) | 3406 if (futureValue === void 0) |
3445 futureValue = null; | 3407 futureValue = null; |
3446 let result = new _Future(); | 3408 let result = new _Future(); |
3447 this[_onDone] = () => { | 3409 this[_onDone] = () => { |
3448 result[_completeWithValue](null); | 3410 result[_completeWithValue](null); |
3449 }; | 3411 }; |
3450 return result; | 3412 return result; |
3451 } | 3413 } |
3452 [_sendDone]() { | 3414 [_sendDone]() { |
3453 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_DoneStreamSub
scription[_SCHEDULED]); | 3415 this[_state] = dart.notNull(this[_state]) & ~dart.notNull(_DoneStreamSub
scription._SCHEDULED); |
3454 if (this.isPaused) | 3416 if (this.isPaused) |
3455 return; | 3417 return; |
3456 this[_state] = dart.notNull(this[_state]) | dart.notNull(_DoneStreamSubs
cription[_DONE_SENT]); | 3418 this[_state] = dart.notNull(this[_state]) | dart.notNull(_DoneStreamSubs
cription._DONE_SENT); |
3457 if (this[_onDone] != null) | 3419 if (this[_onDone] != null) |
3458 this[_zone].runGuarded(this[_onDone]); | 3420 this[_zone].runGuarded(this[_onDone]); |
3459 } | 3421 } |
3460 } | 3422 } |
3461 _DoneStreamSubscription[dart.implements] = () => [StreamSubscription$(T)]; | 3423 _DoneStreamSubscription[dart.implements] = () => [StreamSubscription$(T)]; |
3462 _DoneStreamSubscription._DONE_SENT = 1; | 3424 _DoneStreamSubscription._DONE_SENT = 1; |
3463 _DoneStreamSubscription._SCHEDULED = 2; | 3425 _DoneStreamSubscription._SCHEDULED = 2; |
3464 _DoneStreamSubscription._PAUSED = 4; | 3426 _DoneStreamSubscription._PAUSED = 4; |
3465 return _DoneStreamSubscription; | 3427 return _DoneStreamSubscription; |
3466 }); | 3428 }); |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3576 asFuture(futureValue) { | 3538 asFuture(futureValue) { |
3577 if (futureValue === void 0) | 3539 if (futureValue === void 0) |
3578 futureValue = null; | 3540 futureValue = null; |
3579 throw new core.UnsupportedError("Cannot change handlers of asBroadcastSt
ream source subscription."); | 3541 throw new core.UnsupportedError("Cannot change handlers of asBroadcastSt
ream source subscription."); |
3580 } | 3542 } |
3581 } | 3543 } |
3582 _BroadcastSubscriptionWrapper[dart.implements] = () => [StreamSubscription$(
T)]; | 3544 _BroadcastSubscriptionWrapper[dart.implements] = () => [StreamSubscription$(
T)]; |
3583 return _BroadcastSubscriptionWrapper; | 3545 return _BroadcastSubscriptionWrapper; |
3584 }); | 3546 }); |
3585 let _BroadcastSubscriptionWrapper = _BroadcastSubscriptionWrapper$(); | 3547 let _BroadcastSubscriptionWrapper = _BroadcastSubscriptionWrapper$(); |
3586 let _STATE_FOUND = Symbol('_STATE_FOUND'); | |
3587 let _current = Symbol('_current'); | 3548 let _current = Symbol('_current'); |
3588 let _futureOrPrefetch = Symbol('_futureOrPrefetch'); | 3549 let _futureOrPrefetch = Symbol('_futureOrPrefetch'); |
3589 let _STATE_DONE = Symbol('_STATE_DONE'); | |
3590 let _STATE_MOVING = Symbol('_STATE_MOVING'); | |
3591 let _STATE_EXTRA_DATA = Symbol('_STATE_EXTRA_DATA'); | |
3592 let _STATE_EXTRA_ERROR = Symbol('_STATE_EXTRA_ERROR'); | |
3593 let _clear = Symbol('_clear'); | 3550 let _clear = Symbol('_clear'); |
3594 let _STATE_EXTRA_DONE = Symbol('_STATE_EXTRA_DONE'); | |
3595 let _StreamIteratorImpl$ = dart.generic(function(T) { | 3551 let _StreamIteratorImpl$ = dart.generic(function(T) { |
3596 class _StreamIteratorImpl extends core.Object { | 3552 class _StreamIteratorImpl extends core.Object { |
3597 _StreamIteratorImpl(stream) { | 3553 _StreamIteratorImpl(stream) { |
3598 this[_subscription] = null; | 3554 this[_subscription] = null; |
3599 this[_current] = null; | 3555 this[_current] = null; |
3600 this[_futureOrPrefetch] = null; | 3556 this[_futureOrPrefetch] = null; |
3601 this[_state] = _StreamIteratorImpl[_STATE_FOUND]; | 3557 this[_state] = _StreamIteratorImpl._STATE_FOUND; |
3602 this[_subscription] = stream.listen(this[_onData].bind(this), {onError:
this[_onError].bind(this), onDone: this[_onDone].bind(this), cancelOnError: true
}); | 3558 this[_subscription] = stream.listen(this[_onData].bind(this), {onError:
this[_onError].bind(this), onDone: this[_onDone].bind(this), cancelOnError: true
}); |
3603 } | 3559 } |
3604 get current() { | 3560 get current() { |
3605 return this[_current]; | 3561 return this[_current]; |
3606 } | 3562 } |
3607 moveNext() { | 3563 moveNext() { |
3608 if (this[_state] == _StreamIteratorImpl[_STATE_DONE]) { | 3564 if (this[_state] == _StreamIteratorImpl._STATE_DONE) { |
3609 return new _Future$(core.bool).immediate(false); | 3565 return new _Future$(core.bool).immediate(false); |
3610 } | 3566 } |
3611 if (this[_state] == _StreamIteratorImpl[_STATE_MOVING]) { | 3567 if (this[_state] == _StreamIteratorImpl._STATE_MOVING) { |
3612 throw new core.StateError("Already waiting for next."); | 3568 throw new core.StateError("Already waiting for next."); |
3613 } | 3569 } |
3614 if (this[_state] == _StreamIteratorImpl[_STATE_FOUND]) { | 3570 if (this[_state] == _StreamIteratorImpl._STATE_FOUND) { |
3615 this[_state] = _StreamIteratorImpl[_STATE_MOVING]; | 3571 this[_state] = _StreamIteratorImpl._STATE_MOVING; |
3616 this[_current] = null; | 3572 this[_current] = null; |
3617 this[_futureOrPrefetch] = new (_Future$(core.bool))(); | 3573 this[_futureOrPrefetch] = new (_Future$(core.bool))(); |
3618 return dart.as(this[_futureOrPrefetch], Future$(core.bool)); | 3574 return dart.as(this[_futureOrPrefetch], Future$(core.bool)); |
3619 } else { | 3575 } else { |
3620 dart.assert(dart.notNull(this[_state]) >= dart.notNull(_StreamIterator
Impl[_STATE_EXTRA_DATA])); | 3576 dart.assert(dart.notNull(this[_state]) >= dart.notNull(_StreamIterator
Impl._STATE_EXTRA_DATA)); |
3621 switch (this[_state]) { | 3577 switch (this[_state]) { |
3622 case _StreamIteratorImpl[_STATE_EXTRA_DATA]: | 3578 case _StreamIteratorImpl._STATE_EXTRA_DATA: |
3623 { | 3579 { |
3624 this[_state] = _StreamIteratorImpl[_STATE_FOUND]; | 3580 this[_state] = _StreamIteratorImpl._STATE_FOUND; |
3625 this[_current] = dart.as(this[_futureOrPrefetch], T); | 3581 this[_current] = dart.as(this[_futureOrPrefetch], T); |
3626 this[_futureOrPrefetch] = null; | 3582 this[_futureOrPrefetch] = null; |
3627 this[_subscription].resume(); | 3583 this[_subscription].resume(); |
3628 return new _Future$(core.bool).immediate(true); | 3584 return new _Future$(core.bool).immediate(true); |
3629 } | 3585 } |
3630 case _StreamIteratorImpl[_STATE_EXTRA_ERROR]: | 3586 case _StreamIteratorImpl._STATE_EXTRA_ERROR: |
3631 { | 3587 { |
3632 let prefetch = dart.as(this[_futureOrPrefetch], AsyncError); | 3588 let prefetch = dart.as(this[_futureOrPrefetch], AsyncError); |
3633 this[_clear](); | 3589 this[_clear](); |
3634 return new _Future$(core.bool).immediateError(prefetch.error, pref
etch.stackTrace); | 3590 return new _Future$(core.bool).immediateError(prefetch.error, pref
etch.stackTrace); |
3635 } | 3591 } |
3636 case _StreamIteratorImpl[_STATE_EXTRA_DONE]: | 3592 case _StreamIteratorImpl._STATE_EXTRA_DONE: |
3637 { | 3593 { |
3638 this[_clear](); | 3594 this[_clear](); |
3639 return new _Future$(core.bool).immediate(false); | 3595 return new _Future$(core.bool).immediate(false); |
3640 } | 3596 } |
3641 } | 3597 } |
3642 } | 3598 } |
3643 } | 3599 } |
3644 [_clear]() { | 3600 [_clear]() { |
3645 this[_subscription] = null; | 3601 this[_subscription] = null; |
3646 this[_futureOrPrefetch] = null; | 3602 this[_futureOrPrefetch] = null; |
3647 this[_current] = null; | 3603 this[_current] = null; |
3648 this[_state] = _StreamIteratorImpl[_STATE_DONE]; | 3604 this[_state] = _StreamIteratorImpl._STATE_DONE; |
3649 } | 3605 } |
3650 cancel() { | 3606 cancel() { |
3651 let subscription = this[_subscription]; | 3607 let subscription = this[_subscription]; |
3652 if (this[_state] == _StreamIteratorImpl[_STATE_MOVING]) { | 3608 if (this[_state] == _StreamIteratorImpl._STATE_MOVING) { |
3653 let hasNext = dart.as(this[_futureOrPrefetch], _Future$(core.bool)); | 3609 let hasNext = dart.as(this[_futureOrPrefetch], _Future$(core.bool)); |
3654 this[_clear](); | 3610 this[_clear](); |
3655 hasNext[_complete](false); | 3611 hasNext[_complete](false); |
3656 } else { | 3612 } else { |
3657 this[_clear](); | 3613 this[_clear](); |
3658 } | 3614 } |
3659 return subscription.cancel(); | 3615 return subscription.cancel(); |
3660 } | 3616 } |
3661 [_onData](data) { | 3617 [_onData](data) { |
3662 if (this[_state] == _StreamIteratorImpl[_STATE_MOVING]) { | 3618 if (this[_state] == _StreamIteratorImpl._STATE_MOVING) { |
3663 this[_current] = data; | 3619 this[_current] = data; |
3664 let hasNext = dart.as(this[_futureOrPrefetch], _Future$(core.bool)); | 3620 let hasNext = dart.as(this[_futureOrPrefetch], _Future$(core.bool)); |
3665 this[_futureOrPrefetch] = null; | 3621 this[_futureOrPrefetch] = null; |
3666 this[_state] = _StreamIteratorImpl[_STATE_FOUND]; | 3622 this[_state] = _StreamIteratorImpl._STATE_FOUND; |
3667 hasNext[_complete](true); | 3623 hasNext[_complete](true); |
3668 return; | 3624 return; |
3669 } | 3625 } |
3670 this[_subscription].pause(); | 3626 this[_subscription].pause(); |
3671 dart.assert(this[_futureOrPrefetch] == null); | 3627 dart.assert(this[_futureOrPrefetch] == null); |
3672 this[_futureOrPrefetch] = data; | 3628 this[_futureOrPrefetch] = data; |
3673 this[_state] = _StreamIteratorImpl[_STATE_EXTRA_DATA]; | 3629 this[_state] = _StreamIteratorImpl._STATE_EXTRA_DATA; |
3674 } | 3630 } |
3675 [_onError](error, stackTrace) { | 3631 [_onError](error, stackTrace) { |
3676 if (stackTrace === void 0) | 3632 if (stackTrace === void 0) |
3677 stackTrace = null; | 3633 stackTrace = null; |
3678 if (this[_state] == _StreamIteratorImpl[_STATE_MOVING]) { | 3634 if (this[_state] == _StreamIteratorImpl._STATE_MOVING) { |
3679 let hasNext = dart.as(this[_futureOrPrefetch], _Future$(core.bool)); | 3635 let hasNext = dart.as(this[_futureOrPrefetch], _Future$(core.bool)); |
3680 this[_clear](); | 3636 this[_clear](); |
3681 hasNext[_completeError](error, stackTrace); | 3637 hasNext[_completeError](error, stackTrace); |
3682 return; | 3638 return; |
3683 } | 3639 } |
3684 this[_subscription].pause(); | 3640 this[_subscription].pause(); |
3685 dart.assert(this[_futureOrPrefetch] == null); | 3641 dart.assert(this[_futureOrPrefetch] == null); |
3686 this[_futureOrPrefetch] = new AsyncError(error, stackTrace); | 3642 this[_futureOrPrefetch] = new AsyncError(error, stackTrace); |
3687 this[_state] = _StreamIteratorImpl[_STATE_EXTRA_ERROR]; | 3643 this[_state] = _StreamIteratorImpl._STATE_EXTRA_ERROR; |
3688 } | 3644 } |
3689 [_onDone]() { | 3645 [_onDone]() { |
3690 if (this[_state] == _StreamIteratorImpl[_STATE_MOVING]) { | 3646 if (this[_state] == _StreamIteratorImpl._STATE_MOVING) { |
3691 let hasNext = dart.as(this[_futureOrPrefetch], _Future$(core.bool)); | 3647 let hasNext = dart.as(this[_futureOrPrefetch], _Future$(core.bool)); |
3692 this[_clear](); | 3648 this[_clear](); |
3693 hasNext[_complete](false); | 3649 hasNext[_complete](false); |
3694 return; | 3650 return; |
3695 } | 3651 } |
3696 this[_subscription].pause(); | 3652 this[_subscription].pause(); |
3697 this[_futureOrPrefetch] = null; | 3653 this[_futureOrPrefetch] = null; |
3698 this[_state] = _StreamIteratorImpl[_STATE_EXTRA_DONE]; | 3654 this[_state] = _StreamIteratorImpl._STATE_EXTRA_DONE; |
3699 } | 3655 } |
3700 } | 3656 } |
3701 _StreamIteratorImpl[dart.implements] = () => [StreamIterator$(T)]; | 3657 _StreamIteratorImpl[dart.implements] = () => [StreamIterator$(T)]; |
3702 _StreamIteratorImpl._STATE_FOUND = 0; | 3658 _StreamIteratorImpl._STATE_FOUND = 0; |
3703 _StreamIteratorImpl._STATE_DONE = 1; | 3659 _StreamIteratorImpl._STATE_DONE = 1; |
3704 _StreamIteratorImpl._STATE_MOVING = 2; | 3660 _StreamIteratorImpl._STATE_MOVING = 2; |
3705 _StreamIteratorImpl._STATE_EXTRA_DATA = 3; | 3661 _StreamIteratorImpl._STATE_EXTRA_DATA = 3; |
3706 _StreamIteratorImpl._STATE_EXTRA_ERROR = 4; | 3662 _StreamIteratorImpl._STATE_EXTRA_ERROR = 4; |
3707 _StreamIteratorImpl._STATE_EXTRA_DONE = 5; | 3663 _StreamIteratorImpl._STATE_EXTRA_DONE = 5; |
3708 return _StreamIteratorImpl; | 3664 return _StreamIteratorImpl; |
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4076 } | 4032 } |
4077 } | 4033 } |
4078 return _SkipWhileStream; | 4034 return _SkipWhileStream; |
4079 }); | 4035 }); |
4080 let _SkipWhileStream = _SkipWhileStream$(); | 4036 let _SkipWhileStream = _SkipWhileStream$(); |
4081 let _Equality$ = dart.generic(function(T) { | 4037 let _Equality$ = dart.generic(function(T) { |
4082 let _Equality = dart.typedef('_Equality', () => dart.functionType(core.bool,
[T, T])); | 4038 let _Equality = dart.typedef('_Equality', () => dart.functionType(core.bool,
[T, T])); |
4083 return _Equality; | 4039 return _Equality; |
4084 }); | 4040 }); |
4085 let _Equality = _Equality$(); | 4041 let _Equality = _Equality$(); |
4086 let _SENTINEL = Symbol('_SENTINEL'); | |
4087 let _equals = Symbol('_equals'); | 4042 let _equals = Symbol('_equals'); |
4088 let _DistinctStream$ = dart.generic(function(T) { | 4043 let _DistinctStream$ = dart.generic(function(T) { |
4089 class _DistinctStream extends _ForwardingStream$(T, T) { | 4044 class _DistinctStream extends _ForwardingStream$(T, T) { |
4090 _DistinctStream(source, equals) { | 4045 _DistinctStream(source, equals) { |
4091 this[_previous] = _DistinctStream[_SENTINEL]; | 4046 this[_previous] = _DistinctStream._SENTINEL; |
4092 this[_equals] = equals; | 4047 this[_equals] = equals; |
4093 super._ForwardingStream(source); | 4048 super._ForwardingStream(source); |
4094 } | 4049 } |
4095 [_handleData](inputEvent, sink) { | 4050 [_handleData](inputEvent, sink) { |
4096 if (core.identical(this[_previous], _DistinctStream[_SENTINEL])) { | 4051 if (core.identical(this[_previous], _DistinctStream._SENTINEL)) { |
4097 this[_previous] = inputEvent; | 4052 this[_previous] = inputEvent; |
4098 return sink[_add](inputEvent); | 4053 return sink[_add](inputEvent); |
4099 } else { | 4054 } else { |
4100 let isEqual = null; | 4055 let isEqual = null; |
4101 try { | 4056 try { |
4102 if (this[_equals] == null) { | 4057 if (this[_equals] == null) { |
4103 isEqual = dart.equals(this[_previous], inputEvent); | 4058 isEqual = dart.equals(this[_previous], inputEvent); |
4104 } else { | 4059 } else { |
4105 isEqual = this[_equals](dart.as(this[_previous], T), inputEvent); | 4060 isEqual = this[_equals](dart.as(this[_previous], T), inputEvent); |
4106 } | 4061 } |
4107 } catch (e) { | 4062 } catch (e) { |
4108 let s = dart.stackTrace(e); | 4063 let s = dart.stackTrace(e); |
4109 _addErrorWithReplacement(sink, e, s); | 4064 _addErrorWithReplacement(sink, e, s); |
4110 return null; | 4065 return null; |
4111 } | 4066 } |
4112 | 4067 |
4113 if (!dart.notNull(isEqual)) { | 4068 if (!dart.notNull(isEqual)) { |
4114 sink[_add](inputEvent); | 4069 sink[_add](inputEvent); |
4115 this[_previous] = inputEvent; | 4070 this[_previous] = inputEvent; |
4116 } | 4071 } |
4117 } | 4072 } |
4118 } | 4073 } |
4119 } | 4074 } |
4120 dart.defineLazyProperties(_DistinctStream, { | 4075 dart.defineLazyProperties(_DistinctStream, { |
4121 get [_SENTINEL]() { | 4076 get _SENTINEL() { |
4122 return new core.Object(); | 4077 return new core.Object(); |
4123 }, | 4078 }, |
4124 set [_SENTINEL](_) {} | 4079 set _SENTINEL(_) {} |
4125 }); | 4080 }); |
4126 return _DistinctStream; | 4081 return _DistinctStream; |
4127 }); | 4082 }); |
4128 let _DistinctStream = _DistinctStream$(); | 4083 let _DistinctStream = _DistinctStream$(); |
4129 let _EventSinkWrapper$ = dart.generic(function(T) { | 4084 let _EventSinkWrapper$ = dart.generic(function(T) { |
4130 class _EventSinkWrapper extends core.Object { | 4085 class _EventSinkWrapper extends core.Object { |
4131 _EventSinkWrapper(sink) { | 4086 _EventSinkWrapper(sink) { |
4132 this[_sink] = sink; | 4087 this[_sink] = sink; |
4133 } | 4088 } |
4134 add(data) { | 4089 add(data) { |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4307 return this[_handleError](error, stackTrace, this[_sink]); | 4262 return this[_handleError](error, stackTrace, this[_sink]); |
4308 } | 4263 } |
4309 close() { | 4264 close() { |
4310 return this[_handleDone](this[_sink]); | 4265 return this[_handleDone](this[_sink]); |
4311 } | 4266 } |
4312 } | 4267 } |
4313 _HandlerEventSink[dart.implements] = () => [EventSink$(S)]; | 4268 _HandlerEventSink[dart.implements] = () => [EventSink$(S)]; |
4314 return _HandlerEventSink; | 4269 return _HandlerEventSink; |
4315 }); | 4270 }); |
4316 let _HandlerEventSink = _HandlerEventSink$(); | 4271 let _HandlerEventSink = _HandlerEventSink$(); |
4317 let _defaultHandleData = Symbol('_defaultHandleData'); | |
4318 let _defaultHandleError = Symbol('_defaultHandleError'); | |
4319 let _defaultHandleDone = Symbol('_defaultHandleDone'); | |
4320 let _StreamHandlerTransformer$ = dart.generic(function(S, T) { | 4272 let _StreamHandlerTransformer$ = dart.generic(function(S, T) { |
4321 class _StreamHandlerTransformer extends _StreamSinkTransformer$(S, T) { | 4273 class _StreamHandlerTransformer extends _StreamSinkTransformer$(S, T) { |
4322 _StreamHandlerTransformer(opts) { | 4274 _StreamHandlerTransformer(opts) { |
4323 let handleData = opts && 'handleData' in opts ? opts.handleData : null; | 4275 let handleData = opts && 'handleData' in opts ? opts.handleData : null; |
4324 let handleError = opts && 'handleError' in opts ? opts.handleError : nul
l; | 4276 let handleError = opts && 'handleError' in opts ? opts.handleError : nul
l; |
4325 let handleDone = opts && 'handleDone' in opts ? opts.handleDone : null; | 4277 let handleDone = opts && 'handleDone' in opts ? opts.handleDone : null; |
4326 super._StreamSinkTransformer(dart.as(outputSink => { | 4278 super._StreamSinkTransformer(dart.as(outputSink => { |
4327 if (handleData == null) | 4279 if (handleData == null) |
4328 handleData = dart.as(_StreamHandlerTransformer[_defaultHandleData],
__CastType29); | 4280 handleData = dart.as(_StreamHandlerTransformer._defaultHandleData, _
_CastType29); |
4329 if (handleError == null) | 4281 if (handleError == null) |
4330 handleError = dart.as(_StreamHandlerTransformer[_defaultHandleError]
, __CastType32); | 4282 handleError = dart.as(_StreamHandlerTransformer._defaultHandleError,
__CastType32); |
4331 if (handleDone == null) | 4283 if (handleDone == null) |
4332 handleDone = _StreamHandlerTransformer[_defaultHandleDone]; | 4284 handleDone = _StreamHandlerTransformer._defaultHandleDone; |
4333 return new (_HandlerEventSink$(S, T))(handleData, handleError, handleD
one, outputSink); | 4285 return new (_HandlerEventSink$(S, T))(handleData, handleError, handleD
one, outputSink); |
4334 }, _SinkMapper$(S, T))); | 4286 }, _SinkMapper$(S, T))); |
4335 } | 4287 } |
4336 bind(stream) { | 4288 bind(stream) { |
4337 return super.bind(stream); | 4289 return super.bind(stream); |
4338 } | 4290 } |
4339 static [_defaultHandleData](data, sink) { | 4291 static _defaultHandleData(data, sink) { |
4340 sink.add(data); | 4292 sink.add(data); |
4341 } | 4293 } |
4342 static [_defaultHandleError](error, stackTrace, sink) { | 4294 static _defaultHandleError(error, stackTrace, sink) { |
4343 sink.addError(error); | 4295 sink.addError(error); |
4344 } | 4296 } |
4345 static [_defaultHandleDone](sink) { | 4297 static _defaultHandleDone(sink) { |
4346 sink.close(); | 4298 sink.close(); |
4347 } | 4299 } |
4348 } | 4300 } |
4349 return _StreamHandlerTransformer; | 4301 return _StreamHandlerTransformer; |
4350 }); | 4302 }); |
4351 let _StreamHandlerTransformer = _StreamHandlerTransformer$(); | 4303 let _StreamHandlerTransformer = _StreamHandlerTransformer$(); |
4352 let _SubscriptionTransformer$ = dart.generic(function(S, T) { | 4304 let _SubscriptionTransformer$ = dart.generic(function(S, T) { |
4353 let _SubscriptionTransformer = dart.typedef('_SubscriptionTransformer', () =
> dart.functionType(StreamSubscription$(T), [Stream$(S), core.bool])); | 4305 let _SubscriptionTransformer = dart.typedef('_SubscriptionTransformer', () =
> dart.functionType(StreamSubscription$(T), [Stream$(S), core.bool])); |
4354 return _SubscriptionTransformer; | 4306 return _SubscriptionTransformer; |
4355 }); | 4307 }); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4393 let __CastType29$ = dart.generic(function(S, T) { | 4345 let __CastType29$ = dart.generic(function(S, T) { |
4394 let __CastType29 = dart.typedef('__CastType29', () => dart.functionType(dart
.void, [S, EventSink$(T)])); | 4346 let __CastType29 = dart.typedef('__CastType29', () => dart.functionType(dart
.void, [S, EventSink$(T)])); |
4395 return __CastType29; | 4347 return __CastType29; |
4396 }); | 4348 }); |
4397 let __CastType29 = __CastType29$(); | 4349 let __CastType29 = __CastType29$(); |
4398 let __CastType32$ = dart.generic(function(T) { | 4350 let __CastType32$ = dart.generic(function(T) { |
4399 let __CastType32 = dart.typedef('__CastType32', () => dart.functionType(dart
.void, [core.Object, core.StackTrace, EventSink$(T)])); | 4351 let __CastType32 = dart.typedef('__CastType32', () => dart.functionType(dart
.void, [core.Object, core.StackTrace, EventSink$(T)])); |
4400 return __CastType32; | 4352 return __CastType32; |
4401 }); | 4353 }); |
4402 let __CastType32 = __CastType32$(); | 4354 let __CastType32 = __CastType32$(); |
4403 let _createPeriodicTimer = Symbol('_createPeriodicTimer'); | |
4404 class Timer extends core.Object { | 4355 class Timer extends core.Object { |
4405 Timer(duration, callback) { | 4356 Timer(duration, callback) { |
4406 if (dart.equals(Zone.current, Zone.ROOT)) { | 4357 if (dart.equals(Zone.current, Zone.ROOT)) { |
4407 return Zone.current.createTimer(duration, callback); | 4358 return Zone.current.createTimer(duration, callback); |
4408 } | 4359 } |
4409 return Zone.current.createTimer(duration, Zone.current.bindCallback(callba
ck, {runGuarded: true})); | 4360 return Zone.current.createTimer(duration, Zone.current.bindCallback(callba
ck, {runGuarded: true})); |
4410 } | 4361 } |
4411 periodic(duration, callback) { | 4362 periodic(duration, callback) { |
4412 if (dart.equals(Zone.current, Zone.ROOT)) { | 4363 if (dart.equals(Zone.current, Zone.ROOT)) { |
4413 return Zone.current.createPeriodicTimer(duration, callback); | 4364 return Zone.current.createPeriodicTimer(duration, callback); |
4414 } | 4365 } |
4415 return Zone.current.createPeriodicTimer(duration, dart.as(Zone.current.bin
dUnaryCallback(callback, {runGuarded: true}), __CastType36)); | 4366 return Zone.current.createPeriodicTimer(duration, dart.as(Zone.current.bin
dUnaryCallback(callback, {runGuarded: true}), __CastType36)); |
4416 } | 4367 } |
4417 static run(callback) { | 4368 static run(callback) { |
4418 new Timer(core.Duration.ZERO, callback); | 4369 new Timer(core.Duration.ZERO, callback); |
4419 } | 4370 } |
4420 static [_createTimer](duration, callback) { | 4371 static _createTimer(duration, callback) { |
4421 let milliseconds = duration.inMilliseconds; | 4372 let milliseconds = duration.inMilliseconds; |
4422 if (dart.notNull(milliseconds) < 0) | 4373 if (dart.notNull(milliseconds) < 0) |
4423 milliseconds = 0; | 4374 milliseconds = 0; |
4424 return new _isolate_helper.TimerImpl(milliseconds, callback); | 4375 return new _isolate_helper.TimerImpl(milliseconds, callback); |
4425 } | 4376 } |
4426 static [_createPeriodicTimer](duration, callback) { | 4377 static _createPeriodicTimer(duration, callback) { |
4427 let milliseconds = duration.inMilliseconds; | 4378 let milliseconds = duration.inMilliseconds; |
4428 if (dart.notNull(milliseconds) < 0) | 4379 if (dart.notNull(milliseconds) < 0) |
4429 milliseconds = 0; | 4380 milliseconds = 0; |
4430 return new _isolate_helper.TimerImpl.periodic(milliseconds, callback); | 4381 return new _isolate_helper.TimerImpl.periodic(milliseconds, callback); |
4431 } | 4382 } |
4432 } | 4383 } |
4433 dart.defineNamedConstructor(Timer, 'periodic'); | 4384 dart.defineNamedConstructor(Timer, 'periodic'); |
4434 let __CastType36 = dart.typedef('__CastType36', () => dart.functionType(dart.v
oid, [Timer])); | 4385 let __CastType36 = dart.typedef('__CastType36', () => dart.functionType(dart.v
oid, [Timer])); |
4435 let ZoneCallback = dart.typedef('ZoneCallback', () => dart.functionType(dart.d
ynamic, [])); | 4386 let ZoneCallback = dart.typedef('ZoneCallback', () => dart.functionType(dart.d
ynamic, [])); |
4436 let ZoneUnaryCallback = dart.typedef('ZoneUnaryCallback', () => dart.functionT
ype(dart.dynamic, [dart.dynamic])); | 4387 let ZoneUnaryCallback = dart.typedef('ZoneUnaryCallback', () => dart.functionT
ype(dart.dynamic, [dart.dynamic])); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4501 this.errorCallback = errorCallback; | 4452 this.errorCallback = errorCallback; |
4502 this.scheduleMicrotask = scheduleMicrotask; | 4453 this.scheduleMicrotask = scheduleMicrotask; |
4503 this.createTimer = createTimer; | 4454 this.createTimer = createTimer; |
4504 this.createPeriodicTimer = createPeriodicTimer; | 4455 this.createPeriodicTimer = createPeriodicTimer; |
4505 this.print = print; | 4456 this.print = print; |
4506 this.fork = fork; | 4457 this.fork = fork; |
4507 } | 4458 } |
4508 } | 4459 } |
4509 _ZoneSpecification[dart.implements] = () => [ZoneSpecification]; | 4460 _ZoneSpecification[dart.implements] = () => [ZoneSpecification]; |
4510 class ZoneDelegate extends core.Object {} | 4461 class ZoneDelegate extends core.Object {} |
4511 let _ = Symbol('_'); | |
4512 class Zone extends core.Object { | 4462 class Zone extends core.Object { |
4513 [_]() { | 4463 _() { |
4514 } | 4464 } |
4515 static get current() { | 4465 static get current() { |
4516 return Zone[_current]; | 4466 return Zone._current; |
4517 } | 4467 } |
4518 static [_enter](zone) { | 4468 static _enter(zone) { |
4519 dart.assert(zone != null); | 4469 dart.assert(zone != null); |
4520 dart.assert(!dart.notNull(core.identical(zone, Zone[_current]))); | 4470 dart.assert(!dart.notNull(core.identical(zone, Zone._current))); |
4521 let previous = Zone[_current]; | 4471 let previous = Zone._current; |
4522 Zone[_current] = zone; | 4472 Zone._current = zone; |
4523 return previous; | 4473 return previous; |
4524 } | 4474 } |
4525 static [_leave](previous) { | 4475 static _leave(previous) { |
4526 dart.assert(previous != null); | 4476 dart.assert(previous != null); |
4527 Zone[_current] = previous; | 4477 Zone._current = previous; |
4528 } | 4478 } |
4529 } | 4479 } |
4530 dart.defineNamedConstructor(Zone, _); | 4480 dart.defineNamedConstructor(Zone, '_'); |
4531 Zone.ROOT = _ROOT_ZONE; | 4481 Zone.ROOT = _ROOT_ZONE; |
4532 Zone._current = _ROOT_ZONE; | 4482 Zone._current = _ROOT_ZONE; |
4533 let _delegate = Symbol('_delegate'); | 4483 let _delegate = Symbol('_delegate'); |
4534 // Function _parentDelegate: (_Zone) → ZoneDelegate | 4484 // Function _parentDelegate: (_Zone) → ZoneDelegate |
4535 function _parentDelegate(zone) { | 4485 function _parentDelegate(zone) { |
4536 if (zone.parent == null) | 4486 if (zone.parent == null) |
4537 return null; | 4487 return null; |
4538 return zone.parent[_delegate]; | 4488 return zone.parent[_delegate]; |
4539 } | 4489 } |
4540 let _delegationTarget = Symbol('_delegationTarget'); | 4490 let _delegationTarget = Symbol('_delegationTarget'); |
4541 let _handleUncaughtError = Symbol('_handleUncaughtError'); | 4491 let _handleUncaughtError = Symbol('_handleUncaughtError'); |
4542 let _run = Symbol('_run'); | 4492 let _run = Symbol('_run'); |
4543 let _runUnary = Symbol('_runUnary'); | 4493 let _runUnary = Symbol('_runUnary'); |
4544 let _runBinary = Symbol('_runBinary'); | 4494 let _runBinary = Symbol('_runBinary'); |
4545 let _registerCallback = Symbol('_registerCallback'); | 4495 let _registerCallback = Symbol('_registerCallback'); |
4546 let _registerUnaryCallback = Symbol('_registerUnaryCallback'); | 4496 let _registerUnaryCallback = Symbol('_registerUnaryCallback'); |
4547 let _registerBinaryCallback = Symbol('_registerBinaryCallback'); | 4497 let _registerBinaryCallback = Symbol('_registerBinaryCallback'); |
4548 let _errorCallback = Symbol('_errorCallback'); | 4498 let _errorCallback = Symbol('_errorCallback'); |
4549 let _scheduleMicrotask = Symbol('_scheduleMicrotask'); | 4499 let _scheduleMicrotask = Symbol('_scheduleMicrotask'); |
| 4500 let _createTimer = Symbol('_createTimer'); |
| 4501 let _createPeriodicTimer = Symbol('_createPeriodicTimer'); |
4550 let _print = Symbol('_print'); | 4502 let _print = Symbol('_print'); |
4551 let _fork = Symbol('_fork'); | 4503 let _fork = Symbol('_fork'); |
4552 class _ZoneDelegate extends core.Object { | 4504 class _ZoneDelegate extends core.Object { |
4553 _ZoneDelegate(delegationTarget) { | 4505 _ZoneDelegate(delegationTarget) { |
4554 this[_delegationTarget] = delegationTarget; | 4506 this[_delegationTarget] = delegationTarget; |
4555 } | 4507 } |
4556 handleUncaughtError(zone, error, stackTrace) { | 4508 handleUncaughtError(zone, error, stackTrace) { |
4557 let implementation = this[_delegationTarget][_handleUncaughtError]; | 4509 let implementation = this[_delegationTarget][_handleUncaughtError]; |
4558 let implZone = implementation.zone; | 4510 let implZone = implementation.zone; |
4559 return dart.dcall(implementation.function, implZone, _parentDelegate(implZ
one), zone, error, stackTrace); | 4511 return dart.dcall(implementation.function, implZone, _parentDelegate(implZ
one), zone, error, stackTrace); |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4827 } | 4779 } |
4828 } | 4780 } |
4829 // Function _rootHandleUncaughtError: (Zone, ZoneDelegate, Zone, dynamic, Stac
kTrace) → void | 4781 // Function _rootHandleUncaughtError: (Zone, ZoneDelegate, Zone, dynamic, Stac
kTrace) → void |
4830 function _rootHandleUncaughtError(self, parent, zone, error, stackTrace) { | 4782 function _rootHandleUncaughtError(self, parent, zone, error, stackTrace) { |
4831 _schedulePriorityAsyncCallback(() => { | 4783 _schedulePriorityAsyncCallback(() => { |
4832 throw new _UncaughtAsyncError(error, stackTrace); | 4784 throw new _UncaughtAsyncError(error, stackTrace); |
4833 }); | 4785 }); |
4834 } | 4786 } |
4835 // Function _rootRun: (Zone, ZoneDelegate, Zone, () → dynamic) → dynamic | 4787 // Function _rootRun: (Zone, ZoneDelegate, Zone, () → dynamic) → dynamic |
4836 function _rootRun(self, parent, zone, f) { | 4788 function _rootRun(self, parent, zone, f) { |
4837 if (dart.equals(Zone[_current], zone)) | 4789 if (dart.equals(Zone._current, zone)) |
4838 return f(); | 4790 return f(); |
4839 let old = Zone[_enter](zone); | 4791 let old = Zone._enter(zone); |
4840 try { | 4792 try { |
4841 return f(); | 4793 return f(); |
4842 } finally { | 4794 } finally { |
4843 Zone[_leave](old); | 4795 Zone._leave(old); |
4844 } | 4796 } |
4845 } | 4797 } |
4846 // Function _rootRunUnary: (Zone, ZoneDelegate, Zone, (dynamic) → dynamic, dyn
amic) → dynamic | 4798 // Function _rootRunUnary: (Zone, ZoneDelegate, Zone, (dynamic) → dynamic, dyn
amic) → dynamic |
4847 function _rootRunUnary(self, parent, zone, f, arg) { | 4799 function _rootRunUnary(self, parent, zone, f, arg) { |
4848 if (dart.equals(Zone[_current], zone)) | 4800 if (dart.equals(Zone._current, zone)) |
4849 return dart.dcall(f, arg); | 4801 return dart.dcall(f, arg); |
4850 let old = Zone[_enter](zone); | 4802 let old = Zone._enter(zone); |
4851 try { | 4803 try { |
4852 return dart.dcall(f, arg); | 4804 return dart.dcall(f, arg); |
4853 } finally { | 4805 } finally { |
4854 Zone[_leave](old); | 4806 Zone._leave(old); |
4855 } | 4807 } |
4856 } | 4808 } |
4857 // Function _rootRunBinary: (Zone, ZoneDelegate, Zone, (dynamic, dynamic) → dy
namic, dynamic, dynamic) → dynamic | 4809 // Function _rootRunBinary: (Zone, ZoneDelegate, Zone, (dynamic, dynamic) → dy
namic, dynamic, dynamic) → dynamic |
4858 function _rootRunBinary(self, parent, zone, f, arg1, arg2) { | 4810 function _rootRunBinary(self, parent, zone, f, arg1, arg2) { |
4859 if (dart.equals(Zone[_current], zone)) | 4811 if (dart.equals(Zone._current, zone)) |
4860 return dart.dcall(f, arg1, arg2); | 4812 return dart.dcall(f, arg1, arg2); |
4861 let old = Zone[_enter](zone); | 4813 let old = Zone._enter(zone); |
4862 try { | 4814 try { |
4863 return dart.dcall(f, arg1, arg2); | 4815 return dart.dcall(f, arg1, arg2); |
4864 } finally { | 4816 } finally { |
4865 Zone[_leave](old); | 4817 Zone._leave(old); |
4866 } | 4818 } |
4867 } | 4819 } |
4868 // Function _rootRegisterCallback: (Zone, ZoneDelegate, Zone, () → dynamic) →
ZoneCallback | 4820 // Function _rootRegisterCallback: (Zone, ZoneDelegate, Zone, () → dynamic) →
ZoneCallback |
4869 function _rootRegisterCallback(self, parent, zone, f) { | 4821 function _rootRegisterCallback(self, parent, zone, f) { |
4870 return f; | 4822 return f; |
4871 } | 4823 } |
4872 // Function _rootRegisterUnaryCallback: (Zone, ZoneDelegate, Zone, (dynamic) →
dynamic) → ZoneUnaryCallback | 4824 // Function _rootRegisterUnaryCallback: (Zone, ZoneDelegate, Zone, (dynamic) →
dynamic) → ZoneUnaryCallback |
4873 function _rootRegisterUnaryCallback(self, parent, zone, f) { | 4825 function _rootRegisterUnaryCallback(self, parent, zone, f) { |
4874 return f; | 4826 return f; |
4875 } | 4827 } |
(...skipping 11 matching lines...) Expand all Loading... |
4887 let hasErrorHandler = !dart.notNull(_ROOT_ZONE.inSameErrorZone(zone)); | 4839 let hasErrorHandler = !dart.notNull(_ROOT_ZONE.inSameErrorZone(zone)); |
4888 f = zone.bindCallback(f, {runGuarded: hasErrorHandler}); | 4840 f = zone.bindCallback(f, {runGuarded: hasErrorHandler}); |
4889 } | 4841 } |
4890 _scheduleAsyncCallback(f); | 4842 _scheduleAsyncCallback(f); |
4891 } | 4843 } |
4892 // Function _rootCreateTimer: (Zone, ZoneDelegate, Zone, Duration, () → void)
→ Timer | 4844 // Function _rootCreateTimer: (Zone, ZoneDelegate, Zone, Duration, () → void)
→ Timer |
4893 function _rootCreateTimer(self, parent, zone, duration, callback) { | 4845 function _rootCreateTimer(self, parent, zone, duration, callback) { |
4894 if (!dart.notNull(core.identical(_ROOT_ZONE, zone))) { | 4846 if (!dart.notNull(core.identical(_ROOT_ZONE, zone))) { |
4895 callback = zone.bindCallback(callback); | 4847 callback = zone.bindCallback(callback); |
4896 } | 4848 } |
4897 return Timer[_createTimer](duration, callback); | 4849 return Timer._createTimer(duration, callback); |
4898 } | 4850 } |
4899 // Function _rootCreatePeriodicTimer: (Zone, ZoneDelegate, Zone, Duration, (Ti
mer) → void) → Timer | 4851 // Function _rootCreatePeriodicTimer: (Zone, ZoneDelegate, Zone, Duration, (Ti
mer) → void) → Timer |
4900 function _rootCreatePeriodicTimer(self, parent, zone, duration, callback) { | 4852 function _rootCreatePeriodicTimer(self, parent, zone, duration, callback) { |
4901 if (!dart.notNull(core.identical(_ROOT_ZONE, zone))) { | 4853 if (!dart.notNull(core.identical(_ROOT_ZONE, zone))) { |
4902 callback = dart.as(zone.bindUnaryCallback(callback), __CastType118); | 4854 callback = dart.as(zone.bindUnaryCallback(callback), __CastType118); |
4903 } | 4855 } |
4904 return Timer[_createPeriodicTimer](duration, callback); | 4856 return Timer._createPeriodicTimer(duration, callback); |
4905 } | 4857 } |
4906 // Function _rootPrint: (Zone, ZoneDelegate, Zone, String) → void | 4858 // Function _rootPrint: (Zone, ZoneDelegate, Zone, String) → void |
4907 function _rootPrint(self, parent, zone, line) { | 4859 function _rootPrint(self, parent, zone, line) { |
4908 _internal.printToConsole(line); | 4860 _internal.printToConsole(line); |
4909 } | 4861 } |
4910 // Function _printToZone: (String) → void | 4862 // Function _printToZone: (String) → void |
4911 function _printToZone(line) { | 4863 function _printToZone(line) { |
4912 Zone.current.print(line); | 4864 Zone.current.print(line); |
4913 } | 4865 } |
4914 // Function _rootFork: (Zone, ZoneDelegate, Zone, ZoneSpecification, Map<dynam
ic, dynamic>) → Zone | 4866 // Function _rootFork: (Zone, ZoneDelegate, Zone, ZoneSpecification, Map<dynam
ic, dynamic>) → Zone |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4966 return _rootCreatePeriodicTimer; | 4918 return _rootCreatePeriodicTimer; |
4967 } | 4919 } |
4968 get print() { | 4920 get print() { |
4969 return _rootPrint; | 4921 return _rootPrint; |
4970 } | 4922 } |
4971 get fork() { | 4923 get fork() { |
4972 return _rootFork; | 4924 return _rootFork; |
4973 } | 4925 } |
4974 } | 4926 } |
4975 _RootZoneSpecification[dart.implements] = () => [ZoneSpecification]; | 4927 _RootZoneSpecification[dart.implements] = () => [ZoneSpecification]; |
4976 let _rootMap = Symbol('_rootMap'); | |
4977 let _rootDelegate = Symbol('_rootDelegate'); | |
4978 class _RootZone extends _Zone { | 4928 class _RootZone extends _Zone { |
4979 _RootZone() { | 4929 _RootZone() { |
4980 super._Zone(); | 4930 super._Zone(); |
4981 } | 4931 } |
4982 get [_run]() { | 4932 get [_run]() { |
4983 return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootRun)); | 4933 return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootRun)); |
4984 } | 4934 } |
4985 get [_runUnary]() { | 4935 get [_runUnary]() { |
4986 return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootRunUnary)); | 4936 return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootRunUnary)); |
4987 } | 4937 } |
(...skipping 27 matching lines...) Expand all Loading... |
5015 get [_fork]() { | 4965 get [_fork]() { |
5016 return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootFork)); | 4966 return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootFork)); |
5017 } | 4967 } |
5018 get [_handleUncaughtError]() { | 4968 get [_handleUncaughtError]() { |
5019 return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootHandleUncaughtError))
; | 4969 return dart.const(new _ZoneFunction(_ROOT_ZONE, _rootHandleUncaughtError))
; |
5020 } | 4970 } |
5021 get parent() { | 4971 get parent() { |
5022 return null; | 4972 return null; |
5023 } | 4973 } |
5024 get [_map]() { | 4974 get [_map]() { |
5025 return _RootZone[_rootMap]; | 4975 return _RootZone._rootMap; |
5026 } | 4976 } |
5027 get [_delegate]() { | 4977 get [_delegate]() { |
5028 if (_RootZone[_rootDelegate] != null) | 4978 if (_RootZone._rootDelegate != null) |
5029 return _RootZone[_rootDelegate]; | 4979 return _RootZone._rootDelegate; |
5030 return _RootZone[_rootDelegate] = new _ZoneDelegate(this); | 4980 return _RootZone._rootDelegate = new _ZoneDelegate(this); |
5031 } | 4981 } |
5032 get errorZone() { | 4982 get errorZone() { |
5033 return this; | 4983 return this; |
5034 } | 4984 } |
5035 runGuarded(f) { | 4985 runGuarded(f) { |
5036 try { | 4986 try { |
5037 if (core.identical(_ROOT_ZONE, Zone[_current])) { | 4987 if (core.identical(_ROOT_ZONE, Zone._current)) { |
5038 return f(); | 4988 return f(); |
5039 } | 4989 } |
5040 return _rootRun(null, null, this, f); | 4990 return _rootRun(null, null, this, f); |
5041 } catch (e) { | 4991 } catch (e) { |
5042 let s = dart.stackTrace(e); | 4992 let s = dart.stackTrace(e); |
5043 return this.handleUncaughtError(e, s); | 4993 return this.handleUncaughtError(e, s); |
5044 } | 4994 } |
5045 | 4995 |
5046 } | 4996 } |
5047 runUnaryGuarded(f, arg) { | 4997 runUnaryGuarded(f, arg) { |
5048 try { | 4998 try { |
5049 if (core.identical(_ROOT_ZONE, Zone[_current])) { | 4999 if (core.identical(_ROOT_ZONE, Zone._current)) { |
5050 return dart.dcall(f, arg); | 5000 return dart.dcall(f, arg); |
5051 } | 5001 } |
5052 return _rootRunUnary(null, null, this, f, arg); | 5002 return _rootRunUnary(null, null, this, f, arg); |
5053 } catch (e) { | 5003 } catch (e) { |
5054 let s = dart.stackTrace(e); | 5004 let s = dart.stackTrace(e); |
5055 return this.handleUncaughtError(e, s); | 5005 return this.handleUncaughtError(e, s); |
5056 } | 5006 } |
5057 | 5007 |
5058 } | 5008 } |
5059 runBinaryGuarded(f, arg1, arg2) { | 5009 runBinaryGuarded(f, arg1, arg2) { |
5060 try { | 5010 try { |
5061 if (core.identical(_ROOT_ZONE, Zone[_current])) { | 5011 if (core.identical(_ROOT_ZONE, Zone._current)) { |
5062 return dart.dcall(f, arg1, arg2); | 5012 return dart.dcall(f, arg1, arg2); |
5063 } | 5013 } |
5064 return _rootRunBinary(null, null, this, f, arg1, arg2); | 5014 return _rootRunBinary(null, null, this, f, arg1, arg2); |
5065 } catch (e) { | 5015 } catch (e) { |
5066 let s = dart.stackTrace(e); | 5016 let s = dart.stackTrace(e); |
5067 return this.handleUncaughtError(e, s); | 5017 return this.handleUncaughtError(e, s); |
5068 } | 5018 } |
5069 | 5019 |
5070 } | 5020 } |
5071 bindCallback(f, opts) { | 5021 bindCallback(f, opts) { |
(...skipping 25 matching lines...) Expand all Loading... |
5097 } | 5047 } |
5098 handleUncaughtError(error, stackTrace) { | 5048 handleUncaughtError(error, stackTrace) { |
5099 return _rootHandleUncaughtError(null, null, this, error, stackTrace); | 5049 return _rootHandleUncaughtError(null, null, this, error, stackTrace); |
5100 } | 5050 } |
5101 fork(opts) { | 5051 fork(opts) { |
5102 let specification = opts && 'specification' in opts ? opts.specification :
null; | 5052 let specification = opts && 'specification' in opts ? opts.specification :
null; |
5103 let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null; | 5053 let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null; |
5104 return _rootFork(null, null, this, specification, zoneValues); | 5054 return _rootFork(null, null, this, specification, zoneValues); |
5105 } | 5055 } |
5106 run(f) { | 5056 run(f) { |
5107 if (core.identical(Zone[_current], _ROOT_ZONE)) | 5057 if (core.identical(Zone._current, _ROOT_ZONE)) |
5108 return f(); | 5058 return f(); |
5109 return _rootRun(null, null, this, f); | 5059 return _rootRun(null, null, this, f); |
5110 } | 5060 } |
5111 runUnary(f, arg) { | 5061 runUnary(f, arg) { |
5112 if (core.identical(Zone[_current], _ROOT_ZONE)) | 5062 if (core.identical(Zone._current, _ROOT_ZONE)) |
5113 return dart.dcall(f, arg); | 5063 return dart.dcall(f, arg); |
5114 return _rootRunUnary(null, null, this, f, arg); | 5064 return _rootRunUnary(null, null, this, f, arg); |
5115 } | 5065 } |
5116 runBinary(f, arg1, arg2) { | 5066 runBinary(f, arg1, arg2) { |
5117 if (core.identical(Zone[_current], _ROOT_ZONE)) | 5067 if (core.identical(Zone._current, _ROOT_ZONE)) |
5118 return dart.dcall(f, arg1, arg2); | 5068 return dart.dcall(f, arg1, arg2); |
5119 return _rootRunBinary(null, null, this, f, arg1, arg2); | 5069 return _rootRunBinary(null, null, this, f, arg1, arg2); |
5120 } | 5070 } |
5121 registerCallback(f) { | 5071 registerCallback(f) { |
5122 return f; | 5072 return f; |
5123 } | 5073 } |
5124 registerUnaryCallback(f) { | 5074 registerUnaryCallback(f) { |
5125 return f; | 5075 return f; |
5126 } | 5076 } |
5127 registerBinaryCallback(f) { | 5077 registerBinaryCallback(f) { |
5128 return f; | 5078 return f; |
5129 } | 5079 } |
5130 errorCallback(error, stackTrace) { | 5080 errorCallback(error, stackTrace) { |
5131 return null; | 5081 return null; |
5132 } | 5082 } |
5133 scheduleMicrotask(f) { | 5083 scheduleMicrotask(f) { |
5134 _rootScheduleMicrotask(null, null, this, f); | 5084 _rootScheduleMicrotask(null, null, this, f); |
5135 } | 5085 } |
5136 createTimer(duration, f) { | 5086 createTimer(duration, f) { |
5137 return Timer[_createTimer](duration, f); | 5087 return Timer._createTimer(duration, f); |
5138 } | 5088 } |
5139 createPeriodicTimer(duration, f) { | 5089 createPeriodicTimer(duration, f) { |
5140 return Timer[_createPeriodicTimer](duration, f); | 5090 return Timer._createPeriodicTimer(duration, f); |
5141 } | 5091 } |
5142 print(line) { | 5092 print(line) { |
5143 _internal.printToConsole(line); | 5093 _internal.printToConsole(line); |
5144 } | 5094 } |
5145 } | 5095 } |
5146 _RootZone._rootDelegate = null; | 5096 _RootZone._rootDelegate = null; |
5147 dart.defineLazyProperties(_RootZone, { | 5097 dart.defineLazyProperties(_RootZone, { |
5148 get [_rootMap]() { | 5098 get _rootMap() { |
5149 return new collection.HashMap(); | 5099 return new collection.HashMap(); |
5150 }, | 5100 }, |
5151 set [_rootMap](_) {} | 5101 set _rootMap(_) {} |
5152 }); | 5102 }); |
5153 let _ROOT_ZONE = dart.const(new _RootZone()); | 5103 let _ROOT_ZONE = dart.const(new _RootZone()); |
5154 // Function runZoned: (() → dynamic, {zoneValues: Map<dynamic, dynamic>, zoneS
pecification: ZoneSpecification, onError: Function}) → dynamic | 5104 // Function runZoned: (() → dynamic, {zoneValues: Map<dynamic, dynamic>, zoneS
pecification: ZoneSpecification, onError: Function}) → dynamic |
5155 function runZoned(body, opts) { | 5105 function runZoned(body, opts) { |
5156 let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null; | 5106 let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null; |
5157 let zoneSpecification = opts && 'zoneSpecification' in opts ? opts.zoneSpeci
fication : null; | 5107 let zoneSpecification = opts && 'zoneSpecification' in opts ? opts.zoneSpeci
fication : null; |
5158 let onError = opts && 'onError' in opts ? opts.onError : null; | 5108 let onError = opts && 'onError' in opts ? opts.onError : null; |
5159 let errorHandler = null; | 5109 let errorHandler = null; |
5160 if (onError != null) { | 5110 if (onError != null) { |
5161 errorHandler = (self, parent, zone, error, stackTrace) => { | 5111 errorHandler = (self, parent, zone, error, stackTrace) => { |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5250 exports.ScheduleMicrotaskHandler = ScheduleMicrotaskHandler; | 5200 exports.ScheduleMicrotaskHandler = ScheduleMicrotaskHandler; |
5251 exports.CreateTimerHandler = CreateTimerHandler; | 5201 exports.CreateTimerHandler = CreateTimerHandler; |
5252 exports.CreatePeriodicTimerHandler = CreatePeriodicTimerHandler; | 5202 exports.CreatePeriodicTimerHandler = CreatePeriodicTimerHandler; |
5253 exports.PrintHandler = PrintHandler; | 5203 exports.PrintHandler = PrintHandler; |
5254 exports.ForkHandler = ForkHandler; | 5204 exports.ForkHandler = ForkHandler; |
5255 exports.ZoneSpecification = ZoneSpecification; | 5205 exports.ZoneSpecification = ZoneSpecification; |
5256 exports.ZoneDelegate = ZoneDelegate; | 5206 exports.ZoneDelegate = ZoneDelegate; |
5257 exports.Zone = Zone; | 5207 exports.Zone = Zone; |
5258 exports.runZoned = runZoned; | 5208 exports.runZoned = runZoned; |
5259 })(async || (async = {})); | 5209 })(async || (async = {})); |
OLD | NEW |