Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
-
fe6ed8d9
by Sylvain Henry at 2025-04-24T18:04:12-04:00
1 changed file:
Changes:
| ... | ... | @@ -60,6 +60,21 @@ for the Haskell `Bool` type: |
| 60 | 60 | foreign import javascript "((x) => { return 5; })"
|
| 61 | 61 | type_error :: Bool -> Bool
|
| 62 | 62 | |
| 63 | +Interruptible calling convention
|
|
| 64 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
| 65 | + |
|
| 66 | +A foreign import can be declared with the `interruptible` calling convention:
|
|
| 67 | + |
|
| 68 | +.. code-block:: haskell
|
|
| 69 | + |
|
| 70 | + foreign import javascript interruptible "((i,cont) => { ...; return cont(17); })"
|
|
| 71 | + foo :: Int -> IO Int
|
|
| 72 | + |
|
| 73 | +In this case the javascript function will be passed one additional argument in
|
|
| 74 | +the final position (noted `cont` in the example): it is a continuation
|
|
| 75 | +function that must be called from JavaScript to return a value from the foreign
|
|
| 76 | +call and to resume the execution of the Haskell code.
|
|
| 77 | + |
|
| 63 | 78 | JSVal
|
| 64 | 79 | ^^^^^
|
| 65 | 80 |