Skip to content

Commit 96dbc9e

Browse files
committed
fix(repl): panic when user deleted globalThis
1 parent 7504764 commit 96dbc9e

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

‎cli/tools/repl/mod.rs

+7-3
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,13 @@ impl Repl {
6363

6464
// We check for close and break here instead of making it a loop condition to get
6565
// consistent behavior in when the user evaluates a call to close().
66-
if self.session.closing().await? {
67-
break;
68-
}
66+
match self.session.closing().await {
67+
Ok(closing) if closing => break,
68+
Ok(_) => {}
69+
Err(err) => {
70+
println!("Error: {:?}", err)
71+
}
72+
};
6973

7074
println!("{}", output);
7175
}

‎cli/tools/repl/session.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -312,12 +312,10 @@ impl ReplSession {
312312

313313
pub async fn closing(&mut self) -> Result<bool, AnyError> {
314314
let expression = format!(r#"{}.closed"#, *REPL_INTERNALS_NAME);
315-
let closed = self
316-
.evaluate_expression(&expression)
317-
.await?
318-
.result
315+
let result = self.evaluate_expression(&expression).await?.result;
316+
let closed = result
319317
.value
320-
.unwrap()
318+
.ok_or_else(|| anyhow!(result.description.unwrap()))?
321319
.as_bool()
322320
.unwrap();
323321

0 commit comments

Comments
 (0)