mirror of
https://github.com/RGBCube/serenity
synced 2025-07-10 04:17:34 +00:00
LibJS: Object::initialize() overrides must always call base class
This commit is contained in:
parent
cc5cba90db
commit
2fe4285693
26 changed files with 52 additions and 26 deletions
|
@ -46,8 +46,9 @@ ArrayPrototype::ArrayPrototype(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void ArrayPrototype::initialize(Interpreter&, GlobalObject&)
|
void ArrayPrototype::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
Object::initialize(interpreter, global_object);
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
|
|
||||||
define_native_function("filter", filter, 1, attr);
|
define_native_function("filter", filter, 1, attr);
|
||||||
|
|
|
@ -39,8 +39,9 @@ BigIntConstructor::BigIntConstructor(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void BigIntConstructor::initialize(Interpreter&, GlobalObject& global_object)
|
void BigIntConstructor::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
NativeFunction::initialize(interpreter, global_object);
|
||||||
define_property("prototype", global_object.bigint_prototype(), 0);
|
define_property("prototype", global_object.bigint_prototype(), 0);
|
||||||
define_property("length", Value(1), Attribute::Configurable);
|
define_property("length", Value(1), Attribute::Configurable);
|
||||||
|
|
||||||
|
|
|
@ -37,8 +37,9 @@ BigIntPrototype::BigIntPrototype(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void BigIntPrototype::initialize(Interpreter&, GlobalObject&)
|
void BigIntPrototype::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
Object::initialize(interpreter, global_object);
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
define_native_function("toString", to_string, 0, attr);
|
define_native_function("toString", to_string, 0, attr);
|
||||||
define_native_function("toLocaleString", to_locale_string, 0, attr);
|
define_native_function("toLocaleString", to_locale_string, 0, attr);
|
||||||
|
|
|
@ -38,8 +38,9 @@ BooleanConstructor::BooleanConstructor(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void BooleanConstructor::initialize(Interpreter&, GlobalObject& global_object)
|
void BooleanConstructor::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
NativeFunction::initialize(interpreter, global_object);
|
||||||
define_property("prototype", Value(global_object.boolean_prototype()), 0);
|
define_property("prototype", Value(global_object.boolean_prototype()), 0);
|
||||||
define_property("length", Value(1), Attribute::Configurable);
|
define_property("length", Value(1), Attribute::Configurable);
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,8 +37,9 @@ BooleanPrototype::BooleanPrototype(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void BooleanPrototype::initialize(Interpreter&, GlobalObject&)
|
void BooleanPrototype::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
BooleanObject::initialize(interpreter, global_object);
|
||||||
define_native_function("toString", to_string, 0, Attribute::Writable | 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_native_function("valueOf", value_of, 0, Attribute::Writable | Attribute::Configurable);
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,8 +39,9 @@ BoundFunction::BoundFunction(GlobalObject& global_object, Function& target_funct
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void BoundFunction::initialize(Interpreter&, GlobalObject&)
|
void BoundFunction::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
Function::initialize(interpreter, global_object);
|
||||||
define_property("length", Value(m_length), Attribute::Configurable);
|
define_property("length", Value(m_length), Attribute::Configurable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,8 +40,9 @@ ConsoleObject::ConsoleObject(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConsoleObject::initialize(Interpreter&, GlobalObject&)
|
void ConsoleObject::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
Object::initialize(interpreter, global_object);
|
||||||
define_native_function("log", log);
|
define_native_function("log", log);
|
||||||
define_native_function("debug", debug);
|
define_native_function("debug", debug);
|
||||||
define_native_function("info", info);
|
define_native_function("info", info);
|
||||||
|
|
|
@ -39,8 +39,9 @@ DateConstructor::DateConstructor(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void DateConstructor::initialize(Interpreter&, GlobalObject& global_object)
|
void DateConstructor::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
NativeFunction::initialize(interpreter, global_object);
|
||||||
define_property("prototype", global_object.date_prototype(), 0);
|
define_property("prototype", global_object.date_prototype(), 0);
|
||||||
define_property("length", Value(7), Attribute::Configurable);
|
define_property("length", Value(7), Attribute::Configurable);
|
||||||
|
|
||||||
|
|
|
@ -53,8 +53,9 @@ DatePrototype::DatePrototype(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void DatePrototype::initialize(Interpreter&, GlobalObject&)
|
void DatePrototype::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
Object::initialize(interpreter, global_object);
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
define_native_function("getDate", get_date, 0, attr);
|
define_native_function("getDate", get_date, 0, attr);
|
||||||
define_native_function("getDay", get_day, 0, attr);
|
define_native_function("getDay", get_day, 0, attr);
|
||||||
|
|
|
@ -36,8 +36,9 @@ ErrorConstructor::ErrorConstructor(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void ErrorConstructor::initialize(Interpreter&, GlobalObject& global_object)
|
void ErrorConstructor::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
NativeFunction::initialize(interpreter, global_object);
|
||||||
define_property("prototype", global_object.error_prototype(), 0);
|
define_property("prototype", global_object.error_prototype(), 0);
|
||||||
define_property("length", Value(1), Attribute::Configurable);
|
define_property("length", Value(1), Attribute::Configurable);
|
||||||
}
|
}
|
||||||
|
@ -67,8 +68,9 @@ Value ErrorConstructor::construct(Interpreter& interpreter)
|
||||||
: NativeFunction(*global_object.function_prototype()) \
|
: NativeFunction(*global_object.function_prototype()) \
|
||||||
{ \
|
{ \
|
||||||
} \
|
} \
|
||||||
void ConstructorName::initialize(Interpreter&, GlobalObject& global_object) \
|
void ConstructorName::initialize(Interpreter& interpreter, GlobalObject& global_object) \
|
||||||
{ \
|
{ \
|
||||||
|
NativeFunction::initialize(interpreter, global_object); \
|
||||||
define_property("prototype", global_object.snake_name##_prototype(), 0); \
|
define_property("prototype", global_object.snake_name##_prototype(), 0); \
|
||||||
define_property("length", Value(1), Attribute::Configurable); \
|
define_property("length", Value(1), Attribute::Configurable); \
|
||||||
} \
|
} \
|
||||||
|
|
|
@ -40,8 +40,9 @@ ErrorPrototype::ErrorPrototype(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void ErrorPrototype::initialize(Interpreter&, GlobalObject&)
|
void ErrorPrototype::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
Object::initialize(interpreter, global_object);
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
define_native_property("name", name_getter, name_setter, attr);
|
define_native_property("name", name_getter, name_setter, attr);
|
||||||
define_native_property("message", message_getter, nullptr, attr);
|
define_native_property("message", message_getter, nullptr, attr);
|
||||||
|
|
|
@ -40,8 +40,9 @@ FunctionConstructor::FunctionConstructor(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void FunctionConstructor::initialize(Interpreter&, GlobalObject& global_object)
|
void FunctionConstructor::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
NativeFunction::initialize(interpreter, global_object);
|
||||||
define_property("prototype", global_object.function_prototype(), 0);
|
define_property("prototype", global_object.function_prototype(), 0);
|
||||||
define_property("length", Value(1), Attribute::Configurable);
|
define_property("length", Value(1), Attribute::Configurable);
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,8 +43,9 @@ FunctionPrototype::FunctionPrototype(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void FunctionPrototype::initialize(Interpreter&, GlobalObject&)
|
void FunctionPrototype::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
Object::initialize(interpreter, global_object);
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
define_native_function("apply", apply, 2, attr);
|
define_native_function("apply", apply, 2, attr);
|
||||||
define_native_function("bind", bind, 1, attr);
|
define_native_function("bind", bind, 1, attr);
|
||||||
|
|
|
@ -42,8 +42,9 @@ JSONObject::JSONObject(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void JSONObject::initialize(Interpreter&, GlobalObject&)
|
void JSONObject::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
Object::initialize(interpreter, global_object);
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
define_native_function("stringify", stringify, 3, attr);
|
define_native_function("stringify", stringify, 3, attr);
|
||||||
define_native_function("parse", parse, 2, attr);
|
define_native_function("parse", parse, 2, attr);
|
||||||
|
|
|
@ -39,8 +39,9 @@ MathObject::MathObject(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void MathObject::initialize(Interpreter&, GlobalObject&)
|
void MathObject::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
Object::initialize(interpreter, global_object);
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
define_native_function("abs", abs, 1, attr);
|
define_native_function("abs", abs, 1, attr);
|
||||||
define_native_function("random", random, 0, attr);
|
define_native_function("random", random, 0, attr);
|
||||||
|
|
|
@ -42,8 +42,9 @@ NumberConstructor::NumberConstructor(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void NumberConstructor::initialize(Interpreter&, GlobalObject& global_object)
|
void NumberConstructor::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
NativeFunction::initialize(interpreter, global_object);
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
define_native_function("isFinite", is_finite, 1, attr);
|
define_native_function("isFinite", is_finite, 1, attr);
|
||||||
define_native_function("isInteger", is_integer, 1, attr);
|
define_native_function("isInteger", is_integer, 1, attr);
|
||||||
|
|
|
@ -40,8 +40,9 @@ ObjectConstructor::ObjectConstructor(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectConstructor::initialize(Interpreter&, GlobalObject& global_object)
|
void ObjectConstructor::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
NativeFunction::initialize(interpreter, global_object);
|
||||||
define_property("prototype", global_object.object_prototype(), 0);
|
define_property("prototype", global_object.object_prototype(), 0);
|
||||||
define_property("length", Value(1), Attribute::Configurable);
|
define_property("length", Value(1), Attribute::Configurable);
|
||||||
|
|
||||||
|
|
|
@ -39,8 +39,9 @@ ObjectPrototype::ObjectPrototype(GlobalObject&)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectPrototype::initialize(Interpreter&, GlobalObject&)
|
void ObjectPrototype::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
Object::initialize(interpreter, global_object);
|
||||||
// This must be called after the constructor has returned, so that the below code
|
// This must be called after the constructor has returned, so that the below code
|
||||||
// can find the ObjectPrototype through normal paths.
|
// can find the ObjectPrototype through normal paths.
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
|
|
|
@ -38,8 +38,9 @@ ProxyConstructor::ProxyConstructor(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProxyConstructor::initialize(Interpreter&, GlobalObject& global_object)
|
void ProxyConstructor::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
NativeFunction::initialize(interpreter, global_object);
|
||||||
define_property("prototype", global_object.proxy_prototype(), 0);
|
define_property("prototype", global_object.proxy_prototype(), 0);
|
||||||
define_property("length", Value(2), Attribute::Configurable);
|
define_property("length", Value(2), Attribute::Configurable);
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,8 +80,9 @@ ReflectObject::ReflectObject(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReflectObject::initialize(Interpreter&, GlobalObject&)
|
void ReflectObject::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
Object::initialize(interpreter, global_object);
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
define_native_function("apply", apply, 3, attr);
|
define_native_function("apply", apply, 3, attr);
|
||||||
define_native_function("construct", construct, 2, attr);
|
define_native_function("construct", construct, 2, attr);
|
||||||
|
|
|
@ -37,8 +37,9 @@ RegExpConstructor::RegExpConstructor(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void RegExpConstructor::initialize(Interpreter&, GlobalObject& global_object)
|
void RegExpConstructor::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
NativeFunction::initialize(interpreter, global_object);
|
||||||
define_property("prototype", global_object.regexp_prototype(), 0);
|
define_property("prototype", global_object.regexp_prototype(), 0);
|
||||||
define_property("length", Value(2), Attribute::Configurable);
|
define_property("length", Value(2), Attribute::Configurable);
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,6 +65,7 @@ ScriptFunction::ScriptFunction(GlobalObject& global_object, const FlyString& nam
|
||||||
|
|
||||||
void ScriptFunction::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
void ScriptFunction::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
Function::initialize(interpreter, global_object);
|
||||||
if (!m_is_arrow_function)
|
if (!m_is_arrow_function)
|
||||||
define_property("prototype", Object::create_empty(interpreter, global_object), 0);
|
define_property("prototype", Object::create_empty(interpreter, global_object), 0);
|
||||||
define_native_property("length", length_getter, nullptr, Attribute::Configurable);
|
define_native_property("length", length_getter, nullptr, Attribute::Configurable);
|
||||||
|
|
|
@ -40,8 +40,9 @@ StringConstructor::StringConstructor(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void StringConstructor::initialize(Interpreter&, GlobalObject& global_object)
|
void StringConstructor::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
NativeFunction::initialize(interpreter, global_object);
|
||||||
define_property("prototype", global_object.string_prototype(), 0);
|
define_property("prototype", global_object.string_prototype(), 0);
|
||||||
define_property("length", Value(1), Attribute::Configurable);
|
define_property("length", Value(1), Attribute::Configurable);
|
||||||
|
|
||||||
|
|
|
@ -64,8 +64,9 @@ StringPrototype::StringPrototype(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void StringPrototype::initialize(Interpreter&, GlobalObject&)
|
void StringPrototype::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
StringObject::initialize(interpreter, global_object);
|
||||||
u8 attr = Attribute::Writable | Attribute::Configurable;
|
u8 attr = Attribute::Writable | Attribute::Configurable;
|
||||||
|
|
||||||
define_native_property("length", length_getter, nullptr, 0);
|
define_native_property("length", length_getter, nullptr, 0);
|
||||||
|
|
|
@ -39,6 +39,7 @@ SymbolConstructor::SymbolConstructor(GlobalObject& global_object)
|
||||||
|
|
||||||
void SymbolConstructor::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
void SymbolConstructor::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
NativeFunction::initialize(interpreter, global_object);
|
||||||
define_property("prototype", global_object.symbol_prototype(), 0);
|
define_property("prototype", global_object.symbol_prototype(), 0);
|
||||||
define_property("length", Value(0), Attribute::Configurable);
|
define_property("length", Value(0), Attribute::Configurable);
|
||||||
|
|
||||||
|
|
|
@ -44,10 +44,10 @@ SymbolPrototype::SymbolPrototype(GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void SymbolPrototype::initialize(Interpreter&, GlobalObject&)
|
void SymbolPrototype::initialize(Interpreter& interpreter, GlobalObject& global_object)
|
||||||
{
|
{
|
||||||
|
Object::initialize(interpreter, global_object);
|
||||||
define_native_property("description", description_getter, nullptr, Attribute::Configurable);
|
define_native_property("description", description_getter, nullptr, Attribute::Configurable);
|
||||||
|
|
||||||
define_native_function("toString", to_string, 0, Attribute::Writable | 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_native_function("valueOf", value_of, 0, Attribute::Writable | Attribute::Configurable);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue