From faff671a7786202bff39fa0cdf41e4518fb11c4b Mon Sep 17 00:00:00 2001 From: Luite Stegeman <stegeman@gmail.com> Date: Thu, 12 Oct 2023 22:02:52 +0200 Subject: [PATCH] JS: clean up some foreign imports --- libraries/base/src/GHC/JS/Foreign/Callback.hs | 2 +- libraries/base/src/GHC/JS/Prim.hs | 8 +++---- libraries/base/src/GHC/JS/Prim/Internal.hs | 6 +++--- libraries/base/src/System/Posix/Internals.hs | 2 +- rts/js/config.js | 21 +++++++++++++++++++ rts/js/thread.js | 2 -- rts/rts.cabal | 1 + 7 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 rts/js/config.js diff --git a/libraries/base/src/GHC/JS/Foreign/Callback.hs b/libraries/base/src/GHC/JS/Foreign/Callback.hs index e40c9257b42e..441ac2f42dfe 100644 --- a/libraries/base/src/GHC/JS/Foreign/Callback.hs +++ b/libraries/base/src/GHC/JS/Foreign/Callback.hs @@ -145,5 +145,5 @@ foreign import javascript unsafe "(($1, $2) => { return h$makeCallbackApply($1, foreign import javascript unsafe "(($1, $2) => { return h$makeCallbackApply($1, h$runSyncReturn, [false], $2); })" js_syncCallbackApplyReturn :: Int -> Exts.Any -> IO (Callback b) -foreign import javascript unsafe "(($1) => { return h$release($1); })" +foreign import javascript unsafe "h$release" js_release :: Callback a -> IO () diff --git a/libraries/base/src/GHC/JS/Prim.hs b/libraries/base/src/GHC/JS/Prim.hs index 7b92c6160d72..3101fd708786 100644 --- a/libraries/base/src/GHC/JS/Prim.hs +++ b/libraries/base/src/GHC/JS/Prim.hs @@ -259,16 +259,16 @@ seqList xs = go xs `seq` xs where go (y:ys) = y `seq` go ys go [] = () -foreign import javascript unsafe "(($1) => { return h$toHsString($1); })" +foreign import javascript unsafe "h$toHsString" js_fromJSString :: JSVal -> Exts.Any -foreign import javascript unsafe "(($1) => { return h$fromHsString($1); })" +foreign import javascript unsafe "h$fromHsString" js_toJSString :: Exts.Any -> JSVal -foreign import javascript unsafe "(($1) => { return h$toHsListJSVal($1); })" +foreign import javascript unsafe "h$toHsListJSVal" js_fromJSArray :: JSVal -> IO Exts.Any -foreign import javascript unsafe "(($1) => { return h$fromHsListJSVal($1); })" +foreign import javascript unsafe "h$fromHsListJSVal" js_toJSArray :: Exts.Any -> IO JSVal foreign import javascript unsafe "(($1) => { return ($1 === null); })" diff --git a/libraries/base/src/GHC/JS/Prim/Internal.hs b/libraries/base/src/GHC/JS/Prim/Internal.hs index be8dd630402a..e39e8e578807 100644 --- a/libraries/base/src/GHC/JS/Prim/Internal.hs +++ b/libraries/base/src/GHC/JS/Prim/Internal.hs @@ -43,14 +43,14 @@ foreign import javascript unsafe js_setCurrentThreadResultWouldBlock :: IO () foreign import javascript unsafe - "(($1) => { return h$setCurrentThreadResultJSException($1); })" + "h$setCurrentThreadResultJSException" js_setCurrentThreadResultJSException :: JSVal -> IO () foreign import javascript unsafe - "(($1) => { return h$setCurrentThreadResultHaskellException($1); })" + "h$setCurrentThreadResultHaskellException" js_setCurrentThreadResultHaskellException :: JSVal -> IO () foreign import javascript unsafe - "(($1) => { return h$setCurrentThreadResultValue($1); })" + "h$setCurrentThreadResultValue" js_setCurrentThreadResultValue :: JSVal -> IO () diff --git a/libraries/base/src/System/Posix/Internals.hs b/libraries/base/src/System/Posix/Internals.hs index 37ec373c203b..08c0614c859b 100644 --- a/libraries/base/src/System/Posix/Internals.hs +++ b/libraries/base/src/System/Posix/Internals.hs @@ -504,7 +504,7 @@ foreign import ccall unsafe "HsBase.h __hscore_lstat" #if defined(javascript_HOST_ARCH) -foreign import javascript unsafe "(() => { return rts_isThreaded; })" rtsIsThreaded_ :: Int +foreign import javascript unsafe "h$rts_isThreaded" rtsIsThreaded_ :: Int foreign import javascript interruptible "h$base_access" c_access :: CString -> CInt -> IO CInt foreign import javascript interruptible "h$base_chmod" diff --git a/rts/js/config.js b/rts/js/config.js new file mode 100644 index 000000000000..2c60c0744f3d --- /dev/null +++ b/rts/js/config.js @@ -0,0 +1,21 @@ +function h$rts_isThreaded() { + return 0; +} + +function h$rts_isTracing() { + return 0; +} + +function h$rts_isDynamic() { + return 0; +} + +function h$rts_isDebugged() { + return 0; +} + +function h$rts_isProfiled() { + return 0; +} + + \ No newline at end of file diff --git a/rts/js/thread.js b/rts/js/thread.js index 23e9fbfbc55a..6a43ceef2b9f 100644 --- a/rts/js/thread.js +++ b/rts/js/thread.js @@ -1460,5 +1460,3 @@ function h$makeMVarListener(mv, stopProp, stopImmProp, preventDefault) { function h$rs() { return h$stack[h$sp]; } - -const rts_isThreaded = 0; diff --git a/rts/rts.cabal b/rts/rts.cabal index aa50ff72a492..23901437d7ff 100644 --- a/rts/rts.cabal +++ b/rts/rts.cabal @@ -99,6 +99,7 @@ library c-sources: version.c js-sources: + js/config.js js/structs.js js/arith.js js/compact.js -- GitLab