mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 15:57:45 +00:00
LibJS+LibWeb: Convert empty PrimitiveString instances to String
This commit is contained in:
parent
e99a4ba7c8
commit
49e8dcf0b2
9 changed files with 26 additions and 26 deletions
|
@ -622,7 +622,7 @@ ThrowCompletionOr<MarkedVector<Value>> ConsoleClient::formatter(MarkedVector<Val
|
||||||
else if (specifier == "%c"sv) {
|
else if (specifier == "%c"sv) {
|
||||||
// NOTE: This has no spec yet. `%c` specifiers treat the argument as CSS styling for the log message.
|
// NOTE: This has no spec yet. `%c` specifiers treat the argument as CSS styling for the log message.
|
||||||
add_css_style_to_current_message(TRY(current.to_deprecated_string(vm)));
|
add_css_style_to_current_message(TRY(current.to_deprecated_string(vm)));
|
||||||
converted = PrimitiveString::create(vm, "");
|
converted = PrimitiveString::create(vm, String {});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 7. If any of the previous steps set converted, replace specifier in target with converted.
|
// 7. If any of the previous steps set converted, replace specifier in target with converted.
|
||||||
|
|
|
@ -21,7 +21,7 @@ ThrowCompletionOr<void> AggregateErrorPrototype::initialize(Realm& realm)
|
||||||
MUST_OR_THROW_OOM(Base::initialize(realm));
|
MUST_OR_THROW_OOM(Base::initialize(realm));
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
define_direct_property(vm.names.name, PrimitiveString::create(vm, "AggregateError"), attr);
|
define_direct_property(vm.names.name, PrimitiveString::create(vm, "AggregateError"), attr);
|
||||||
define_direct_property(vm.names.message, PrimitiveString::create(vm, ""), attr);
|
define_direct_property(vm.names.message, PrimitiveString::create(vm, String {}), attr);
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
|
@ -993,7 +993,7 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::join)
|
||||||
// FWIW: engine262, a "100% spec compliant" ECMA-262 impl, aborts with "too much recursion".
|
// FWIW: engine262, a "100% spec compliant" ECMA-262 impl, aborts with "too much recursion".
|
||||||
// Same applies to Array.prototype.toLocaleString().
|
// Same applies to Array.prototype.toLocaleString().
|
||||||
if (s_array_join_seen_objects.contains(this_object))
|
if (s_array_join_seen_objects.contains(this_object))
|
||||||
return PrimitiveString::create(vm, "");
|
return PrimitiveString::create(vm, String {});
|
||||||
s_array_join_seen_objects.set(this_object);
|
s_array_join_seen_objects.set(this_object);
|
||||||
ArmedScopeGuard unsee_object_guard = [&] {
|
ArmedScopeGuard unsee_object_guard = [&] {
|
||||||
s_array_join_seen_objects.remove(this_object);
|
s_array_join_seen_objects.remove(this_object);
|
||||||
|
@ -1704,7 +1704,7 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::to_locale_string)
|
||||||
auto* this_object = TRY(vm.this_value().to_object(vm));
|
auto* this_object = TRY(vm.this_value().to_object(vm));
|
||||||
|
|
||||||
if (s_array_join_seen_objects.contains(this_object))
|
if (s_array_join_seen_objects.contains(this_object))
|
||||||
return PrimitiveString::create(vm, "");
|
return PrimitiveString::create(vm, String {});
|
||||||
s_array_join_seen_objects.set(this_object);
|
s_array_join_seen_objects.set(this_object);
|
||||||
ArmedScopeGuard unsee_object_guard = [&] {
|
ArmedScopeGuard unsee_object_guard = [&] {
|
||||||
s_array_join_seen_objects.remove(this_object);
|
s_array_join_seen_objects.remove(this_object);
|
||||||
|
|
|
@ -25,7 +25,7 @@ ThrowCompletionOr<void> ErrorPrototype::initialize(Realm& realm)
|
||||||
MUST_OR_THROW_OOM(Base::initialize(realm));
|
MUST_OR_THROW_OOM(Base::initialize(realm));
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
define_direct_property(vm.names.name, PrimitiveString::create(vm, "Error"), attr);
|
define_direct_property(vm.names.name, PrimitiveString::create(vm, "Error"), attr);
|
||||||
define_direct_property(vm.names.message, PrimitiveString::create(vm, ""), attr);
|
define_direct_property(vm.names.message, PrimitiveString::create(vm, String {}), attr);
|
||||||
define_native_function(realm, vm.names.toString, to_string, 0, attr);
|
define_native_function(realm, vm.names.toString, to_string, 0, attr);
|
||||||
// Non standard property "stack"
|
// Non standard property "stack"
|
||||||
// Every other engine seems to have this in some way or another, and the spec
|
// Every other engine seems to have this in some way or another, and the spec
|
||||||
|
@ -124,21 +124,21 @@ JS_DEFINE_NATIVE_FUNCTION(ErrorPrototype::stack_setter)
|
||||||
return TRY(this_object.create_data_property_or_throw(vm.names.stack, vm.argument(0)));
|
return TRY(this_object.create_data_property_or_throw(vm.names.stack, vm.argument(0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
#define __JS_ENUMERATE(ClassName, snake_name, PrototypeName, ConstructorName, ArrayType) \
|
#define __JS_ENUMERATE(ClassName, snake_name, PrototypeName, ConstructorName, ArrayType) \
|
||||||
PrototypeName::PrototypeName(Realm& realm) \
|
PrototypeName::PrototypeName(Realm& realm) \
|
||||||
: PrototypeObject(*realm.intrinsics().error_prototype()) \
|
: PrototypeObject(*realm.intrinsics().error_prototype()) \
|
||||||
{ \
|
{ \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
ThrowCompletionOr<void> PrototypeName::initialize(Realm& realm) \
|
ThrowCompletionOr<void> PrototypeName::initialize(Realm& realm) \
|
||||||
{ \
|
{ \
|
||||||
auto& vm = this->vm(); \
|
auto& vm = this->vm(); \
|
||||||
MUST_OR_THROW_OOM(Base::initialize(realm)); \
|
MUST_OR_THROW_OOM(Base::initialize(realm)); \
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable; \
|
u8 attr = Attribute::Writable | Attribute::Configurable; \
|
||||||
define_direct_property(vm.names.name, PrimitiveString::create(vm, #ClassName), attr); \
|
define_direct_property(vm.names.name, PrimitiveString::create(vm, #ClassName), attr); \
|
||||||
define_direct_property(vm.names.message, PrimitiveString::create(vm, ""), attr); \
|
define_direct_property(vm.names.message, PrimitiveString::create(vm, String {}), attr); \
|
||||||
\
|
\
|
||||||
return {}; \
|
return {}; \
|
||||||
}
|
}
|
||||||
|
|
||||||
JS_ENUMERATE_NATIVE_ERRORS
|
JS_ENUMERATE_NATIVE_ERRORS
|
||||||
|
|
|
@ -36,7 +36,7 @@ ThrowCompletionOr<void> FunctionPrototype::initialize(Realm& realm)
|
||||||
define_native_function(realm, vm.names.toString, to_string, 0, attr);
|
define_native_function(realm, vm.names.toString, to_string, 0, attr);
|
||||||
define_native_function(realm, *vm.well_known_symbol_has_instance(), symbol_has_instance, 1, 0);
|
define_native_function(realm, *vm.well_known_symbol_has_instance(), symbol_has_instance, 1, 0);
|
||||||
define_direct_property(vm.names.length, Value(0), Attribute::Configurable);
|
define_direct_property(vm.names.length, Value(0), Attribute::Configurable);
|
||||||
define_direct_property(vm.names.name, PrimitiveString::create(vm, ""), Attribute::Configurable);
|
define_direct_property(vm.names.name, PrimitiveString::create(vm, String {}), Attribute::Configurable);
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
|
@ -232,7 +232,7 @@ void Intrinsics::initialize_intrinsics(Realm& realm)
|
||||||
},
|
},
|
||||||
0, "", &realm);
|
0, "", &realm);
|
||||||
m_throw_type_error_function->define_direct_property(vm.names.length, Value(0), 0);
|
m_throw_type_error_function->define_direct_property(vm.names.length, Value(0), 0);
|
||||||
m_throw_type_error_function->define_direct_property(vm.names.name, PrimitiveString::create(vm, ""), 0);
|
m_throw_type_error_function->define_direct_property(vm.names.name, PrimitiveString::create(vm, String {}), 0);
|
||||||
MUST(m_throw_type_error_function->internal_prevent_extensions());
|
MUST(m_throw_type_error_function->internal_prevent_extensions());
|
||||||
|
|
||||||
initialize_constructor(vm, vm.names.Error, *m_error_constructor, m_error_prototype);
|
initialize_constructor(vm, vm.names.Error, *m_error_constructor, m_error_prototype);
|
||||||
|
|
|
@ -59,7 +59,7 @@ ThrowCompletionOr<NonnullGCPtr<Object>> StringConstructor::construct(FunctionObj
|
||||||
|
|
||||||
PrimitiveString* primitive_string;
|
PrimitiveString* primitive_string;
|
||||||
if (!vm.argument_count())
|
if (!vm.argument_count())
|
||||||
primitive_string = PrimitiveString::create(vm, "");
|
primitive_string = PrimitiveString::create(vm, String {});
|
||||||
else
|
else
|
||||||
primitive_string = TRY(vm.argument(0).to_primitive_string(vm));
|
primitive_string = TRY(vm.argument(0).to_primitive_string(vm));
|
||||||
auto* prototype = TRY(get_prototype_from_constructor(vm, new_target, &Intrinsics::string_prototype));
|
auto* prototype = TRY(get_prototype_from_constructor(vm, new_target, &Intrinsics::string_prototype));
|
||||||
|
@ -75,7 +75,7 @@ JS_DEFINE_NATIVE_FUNCTION(StringConstructor::raw)
|
||||||
auto literal_segments = TRY(length_of_array_like(vm, *raw));
|
auto literal_segments = TRY(length_of_array_like(vm, *raw));
|
||||||
|
|
||||||
if (literal_segments == 0)
|
if (literal_segments == 0)
|
||||||
return PrimitiveString::create(vm, "");
|
return PrimitiveString::create(vm, String {});
|
||||||
|
|
||||||
auto const number_of_substituions = vm.argument_count() - 1;
|
auto const number_of_substituions = vm.argument_count() - 1;
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ ThrowCompletionOr<void> SuppressedErrorPrototype::initialize(Realm& realm)
|
||||||
MUST_OR_THROW_OOM(Base::initialize(realm));
|
MUST_OR_THROW_OOM(Base::initialize(realm));
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
define_direct_property(vm.names.name, PrimitiveString::create(vm, "SuppressedError"), attr);
|
define_direct_property(vm.names.name, PrimitiveString::create(vm, "SuppressedError"), attr);
|
||||||
define_direct_property(vm.names.message, PrimitiveString::create(vm, ""), attr);
|
define_direct_property(vm.names.message, PrimitiveString::create(vm, String {}), attr);
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,7 +129,7 @@ WebIDL::ExceptionOr<JS::Value> XMLHttpRequest::response()
|
||||||
if (m_response_type == Bindings::XMLHttpRequestResponseType::Empty || m_response_type == Bindings::XMLHttpRequestResponseType::Text) {
|
if (m_response_type == Bindings::XMLHttpRequestResponseType::Empty || m_response_type == Bindings::XMLHttpRequestResponseType::Text) {
|
||||||
// 1. If this’s state is not loading or done, then return the empty string.
|
// 1. If this’s state is not loading or done, then return the empty string.
|
||||||
if (m_state != State::Loading && m_state != State::Done)
|
if (m_state != State::Loading && m_state != State::Done)
|
||||||
return JS::PrimitiveString::create(vm, "");
|
return JS::PrimitiveString::create(vm, String {});
|
||||||
|
|
||||||
// 2. Return the result of getting a text response for this.
|
// 2. Return the result of getting a text response for this.
|
||||||
return JS::PrimitiveString::create(vm, get_text_response());
|
return JS::PrimitiveString::create(vm, get_text_response());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue