diff --git a/op_crates/fetch/26_fetch.js b/op_crates/fetch/26_fetch.js index 8dc7c2056c..0bcd8f85ca 100644 --- a/op_crates/fetch/26_fetch.js +++ b/op_crates/fetch/26_fetch.js @@ -922,22 +922,36 @@ }); } + /** + * @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; }