blob: f711d0d054c317cee414e1c9442948a0fed257f0 [file] [log] [blame] [edit]
const module = new binaryen.Module();
// Test table
const tableName = "a-table";
const tableMin = 5;
const tableMax = 15;
const tablePtr = module.addTable(tableName, tableMin, tableMax);
console.log("GetTable is equal: " + (tablePtr === module.getTable(tableName)));
const tableInfo = binaryen.getTableInfo(tablePtr);
console.log("getTableInfo=" + JSON.stringify(tableInfo));
// Test Wrapper
// get/set name
assert(binaryen.Table.getName(tablePtr) === tableName);
binaryen.Table.setName(tablePtr, "new-table-name");
assert(binaryen.Table.getName(tablePtr) === "new-table-name");
binaryen.Table.setName(tablePtr, tableName);
// get/set initial
assert(binaryen.Table.getInitial(tablePtr) === tableMin);
binaryen.Table.setInitial(tablePtr, 10);
assert(binaryen.Table.getInitial(tablePtr) === 10);
binaryen.Table.setInitial(tablePtr, tableMin);
// hasMax
assert(binaryen.Table.hasMax(tablePtr) === true);
// get/set max
assert(binaryen.Table.getMax(tablePtr) === tableMax);
binaryen.Table.setMax(tablePtr, 20);
assert(binaryen.Table.getMax(tablePtr) === 20);
binaryen.Table.setMax(tablePtr, tableMax);
// get/set type
assert(binaryen.Table.getType(tablePtr) === binaryen.funcref);
binaryen.Table.setType(tablePtr, binaryen.anyref);
assert(binaryen.Table.getType(tablePtr) === binaryen.anyref);
binaryen.Table.setType(tablePtr, binaryen.funcref);
const tableRef = binaryen.Table(tablePtr);
assert(tableRef.name === tableName);
assert(tableRef.initial === tableMin);
assert(tableRef.max === tableMax);
assert(tableRef.type === binaryen.funcref);
// Cleanup
assert(module.validate());
console.log(module.emitText());
module.dispose();