packages feed

jsaddle 0.1.1.3 → 0.1.1.4

raw patch · 6 files changed

+52/−47 lines, 6 filesdep +ghcjs-basedep ~jsaddle

Dependencies added: ghcjs-base

Dependency ranges changed: jsaddle

Files

jsaddle.cabal view
@@ -1,5 +1,5 @@ name: jsaddle-version: 0.1.1.3+version: 0.1.1.4 cabal-version: >=1.10 license: MIT license-file: LICENSE@@ -17,6 +17,10 @@   type:         git   location:     https://github.com/ghcjs/jsaddle +flag ghcjs+    description: Tell cabal we are using ghcjs (work around until hackage supports impl(ghcjs))+    default: True+   flag gtk3     Description: Use GTK3 rather than GTK2     Default: True@@ -35,11 +39,12 @@  library --    if impl(ghcjs) && flag(jsffi)---        cpp-options: -DUSE_JAVASCRIPTFFI---        build-depends: ghcjs-base+    if flag(ghcjs) && flag(jsffi)+        cpp-options: -DUSE_JAVASCRIPTFFI+        build-depends: ghcjs-base  --    if !impl(ghcjs) || flag(webkit)-    if impl(ghc)+    if !flag(ghcjs) || flag(webkit)         cpp-options: -DUSE_WEBKIT         if flag(gtk3)             build-depends: webkitgtk3 >=0.12.5 && <0.13,@@ -73,11 +78,12 @@         buildable: False  --    if impl(ghcjs) && flag(jsffi)---        cpp-options: -DUSE_JAVASCRIPTFFI---        build-depends: ghcjs-base+    if flag(ghcjs) && flag(jsffi)+        cpp-options: -DUSE_JAVASCRIPTFFI+        build-depends: ghcjs-base  --    if !impl(ghcjs) || flag(webkit)-    if impl(ghc)+    if !flag(ghcjs) || flag(webkit)         cpp-options: -DUSE_WEBKIT         build-depends: glib >=0.12.3.1 && <0.13         if flag(gtk3)@@ -94,7 +100,7 @@      build-depends: template-haskell -any, base <5, lens >=3.8.5 && <4.1,                    text >=0.11.2.3 && <1.2, transformers >=0.3.0.0 && <0.4,-                   hslogger -any, jsaddle ==0.1.1.3+                   hslogger -any, jsaddle ==0.1.1.4     type: exitcode-stdio-1.0     main-is: TestJSaddle.hs     default-language: Haskell2010
src/Language/Javascript/JSaddle.hs view
@@ -55,27 +55,17 @@   --   will be replaced with JavaScript function calls.    -- * Modules-    module Language.Javascript.JSaddle.Monad-  , module Language.Javascript.JSaddle.Exception-  , module Language.Javascript.JSaddle.Value-  , module Language.Javascript.JSaddle.Arguments-  , module Language.Javascript.JSaddle.Properties-  , module Language.Javascript.JSaddle.Object-  , module Language.Javascript.JSaddle.Evaluate-#ifdef MIN_VERSION_jmacro-  , module Language.Javascript.JSaddle.JMacro-#endif-  , module Language.Javascript.JSaddle.String+    module JSaddle ) where -import Language.Javascript.JSaddle.Monad-import Language.Javascript.JSaddle.Exception-import Language.Javascript.JSaddle.Value-import Language.Javascript.JSaddle.Arguments-import Language.Javascript.JSaddle.Properties-import Language.Javascript.JSaddle.Object-import Language.Javascript.JSaddle.Evaluate+import Language.Javascript.JSaddle.Monad as JSaddle+import Language.Javascript.JSaddle.Exception as JSaddle+import Language.Javascript.JSaddle.Value as JSaddle+import Language.Javascript.JSaddle.Arguments as JSaddle+import Language.Javascript.JSaddle.Properties as JSaddle+import Language.Javascript.JSaddle.Object as JSaddle+import Language.Javascript.JSaddle.Evaluate as JSaddle #ifdef MIN_VERSION_jmacro-import Language.Javascript.JSaddle.JMacro+import Language.Javascript.JSaddle.JMacro as JSaddle #endif-import Language.Javascript.JSaddle.String+import Language.Javascript.JSaddle.String as JSaddle
src/Language/Javascript/JSaddle/Evaluate.hs view
@@ -53,7 +53,7 @@                -> JSM JSValueRef #if defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI) evaluateScript script this url line = liftIO $ js_eval (makeStringRef script)-foreign import javascript unsafe "$r = eval(s);"+foreign import javascript unsafe "$r = eval($1);"     js_eval :: JSStringRef -> IO JSValueRef #elif defined(USE_WEBKIT) evaluateScript script this url line = do
src/Language/Javascript/JSaddle/Exception.hs view
@@ -30,6 +30,6 @@  -- | Catch JavaScript exceptions and rethrow Haskell ones rethrow :: (JSValueRefRef -> JSM a) -> JSM a-rethrow f = f `catchval` \e -> do+rethrow f = f `catchval` \e ->     liftIO . E.throwIO $ JSException e 
src/Language/Javascript/JSaddle/Monad.hs view
@@ -70,7 +70,7 @@ catchval :: (JSValueRefRef -> JSM a) -> (JSValueRef -> JSM a) -> JSM a catchval f catcher = do #if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-    pexc <- liftIO $ newArray+    pexc <- liftIO newArray     result <- f pexc     exc <- liftIO $ indexArray 0 pexc     if isUndefined exc || isNull exc
src/Language/Javascript/JSaddle/Object.hs view
@@ -81,7 +81,7 @@ import Foreign.C.Types (CSize(..), CULong(..), CUInt(..)) #if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT) import GHCJS.Types (nullRef, castRef, JSArray, JSFun)-import GHCJS.Foreign (newObj, toArray, fromArray, syncCallback2)+import GHCJS.Foreign (newObj, toArray, fromArray, syncCallback2, ForeignRetention(..)) import Control.Monad (liftM) import Control.Applicative ((<$>)) #else@@ -264,6 +264,9 @@  -- | Use this to create a new JavaScript object --+-- If you pass more than 7 arguments to a constructor for a built in+-- JavaScript type (like Date) then this function will fail.+-- -- >>> testJSaddle $ new "Date" (2013, 1, 1) -- Fri Feb 01 2013 00:00:00 GMT+1300 (NZDT) new :: (MakeObjectRef constructor, MakeArgRefs args)@@ -333,7 +336,7 @@                              --   call the Haskell one when it is called #if defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI) function name f = liftIO $ do-    callback <- syncCallback2 False True $ \this args -> do+    callback <- syncCallback2 NeverRetain True $ \this args -> do         rargs <- fromArray args         runReaderT (f this this rargs) () -- TODO pass function object through     makeFunctionWithCallback (makeStringRef name) callback@@ -362,17 +365,17 @@ --   a name. instance MakeValueRef JSCallAsFunction where #if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-    makeValueRef = function (nullRef::JSStringRef)+    makeValueRef = function (nullRef:: JSStringRef) #else-    makeValueRef = function (nullPtr::JSStringRef)+    makeValueRef = function (nullPtr:: JSStringRef) #endif  instance MakeArgRefs JSCallAsFunction where     makeArgRefs f = do #if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-        rarg <- function (nullRef::JSStringRef) f+        rarg <- function (nullRef:: JSStringRef) f #else-        rarg <- function (nullPtr::JSStringRef) f+        rarg <- function (nullPtr:: JSStringRef) f #endif         return [rarg] @@ -473,6 +476,9 @@ #endif  -- | Call a JavaScript object as a constructor. Consider using 'new'.+--+-- If you pass more than 7 arguments to a constructor for a built in+-- JavaScript type (like Date) then this function will fail. objCallAsConstructor :: MakeArgRefs args                      => JSObjectRef                      -> args@@ -485,22 +491,25 @@ foreign import javascript unsafe "\     try {\         switch($2.length) {\-            case 0 : $r = new $1();\-            case 1 : $r = new $1($2[0]);\-            case 2 : $r = new $1($2[0],$2[1]);\-            case 3 : $r = new $1($2[0],$2[1],$2[2]);\-            case 4 : $r = new $1($2[0],$2[1],$2[2],$2[3]);\-            case 5 : $r = new $1($2[0],$2[1],$2[2],$2[3],$2[4]);\-            case 6 : $r = new $1($2[0],$2[1],$2[2],$2[3],$2[4],$2[5]);\-            case 6 : $r = new $1($2[0],$2[1],$2[2],$2[3],$2[4],$2[5],$2[6]);\+            case 0 : $r = new $1(); break;\+            case 1 : $r = new $1($2[0]); break;\+            case 2 : $r = new $1($2[0],$2[1]); break;\+            case 3 : $r = new $1($2[0],$2[1],$2[2]); break;\+            case 4 : $r = new $1($2[0],$2[1],$2[2],$2[3]); break;\+            case 5 : $r = new $1($2[0],$2[1],$2[2],$2[3],$2[4]); break;\+            case 6 : $r = new $1($2[0],$2[1],$2[2],$2[3],$2[4],$2[5]); break;\+            case 7 : $r = new $1($2[0],$2[1],$2[2],$2[3],$2[4],$2[5],$2[6]); break;\             default:\                 var ret;\                 var temp = function() {\                     ret = $1.apply(this, $2);\                 };\-                temp.prototype = f.prototype;\+                temp.prototype = $1.prototype;\                 var i = new temp();\-                $r = ret instanceof Object ? ret : i;\+                if(ret instanceof Object)\+                    return ret;\+                i.constructor = $1;\+                return i;\         }\     }\     catch(e) {\