diff options
| author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2022-09-02 11:43:39 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-02 12:43:39 +0200 |
| commit | a74b2ecf379ddb1ff03c61d4e876153d7b4c45d2 (patch) | |
| tree | 47b3fbe18ba35d59b4fb1062a53544f98656138a /core/inspector.rs | |
| parent | 658d2cdff22646010915dc1f4a128de6c42a9f79 (diff) | |
fix(repl): don't terminate on unhandled error events (#15548)
Diffstat (limited to 'core/inspector.rs')
| -rw-r--r-- | core/inspector.rs | 10 |
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 { |
