From 9a039b907d88f92ff38ba842cd5c4c905273d1a0 Mon Sep 17 00:00:00 2001 From: Iban Eguia Moraza Date: Sun, 27 Feb 2022 17:57:17 +0100 Subject: [PATCH 1/3] Removing the panic in favour of an error result --- boa_engine/src/bytecompiler.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/boa_engine/src/bytecompiler.rs b/boa_engine/src/bytecompiler.rs index 1f4550a98da..ad2590baa6b 100644 --- a/boa_engine/src/bytecompiler.rs +++ b/boa_engine/src/bytecompiler.rs @@ -1510,11 +1510,12 @@ impl<'b> ByteCompiler<'b> { break; } } - assert!( - found, - "Undefined label '{}'", - self.interner().resolve_expect(label_name) - ); + if !found { + return self.context.throw_syntax_error(format!( + "Cannot use the undeclared label '{}", + self.interner().resolve_expect(label_name) + )); + } } else { self.jump_info .last_mut() From f1b2c6a8638c298e0194f1763e6a9519789f7ed2 Mon Sep 17 00:00:00 2001 From: Iban Eguia Moraza Date: Sun, 27 Feb 2022 17:59:53 +0100 Subject: [PATCH 2/3] Fixed the single quote in error message --- boa_engine/src/bytecompiler.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boa_engine/src/bytecompiler.rs b/boa_engine/src/bytecompiler.rs index ad2590baa6b..cfb05d3381d 100644 --- a/boa_engine/src/bytecompiler.rs +++ b/boa_engine/src/bytecompiler.rs @@ -1512,7 +1512,7 @@ impl<'b> ByteCompiler<'b> { } if !found { return self.context.throw_syntax_error(format!( - "Cannot use the undeclared label '{}", + "Cannot use the undeclared label '{}'", self.interner().resolve_expect(label_name) )); } From d8cd599538d199855277ae825c718432dcf7cda1 Mon Sep 17 00:00:00 2001 From: Iban Eguia Moraza Date: Sun, 27 Feb 2022 18:31:02 +0100 Subject: [PATCH 3/3] Fixed test --- boa_engine/src/tests.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/boa_engine/src/tests.rs b/boa_engine/src/tests.rs index 1d8176012a0..b93da4cc1c5 100644 --- a/boa_engine/src/tests.rs +++ b/boa_engine/src/tests.rs @@ -431,7 +431,6 @@ fn for_loop_iteration_variable_does_not_leak() { } #[test] -#[should_panic] fn test_invalid_break_target() { let src = r#" while (false) { @@ -439,7 +438,7 @@ fn test_invalid_break_target() { } "#; - let _ = &exec(src); + assert!(Context::default().eval(src).is_err()); } #[test]