1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:57:35 +00:00

LibJS: Implement Symbol.toStringTag

This commit is contained in:
Matthew Olsson 2020-07-11 10:27:00 -07:00 committed by Andreas Kling
parent 5ecd504f4e
commit 43d955014d
11 changed files with 55 additions and 0 deletions

View file

@ -42,6 +42,8 @@ void ArrayIteratorPrototype::initialize(Interpreter& interpreter, GlobalObject&
{
Object::initialize(interpreter, global_object);
define_native_function("next", next, 0, Attribute::Writable | Attribute::Configurable);
define_property(interpreter.well_known_symbol_to_string_tag(), js_string(interpreter, "Array Iterator"), Attribute::Configurable);
}
ArrayIteratorPrototype::~ArrayIteratorPrototype()

View file

@ -44,6 +44,8 @@ void BigIntPrototype::initialize(Interpreter& interpreter, GlobalObject& global_
define_native_function("toString", to_string, 0, attr);
define_native_function("toLocaleString", to_locale_string, 0, attr);
define_native_function("valueOf", value_of, 0, attr);
define_property(interpreter.well_known_symbol_to_string_tag(), js_string(interpreter, "BigInt"), Attribute::Configurable);
}
BigIntPrototype::~BigIntPrototype()

View file

@ -48,6 +48,8 @@ void JSONObject::initialize(Interpreter& interpreter, GlobalObject& global_objec
u8 attr = Attribute::Writable | Attribute::Configurable;
define_native_function("stringify", stringify, 3, attr);
define_native_function("parse", parse, 2, attr);
define_property(interpreter.well_known_symbol_to_string_tag(), js_string(interpreter, "JSON"), Attribute::Configurable);
}
JSONObject::~JSONObject()

View file

@ -74,6 +74,8 @@ void MathObject::initialize(Interpreter& interpreter, GlobalObject& global_objec
define_property("PI", Value(M_PI), 0);
define_property("SQRT1_2", Value(M_SQRT1_2), 0);
define_property("SQRT2", Value(M_SQRT2), 0);
define_property(interpreter.well_known_symbol_to_string_tag(), js_string(interpreter, "Math"), Attribute::Configurable);
}
MathObject::~MathObject()

View file

@ -50,6 +50,8 @@ void SymbolPrototype::initialize(Interpreter& interpreter, GlobalObject& global_
define_native_property("description", description_getter, nullptr, Attribute::Configurable);
define_native_function("toString", to_string, 0, Attribute::Writable | Attribute::Configurable);
define_native_function("valueOf", value_of, 0, Attribute::Writable | Attribute::Configurable);
define_property(interpreter.well_known_symbol_to_string_tag(), js_string(interpreter, "Symbol"), Attribute::Configurable);
}
SymbolPrototype::~SymbolPrototype()