- From: Domenic Denicola <notifications@github.com>
- Date: Fri, 24 Mar 2017 02:48:33 -0700
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/streams/pull/705@github.com>
@ricea's work in #704 got me thinking: why don't we ResetQueue() *every* time we error a writable stream?
In fact it seems like we have many different code paths for erroring a writable stream, some of which behave slightly differently. You can see me evolving them toward convergence in the sequential commits here, eventually ending up with a bunch of duplicated code which all gets factored into the single WritableStreamError abstract op.
There were two reasons that the erroring code was so different in different places:
- Often we omitted steps that were not necessary in a given scenario, which hid the underlying same-ness of the erroring operation.
- We decided that abort()ing during an in-flight close should error the stream. This was not a good idea: it was unlike every other erroring we did. And we recognized that it was weird, because we made abort() return a fulfilled promise. Instead we should treat this as a success and close the stream, both for the return value of abort() and for the stream's state.
This PR has a few minor issues which I will note in inline comments. It only updates the reference implementation for now, as well as the tests; it does not update the spec yet.
You can view, comment on, or merge this pull request online at:
https://github.com/whatwg/streams/pull/705
-- Commit Summary --
* Factor out some of the erroring code
* Make code more duplicated near erroring code
* Make it even more duplicated. This requires small test changes.
* Change the semantics of aborting during close
* OK now everything's basically working
* Tweak order
* Update tests inline for now
-- File Changes --
M reference-implementation/lib/writable-stream.js (127)
M reference-implementation/web-platform-tests (2)
-- Patch Links --
https://github.com/whatwg/streams/pull/705.patch
https://github.com/whatwg/streams/pull/705.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/streams/pull/705
Received on Friday, 24 March 2017 10:02:16 UTC