diff --git a/modules/llrt_assert/src/lib.rs b/modules/llrt_assert/src/lib.rs index 4a20ea0676..5c91b96805 100644 --- a/modules/llrt_assert/src/lib.rs +++ b/modules/llrt_assert/src/lib.rs @@ -31,13 +31,14 @@ fn assert(ctx: Ctx, value: Value, message: Opt) -> Result<()> { } if let Some(obj) = message.0 { - if let Some(msg) = obj.as_string() { - let msg = msg.to_string().unwrap(); - return Err(Exception::throw_message(&ctx, &msg)); - } - if let Some(err) = obj.as_exception() { - return Err(err.clone().throw()); - } + match obj.type_of() { + Type::String => { + let msg = obj.as_string().unwrap().to_string().unwrap(); + return Err(Exception::throw_message(&ctx, &msg)); + }, + Type::Exception => return Err(obj.as_exception().cloned().unwrap().throw()), + _ => {}, + }; } Err(Exception::throw_message(