on 2c317aa help sign in
18 files changed+74−105
since splitsnapshots
unifiedsplit
.travis.yml+1−1 README.md+3−3 cabal.project+8−1 default.nix+28 jsaddle-clib/jsaddle-clib.cabal+2−2 jsaddle-warp/jsaddle-warp.cabal+6−6 jsaddle-webkit2gtk/jsaddle-webkit2gtk.cabal+3−3 jsaddle-webkit2gtk/src/Language/Javascript/JSaddle/WebKitGTK.hs+2−8 jsaddle-wkwebview/cbits-uikit/AppDelegate.m−12 jsaddle-wkwebview/default.nix−14 jsaddle-wkwebview/jsaddle-wkwebview.cabal+3−5 jsaddle-wkwebview/src-ghc/Language/Javascript/JSaddle/WKWebView.hs+1−23 jsaddle-wkwebview/src/Language/Javascript/JSaddle/WKWebView/Internal.hs+1−7 jsaddle/jsaddle.cabal+8−8 jsaddle/src/Language/Javascript/JSaddle/Object.hs+4−3 jsaddle/src/Language/Javascript/JSaddle/Run/Files.hs+1−1 nix/hix.nix−8 shell.nix+3
.travis.yml+1−1
@@ -43,5 +43,5 @@ script:
4343
4444notifications:
4545 irc:
46− channels: "irc.freenode.net#ghcjs"
46+ channels: "irc.freenode.net#gtk2hs"
4747 email: true
README.md+3−3
@@ -137,7 +137,7 @@ The first five keys `[0..4]` are
137137these values. Both the Haskell code and `jsaddle.js` can allocate new `JSVal` keys. The Haskell code allocates negative
138138keys and `jsaddle.js` allocates positive keys to avoid clashing.
139139
140−The haskell code will not know the value to go with the key, but it will include it in commands to the server
140+The haskell code will not know the value of the to go with the key, but it will include it in commands to the server
141141that are sort of "hey call this function and put the result in the map with this key"). This allows for the
142142lazy execution of the JSaddle code.
143143
@@ -146,7 +146,7 @@ when the JSVal is no longer reachable. The `jsaddle.js` code then deletes the k
146146
147147### JSStrings
148148
149−These are haskell `Text` type and so reside on the native side of the WebSocket. If you want to avoid transferring large string values over the WebSocket use `toJSVal` to convert it to a `JSVal`.
149+These are haskell `Text` type and so reside on the native side of the WebSocket. If you want to make avoid transferring large string values over the WebSocket use `toJSVal` to convert it to a `JSVal`.
150150
151151### Lazy Execution
152152
@@ -213,7 +213,7 @@ JSaddle does not support exceptions well. When compiled with GHCJS an exception
213213at the point the exception is thrown.
214214
215215When using GHC the Haskell executions will probably continue for a while before the exception is received at all by the Haskell code
216−(because the lazy execution of the JS code). The exception will be thrown when the next synchronous command is executed.
216+(because the lazy execution of the JS code). The exception will be thrown when the the next synchronous command is executed.
217217When it reaches the synchronous command a haskell type JSException will be thrown (this may not be the thread that initiated the
218218command that caused the exception). You can use `syncPoint` and `syncAfter` to force the exception to be thrown.
219219There are `JSM` versions of `catch` and `bracket` that also include a `syncPoint` call.
cabal.project+8−1
@@ -2,9 +2,16 @@ packages:
22 jsaddle/
33 jsaddle-warp/
44 jsaddle-wkwebview/
5+-- jsaddle-webkitgtk/
56 jsaddle-webkit2gtk/
67 jsaddle-clib/
78
89constraints: haskell-gi-overloading == 0.0
910
10−allow-newer: websockets:random, splitmix:time, *:time, *:unix, *:process, stm:base
11+write-ghc-environment-files: never
12+
13+source-repository-package
14+ type: git
15+ location: https://github.com/gtk2hs/webkit-javascriptcore
16+ tag: 5868624d0ea1db6e6279c301f7f56adb808a85bf
17+ --sha256: 0aj0cvcbnzrdi1ynahpb4034vadfrs99n5qa8dar1srhijv55g8b
default.nixnew file+28
@@ -0,0 +1,28 @@
1+{ pkgs ? import nixpkgs (haskellNixpkgsArgs // (if system == null then {} else { inherit system; }) //
2+ { overlays = haskellNixpkgsArgs.overlays ++ [(self: super: {
3+ inherit (self.haskell-nix.haskellPackages) alex happy;
4+ })];})
5+, nixpkgs ? haskellNixSrc + "/nixpkgs"
6+, haskellNixpkgsArgs ? import haskellNixSrc
7+, haskellNixSrc ? builtins.fetchTarball {
8+ url = "https://github.com/input-output-hk/haskell.nix/archive/1dd6951d6a56115fd368c5b37b8dab47a90ec45c.tar.gz";
9+ sha256 = "02nhjy90xwg9wrp81cnlczndxags966c71wlbz6n91423a13mc99";
10+ }
11+, haskellCompiler ? "ghc881"
12+, system ? null
13+}:
14+let
15+ frameworks = pkgs.lib.optionals pkgs.stdenv.isDarwin (
16+ with pkgs.darwin.apple_sdk.frameworks; [ Cocoa Carbon CoreGraphics ]);
17+ project = pkgs.haskell-nix.cabalProject' {
18+ src = pkgs.haskell-nix.haskellLib.cleanGit { src = ./.; };
19+ ghc = pkgs.buildPackages.pkgs.haskell-nix.compiler.${haskellCompiler};
20+ modules = [
21+ ({ config, ...}: {
22+ packages.gi-gtk.components.setup.frameworks = frameworks;
23+ packages.vault.components.library.doHaddock = false;
24+ })
25+ ];
26+ };
27+in
28+ project
jsaddle-clib/jsaddle-clib.cabal+2−2
@@ -1,5 +1,5 @@
11name: jsaddle-clib
2−version: 0.9.8.0
2+version: 0.9.7.0
33cabal-version: >=1.10
44build-type: Simple
55license: MIT
@@ -21,7 +21,7 @@ library
2121 Language.Javascript.JSaddle.CLib
2222 Language.Javascript.JSaddle.CLib.Internal
2323 build-depends:
24− aeson >=0.8.0.2 && <1.6,
24+ aeson >=0.8.0.2 && <1.5,
2525 base <5,
2626 base-compat >=0.9.0 && <0.12,
2727 bytestring >=0.10.6.0 && <0.11,
jsaddle-warp/jsaddle-warp.cabal+6−6
@@ -1,5 +1,5 @@
11name: jsaddle-warp
2−version: 0.9.8.0
2+version: 0.9.7.0
33cabal-version: >=1.10
44build-type: Simple
55license: MIT
@@ -27,7 +27,7 @@ library
2727 other-modules:
2828 Language.Javascript.JSaddle.WebSockets.Compat
2929 build-depends:
30− aeson >=0.8.0.2 && <1.6,
30+ aeson >=0.8.0.2 && <1.5,
3131 bytestring >=0.10.6.0 && <0.11,
3232 containers >=0.5.6.2 && <0.7,
3333 foreign-store >=0.2 && <0.3,
@@ -35,11 +35,11 @@ library
3535 jsaddle >=0.9.4.0 && <0.10,
3636 stm >=2.4.4 && <2.6,
3737 text >=1.2.1.3 && <1.3,
38− time >=1.5.0.1 && <1.11,
38+ time >=1.5.0.1 && <1.10,
3939 transformers >=0.4.2.0 && <0.6,
4040 wai >=3.0.3.0 && <3.3,
4141 wai-websockets >=3.0.0.6 && <3.1,
42− warp >=3.1.2 && <3.4,
42+ warp >=3.1.2 && <3.3,
4343 websockets >=0.9.5.0 && <0.13
4444 exposed-modules:
4545 Language.Javascript.JSaddle.Warp
@@ -59,7 +59,7 @@ test-suite test-tool
5959 bytestring -any,
6060 containers -any,
6161 deepseq -any,
62− doctest >=0.10.1 && <0.19,
62+ doctest >=0.10.1 && <0.17,
6363 exceptions -any,
6464 filepath >=1.4.0.0 && <1.5,
6565 foreign-store -any,
@@ -81,7 +81,7 @@ test-suite test-tool
8181 wai -any,
8282 wai-websockets -any,
8383 warp -any,
84− webdriver >=0.8.4 && <0.10,
84+ webdriver >=0.8.4 && <1.0,
8585 websockets -any
8686 type: exitcode-stdio-1.0
8787 main-is: DocTest.hs
jsaddle-webkit2gtk/jsaddle-webkit2gtk.cabal+3−3
@@ -1,5 +1,5 @@
11name: jsaddle-webkit2gtk
2−version: 0.9.8.0
2+version: 0.9.7.0
33cabal-version: >=1.10
44build-type: Simple
55license: MIT
@@ -26,7 +26,7 @@ library
2626 base <5
2727 if !impl(ghcjs -any)
2828 build-depends:
29− aeson >=0.8.0.2 && <1.6,
29+ aeson >=0.8.0.2 && <1.5,
3030 base <5,
3131 bytestring >=0.10.6.0 && <0.11,
3232 directory >=1.0.0.2 && <1.4,
@@ -35,7 +35,7 @@ library
3535 gi-gtk >=3.0.17 && <3.1,
3636 gi-webkit2 >=4.0.14 && <4.1,
3737 gi-javascriptcore >=4.0.14 && <4.1,
38− haskell-gi-base >=0.20 && <0.26,
38+ haskell-gi-base >=0.20 && <0.24,
3939 haskell-gi-overloading >=0.0 && < 2.0,
4040 jsaddle >=0.9.4.0 && <0.10,
4141 text >=1.2.1.3 && <1.3,
jsaddle-webkit2gtk/src/Language/Javascript/JSaddle/WebKitGTK.hs+2−8
@@ -55,11 +55,11 @@ import GI.GLib (timeoutAdd, idleAdd, pattern PRIORITY_HIGH, pattern PRIORITY_DEF
5555import qualified GI.Gtk as Gtk (main, init)
5656import GI.Gtk
5757 (windowSetPosition, windowSetDefaultSize, windowNew,
58− scrolledWindowNew, Adjustment, containerAdd,
58+ scrolledWindowNew, noAdjustment, containerAdd,
5959 WindowType(..), WindowPosition(..), widgetDestroy,
6060 widgetGetToplevel, widgetShowAll, onWidgetDestroy,
6161 mainQuit)
62−import GI.Gio (Cancellable)
62+import GI.Gio (noCancellable)
6363import GI.JavaScriptCore (valueToString)
6464import GI.WebKit2
6565 (scriptDialogPromptSetText, scriptDialogPromptGetDefaultText,
@@ -82,12 +82,6 @@ import Language.Javascript.JSaddle (JSM, Results, Batch)
8282import Language.Javascript.JSaddle.Run (runJavaScript)
8383import Language.Javascript.JSaddle.Run.Files (initState, runBatch, ghcjsHelpers)
8484
85−noAdjustment :: Maybe Adjustment
86−noAdjustment = Nothing
87−
88−noCancellable :: Maybe Cancellable
89−noCancellable = Nothing
90−
9185quitWebView :: WebView -> IO ()
9286quitWebView wv = postGUIAsync $ do w <- widgetGetToplevel wv --TODO: Shouldn't this be postGUISync?
9387 widgetDestroy w
jsaddle-wkwebview/cbits-uikit/AppDelegate.m−12
@@ -5,7 +5,6 @@
55
66extern void callIO(HsStablePtr);
77extern void callWithCString(const char * _Nonnull, HsStablePtr);
8−extern void callWithCIntCString(int n, const char * _Nonnull, HsStablePtr);
98
109@interface AppDelegate ()
1110
@@ -21,7 +20,6 @@ HsStablePtr global_applicationWillEnterForeground = 0;
2120HsStablePtr global_applicationWillTerminate = 0;
2221HsStablePtr global_applicationSignificantTimeChange = 0;
2322HsStablePtr global_applicationUniversalLink = 0;
24−HsStablePtr global_applicationDidReceiveRemoteNotification = 0;
2523uint64_t global_requestAuthorizationWithOptions = 0;
2624uint64_t global_requestAuthorizationOptionBadge = 0;
2725uint64_t global_requestAuthorizationOptionSound = 0;
@@ -117,14 +115,6 @@ HsStablePtr global_didFailToRegisterForRemoteNotificationsWithError = 0;
117115 if ([userInfo valueForKeyPath:@"aps.badge"] != nil) {
118116 [UIApplication sharedApplication].applicationIconBadgeNumber=[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue];
119117 }
120− NSError *error;
121− NSData *jsonData = [NSJSONSerialization dataWithJSONObject:userInfo options:0 error:&error];
122− if (jsonData) {
123− NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
124− callWithCIntCString((int) application.applicationState, [jsonString UTF8String], global_applicationDidReceiveRemoteNotification);
125− } else {
126− NSLog(@"jsaddle-wkwebview didReceiveRemoteNotification handler: error while serialising push notification as JSON");
127− }
128118 completionHandler(UIBackgroundFetchResultNewData);
129119}
130120
@@ -162,7 +152,6 @@ void runInWKWebView(HsStablePtr handler,
162152 HsStablePtr hs_applicationWillTerminate,
163153 HsStablePtr hs_applicationSignificantTimeChange,
164154 HsStablePtr hs_applicationUniversalLink,
165− HsStablePtr hs_applicationDidReceiveRemoteNotification,
166155 const uint64_t hs_requestAuthorizationWithOptions,
167156 const uint64_t hs_requestAuthorizationOptionBadge,
168157 const uint64_t hs_requestAuthorizationOptionSound,
@@ -183,7 +172,6 @@ void runInWKWebView(HsStablePtr handler,
183172 global_applicationWillTerminate = hs_applicationWillTerminate;
184173 global_applicationSignificantTimeChange = hs_applicationSignificantTimeChange;
185174 global_applicationUniversalLink = hs_applicationUniversalLink;
186− global_applicationDidReceiveRemoteNotification = hs_applicationDidReceiveRemoteNotification;
187175 global_requestAuthorizationWithOptions = hs_requestAuthorizationWithOptions;
188176 global_requestAuthorizationOptionBadge = hs_requestAuthorizationOptionBadge;
189177 global_requestAuthorizationOptionSound = hs_requestAuthorizationOptionSound;
jsaddle-wkwebview/default.nixdeleted−14
@@ -1,14 +0,0 @@
1−{ filterSource ? (x: x) }:
2−self: super:
3−let
4− pkgs = self.callPackage ({pkgs}: pkgs) {};
5− inherit (pkgs) lib;
6−in
7−with pkgs.haskell.lib;
8−overrideCabal (self.callCabal2nix "jsaddle-wkwebview" (filterSource ./.) {}) (drv: {
9− libraryFrameworkDepends = (drv.libraryFrameworkDepends or []) ++
10− (if pkgs.stdenv.hostPlatform.useiOSPrebuilt then [
11− "${pkgs.buildPackages.darwin.xcode}/Contents/Developer/Platforms/${pkgs.stdenv.hostPlatform.xcodePlatform}.platform/Developer/SDKs/${pkgs.stdenv.hostPlatform.xcodePlatform}.sdk/System"
12− ] else (with pkgs.buildPackages.darwin.apple_sdk.frameworks; [ Cocoa WebKit ]));
13− buildDepends = lib.optional (!pkgs.stdenv.hostPlatform.useiOSPrebuilt) [ pkgs.buildPackages.darwin.cf-private ];
14−})
jsaddle-wkwebview/jsaddle-wkwebview.cabal+3−5
@@ -1,5 +1,5 @@
11name: jsaddle-wkwebview
2−version: 0.9.8.0
2+version: 0.9.7.0
33cabal-version: >=1.10
44build-type: Simple
55license: MIT
@@ -29,15 +29,13 @@ library
2929 base <5
3030 default-language: Haskell2010
3131 hs-source-dirs: src
32+ frameworks: Foundation, WebKit
3233 ghc-options: -ferror-spans -Wall
33− if os(linux)
34− buildable: False
3534 if impl(ghcjs)
3635 hs-source-dirs: src-ghcjs
3736 else
38− frameworks: Foundation, WebKit
3937 build-depends:
40− aeson >=0.8.0.2 && <1.6,
38+ aeson >=0.8.0.2 && <1.5,
4139 bytestring >=0.10.6.0 && <0.11,
4240 directory,
4341 jsaddle >= 0.9.4.0 && <0.10,
jsaddle-wkwebview/src-ghc/Language/Javascript/JSaddle/WKWebView.hs+1−23
@@ -9,7 +9,6 @@ module Language.Javascript.JSaddle.WKWebView
99 , runHTMLWithBaseURL
1010 , runFile
1111 , mainBundleResourcePath
12− , ApplicationState (..)
1312 , AppDelegateConfig (..)
1413 , AppDelegateNotificationConfig (..)
1514 , AuthorizationOption (..)
@@ -25,7 +24,7 @@ import Language.Javascript.JSaddle.WKWebView.Internal
2524 (jsaddleMain, jsaddleMainHTMLWithBaseURL, jsaddleMainFile, WKWebView(..), mainBundleResourcePath)
2625import System.Environment (getProgName)
2726import Foreign.C.String (CString, withCString)
28−import Foreign.C.Types (CBool, CInt)
27+import Foreign.C.Types (CBool)
2928import Foreign.StablePtr (StablePtr, newStablePtr)
3029import Language.Javascript.JSaddle (JSM)
3130
@@ -41,7 +40,6 @@ foreign import ccall runInWKWebView
4140 -> StablePtr (IO ()) -- applicationWillTerminate
4241 -> StablePtr (IO ()) -- applicationSignificantTimeChange
4342 -> StablePtr (CString -> IO ()) -- applicationUniversalLink
44− -> StablePtr (CInt -> CString -> IO ()) -- applicationDidReceiveRemoteNotification
4543 -> Word64 -- whether to run requestAuthorizationWithOptions
4644 -> Word64 -- Ask for Badge authorization
4745 -> Word64 -- Ask for Sound authorization
@@ -68,11 +66,6 @@ data AppDelegateConfig = AppDelegateConfig
6866 --
6967 -- The Core Foundation plist key CFBundleURLTypes controls which URL schemes
7068 -- the app should respond to.
71− , _appDelegateConfig_applicationDidReceiveRemoteNotification :: ApplicationState -> CString -> IO ()
72− -- ^ Called when the application receives a remote notification.
73− -- 'ApplicationState' is the current state of the app.
74− -- The 'CString' JSON-encoded user info contained in the notification.
75− -- For more information see https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623117-application?language=objc
7669 , _appDelegateConfig_appDelegateNotificationConfig :: AppDelegateNotificationConfig
7770 , _appDelegateConfig_developerExtrasEnabled :: Bool
7871 -- ^ Allow devtools in the app. Defaults to 'True'
@@ -96,7 +89,6 @@ instance Default AppDelegateConfig where
9689 , _appDelegateConfig_applicationWillTerminate = return ()
9790 , _appDelegateConfig_applicationSignificantTimeChange = return ()
9891 , _appDelegateConfig_applicationUniversalLink = \_ -> return ()
99− , _appDelegateConfig_applicationDidReceiveRemoteNotification = \_ _ -> return ()
10092 , _appDelegateConfig_appDelegateNotificationConfig = def
10193 , _appDelegateConfig_developerExtrasEnabled = True
10294 , _appDelegateConfig_applicationOpenFile = \_ -> return False
@@ -108,12 +100,6 @@ data AuthorizationOption = AuthorizationOption_Badge
108100 | AuthorizationOption_CarPlay
109101 deriving (Show, Read, Eq, Ord)
110102
111−data ApplicationState = ApplicationState_Active
112− | ApplicationState_Inactive
113− | ApplicationState_Background
114− | ApplicationState_Unknown CInt
115− deriving (Show, Read, Eq, Ord)
116−
117103data AppDelegateNotificationConfig = AppDelegateNotificationConfig
118104 { _appDelegateNotificationConfig_requestAuthorizationWithOptions :: Maybe (Set AuthorizationOption)
119105 , _appDelegateNotificationConfig_registerForRemoteNotifications :: Bool
@@ -176,13 +162,6 @@ run' cfg main = do
176162 applicationWillTerminate <- newStablePtr $ _appDelegateConfig_applicationWillTerminate cfg
177163 applicationSignificantTimeChange <- newStablePtr $ _appDelegateConfig_applicationSignificantTimeChange cfg
178164 applicationUniversalLink <- newStablePtr $ _appDelegateConfig_applicationUniversalLink cfg
179− applicationDidReceiveRemoteNotification <- newStablePtr $ \n s -> do
180− let appState = case n of
181− 0 -> ApplicationState_Active
182− 1 -> ApplicationState_Inactive
183− 2 -> ApplicationState_Background
184− _ -> ApplicationState_Unknown n
185− _appDelegateConfig_applicationDidReceiveRemoteNotification cfg appState s
186165 applicationOpenFile <- newStablePtr $ fmap fromBool . _appDelegateConfig_applicationOpenFile cfg
187166
188167 -- AppDelegate notification configuration
@@ -206,7 +185,6 @@ run' cfg main = do
206185 applicationWillTerminate
207186 applicationSignificantTimeChange
208187 applicationUniversalLink
209− applicationDidReceiveRemoteNotification
210188 (fromBool requestAuthorizationWithOptions)
211189 (fromBool $ Set.member AuthorizationOption_Badge authorizationOptions)
212190 (fromBool $ Set.member AuthorizationOption_Sound authorizationOptions)
jsaddle-wkwebview/src/Language/Javascript/JSaddle/WKWebView/Internal.hs+1−7
@@ -20,7 +20,7 @@ import qualified Data.Text as T (pack)
2020import Data.Text.Encoding (encodeUtf8)
2121
2222import Foreign.C.String (CString)
23−import Foreign.C.Types (CBool(..), CInt(..))
23+import Foreign.C.Types (CBool(..))
2424import Foreign.Ptr (Ptr, nullPtr)
2525import Foreign.StablePtr (StablePtr, newStablePtr, deRefStablePtr)
2626
@@ -37,7 +37,6 @@ foreign export ccall jsaddleStart :: StablePtr (IO ()) -> IO ()
3737foreign export ccall jsaddleResult :: StablePtr (Results -> IO ()) -> CString -> IO ()
3838foreign export ccall jsaddleSyncResult :: StablePtr (Results -> IO Batch) -> JSaddleHandler -> CString -> IO ()
3939foreign export ccall callWithWebView :: WKWebView -> StablePtr (WKWebView -> IO ()) -> IO ()
40−foreign export ccall callWithCIntCString :: CInt -> CString -> StablePtr (CInt -> CString -> IO ()) -> IO ()
4140foreign export ccall callWithCString :: CString -> StablePtr (CString -> IO ()) -> IO ()
4241foreign export ccall callWithCStringReturningBool :: CString -> StablePtr (CString -> IO CBool) -> IO CBool
4342foreign export ccall callIO :: StablePtr (IO ()) -> IO ()
@@ -129,11 +128,6 @@ callWithCString c fptr = do
129128 f <- deRefStablePtr fptr
130129 f c
131130
132−callWithCIntCString :: CInt -> CString -> StablePtr (CInt -> CString -> IO ()) -> IO ()
133−callWithCIntCString n s fptr = do
134− f <- deRefStablePtr fptr
135− f n s
136−
137131callWithCStringReturningBool :: CString -> StablePtr (CString -> IO CBool) -> IO CBool
138132callWithCStringReturningBool c fptr = do
139133 f <- deRefStablePtr fptr
jsaddle/jsaddle.cabal+8−8
@@ -1,5 +1,5 @@
11name: jsaddle
2−version: 0.9.8.0
2+version: 0.9.7.0
33cabal-version: >=1.10
44build-type: Simple
55license: MIT
@@ -10,7 +10,7 @@ description:
1010 This package provides an EDSL for calling JavaScript that
1111 can be used both from GHCJS and GHC. When using GHC
1212 the application is run using Warp and WebSockets to
13− drive a small JavaScript helper.
13+ drive a small JavaScipt helper.
1414category: Web, Javascript
1515author: Hamish Mackenzie
1616
@@ -42,14 +42,14 @@ library
4242 ghc-prim,
4343 http-types >=0.8.6 && <0.13,
4444 process >=1.2.3.0 && <1.7,
45− random >= 1.1 && < 1.3,
45+ random >= 1.1 && < 1.2,
4646 ref-tf >=0.4.0.1 && <0.5,
4747 scientific >=0.3 && <0.4,
4848 stm >=2.4.4 && <2.6,
49− time >=1.5.0.1 && <1.11,
49+ time >=1.5.0.1 && <1.10,
5050 unordered-containers >=0.2 && <0.3,
5151 vector >=0.10 && <0.13,
52− unliftio-core >=0.1 && < 0.3
52+ unliftio-core >=0.1 && < 0.2
5353 exposed-modules:
5454 Data.JSString
5555 Data.JSString.Internal
@@ -107,13 +107,13 @@ library
107107 Language.Javascript.JSaddle.Value
108108 Language.Javascript.JSaddle.Types
109109 build-depends:
110− aeson >=0.11.3.0 && <1.6,
110+ aeson >=0.8.0.2 && <1.5,
111111 base >=4.9 && <5,
112112 base-compat >=0.9.0 && <0.12,
113− base64-bytestring >=1.0.0.1 && <1.2,
113+ base64-bytestring >=1.0.0.1 && <1.1,
114114 bytestring >=0.10.6.0 && <0.11,
115115 exceptions >=0.8 && <0.11,
116− lens >=3.8.5 && <5.1,
116+ lens >=3.8.5 && <4.19,
117117 primitive >=0.6.1.0 && <0.8,
118118 text >=1.2.1.3 && <1.3,
119119 transformers >=0.4.2.0 && <0.6
jsaddle/src/Language/Javascript/JSaddle/Object.hs+4−3
@@ -526,11 +526,12 @@ array args = do
526526 Object . coerce <$> fromListIO rargs
527527
528528-- | JavaScript's global object
529+global :: Object
529530#ifdef ghcjs_HOST_OS
530−foreign import javascript unsafe "$r = globalThis"
531− global :: Object
531+global = js_window
532+foreign import javascript unsafe "$r = window"
533+ js_window :: Object
532534#else
533−global :: Object
534535global = Object . JSVal . unsafePerformIO $ newIORef 4
535536#endif
536537
jsaddle/src/Language/Javascript/JSaddle/Run/Files.hs+1−1
@@ -41,7 +41,7 @@ initState = "\
4141 \ jsaddle_values.set(1, undefined);\n\
4242 \ jsaddle_values.set(2, false);\n\
4343 \ jsaddle_values.set(3, true);\n\
44− \ jsaddle_values.set(4, globalThis);\n\
44+ \ jsaddle_values.set(4, window);\n\
4545 \ var jsaddle_index = 100;\n\
4646 \ var expectedBatch = 1;\n\
4747 \ var lastResults = [0, {\"tag\": \"Success\", \"contents\": [[], []]}];\n\
nix/hix.nixdeleted−8
@@ -1,8 +0,0 @@
1−{pkgs, ...}:
2−{ modules = [({pkgs, ...}: {
3− packages.webkit2gtk3-javascriptcore.components.library.doHaddock = false;
4− })];
5− shell.buildInputs = [ pkgs.nodejs ];
6− shell.tools.cabal = {};
7− shell.crossPlatforms = p: [ p.ghcjs ];
8−}
shell.nixnew file+3
@@ -0,0 +1,3 @@
1+{ haskellCompiler ? "ghc881" }:
2+(import ./. { inherit haskellCompiler; }).hsPkgs.shellFor {}
3+