summaryrefslogtreecommitdiff
path: root/testsuite/tests/javascript/js-callback05.hs
blob: 075b151b5c45b274d00f6a55495b50779f24dc02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import GHC.JS.Prim
import GHC.JS.Foreign.Callback
import System.IO

foreign import javascript "((f) => { f(); })"
  js_apply0_ :: Callback (IO ()) -> IO ()

main :: IO ()
main = do
  log <- syncCallback ThrowWouldBlock (putStrLn "test" >> hFlush stdout)
  js_apply0_ log
  js_apply0_ log
  
  log <- syncCallback ThrowWouldBlock (putStrLn "test1" >> hFlush stdout)
  log <- syncCallback ThrowWouldBlock (putStrLn "test2" >> hFlush stdout)
  log <- syncCallback ThrowWouldBlock (putStrLn "test3" >> hFlush stdout)
  js_apply0_ log1
  js_apply0_ log2
  js_apply0_ log3