MicroHs-0.15.0.0: tests/ForImpJS.hs
module ForImpJS where
import Data.Text hiding(show)
import Foreign.C.String(CString)
foreign import javascript "console.log('log: ' + UTF8ToString($0))" clog :: CString -> IO ()
foreign import javascript "return stringToNewUTF8('PRE' + UTF8ToString($0))" pre :: CString -> IO CString
foreign import javascript "return $0 + $1" add :: Int -> Int -> Int
foreign import javascript "return $0 * $1" mul :: Double -> Double -> Double
hlog :: Text -> IO ()
hlog t = useAsCString t clog
main :: IO ()
main = do
hlog "JS log"
hlog "JS log again"
hlog $ pack $ show $ add 3 4
hlog $ pack $ show $ mul 3 4
s <- useAsCString "-test" $ \ p -> pre p >>= grabCString
putStrLn (unpack s)