packages feed

fay-0.19: tests/JsFunctionPassing.hs

{-# LANGUAGE EmptyDataDecls #-}

module JsFunctionPassing where

import           FFI

data Func

makeFunc0 :: Int -> Func
makeFunc0 = ffi "function() {return %1;}"

callFunc0 :: Func -> Fay Int
callFunc0 = ffi "%1()"

makeFunc1 :: Int -> Func
makeFunc1 = ffi "function(x) {return %1;}"

callFunc1 :: Func -> Fay Int
callFunc1 = ffi "%1(1)"

main = do
  callFunc0 (makeFunc0 1) >>= print
  callFunc1 (makeFunc1 2) >>= print