summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Groh <mail@linusgroh.de>2022-02-06 15:59:04 +0000
committerLinus Groh <mail@linusgroh.de>2022-02-06 22:02:45 +0000
commit6f20f49b21092c08c2a3d910fcba6166554ffba7 (patch)
treec1cde228e893147ec4a1e5f4c7aaf8de17b89d01
parent3e6aaa3520168a93927b0df38b50653803c85810 (diff)
downloadserenity-6f20f49b21092c08c2a3d910fcba6166554ffba7.zip
Everywhere: Rename JS::PropertyKey variables from property_{name => key}
PropertyKey used to be called PropertyName, but got renamed. Let's update all the variables of this type as well.
-rw-r--r--Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator.cpp12
-rw-r--r--Userland/DevTools/HackStudio/Debugger/DebuggerGlobalJSObject.cpp24
-rw-r--r--Userland/DevTools/HackStudio/Debugger/DebuggerVariableJSObject.cpp10
-rw-r--r--Userland/Libraries/LibJS/AST.cpp46
-rw-r--r--Userland/Libraries/LibJS/Bytecode/Op.cpp10
-rw-r--r--Userland/Libraries/LibJS/Parser.cpp34
-rw-r--r--Userland/Libraries/LibJS/Runtime/AbstractOperations.cpp24
-rw-r--r--Userland/Libraries/LibJS/Runtime/ArgumentsObject.cpp46
-rw-r--r--Userland/Libraries/LibJS/Runtime/Array.cpp26
-rw-r--r--Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp82
-rw-r--r--Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp4
-rw-r--r--Userland/Libraries/LibJS/Runtime/GlobalObject.h16
-rw-r--r--Userland/Libraries/LibJS/Runtime/JSONObject.cpp4
-rw-r--r--Userland/Libraries/LibJS/Runtime/Object.cpp248
-rw-r--r--Userland/Libraries/LibJS/Runtime/Object.h2
-rw-r--r--Userland/Libraries/LibJS/Runtime/ObjectConstructor.cpp14
-rw-r--r--Userland/Libraries/LibJS/Runtime/PropertyKey.h10
-rw-r--r--Userland/Libraries/LibJS/Runtime/ProxyObject.cpp76
-rw-r--r--Userland/Libraries/LibJS/Runtime/Shape.cpp56
-rw-r--r--Userland/Libraries/LibJS/Runtime/Shape.h12
-rw-r--r--Userland/Libraries/LibJS/Runtime/StringObject.cpp24
-rw-r--r--Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp12
-rw-r--r--Userland/Libraries/LibJS/Runtime/TypedArray.h60
-rw-r--r--Userland/Libraries/LibJS/Runtime/Value.cpp16
-rw-r--r--Userland/Libraries/LibJS/Runtime/Value.h2
25 files changed, 435 insertions, 435 deletions
diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator.cpp
index 350d87783d..44876546ca 100644
--- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator.cpp
+++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator.cpp
@@ -2411,27 +2411,27 @@ static JS::Value wrap_for_legacy_platform_object_get_own_property(JS::GlobalObje
// https://webidl.spec.whatwg.org/#dfn-named-property-visibility
scoped_generator.append(R"~~~(
-JS::ThrowCompletionOr<bool> @class_name@::is_named_property_exposed_on_object(JS::PropertyKey const& property_name) const
+JS::ThrowCompletionOr<bool> @class_name@::is_named_property_exposed_on_object(JS::PropertyKey const& property_key) const
{
[[maybe_unused]] auto& vm = this->vm();
// The spec doesn't say anything about the type of the property name here.
// Numbers can be converted to a string, which is fine and what other engines do.
// However, since a symbol cannot be converted to a string, it cannot be a supported property name. Return early if it's a symbol.
- if (property_name.is_symbol())
+ if (property_key.is_symbol())
return false;
// 1. If P is not a supported property name of O, then return false.
// NOTE: This is in it's own variable to enforce the type.
// FIXME: Can this throw?
Vector<String> supported_property_names = impl().supported_property_names();
- auto property_name_string = property_name.to_string();
- if (!supported_property_names.contains_slow(property_name_string))
+ auto property_key_string = property_key.to_string();
+ if (!supported_property_names.contains_slow(property_key_string))
return false;
// 2. If O has an own property named P, then return false.
// NOTE: This has to be done manually instead of using Object::has_own_property, as that would use the overridden internal_get_own_property.
- auto own_property_named_p = MUST(Object::internal_get_own_property(property_name));
+ auto own_property_named_p = MUST(Object::internal_get_own_property(property_key));
if (own_property_named_p.has_value())
return false;
@@ -2453,7 +2453,7 @@ JS::ThrowCompletionOr<bool> @class_name@::is_named_property_exposed_on_object(JS
while (prototype) {
// FIXME: 1. If prototype is not a named properties object, and prototype has an own property named P, then return false.
// (It currently does not check for named property objects)
- bool prototype_has_own_property_named_p = TRY(prototype->has_own_property(property_name));
+ bool prototype_has_own_property_named_p = TRY(prototype->has_own_property(property_key));
if (prototype_has_own_property_named_p)
return false;
diff --git a/Userland/DevTools/HackStudio/Debugger/DebuggerGlobalJSObject.cpp b/Userland/DevTools/HackStudio/Debugger/DebuggerGlobalJSObject.cpp
index 1da1b2e73a..90e8abe82e 100644
--- a/Userland/DevTools/HackStudio/Debugger/DebuggerGlobalJSObject.cpp
+++ b/Userland/DevTools/HackStudio/Debugger/DebuggerGlobalJSObject.cpp
@@ -22,39 +22,39 @@ DebuggerGlobalJSObject::DebuggerGlobalJSObject()
m_variables = lib->debug_info->get_variables_in_current_scope(regs);
}
-JS::ThrowCompletionOr<JS::Value> DebuggerGlobalJSObject::internal_get(JS::PropertyKey const& property_name, JS::Value receiver) const
+JS::ThrowCompletionOr<JS::Value> DebuggerGlobalJSObject::internal_get(JS::PropertyKey const& property_key, JS::Value receiver) const
{
- if (m_variables.is_empty() || !property_name.is_string())
- return Base::internal_get(property_name, receiver);
+ if (m_variables.is_empty() || !property_key.is_string())
+ return Base::internal_get(property_key, receiver);
auto it = m_variables.find_if([&](auto& variable) {
- return variable->name == property_name.as_string();
+ return variable->name == property_key.as_string();
});
if (it.is_end())
- return Base::internal_get(property_name, receiver);
+ return Base::internal_get(property_key, receiver);
auto& target_variable = **it;
auto js_value = debugger_to_js(target_variable);
if (js_value.has_value())
return js_value.value();
- auto error_string = String::formatted("Variable {} of type {} is not convertible to a JS Value", property_name.as_string(), target_variable.type_name);
+ auto error_string = String::formatted("Variable {} of type {} is not convertible to a JS Value", property_key.as_string(), target_variable.type_name);
return vm().throw_completion<JS::TypeError>(const_cast<DebuggerGlobalJSObject&>(*this), move(error_string));
}
-JS::ThrowCompletionOr<bool> DebuggerGlobalJSObject::internal_set(JS::PropertyKey const& property_name, JS::Value value, JS::Value receiver)
+JS::ThrowCompletionOr<bool> DebuggerGlobalJSObject::internal_set(JS::PropertyKey const& property_key, JS::Value value, JS::Value receiver)
{
- if (m_variables.is_empty() || !property_name.is_string())
- return Base::internal_set(property_name, value, receiver);
+ if (m_variables.is_empty() || !property_key.is_string())
+ return Base::internal_set(property_key, value, receiver);
auto it = m_variables.find_if([&](auto& variable) {
- return variable->name == property_name.as_string();
+ return variable->name == property_key.as_string();
});
if (it.is_end())
- return Base::internal_set(property_name, value, receiver);
+ return Base::internal_set(property_key, value, receiver);
auto& target_variable = **it;
auto debugger_value = js_to_debugger(value, target_variable);
if (debugger_value.has_value())
return Debugger::the().session()->poke(target_variable.location_data.address, debugger_value.value());
- auto error_string = String::formatted("Cannot convert JS value {} to variable {} of type {}", value.to_string_without_side_effects(), property_name.as_string(), target_variable.type_name);
+ auto error_string = String::formatted("Cannot convert JS value {} to variable {} of type {}", value.to_string_without_side_effects(), property_key.as_string(), target_variable.type_name);
return vm().throw_completion<JS::TypeError>(const_cast<DebuggerGlobalJSObject&>(*this), move(error_string));
}
diff --git a/Userland/DevTools/HackStudio/Debugger/DebuggerVariableJSObject.cpp b/Userland/DevTools/HackStudio/Debugger/DebuggerVariableJSObject.cpp
index afe0abdd1e..49c8b86896 100644
--- a/Userland/DevTools/HackStudio/Debugger/DebuggerVariableJSObject.cpp
+++ b/Userland/DevTools/HackStudio/Debugger/DebuggerVariableJSObject.cpp
@@ -29,20 +29,20 @@ DebuggerVariableJSObject::~DebuggerVariableJSObject()
{
}
-JS::ThrowCompletionOr<bool> DebuggerVariableJSObject::internal_set(const JS::PropertyKey& property_name, JS::Value value, JS::Value)
+JS::ThrowCompletionOr<bool> DebuggerVariableJSObject::internal_set(const JS::PropertyKey& property_key, JS::Value value, JS::Value)
{
auto& vm = this->vm();
- if (!property_name.is_string())
- return vm.throw_completion<JS::TypeError>(global_object(), String::formatted("Invalid variable name {}", property_name.to_string()));
+ if (!property_key.is_string())
+ return vm.throw_completion<JS::TypeError>(global_object(), String::formatted("Invalid variable name {}", property_key.to_string()));
- auto name = property_name.as_string();
+ auto name = property_key.as_string();
auto it = m_variable_info.members.find_if([&](auto& variable) {
return variable->name == name;
});
if (it.is_end())
- return vm.throw_completion<JS::TypeError>(global_object(), String::formatted("Variable of type {} has no property {}", m_variable_info.type_name, property_name));
+ return vm.throw_completion<JS::TypeError>(global_object(), String::formatted("Variable of type {} has no property {}", m_variable_info.type_name, property_key));
auto& member = **it;
auto new_value = debugger_object().js_to_debugger(value, member);
diff --git a/Userland/Libraries/LibJS/AST.cpp b/Userland/Libraries/LibJS/AST.cpp
index 7cf1e34000..62ae748dc9 100644
--- a/Userland/Libraries/LibJS/AST.cpp
+++ b/Userland/Libraries/LibJS/AST.cpp
@@ -1397,7 +1397,7 @@ ThrowCompletionOr<Reference> MemberExpression::to_reference(Interpreter& interpr
// From here on equivalent to
// 13.3.4 EvaluatePropertyAccessWithIdentifierKey ( baseValue, identifierName, strict ), https://tc39.es/ecma262/#sec-evaluate-property-access-with-identifier-key
- PropertyKey property_name;
+ PropertyKey property_key;
if (is_computed()) {
// Weird order which I can't quite find from the specs.
auto value = TRY(m_property->execute(interpreter, global_object)).release_value();
@@ -1405,19 +1405,19 @@ ThrowCompletionOr<Reference> MemberExpression::to_reference(Interpreter& interpr
TRY(require_object_coercible(global_object, base_value));
- property_name = TRY(PropertyKey::from_value(global_object, value));
+ property_key = TRY(PropertyKey::from_value(global_object, value));
} else if (is<PrivateIdentifier>(*m_property)) {
auto& private_identifier = static_cast<PrivateIdentifier const&>(*m_property);
return make_private_reference(interpreter.vm(), base_value, private_identifier.string());
} else {
- property_name = verify_cast<Identifier>(*m_property).string();
+ property_key = verify_cast<Identifier>(*m_property).string();
TRY(require_object_coercible(global_object, base_value));
}
- if (!property_name.is_valid())
+ if (!property_key.is_valid())
return Reference {};
auto strict = interpreter.vm().in_strict_mode();
- return Reference { base_value, move(property_name), {}, strict };
+ return Reference { base_value, move(property_key), {}, strict };
}
// 13.5.1.2 Runtime Semantics: Evaluation, https://tc39.es/ecma262/#sec-delete-operator-runtime-semantics-evaluation
@@ -1504,7 +1504,7 @@ static ThrowCompletionOr<ClassElement::ClassElementName> class_key_to_property_n
// 15.4.5 Runtime Semantics: MethodDefinitionEvaluation, https://tc39.es/ecma262/#sec-runtime-semantics-methoddefinitionevaluation
ThrowCompletionOr<ClassElement::ClassValue> ClassMethod::class_element_evaluation(Interpreter& interpreter, GlobalObject& global_object, Object& target) const
{
- auto property_key = TRY(class_key_to_property_name(interpreter, global_object, *m_key));
+ auto property_key_or_private_name = TRY(class_key_to_property_name(interpreter, global_object, *m_key));
auto method_value = TRY(m_function->execute(interpreter, global_object)).release_value();
@@ -1514,38 +1514,38 @@ ThrowCompletionOr<ClassElement::ClassValue> ClassMethod::class_element_evaluatio
method_function.make_method(target);
auto set_function_name = [&](String prefix = "") {
- auto property_name = property_key.visit(
- [&](PropertyKey const& property_name) -> String {
- if (property_name.is_symbol()) {
- auto description = property_name.as_symbol()->description();
+ auto name = property_key_or_private_name.visit(
+ [&](PropertyKey const& property_key) -> String {
+ if (property_key.is_symbol()) {
+ auto description = property_key.as_symbol()->description();
if (description.is_empty())
return "";
return String::formatted("[{}]", description);
} else {
- return property_name.to_string();
+ return property_key.to_string();
}
},
[&](PrivateName const& private_name) -> String {
return private_name.description;
});
- update_function_name(method_value, String::formatted("{}{}{}", prefix, prefix.is_empty() ? "" : " ", property_name));
+ update_function_name(method_value, String::formatted("{}{}{}", prefix, prefix.is_empty() ? "" : " ", name));
};
- if (property_key.has<PropertyKey>()) {
- auto& property_name = property_key.get<PropertyKey>();
+ if (property_key_or_private_name.has<PropertyKey>()) {
+ auto& property_key = property_key_or_private_name.get<PropertyKey>();
switch (kind()) {
case ClassMethod::Kind::Method:
set_function_name();
- TRY(target.define_property_or_throw(property_name, { .value = method_value, .writable = true, .enumerable = false, .configurable = true }));
+ TRY(target.define_property_or_throw(property_key, { .value = method_value, .writable = true, .enumerable = false, .configurable = true }));
break;
case ClassMethod::Kind::Getter:
set_function_name("get");
- TRY(target.define_property_or_throw(property_name, { .get = &method_function, .enumerable = true, .configurable = true }));
+ TRY(target.define_property_or_throw(property_key, { .get = &method_function, .enumerable = true, .configurable = true }));
break;
case ClassMethod::Kind::Setter:
set_function_name("set");
- TRY(target.define_property_or_throw(property_name, { .set = &method_function, .enumerable = true, .configurable = true }));
+ TRY(target.define_property_or_throw(property_key, { .set = &method_function, .enumerable = true, .configurable = true }));
break;
default:
VERIFY_NOT_REACHED();
@@ -1553,7 +1553,7 @@ ThrowCompletionOr<ClassElement::ClassValue> ClassMethod::class_element_evaluatio
return ClassValue { normal_completion({}) };
} else {
- auto& private_name = property_key.get<PrivateName>();
+ auto& private_name = property_key_or_private_name.get<PrivateName>();
switch (kind()) {
case Kind::Method:
set_function_name();
@@ -1614,13 +1614,13 @@ private:
// 15.7.10 Runtime Semantics: ClassFieldDefinitionEvaluation, https://tc39.es/ecma262/#sec-runtime-semantics-classfielddefinitionevaluation
ThrowCompletionOr<ClassElement::ClassValue> ClassField::class_element_evaluation(Interpreter& interpreter, GlobalObject& global_object, Object& target) const
{
- auto property_key = TRY(class_key_to_property_name(interpreter, global_object, *m_key));
+ auto property_key_or_private_name = TRY(class_key_to_property_name(interpreter, global_object, *m_key));
Handle<ECMAScriptFunctionObject> initializer {};
if (m_initializer) {
auto copy_initializer = m_initializer;
- auto name = property_key.visit(
- [&](PropertyKey const& property_name) -> String {
- return property_name.is_number() ? property_name.to_string() : property_name.to_string_or_symbol().to_display_string();
+ auto name = property_key_or_private_name.visit(
+ [&](PropertyKey const& property_key) -> String {
+ return property_key.is_number() ? property_key.to_string() : property_key.to_string_or_symbol().to_display_string();
},
[&](PrivateName const& private_name) -> String {
return private_name.description;
@@ -1634,7 +1634,7 @@ ThrowCompletionOr<ClassElement::ClassValue> ClassField::class_element_evaluation
return ClassValue {
ClassFieldDefinition {
- move(property_key),
+ move(property_key_or_private_name),
move(initializer),
}
};
diff --git a/Userland/Libraries/LibJS/Bytecode/Op.cpp b/Userland/Libraries/LibJS/Bytecode/Op.cpp
index eba4fe1790..796ab4aa4b 100644
--- a/Userland/Libraries/LibJS/Bytecode/Op.cpp
+++ b/Userland/Libraries/LibJS/Bytecode/Op.cpp
@@ -236,15 +236,15 @@ void CopyObjectExcludingProperties::execute_impl(Bytecode::Interpreter& interpre
for (auto& key : own_keys) {
if (!excluded_names.contains(key)) {
- auto property_name_or_error = key.to_property_key(interpreter.global_object());
- if (property_name_or_error.is_error())
+ auto property_key_or_error = key.to_property_key(interpreter.global_object());
+ if (property_key_or_error.is_error())
return;
- PropertyKey property_name = property_name_or_error.release_value();
- auto property_value_or_error = from_object->get(property_name);
+ PropertyKey property_key = property_key_or_error.release_value();
+ auto property_value_or_error = from_object->get(property_key);
if (property_value_or_error.is_error())
return;
auto property_value = property_value_or_error.release_value();
- to_object->define_direct_property(property_name, property_value, JS::default_attributes);
+ to_object->define_direct_property(property_key, property_value, JS::default_attributes);
}
}
diff --git a/Userland/Libraries/LibJS/Parser.cpp b/Userland/Libraries/LibJS/Parser.cpp
index 702623132f..14729734a2 100644
--- a/Userland/Libraries/LibJS/Parser.cpp
+++ b/Userland/Libraries/LibJS/Parser.cpp
@@ -1654,14 +1654,14 @@ NonnullRefPtr<ObjectExpression> Parser::parse_object_expression()
while (!done() && !match(TokenType::CurlyClose)) {
property_type = ObjectProperty::Type::KeyValue;
- RefPtr<Expression> property_name;
+ RefPtr<Expression> property_key;
RefPtr<Expression> property_value;
FunctionKind function_kind { FunctionKind::Normal };
if (match(TokenType::TripleDot)) {
consume();
- property_name = parse_expression(4);
- properties.append(create_ast_node<ObjectProperty>({ m_state.current_token.filename(), rule_start.position(), position() }, *property_name, nullptr, ObjectProperty::Type::Spread, false));
+ property_key = parse_expression(4);
+ properties.append(create_ast_node<ObjectProperty>({ m_state.current_token.filename(), rule_start.position(), position() }, *property_key, nullptr, ObjectProperty::Type::Spread, false));
if (!match(TokenType::Comma))
break;
consume(TokenType::Comma);
@@ -1685,26 +1685,26 @@ NonnullRefPtr<ObjectExpression> Parser::parse_object_expression()
if (match(TokenType::Asterisk)) {
consume();
property_type = ObjectProperty::Type::KeyValue;
- property_name = parse_property_key();
+ property_key = parse_property_key();
VERIFY(function_kind == FunctionKind::Normal || function_kind == FunctionKind::Async);
function_kind = function_kind == FunctionKind::Normal ? FunctionKind::Generator : FunctionKind::AsyncGenerator;
} else if (match_identifier()) {
auto identifier = consume();
if (identifier.original_value() == "get"sv && match_property_key()) {
property_type = ObjectProperty::Type::Getter;
- property_name = parse_property_key();
+ property_key = parse_property_key();
} else if (identifier.original_value() == "set"sv && match_property_key()) {
property_type = ObjectProperty::Type::Setter;
- property_name = parse_property_key();
+ property_key = parse_property_key();
} else {
- property_name = create_ast_node<StringLiteral>({ m_state.current_token.filename(), rule_start.position(), position() }, identifier.value());
+ property_key = create_ast_node<StringLiteral>({ m_state.current_token.filename(), rule_start.position(), position() }, identifier.value());
property_value = create_ast_node<Identifier>({ m_state.current_token.filename(), rule_start.position(), position() }, identifier.value());
}
} else {
- property_name = parse_property_key();
+ property_key = parse_property_key();
}
- bool is_proto = (type == TokenType::StringLiteral || type == TokenType::Identifier) && is<StringLiteral>(*property_name) && static_cast<StringLiteral const&>(*property_name).value() == "__proto__";
+ bool is_proto = (type == TokenType::StringLiteral || type == TokenType::Identifier) && is<StringLiteral>(*property_key) && static_cast<StringLiteral const&>(*property_key).value() == "__proto__";
if (property_type == ObjectProperty::Type::Getter || property_type == ObjectProperty::Type::Setter) {
if (!match(TokenType::ParenOpen)) {
@@ -1721,7 +1721,7 @@ NonnullRefPtr<ObjectExpression> Parser::parse_object_expression()
if (!invalid_object_literal_property_range.has_value())
invalid_object_literal_property_range = expression->source_range();
} else if (match(TokenType::ParenOpen)) {
- VERIFY(property_name);
+ VERIFY(property_key);
u8 parse_options = FunctionNodeParseOptions::AllowSuperPropertyLookup;
if (property_type == ObjectProperty::Type::Getter)
parse_options |= FunctionNodeParseOptions::IsGetterFunction;
@@ -1732,9 +1732,9 @@ NonnullRefPtr<ObjectExpression> Parser::parse_object_expression()
if (function_kind == FunctionKind::Async || function_kind == FunctionKind::AsyncGenerator)
parse_options |= FunctionNodeParseOptions::IsAsyncFunction;
auto function = parse_function_node<FunctionExpression>(parse_options, function_start);
- properties.append(create_ast_node<ObjectProperty>({ m_state.current_token.filename(), rule_start.position(), position() }, *property_name, function, property_type, true));
+ properties.append(create_ast_node<ObjectProperty>({ m_state.current_token.filename(), rule_start.position(), position() }, *property_key, function, property_type, true));
} else if (match(TokenType::Colon)) {
- if (!property_name) {
+ if (!property_key) {
expected("a property name");
skip_to_next_property();
continue;
@@ -1745,15 +1745,15 @@ NonnullRefPtr<ObjectExpression> Parser::parse_object_expression()
syntax_error("Property name '__proto__' must not appear more than once in object literal");
has_direct_proto_property = true;
}
- properties.append(create_ast_node<ObjectProperty>({ m_state.current_token.filename(), rule_start.position(), position() }, *property_name, parse_expression(2), property_type, false));
- } else if (property_name && property_value) {
- if (m_state.strict_mode && is<StringLiteral>(*property_name)) {
- auto& string_literal = static_cast<StringLiteral const&>(*property_name);
+ properties.append(create_ast_node<ObjectProperty>({ m_state.current_token.filename(), rule_start.position(), position() }, *property_key, parse_expression(2), property_type, false));
+ } else if (property_key && property_value) {
+ if (m_state.strict_mode && is<StringLiteral>(*property_key)) {
+ auto& string_literal = static_cast<StringLiteral const&>(*property_key);
if (is_strict_reserved_word(string_literal.value()))
syntax_error(String::formatted("'{}' is a reserved keyword", string_literal.value()));
}
- properties.append(create_ast_node<ObjectProperty>({ m_state.current_token.filename(), rule_start.position(), position() }, *property_name, *property_value, property_type, false));
+ properties.append(create_ast_node<ObjectProperty>({ m_state.current_token.filename(), rule_start.position(), position() }, *property_key, *property_value, property_type, false));
} else {
expected("a property");
skip_to_next_property();
diff --git a/Userland/Libraries/LibJS/Runtime/AbstractOperations.cpp b/Userland/Libraries/LibJS/Runtime/AbstractOperations.cpp
index 0b709cd774..9874eb1fb3 100644
--- a/Userland/Libraries/LibJS/Runtime/AbstractOperations.cpp
+++ b/Userland/Libraries/LibJS/Runtime/AbstractOperations.cpp
@@ -246,11 +246,11 @@ bool is_compatible_property_descriptor(bool extensible, PropertyDescriptor const
}
// 10.1.6.3 ValidateAndApplyPropertyDescriptor ( O, P, extensible, Desc, current ), https://tc39.es/ecma262/#sec-validateandapplypropertydescriptor
-bool validate_and_apply_property_descriptor(Object* object, PropertyKey const& property_name, bool extensible, PropertyDescriptor const& descriptor, Optional<PropertyDescriptor> const& current)
+bool validate_and_apply_property_descriptor(Object* object, PropertyKey const& property_key, bool extensible, PropertyDescriptor const& descriptor, Optional<PropertyDescriptor> const& current)
{
// 1. Assert: If O is not undefined, then IsPropertyKey(P) is true.
if (object)
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. If current is undefined, then
if (!current.has_value()) {
@@ -267,7 +267,7 @@ bool validate_and_apply_property_descriptor(Object* object, PropertyKey const& p
// to its default value.
if (object) {
auto value = descriptor.value.value_or(js_undefined());
- object->storage_set(property_name, { value, descriptor.attributes() });
+ object->storage_set(property_key, { value, descriptor.attributes() });
}
}
// d. Else,
@@ -281,7 +281,7 @@ bool validate_and_apply_property_descriptor(Object* object, PropertyKey const& p
// to its default value.
if (object) {
auto accessor = Accessor::create(object->vm(), descriptor.get.value_or(nullptr), descriptor.set.value_or(nullptr));
- object->storage_set(property_name, { accessor, descriptor.attributes() });
+ object->storage_set(property_key, { accessor, descriptor.attributes() });
}
}
// e. Return true.
@@ -320,7 +320,7 @@ bool validate_and_apply_property_descriptor(Object* object, PropertyKey const& p
// set the rest of the property's attributes to their default values.
if (object) {
auto accessor = Accessor::create(object->vm(), nullptr, nullptr);
- object->storage_set(property_name, { accessor, current->attributes() });
+ object->storage_set(property_key, { accessor, current->attributes() });
}
}
// c. Else,
@@ -330,7 +330,7 @@ bool validate_and_apply_property_descriptor(Object* object, PropertyKey const& p
// set the rest of the property's attributes to their default values.
if (object) {
auto value = js_undefined();
- object->storage_set(property_name, { value, current->attributes() });
+ object->storage_set(property_key, { value, current->attributes() });
}
}
}
@@ -386,7 +386,7 @@ bool validate_and_apply_property_descriptor(Object* object, PropertyKey const& p
attributes.set_writable(descriptor.writable.value_or(current->writable.value_or(false)));
attributes.set_enumerable(descriptor.enumerable.value_or(current->enumerable.value_or(false)));
attributes.set_configurable(descriptor.configurable.value_or(current->configurable.value_or(false)));
- object->storage_set(property_name, { value, attributes });
+ object->storage_set(property_key, { value, attributes });
}
// 10. Return true.
@@ -913,19 +913,19 @@ Object* create_mapped_arguments_object(GlobalObject& global_object, FunctionObje
}
// 7.1.21 CanonicalNumericIndexString ( argument ), https://tc39.es/ecma262/#sec-canonicalnumericindexstring
-Value canonical_numeric_index_string(GlobalObject& global_object, PropertyKey const& property_name)
+Value canonical_numeric_index_string(GlobalObject& global_object, PropertyKey const& property_key)
{
// NOTE: If the property name is a number type (An implementation-defined optimized
// property key type), it can be treated as a string property that has already been
// converted successfully into a canonical numeric index.
- VERIFY(property_name.is_string() || property_name.is_number());
+ VERIFY(property_key.is_string() || property_key.is_number());
- if (property_name.is_number())
- return Value(property_name.as_number());
+ if (property_key.is_number())
+ return Value(property_key.as_number());
// 1. Assert: Type(argument) is String.
- auto argument = Value(js_string(global_object.vm(), property_name.as_string()));
+ auto argument = Value(js_string(global_object.vm(), property_key.as_string()));
// 2. If argument is "-0", return -0𝔽.
if (argument.as_string().string() == "-0")
diff --git a/Userland/Libraries/LibJS/Runtime/ArgumentsObject.cpp b/Userland/Libraries/LibJS/Runtime/ArgumentsObject.cpp
index 44fb59da2d..2b82183190 100644
--- a/Userland/Libraries/LibJS/Runtime/ArgumentsObject.cpp
+++ b/Userland/Libraries/LibJS/Runtime/ArgumentsObject.cpp
@@ -35,28 +35,28 @@ void ArgumentsObject::visit_edges(Cell::Visitor& visitor)
}
// 10.4.4.3 [[Get]] ( P, Receiver ), https://tc39.es/ecma262/#sec-arguments-exotic-objects-get-p-receiver
-ThrowCompletionOr<Value> ArgumentsObject::internal_get(PropertyKey const& property_name, Value receiver) const
+ThrowCompletionOr<Value> ArgumentsObject::internal_get(PropertyKey const& property_key, Value receiver) const
{
// 1. Let map be args.[[ParameterMap]].
auto& map = *m_parameter_map;
// 2. Let isMapped be ! HasOwnProperty(map, P).
- bool is_mapped = MUST(m_parameter_map->has_own_property(property_name));
+ bool is_mapped = MUST(m_parameter_map->has_own_property(property_key));
// 3. If isMapped is false, then
if (!is_mapped) {
// a. Return ? OrdinaryGet(args, P, Receiver).
- return Object::internal_get(property_name, receiver);
+ return Object::internal_get(property_key, receiver);
}
// FIXME: a. Assert: map contains a formal parameter mapping for P.
// b. Return Get(map, P).
- return map.get(property_name);
+ return map.get(property_key);
}
// 10.4.4.4 [[Set]] ( P, V, Receiver ), https://tc39.es/ecma262/#sec-arguments-exotic-objects-set-p-v-receiver
-ThrowCompletionOr<bool> ArgumentsObject::internal_set(PropertyKey const& property_name, Value value, Value receiver)
+ThrowCompletionOr<bool> ArgumentsObject::internal_set(PropertyKey const& property_key, Value value, Value receiver)
{
bool is_mapped = false;
@@ -67,38 +67,38 @@ ThrowCompletionOr<bool> ArgumentsObject::internal_set(PropertyKey const& propert
} else {
// a. Let map be args.[[ParameterMap]].
// b. Let isMapped be ! HasOwnProperty(map, P).
- is_mapped = MUST(parameter_map().has_own_property(property_name));
+ is_mapped = MUST(parameter_map().has_own_property(property_key));
}
// 3. If isMapped is true, then
if (is_mapped) {
// a. Let setStatus be Set(map, P, V, false).
- auto set_status = MUST(m_parameter_map->set(property_name, value, Object::ShouldThrowExceptions::No));
+ auto set_status = MUST(m_parameter_map->set(property_key, value, Object::ShouldThrowExceptions::No));
// b. Assert: setStatus is true because formal parameters mapped by argument objects are always writable.
VERIFY(set_status);
}
// 4. Return ? OrdinarySet(args, P, V, Receiver).
- return Object::internal_set(property_name, value, receiver);
+ return Object::internal_set(property_key, value, receiver);
}
// 10.4.4.5 [[Delete]] ( P ), https://tc39.es/ecma262/#sec-arguments-exotic-objects-delete-p
-ThrowCompletionOr<bool> ArgumentsObject::internal_delete(PropertyKey const& property_name)
+ThrowCompletionOr<bool> ArgumentsObject::internal_delete(PropertyKey const& property_key)
{
// 1. Let map be args.[[ParameterMap]].
auto& map = parameter_map();
// 2. Let isMapped be ! HasOwnProperty(map, P).
- bool is_mapped = MUST(map.has_own_property(property_name));
+ bool is_mapped = MUST(map.has_own_property(property_key));
// 3. Let result be ? OrdinaryDelete(args, P).
- bool result = TRY(Object::internal_delete(property_name));
+ bool result = TRY(Object::internal_delete(property_key));
// 4. If result is true and isMapped is true, then
if (result && is_mapped) {
// a. Call map.[[Delete]](P).
- MUST(map.internal_delete(property_name));
+ MUST(map.internal_delete(property_key));
}
// 5. Return result.
@@ -106,10 +106,10 @@ ThrowCompletionOr<bool> ArgumentsObject::internal_delete(PropertyKey const& prop
}
// 10.4.4.1 [[GetOwnProperty]] ( P ), https://tc39.es/ecma262/#sec-arguments-exotic-objects-getownproperty-p
-ThrowCompletionOr<Optional<PropertyDescriptor>> ArgumentsObject::internal_get_own_property(PropertyKey const& property_name) const
+ThrowCompletionOr<Optional<PropertyDescriptor>> ArgumentsObject::internal_get_own_property(PropertyKey const& property_key) const
{
// 1. Let desc be OrdinaryGetOwnProperty(args, P).
- auto desc = MUST(Object::internal_get_own_property(property_name));
+ auto desc = MUST(Object::internal_get_own_property(property_key));
// 2. If desc is undefined, return desc.
if (!desc.has_value())
@@ -117,12 +117,12 @@ ThrowCompletionOr<Optional<PropertyDescriptor>> ArgumentsObject::internal_get_ow
// 3. Let map be args.[[ParameterMap]].
// 4. Let isMapped be ! HasOwnProperty(map, P).
- bool is_mapped = MUST(m_parameter_map->has_own_property(property_name));
+ bool is_mapped = MUST(m_parameter_map->has_own_property(property_key));
// 5. If isMapped is true, then
if (is_mapped) {
// a. Set desc.[[Value]] to Get(map, P).
- desc->value = TRY(m_parameter_map->get(property_name));
+ desc->value = TRY(m_parameter_map->get(property_key));
}
// 6. Return desc.
@@ -130,13 +130,13 @@ ThrowCompletionOr<Optional<PropertyDescriptor>> ArgumentsObject::internal_get_ow
}
// 10.4.4.2 [[DefineOwnProperty]] ( P, Desc ), https://tc39.es/ecma262/#sec-arguments-exotic-objects-defineownproperty-p-desc
-ThrowCompletionOr<bool> ArgumentsObject::internal_define_own_property(PropertyKey const& property_name, PropertyDescriptor const& descriptor)
+ThrowCompletionOr<bool> ArgumentsObject::internal_define_own_property(PropertyKey const& property_key, PropertyDescriptor const& descriptor)
{
// 1. Let map be args.[[ParameterMap]].
auto& map = parameter_map();
// 2. Let isMapped be HasOwnProperty(map, P).
- bool is_mapped = MUST(map.has_own_property(property_name));
+ bool is_mapped = MUST(map.has_own_property(property_key));
// 3. Let newArgDesc be Desc.
auto new_arg_desc = descriptor;
@@ -148,12 +148,12 @@ ThrowCompletionOr<bool> ArgumentsObject::internal_define_own_property(PropertyKe
// i. Set newArgDesc to a copy of Desc.
new_arg_desc = descriptor;
// ii. Set newArgDesc.[[Value]] to Get(map, P).
- new_arg_desc.value = TRY(map.get(property_name));
+ new_arg_desc.value = TRY(map.get(property_key));
}
}
// 5. Let allowed be ? OrdinaryDefineOwnProperty(args, P, newArgDesc).
- bool allowed = TRY(Object::internal_define_own_property(property_name, new_arg_desc));
+ bool allowed = TRY(Object::internal_define_own_property(property_key, new_arg_desc));
// 6. If allowed is false, return false.
if (!allowed)
@@ -164,12 +164,12 @@ ThrowCompletionOr<bool> ArgumentsObject::internal_define_own_property(PropertyKe
// a. If IsAccessorDescriptor(Desc) is true, then
if (descriptor.is_accessor_descriptor()) {
// i. Call map.[[Delete]](P).
- MUST(map.internal_delete(property_name));
+ MUST(map.internal_delete(property_key));
} else {
// i. If Desc.[[Value]] is present, then
if (descriptor.value.has_value()) {
// 1. Let setStatus be Set(map, P, Desc.[[Value]], false).
- bool set_status = MUST(map.set(property_name, descriptor.value.value(), Object::ShouldThrowExceptions::No));
+ bool set_status = MUST(map.set(property_key, descriptor.value.value(), Object::ShouldThrowExceptions::No));
// 2. Assert: setStatus is true because formal parameters mapped by argument objects are always writable.
VERIFY(set_status);
@@ -177,7 +177,7 @@ ThrowCompletionOr<bool> ArgumentsObject::internal_define_own_property(PropertyKe
// ii. If Desc.[[Writable]] is present and its value is false, then
if (descriptor.writable == false) {
// 1. Call map.[[Delete]](P).
- MUST(map.internal_delete(property_name));
+ MUST(map.internal_delete(property_key));
}
}
}
diff --git a/Userland/Libraries/LibJS/Runtime/Array.cpp b/Userland/Libraries/LibJS/Runtime/Array.cpp
index 358147fa7b..73dda85dd7 100644
--- a/Userland/Libraries/LibJS/Runtime/Array.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Array.cpp
@@ -151,31 +151,31 @@ ThrowCompletionOr<bool> Array::set_length(PropertyDescriptor const& property_des
}
// NON-STANDARD: Used to return the value of the ephemeral length property
-ThrowCompletionOr<Optional<PropertyDescriptor>> Array::internal_get_own_property(PropertyKey const& property_name) const
+ThrowCompletionOr<Optional<PropertyDescriptor>> Array::internal_get_own_property(PropertyKey const& property_key) const
{
auto& vm = this->vm();
- if (property_name.is_string() && property_name.as_string() == vm.names.length.as_string())
+ if (property_key.is_string() && property_key.as_string() == vm.names.length.as_string())
return PropertyDescriptor { .value = Value(indexed_properties().array_like_size()), .writable = m_length_writable, .enumerable = false, .configurable = false };
- return Object::internal_get_own_property(property_name);
+ return Object::internal_get_own_property(property_key);
}
// 10.4.2.1 [[DefineOwnProperty]] ( P, Desc ), https://tc39.es/ecma262/#sec-array-exotic-objects-defineownproperty-p-desc
-ThrowCompletionOr<bool> Array::internal_define_own_property(PropertyKey const& property_name, PropertyDescriptor const& property_descriptor)
+ThrowCompletionOr<bool> Array::internal_define_own_property(PropertyKey const& property_key, PropertyDescriptor const& property_descriptor)
{
auto& vm = this->vm();
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. If P is "length", then
- if (property_name.is_string() && property_name.as_string() == vm.names.length.as_string()) {
+ if (property_key.is_string() && property_key.as_string() == vm.names.length.as_string()) {
// a. Return ? ArraySetLength(A, Desc).
return set_length(property_descriptor);
}
// 3. Else if P is an array index, then
- if (property_name.is_number()) {
+ if (property_key.is_number()) {
// a. Let oldLenDesc be OrdinaryGetOwnProperty(A, "length").
// b. Assert: ! IsDataDescriptor(oldLenDesc) is true.
// c. Assert: oldLenDesc.[[Configurable]] is false.
@@ -184,11 +184,11 @@ ThrowCompletionOr<bool> Array::internal_define_own_property(PropertyKey const& p
// f. Let index be ! ToUint32(P).
// g. If index ≥ oldLen and oldLenDesc.[[Writable]] is false, return false.
- if (property_name.as_number() >= indexed_properties().array_like_size() && !m_length_writable)
+ if (property_key.as_number() >= indexed_properties().array_like_size() && !m_length_writable)
return false;
// h. Let succeeded be ! OrdinaryDefineOwnProperty(A, P, Desc).
- auto succeeded = MUST(Object::internal_define_own_property(property_name, property_descriptor));
+ auto succeeded = MUST(Object::internal_define_own_property(property_key, property_descriptor));
// i. If succeeded is false, return false.
if (!succeeded)
@@ -204,16 +204,16 @@ ThrowCompletionOr<bool> Array::internal_define_own_property(PropertyKey const& p
}
// 4. Return OrdinaryDefineOwnProperty(A, P, Desc).
- return Object::internal_define_own_property(property_name, property_descriptor);
+ return Object::internal_define_own_property(property_key, property_descriptor);
}
// NON-STANDARD: Used to reject deletes to ephemeral (non-configurable) length property
-ThrowCompletionOr<bool> Array::internal_delete(PropertyKey const& property_name)
+ThrowCompletionOr<bool> Array::internal_delete(PropertyKey const& property_key)
{
auto& vm = this->vm();
- if (property_name.is_string() && property_name.as_string() == vm.names.length.as_string())
+ if (property_key.is_string() && property_key.as_string() == vm.names.length.as_string())
return false;
- return Object::internal_delete(property_name);
+ return Object::internal_delete(property_key);
}
// NON-STANDARD: Used to inject the ephemeral length property's key
diff --git a/Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp b/Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp
index 3640a69fa8..a6c0090d7f 100644
--- a/Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp
@@ -173,10 +173,10 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::filter)
// 7. Repeat, while k < len,
for (; k < length; ++k) {
// a. Let Pk be ! ToString(𝔽(k)).
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// b. Let kPresent be ? HasProperty(O, Pk).
- auto k_present = TRY(object->has_property(property_name));
+ auto k_present = TRY(object->has_property(property_key));
// c. If kPresent is true, then
if (k_present) {
@@ -223,15 +223,15 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::for_each)
// 5. Repeat, while k < len,
for (size_t k = 0; k < length; ++k) {
// a. Let Pk be ! ToString(𝔽(k)).
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// b. Let kPresent be ? HasProperty(O, Pk).
- auto k_present = TRY(object->has_property(property_name));
+ auto k_present = TRY(object->has_property(property_key));
// c. If kPresent is true, then
if (k_present) {
// i. Let kValue be ? Get(O, Pk).
- auto k_value = TRY(object->get(property_name));
+ auto k_value = TRY(object->get(property_key));
// ii. Perform ? Call(callbackfn, thisArg, « kValue, 𝔽(k), O »).
TRY(call(global_object, callback_function.as_function(), this_arg, k_value, Value(k), object));
@@ -267,21 +267,21 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::map)
// 6. Repeat, while k < len,
for (size_t k = 0; k < length; ++k) {
// a. Let Pk be ! ToString(𝔽(k)).
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// b. Let kPresent be ? HasProperty(O, Pk).
- auto k_present = TRY(object->has_property(property_name));
+ auto k_present = TRY(object->has_property(property_key));
// c. If kPresent is true, then
if (k_present) {
// i. Let kValue be ? Get(O, Pk).
- auto k_value = TRY(object->get(property_name));
+ auto k_value = TRY(object->get(property_key));
// ii. Let mappedValue be ? Call(callbackfn, thisArg, « kValue, 𝔽(k), O »).
auto mapped_value = TRY(call(global_object, callback_function.as_function(), this_arg, k_value, Value(k), object));
// iii. Perform ? CreateDataPropertyOrThrow(A, Pk, mappedValue).
- TRY(array->create_data_property_or_throw(property_name, mapped_value));
+ TRY(array->create_data_property_or_throw(property_key, mapped_value));
}
// d. Set k to k + 1.
@@ -640,15 +640,15 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::index_of)
// 10. Repeat, while k < len,
for (; k < length; ++k) {
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// a. Let kPresent be ? HasProperty(O, ! ToString(𝔽(k))).
- auto k_present = TRY(object->has_property(property_name));
+ auto k_present = TRY(object->has_property(property_key));
// b. If kPresent is true, then
if (k_present) {
// i. Let elementK be ? Get(O, ! ToString(𝔽(k))).
- auto element_k = TRY(object->get(property_name));
+ auto element_k = TRY(object->get(property_key));
// ii. Let same be IsStrictlyEqual(searchElement, elementK).
auto same = is_strictly_equal(search_element, element_k);
@@ -704,15 +704,15 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::reduce)
// b. Repeat, while kPresent is false and k < len,
for (; !k_present && k < length; ++k) {
// i. Let Pk be ! ToString(𝔽(k)).
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// ii. Set kPresent to ? HasProperty(O, Pk).
- k_present = TRY(object->has_property(property_name));
+ k_present = TRY(object->has_property(property_key));
// iii. If kPresent is true, then
if (k_present) {
// 1. Set accumulator to ? Get(O, Pk).
- accumulator = TRY(object->get(property_name));
+ accumulator = TRY(object->get(property_key));
}
// iv. Set k to k + 1.
@@ -726,15 +726,15 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::reduce)
// 9. Repeat, while k < len,
for (; k < length; ++k) {
// a. Let Pk be ! ToString(𝔽(k)).
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// b. Let kPresent be ? HasProperty(O, Pk).
- auto k_present = TRY(object->has_property(property_name));
+ auto k_present = TRY(object->has_property(property_key));
// c. If kPresent is true, then
if (k_present) {
// i. Let kValue be ? Get(O, Pk).
- auto k_value = TRY(object->get(property_name));
+ auto k_value = TRY(object->get(property_key));
// ii. Set accumulator to ? Call(callbackfn, undefined, « accumulator, kValue, 𝔽(k), O »).
accumulator = TRY(call(global_object, callback_function.as_function(), js_undefined(), accumulator, k_value, Value(k), object));
@@ -786,15 +786,15 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::reduce_right)
// b. Repeat, while kPresent is false and k ≥ 0,
for (; !k_present && k >= 0; --k) {
// i. Let Pk be ! ToString(𝔽(k)).
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// ii. Set kPresent to ? HasProperty(O, Pk).
- k_present = TRY(object->has_property(property_name));
+ k_present = TRY(object->has_property(property_key));
// iii. If kPresent is true, then
if (k_present) {
// 1. Set accumulator to ? Get(O, Pk).
- accumulator = TRY(object->get(property_name));
+ accumulator = TRY(object->get(property_key));
}
// iv. Set k to k - 1.
@@ -808,15 +808,15 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::reduce_right)
// 9. Repeat, while k ≥ 0,
for (; k >= 0; --k) {
// a. Let Pk be ! ToString(𝔽(k)).
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// b. Let kPresent be ? HasProperty(O, Pk).
- auto k_present = TRY(object->has_property(property_name));
+ auto k_present = TRY(object->has_property(property_key));
// c. If kPresent is true, then
if (k_present) {
// i. Let kValue be ? Get(O, Pk).
- auto k_value = TRY(object->get(property_name));
+ auto k_value = TRY(object->get(property_key));
// ii. Set accumulator to ? Call(callbackfn, undefined, « accumulator, kValue, 𝔽(k), O »).
accumulator = TRY(call(global_object, callback_function.as_function(), js_undefined(), accumulator, k_value, Value((size_t)k), object));
@@ -1044,15 +1044,15 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::last_index_of)
// 8. Repeat, while k ≥ 0,
for (; k >= 0; --k) {
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// a. Let kPresent be ? HasProperty(O, ! ToString(𝔽(k))).
- auto k_present = TRY(object->has_property(property_name));
+ auto k_present = TRY(object->has_property(property_key));
// b. If kPresent is true, then
if (k_present) {
// i. Let elementK be ? Get(O, ! ToString(𝔽(k))).
- auto element_k = TRY(object->get(property_name));
+ auto element_k = TRY(object->get(property_key));
// ii. Let same be IsStrictlyEqual(searchElement, elementK).
auto same = is_strictly_equal(search_element, element_k);
@@ -1120,10 +1120,10 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::find)
// 5. Repeat, while k < len,
for (size_t k = 0; k < length; ++k) {
// a. Let Pk be ! ToString(𝔽(k)).
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// b. Let kValue be ? Get(O, Pk).
- auto k_value = TRY(object->get(property_name));
+ auto k_value = TRY(object->get(property_key));
// c. Let testResult be ! ToBoolean(? Call(predicate, thisArg, « kValue, 𝔽(k), O »)).
auto test_result = TRY(call(global_object, predicate.as_function(), this_arg, k_value, Value(k), object)).to_boolean();
@@ -1159,10 +1159,10 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::find_index)
// 5. Repeat, while k < len,
for (size_t k = 0; k < length; ++k) {
// a. Let Pk be ! ToString(𝔽(k)).
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// b. Let kValue be ? Get(O, Pk).
- auto k_value = TRY(object->get(property_name));
+ auto k_value = TRY(object->get(property_key));
// c. Let testResult be ! ToBoolean(? Call(predicate, thisArg, « kValue, 𝔽(k), O »)).
auto test_result = TRY(call(global_object, predicate.as_function(), this_arg, k_value, Value(k), object)).to_boolean();
@@ -1198,10 +1198,10 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::find_last)
// 5. Repeat, while k ≥ 0,
for (i64 k = static_cast<i64>(length) - 1; k >= 0; --k) {
// a. Let Pk be ! ToString(𝔽(k)).
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// b. Let kValue be ? Get(O, Pk).
- auto k_value = TRY(object->get(property_name));
+ auto k_value = TRY(object->get(property_key));
// c. Let testResult be ! ToBoolean(? Call(predicate, thisArg, « kValue, 𝔽(k), O »)).
auto test_result = TRY(call(global_object, predicate.as_function(), this_arg, k_value, Value((double)k), object)).to_boolean();
@@ -1237,10 +1237,10 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::find_last_index)
// 5. Repeat, while k ≥ 0,
for (i64 k = static_cast<i64>(length) - 1; k >= 0; --k) {
// a. Let Pk be ! ToString(𝔽(k)).
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// b. Let kValue be ? Get(O, Pk).
- auto k_value = TRY(object->get(property_name));
+ auto k_value = TRY(object->get(property_key));
// c. Let testResult be ! ToBoolean(? Call(predicate, thisArg, « kValue, 𝔽(k), O »)).
auto test_result = TRY(call(global_object, predicate.as_function(), this_arg, k_value, Value((double)k), object)).to_boolean();
@@ -1276,15 +1276,15 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::some)
// 5. Repeat, while k < len,
for (size_t k = 0; k < length; ++k) {
// a. Let Pk be ! ToString(𝔽(k)).
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// b. Let kPresent be ? HasProperty(O, Pk).
- auto k_present = TRY(object->has_property(property_name));
+ auto k_present = TRY(object->has_property(property_key));
// c. If kPresent is true, then
if (k_present) {
// i. Let kValue be ? Get(O, Pk).
- auto k_value = TRY(object->get(property_name));
+ auto k_value = TRY(object->get(property_key));
// ii. Let testResult be ! ToBoolean(? Call(callbackfn, thisArg, « kValue, 𝔽(k), O »)).
auto test_result = TRY(call(global_object, callback_function.as_function(), this_arg, k_value, Value(k), object)).to_boolean();
@@ -1321,15 +1321,15 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::every)
// 5. Repeat, while k < len,
for (size_t k = 0; k < length; ++k) {
// a. Let Pk be ! ToString(𝔽(k)).
- auto property_name = PropertyKey { k };
+ auto property_key = PropertyKey { k };
// b. Let kPresent be ? HasProperty(O, Pk).
- auto k_present = TRY(object->has_property(property_name));
+ auto k_present = TRY(object->has_property(property_key));
// c. If kPresent is true, then
if (k_present) {
// i. Let kValue be ? Get(O, Pk).
- auto k_value = TRY(object->get(property_name));
+ auto k_value = TRY(object->get(property_key));
// ii. Let testResult be ! ToBoolean(? Call(callbackfn, thisArg, « kValue, 𝔽(k), O »)).
auto test_result = TRY(call(global_object, callback_function.as_function(), this_arg, k_value, Value(k), object)).to_boolean();
diff --git a/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp b/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp
index 65fe372efd..3e95d060c4 100644
--- a/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp
+++ b/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp
@@ -297,8 +297,8 @@ void ECMAScriptFunctionObject::visit_edges(Visitor& visitor)
visitor.visit(m_home_object);
for (auto& field : m_fields) {
- if (auto* property_name_ptr = field.name.get_pointer<PropertyKey>(); property_name_ptr && property_name_ptr->is_symbol())
- visitor.visit(property_name_ptr->as_symbol());
+ if (auto* property_key_ptr = field.name.get_pointer<PropertyKey>(); property_key_ptr && property_key_ptr->is_symbol())
+ visitor.visit(property_key_ptr->as_symbol());
visitor.visit(field.initializer);
}
diff --git a/Userland/Libraries/LibJS/Runtime/GlobalObject.h b/Userland/Libraries/LibJS/Runtime/GlobalObject.h
index 172d9888e2..7da5eec6fe 100644
--- a/Userland/Libraries/LibJS/Runtime/GlobalObject.h
+++ b/Userland/Libraries/LibJS/Runtime/GlobalObject.h
@@ -143,22 +143,22 @@ private:
};
template<typename ConstructorType>
-inline void GlobalObject::initialize_constructor(PropertyKey const& property_name, ConstructorType*& constructor, Object* prototype)
+inline void GlobalObject::initialize_constructor(PropertyKey const& property_key, ConstructorType*& constructor, Object* prototype)
{
auto& vm = this->vm();
constructor = heap().allocate<ConstructorType>(*this, *this);
- constructor->define_direct_property(vm.names.name, js_string(heap(), property_name.as_string()), Attribute::Configurable);
+ constructor->define_direct_property(vm.names.name, js_string(heap(), property_key.as_string()), Attribute::Configurable);
if (prototype)
prototype->define_direct_property(vm.names.constructor, constructor, Attribute::Writable | Attribute::Configurable);
}
template<typename ConstructorType>
-inline void GlobalObject::add_constructor(PropertyKey const& property_name, ConstructorType*& constructor, Object* prototype)
+inline void GlobalObject::add_constructor(PropertyKey const& property_key, ConstructorType*& constructor, Object* prototype)
{
// Some constructors are pre-initialized separately.
if (!constructor)
- initialize_constructor(property_name, constructor, prototype);
- define_direct_property(property_name, constructor, Attribute::Writable | Attribute::Configurable);
+ initialize_constructor(property_key, constructor, prototype);
+ define_direct_property(property_key, constructor, Attribute::Writable | Attribute::Configurable);
}
inline GlobalObject* Shape::global_object() const
@@ -170,15 +170,15 @@ template<>
inline bool Object::fast_is<GlobalObject>() const { return is_global_object(); }
template<typename... Args>
-[[nodiscard]] ALWAYS_INLINE ThrowCompletionOr<Value> Value::invoke(GlobalObject& global_object, PropertyKey const& property_name, Args... args)
+[[nodiscard]] ALWAYS_INLINE ThrowCompletionOr<Value> Value::invoke(GlobalObject& global_object, PropertyKey const& property_key, Args... args)
{
if constexpr (sizeof...(Args) > 0) {
MarkedValueList arglist { global_object.vm().heap() };
(..., arglist.append(move(args)));
- return invoke_internal(global_object, property_name, move(arglist));
+ return invoke_internal(global_object, property_key, move(arglist));
}
- return invoke_internal(global_object, property_name, Optional<MarkedValueList> {});
+ return invoke_internal(global_object, property_key, Optional<MarkedValueList> {});
}
}
diff --git a/Userland/Libraries/LibJS/Runtime/JSONObject.cpp b/Userland/Libraries/LibJS/Runtime/JSONObject.cpp
index 02ec26b46b..4daba847c4 100644
--- a/Userland/Libraries/LibJS/Runtime/JSONObject.cpp
+++ b/Userland/Libraries/LibJS/Runtime/JSONObject.cpp
@@ -427,8 +427,8 @@ ThrowCompletionOr<Value> JSONObject::internalize_json_property(GlobalObject& glo
TRY(process_property(i));
} else {
auto property_list = TRY(value_object.enumerable_own_property_names(Object::PropertyKind::Key));
- for (auto& property_name : property_list)
- TRY(process_property(property_name.as_string().string()));
+ for (auto& property_key : property_list)
+ TRY(process_property(property_key.as_string().string()));
}
}
diff --git a/Userland/Libraries/LibJS/Runtime/Object.cpp b/Userland/Libraries/LibJS/Runtime/Object.cpp
index 048eea5da9..fc89950b51 100644
--- a/Userland/Libraries/LibJS/Runtime/Object.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Object.cpp
@@ -77,21 +77,21 @@ ThrowCompletionOr<bool> Object::is_extensible() const
// 7.3 Operations on Objects, https://tc39.es/ecma262/#sec-operations-on-objects
// 7.3.2 Get ( O, P ), https://tc39.es/ecma262/#sec-get-o-p
-ThrowCompletionOr<Value> Object::get(PropertyKey const& property_name) const
+ThrowCompletionOr<Value> Object::get(PropertyKey const& property_key) const
{
// 1. Assert: Type(O) is Object.
// 2. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 3. Return ? O.[[Get]](P, O).
- return TRY(internal_get(property_name, this));
+ return TRY(internal_get(property_key, this));
}
// NOTE: 7.3.3 GetV ( V, P ) is implemented as Value::get().
// 7.3.4 Set ( O, P, V, Throw ), https://tc39.es/ecma262/#sec-set-o-p-v-throw
-ThrowCompletionOr<bool> Object::set(PropertyKey const& property_name, Value value, ShouldThrowExceptions throw_exceptions)
+ThrowCompletionOr<bool> Object::set(PropertyKey const& property_key, Value value, ShouldThrowExceptions throw_exceptions)
{
VERIFY(!value.is_empty());
auto& vm = this->vm();
@@ -99,12 +99,12 @@ ThrowCompletionOr<bool> Object::set(PropertyKey const& property_name, Value valu
// 1. Assert: Type(O) is Object.
// 2. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 3. Assert: Type(Throw) is Boolean.
// 4. Let success be ? O.[[Set]](P, V, O).
- auto success = TRY(internal_set(property_name, value, this));
+ auto success = TRY(internal_set(property_key, value, this));
// 5. If success is false and Throw is true, throw a TypeError exception.
if (!success && throw_exceptions == ShouldThrowExceptions::Yes) {
@@ -117,12 +117,12 @@ ThrowCompletionOr<bool> Object::set(PropertyKey const& property_name, Value valu
}
// 7.3.5 CreateDataProperty ( O, P, V ), https://tc39.es/ecma262/#sec-createdataproperty
-ThrowCompletionOr<bool> Object::create_data_property(PropertyKey const& property_name, Value value)
+ThrowCompletionOr<bool> Object::create_data_property(PropertyKey const& property_key, Value value)
{
// 1. Assert: Type(O) is Object.
// 2. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 3. Let newDesc be the PropertyDescriptor { [[Value]]: V, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true }.
auto new_descriptor = PropertyDescriptor {
@@ -133,18 +133,18 @@ ThrowCompletionOr<bool> Object::create_data_property(PropertyKey const& property
};
// 4. Return ? O.[[DefineOwnProperty]](P, newDesc).
- return internal_define_own_property(property_name, new_descriptor);
+ return internal_define_own_property(property_key, new_descriptor);
}
// 7.3.6 CreateMethodProperty ( O, P, V ), https://tc39.es/ecma262/#sec-createmethodproperty
-ThrowCompletionOr<bool> Object::create_method_property(PropertyKey const& property_name, Value value)
+ThrowCompletionOr<bool> Object::create_method_property(PropertyKey const& property_key, Value value)
{
VERIFY(!value.is_empty());
// 1. Assert: Type(O) is Object.
// 2. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 3. Let newDesc be the PropertyDescriptor { [[Value]]: V, [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }.
auto new_descriptor = PropertyDescriptor {
@@ -155,11 +155,11 @@ ThrowCompletionOr<bool> Object::create_method_property(PropertyKey const& proper
};
// 4. Return ? O.[[DefineOwnProperty]](P, newDesc).
- return internal_define_own_property(property_name, new_descriptor);
+ return internal_define_own_property(property_key, new_descriptor);
}
// 7.3.7 CreateDataPropertyOrThrow ( O, P, V ), https://tc39.es/ecma262/#sec-createdatapropertyorthrow
-ThrowCompletionOr<bool> Object::create_data_property_or_throw(PropertyKey const& property_name, Value value)
+ThrowCompletionOr<bool> Object::create_data_property_or_throw(PropertyKey const& property_key, Value value)
{
VERIFY(!value.is_empty());
auto& vm = this->vm();
@@ -167,10 +167,10 @@ ThrowCompletionOr<bool> Object::create_data_property_or_throw(PropertyKey const&
// 1. Assert: Type(O) is Object.
// 2. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 3. Let success be ? CreateDataProperty(O, P, V).
- auto success = TRY(create_data_property(property_name, value));
+ auto success = TRY(create_data_property(property_key, value));
// 4. If success is false, throw a TypeError exception.
if (!success) {
@@ -183,30 +183,30 @@ ThrowCompletionOr<bool> Object::create_data_property_or_throw(PropertyKey const&
}
// 7.3.8 CreateNonEnumerableDataPropertyOrThrow ( O, P, V ), https://tc39.es/ecma262/#sec-createnonenumerabledatapropertyorthrow
-ThrowCompletionOr<bool> Object::create_non_enumerable_data_property_or_throw(PropertyKey const& property_name, Value value)
+ThrowCompletionOr<bool> Object::create_non_enumerable_data_property_or_throw(PropertyKey const& property_key, Value value)
{
VERIFY(!value.is_empty());
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 1. Let newDesc be the PropertyDescriptor { [[Value]]: V, [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }.
auto new_description = PropertyDescriptor { .value = value, .writable = true, .enumerable = false, .configurable = true };
// 2. Return ? DefinePropertyOrThrow(O, P, newDesc).
- return define_property_or_throw(property_name, new_description);
+ return define_property_or_throw(property_key, new_description);
}
// 7.3.9 DefinePropertyOrThrow ( O, P, desc ), https://tc39.es/ecma262/#sec-definepropertyorthrow
-ThrowCompletionOr<bool> Object::define_property_or_throw(PropertyKey const& property_name, PropertyDescriptor const& property_descriptor)
+ThrowCompletionOr<bool> Object::define_property_or_throw(PropertyKey const& property_key, PropertyDescriptor const& property_descriptor)
{
auto& vm = this->vm();
// 1. Assert: Type(O) is Object.
// 2. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 3. Let success be ? O.[[DefineOwnProperty]](P, desc).
- auto success = TRY(internal_define_own_property(property_name, property_descriptor));
+ auto success = TRY(internal_define_own_property(property_key, property_descriptor));
// 4. If success is false, throw a TypeError exception.
if (!success) {
@@ -219,17 +219,17 @@ ThrowCompletionOr<bool> Object::define_property_or_throw(PropertyKey const& prop
}
// 7.3.10 DeletePropertyOrThrow ( O, P ), https://tc39.es/ecma262/#sec-deletepropertyorthrow
-ThrowCompletionOr<bool> Object::delete_property_or_throw(PropertyKey const& property_name)
+ThrowCompletionOr<bool> Object::delete_property_or_throw(PropertyKey const& property_key)
{
auto& vm = this->vm();
// 1. Assert: Type(O) is Object.
// 2. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 3. Let success be ? O.[[Delete]](P).
- auto success = TRY(internal_delete(property_name));
+ auto success = TRY(internal_delete(property_key));
// 4. If success is false, throw a TypeError exception.
if (!success) {
@@ -242,27 +242,27 @@ ThrowCompletionOr<bool> Object::delete_property_or_throw(PropertyKey const& prop
}
// 7.3.12 HasProperty ( O, P ), https://tc39.es/ecma262/#sec-hasproperty
-ThrowCompletionOr<bool> Object::has_property(PropertyKey const& property_name) const
+ThrowCompletionOr<bool> Object::has_property(PropertyKey const& property_key) const
{
// 1. Assert: Type(O) is Object.
// 2. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 3. Return ? O.[[HasProperty]](P).
- return internal_has_property(property_name);
+ return internal_has_property(property_key);
}
// 7.3.13 HasOwnProperty ( O, P ), https://tc39.es/ecma262/#sec-hasownproperty
-ThrowCompletionOr<bool> Object::has_own_property(PropertyKey const& property_name) const
+ThrowCompletionOr<bool> Object::has_own_property(PropertyKey const& property_key) const
{
// 1. Assert: Type(O) is Object.
// 2. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 3. Let desc be ? O.[[GetOwnProperty]](P).
- auto descriptor = TRY(internal_get_own_property(property_name));
+ auto descriptor = TRY(internal_get_own_property(property_key));
// 4. If desc is undefined, return false.
if (!descriptor.has_value())
@@ -296,10 +296,10 @@ ThrowCompletionOr<bool> Object::set_integrity_level(IntegrityLevel level)
if (level == IntegrityLevel::Sealed) {
// a. For each element k of keys, do
for (auto& key : keys) {
- auto property_name = MUST(PropertyKey::from_value(global_object, key));
+ auto property_key = MUST(PropertyKey::from_value(global_object, key));
// i. Perform ? DefinePropertyOrThrow(O, k, PropertyDescriptor { [[Configurable]]: false }).
- TRY(define_property_or_throw(property_name, { .configurable = false }));
+ TRY(define_property_or_throw(property_key, { .configurable = false }));
}
}
// 7. Else,
@@ -308,10 +308,10 @@ ThrowCompletionOr<bool> Object::set_integrity_level(IntegrityLevel level)
// b. For each element k of keys, do
for (auto& key : keys) {
- auto property_name = MUST(PropertyKey::from_value(global_object, key));
+ auto property_key = MUST(PropertyKey::from_value(global_object, key));
// i. Let currentDesc be ? O.[[GetOwnProperty]](k).
- auto current_descriptor = TRY(internal_get_own_property(property_name));
+ auto current_descriptor = TRY(internal_get_own_property(property_key));
// ii. If currentDesc is not undefined, then
if (!current_descriptor.has_value())
@@ -331,7 +331,7 @@ ThrowCompletionOr<bool> Object::set_integrity_level(IntegrityLevel level)
}
// 3. Perform ? DefinePropertyOrThrow(O, k, desc).
- TRY(define_property_or_throw(property_name, descriptor));
+ TRY(define_property_or_throw(property_key, descriptor));
}
}
@@ -360,10 +360,10 @@ ThrowCompletionOr<bool> Object::test_integrity_level(IntegrityLevel level) const
// 7. For each element k of keys, do
for (auto& key : keys) {
- auto property_name = MUST(PropertyKey::from_value(global_object(), key));
+ auto property_key = MUST(PropertyKey::from_value(global_object(), key));
// a. Let currentDesc be ? O.[[GetOwnProperty]](k).
- auto current_descriptor = TRY(internal_get_own_property(property_name));
+ auto current_descriptor = TRY(internal_get_own_property(property_key));
// b. If currentDesc is not undefined, then
if (!current_descriptor.has_value())
@@ -405,10 +405,10 @@ ThrowCompletionOr<MarkedValueList> Object::enumerable_own_property_names(Propert
// a. If Type(key) is String, then
if (!key.is_string())
continue;
- auto property_name = MUST(PropertyKey::from_value(global_object, key));
+ auto property_key = MUST(PropertyKey::from_value(global_object, key));
// i. Let desc be ? O.[[GetOwnProperty]](key).
- auto descriptor = TRY(internal_get_own_property(property_name));
+ auto descriptor = TRY(internal_get_own_property(property_key));
// ii. If desc is not undefined and desc.[[Enumerable]] is true, then
if (descriptor.has_value() && *descriptor->enumerable) {
@@ -420,7 +420,7 @@ ThrowCompletionOr<MarkedValueList> Object::enumerable_own_property_names(Propert
// 2. Else,
// a. Let value be ? Get(O, key).
- auto value = TRY(get(property_name));
+ auto value = TRY(get(property_key));
// b. If kind is value, append value to properties.
if (kind == PropertyKind::Value) {
@@ -560,8 +560,8 @@ ThrowCompletionOr<void> Object::define_field(Variant<PropertyKey, PrivateName> n
if (initializer)
init_value = TRY(call(global_object(), *initializer, this));
- if (auto* property_name_ptr = name.get_pointer<PropertyKey>())
- TRY(create_data_property_or_throw(*property_name_ptr, init_value));
+ if (auto* property_key_ptr = name.get_pointer<PropertyKey>())
+ TRY(create_data_property_or_throw(*property_key_ptr, init_value));
else
TRY(private_field_add(name.get<PrivateName>(), init_value));
@@ -641,13 +641,13 @@ ThrowCompletionOr<bool> Object::internal_prevent_extensions()
}
// 10.1.5 [[GetOwnProperty]] ( P ), https://tc39.es/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots-getownproperty-p
-ThrowCompletionOr<Optional<PropertyDescriptor>> Object::internal_get_own_property(PropertyKey const& property_name) const
+ThrowCompletionOr<Optional<PropertyDescriptor>> Object::internal_get_own_property(PropertyKey const& property_key) const
{
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. If O does not have an own property with key P, return undefined.
- auto maybe_storage_entry = storage_get(property_name);
+ auto maybe_storage_entry = storage_get(property_key);
if (!maybe_storage_entry.has_value())
return Optional<PropertyDescriptor> {};
@@ -687,27 +687,27 @@ ThrowCompletionOr<Optional<PropertyDescriptor>> Object::internal_get_own_propert
}
// 10.1.6 [[DefineOwnProperty]] ( P, Desc ), https://tc39.es/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots-defineownproperty-p-desc
-ThrowCompletionOr<bool> Object::internal_define_own_property(PropertyKey const& property_name, PropertyDescriptor const& property_descriptor)
+ThrowCompletionOr<bool> Object::internal_define_own_property(PropertyKey const& property_key, PropertyDescriptor const& property_descriptor)
{
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 1. Let current be ? O.[[GetOwnProperty]](P).
- auto current = TRY(internal_get_own_property(property_name));
+ auto current = TRY(internal_get_own_property(property_key));
// 2. Let extensible be ? IsExtensible(O).
auto extensible = TRY(is_extensible());
// 3. Return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current).
- return validate_and_apply_property_descriptor(this, property_name, extensible, property_descriptor, current);
+ return validate_and_apply_property_descriptor(this, property_key, extensible, property_descriptor, current);
}
// 10.1.7 [[HasProperty]] ( P ), https://tc39.es/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots-hasproperty-p
-ThrowCompletionOr<bool> Object::internal_has_property(PropertyKey const& property_name) const
+ThrowCompletionOr<bool> Object::internal_has_property(PropertyKey const& property_key) const
{
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Let hasOwn be ? O.[[GetOwnProperty]](P).
- auto has_own = TRY(internal_get_own_property(property_name));
+ auto has_own = TRY(internal_get_own_property(property_key));
// 3. If hasOwn is not undefined, return true.
if (has_own.has_value())
@@ -719,7 +719,7 @@ ThrowCompletionOr<bool> Object::internal_has_property(PropertyKey const& propert
// 5. If parent is not null, then
if (parent) {
// a. Return ? parent.[[HasProperty]](P).
- return parent->internal_has_property(property_name);
+ return parent->internal_has_property(property_key);
}
// 6. Return false.
@@ -727,15 +727,15 @@ ThrowCompletionOr<bool> Object::internal_has_property(PropertyKey const& propert
}
// 10.1.8 [[Get]] ( P, Receiver ), https://tc39.es/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots-get-p-receiver
-ThrowCompletionOr<Value> Object::internal_get(PropertyKey const& property_name, Value receiver) const
+ThrowCompletionOr<Value> Object::internal_get(PropertyKey const& property_key, Value receiver) const
{
VERIFY(!receiver.is_empty());
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Let desc be ? O.[[GetOwnProperty]](P).
- auto descriptor = TRY(internal_get_own_property(property_name));
+ auto descriptor = TRY(internal_get_own_property(property_key));
// 3. If desc is undefined, then
if (!descriptor.has_value()) {
@@ -747,7 +747,7 @@ ThrowCompletionOr<Value> Object::internal_get(PropertyKey const& property_name,
return js_undefined();
// c. Return ? parent.[[Get]](P, Receiver).
- return parent->internal_get(property_name, receiver);
+ return parent->internal_get(property_key, receiver);
}
// 4. If IsDataDescriptor(desc) is true, return desc.[[Value]].
@@ -769,26 +769,26 @@ ThrowCompletionOr<Value> Object::internal_get(PropertyKey const& property_name,
}
// 10.1.9 [[Set]] ( P, V, Receiver ), https://tc39.es/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots-set-p-v-receiver
-ThrowCompletionOr<bool> Object::internal_set(PropertyKey const& property_name, Value value, Value receiver)
+ThrowCompletionOr<bool> Object::internal_set(PropertyKey const& property_key, Value value, Value receiver)
{
VERIFY(!value.is_empty());
VERIFY(!receiver.is_empty());
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Let ownDesc be ? O.[[GetOwnProperty]](P).
- auto own_descriptor = TRY(internal_get_own_property(property_name));
+ auto own_descriptor = TRY(internal_get_own_property(property_key));
// 3. Return OrdinarySetWithOwnDescriptor(O, P, V, Receiver, ownDesc).
- return ordinary_set_with_own_descriptor(property_name, value, receiver, own_descriptor);
+ return ordinary_set_with_own_descriptor(property_key, value, receiver, own_descriptor);
}
// 10.1.9.2 OrdinarySetWithOwnDescriptor ( O, P, V, Receiver, ownDesc ), https://tc39.es/ecma262/#sec-ordinarysetwithowndescriptor
-ThrowCompletionOr<bool> Object::ordinary_set_with_own_descriptor(PropertyKey const& property_name, Value value, Value receiver, Optional<PropertyDescriptor> own_descriptor)
+ThrowCompletionOr<bool> Object::ordinary_set_with_own_descriptor(PropertyKey const& property_key, Value value, Value receiver, Optional<PropertyDescriptor> own_descriptor)
{
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. If ownDesc is undefined, then
if (!own_descriptor.has_value()) {
@@ -798,7 +798,7 @@ ThrowCompletionOr<bool> Object::ordinary_set_with_own_descriptor(PropertyKey con
// b. If parent is not null, then
if (parent) {
// i. Return ? parent.[[Set]](P, V, Receiver).
- return TRY(parent->internal_set(property_name, value, receiver));
+ return TRY(parent->internal_set(property_key, value, receiver));
}
// c. Else,
else {
@@ -823,7 +823,7 @@ ThrowCompletionOr<bool> Object::ordinary_set_with_own_descriptor(PropertyKey con
return false;
// c. Let existingDescriptor be ? Receiver.[[GetOwnProperty]](P).
- auto existing_descriptor = TRY(receiver.as_object().internal_get_own_property(property_name));
+ auto existing_descriptor = TRY(receiver.as_object().internal_get_own_property(property_key));
// d. If existingDescriptor is not undefined, then
if (existing_descriptor.has_value()) {
@@ -839,15 +839,15 @@ ThrowCompletionOr<bool> Object::ordinary_set_with_own_descriptor(PropertyKey con
auto value_descriptor = PropertyDescriptor { .value = value };
// iv. Return ? Receiver.[[DefineOwnProperty]](P, valueDesc).
- return TRY(receiver.as_object().internal_define_own_property(property_name, value_descriptor));
+ return TRY(receiver.as_object().internal_define_own_property(property_key, value_descriptor));
}
// e. Else,
else {
// i. Assert: Receiver does not currently have a property P.
- VERIFY(!receiver.as_object().storage_has(property_name));
+ VERIFY(!receiver.as_object().storage_has(property_key));
// ii. Return ? CreateDataProperty(Receiver, P, V).
- return TRY(receiver.as_object().create_data_property(property_name, value));
+ return TRY(receiver.as_object().create_data_property(property_key, value));
}
}
@@ -869,13 +869,13 @@ ThrowCompletionOr<bool> Object::ordinary_set_with_own_descriptor(PropertyKey con
}
// 10.1.10 [[Delete]] ( P ), https://tc39.es/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots-delete-p
-ThrowCompletionOr<bool> Object::internal_delete(PropertyKey const& property_name)
+ThrowCompletionOr<bool> Object::internal_delete(PropertyKey const& property_key)
{
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Let desc be ? O.[[GetOwnProperty]](P).
- auto descriptor = TRY(internal_get_own_property(property_name));
+ auto descriptor = TRY(internal_get_own_property(property_key));
// 3. If desc is undefined, return true.
if (!descriptor.has_value())
@@ -884,7 +884,7 @@ ThrowCompletionOr<bool> Object::internal_delete(PropertyKey const& property_name
// 4. If desc.[[Configurable]] is true, then
if (*descriptor->configurable) {
// a. Remove the own property with name P from O.
- storage_delete(property_name);
+ storage_delete(property_key);
// b. Return true.
return true;
@@ -944,21 +944,21 @@ ThrowCompletionOr<bool> Object::set_immutable_prototype(Object* prototype)
return false;
}
-Optional<ValueAndAttributes> Object::storage_get(PropertyKey const& property_name) const
+Optional<ValueAndAttributes> Object::storage_get(PropertyKey const& property_key) const
{
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
Value value;
PropertyAttributes attributes;
- if (property_name.is_number()) {
- auto value_and_attributes = m_indexed_properties.get(property_name.as_number());
+ if (property_key.is_number()) {
+ auto value_and_attributes = m_indexed_properties.get(property_key.as_number());
if (!value_and_attributes.has_value())
return {};
value = value_and_attributes->value;
attributes = value_and_attributes->attributes;
} else {
- auto metadata = shape().lookup(property_name.to_string_or_symbol());
+ auto metadata = shape().lookup(property_key.to_string_or_symbol());
if (!metadata.has_value())
return {};
value = m_storage[metadata->offset];
@@ -967,28 +967,28 @@ Optional<ValueAndAttributes> Object::storage_get(PropertyKey const& property_nam
return ValueAndAttributes { .value = value, .attributes = attributes };
}
-bool Object::storage_has(PropertyKey const& property_name) const
+bool Object::storage_has(PropertyKey const& property_key) const
{
- VERIFY(property_name.is_valid());
- if (property_name.is_number())
- return m_indexed_properties.has_index(property_name.as_number());
- return shape().lookup(property_name.to_string_or_symbol()).has_value();
+ VERIFY(property_key.is_valid());
+ if (property_key.is_number())
+ return m_indexed_properties.has_index(property_key.as_number());
+ return shape().lookup(property_key.to_string_or_symbol()).has_value();
}
-void Object::storage_set(PropertyKey const& property_name, ValueAndAttributes const& value_and_attributes)
+void Object::storage_set(PropertyKey const& property_key, ValueAndAttributes const& value_and_attributes)
{
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
auto [value, attributes] = value_and_attributes;
- if (property_name.is_number()) {
- auto index = property_name.as_number();
+ if (property_key.is_number()) {
+ auto index = property_key.as_number();
m_indexed_properties.put(index, value, attributes);
return;
}
- auto property_name_string_or_symbol = property_name.to_string_or_symbol();
- auto metadata = shape().lookup(property_name_string_or_symbol);
+ auto property_key_string_or_symbol = property_key.to_string_or_symbol();
+ auto metadata = shape().lookup(property_key_string_or_symbol);
if (!metadata.has_value()) {
if (!m_shape->is_unique() && shape().property_count() > 100) {
@@ -998,9 +998,9 @@ void Object::storage_set(PropertyKey const& property_name, ValueAndAttributes co
}
if (m_shape->is_unique())
- m_shape->add_property_to_unique_shape(property_name_string_or_symbol, attributes);
+ m_shape->add_property_to_unique_shape(property_key_string_or_symbol, attributes);
else
- set_shape(*m_shape->create_put_transition(property_name_string_or_symbol, attributes));
+ set_shape(*m_shape->create_put_transition(property_key_string_or_symbol, attributes));
m_storage.append(value);
return;
@@ -1008,28 +1008,28 @@ void Object::storage_set(PropertyKey const& property_name, ValueAndAttributes co
if (attributes != metadata->attributes) {
if (m_shape->is_unique())
- m_shape->reconfigure_property_in_unique_shape(property_name_string_or_symbol, attributes);
+ m_shape->reconfigure_property_in_unique_shape(property_key_string_or_symbol, attributes);
else
- set_shape(*m_shape->create_configure_transition(property_name_string_or_symbol, attributes));
+ set_shape(*m_shape->create_configure_transition(property_key_string_or_symbol, attributes));
}
m_storage[metadata->offset] = value;
}
-void Object::storage_delete(PropertyKey const& property_name)
+void Object::storage_delete(PropertyKey const& property_key)
{
- VERIFY(property_name.is_valid());
- VERIFY(storage_has(property_name));
+ VERIFY(property_key.is_valid());
+ VERIFY(storage_has(property_key));
- if (property_name.is_number())
- return m_indexed_properties.remove(property_name.as_number());
+ if (property_key.is_number())
+ return m_indexed_properties.remove(property_key.as_number());
- auto metadata = shape().lookup(property_name.to_string_or_symbol());
+ auto metadata = shape().lookup(property_key.to_string_or_symbol());
VERIFY(metadata.has_value());
ensure_shape_is_unique();
- shape().remove_property_from_unique_shape(property_name.to_string_or_symbol(), metadata->offset);
+ shape().remove_property_from_unique_shape(property_key.to_string_or_symbol(), metadata->offset);
m_storage.remove(metadata->offset);
}
@@ -1044,43 +1044,43 @@ void Object::set_prototype(Object* new_prototype)
m_shape = shape.create_prototype_transition(new_prototype);
}
-void Object::define_native_accessor(PropertyKey const& property_name, Function<ThrowCompletionOr<Value>(VM&, GlobalObject&)> getter, Function<ThrowCompletionOr<Value>(VM&, GlobalObject&)> setter, PropertyAttributes attribute)
+void Object::define_native_accessor(PropertyKey const& property_key, Function<ThrowCompletionOr<Value>(VM&, GlobalObject&)> getter, Function<ThrowCompletionOr<Value>(VM&, GlobalObject&)> setter, PropertyAttributes attribute)
{
auto& vm = this->vm();
- String formatted_property_name;
- if (property_name.is_number()) {
- formatted_property_name = property_name.to_string();
- } else if (property_name.is_string()) {
- formatted_property_name = property_name.as_string();
+ String formatted_property_key;
+ if (property_key.is_number()) {
+ formatted_property_key = property_key.to_string();
+ } else if (property_key.is_string()) {
+ formatted_property_key = property_key.as_string();
} else {
- formatted_property_name = String::formatted("[{}]", property_name.as_symbol()->description());
+ formatted_property_key = String::formatted("[{}]", property_key.as_symbol()->description());
}
FunctionObject* getter_function = nullptr;
if (getter) {
- auto name = String::formatted("get {}", formatted_property_name);
+ auto name = String::formatted("get {}", formatted_property_key);
getter_function = NativeFunction::create(global_object(), name, move(getter));
getter_function->define_direct_property(vm.names.length, Value(0), Attribute::Configurable);
getter_function->define_direct_property(vm.names.name, js_string(vm, name), Attribute::Configurable);
}
FunctionObject* setter_function = nullptr;
if (setter) {
- auto name = String::formatted("set {}", formatted_property_name);
+ auto name = String::formatted("set {}", formatted_property_key);
setter_function = NativeFunction::create(global_object(), name, move(setter));
setter_function->define_direct_property(vm.names.length, Value(1), Attribute::Configurable);
setter_function->define_direct_property(vm.names.name, js_string(vm, name), Attribute::Configurable);
}
- return define_direct_accessor(property_name, getter_function, setter_function, attribute);
+ return define_direct_accessor(property_key, getter_function, setter_function, attribute);
}
-void Object::define_direct_accessor(PropertyKey const& property_name, FunctionObject* getter, FunctionObject* setter, PropertyAttributes attributes)
+void Object::define_direct_accessor(PropertyKey const& property_key, FunctionObject* getter, FunctionObject* setter, PropertyAttributes attributes)
{
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
- auto existing_property = storage_get(property_name).value_or({}).value;
+ auto existing_property = storage_get(property_key).value_or({}).value;
auto* accessor = existing_property.is_accessor() ? &existing_property.as_accessor() : nullptr;
if (!accessor) {
accessor = Accessor::create(vm(), getter, setter);
- define_direct_property(property_name, accessor, attributes);
+ define_direct_property(property_key, accessor, attributes);
} else {
if (getter)
accessor->set_getter(getter);
@@ -1098,11 +1098,11 @@ void Object::ensure_shape_is_unique()
}
// Simple side-effect free property lookup, following the prototype chain. Non-standard.
-Value Object::get_without_side_effects(const PropertyKey& property_name) const
+Value Object::get_without_side_effects(const PropertyKey& property_key) const
{
auto* object = this;
while (object) {
- auto value_and_attributes = object->storage_get(property_name);
+ auto value_and_attributes = object->storage_get(property_key);
if (value_and_attributes.has_value())
return value_and_attributes->value;
object = object->prototype();
@@ -1110,19 +1110,19 @@ Value Object::get_without_side_effects(const PropertyKey& property_name) const
return {};
}
-void Object::define_native_function(PropertyKey const& property_name, Function<ThrowCompletionOr<Value>(VM&, GlobalObject&)> native_function, i32 length, PropertyAttributes attribute)
+void Object::define_native_function(PropertyKey const& property_key, Function<ThrowCompletionOr<Value>(VM&, GlobalObject&)> native_function, i32 length, PropertyAttributes attribute)
{
auto& vm = this->vm();
String function_name;
- if (property_name.is_string()) {
- function_name = property_name.as_string();
+ if (property_key.is_string()) {
+ function_name = property_key.as_string();
} else {
- function_name = String::formatted("[{}]", property_name.as_symbol()->description());
+ function_name = String::formatted("[{}]", property_key.as_symbol()->description());
}
auto* function = NativeFunction::create(global_object(), function_name, move(native_function));
function->define_direct_property(vm.names.length, Value(length), Attribute::Configurable);
function->define_direct_property(vm.names.name, js_string(vm, function_name), Attribute::Configurable);
- define_direct_property(property_name, function, attribute);
+ define_direct_property(property_key, function, attribute);
}
// 20.1.2.3.1 ObjectDefineProperties ( O, Properties ), https://tc39.es/ecma262/#sec-objectdefineproperties
@@ -1148,21 +1148,21 @@ ThrowCompletionOr<Object*> Object::define_properties(Value properties)
// 5. For each element nextKey of keys, do
for (auto& next_key : keys) {
- auto property_name = MUST(PropertyKey::from_value(global_object, next_key));
+ auto property_key = MUST(PropertyKey::from_value(global_object, next_key));
// a. Let propDesc be ? props.[[GetOwnProperty]](nextKey).
- auto property_descriptor = TRY(props->internal_get_own_property(property_name));
+ auto property_descriptor = TRY(props->internal_get_own_property(property_key));
// b. If propDesc is not undefined and propDesc.[[Enumerable]] is true, then
if (property_descriptor.has_value() && *property_descriptor->enumerable) {
// i. Let descObj be ? Get(props, nextKey).
- auto descriptor_object = TRY(props->get(property_name));
+ auto descriptor_object = TRY(props->get(property_key));
// ii. Let desc be ? ToPropertyDescriptor(descObj).
auto descriptor = TRY(to_property_descriptor(global_object, descriptor_object));
// iii. Append the pair (a two element List) consisting of nextKey and desc to the end of descriptors.
- descriptors.append({ property_name, descriptor });
+ descriptors.append({ property_key, descriptor });
}
}
diff --git a/Userland/Libraries/LibJS/Runtime/Object.h b/Userland/Libraries/LibJS/Runtime/Object.h
index 7cf5615cb9..dc47616525 100644
--- a/Userland/Libraries/LibJS/Runtime/Object.h
+++ b/Userland/Libraries/LibJS/Runtime/Object.h
@@ -145,7 +145,7 @@ public:
Value get_without_side_effects(const PropertyKey&) const;
- void define_direct_property(PropertyKey const& property_name, Value value, PropertyAttributes attributes) { storage_set(property_name, { value, attributes }); };
+ void define_direct_property(PropertyKey const& property_key, Value value, PropertyAttributes attributes) { storage_set(property_key, { value, attributes }); };
void define_direct_accessor(PropertyKey const&, FunctionObject* getter, FunctionObject* setter, PropertyAttributes attributes);
void define_native_function(PropertyKey const&, Function<ThrowCompletionOr<Value>(VM&, GlobalObject&)>, i32 length, PropertyAttributes attributes);
diff --git a/Userland/Libraries/LibJS/Runtime/ObjectConstructor.cpp b/Userland/Libraries/LibJS/Runtime/ObjectConstructor.cpp
index ba7506740f..8f2f15ee1f 100644
--- a/Userland/Libraries/LibJS/Runtime/ObjectConstructor.cpp
+++ b/Userland/Libraries/LibJS/Runtime/ObjectConstructor.cpp
@@ -277,17 +277,17 @@ JS_DEFINE_NATIVE_FUNCTION(ObjectConstructor::get_own_property_descriptors)
// 4. For each element key of ownKeys, do
for (auto& key : own_keys) {
- auto property_name = MUST(PropertyKey::from_value(global_object, key));
+ auto property_key = MUST(PropertyKey::from_value(global_object, key));
// a. Let desc be ? obj.[[GetOwnProperty]](key).
- auto desc = TRY(object->internal_get_own_property(property_name));
+ auto desc = TRY(object->internal_get_own_property(property_key));
// b. Let descriptor be ! FromPropertyDescriptor(desc).
auto descriptor = from_property_descriptor(global_object, desc);
// c. If descriptor is not undefined, perform ! CreateDataPropertyOrThrow(descriptors, key, descriptor).
if (!descriptor.is_undefined())
- MUST(descriptors->create_data_property_or_throw(property_name, descriptor));
+ MUST(descriptors->create_data_property_or_throw(property_key, descriptor));
}
// 5. Return descriptors.
@@ -411,20 +411,20 @@ JS_DEFINE_NATIVE_FUNCTION(ObjectConstructor::assign)
// iii. For each element nextKey of keys, do
for (auto& next_key : keys) {
- auto property_name = MUST(PropertyKey::from_value(global_object, next_key));
+ auto property_key = MUST(PropertyKey::from_value(global_object, next_key));
// 1. Let desc be ? from.[[GetOwnProperty]](nextKey).
- auto desc = TRY(from->internal_get_own_property(property_name));
+ auto desc = TRY(from->internal_get_own_property(property_key));
// 2. If desc is not undefined and desc.[[Enumerable]] is true, then
if (!desc.has_value() || !*desc->enumerable)
continue;
// a. Let propValue be ? Get(from, nextKey).
- auto prop_value = TRY(from->get(property_name));
+ auto prop_value = TRY(from->get(property_key));
// b. Perform ? Set(to, nextKey, propValue, true).
- TRY(to->set(property_name, prop_value, Object::ShouldThrowExceptions::Yes));
+ TRY(to->set(property_key, prop_value, Object::ShouldThrowExceptions::Yes));
}
}
diff --git a/Userland/Libraries/LibJS/Runtime/PropertyKey.h b/Userland/Libraries/LibJS/Runtime/PropertyKey.h
index 0e76b3b300..b7178d0aa0 100644
--- a/Userland/Libraries/LibJS/Runtime/PropertyKey.h
+++ b/Userland/Libraries/LibJS/Runtime/PropertyKey.h
@@ -225,13 +225,13 @@ struct Traits<JS::PropertyKey> : public GenericTraits<JS::PropertyKey> {
template<>
struct Formatter<JS::PropertyKey> : Formatter<StringView> {
- ErrorOr<void> format(FormatBuilder& builder, JS::PropertyKey const& property_name)
+ ErrorOr<void> format(FormatBuilder& builder, JS::PropertyKey const& property_key)
{
- if (!property_name.is_valid())
+ if (!property_key.is_valid())
return Formatter<StringView>::format(builder, "<invalid PropertyKey>");
- if (property_name.is_number())
- return Formatter<StringView>::format(builder, String::number(property_name.as_number()));
- return Formatter<StringView>::format(builder, property_name.to_string_or_symbol().to_display_string());
+ if (property_key.is_number())
+ return Formatter<StringView>::format(builder, String::number(property_key.as_number()));
+ return Formatter<StringView>::format(builder, property_key.to_string_or_symbol().to_display_string());
}
};
diff --git a/Userland/Libraries/LibJS/Runtime/ProxyObject.cpp b/Userland/Libraries/LibJS/Runtime/ProxyObject.cpp
index 0fd95099e7..d6b6691ed4 100644
--- a/Userland/Libraries/LibJS/Runtime/ProxyObject.cpp
+++ b/Userland/Libraries/LibJS/Runtime/ProxyObject.cpp
@@ -31,17 +31,17 @@ ProxyObject::~ProxyObject()
{
}
-static Value property_name_to_value(VM& vm, PropertyKey const& name)
+static Value property_key_to_value(VM& vm, PropertyKey const& property_key)
{
- VERIFY(name.is_valid());
- if (name.is_symbol())
- return name.as_symbol();
+ VERIFY(property_key.is_valid());
+ if (property_key.is_symbol())
+ return property_key.as_symbol();
- if (name.is_string())
- return js_string(vm, name.as_string());
+ if (property_key.is_string())
+ return js_string(vm, property_key.as_string());
- VERIFY(name.is_number());
- return js_string(vm, String::number(name.as_number()));
+ VERIFY(property_key.is_number());
+ return js_string(vm, String::number(property_key.as_number()));
}
// 10.5.1 [[GetPrototypeOf]] ( ), https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-getprototypeof
@@ -223,13 +223,13 @@ ThrowCompletionOr<bool> ProxyObject::internal_prevent_extensions()
}
// 10.5.5 [[GetOwnProperty]] ( P ), https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-getownproperty-p
-ThrowCompletionOr<Optional<PropertyDescriptor>> ProxyObject::internal_get_own_property(const PropertyKey& property_name) const
+ThrowCompletionOr<Optional<PropertyDescriptor>> ProxyObject::internal_get_own_property(const PropertyKey& property_key) const
{
auto& vm = this->vm();
auto& global_object = this->global_object();
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Let handler be O.[[ProxyHandler]].
@@ -246,18 +246,18 @@ ThrowCompletionOr<Optional<PropertyDescriptor>> ProxyObject::internal_get_own_pr
// 7. If trap is undefined, then
if (!trap) {
// a. Return ? target.[[GetOwnProperty]](P).
- return m_target.internal_get_own_property(property_name);
+ return m_target.internal_get_own_property(property_key);
}
// 8. Let trapResultObj be ? Call(trap, handler, « target, P »).
- auto trap_result = TRY(call(global_object, *trap, &m_handler, &m_target, property_name_to_value(vm, property_name)));
+ auto trap_result = TRY(call(global_object, *trap, &m_handler, &m_target, property_key_to_value(vm, property_key)));
// 9. If Type(trapResultObj) is neither Object nor Undefined, throw a TypeError exception.
if (!trap_result.is_object() && !trap_result.is_undefined())
return vm.throw_completion<TypeError>(global_object, ErrorType::ProxyGetOwnDescriptorReturn);
// 10. Let targetDesc be ? target.[[GetOwnProperty]](P).
- auto target_descriptor = TRY(m_target.internal_get_own_property(property_name));
+ auto target_descriptor = TRY(m_target.internal_get_own_property(property_key));
// 11. If trapResultObj is undefined, then
if (trap_result.is_undefined()) {
@@ -316,13 +316,13 @@ ThrowCompletionOr<Optional<PropertyDescriptor>> ProxyObject::internal_get_own_pr
}
// 10.5.6 [[DefineOwnProperty]] ( P, Desc ), https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-defineownproperty-p-desc
-ThrowCompletionOr<bool> ProxyObject::internal_define_own_property(PropertyKey const& property_name, PropertyDescriptor const& property_descriptor)
+ThrowCompletionOr<bool> ProxyObject::internal_define_own_property(PropertyKey const& property_key, PropertyDescriptor const& property_descriptor)
{
auto& vm = this->vm();
auto& global_object = this->global_object();
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Let handler be O.[[ProxyHandler]].
@@ -339,21 +339,21 @@ ThrowCompletionOr<bool> ProxyObject::internal_define_own_property(PropertyKey co
// 7. If trap is undefined, then
if (!trap) {
// a. Return ? target.[[DefineOwnProperty]](P, Desc).
- return m_target.internal_define_own_property(property_name, property_descriptor);
+ return m_target.internal_define_own_property(property_key, property_descriptor);
}
// 8. Let descObj be FromPropertyDescriptor(Desc).
auto descriptor_object = from_property_descriptor(global_object, property_descriptor);
// 9. Let booleanTrapResult be ! ToBoolean(? Call(trap, handler, « target, P, descObj »)).
- auto trap_result = TRY(call(global_object, *trap, &m_handler, &m_target, property_name_to_value(vm, property_name), descriptor_object)).to_boolean();
+ auto trap_result = TRY(call(global_object, *trap, &m_handler, &m_target, property_key_to_value(vm, property_key), descriptor_object)).to_boolean();
// 10. If booleanTrapResult is false, return false.
if (!trap_result)
return false;
// 11. Let targetDesc be ? target.[[GetOwnProperty]](P).
- auto target_descriptor = TRY(m_target.internal_get_own_property(property_name));
+ auto target_descriptor = TRY(m_target.internal_get_own_property(property_key));
// 12. Let extensibleTarget be ? IsExtensible(target).
auto extensible_target = TRY(m_target.is_extensible());
@@ -400,13 +400,13 @@ ThrowCompletionOr<bool> ProxyObject::internal_define_own_property(PropertyKey co
}
// 10.5.7 [[HasProperty]] ( P ), https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-hasproperty-p
-ThrowCompletionOr<bool> ProxyObject::internal_has_property(PropertyKey const& property_name) const
+ThrowCompletionOr<bool> ProxyObject::internal_has_property(PropertyKey const& property_key) const
{
auto& vm = this->vm();
auto& global_object = this->global_object();
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Let handler be O.[[ProxyHandler]].
@@ -423,16 +423,16 @@ ThrowCompletionOr<bool> ProxyObject::internal_has_property(PropertyKey const& pr
// 7. If trap is undefined, then
if (!trap) {
// a. Return ? target.[[HasProperty]](P).
- return m_target.internal_has_property(property_name);
+ return m_target.internal_has_property(property_key);
}
// 8. Let booleanTrapResult be ! ToBoolean(? Call(trap, handler, « target, P »)).
- auto trap_result = TRY(call(global_object, *trap, &m_handler, &m_target, property_name_to_value(vm, property_name))).to_boolean();
+ auto trap_result = TRY(call(global_object, *trap, &m_handler, &m_target, property_key_to_value(vm, property_key))).to_boolean();
// 9. If booleanTrapResult is false, then
if (!trap_result) {
// a. Let targetDesc be ? target.[[GetOwnProperty]](P).
- auto target_descriptor = TRY(m_target.internal_get_own_property(property_name));
+ auto target_descriptor = TRY(m_target.internal_get_own_property(property_key));
// b. If targetDesc is not undefined, then
if (target_descriptor.has_value()) {
@@ -454,7 +454,7 @@ ThrowCompletionOr<bool> ProxyObject::internal_has_property(PropertyKey const& pr
}
// 10.5.8 [[Get]] ( P, Receiver ), https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-get-p-receiver
-ThrowCompletionOr<Value> ProxyObject::internal_get(PropertyKey const& property_name, Value receiver) const
+ThrowCompletionOr<Value> ProxyObject::internal_get(PropertyKey const& property_key, Value receiver) const
{
VERIFY(!receiver.is_empty());
@@ -462,7 +462,7 @@ ThrowCompletionOr<Value> ProxyObject::internal_get(PropertyKey const& property_n
auto& global_object = this->global_object();
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Let handler be O.[[ProxyHandler]].
@@ -495,14 +495,14 @@ ThrowCompletionOr<Value> ProxyObject::internal_get(PropertyKey const& property_n
// 7. If trap is undefined, then
if (!trap) {
// a. Return ? target.[[Get]](P, Receiver).
- return m_target.internal_get(property_name, receiver);
+ return m_target.internal_get(property_key, receiver);
}
// 8. Let trapResult be ? Call(trap, handler, « target, P, Receiver »).
- auto trap_result = TRY(call(global_object, *trap, &m_handler, &m_target, property_name_to_value(vm, property_name), receiver));
+ auto trap_result = TRY(call(global_object, *trap, &m_handler, &m_target, property_key_to_value(vm, property_key), receiver));
// 9. Let targetDesc be ? target.[[GetOwnProperty]](P).
- auto target_descriptor = TRY(m_target.internal_get_own_property(property_name));
+ auto target_descriptor = TRY(m_target.internal_get_own_property(property_key));
// 10. If targetDesc is not undefined and targetDesc.[[Configurable]] is false, then
if (target_descriptor.has_value() && !*target_descriptor->configurable) {
@@ -525,7 +525,7 @@ ThrowCompletionOr<Value> ProxyObject::internal_get(PropertyKey const& property_n
}
// 10.5.9 [[Set]] ( P, V, Receiver ), https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver
-ThrowCompletionOr<bool> ProxyObject::internal_set(PropertyKey const& property_name, Value value, Value receiver)
+ThrowCompletionOr<bool> ProxyObject::internal_set(PropertyKey const& property_key, Value value, Value receiver)
{
VERIFY(!value.is_empty());
VERIFY(!receiver.is_empty());
@@ -534,7 +534,7 @@ ThrowCompletionOr<bool> ProxyObject::internal_set(PropertyKey const& property_na
auto& global_object = this->global_object();
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Let handler be O.[[ProxyHandler]].
@@ -551,18 +551,18 @@ ThrowCompletionOr<bool> ProxyObject::internal_set(PropertyKey const& property_na
// 7. If trap is undefined, then
if (!trap) {
// a. Return ? target.[[Set]](P, V, Receiver).
- return m_target.internal_set(property_name, value, receiver);
+ return m_target.internal_set(property_key, value, receiver);
}
// 8. Let booleanTrapResult be ! ToBoolean(? Call(trap, handler, « target, P, V, Receiver »)).
- auto trap_result = TRY(call(global_object, *trap, &m_handler, &m_target, property_name_to_value(vm, property_name), value, receiver)).to_boolean();
+ auto trap_result = TRY(call(global_object, *trap, &m_handler, &m_target, property_key_to_value(vm, property_key), value, receiver)).to_boolean();
// 9. If booleanTrapResult is false, return false.
if (!trap_result)
return false;
// 10. Let targetDesc be ? target.[[GetOwnProperty]](P).
- auto target_descriptor = TRY(m_target.internal_get_own_property(property_name));
+ auto target_descriptor = TRY(m_target.internal_get_own_property(property_key));
// 11. If targetDesc is not undefined and targetDesc.[[Configurable]] is false, then
if (target_descriptor.has_value() && !*target_descriptor->configurable) {
@@ -585,13 +585,13 @@ ThrowCompletionOr<bool> ProxyObject::internal_set(PropertyKey const& property_na
}
// 10.5.10 [[Delete]] ( P ), https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-delete-p
-ThrowCompletionOr<bool> ProxyObject::internal_delete(PropertyKey const& property_name)
+ThrowCompletionOr<bool> ProxyObject::internal_delete(PropertyKey const& property_key)
{
auto& vm = this->vm();
auto& global_object = this->global_object();
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Let handler be O.[[ProxyHandler]].
@@ -608,18 +608,18 @@ ThrowCompletionOr<bool> ProxyObject::internal_delete(PropertyKey const& property
// 7. If trap is undefined, then
if (!trap) {
// a. Return ? target.[[Delete]](P).
- return m_target.internal_delete(property_name);
+ return m_target.internal_delete(property_key);
}
// 8. Let booleanTrapResult be ! ToBoolean(? Call(trap, handler, « target, P »)).
- auto trap_result = TRY(call(global_object, *trap, &m_handler, &m_target, property_name_to_value(vm, property_name))).to_boolean();
+ auto trap_result = TRY(call(global_object, *trap, &m_handler, &m_target, property_key_to_value(vm, property_key))).to_boolean();
// 9. If booleanTrapResult is false, return false.
if (!trap_result)
return false;
// 10. Let targetDesc be ? target.[[GetOwnProperty]](P).
- auto target_descriptor = TRY(m_target.internal_get_own_property(property_name));
+ auto target_descriptor = TRY(m_target.internal_get_own_property(property_key));
// 11. If targetDesc is undefined, return true.
if (!target_descriptor.has_value())
diff --git a/Userland/Libraries/LibJS/Runtime/Shape.cpp b/Userland/Libraries/LibJS/Runtime/Shape.cpp
index b7e51fc9e3..dec25b0c5e 100644
--- a/Userland/Libraries/LibJS/Runtime/Shape.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Shape.cpp
@@ -53,24 +53,24 @@ Shape* Shape::get_or_prune_cached_prototype_transition(Object* prototype)
return it->value;
}
-Shape* Shape::create_put_transition(const StringOrSymbol& property_name, PropertyAttributes attributes)
+Shape* Shape::create_put_transition(const StringOrSymbol& property_key, PropertyAttributes attributes)
{
- TransitionKey key { property_name, attributes };
+ TransitionKey key { property_key, attributes };
if (auto* existing_shape = get_or_prune_cached_forward_transition(key))
return existing_shape;
- auto* new_shape = heap().allocate_without_global_object<Shape>(*this, property_name, attributes, TransitionType::Put);
+ auto* new_shape = heap().allocate_without_global_object<Shape>(*this, property_key, attributes, TransitionType::Put);
if (!m_forward_transitions)
m_forward_transitions = make<HashMap<TransitionKey, WeakPtr<Shape>>>();
m_forward_transitions->set(key, new_shape);
return new_shape;
}
-Shape* Shape::create_configure_transition(const StringOrSymbol& property_name, PropertyAttributes attributes)
+Shape* Shape::create_configure_transition(const StringOrSymbol& property_key, PropertyAttributes attributes)
{
- TransitionKey key { property_name, attributes };
+ TransitionKey key { property_key, attributes };
if (auto* existing_shape = get_or_prune_cached_forward_transition(key))
return existing_shape;
- auto* new_shape = heap().allocate_without_global_object<Shape>(*this, property_name, attributes, TransitionType::Configure);
+ auto* new_shape = heap().allocate_without_global_object<Shape>(*this, property_key, attributes, TransitionType::Configure);
if (!m_forward_transitions)
m_forward_transitions = make<HashMap<TransitionKey, WeakPtr<Shape>>>();
m_forward_transitions->set(key, new_shape);
@@ -97,10 +97,10 @@ Shape::Shape(Object& global_object)
{
}
-Shape::Shape(Shape& previous_shape, const StringOrSymbol& property_name, PropertyAttributes attributes, TransitionType transition_type)
+Shape::Shape(Shape& previous_shape, const StringOrSymbol& property_key, PropertyAttributes attributes, TransitionType transition_type)
: m_global_object(previous_shape.m_global_object)
, m_previous(&previous_shape)
- , m_property_name(property_name)
+ , m_property_key(property_key)
, m_prototype(previous_shape.m_prototype)
, m_property_count(transition_type == TransitionType::Put ? previous_shape.m_property_count + 1 : previous_shape.m_property_count)
, m_attributes(attributes)
@@ -127,18 +127,18 @@ void Shape::visit_edges(Cell::Visitor& visitor)
visitor.visit(m_global_object);
visitor.visit(m_prototype);
visitor.visit(m_previous);
- m_property_name.visit_edges(visitor);
+ m_property_key.visit_edges(visitor);
if (m_property_table) {
for (auto& it : *m_property_table)
it.key.visit_edges(visitor);
}
}
-Optional<PropertyMetadata> Shape::lookup(const StringOrSymbol& property_name) const
+Optional<PropertyMetadata> Shape::lookup(const StringOrSymbol& property_key) const
{
if (m_property_count == 0)
return {};
- auto property = property_table().get(property_name);
+ auto property = property_table().get(property_key);
if (!property.has_value())
return {};
return property;
@@ -183,46 +183,46 @@ void Shape::ensure_property_table() const
for (ssize_t i = transition_chain.size() - 1; i >= 0; --i) {
auto* shape = transition_chain[i];
- if (!shape->m_property_name.is_valid()) {
+ if (!shape->m_property_key.is_valid()) {
// Ignore prototype transitions as they don't affect the key map.
continue;
}
if (shape->m_transition_type == TransitionType::Put) {
- m_property_table->set(shape->m_property_name, { next_offset++, shape->m_attributes });
+ m_property_table->set(shape->m_property_key, { next_offset++, shape->m_attributes });
} else if (shape->m_transition_type == TransitionType::Configure) {
- auto it = m_property_table->find(shape->m_property_name);
+ auto it = m_property_table->find(shape->m_property_key);
VERIFY(it != m_property_table->end());
it->value.attributes = shape->m_attributes;
}
}
}
-void Shape::add_property_to_unique_shape(const StringOrSymbol& property_name, PropertyAttributes attributes)
+void Shape::add_property_to_unique_shape(const StringOrSymbol& property_key, PropertyAttributes attributes)
{
VERIFY(is_unique());
VERIFY(m_property_table);
- VERIFY(!m_property_table->contains(property_name));
- m_property_table->set(property_name, { static_cast<u32>(m_property_table->size()), attributes });
+ VERIFY(!m_property_table->contains(property_key));
+ m_property_table->set(property_key, { static_cast<u32>(m_property_table->size()), attributes });
VERIFY(m_property_count < NumericLimits<u32>::max());
++m_property_count;
}
-void Shape::reconfigure_property_in_unique_shape(const StringOrSymbol& property_name, PropertyAttributes attributes)
+void Shape::reconfigure_property_in_unique_shape(const StringOrSymbol& property_key, PropertyAttributes attributes)
{
VERIFY(is_unique());
VERIFY(m_property_table);
- auto it = m_property_table->find(property_name);
+ auto it = m_property_table->find(property_key);
VERIFY(it != m_property_table->end());
it->value.attributes = attributes;
- m_property_table->set(property_name, it->value);
+ m_property_table->set(property_key, it->value);
}
-void Shape::remove_property_from_unique_shape(const StringOrSymbol& property_name, size_t offset)
+void Shape::remove_property_from_unique_shape(const StringOrSymbol& property_key, size_t offset)
{
VERIFY(is_unique());
VERIFY(m_property_table);
- if (m_property_table->remove(property_name))
+ if (m_property_table->remove(property_key))
--m_property_count;
for (auto& it : *m_property_table) {
VERIFY(it.value.offset != offset);
@@ -231,20 +231,20 @@ void Shape::remove_property_from_unique_shape(const StringOrSymbol& property_nam
}
}
-void Shape::add_property_without_transition(StringOrSymbol const& property_name, PropertyAttributes attributes)
+void Shape::add_property_without_transition(StringOrSymbol const& property_key, PropertyAttributes attributes)
{
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
ensure_property_table();
- if (m_property_table->set(property_name, { m_property_count, attributes }) == AK::HashSetResult::InsertedNewEntry) {
+ if (m_property_table->set(property_key, { m_property_count, attributes }) == AK::HashSetResult::InsertedNewEntry) {
VERIFY(m_property_count < NumericLimits<u32>::max());
++m_property_count;
}
}
-FLATTEN void Shape::add_property_without_transition(PropertyKey const& property_name, PropertyAttributes attributes)
+FLATTEN void Shape::add_property_without_transition(PropertyKey const& property_key, PropertyAttributes attributes)
{
- VERIFY(property_name.is_valid());
- add_property_without_transition(property_name.to_string_or_symbol(), attributes);
+ VERIFY(property_key.is_valid());
+ add_property_without_transition(property_key.to_string_or_symbol(), attributes);
}
}
diff --git a/Userland/Libraries/LibJS/Runtime/Shape.h b/Userland/Libraries/LibJS/Runtime/Shape.h
index 4691e33070..6c6a307001 100644
--- a/Userland/Libraries/LibJS/Runtime/Shape.h
+++ b/Userland/Libraries/LibJS/Runtime/Shape.h
@@ -24,12 +24,12 @@ struct PropertyMetadata {
};
struct TransitionKey {
- StringOrSymbol property_name;
+ StringOrSymbol property_key;
PropertyAttributes attributes { 0 };
bool operator==(const TransitionKey& other) const
{
- return property_name == other.property_name && attributes == other.attributes;
+ return property_key == other.property_key && attributes == other.attributes;
}
};
@@ -50,7 +50,7 @@ public:
explicit Shape(ShapeWithoutGlobalObjectTag);
explicit Shape(Object& global_object);
- Shape(Shape& previous_shape, const StringOrSymbol& property_name, PropertyAttributes attributes, TransitionType);
+ Shape(Shape& previous_shape, const StringOrSymbol& property_key, PropertyAttributes attributes, TransitionType);
Shape(Shape& previous_shape, Object* new_prototype);
Shape* create_put_transition(const StringOrSymbol&, PropertyAttributes attributes);
@@ -83,7 +83,7 @@ public:
void remove_property_from_unique_shape(const StringOrSymbol&, size_t offset);
void add_property_to_unique_shape(const StringOrSymbol&, PropertyAttributes attributes);
- void reconfigure_property_in_unique_shape(const StringOrSymbol& property_name, PropertyAttributes attributes);
+ void reconfigure_property_in_unique_shape(const StringOrSymbol& property_key, PropertyAttributes attributes);
private:
virtual const char* class_name() const override { return "Shape"; }
@@ -101,7 +101,7 @@ private:
OwnPtr<HashMap<TransitionKey, WeakPtr<Shape>>> m_forward_transitions;
OwnPtr<HashMap<Object*, WeakPtr<Shape>>> m_prototype_transitions;
Shape* m_previous { nullptr };
- StringOrSymbol m_property_name;
+ StringOrSymbol m_property_key;
Object* m_prototype { nullptr };
u32 m_property_count { 0 };
@@ -116,6 +116,6 @@ template<>
struct AK::Traits<JS::TransitionKey> : public GenericTraits<JS::TransitionKey> {
static unsigned hash(const JS::TransitionKey& key)
{
- return pair_int_hash(key.attributes.bits(), Traits<JS::StringOrSymbol>::hash(key.property_name));
+ return pair_int_hash(key.attributes.bits(), Traits<JS::StringOrSymbol>::hash(key.property_key));
}
};
diff --git a/Userland/Libraries/LibJS/Runtime/StringObject.cpp b/Userland/Libraries/LibJS/Runtime/StringObject.cpp
index c89d487e8c..9a66161633 100644
--- a/Userland/Libraries/LibJS/Runtime/StringObject.cpp
+++ b/Userland/Libraries/LibJS/Runtime/StringObject.cpp
@@ -44,20 +44,20 @@ void StringObject::visit_edges(Cell::Visitor& visitor)
}
// 10.4.3.5 StringGetOwnProperty ( S, P ), https://tc39.es/ecma262/#sec-stringgetownproperty
-static Optional<PropertyDescriptor> string_get_own_property(GlobalObject& global_object, StringObject const& string, PropertyKey const& property_name)
+static Optional<PropertyDescriptor> string_get_own_property(GlobalObject& global_object, StringObject const& string, PropertyKey const& property_key)
{
// 1. Assert: S is an Object that has a [[StringData]] internal slot.
// 2. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 3. If Type(P) is not String, return undefined.
// NOTE: The spec only uses string and symbol keys, and later coerces to numbers -
- // this is not the case for PropertyKey, so '!property_name.is_string()' would be wrong.
- if (property_name.is_symbol())
+ // this is not the case for PropertyKey, so '!property_key.is_string()' would be wrong.
+ if (property_key.is_symbol())
return {};
// 4. Let index be ! CanonicalNumericIndexString(P).
- auto index = canonical_numeric_index_string(global_object, property_name);
+ auto index = canonical_numeric_index_string(global_object, property_key);
// 5. If index is undefined, return undefined.
if (index.is_undefined())
return {};
@@ -92,29 +92,29 @@ static Optional<PropertyDescriptor> string_get_own_property(GlobalObject& global
}
// 10.4.3.1 [[GetOwnProperty]] ( P ), https://tc39.es/ecma262/#sec-string-exotic-objects-getownproperty-p
-ThrowCompletionOr<Optional<PropertyDescriptor>> StringObject::internal_get_own_property(PropertyKey const& property_name) const
+ThrowCompletionOr<Optional<PropertyDescriptor>> StringObject::internal_get_own_property(PropertyKey const& property_key) const
{
// Assert: IsPropertyKey(P) is true.
// 2. Let desc be OrdinaryGetOwnProperty(S, P).
- auto descriptor = MUST(Object::internal_get_own_property(property_name));
+ auto descriptor = MUST(Object::internal_get_own_property(property_key));
// 3. If desc is not undefined, return desc.
if (descriptor.has_value())
return descriptor;
// 4. Return ! StringGetOwnProperty(S, P).
- return string_get_own_property(global_object(), *this, property_name);
+ return string_get_own_property(global_object(), *this, property_key);
}
// 10.4.3.2 [[DefineOwnProperty]] ( P, Desc ), https://tc39.es/ecma262/#sec-string-exotic-objects-defineownproperty-p-desc
-ThrowCompletionOr<bool> StringObject::internal_define_own_property(PropertyKey const& property_name, PropertyDescriptor const& property_descriptor)
+ThrowCompletionOr<bool> StringObject::internal_define_own_property(PropertyKey const& property_key, PropertyDescriptor const& property_descriptor)
{
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Let stringDesc be ! StringGetOwnProperty(S, P).
- auto string_descriptor = string_get_own_property(global_object(), *this, property_name);
+ auto string_descriptor = string_get_own_property(global_object(), *this, property_key);
// 3. If stringDesc is not undefined, then
if (string_descriptor.has_value()) {
@@ -126,7 +126,7 @@ ThrowCompletionOr<bool> StringObject::internal_define_own_property(PropertyKey c
}
// 4. Return ! OrdinaryDefineOwnProperty(S, P, Desc).
- return Object::internal_define_own_property(property_name, property_descriptor);
+ return Object::internal_define_own_property(property_key, property_descriptor);
}
// 10.4.3.3 [[OwnPropertyKeys]] ( ), https://tc39.es/ecma262/#sec-string-exotic-objects-ownpropertykeys
diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp
index 71bfdfcb06..c9b7955f94 100644
--- a/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp
@@ -993,15 +993,15 @@ ThrowCompletionOr<Object*> default_merge_fields(GlobalObject& global_object, Obj
for (auto& next_key : original_keys) {
// a. If nextKey is not "month" or "monthCode", then
if (next_key.as_string().string() != vm.names.month.as_string() && next_key.as_string().string() != vm.names.monthCode.as_string()) {
- auto property_name = MUST(PropertyKey::from_value(global_object, next_key));
+ auto property_key = MUST(PropertyKey::from_value(global_object, next_key));
// i. Let propValue be ? Get(fields, nextKey).
- auto prop_value = TRY(fields.get(property_name));
+ auto prop_value = TRY(fields.get(property_key));
// ii. If propValue is not undefined, then
if (!prop_value.is_undefined()) {
// 1. Perform ! CreateDataPropertyOrThrow(merged, nextKey, propValue).
- MUST(merged->create_data_property_or_throw(property_name, prop_value));
+ MUST(merged->create_data_property_or_throw(property_key, prop_value));
}
}
}
@@ -1014,15 +1014,15 @@ ThrowCompletionOr<Object*> default_merge_fields(GlobalObject& global_object, Obj
// 5. For each element nextKey of newKeys, do
for (auto& next_key : new_keys) {
- auto property_name = MUST(PropertyKey::from_value(global_object, next_key));
+ auto property_key = MUST(PropertyKey::from_value(global_object, next_key));
// a. Let propValue be ? Get(additionalFields, nextKey).
- auto prop_value = TRY(additional_fields.get(property_name));
+ auto prop_value = TRY(additional_fields.get(property_key));
// b. If propValue is not undefined, then
if (!prop_value.is_undefined()) {
// i. Perform ! CreateDataPropertyOrThrow(merged, nextKey, propValue).
- MUST(merged->create_data_property_or_throw(property_name, prop_value));
+ MUST(merged->create_data_property_or_throw(property_key, prop_value));
}
// See comment above.
diff --git a/Userland/Libraries/LibJS/Runtime/TypedArray.h b/Userland/Libraries/LibJS/Runtime/TypedArray.h
index ca17b24128..7cf6c9abc8 100644
--- a/Userland/Libraries/LibJS/Runtime/TypedArray.h
+++ b/Userland/Libraries/LibJS/Runtime/TypedArray.h
@@ -183,10 +183,10 @@ class TypedArray : public TypedArrayBase {
public:
// 10.4.5.1 [[GetOwnProperty]] ( P ), https://tc39.es/ecma262/#sec-integer-indexed-exotic-objects-getownproperty-p
- virtual ThrowCompletionOr<Optional<PropertyDescriptor>> internal_get_own_property(PropertyKey const& property_name) const override
+ virtual ThrowCompletionOr<Optional<PropertyDescriptor>> internal_get_own_property(PropertyKey const& property_key) const override
{
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Assert: O is an Integer-Indexed exotic object.
@@ -196,9 +196,9 @@ public:
// 3. If Type(P) is String, then
// NOTE: This includes an implementation-defined optimization, see note above!
- if (property_name.is_string() || property_name.is_number()) {
+ if (property_key.is_string() || property_key.is_number()) {
// a. Let numericIndex be ! CanonicalNumericIndexString(P).
- auto numeric_index = canonical_numeric_index_string(global_object(), property_name);
+ auto numeric_index = canonical_numeric_index_string(global_object(), property_key);
// b. If numericIndex is not undefined, then
if (!numeric_index.is_undefined()) {
// i. Let value be ! IntegerIndexedElementGet(O, numericIndex).
@@ -219,14 +219,14 @@ public:
}
// 4. Return OrdinaryGetOwnProperty(O, P).
- return Object::internal_get_own_property(property_name);
+ return Object::internal_get_own_property(property_key);
}
// 10.4.5.2 [[HasProperty]] ( P ), https://tc39.es/ecma262/#sec-integer-indexed-exotic-objects-hasproperty-p
- virtual ThrowCompletionOr<bool> internal_has_property(PropertyKey const& property_name) const override
+ virtual ThrowCompletionOr<bool> internal_has_property(PropertyKey const& property_key) const override
{
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Assert: O is an Integer-Indexed exotic object.
@@ -236,23 +236,23 @@ public:
// 3. If Type(P) is String, then
// NOTE: This includes an implementation-defined optimization, see note above!
- if (property_name.is_string() || property_name.is_number()) {
+ if (property_key.is_string() || property_key.is_number()) {
// a. Let numericIndex be ! CanonicalNumericIndexString(P).
- auto numeric_index = canonical_numeric_index_string(global_object(), property_name);
+ auto numeric_index = canonical_numeric_index_string(global_object(), property_key);
// b. If numericIndex is not undefined, return ! IsValidIntegerIndex(O, numericIndex).
if (!numeric_index.is_undefined())
return is_valid_integer_index(*this, numeric_index);
}
// 4. Return ? OrdinaryHasProperty(O, P).
- return Object::internal_has_property(property_name);
+ return Object::internal_has_property(property_key);
}
// 10.4.5.3 [[DefineOwnProperty]] ( P, Desc ), https://tc39.es/ecma262/#sec-integer-indexed-exotic-objects-defineownproperty-p-desc
- virtual ThrowCompletionOr<bool> internal_define_own_property(PropertyKey const& property_name, PropertyDescriptor const& property_descriptor) override
+ virtual ThrowCompletionOr<bool> internal_define_own_property(PropertyKey const& property_key, PropertyDescriptor const& property_descriptor) override
{
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Assert: O is an Integer-Indexed exotic object.
@@ -262,9 +262,9 @@ public:
// 3. If Type(P) is String, then
// NOTE: This includes an implementation-defined optimization, see note above!
- if (property_name.is_string() || property_name.is_number()) {
+ if (property_key.is_string() || property_key.is_number()) {
// a. Let numericIndex be ! CanonicalNumericIndexString(P).
- auto numeric_index = canonical_numeric_index_string(global_object(), property_name);
+ auto numeric_index = canonical_numeric_index_string(global_object(), property_key);
// b. If numericIndex is not undefined, then
if (!numeric_index.is_undefined()) {
// i. If ! IsValidIntegerIndex(O, numericIndex) is false, return false.
@@ -297,25 +297,25 @@ public:
}
// 4. Return ! OrdinaryDefineOwnProperty(O, P, Desc).
- return Object::internal_define_own_property(property_name, property_descriptor);
+ return Object::internal_define_own_property(property_key, property_descriptor);
}
// 10.4.5.4 [[Get]] ( P, Receiver ), 10.4.5.4 [[Get]] ( P, Receiver )
- virtual ThrowCompletionOr<Value> internal_get(PropertyKey const& property_name, Value receiver) const override
+ virtual ThrowCompletionOr<Value> internal_get(PropertyKey const& property_key, Value receiver) const override
{
VERIFY(!receiver.is_empty());
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// NOTE: If the property name is a number type (An implementation-defined optimized
// property key type), it can be treated as a string property that will transparently be
// converted into a canonical numeric index.
// 2. If Type(P) is String, then
// NOTE: This includes an implementation-defined optimization, see note above!
- if (property_name.is_string() || property_name.is_number()) {
+ if (property_key.is_string() || property_key.is_number()) {
// a. Let numericIndex be ! CanonicalNumericIndexString(P).
- auto numeric_index = canonical_numeric_index_string(global_object(), property_name);
+ auto numeric_index = canonical_numeric_index_string(global_object(), property_key);
// b. If numericIndex is not undefined, then
if (!numeric_index.is_undefined()) {
// i. Return ! IntegerIndexedElementGet(O, numericIndex).
@@ -324,26 +324,26 @@ public:
}
// 3. Return ? OrdinaryGet(O, P, Receiver).
- return Object::internal_get(property_name, receiver);
+ return Object::internal_get(property_key, receiver);
}
// 10.4.5.5 [[Set]] ( P, V, Receiver ), https://tc39.es/ecma262/#sec-integer-indexed-exotic-objects-set-p-v-receiver
- virtual ThrowCompletionOr<bool> internal_set(PropertyKey const& property_name, Value value, Value receiver) override
+ virtual ThrowCompletionOr<bool> internal_set(PropertyKey const& property_key, Value value, Value receiver) override
{
VERIFY(!value.is_empty());
VERIFY(!receiver.is_empty());
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// NOTE: If the property name is a number type (An implementation-defined optimized
// property key type), it can be treated as a string property that will transparently be
// converted into a canonical numeric index.
// 2. If Type(P) is String, then
// NOTE: This includes an implementation-defined optimization, see note above!
- if (property_name.is_string() || property_name.is_number()) {
+ if (property_key.is_string() || property_key.is_number()) {
// a. Let numericIndex be ! CanonicalNumericIndexString(P).
- auto numeric_index = canonical_numeric_index_string(global_object(), property_name);
+ auto numeric_index = canonical_numeric_index_string(global_object(), property_key);
// b. If numericIndex is not undefined, then
if (!numeric_index.is_undefined()) {
// i. Perform ? IntegerIndexedElementSet(O, numericIndex, V).
@@ -355,14 +355,14 @@ public:
}
// 3. Return ? OrdinarySet(O, P, V, Receiver).
- return Object::internal_set(property_name, value, receiver);
+ return Object::internal_set(property_key, value, receiver);
}
// 10.4.5.6 [[Delete]] ( P ), https://tc39.es/ecma262/#sec-integer-indexed-exotic-objects-delete-p
- virtual ThrowCompletionOr<bool> internal_delete(PropertyKey const& property_name) override
+ virtual ThrowCompletionOr<bool> internal_delete(PropertyKey const& property_key) override
{
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Assert: O is an Integer-Indexed exotic object.
// NOTE: If the property name is a number type (An implementation-defined optimized
@@ -371,9 +371,9 @@ public:
// 3. If Type(P) is String, then
// NOTE: This includes an implementation-defined optimization, see note above!
- if (property_name.is_string() || property_name.is_number()) {
+ if (property_key.is_string() || property_key.is_number()) {
// a. Let numericIndex be ! CanonicalNumericIndexString(P).
- auto numeric_index = canonical_numeric_index_string(global_object(), property_name);
+ auto numeric_index = canonical_numeric_index_string(global_object(), property_key);
// b. If numericIndex is not undefined, then
if (!numeric_index.is_undefined()) {
// i. If ! IsValidIntegerIndex(O, numericIndex) is false, return true; else return false.
@@ -384,7 +384,7 @@ public:
}
// 4. Return ? OrdinaryDelete(O, P).
- return Object::internal_delete(property_name);
+ return Object::internal_delete(property_key);
}
// 10.4.5.7 [[OwnPropertyKeys]] ( ), https://tc39.es/ecma262/#sec-integer-indexed-exotic-objects-ownpropertykeys
diff --git a/Userland/Libraries/LibJS/Runtime/Value.cpp b/Userland/Libraries/LibJS/Runtime/Value.cpp
index 1b14175e07..65fb415552 100644
--- a/Userland/Libraries/LibJS/Runtime/Value.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Value.cpp
@@ -804,28 +804,28 @@ ThrowCompletionOr<double> Value::to_integer_or_infinity(GlobalObject& global_obj
}
// 7.3.3 GetV ( V, P ), https://tc39.es/ecma262/#sec-getv
-ThrowCompletionOr<Value> Value::get(GlobalObject& global_object, PropertyKey const& property_name) const
+ThrowCompletionOr<Value> Value::get(GlobalObject& global_object, PropertyKey const& property_key) const
{
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Let O be ? ToObject(V).
auto* object = TRY(to_object(global_object));
// 3. Return ? O.[[Get]](P, V).
- return TRY(object->internal_get(property_name, *this));
+ return TRY(object->internal_get(property_key, *this));
}
// 7.3.11 GetMethod ( V, P ), https://tc39.es/ecma262/#sec-getmethod
-ThrowCompletionOr<FunctionObject*> Value::get_method(GlobalObject& global_object, PropertyKey const& property_name) const
+ThrowCompletionOr<FunctionObject*> Value::get_method(GlobalObject& global_object, PropertyKey const& property_key) const
{
auto& vm = global_object.vm();
// 1. Assert: IsPropertyKey(P) is true.
- VERIFY(property_name.is_valid());
+ VERIFY(property_key.is_valid());
// 2. Let func be ? GetV(V, P).
- auto function = TRY(get(global_object, property_name));
+ auto function = TRY(get(global_object, property_key));
// 3. If func is either undefined or null, return undefined.
if (function.is_nullish())
@@ -1569,10 +1569,10 @@ ThrowCompletionOr<TriState> is_less_than(GlobalObject& global_object, bool left_
}
// 7.3.21 Invoke ( V, P [ , argumentsList ] ), https://tc39.es/ecma262/#sec-invoke
-ThrowCompletionOr<Value> Value::invoke_internal(GlobalObject& global_object, JS::PropertyKey const& property_name, Optional<MarkedValueList> arguments)
+ThrowCompletionOr<Value> Value::invoke_internal(GlobalObject& global_object, JS::PropertyKey const& property_key, Optional<MarkedValueList> arguments)
{
auto& vm = global_object.vm();
- auto property = TRY(get(global_object, property_name));
+ auto property = TRY(get(global_object, property_key));
if (!property.is_function())
return vm.throw_completion<TypeError>(global_object, ErrorType::NotAFunction, property.to_string_without_side_effects());
diff --git a/Userland/Libraries/LibJS/Runtime/Value.h b/Userland/Libraries/LibJS/Runtime/Value.h
index 96ad0b1a94..0f4ae1af1f 100644
--- a/Userland/Libraries/LibJS/Runtime/Value.h
+++ b/Userland/Libraries/LibJS/Runtime/Value.h
@@ -347,7 +347,7 @@ public:
bool operator==(Value const&) const;
template<typename... Args>
- [[nodiscard]] ALWAYS_INLINE ThrowCompletionOr<Value> invoke(GlobalObject& global_object, PropertyKey const& property_name, Args... args);
+ [[nodiscard]] ALWAYS_INLINE ThrowCompletionOr<Value> invoke(GlobalObject& global_object, PropertyKey const& property_key, Args... args);
private:
Type m_type { Type::Empty };