From b2c79f9ea25ede3c3460e883beb8594e81159731 Mon Sep 17 00:00:00 2001 From: EmperorBale Date: Tue, 21 Mar 2023 23:38:11 -0700 Subject: [PATCH] avm2: Make `resolve_parameters` throw an AVM error --- core/src/avm2/activation.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/core/src/avm2/activation.rs b/core/src/avm2/activation.rs index 9a1a1e2bf..dfc1aa44f 100644 --- a/core/src/avm2/activation.rs +++ b/core/src/avm2/activation.rs @@ -5,7 +5,8 @@ use crate::avm2::class::Class; use crate::avm2::domain::Domain; use crate::avm2::e4x::{escape_attribute_value, escape_element_value}; use crate::avm2::error::{ - make_null_or_undefined_error, make_reference_error, type_error, ReferenceErrorCode, + argument_error, make_null_or_undefined_error, make_reference_error, type_error, + ReferenceErrorCode, }; use crate::avm2::method::{BytecodeMethod, Method, ParamConfig}; use crate::avm2::object::{ @@ -345,11 +346,14 @@ impl<'a, 'gc> Activation<'a, 'gc> { } else if param_config.param_type_name.is_any_name() { return Ok(Value::Undefined); } else { - return Err(format!( - "Param {} (index {index}) was missing when calling {method_name}", - param_config.param_name - ) - .into()); + return Err(Error::AvmError(argument_error( + self, + &format!( + "Error #1063: Argument count mismatch on {} on index {}.", + method_name, index + ), + 1063, + )?)); }; arg.coerce_to_type_name(self, ¶m_config.param_type_name)