(types_str, types, values)
| 196 | })(); |
| 197 | |
| 198 | function TestGetArgHelper(types_str, types, values) { |
| 199 | let tag = new WebAssembly.Tag({parameters: types_str}); |
| 200 | let exception = new WebAssembly.Exception(tag, values); |
| 201 | for (i = 0; i < types.length; ++i) { |
| 202 | assertEquals(exception.getArg(tag, i), values[i]); |
| 203 | } |
| 204 | |
| 205 | let builder = new WasmModuleBuilder(); |
| 206 | let sig = makeSig(types, []); |
| 207 | let tag_index = builder.addImportedTag("m", "t", sig); |
| 208 | let body = []; |
| 209 | for (i = 0; i < types.length; ++i) { |
| 210 | body.push(kExprLocalGet, i); |
| 211 | } |
| 212 | body.push(kExprThrow, tag_index); |
| 213 | builder.addFunction("throw", sig) |
| 214 | .addBody(body).exportFunc(); |
| 215 | let instance = builder.instantiate({'m': {'t': tag}}); |
| 216 | try { |
| 217 | instance.exports.throw(...values); |
| 218 | } catch (e) { |
| 219 | for (i = 0; i < types.length; ++i) { |
| 220 | assertEquals(e.getArg(tag, i), values[i]); |
| 221 | } |
| 222 | } |
| 223 | } |
| 224 | |
| 225 | (function TestGetArg() { |
| 226 | print(arguments.callee.name); |
no test coverage detected