on master help sign in
Merge pull request #88 from obsidiansystems/log-exceptions

Log exceptions

commitc745863b2d5b50980c64b326295ed625cfae53c1 authorHamish Mackenzie <Hamish.K.Mackenzie@googlemail.com> dateTue 25 Jun 2019, 00:51 (7 years ago) parentd0076fc1797495
3 files changed+5−3
jsaddle/src/Language/Javascript/JSaddle/Run.hs+2−1 jsaddle/src/Language/Javascript/JSaddle/Run/Files.hs+2−1 jsaddle/src/Language/Javascript/JSaddle/Types.hs+1−1
jsaddle/src/Language/Javascript/JSaddle/Run.hs+2−1
@@ -227,10 +227,11 @@ runJavaScript sendBatch entryPoint = do
227227 zipWithM_ putMVar resultMVars results
228228 forM_ callbacksToFree $ \(JSValueReceived val) ->
229229 atomically (modifyTVar' callbacks (M.delete val))
230− (_, Failure callbacksToFree results exception) -> do
230+ (_, Failure callbacksToFree results exception err) -> do
231231 -- The exception will only be rethrown in Haskell if/when one of the
232232 -- missing results (if any) is evaluated.
233233 putStrLn "A JavaScript exception was thrown! (may not reach Haskell code)"
234+ putStrLn err
234235 zipWithM_ putMVar resultMVars $ results <> repeat (ThrowJSValue exception)
235236 forM_ callbacksToFree $ \(JSValueReceived val) ->
236237 atomically (modifyTVar' callbacks (M.delete val))
jsaddle/src/Language/Javascript/JSaddle/Run/Files.hs+2−1
@@ -315,7 +315,8 @@ runBatch send sendSync = "\
315315 \ catch (err) {\n\
316316 \ var n = ++jsaddle_index;\n\
317317 \ jsaddle_values.set(n, err);\n\
318− \ " <> send "{\"tag\": \"BatchResults\", \"contents\": [batch[2], {\"tag\": \"Failure\", \"contents\": [callbacksToFree, results, n]}]}" <> "\n\
318+ \ console.log(err);\n\
319+ \ " <> send "{\"tag\": \"BatchResults\", \"contents\": [batch[2], {\"tag\": \"Failure\", \"contents\": [callbacksToFree, results, n, String(err)]}]}" <> "\n\
319320 \ }\n\
320321 \ if(inCallback == 1) {\n\
321322 \ while(asyncBatch !== null) {\n\
jsaddle/src/Language/Javascript/JSaddle/Types.hs+1−1
@@ -504,7 +504,7 @@ instance ToJSON Result where
504504instance FromJSON Result
505505
506506data BatchResults = Success [JSValueReceived] [Result]
507− | Failure [JSValueReceived] [Result] JSValueReceived
507+ | Failure [JSValueReceived] [Result] JSValueReceived String
508508 deriving (Show, Generic)
509509
510510instance ToJSON BatchResults where