@@ -322,19 +322,22 @@ translateDeclaration :: (String, SDecl) -> JS
322322translateDeclaration (path, SFun name params stackSize body)
323323 | (MN _ "APPLY") <- name =
324324 JSSeq [ JSRaw $ "/* " ++ translateName name ++ " */"
325− , translate (path ++ translateName name) params stackSize body
325+ , jsDecl (path ++ translateName name) $ translate params stackSize body
326326 ]
327327 | (MN _ "EVAL") <- name
328328 , (SChkCase var cases) <- body =
329329 JSSeq [ JSRaw $ "/* " ++ translateName name ++ " */"
330− , translate (path ++ translateName name) params stackSize body
330+ , jsDecl (path ++ translateName name) $ translate params stackSize body
331331 ]
332332 | otherwise =
333− translate (path ++ translateName name) params stackSize body
333+ jsDecl (path ++ translateName name) $ translate params stackSize body
334334 where
335− translate :: String -> [Name] -> Int -> SExp -> JS
336− translate name params stackSize body =
337− JSAlloc name $ Just $ JSFunction p (
335+ jsDecl :: String -> JS -> JS
336+ jsDecl name = JSAlloc name . Just
337+
338+ translate :: [Name] -> Int -> SExp -> JS
339+ translate params stackSize body =
340+ JSFunction p (
338341 JSSeq $
339342 zipWith assignVar [0..] p ++
340343 map allocVar [numP .. (numP + stackSize - 1)] ++