blob: 96292ad1c5fb50fbab87ab530d15923c070bf6a5 [file] [log] [blame]
Emily Bernierd0a1eb72015-03-24 16:35:39 -04001// Copyright 2014 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00005#include "src/runtime/runtime-utils.h"
Emily Bernierd0a1eb72015-03-24 16:35:39 -04006
7#include "src/arguments.h"
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00008#include "src/conversions-inl.h"
Emily Bernierd0a1eb72015-03-24 16:35:39 -04009#include "src/date.h"
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000010#include "src/factory.h"
11#include "src/isolate-inl.h"
12#include "src/messages.h"
Emily Bernierd0a1eb72015-03-24 16:35:39 -040013
14namespace v8 {
15namespace internal {
16
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000017RUNTIME_FUNCTION(Runtime_IsDate) {
Emily Bernierd0a1eb72015-03-24 16:35:39 -040018 SealHandleScope shs(isolate);
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000019 DCHECK_EQ(1, args.length());
20 CONVERT_ARG_CHECKED(Object, obj, 0);
21 return isolate->heap()->ToBoolean(obj->IsJSDate());
Emily Bernierd0a1eb72015-03-24 16:35:39 -040022}
23
24
25RUNTIME_FUNCTION(Runtime_ThrowNotDateError) {
26 HandleScope scope(isolate);
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000027 DCHECK_EQ(0, args.length());
28 THROW_NEW_ERROR_RETURN_FAILURE(isolate,
29 NewTypeError(MessageTemplate::kNotDateObject));
Emily Bernierd0a1eb72015-03-24 16:35:39 -040030}
31
32
33RUNTIME_FUNCTION(Runtime_DateCurrentTime) {
34 HandleScope scope(isolate);
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000035 DCHECK_EQ(0, args.length());
36 return *isolate->factory()->NewNumber(JSDate::CurrentTimeValue(isolate));
Emily Bernierd0a1eb72015-03-24 16:35:39 -040037}
38
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000039} // namespace internal
40} // namespace v8