Closed
Description
Ideally, other specs should only refer to a few of our abstract ops, e.g.:
- AcquireReadableStreamReader ( stream )
- CloseReadableStream ( stream )
- EnqueueInReadableStream ( stream, chunk )
- ErrorReadableStream ( stream, e )
- IsReadableStream ( x )
- IsReadableStreamLocked ( stream )
- TeeReadableStream ( stream, shouldClone )
plus maybe a few more. Others are "implementation details", e.g. FinishClosingReadableStream ( stream ) or RequestReadableStreamPull ( stream ) or similar. Additionally, for each of the above, there are some "usage details" that are important. E.g. see the intro of https://streams.spec.whatwg.org/#enqueue-in-readable-stream
A few strategies:
- Separate sections, e.g. exported abstract ops and internal abstract ops
- Some kind of tag, like that proposed for Notate abstract ops that can throw #371
- A separate "for other specifications" section describing the usage of exported abstract ops
- Pro: authors of other specs probably don't care to actually read the details of e.g. EnqueueInReadableStream
- Con: duplication; keeping in sync; is this normative or non-normative?
- Some kind of toggle switch that gives you a "for other spec authors" view, which hides any non-exported abstract ops (and maybe hides the algorithms for the exported ones?)
Thoughts appreciated. Probably especially from @annevk as Fetch editor.