on master help sign in
Merge pull request #3855 from rbarreiro/issue_3697

added require for the %lib anotations in js backend

commit929c72d9464e480926066a0751624af769de610c authorNiklas Larsson <metaniklas@gmail.com> dateTue 13 Jun 2017, 21:06 (9 years ago) parentedf03eeb71febe
1 file changed+11
src/IRTS/JavaScript/Codegen.hs+11
src/IRTS/JavaScript/Codegen.hs+11
@@ -71,6 +71,15 @@ getIncludes l = do
7171 incs <- mapM getInclude l
7272 return $ T.intercalate "\n\n" incs
7373
74+includeLibs :: [String] -> String
75+includeLibs =
76+ let
77+ repl '\\' = '_'
78+ repl '/' = '_'
79+ repl c = c
80+ in
81+ concatMap (\lib -> "var " ++ (repl <$> lib) ++ " = require(\"" ++ lib ++"\");\n")
82+
7483isYes :: Maybe String -> Bool
7584isYes (Just "Y") = True
7685isYes (Just "y") = True
@@ -100,6 +109,7 @@ codegenJs conf ci =
100109 extraRT <- TIO.readFile $ path </> (extraRunTime conf)
101110
102111 includes <- getIncludes $ includes ci
112+ let libs = T.pack $ includeLibs $ compileLibs ci
103113 TIO.writeFile (outputFile ci) $ T.concat [ header conf
104114 , "\"use strict\";\n\n"
105115 , "(function(){\n\n"
@@ -109,6 +119,7 @@ codegenJs conf ci =
109119 , jsbn, "\n"
110120 -- external libraries
111121 , includes, "\n"
122+ , libs, "\n"
112123 -- user code
113124 , doPartials (partialApplications stats), "\n"
114125 , doHiddenClasses (hiddenClasses stats), "\n"