// Copyright 2017 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.
|
|
#ifndef V8_BASE_TIMEZONE_CACHE_H_
|
#define V8_BASE_TIMEZONE_CACHE_H_
|
|
namespace v8 {
|
namespace base {
|
|
class TimezoneCache {
|
public:
|
// Short name of the local timezone (e.g., EST)
|
virtual const char* LocalTimezone(double time_ms) = 0;
|
|
// ES #sec-daylight-saving-time-adjustment
|
// Daylight Saving Time Adjustment
|
virtual double DaylightSavingsOffset(double time_ms) = 0;
|
|
// ES #sec-local-time-zone-adjustment
|
// Local Time Zone Adjustment
|
//
|
// https://github.com/tc39/ecma262/pull/778
|
virtual double LocalTimeOffset(double time_ms, bool is_utc) = 0;
|
|
// Called when the local timezone changes
|
virtual void Clear() = 0;
|
|
// Called when tearing down the isolate
|
virtual ~TimezoneCache() {}
|
};
|
|
} // namespace base
|
} // namespace v8
|
|
#endif // V8_BASE_TIMEZONE_CACHE_H_
|