(stream, state)
| 904 | } |
| 905 | |
| 906 | function prefinish(stream, state) { |
| 907 | if ((state[kState] & (kPrefinished | kFinalCalled)) !== 0) { |
| 908 | return; |
| 909 | } |
| 910 | |
| 911 | if (typeof stream._final === 'function' && (state[kState] & kDestroyed) === 0) { |
| 912 | state[kState] |= kFinalCalled | kSync; |
| 913 | state.pendingcb++; |
| 914 | |
| 915 | try { |
| 916 | stream._final((err) => onFinish(stream, state, err)); |
| 917 | } catch (err) { |
| 918 | onFinish(stream, state, err); |
| 919 | } |
| 920 | |
| 921 | state[kState] &= ~kSync; |
| 922 | } else { |
| 923 | state[kState] |= kFinalCalled | kPrefinished; |
| 924 | stream.emit('prefinish'); |
| 925 | } |
| 926 | } |
| 927 | |
| 928 | function finishMaybe(stream, state, sync) { |
| 929 | if (needFinish(state)) { |
no test coverage detected