diff options
-rw-r--r-- | op_crates/fetch/26_fetch.js | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/op_crates/fetch/26_fetch.js b/op_crates/fetch/26_fetch.js index 8dc7c2056..0bcd8f85c 100644 --- a/op_crates/fetch/26_fetch.js +++ b/op_crates/fetch/26_fetch.js @@ -924,20 +924,34 @@ /** * @param {string} m + * @returns {boolean} + */ + function isKnownMethod(m) { + return ( + m === "DELETE" || + m === "GET" || + m === "HEAD" || + m === "OPTIONS" || + m === "POST" || + m === "PUT" + ); + } + + /** + * @param {string} m * @returns {string} */ function normalizeMethod(m) { + // Fast path for already valid methods + if (isKnownMethod(m)) { + return m; + } + // Normalize lower case (slowpath and should be avoided ...) const u = byteUpperCase(m); - if ( - u === "DELETE" || - u === "GET" || - u === "HEAD" || - u === "OPTIONS" || - u === "POST" || - u === "PUT" - ) { + if (isKnownMethod(u)) { return u; } + // Otherwise passthrough return m; } |