docs.rodeo

MDN Web Docs mirror

WebAssembly.validate()

The WebAssembly.validate() static method validates a given typed array of WebAssembly binary code, returning whether the bytes form a valid Wasm module (true) or not (false).

Syntax

WebAssembly.validate(bufferSource)
WebAssembly.validate(bufferSource, compileOptions)

Parameters

Return value

A boolean that specifies whether bufferSource is valid Wasm code (true) or not (false).

Exceptions

If bufferSource is not a typed array or ArrayBuffer, a {{jsxref("TypeError")}}  is thrown.

Examples

Using validate

The following example (see the validate.html source code, and see it live too) fetches a Wasm module and converts it into a typed array. The validate() method is then used to check whether the module is valid.

fetch("simple.wasm")
  .then((response) => response.arrayBuffer())
  .then((bytes) => {
    const valid = WebAssembly.validate(bytes);
    console.log(
      `The given bytes are ${valid ? "" : "not "}a valid Wasm module`,
    );
  });

Validating a module with JavaScript builtins and global string imports enabled

This example validates a Wasm module with JavaScript string builtins and imported global string constants enabled, logging "Wasm module valid: true" to the console if it is valid, and "Wasm module valid: false" if it isn’t. See it running live.

const compileOptions = {
  builtins: ["js-string"], // Enable JavaScript string builtins
  importedStringConstants: "string_constants", // Enable imported global string constants
};

fetch("log-concat.wasm")
  .then((response) => response.arrayBuffer())
  .then((bytes) => WebAssembly.validate(bytes, compileOptions))
  .then((result) => console.log(`Wasm module valid: ${result}`));

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN