on master help sign in
Fix threading issue in test
ea02d58Hamish Mackenzie
src/Language/Javascript/JSaddle/Object.hs+9−2
@@ -123,6 +123,7 @@ import Control.Lens (IndexPreservingGetter, to)
123import Data.Text (Text)
123import Data.Text (Text)
124
124
125-- $setup
125-- $setup
126+-- >>> import Control.Concurrent.MVar (newEmptyMVar, takeMVar, putMVar)
126-- >>> import Language.Javascript.JSaddle.Test (testJSaddle)
127-- >>> import Language.Javascript.JSaddle.Test (testJSaddle)
127-- >>> import Language.Javascript.JSaddle.Evaluate (eval)
128-- >>> import Language.Javascript.JSaddle.Evaluate (eval)
128-- >>> import Language.Javascript.JSaddle.Value (val, valToText, JSNull(..), deRefVal)
129-- >>> import Language.Javascript.JSaddle.Value (val, valToText, JSNull(..), deRefVal)
@@ -409,9 +410,15 @@ obj = Object <$> sendLazyCommand NewEmptyObject
409--
410--
410-- >>> testJSaddle $ eval "(function(f) {f('Hello');})(function (a) {console.log(a)})"
411-- >>> testJSaddle $ eval "(function(f) {f('Hello');})(function (a) {console.log(a)})"
411-- undefined
412-- undefined
413+-- >>> :{
414+-- testJSaddle $ do
415+-- result <- liftIO newEmptyMVar
412−-- >>> testJSaddle . deRefVal $ call (eval "(function(f) {f('Hello');})") global [fun $ \ _ _ args -> valToText (head args) >>= (liftIO . putStrLn . T.unpack) ]
416+-- deRefVal $ call (eval "(function(f) {f('Hello');})") global [fun $ \ _ _ [arg1] -> do
417+-- valToText arg1 >>= (liftIO . putMVar result)
418+-- ]
419+-- liftIO $ takeMVar result
420+-- :}
413-- Hello
421-- Hello
414−-- undefined
415fun :: JSCallAsFunction -> JSCallAsFunction
422fun :: JSCallAsFunction -> JSCallAsFunction
416fun = id
423fun = id
417
424