| import { instantiate } from "../wabt-wrapper.js" |
| import * as assert from "../assert.js" |
| |
| let wat = ` |
| (module |
| (func (export "eqz") (param i64) (result i32) |
| (local.get 0) |
| (i64.eqz) |
| (return) |
| ) |
| (func (export "eq") (param i64 i64) (result i32) |
| (local.get 0) |
| (local.get 1) |
| (i64.eq) |
| (return) |
| ) |
| (func (export "ne") (param i64 i64) (result i32) |
| (local.get 0) |
| (local.get 1) |
| (i64.ne) |
| (return) |
| ) |
| (func (export "lt_s") (param i64 i64) (result i32) |
| (local.get 0) |
| (local.get 1) |
| (i64.lt_s) |
| (return) |
| ) |
| (func (export "lt_u") (param i64 i64) (result i32) |
| (local.get 0) |
| (local.get 1) |
| (i64.lt_u) |
| (return) |
| ) |
| (func (export "gt_s") (param i64 i64) (result i32) |
| (local.get 0) |
| (local.get 1) |
| (i64.gt_s) |
| (return) |
| ) |
| (func (export "gt_u") (param i64 i64) (result i32) |
| (local.get 0) |
| (local.get 1) |
| (i64.gt_u) |
| (return) |
| ) |
| (func (export "le_s") (param i64 i64) (result i32) |
| (local.get 0) |
| (local.get 1) |
| (i64.le_s) |
| (return) |
| ) |
| (func (export "le_u") (param i64 i64) (result i32) |
| (local.get 0) |
| (local.get 1) |
| (i64.le_u) |
| (return) |
| ) |
| (func (export "ge_s") (param i64 i64) (result i32) |
| (local.get 0) |
| (local.get 1) |
| (i64.ge_s) |
| (return) |
| ) |
| (func (export "ge_u") (param i64 i64) (result i32) |
| (local.get 0) |
| (local.get 1) |
| (i64.ge_u) |
| (return) |
| ) |
| ) |
| ` |
| |
| async function test() { |
| const instance = await instantiate(wat, {}); |
| const { eqz, eq, ne, lt_s, lt_u, gt_s, gt_u, le_s, le_u, ge_s, ge_u }= instance.exports |
| assert.eq(eqz(0n), 1) |
| assert.eq(eqz(1n), 0) |
| assert.eq(eq(0n, 0n), 1) |
| assert.eq(eq(1n, 2n), 0) |
| assert.eq(ne(0n, 0n), 0) |
| assert.eq(ne(1n, 2n), 1) |
| assert.eq(lt_s(-1n, 1n), 1) |
| assert.eq(lt_s(1n, 1n), 0) |
| assert.eq(lt_u(-1n, 1n), 0) |
| assert.eq(lt_u(1n, 2n), 1) |
| assert.eq(gt_s(1n, -1n), 1) |
| assert.eq(gt_s(1n, 1n), 0) |
| assert.eq(gt_u(1n, -1n), 0) |
| assert.eq(gt_u(2n, 1n), 1) |
| assert.eq(le_s(-1n, 1n), 1) |
| assert.eq(le_s(1n, 1n), 1) |
| assert.eq(le_u(-1n, 1n), 0) |
| assert.eq(le_u(1n, 2n), 1) |
| assert.eq(ge_s(1n, -1n), 1) |
| assert.eq(ge_s(1n, 1n), 1) |
| assert.eq(ge_u(1n, -1n), 0) |
| assert.eq(ge_u(2n, 1n), 1) |
| } |
| |
| await assert.asyncTest(test()) |