on master help sign in
javascript: remove redundant var decls
31f2014raichoo
src/IRTS/CodegenJavaScript.hs+2−9
@@ -806,23 +806,16 @@ translateDeclaration (path, SFun name params stackSize body)
806 JSFunction (p ++ map snd aux) (
806 JSFunction (p ++ map snd aux) (
807 JSSeq $
807 JSSeq $
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]
812 )
811 )
813 where
812 where
814− numP :: Int
815− numP = length params
816−
817− allocVar :: Int -> JS
818− allocVar n = JSAlloc (jsVar n) Nothing
819−
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)
822
815
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)
826
819
827 p :: [String]
820 p :: [String]
828 p = map translateName params
821 p = map translateName params