summaryrefslogtreecommitdiff
path: root/testsuite/tests/javascript/js-ffi-array.hs
blob: 00e1e803835970ed7c120eb9f6f35704d321c6c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import GHC.JS.Prim

foreign import javascript "((xs) => { console.log(xs) })"
  log_js :: JSVal -> IO ()

foreign import javascript "((xs,i) => { return xs[i]; })"
  js_index :: JSVal -> JSVal -> JSVal

foreign import javascript "(() => { return ['t','e','s','t']; })"
  an_array :: JSVal

main :: IO ()
main = do
  log_js =<< toJSArray []
  log_js =<< toJSArray [jsNull, toJSInt 0, toJSString "", toJSInt 1, toJSString "test", toJSInt 2]
  xs <- toJSArray $ map toJSInt [1..10]
  log_js $ js_index xs (toJSInt 3)
  mapM_ log_js =<< fromJSArray an_array