Re: [whatwg/streams] Use Promise.prototype.then brand check to detect real Promise (#730)

ricea commented on this pull request.



> @@ -1935,3 +1934,16 @@ function byteStreamControllerBrandCheckException(name) {
   return new TypeError(
     `ReadableByteStreamController.prototype.${name} can only be used on a ReadableByteStreamController`);
 }
+
+// Helper function for ReadableStream pipeThrough
+
+function hasPromiseIsHandledInternalSlot(promise) {
+  try {
+    // This relies on the brand-check that is enforced by Promise.prototype.then(). As with the rest of the reference
+    // implementation, it doesn't attempt to do the right thing if someone has modified the global environment.
+    Promise.prototype.then.call(promise, undefined, () => {});

I tried something different: I named the function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue and made it implement that whole line from the standard. PTAL.

-- 
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/730#discussion_r110810173

Received on Tuesday, 11 April 2017 03:44:29 UTC