packages feed

jsaddle 0.5.1.1 → 0.5.2.0

raw patch · 3 files changed

+16/−9 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Language.Javascript.JSaddle.Object: [functionCallback] :: Function -> HaskellCallback
- Language.Javascript.JSaddle.Object: data Function
+ Language.Javascript.JSaddle.Object: newtype Function
- Language.Javascript.JSaddle.Object: Function :: HaskellCallback -> Object -> Function
+ Language.Javascript.JSaddle.Object: Function :: Object -> Function

Files

jsaddle.cabal view
@@ -1,5 +1,5 @@ name: jsaddle-version: 0.5.1.1+version: 0.5.2.0 cabal-version: >=1.10 build-type: Simple license: MIT
src/Language/Javascript/JSaddle/Object.hs view
@@ -123,6 +123,7 @@ import Data.Text (Text)  -- $setup+-- >>> import Control.Concurrent.MVar (newEmptyMVar, takeMVar, putMVar) -- >>> import Language.Javascript.JSaddle.Test (testJSaddle) -- >>> import Language.Javascript.JSaddle.Evaluate (eval) -- >>> import Language.Javascript.JSaddle.Value (val, valToText, JSNull(..), deRefVal)@@ -409,19 +410,24 @@ -- -- >>> testJSaddle $ eval "(function(f) {f('Hello');})(function (a) {console.log(a)})" -- undefined--- >>> testJSaddle . deRefVal $ call (eval "(function(f) {f('Hello');})") global [fun $ \ _ _ args -> valToText (head args) >>= (liftIO . putStrLn . T.unpack) ]+-- >>> :{+--  testJSaddle $ do+--    result <- liftIO newEmptyMVar+--    deRefVal $ call (eval "(function(f) {f('Hello');})") global [fun $ \ _ _ [arg1] -> do+--         valToText arg1 >>= (liftIO . putMVar result)+--         ]+--    liftIO $ takeMVar result+-- :} -- Hello--- undefined fun :: JSCallAsFunction -> JSCallAsFunction fun = id  #ifdef ghcjs_HOST_OS-type HaskellCallback = Callback (JSVal -> JSVal -> IO ())+data Function = Function {functionCallback :: Callback (JSVal -> JSVal -> IO ()), functionObject :: Object} #else-type HaskellCallback = ()+newtype Function = Function {functionObject :: Object} #endif -data Function = Function {functionCallback :: HaskellCallback, functionObject :: Object}  -- ^ Make a JavaScript function object that wraps a Haskell function. function :: JSCallAsFunction -- ^ Haskell function to call@@ -440,7 +446,7 @@     obj <- Object <$> sendLazyCommand NewCallback     add <- addCallback <$> askJSM     liftIO $ add obj f-    return $ Function () obj+    return $ Function obj #endif  freeFunction :: Function -> JSM ()@@ -448,13 +454,13 @@ freeFunction (Function callback _) = liftIO $     releaseCallback callback #else-freeFunction (Function callback obj) = do+freeFunction (Function obj) = do     free <- freeCallback <$> askJSM     liftIO $ free obj #endif  instance ToJSVal Function where-    toJSVal (Function _ f) = toJSVal f+    toJSVal = toJSVal . functionObject  -- | A callback to Haskell can be used as a JavaScript value.  This will create --   an anonymous JavaScript function object.  Use 'function' to create one with
tests/DocTest.hs view
@@ -57,6 +57,7 @@         "-package=containers-" ++ VERSION_containers,         "-package=process-" ++ VERSION_process,         "-package=filepath-" ++ VERSION_filepath,+        "-package=ref-tf-" ++ VERSION_ref_tf,         "-isrc",         "src/Language/Javascript/JSaddle/Arguments.hs",         "src/Language/Javascript/JSaddle/Classes.hs",