diff options
author | Luca Casonato <hello@lcas.dev> | 2021-11-23 01:23:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-23 01:23:11 +0100 |
commit | 2eae1ae665ff601b86e936ad9d80cfa57831ce88 (patch) | |
tree | ef8cd9e645ae3a67dbd785f93bbc40a3b57d633a /ext/fetch/20_headers.js | |
parent | 210300d0497005f74d64a1d028e1becbae9f27e8 (diff) |
revert: store header keys lower case internally (#12837)
This reverts commit 49ec3d10ad90851f4d28274a3f0fe96c642204ac.
Diffstat (limited to 'ext/fetch/20_headers.js')
-rw-r--r-- | ext/fetch/20_headers.js | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/ext/fetch/20_headers.js b/ext/fetch/20_headers.js index 04ff104a2..c6b40d520 100644 --- a/ext/fetch/20_headers.js +++ b/ext/fetch/20_headers.js @@ -114,7 +114,13 @@ // 7. const list = headers[_headerList]; - name = byteLowerCase(name); + const lowercaseName = byteLowerCase(name); + for (let i = 0; i < list.length; i++) { + if (byteLowerCase(list[i][0]) === lowercaseName) { + name = list[i][0]; + break; + } + } ArrayPrototypePush(list, [name, value]); } @@ -126,7 +132,10 @@ function getHeader(list, name) { const lowercaseName = byteLowerCase(name); const entries = ArrayPrototypeMap( - ArrayPrototypeFilter(list, (entry) => entry[0] === lowercaseName), + ArrayPrototypeFilter( + list, + (entry) => byteLowerCase(entry[0]) === lowercaseName, + ), (entry) => entry[1], ); if (entries.length === 0) { @@ -196,7 +205,7 @@ const headers = {}; const cookies = []; for (const entry of list) { - const name = entry[0]; + const name = byteLowerCase(entry[0]); const value = entry[1]; if (value === null) throw new TypeError("Unreachable"); // The following if statement is not spec compliant. @@ -287,9 +296,9 @@ } const list = this[_headerList]; - name = byteLowerCase(name); + const lowercaseName = byteLowerCase(name); for (let i = 0; i < list.length; i++) { - if (list[i][0] === name) { + if (byteLowerCase(list[i][0]) === lowercaseName) { ArrayPrototypeSplice(list, i, 1); i--; } @@ -331,9 +340,9 @@ } const list = this[_headerList]; - name = byteLowerCase(name); + const lowercaseName = byteLowerCase(name); for (let i = 0; i < list.length; i++) { - if (list[i][0] === name) { + if (byteLowerCase(list[i][0]) === lowercaseName) { return true; } } @@ -372,10 +381,10 @@ } const list = this[_headerList]; - name = byteLowerCase(name); + const lowercaseName = byteLowerCase(name); let added = false; for (let i = 0; i < list.length; i++) { - if (list[i][0] === name) { + if (byteLowerCase(list[i][0]) === lowercaseName) { if (!added) { list[i][1] = value; added = true; |