Line data Source code
1 : // Copyright 2017 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 :
5 : #ifndef V8_BASE_TIMEZONE_CACHE_H_
6 : #define V8_BASE_TIMEZONE_CACHE_H_
7 :
8 : namespace v8 {
9 : namespace base {
10 :
11 62888 : class TimezoneCache {
12 : public:
13 : // Short name of the local timezone (e.g., EST)
14 : virtual const char* LocalTimezone(double time_ms) = 0;
15 :
16 : // ES #sec-daylight-saving-time-adjustment
17 : // Daylight Saving Time Adjustment
18 : virtual double DaylightSavingsOffset(double time_ms) = 0;
19 :
20 : // ES #sec-local-time-zone-adjustment
21 : // Local Time Zone Adjustment
22 : //
23 : // https://github.com/tc39/ecma262/pull/778
24 : virtual double LocalTimeOffset(double time_ms, bool is_utc) = 0;
25 :
26 : // Called when the local timezone changes
27 : virtual void Clear() = 0;
28 :
29 : // Called when tearing down the isolate
30 62873 : virtual ~TimezoneCache() = default;
31 : };
32 :
33 : } // namespace base
34 : } // namespace v8
35 :
36 : #endif // V8_BASE_TIMEZONE_CACHE_H_
|