LibJS: Pass prototype to StringObject constructor

This commit is contained in:
Andreas Kling
2020-04-17 19:01:31 +02:00
parent cf702a13b9
commit 298c606200
5 changed files with 23 additions and 12 deletions

View File

@@ -32,21 +32,24 @@ namespace JS {
class StringObject : public Object {
public:
explicit StringObject(PrimitiveString*);
static StringObject* create(GlobalObject&, PrimitiveString&);
StringObject(PrimitiveString&, Object& prototype);
virtual ~StringObject() override;
virtual void visit_children(Visitor&) override;
const PrimitiveString* primitive_string() const { return m_string; }
// FIXME: Return const PrimitiveString&
const PrimitiveString* primitive_string() const { return &m_string; }
virtual Value value_of() const override
{
return Value(m_string);
return Value(&m_string);
}
private:
virtual void visit_children(Visitor&) override;
virtual const char* class_name() const override { return "StringObject"; }
virtual bool is_string_object() const override { return true; }
PrimitiveString* m_string { nullptr };
PrimitiveString& m_string;
};
}