From 5560a6d589ea3414d01b684b59769625c3576e8a Mon Sep 17 00:00:00 2001 From: Casper Beyer Date: Tue, 1 Dec 2020 21:13:30 +0800 Subject: fix(repl): close calls sometimes prints results (#8558) --- cli/tools/repl.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'cli/tools') diff --git a/cli/tools/repl.rs b/cli/tools/repl.rs index cd2839115..c610d7e66 100644 --- a/cli/tools/repl.rs +++ b/cli/tools/repl.rs @@ -449,7 +449,7 @@ pub async fn run( inject_prelude(&mut worker, &mut session, context_id).await?; - while !is_closing(&mut worker, &mut session, context_id).await? { + loop { let line = read_line_and_poll( &mut worker, &mut session, @@ -504,6 +504,12 @@ pub async fn run( evaluate_response }; + // We check for close and break here instead of making it a loop condition to get + // consistent behavior in when the user evaluates a call to close(). + if is_closing(&mut worker, &mut session, context_id).await? { + break; + } + let evaluate_result = evaluate_response.get("result").unwrap(); let evaluate_exception_details = evaluate_response.get("exceptionDetails"); -- cgit v1.2.3