- From: Adam Rice <notifications@github.com>
- Date: Fri, 10 Jul 2020 16:18:10 -0700
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/streams/pull/1053/review/446746510@github.com>
@ricea commented on this pull request. > + 1. Let |backpressurePromise| be [=a new promise=]. + 1. Add a handler for |port|'s {{MessagePort/message}} event with the following steps: + 1. Let |data| be the data of the message. + 1. If ! [$Type$](|data|) is not Object, return. + 1. Let |type| be ? [$Get$](|data|, `"type"`). + 1. Let |value| be ? [$Get$](|data|, `"value"`). + 1. If ! [$Type$](|type|) is not String, return. + 1. If |type| is `"pull"`, + 1. If |backpressurePromise| is not undefined, + 1. [=Resolve=] |backpressurePromise| with undefined. + 1. Set |backpressurePromise| to undefined. + 1. Otherwise, if |type| is `"error"`, + 1. Perform ! [$WritableStreamDefaultControllerErrorIfNeeded$](|controller|, |value|). + 1. If |backpressurePromise| is not undefined, + 1. [=Resolve=] |backpressurePromise| with undefined. + 1. Set |backpressurePromise| to undefined. I'm leaning towards "no" now, since in platonic spec-land it is redundant to disentangle from both sides, and in practice implementations need to implement MessagePort `close()` in such a way that both sides get closed after all queued messages have been delivered. -- 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/1053#discussion_r453117630
Received on Friday, 10 July 2020 23:18:22 UTC