fix context building for typechecker

This commit is contained in:
Ilya Rezvov
2018-02-25 11:28:51 -08:00
parent d53611c1e5
commit 6a3a7d56a5
4 changed files with 58 additions and 21 deletions
+2 -1
View File
@@ -31,7 +31,8 @@ compile file = do
main :: IO ()
main = do
files <- Directory.listDirectory "tests/samples"
-- let files = ["call.wast"]
-- let files = ["call_indirect.wast", "br_table.wast", "br.wast"]
let files = ["br.wast"]
-- compile "fact.wast"
syntaxTestCases <- (`mapM` files) $ \file -> do
content <- LBS.readFile $ "tests/samples/" ++ file
+2
View File
@@ -6,6 +6,8 @@
).then(results => {
console.log('result', results)
const fact = results.instance.exports['fac-iter-named-32']
const factRec = results.instance.exports['fac-rec-named-32']
console.log(fact, fact(5))
console.log(factRec, factRec(5))
});
</script>
+13
View File
@@ -22,6 +22,19 @@
)
)
;; Recursive factorial named
(func $fac-rec-named-32 (export "fac-rec-named-32") (param $n i32) (result i32)
(if (result i32) (i32.eq (get_local $n) (i32.const 0))
(then (i32.const 1))
(else
(i32.mul
(get_local $n)
(call $fac-rec-named-32 (i32.sub (get_local $n) (i32.const 1)))
)
)
)
)
;; Iterative factorial
(func (export "fac-iter") (param i64) (result i64)
(local i64 i64)