11cb0ef41Sopenharmony_ci// META: global=window,dedicatedworker,jsshell
21cb0ef41Sopenharmony_ci// META: script=/wasm/jsapi/assertions.js
31cb0ef41Sopenharmony_ci
41cb0ef41Sopenharmony_cifunction testfunc(n) {}
51cb0ef41Sopenharmony_ci
61cb0ef41Sopenharmony_citest(() => {
71cb0ef41Sopenharmony_ci    var table = new WebAssembly.Table({element: "anyfunc", initial: 3})
81cb0ef41Sopenharmony_ci    var func1 = new WebAssembly.Function({parameters: ["i32"], results: []}, testfunc)
91cb0ef41Sopenharmony_ci    table.set(0, func1)
101cb0ef41Sopenharmony_ci    var func2 = new WebAssembly.Function({parameters: ["f32"], results: []}, testfunc)
111cb0ef41Sopenharmony_ci    table.set(1, func2)
121cb0ef41Sopenharmony_ci    var func3 = new WebAssembly.Function({parameters: ["i64"], results: []}, testfunc)
131cb0ef41Sopenharmony_ci    table.set(2, func3)
141cb0ef41Sopenharmony_ci
151cb0ef41Sopenharmony_ci    var first = table.get(0)
161cb0ef41Sopenharmony_ci    assert_true(first instanceof WebAssembly.Function)
171cb0ef41Sopenharmony_ci    assert_equals(first, func1)
181cb0ef41Sopenharmony_ci    assert_equals(first.type().parameters[0], func1.type().parameters[0])
191cb0ef41Sopenharmony_ci
201cb0ef41Sopenharmony_ci    var second = table.get(1)
211cb0ef41Sopenharmony_ci    assert_true(second instanceof WebAssembly.Function)
221cb0ef41Sopenharmony_ci    assert_equals(second, func2)
231cb0ef41Sopenharmony_ci    assert_equals(second.type().parameters[0], func2.type().parameters[0])
241cb0ef41Sopenharmony_ci
251cb0ef41Sopenharmony_ci    var third = table.get(2)
261cb0ef41Sopenharmony_ci    assert_true(third instanceof WebAssembly.Function)
271cb0ef41Sopenharmony_ci    assert_equals(third, func3)
281cb0ef41Sopenharmony_ci    assert_equals(third.type().parameters[0], func3.type().parameters[0])
291cb0ef41Sopenharmony_ci
301cb0ef41Sopenharmony_ci}, "Test insertion into table")
31