summaryrefslogtreecommitdiff
path: root/Libraries
diff options
context:
space:
mode:
Diffstat (limited to 'Libraries')
-rw-r--r--Libraries/LibJS/Runtime/Date.cpp11
-rw-r--r--Libraries/LibJS/Runtime/Date.h4
-rw-r--r--Libraries/LibJS/Runtime/DateConstructor.cpp2
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&)