// Copyright 2016 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "src/builtins/builtins-utils-inl.h" #include "src/builtins/builtins.h" #include "src/codegen/code-factory.h" #include "src/date/date.h" #include "src/date/dateparser-inl.h" #include "src/logging/counters.h" #include "src/numbers/conversions.h" #include "src/objects/bigint.h" #ifdef V8_INTL_SUPPORT #include "src/objects/intl-objects.h" #include "src/objects/js-date-time-format.h" #endif #include "src/objects/js-temporal-objects-inl.h" #include "src/objects/objects-inl.h" #include "src/strings/string-stream.h" namespace v8 { namespace internal { // ----------------------------------------------------------------------------- // ES6 section 20.3 Date Objects namespace { Tagged<Object> SetLocalDateValue(Isolate* isolate, DirectHandle<JSDate> date, double time_val) { … } Tagged<Object> SetDateValue(Isolate* isolate, DirectHandle<JSDate> date, double time_val) { … } } // namespace // ES #sec-date-constructor BUILTIN(DateConstructor) { … } // ES6 section 20.3.3.1 Date.now ( ) BUILTIN(DateNow) { … } // ES6 section 20.3.3.2 Date.parse ( string ) BUILTIN(DateParse) { … } // ES6 section 20.3.3.4 Date.UTC (year,month,date,hours,minutes,seconds,ms) BUILTIN(DateUTC) { … } // ES6 section 20.3.4.20 Date.prototype.setDate ( date ) BUILTIN(DatePrototypeSetDate) { … } // ES6 section 20.3.4.21 Date.prototype.setFullYear (year, month, date) BUILTIN(DatePrototypeSetFullYear) { … } // ES6 section 20.3.4.22 Date.prototype.setHours(hour, min, sec, ms) BUILTIN(DatePrototypeSetHours) { … } // ES6 section 20.3.4.23 Date.prototype.setMilliseconds(ms) BUILTIN(DatePrototypeSetMilliseconds) { … } // ES6 section 20.3.4.24 Date.prototype.setMinutes ( min, sec, ms ) BUILTIN(DatePrototypeSetMinutes) { … } // ES6 section 20.3.4.25 Date.prototype.setMonth ( month, date ) BUILTIN(DatePrototypeSetMonth) { … } // ES6 section 20.3.4.26 Date.prototype.setSeconds ( sec, ms ) BUILTIN(DatePrototypeSetSeconds) { … } // ES6 section 20.3.4.27 Date.prototype.setTime ( time ) BUILTIN(DatePrototypeSetTime) { … } // ES6 section 20.3.4.28 Date.prototype.setUTCDate ( date ) BUILTIN(DatePrototypeSetUTCDate) { … } // ES6 section 20.3.4.29 Date.prototype.setUTCFullYear (year, month, date) BUILTIN(DatePrototypeSetUTCFullYear) { … } // ES6 section 20.3.4.30 Date.prototype.setUTCHours(hour, min, sec, ms) BUILTIN(DatePrototypeSetUTCHours) { … } // ES6 section 20.3.4.31 Date.prototype.setUTCMilliseconds(ms) BUILTIN(DatePrototypeSetUTCMilliseconds) { … } // ES6 section 20.3.4.32 Date.prototype.setUTCMinutes ( min, sec, ms ) BUILTIN(DatePrototypeSetUTCMinutes) { … } // ES6 section 20.3.4.31 Date.prototype.setUTCMonth ( month, date ) BUILTIN(DatePrototypeSetUTCMonth) { … } // ES6 section 20.3.4.34 Date.prototype.setUTCSeconds ( sec, ms ) BUILTIN(DatePrototypeSetUTCSeconds) { … } // ES6 section 20.3.4.35 Date.prototype.toDateString ( ) BUILTIN(DatePrototypeToDateString) { … } // ES6 section 20.3.4.36 Date.prototype.toISOString ( ) BUILTIN(DatePrototypeToISOString) { … } // ES6 section 20.3.4.41 Date.prototype.toString ( ) BUILTIN(DatePrototypeToString) { … } // ES6 section 20.3.4.42 Date.prototype.toTimeString ( ) BUILTIN(DatePrototypeToTimeString) { … } #ifdef V8_INTL_SUPPORT // ecma402 #sup-date.prototype.tolocaledatestring BUILTIN(DatePrototypeToLocaleDateString) { … } // ecma402 #sup-date.prototype.tolocalestring BUILTIN(DatePrototypeToLocaleString) { … } // ecma402 #sup-date.prototype.tolocaletimestring BUILTIN(DatePrototypeToLocaleTimeString) { … } #endif // V8_INTL_SUPPORT // ES6 section 20.3.4.43 Date.prototype.toUTCString ( ) BUILTIN(DatePrototypeToUTCString) { … } // ES6 section B.2.4.1 Date.prototype.getYear ( ) BUILTIN(DatePrototypeGetYear) { … } // ES6 section B.2.4.2 Date.prototype.setYear ( year ) BUILTIN(DatePrototypeSetYear) { … } // ES6 section 20.3.4.37 Date.prototype.toJSON ( key ) BUILTIN(DatePrototypeToJson) { … } // Temporal #sec-date.prototype.totemporalinstant BUILTIN(DatePrototypeToTemporalInstant) { … } } // namespace internal } // namespace v8