mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05:00
fix(ext/fetch): better error if no content-type
The streaming WASM support code inspects the Response object's Content-Type header but if that was missing, it failed with a fairly inscrutable "String.prototype.toLowerCase called on null or undefined" exception. Now it raises a more legible "Invalid WebAssembly content type" exception.
This commit is contained in:
parent
6ddabb7427
commit
6ced7b0383
2 changed files with 16 additions and 2 deletions
|
@ -48,6 +48,19 @@ unitTest(
|
|||
},
|
||||
);
|
||||
|
||||
unitTest(
|
||||
async function wasmInstantiateStreamingNoContentType() {
|
||||
await assertThrowsAsync(
|
||||
async () => {
|
||||
const response = Promise.resolve(new Response(simpleWasm));
|
||||
await WebAssembly.instantiateStreaming(response);
|
||||
},
|
||||
TypeError,
|
||||
"Invalid WebAssembly content type.",
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
unitTest(async function wasmInstantiateStreaming() {
|
||||
let isomorphic = "";
|
||||
for (const byte of simpleWasm) {
|
||||
|
|
|
@ -503,9 +503,10 @@
|
|||
// The spec is ambiguous here, see
|
||||
// https://github.com/WebAssembly/spec/issues/1138. The WPT tests
|
||||
// expect the raw value of the Content-Type attribute lowercased.
|
||||
const contentType = res.headers.get("Content-Type");
|
||||
if (
|
||||
StringPrototypeToLowerCase(res.headers.get("Content-Type")) !==
|
||||
"application/wasm"
|
||||
typeof contentType !== "string" ||
|
||||
StringPrototypeToLowerCase(contentType) !== "application/wasm"
|
||||
) {
|
||||
throw new TypeError("Invalid WebAssembly content type.");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue