summaryrefslogtreecommitdiff
path: root/core/inspector.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2022-09-02 11:43:39 +0100
committerGitHub <noreply@github.com>2022-09-02 12:43:39 +0200
commita74b2ecf379ddb1ff03c61d4e876153d7b4c45d2 (patch)
tree47b3fbe18ba35d59b4fb1062a53544f98656138a /core/inspector.rs
parent658d2cdff22646010915dc1f4a128de6c42a9f79 (diff)
fix(repl): don't terminate on unhandled error events (#15548)
Diffstat (limited to 'core/inspector.rs')
-rw-r--r--core/inspector.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/core/inspector.rs b/core/inspector.rs
index 6a254b76c..b1047d421 100644
--- a/core/inspector.rs
+++ b/core/inspector.rs
@@ -150,7 +150,7 @@ impl JsRuntimeInspector {
pub fn new(
isolate: &mut v8::OwnedIsolate,
context: v8::Global<v8::Context>,
- ) -> Box<Self> {
+ ) -> Rc<RefCell<Self>> {
let scope = &mut v8::HandleScope::new(isolate);
let (new_session_tx, new_session_rx) =
@@ -162,7 +162,7 @@ impl JsRuntimeInspector {
let waker = InspectorWaker::new(scope.thread_safe_handle());
// Create JsRuntimeInspector instance.
- let mut self_ = Box::new(Self {
+ let self__ = Rc::new(RefCell::new(Self {
v8_inspector_client,
v8_inspector: Default::default(),
sessions: RefCell::new(SessionContainer::temporary_placeholder()),
@@ -170,7 +170,8 @@ impl JsRuntimeInspector {
flags: Default::default(),
waker,
deregister_tx: None,
- });
+ }));
+ let mut self_ = self__.borrow_mut();
self_.v8_inspector = Rc::new(RefCell::new(
v8::inspector::V8Inspector::create(scope, &mut *self_).into(),
));
@@ -192,8 +193,9 @@ impl JsRuntimeInspector {
// Poll the session handler so we will get notified whenever there is
// new incoming debugger activity.
let _ = self_.poll_sessions(None).unwrap();
+ drop(self_);
- self_
+ self__
}
pub fn has_active_sessions(&self) -> bool {