(writer, chunk)
| 951 | } |
| 952 | |
| 953 | function writableStreamDefaultWriterWrite(writer, chunk) { |
| 954 | const { |
| 955 | stream, |
| 956 | } = writer[kState]; |
| 957 | assert(stream !== undefined); |
| 958 | const { |
| 959 | controller, |
| 960 | } = stream[kState]; |
| 961 | const chunkSize = writableStreamDefaultControllerGetChunkSize( |
| 962 | controller, |
| 963 | chunk); |
| 964 | if (stream !== writer[kState].stream) { |
| 965 | return PromiseReject( |
| 966 | new ERR_INVALID_STATE.TypeError('Mismatched WritableStreams')); |
| 967 | } |
| 968 | const { |
| 969 | state, |
| 970 | } = stream[kState]; |
| 971 | |
| 972 | if (state === 'errored') |
| 973 | return PromiseReject(stream[kState].storedError); |
| 974 | |
| 975 | if (writableStreamCloseQueuedOrInFlight(stream) || state === 'closed') { |
| 976 | return PromiseReject( |
| 977 | new ERR_INVALID_STATE.TypeError('WritableStream is closed')); |
| 978 | } |
| 979 | |
| 980 | if (state === 'erroring') |
| 981 | return PromiseReject(stream[kState].storedError); |
| 982 | |
| 983 | assert(state === 'writable'); |
| 984 | |
| 985 | const promise = writableStreamAddWriteRequest(stream); |
| 986 | writableStreamDefaultControllerWrite(controller, chunk, chunkSize); |
| 987 | return promise; |
| 988 | } |
| 989 | |
| 990 | function writableStreamDefaultWriterRelease(writer) { |
| 991 | const { |
no test coverage detected