avm2: Use correct error in toPrecision

This commit is contained in:
Nathan Adams 2023-08-01 13:34:03 +02:00
parent 2f98da44fb
commit c9c2e213bb
4 changed files with 6 additions and 4 deletions

View File

@ -2,6 +2,7 @@
use crate::avm2::activation::Activation;
use crate::avm2::class::{Class, ClassAttributes};
use crate::avm2::error::range_error;
use crate::avm2::globals::number::{print_with_precision, print_with_radix};
use crate::avm2::method::{Method, NativeMethodImpl, ParamConfig};
use crate::avm2::object::{primitive_allocator, FunctionObject, Object, TObject};
@ -199,7 +200,7 @@ fn to_precision<'gc>(
.coerce_to_u32(activation)? as usize;
if wanted_digits < 1 || wanted_digits > 21 {
return Err("toPrecision can only print with 1 through 21 digits.".into());
return Err(Error::AvmError(range_error(activation, "Error #1002: Number.toPrecision has a range of 1 to 21. Number.toFixed and Number.toExponential have a range of 0 to 20. Specified value is not within expected range.", 1002)?));
}
return Ok(print_with_precision(activation, number as f64, wanted_digits)?.into());

View File

@ -2,6 +2,7 @@
use crate::avm2::activation::Activation;
use crate::avm2::class::{Class, ClassAttributes};
use crate::avm2::error::range_error;
use crate::avm2::method::{Method, NativeMethodImpl};
use crate::avm2::object::{primitive_allocator, FunctionObject, Object, TObject};
use crate::avm2::value::Value;
@ -241,7 +242,7 @@ fn to_precision<'gc>(
.coerce_to_u32(activation)? as usize;
if wanted_digits < 1 || wanted_digits > 21 {
return Err("toPrecision can only print with 1 through 21 digits.".into());
return Err(Error::AvmError(range_error(activation, "Error #1002: Number.toPrecision has a range of 1 to 21. Number.toFixed and Number.toExponential have a range of 0 to 20. Specified value is not within expected range.", 1002)?));
}
return Ok(print_with_precision(activation, number, wanted_digits)?.into());

View File

@ -2,6 +2,7 @@
use crate::avm2::activation::Activation;
use crate::avm2::class::{Class, ClassAttributes};
use crate::avm2::error::range_error;
use crate::avm2::globals::number::{print_with_precision, print_with_radix};
use crate::avm2::method::{Method, NativeMethodImpl, ParamConfig};
use crate::avm2::object::{primitive_allocator, FunctionObject, Object, TObject};
@ -198,7 +199,7 @@ fn to_precision<'gc>(
.coerce_to_u32(activation)? as usize;
if wanted_digits < 1 || wanted_digits > 21 {
return Err("toPrecision can only print with 1 through 21 digits.".into());
return Err(Error::AvmError(range_error(activation, "Error #1002: Number.toPrecision has a range of 1 to 21. Number.toFixed and Number.toExponential have a range of 0 to 20. Specified value is not within expected range.", 1002)?));
}
return Ok(print_with_precision(activation, number as f64, wanted_digits)?.into());

View File

@ -1,2 +1 @@
num_ticks = 1
known_failure = true