mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 10:07:44 +00:00
LibJS: Throw RangeError in String.prototype.repeat() if count is invalid
This commit is contained in:
parent
0718f216af
commit
a893c6ff0d
1 changed files with 5 additions and 6 deletions
|
@ -86,12 +86,11 @@ Value StringPrototype::repeat(Interpreter& interpreter)
|
|||
ASSERT(this_object->is_string_object());
|
||||
if (!interpreter.argument_count())
|
||||
return js_string(interpreter, String::empty());
|
||||
i32 count = 0;
|
||||
count = interpreter.argument(0).to_i32();
|
||||
if (count < 0) {
|
||||
// FIXME: throw RangeError
|
||||
return {};
|
||||
}
|
||||
if (interpreter.argument(0).to_double() < 0)
|
||||
return interpreter.throw_exception<RangeError>("repeat count must be a positive number");
|
||||
if (interpreter.argument(0).to_number().is_infinity())
|
||||
return interpreter.throw_exception<RangeError>("repeat count must be a finite number");
|
||||
auto count = interpreter.argument(0).to_i32();
|
||||
auto* string_object = static_cast<StringObject*>(this_object);
|
||||
StringBuilder builder;
|
||||
for (i32 i = 0; i < count; ++i)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue