mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 19:27:44 +00:00
LibJS: Convert SymbolPrototype functions to ThrowCompletionOr
This commit is contained in:
parent
294f244745
commit
7c96ed8cf3
2 changed files with 16 additions and 16 deletions
|
@ -28,10 +28,10 @@ void SymbolPrototype::initialize(GlobalObject& global_object)
|
|||
auto& vm = this->vm();
|
||||
Object::initialize(global_object);
|
||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||
define_old_native_function(vm.names.toString, to_string, 0, attr);
|
||||
define_old_native_function(vm.names.valueOf, value_of, 0, attr);
|
||||
define_old_native_accessor(vm.names.description, description_getter, {}, Attribute::Configurable);
|
||||
define_old_native_function(*vm.well_known_symbol_to_primitive(), symbol_to_primitive, 1, Attribute::Configurable);
|
||||
define_native_function(vm.names.toString, to_string, 0, attr);
|
||||
define_native_function(vm.names.valueOf, value_of, 0, attr);
|
||||
define_native_accessor(vm.names.description, description_getter, {}, Attribute::Configurable);
|
||||
define_native_function(*vm.well_known_symbol_to_primitive(), symbol_to_primitive, 1, Attribute::Configurable);
|
||||
|
||||
// 20.4.3.6 Symbol.prototype [ @@toStringTag ], https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag
|
||||
define_direct_property(*vm.well_known_symbol_to_string_tag(), js_string(global_object.heap(), "Symbol"), Attribute::Configurable);
|
||||
|
@ -53,9 +53,9 @@ static ThrowCompletionOr<Symbol*> this_symbol_value(GlobalObject& global_object,
|
|||
}
|
||||
|
||||
// 20.4.3.2 get Symbol.prototype.description, https://tc39.es/ecma262/#sec-symbol.prototype.description
|
||||
JS_DEFINE_OLD_NATIVE_FUNCTION(SymbolPrototype::description_getter)
|
||||
JS_DEFINE_NATIVE_FUNCTION(SymbolPrototype::description_getter)
|
||||
{
|
||||
auto* symbol = TRY_OR_DISCARD(this_symbol_value(global_object, vm.this_value(global_object)));
|
||||
auto* symbol = TRY(this_symbol_value(global_object, vm.this_value(global_object)));
|
||||
auto& description = symbol->raw_description();
|
||||
if (!description.has_value())
|
||||
return js_undefined();
|
||||
|
@ -63,23 +63,23 @@ JS_DEFINE_OLD_NATIVE_FUNCTION(SymbolPrototype::description_getter)
|
|||
}
|
||||
|
||||
// 20.4.3.3 Symbol.prototype.toString ( ), https://tc39.es/ecma262/#sec-symbol.prototype.tostring
|
||||
JS_DEFINE_OLD_NATIVE_FUNCTION(SymbolPrototype::to_string)
|
||||
JS_DEFINE_NATIVE_FUNCTION(SymbolPrototype::to_string)
|
||||
{
|
||||
auto* symbol = TRY_OR_DISCARD(this_symbol_value(global_object, vm.this_value(global_object)));
|
||||
auto* symbol = TRY(this_symbol_value(global_object, vm.this_value(global_object)));
|
||||
return js_string(vm, symbol->to_string());
|
||||
}
|
||||
|
||||
// 20.4.3.4 Symbol.prototype.valueOf ( ), https://tc39.es/ecma262/#sec-symbol.prototype.valueof
|
||||
JS_DEFINE_OLD_NATIVE_FUNCTION(SymbolPrototype::value_of)
|
||||
JS_DEFINE_NATIVE_FUNCTION(SymbolPrototype::value_of)
|
||||
{
|
||||
return TRY_OR_DISCARD(this_symbol_value(global_object, vm.this_value(global_object)));
|
||||
return TRY(this_symbol_value(global_object, vm.this_value(global_object)));
|
||||
}
|
||||
|
||||
// 20.4.3.5 Symbol.prototype [ @@toPrimitive ] ( hint ), https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive
|
||||
JS_DEFINE_OLD_NATIVE_FUNCTION(SymbolPrototype::symbol_to_primitive)
|
||||
JS_DEFINE_NATIVE_FUNCTION(SymbolPrototype::symbol_to_primitive)
|
||||
{
|
||||
// The hint argument is ignored.
|
||||
return TRY_OR_DISCARD(this_symbol_value(global_object, vm.this_value(global_object)));
|
||||
return TRY(this_symbol_value(global_object, vm.this_value(global_object)));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -19,11 +19,11 @@ public:
|
|||
virtual ~SymbolPrototype() override;
|
||||
|
||||
private:
|
||||
JS_DECLARE_OLD_NATIVE_FUNCTION(description_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(description_getter);
|
||||
|
||||
JS_DECLARE_OLD_NATIVE_FUNCTION(to_string);
|
||||
JS_DECLARE_OLD_NATIVE_FUNCTION(value_of);
|
||||
JS_DECLARE_OLD_NATIVE_FUNCTION(symbol_to_primitive);
|
||||
JS_DECLARE_NATIVE_FUNCTION(to_string);
|
||||
JS_DECLARE_NATIVE_FUNCTION(value_of);
|
||||
JS_DECLARE_NATIVE_FUNCTION(symbol_to_primitive);
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue