1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 07:18:13 +00:00

LibJS: Make Number.prototype.toString() radix coercion spec compliant

This should use the ToIntegerOrInfinity() abstract operation.
This commit is contained in:
Linus Groh 2021-06-06 07:03:12 +01:00
parent adc3de4480
commit 887852f36d

View file

@ -61,13 +61,14 @@ JS_DEFINE_NATIVE_FUNCTION(NumberPrototype::to_string)
if (vm.exception())
return {};
int radix;
double radix_argument = 10;
auto argument = vm.argument(0);
if (argument.is_undefined()) {
radix = 10;
} else {
radix = argument.to_i32(global_object);
if (!vm.argument(0).is_undefined()) {
radix_argument = argument.to_integer_or_infinity(global_object);
if (vm.exception())
return {};
}
int radix = (int)radix_argument;
if (vm.exception() || radix < 2 || radix > 36) {
vm.throw_exception<RangeError>(global_object, ErrorType::InvalidRadix);