diff options
Diffstat (limited to 'test/binaryen.js')
-rw-r--r-- | test/binaryen.js/functions.js | 12 | ||||
-rw-r--r-- | test/binaryen.js/functions.js.txt | 5 | ||||
-rw-r--r-- | test/binaryen.js/kitchen-sink.js | 24 | ||||
-rw-r--r-- | test/binaryen.js/kitchen-sink.js.txt | 56 |
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; } |