mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 05:17:35 +00:00
LibJS: Tweak Value::to_property_key() fast path for Int32
Move the check for Int32 *before* we call to_primitive().
This commit is contained in:
parent
cfbb69a9cd
commit
72cd31d033
1 changed files with 2 additions and 2 deletions
|
@ -561,9 +561,9 @@ ThrowCompletionOr<double> Value::to_double(GlobalObject& global_object) const
|
||||||
// 7.1.19 ToPropertyKey ( argument ), https://tc39.es/ecma262/#sec-topropertykey
|
// 7.1.19 ToPropertyKey ( argument ), https://tc39.es/ecma262/#sec-topropertykey
|
||||||
ThrowCompletionOr<PropertyKey> Value::to_property_key(GlobalObject& global_object) const
|
ThrowCompletionOr<PropertyKey> Value::to_property_key(GlobalObject& global_object) const
|
||||||
{
|
{
|
||||||
|
if (type() == Type::Int32 && as_i32() >= 0)
|
||||||
|
return PropertyKey { as_i32() };
|
||||||
auto key = TRY(to_primitive(global_object, PreferredType::String));
|
auto key = TRY(to_primitive(global_object, PreferredType::String));
|
||||||
if (key.type() == Type::Int32 && key.as_i32() >= 0)
|
|
||||||
return PropertyKey { key.as_i32() };
|
|
||||||
if (key.is_symbol())
|
if (key.is_symbol())
|
||||||
return &key.as_symbol();
|
return &key.as_symbol();
|
||||||
return TRY(key.to_string(global_object));
|
return TRY(key.to_string(global_object));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue