From 45b3aa22c0adbea5fbfbd572eac172a60b79a5e9 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Wed, 16 Mar 2022 09:30:43 -0400 Subject: [PATCH] feat(ext/fetch): Allow Response status 101 (#13969) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bartek IwaƄczuk --- cli/tests/unit/fetch_test.ts | 8 ++++++-- ext/fetch/23_response.js | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cli/tests/unit/fetch_test.ts b/cli/tests/unit/fetch_test.ts index 3b2d765a5c..bfd5bc9911 100644 --- a/cli/tests/unit/fetch_test.ts +++ b/cli/tests/unit/fetch_test.ts @@ -970,7 +970,7 @@ Deno.test(function fetchResponseConstructorNullBody() { }); Deno.test(function fetchResponseConstructorInvalidStatus() { - const invalidStatus = [101, 600, 199, null, "", NaN]; + const invalidStatus = [100, 600, 199, null, "", NaN]; for (const status of invalidStatus) { try { @@ -980,7 +980,11 @@ Deno.test(function fetchResponseConstructorInvalidStatus() { fail(`Invalid status: ${status}`); } catch (e) { assert(e instanceof RangeError); - assert(e.message.endsWith("is outside the range [200, 599].")); + assert( + e.message.endsWith( + "is not equal to 101 and outside the range [200, 599].", + ), + ); } } }); diff --git a/ext/fetch/23_response.js b/ext/fetch/23_response.js index 4dc56dd8f2..03f8c276b9 100644 --- a/ext/fetch/23_response.js +++ b/ext/fetch/23_response.js @@ -265,9 +265,9 @@ context: "Argument 2", }); - if (init.status < 200 || init.status > 599) { + if ((init.status < 200 || init.status > 599) && init.status != 101) { throw new RangeError( - `The status provided (${init.status}) is outside the range [200, 599].`, + `The status provided (${init.status}) is not equal to 101 and outside the range [200, 599].`, ); }