@@ -806,23 +806,16 @@ translateDeclaration (path, SFun name params stackSize body)
806 JSFunction (p ++ map snd aux) (
806 JSFunction (p ++ map snd aux) (
808 zipWith assignVar [0..] p ++
808 zipWith assignVar [0..] p ++
809− map allocVar [numP .. (numP + stackSize - 1)] ++
810 map assignAux aux ++
809 map assignAux aux ++
811 [JSReturn body]
810 [JSReturn body]
815− numP = length params
817− allocVar :: Int -> JS
818− allocVar n = JSAlloc (jsVar n) Nothing
820 assignVar :: Int -> String -> JS
813 assignVar :: Int -> String -> JS
821 assignVar n s = JSAlloc (jsVar n) (Just $ JSIdent s)
814 assignVar n s = JSAlloc (jsVar n) (Just $ JSIdent s)
823 assignAux :: (LVar, String) -> JS
816 assignAux :: (LVar, String) -> JS
824− assignAux (var, val) =
817+ assignAux (Loc var, val) =
825− JSAssign (JSIdent $ translateVariableName var) (JSIdent val)
818+ JSAlloc (jsVar var) (Just $ JSIdent val)
827 p :: [String]
820 p :: [String]
828 p = map translateName params
821 p = map translateName params