fix context building for typechecker
This commit is contained in:
+2
-1
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user