diff options
Diffstat (limited to 'ext/http')
| -rw-r--r-- | ext/http/00_serve.js | 4 | ||||
| -rw-r--r-- | ext/http/01_http.js | 8 |
2 files changed, 7 insertions, 5 deletions
diff --git a/ext/http/00_serve.js b/ext/http/00_serve.js index 26632c2ba..131f056a7 100644 --- a/ext/http/00_serve.js +++ b/ext/http/00_serve.js @@ -44,8 +44,8 @@ const { PromisePrototypeThen, Symbol, TypeError, + TypedArrayPrototypeGetSymbolToStringTag, Uint8Array, - Uint8ArrayPrototype, } = primordials; const { @@ -397,7 +397,7 @@ function fastSyncResponseOrStream(req, respBody, status, innerRequest) { const stream = respBody.streamOrStatic; const body = stream.body; - if (ObjectPrototypeIsPrototypeOf(Uint8ArrayPrototype, body)) { + if (TypedArrayPrototypeGetSymbolToStringTag(body) === "Uint8Array") { innerRequest?.close(); op_http_set_response_body_bytes(req, body, status); return; diff --git a/ext/http/01_http.js b/ext/http/01_http.js index c873889b7..64951ee0f 100644 --- a/ext/http/01_http.js +++ b/ext/http/01_http.js @@ -60,8 +60,8 @@ const { Symbol, SymbolAsyncIterator, TypeError, + TypedArrayPrototypeGetSymbolToStringTag, Uint8Array, - Uint8ArrayPrototype, } = primordials; const { op_http_accept, @@ -272,7 +272,7 @@ function createRespondWith( } const isStreamingResponseBody = !( typeof respBody === "string" || - ObjectPrototypeIsPrototypeOf(Uint8ArrayPrototype, respBody) + TypedArrayPrototypeGetSymbolToStringTag(respBody) === "Uint8Array" ); try { await op_http_write_headers( @@ -339,7 +339,9 @@ function createRespondWith( while (true) { const { value, done } = await reader.read(); if (done) break; - if (!ObjectPrototypeIsPrototypeOf(Uint8ArrayPrototype, value)) { + if ( + TypedArrayPrototypeGetSymbolToStringTag(value) !== "Uint8Array" + ) { await reader.cancel(new TypeError("Value not a Uint8Array")); break; } |
