mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 21:47:46 +00:00
LibJS: Fix PropertyName::from_value() for negative and non-int numbers
It was converting *any* number to an i32 index, which obviously is not correct for negative ints, doubles, infinity and nan. Fixes #3712.
This commit is contained in:
parent
44d4423229
commit
bc78e4b7da
2 changed files with 16 additions and 4 deletions
|
@ -42,13 +42,13 @@ public:
|
|||
|
||||
static PropertyName from_value(GlobalObject& global_object, Value value)
|
||||
{
|
||||
if (value.is_empty())
|
||||
return {};
|
||||
if (value.is_symbol())
|
||||
return &value.as_symbol();
|
||||
if (value.is_number())
|
||||
if (value.is_integer() && value.as_i32() >= 0)
|
||||
return value.as_i32();
|
||||
if (!value.is_empty())
|
||||
return value.to_string(global_object);
|
||||
return {};
|
||||
return value.to_string(global_object);
|
||||
}
|
||||
|
||||
PropertyName() { }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue