fix tee_local semantic
This commit is contained in:
@@ -593,7 +593,7 @@ eval store FunctionInstance { funcType, moduleInstance, code = Function { localT
|
|||||||
return $ Done ctx { stack = rest, locals = locals ctx // [(fromIntegral i, v)] }
|
return $ Done ctx { stack = rest, locals = locals ctx // [(fromIntegral i, v)] }
|
||||||
step ctx@EvalCtx{ locals = ls, stack = (v:rest) } (TeeLocal i) =
|
step ctx@EvalCtx{ locals = ls, stack = (v:rest) } (TeeLocal i) =
|
||||||
return $ Done ctx {
|
return $ Done ctx {
|
||||||
stack = (ls ! fromIntegral i) : rest,
|
stack = v : rest,
|
||||||
locals = locals ctx // [(fromIntegral i, v)]
|
locals = locals ctx // [(fromIntegral i, v)]
|
||||||
}
|
}
|
||||||
step ctx (GetGlobal i) = do
|
step ctx (GetGlobal i) = do
|
||||||
|
|||||||
+1
-1
@@ -34,7 +34,7 @@ compile file = do
|
|||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
files <- Directory.listDirectory "tests/samples"
|
files <- Directory.listDirectory "tests/samples"
|
||||||
-- let files = ["resizing.wast"]
|
-- let files = ["tee_local.wast"]
|
||||||
scriptTestCases <- (`mapM` files) $ \file -> do
|
scriptTestCases <- (`mapM` files) $ \file -> do
|
||||||
content <- LBS.readFile $ "tests/samples/" ++ file
|
content <- LBS.readFile $ "tests/samples/" ++ file
|
||||||
let Right script = Parser.parseScript <$> Lexer.scanner content
|
let Right script = Parser.parseScript <$> Lexer.scanner content
|
||||||
|
|||||||
Reference in New Issue
Block a user