From d8e8e60f9f32ffce785b2efd71cd78b337a5352c Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Sun, 2 Jul 2023 13:20:56 +0200 Subject: feat(ext/fetch): add Headers#getSetCookie (#13542) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Spec change: https://github.com/whatwg/fetch/pull/1346 Tests: https://github.com/web-platform-tests/wpt/pull/31442 (ran against this PR and they all pass) --------- Co-authored-by: Bartek IwaƄczuk --- ext/fetch/20_headers.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'ext/fetch/20_headers.js') diff --git a/ext/fetch/20_headers.js b/ext/fetch/20_headers.js index abf7433a3..bea542c30 100644 --- a/ext/fetch/20_headers.js +++ b/ext/fetch/20_headers.js @@ -308,6 +308,7 @@ class Headers { * @param {string} name */ delete(name) { + webidl.assertBranded(this, HeadersPrototype); const prefix = "Failed to execute 'delete' on 'Headers'"; webidl.requiredArguments(arguments.length, 1, prefix); name = webidl.converters["ByteString"](name, prefix, "Argument 1"); @@ -333,6 +334,7 @@ class Headers { * @param {string} name */ get(name) { + webidl.assertBranded(this, HeadersPrototype); const prefix = "Failed to execute 'get' on 'Headers'"; webidl.requiredArguments(arguments.length, 1, prefix); name = webidl.converters["ByteString"](name, prefix, "Argument 1"); @@ -345,10 +347,25 @@ class Headers { return getHeader(list, name); } + getSetCookie() { + webidl.assertBranded(this, HeadersPrototype); + const list = this[_headerList]; + + const entries = []; + for (let i = 0; i < list.length; i++) { + if (byteLowerCase(list[i][0]) === "set-cookie") { + ArrayPrototypePush(entries, list[i][1]); + } + } + + return entries; + } + /** * @param {string} name */ has(name) { + webidl.assertBranded(this, HeadersPrototype); const prefix = "Failed to execute 'has' on 'Headers'"; webidl.requiredArguments(arguments.length, 1, prefix); name = webidl.converters["ByteString"](name, prefix, "Argument 1"); -- cgit v1.2.3