1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-23 18:35:07 +00:00

LibJS: Throw TypeError when calling class constructor without 'new'

This commit is contained in:
Linus Groh 2020-11-11 21:37:40 +00:00 committed by Andreas Kling
parent b07c7f589f
commit 1b0c862f3a
5 changed files with 21 additions and 5 deletions

View file

@ -50,6 +50,8 @@ public:
virtual const FlyString& name() const override { return m_name; };
void set_name(const FlyString& name) { m_name = name; };
void set_is_class_constructor() { m_is_class_constructor = true; };
protected:
virtual bool is_strict_mode() const final { return m_is_strict; }
@ -58,6 +60,8 @@ private:
virtual LexicalEnvironment* create_environment() override;
virtual void visit_children(Visitor&) override;
Value execute_function_body();
JS_DECLARE_NATIVE_GETTER(length_getter);
JS_DECLARE_NATIVE_GETTER(name_getter);
@ -68,6 +72,7 @@ private:
i32 m_function_length { 0 };
bool m_is_strict { false };
bool m_is_arrow_function { false };
bool m_is_class_constructor { false };
};
}