GPUConnectionToWebProcess::allowsExitUnderMemoryPressure() should check if libWebRTCC...
[WebKit-https.git] / JSTests / wasm / js-api / test_Start.js
1 import * as assert from '../assert.js';
2 import Builder from '../Builder.js';
3
4 (function StartNamedFunction() {
5     const b = (new Builder())
6         .Type().End()
7         .Import()
8             .Function("imp", "func", { params: ["i32"] })
9         .End()
10         .Function().End()
11         .Start("foo").End()
12         .Code()
13             .Function("foo", { params: [] })
14                 .I32Const(42)
15                 .Call(0) // Calls func(42).
16             .End()
17         .End();
18     const bin = b.WebAssembly().get();
19     const module = new WebAssembly.Module(bin);
20     let value = 0;
21     const setter = v => value = v;
22     const instance = new WebAssembly.Instance(module, { imp: { func: setter } });
23     assert.eq(value, 42);
24 })();
25
26 (function InvalidStartFunctionIndex() {
27     const b = (new Builder())
28         .setChecked(false)
29         .Type().End()
30         .Function().End()
31         .Start(0).End() // Invalid index.
32         .Code().End();
33     const bin = b.WebAssembly().get();
34     assert.throws(() => new WebAssembly.Module(bin), Error, `WebAssembly.Module doesn't parse at byte 17: Start index 0 exceeds function index space 0 (evaluating 'new WebAssembly.Module(bin)')`);
35 })();