diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2023-04-27 22:36:49 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-27 23:36:49 +0200 |
commit | 504482dadd4d8cd9e4105d56ed86802906767f39 (patch) | |
tree | acacb80e50ccfae578822dda63a3ec9e61108d60 /cli/tools/repl/session.rs | |
parent | 6cd62ea5e969de258b1d308daf5bec91e73e79d3 (diff) |
fix(repl): print unhandled rejections and event errors (#18878)
Fixes #8858.
Fixes #8869.
```
$ target/debug/deno
Deno 1.32.5
exit using ctrl+d, ctrl+c, or close()
REPL is running with all permissions allowed.
To specify permissions, run `deno repl` with allow flags.
> Promise.reject(new Error("bar"));
Promise { <rejected> Error: bar
at <anonymous>:2:16 }
Uncaught (in promise) Error: bar
at <anonymous>:2:16
> reportError(new Error("baz"));
undefined
Uncaught Error: baz
at <anonymous>:2:13
>
Diffstat (limited to 'cli/tools/repl/session.rs')
-rw-r--r-- | cli/tools/repl/session.rs | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs index b2645097c..6f8db6fcd 100644 --- a/cli/tools/repl/session.rs +++ b/cli/tools/repl/session.rs @@ -1,5 +1,7 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. +use std::cell::RefCell; +use std::rc::Rc; use std::sync::Arc; use crate::args::CliOptions; @@ -128,12 +130,9 @@ pub struct ReplSession { session: LocalInspectorSession, pub context_id: u64, pub language_server: ReplLanguageServer, + pub notifications: Rc<RefCell<UnboundedReceiver<Value>>>, has_initialized_node_runtime: bool, referrer: ModuleSpecifier, - // FIXME(bartlomieju): this field should be used to listen - // for "exceptionThrown" notifications - #[allow(dead_code)] - notification_rx: UnboundedReceiver<Value>, } impl ReplSession { @@ -193,7 +192,7 @@ impl ReplSession { language_server, has_initialized_node_runtime: false, referrer, - notification_rx, + notifications: Rc::new(RefCell::new(notification_rx)), }; // inject prelude |