mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 06:58:11 +00:00
LibJS: Implement most of the Reflect object
This commit is contained in:
parent
1ba2e6768d
commit
79b829637e
22 changed files with 877 additions and 54 deletions
|
@ -1087,11 +1087,17 @@ PropertyName MemberExpression::computed_property_name(Interpreter& interpreter)
|
|||
auto index = m_property->execute(interpreter);
|
||||
if (interpreter.exception())
|
||||
return {};
|
||||
|
||||
ASSERT(!index.is_empty());
|
||||
// FIXME: What about non-integer numbers tho.
|
||||
if (index.is_number() && index.to_i32() >= 0)
|
||||
return PropertyName(index.to_i32());
|
||||
return PropertyName(index.to_string());
|
||||
|
||||
if (!index.to_number().is_finite_number())
|
||||
return PropertyName(index.to_string());
|
||||
|
||||
auto index_as_double = index.to_double();
|
||||
if (index_as_double < 0 || (i32)index_as_double != index_as_double)
|
||||
return PropertyName(index.to_string());
|
||||
|
||||
return PropertyName(index.to_i32());
|
||||
}
|
||||
|
||||
String MemberExpression::to_string_approximation() const
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue