@@ -2,7 +2,7 @@
2{-# LANGUAGE ScopedTypeVariables #-}
2{-# LANGUAGE ScopedTypeVariables #-}
3{-# LANGUAGE FlexibleInstances #-}
3{-# LANGUAGE FlexibleInstances #-}
4{-# LANGUAGE TypeSynonymInstances #-}
4{-# LANGUAGE TypeSynonymInstances #-}
5−#if (defined(__GHCJS__) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
5+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
6{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI #-}
6{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI #-}
8-----------------------------------------------------------------------------
8-----------------------------------------------------------------------------
@@ -66,7 +66,7 @@ module Language.Javascript.JSC.Value (
66import Prelude hiding (catch)
66import Prelude hiding (catch)
67import Language.Javascript.JSC.Types
67import Language.Javascript.JSC.Types
68 (JSValueRefRef, JSObjectRef, JSStringRef, JSValueRef)
68 (JSValueRefRef, JSObjectRef, JSStringRef, JSValueRef)
69−#if (defined(__GHCJS__) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
69+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
70import GHCJS.Types (castRef, JSRef(..))
70import GHCJS.Types (castRef, JSRef(..))
71import GHCJS.Foreign (toJSBool, fromJSBool', jsNull, jsUndefined, toJSString)
71import GHCJS.Foreign (toJSBool, fromJSBool', jsNull, jsUndefined, toJSString)
72import GHCJS.Marshal (toJSRef)
72import GHCJS.Marshal (toJSRef)
@@ -136,7 +136,7 @@ data JSValue = ValNull -- ^ null
136-- >>> testJSC $ valToBool "1"
136-- >>> testJSC $ valToBool "1"
138valToBool :: MakeValueRef val => val -> JSC JSBool
138valToBool :: MakeValueRef val => val -> JSC JSBool
139−#if (defined(__GHCJS__) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
139+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
140valToBool val = fromJSBool' <$> makeValueRef val
140valToBool val = fromJSBool' <$> makeValueRef val
142valToBool val = do
142valToBool val = do
@@ -165,7 +165,7 @@ valToBool val = do
165-- >>> testJSC $ show <$> valToNumber "1"
165-- >>> testJSC $ show <$> valToNumber "1"
167valToNumber :: MakeValueRef val => val -> JSC JSNumber
167valToNumber :: MakeValueRef val => val -> JSC JSNumber
168−#if defined(__GHCJS__) && defined(USE_JAVASCRIPTFFI)
168+#if defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)
169valToNumber val = jsrefToNumber <$> makeValueRef val
169valToNumber val = jsrefToNumber <$> makeValueRef val
170foreign import javascript unsafe "$r = Number($1);" jsrefToNumber :: JSRef a -> Double
170foreign import javascript unsafe "$r = Number($1);" jsrefToNumber :: JSRef a -> Double
171#elif defined(USE_WEBKIT)
171#elif defined(USE_WEBKIT)
@@ -197,7 +197,7 @@ valToNumber = undefined
197-- >>> testJSC $ valToStr "1" >>= strToText
197-- >>> testJSC $ valToStr "1" >>= strToText
199valToStr :: MakeValueRef val => val -> JSC JSStringRef
199valToStr :: MakeValueRef val => val -> JSC JSStringRef
200−#if defined(__GHCJS__) && defined(USE_JAVASCRIPTFFI)
200+#if defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)
201valToStr val = jsrefToString <$> makeValueRef val
201valToStr val = jsrefToString <$> makeValueRef val
202foreign import javascript unsafe "$r = $1.toString();" jsrefToString :: JSRef a -> JSStringRef
202foreign import javascript unsafe "$r = $1.toString();" jsrefToString :: JSRef a -> JSStringRef
203#elif defined(USE_WEBKIT)
203#elif defined(USE_WEBKIT)
@@ -253,7 +253,7 @@ valToText jsvar = valToStr jsvar >>= strToText
253-- >>> testJSC $ obj >>= valToJSON 0 >>= strToText
253-- >>> testJSC $ obj >>= valToJSON 0 >>= strToText
255valToJSON :: MakeValueRef val => Word -> val -> JSC JSStringRef
255valToJSON :: MakeValueRef val => Word -> val -> JSC JSStringRef
256−#if defined(__GHCJS__) && defined(USE_JAVASCRIPTFFI)
256+#if defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)
257valToJSON indent val = jsrefToJSON <$> makeValueRef val
257valToJSON indent val = jsrefToJSON <$> makeValueRef val
258foreign import javascript unsafe "$r = JSON.stringify($1);" jsrefToJSON :: JSRef a -> JSStringRef
258foreign import javascript unsafe "$r = JSON.stringify($1);" jsrefToJSON :: JSRef a -> JSStringRef
259#elif defined(USE_WEBKIT)
259#elif defined(USE_WEBKIT)
@@ -285,7 +285,7 @@ valToJSON = undefined
285-- >>> testJSC $ valToObject "1"
285-- >>> testJSC $ valToObject "1"
287valToObject :: MakeValueRef val => val -> JSC JSObjectRef
287valToObject :: MakeValueRef val => val -> JSC JSObjectRef
288−#if (defined(__GHCJS__) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
288+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
289valToObject val = castRef <$> makeValueRef val
289valToObject val = castRef <$> makeValueRef val
291valToObject val = do
291valToObject val = do
@@ -316,7 +316,7 @@ instance MakeValueRef v => MakeValueRef (JSC v) where
316----------- null ---------------
316----------- null ---------------
317-- | Make a @null@ JavaScript value
317-- | Make a @null@ JavaScript value
318valMakeNull :: JSC JSValueRef
318valMakeNull :: JSC JSValueRef
319−#if (defined(__GHCJS__) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
319+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
320valMakeNull = return jsNull
320valMakeNull = return jsNull
322valMakeNull = ask >>= (liftIO . jsvaluemakenull)
322valMakeNull = ask >>= (liftIO . jsvaluemakenull)
@@ -333,7 +333,7 @@ instance MakeArgRefs JSNull where
333----------- undefined ---------------
333----------- undefined ---------------
334-- | Make an @undefined@ JavaScript value
334-- | Make an @undefined@ JavaScript value
335valMakeUndefined :: JSC JSValueRef
335valMakeUndefined :: JSC JSValueRef
336−#if (defined(__GHCJS__) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
336+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
337valMakeUndefined = return jsUndefined
337valMakeUndefined = return jsUndefined
339valMakeUndefined = ask >>= (liftIO . jsvaluemakeundefined)
339valMakeUndefined = ask >>= (liftIO . jsvaluemakeundefined)
@@ -355,7 +355,7 @@ instance MakeArgRefs () where
355----------- booleans ---------------
355----------- booleans ---------------
356-- | Make a JavaScript boolean value
356-- | Make a JavaScript boolean value
357valMakeBool :: JSBool -> JSC JSValueRef
357valMakeBool :: JSBool -> JSC JSValueRef
358−#if (defined(__GHCJS__) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
358+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
359valMakeBool b = return . castRef $ toJSBool b
359valMakeBool b = return . castRef $ toJSBool b
361valMakeBool b = do
361valMakeBool b = do
@@ -374,7 +374,7 @@ instance MakeArgRefs Bool where
374----------- numbers ---------------
374----------- numbers ---------------
375-- | Make a JavaScript number
375-- | Make a JavaScript number
376valMakeNumber :: JSNumber -> JSC JSValueRef
376valMakeNumber :: JSNumber -> JSC JSValueRef
377−#if (defined(__GHCJS__) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
377+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
378valMakeNumber n = liftIO $ castRef <$> toJSRef n
378valMakeNumber n = liftIO $ castRef <$> toJSRef n
380valMakeNumber n = do
380valMakeNumber n = do
@@ -393,7 +393,7 @@ instance MakeArgRefs Double where
393----------- numbers ---------------
393----------- numbers ---------------
394-- | Make a JavaScript string
394-- | Make a JavaScript string
395valMakeString :: Text -> JSC JSValueRef
395valMakeString :: Text -> JSC JSValueRef
396−#if (defined(__GHCJS__) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
396+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
397valMakeString = return . castRef . toJSString
397valMakeString = return . castRef . toJSString
399valMakeString text = do
399valMakeString text = do
@@ -434,7 +434,7 @@ instance MakeValueRef String where
434-- >>> testJSC $ show <$> valToObject True >>= deRefVal
434-- >>> testJSC $ show <$> valToObject True >>= deRefVal
435-- ValObject 0x...
435-- ValObject 0x...
436deRefVal :: MakeValueRef val => val -> JSC JSValue
436deRefVal :: MakeValueRef val => val -> JSC JSValue
437−#if defined(__GHCJS__) && defined(USE_JAVASCRIPTFFI)
437+#if defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)
438deRefVal val = do
438deRefVal val = do
439 gctxt <- ask
439 gctxt <- ask
440 valref <- makeValueRef val
440 valref <- makeValueRef val