File: reuse-wasm-loaded-as-classic-script.tentative.html

package info (click to toggle)
firefox 144.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,637,504 kB
  • sloc: cpp: 7,576,692; javascript: 6,430,831; ansic: 3,748,119; python: 1,398,978; xml: 628,810; asm: 438,679; java: 186,194; sh: 63,212; makefile: 19,159; objc: 13,086; perl: 12,986; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 53; csh: 10
file content (32 lines) | stat: -rw-r--r-- 1,208 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!doctype html>
<title>Reuse Wasm loaded as classic script</title>

<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<script>
  'use strict';
  setup({allow_uncaught_exception: true});
  promise_test(t => {
    return new Promise((resolve, reject) => {
      window.addEventListener('test_finished', resolve);
    });
  });
</script>

<!-- This should throw, but browsers should be able to handle the subsequent
module import properly.

This test is for Chromium https://crbug.com/425682456 while other browsers
should also pass the test. The crossorigin attribute is added to make
Chromium's Blink MemoryCache to use the same underlying Resource for the
classic script here and as the Wasm module below. -->
<script crossorigin src="./resources/exported-names.wasm"></script>

<script type=module>
import source exportedNamesSource from "./resources/exported-names.wasm";
assert_true(exportedNamesSource instanceof WebAssembly.Module);
assert_array_equals(WebAssembly.Module.exports(exportedNamesSource).map(({ name }) => name).sort(),
                    ["func", "glob", "mem", "tab"]);
window.dispatchEvent(new Event('test_finished'));
</script>