diff options
author | Luite Stegeman <stegeman@gmail.com> | 2023-01-31 16:58:28 +0900 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2023-02-06 09:43:59 -0500 |
commit | 77a8234c5d284846e18c0a44ba5ee196059aaea6 (patch) | |
tree | 20dddc13a24603030c76b4f12fe1abc030a2a6dd /rts | |
parent | 6636b670233522f01d002c9b97827d00289dbf5c (diff) | |
download | haskell-77a8234c5d284846e18c0a44ba5ee196059aaea6.tar.gz |
Fix marking async exceptions in the JS backend
Async exceptions are posted as a pair of the exception and
the thread object. This fixes the marking pass to correctly
follow the two elements of the pair.
Potentially fixes #22836
Diffstat (limited to 'rts')
-rw-r--r-- | rts/js/gc.js | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/rts/js/gc.js b/rts/js/gc.js index 6c9934ed33..00def79daa 100644 --- a/rts/js/gc.js +++ b/rts/js/gc.js @@ -493,7 +493,8 @@ function h$follow(obj, sp) { } } for(i=0;i<c.excep.length;i++) { - ADDW(c.excep[i]); + ADDW(c.excep[i][0]); // the posting thread + ADDW(c.excep[i][1]); // the exception } } else if(c instanceof h$Transaction) { // - the accessed TVar values don't need to be marked |