LibJS: Pass prototype to Date constructor
This commit is contained in:
parent
2a15323029
commit
0df4d2823a
Notes:
sideshowbarker
2024-07-19 07:31:36 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/0df4d2823a0
3 changed files with 13 additions and 4 deletions
|
@ -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()
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -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&)
|
||||
|
|
Loading…
Add table
Reference in a new issue