summaryrefslogtreecommitdiff
path: root/test/binaryen.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/binaryen.js')
-rw-r--r--test/binaryen.js/functions.js12
-rw-r--r--test/binaryen.js/functions.js.txt5
-rw-r--r--test/binaryen.js/kitchen-sink.js24
-rw-r--r--test/binaryen.js/kitchen-sink.js.txt56
4 files changed, 58 insertions, 39 deletions
diff --git a/test/binaryen.js/functions.js b/test/binaryen.js/functions.js
index 34142941c..3c6184403 100644
--- a/test/binaryen.js/functions.js
+++ b/test/binaryen.js/functions.js
@@ -13,15 +13,15 @@ console.log("GetFunction is equal: " + (func === module.getFunction("a-function"
module.runPassesOnFunction(func, ["precompute"]);
-var body = Binaryen.getFunctionBody(func);
-
-console.log("ExpressionId=" + Binaryen.getExpressionId(body));
-console.log("ExpressionType=" + Binaryen.getExpressionType(body));
-console.log(Binaryen.emitText(body));
+console.log("getFunctionTypeInfo=" + JSON.stringify(Binaryen.getFunctionTypeInfo(signature)));
+var info = Binaryen.getFunctionInfo(func);
+console.log("getFunctionInfo=" + JSON.stringify(info));
+console.log("getExpressionInfo(body)=" + JSON.stringify(Binaryen.getExpressionInfo(info.body)));
+console.log(Binaryen.emitText(info.body));
module.removeFunction("a-function");
-module.addGlobal("a-global", Binaryen.i32, false, body);
+module.addGlobal("a-global", Binaryen.i32, false, info.body);
module.validate();
diff --git a/test/binaryen.js/functions.js.txt b/test/binaryen.js/functions.js.txt
index a785d1ddf..70333338f 100644
--- a/test/binaryen.js/functions.js.txt
+++ b/test/binaryen.js/functions.js.txt
@@ -1,6 +1,7 @@
GetFunction is equal: true
-ExpressionId=15
-ExpressionType=1
+getFunctionTypeInfo={"name":5366144,"params":[],"result":1}
+getFunctionInfo={"name":5399120,"type":5366144,"params":[],"result":1,"vars":[],"body":5366312}
+getExpressionInfo(body)={"id":15,"type":1,"value":3}
(i32.const 3)
(module
diff --git a/test/binaryen.js/kitchen-sink.js b/test/binaryen.js/kitchen-sink.js
index 2aa76eeab..114df55dd 100644
--- a/test/binaryen.js/kitchen-sink.js
+++ b/test/binaryen.js/kitchen-sink.js
@@ -36,11 +36,13 @@ function makeDroppedInt32(x) {
// tests
function test_types() {
- console.log("BinaryenNone: " + Binaryen.none);
- console.log("BinaryenInt32: " + Binaryen.i32);
- console.log("BinaryenInt64: " + Binaryen.i64);
- console.log("BinaryenFloat32: " + Binaryen.f32);
- console.log("BinaryenFloat64: " + Binaryen.f64);
+ console.log("BinaryenTypeNone: " + Binaryen.none);
+ console.log("BinaryenTypeInt32: " + Binaryen.i32);
+ console.log("BinaryenTypeInt64: " + Binaryen.i64);
+ console.log("BinaryenTypeFloat32: " + Binaryen.f32);
+ console.log("BinaryenTypeFloat64: " + Binaryen.f64);
+ console.log("BinaryenTypeUnreachable: " + Binaryen.unreachable);
+ console.log("BinaryenTypeAuto: " + Binaryen.auto);
}
function test_ids() {
@@ -210,13 +212,13 @@ function test_core() {
];
// Test expression utility
- console.log("getExpressionId=" + Binaryen.getExpressionId(valueList[3]));
- console.log("getExpressionType=" + Binaryen.getExpressionType(valueList[3]));
+ console.log("getExpressionInfo=" + JSON.stringify(Binaryen.getExpressionInfo(valueList[3])));
console.log(Binaryen.emitText(valueList[3])); // test printing a standalone expression
- console.log(Binaryen.getConstValueI32(module.i32.const(5)));
- console.log(JSON.stringify(Binaryen.getConstValueI64(module.i64.const(6, 7))));
- console.log(Binaryen.getConstValueF32(module.f32.const(8.5)));
- console.log(Binaryen.getConstValueF64(module.f64.const(9.5)));
+
+ console.log("getExpressionInfo(i32.const)=" + JSON.stringify(Binaryen.getExpressionInfo(module.i32.const(5))));
+ console.log("getExpressionInfo(i64.const)=" + JSON.stringify(Binaryen.getExpressionInfo(module.i64.const(6, 7))));
+ console.log("getExpressionInfo(f32.const)=" + JSON.stringify(Binaryen.getExpressionInfo(module.f32.const(8.5))));
+ console.log("getExpressionInfo(f64.const)=" + JSON.stringify(Binaryen.getExpressionInfo(module.f64.const(9.5))));
// Make the main body of the function. and one block with a return value, one without
var value = module.block("the-value", valueList);
diff --git a/test/binaryen.js/kitchen-sink.js.txt b/test/binaryen.js/kitchen-sink.js.txt
index 50193c64d..96f7bd160 100644
--- a/test/binaryen.js/kitchen-sink.js.txt
+++ b/test/binaryen.js/kitchen-sink.js.txt
@@ -1,8 +1,10 @@
-BinaryenNone: 0
-BinaryenInt32: 1
-BinaryenInt64: 2
-BinaryenFloat32: 3
-BinaryenFloat64: 4
+BinaryenTypeNone: 0
+BinaryenTypeInt32: 1
+BinaryenTypeInt64: 2
+BinaryenTypeFloat32: 3
+BinaryenTypeFloat64: 4
+BinaryenTypeUnreachable: 5
+BinaryenTypeAuto: -1
BinaryenInvalidId: 0
BinaryenBlockId: 1
BinaryenIfId: 2
@@ -31,16 +33,15 @@ BinaryenAtomicCmpxchgId: 24
BinaryenAtomicRMWId: 25
BinaryenAtomicWaitId: 26
BinaryenAtomicWakeId: 27
-getExpressionId=16
-getExpressionType=3
+getExpressionInfo={"id":16,"type":3,"op":6,"value":5366768}
(f32.neg
(f32.const -33.61199951171875)
)
-5
-{"low":6,"high":7}
-8.5
-9.5
+getExpressionInfo(i32.const)={"id":15,"type":1,"value":5}
+getExpressionInfo(i64.const)={"id":15,"type":2,"value":{"low":6,"high":7}}
+getExpressionInfo(f32.const)={"id":15,"type":3,"value":8.5}
+getExpressionInfo(f64.const)={"id":15,"type":4,"value":9.5}
(module
(type $iiIfF (func (param i32 i64 f32 f64) (result i32)))
(type $fiF (func (param i32 f64) (result f32)))
@@ -1115,6 +1116,8 @@ int main() {
std::map<size_t, BinaryenFunctionTypeRef> functionTypes;
std::map<size_t, BinaryenExpressionRef> expressions;
std::map<size_t, BinaryenFunctionRef> functions;
+ std::map<size_t, BinaryenImportRef> imports;
+ std::map<size_t, BinaryenExportRef> exports;
std::map<size_t, RelooperBlockRef> relooperBlocks;
BinaryenModuleRef the_module = NULL;
RelooperRef the_relooper = NULL;
@@ -1389,27 +1392,36 @@ int main() {
expressions[245] = BinaryenNop(the_module);
expressions[246] = BinaryenUnreachable(the_module);
BinaryenExpressionGetId(expressions[30]);
-getExpressionId=16
BinaryenExpressionGetType(expressions[30]);
-getExpressionType=3
+ BinaryenUnaryGetOp(expressions[30]);
+ BinaryenUnaryGetValue(expressions[30]);
+getExpressionInfo={"id":16,"type":3,"op":6,"value":5401832}
BinaryenExpressionPrint(expressions[30]);
(f32.neg
(f32.const -33.61199951171875)
)
expressions[247] = BinaryenConst(the_module, BinaryenLiteralInt32(5));
+ BinaryenExpressionGetId(expressions[247]);
+ BinaryenExpressionGetType(expressions[247]);
BinaryenConstGetValueI32(expressions[247]);
-5
+getExpressionInfo(i32.const)={"id":15,"type":1,"value":5}
expressions[248] = BinaryenConst(the_module, BinaryenLiteralInt64(30064771078));
+ BinaryenExpressionGetId(expressions[248]);
+ BinaryenExpressionGetType(expressions[248]);
BinaryenConstGetValueI64Low(expressions[248]);
BinaryenConstGetValueI64High(expressions[248]);
-{"low":6,"high":7}
+getExpressionInfo(i64.const)={"id":15,"type":2,"value":{"low":6,"high":7}}
expressions[249] = BinaryenConst(the_module, BinaryenLiteralFloat32(8.5));
+ BinaryenExpressionGetId(expressions[249]);
+ BinaryenExpressionGetType(expressions[249]);
BinaryenConstGetValueF32(expressions[249]);
-8.5
+getExpressionInfo(f32.const)={"id":15,"type":3,"value":8.5}
expressions[250] = BinaryenConst(the_module, BinaryenLiteralFloat64(9.5));
+ BinaryenExpressionGetId(expressions[250]);
+ BinaryenExpressionGetType(expressions[250]);
BinaryenConstGetValueF64(expressions[250]);
-9.5
+getExpressionInfo(f64.const)={"id":15,"type":4,"value":9.5}
{
BinaryenExpressionRef children[] = { expressions[24], expressions[26], expressions[28], expressions[30], expressions[32], expressions[34], expressions[36], expressions[38], expressions[40], expressions[42], expressions[44], expressions[46], expressions[48], expressions[50], expressions[52], expressions[54], expressions[56], expressions[58], expressions[60], expressions[62], expressions[64], expressions[66], expressions[68], expressions[70], expressions[72], expressions[74], expressions[76], expressions[78], expressions[80], expressions[82], expressions[84], expressions[86], expressions[88], expressions[90], expressions[92], expressions[94], expressions[97], expressions[100], expressions[103], expressions[106], expressions[109], expressions[112], expressions[115], expressions[118], expressions[121], expressions[124], expressions[127], expressions[130], expressions[133], expressions[136], expressions[139], expressions[142], expressions[145], expressions[148], expressions[151], expressions[154], expressions[157], expressions[160], expressions[163], expressions[166], expressions[169], expressions[172], expressions[175], expressions[178], expressions[181], expressions[184], expressions[187], expressions[190], expressions[191], expressions[192], expressions[193], expressions[195], expressions[197], expressions[198], expressions[200], expressions[202], expressions[203], expressions[204], expressions[206], expressions[212], expressions[217], expressions[224], expressions[226], expressions[228], expressions[231], expressions[233], expressions[235], expressions[237], expressions[239], expressions[240], expressions[241], expressions[242], expressions[244], expressions[245], expressions[246] };
expressions[251] = BinaryenBlock(the_module, "the-value", children, 95, 0);
@@ -1432,8 +1444,8 @@ getExpressionType=3
BinaryenType paramTypes[] = { 1, 4 };
functionTypes[1] = BinaryenAddFunctionType(the_module, "fiF", 3, paramTypes, 2);
}
- BinaryenAddFunctionImport(the_module, "an-imported", "module", "base", functionTypes[1]);
- BinaryenAddFunctionExport(the_module, "kitchen()sinker", "kitchen_sinker");
+ imports[0] = BinaryenAddFunctionImport(the_module, "an-imported", "module", "base", functionTypes[1]);
+ exports[0] = BinaryenAddFunctionExport(the_module, "kitchen()sinker", "kitchen_sinker");
{
BinaryenFunctionRef funcs[] = { functions[0] };
BinaryenSetFunctionTable(the_module, funcs, 1);
@@ -1998,6 +2010,8 @@ getExpressionType=3
functionTypes.clear();
expressions.clear();
functions.clear();
+ imports.clear();
+ exports.clear();
relooperBlocks.clear();
the_module = BinaryenModuleCreate();
expressions[size_t(NULL)] = BinaryenExpressionRef(NULL);
@@ -2009,7 +2023,7 @@ getExpressionType=3
BinaryenType paramTypes[] = { 1 };
functionTypes[1] = BinaryenAddFunctionType(the_module, "vi", 0, paramTypes, 1);
}
- BinaryenAddFunctionImport(the_module, "check", "module", "check", functionTypes[1]);
+ imports[1] = BinaryenAddFunctionImport(the_module, "check", "module", "check", functionTypes[1]);
the_relooper = RelooperCreate();
expressions[1] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
{
@@ -2960,6 +2974,8 @@ optimized:
functionTypes.clear();
expressions.clear();
functions.clear();
+ imports.clear();
+ exports.clear();
relooperBlocks.clear();
return 0;
}