diff options
Diffstat (limited to 'Libraries')
-rw-r--r-- | Libraries/LibJS/Runtime/Date.cpp | 11 | ||||
-rw-r--r-- | Libraries/LibJS/Runtime/Date.h | 4 | ||||
-rw-r--r-- | Libraries/LibJS/Runtime/DateConstructor.cpp | 2 |
3 files changed, 13 insertions, 4 deletions
diff --git a/Libraries/LibJS/Runtime/Date.cpp b/Libraries/LibJS/Runtime/Date.cpp index faa3942075..5ebf3a77a5 100644 --- a/Libraries/LibJS/Runtime/Date.cpp +++ b/Libraries/LibJS/Runtime/Date.cpp @@ -25,16 +25,23 @@ */ #include <LibCore/DateTime.h> +#include <LibJS/Heap/Heap.h> #include <LibJS/Interpreter.h> #include <LibJS/Runtime/Date.h> +#include <LibJS/Runtime/GlobalObject.h> namespace JS { -Date::Date(Core::DateTime datetime, u16 milliseconds) +Date* Date::create(GlobalObject& global_object, Core::DateTime datetime, u16 milliseconds) +{ + return global_object.heap().allocate<Date>(datetime, milliseconds, *global_object.interpreter().date_prototype()); +} + +Date::Date(Core::DateTime datetime, u16 milliseconds, Object& prototype) : m_datetime(datetime) , m_milliseconds(milliseconds) { - set_prototype(interpreter().date_prototype()); + set_prototype(&prototype); } Date::~Date() diff --git a/Libraries/LibJS/Runtime/Date.h b/Libraries/LibJS/Runtime/Date.h index 557af7ce2c..432ed1b4d2 100644 --- a/Libraries/LibJS/Runtime/Date.h +++ b/Libraries/LibJS/Runtime/Date.h @@ -31,7 +31,9 @@ namespace JS { class Date final : public Object { public: - Date(Core::DateTime datetime, u16 milliseconds); + static Date* create(GlobalObject&, Core::DateTime, u16 milliseconds); + + Date(Core::DateTime datetime, u16 milliseconds, Object& prototype); virtual ~Date() override; Core::DateTime& datetime() { return m_datetime; } diff --git a/Libraries/LibJS/Runtime/DateConstructor.cpp b/Libraries/LibJS/Runtime/DateConstructor.cpp index 9f825a6b96..87eefc4de7 100644 --- a/Libraries/LibJS/Runtime/DateConstructor.cpp +++ b/Libraries/LibJS/Runtime/DateConstructor.cpp @@ -61,7 +61,7 @@ Value DateConstructor::construct(Interpreter& interpreter) gettimeofday(&tv, nullptr); auto datetime = Core::DateTime::now(); auto milliseconds = static_cast<u16>(tv.tv_usec / 1000); - return interpreter.heap().allocate<Date>(datetime, milliseconds); + return Date::create(interpreter.global_object(), datetime, milliseconds); } Value DateConstructor::now(Interpreter&) |