1958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier// Copyright 2014 the V8 project authors. All rights reserved. 2958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier// Use of this source code is governed by a BSD-style license that can be 3958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier// found in the LICENSE file. 4958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier 5014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch#include "src/runtime/runtime-utils.h" 6958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier 7958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier#include "src/arguments.h" 8014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch#include "src/conversions-inl.h" 9958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier#include "src/date.h" 10014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch#include "src/factory.h" 11014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch#include "src/isolate-inl.h" 12014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch#include "src/messages.h" 13958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier 14958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Berniernamespace v8 { 15958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Berniernamespace internal { 16958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier 17014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben MurdochRUNTIME_FUNCTION(Runtime_IsDate) { 18958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier SealHandleScope shs(isolate); 19014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch DCHECK_EQ(1, args.length()); 20014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch CONVERT_ARG_CHECKED(Object, obj, 0); 21014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch return isolate->heap()->ToBoolean(obj->IsJSDate()); 22958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier} 23958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier 24958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier 25958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily BernierRUNTIME_FUNCTION(Runtime_ThrowNotDateError) { 26958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier HandleScope scope(isolate); 27014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch DCHECK_EQ(0, args.length()); 28014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch THROW_NEW_ERROR_RETURN_FAILURE(isolate, 29014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch NewTypeError(MessageTemplate::kNotDateObject)); 30958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier} 31958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier 32958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier 33958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily BernierRUNTIME_FUNCTION(Runtime_DateCurrentTime) { 34958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier HandleScope scope(isolate); 35014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch DCHECK_EQ(0, args.length()); 36014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch return *isolate->factory()->NewNumber(JSDate::CurrentTimeValue(isolate)); 37958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier} 38958fae7ec3f466955f8e5b50fa5b8d38b9e91675Emily Bernier 39014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch} // namespace internal 40014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch} // namespace v8 41