| Index: src/base/platform/time.h | 
| diff --git a/src/base/platform/time.h b/src/base/platform/time.h | 
| index be62014f91db7e0535d47cc7aa25737d9c1801f9..ed1751268f59bf49abb934c718937c4d72d4eccd 100644 | 
| --- a/src/base/platform/time.h | 
| +++ b/src/base/platform/time.h | 
| @@ -9,6 +9,7 @@ | 
| #include <iosfwd> | 
| #include <limits> | 
|  | 
| +#include "src/base/base-export.h" | 
| #include "src/base/bits.h" | 
| #include "src/base/macros.h" | 
| #include "src/base/safe_math.h" | 
| @@ -42,7 +43,7 @@ class TimeBase; | 
| // This class represents a duration of time, internally represented in | 
| // microseonds. | 
|  | 
| -class TimeDelta final { | 
| +class V8_BASE_EXPORT TimeDelta final { | 
| public: | 
| TimeDelta() : delta_(0) {} | 
|  | 
| @@ -277,7 +278,7 @@ class TimeBase { | 
| // This class represents an absolute point in time, internally represented as | 
| // microseconds (s/1,000,000) since 00:00:00 UTC, January 1, 1970. | 
|  | 
| -class Time final : public time_internal::TimeBase<Time> { | 
| +class V8_BASE_EXPORT Time final : public time_internal::TimeBase<Time> { | 
| public: | 
| // Contains the NULL time. Use Time::Now() to get the current time. | 
| Time() : TimeBase(0) {} | 
| @@ -322,7 +323,7 @@ class Time final : public time_internal::TimeBase<Time> { | 
| explicit Time(int64_t us) : TimeBase(us) {} | 
| }; | 
|  | 
| -std::ostream& operator<<(std::ostream&, const Time&); | 
| +V8_BASE_EXPORT std::ostream& operator<<(std::ostream&, const Time&); | 
|  | 
| inline Time operator+(const TimeDelta& delta, const Time& time) { | 
| return time + delta; | 
| @@ -339,7 +340,8 @@ inline Time operator+(const TimeDelta& delta, const Time& time) { | 
| // Time::Now() may actually decrease or jump).  But note that TimeTicks may | 
| // "stand still", for example if the computer suspended. | 
|  | 
| -class TimeTicks final : public time_internal::TimeBase<TimeTicks> { | 
| +class V8_BASE_EXPORT TimeTicks final | 
| +    : public time_internal::TimeBase<TimeTicks> { | 
| public: | 
| TimeTicks() : TimeBase(0) {} | 
|  | 
| @@ -376,7 +378,8 @@ inline TimeTicks operator+(const TimeDelta& delta, const TimeTicks& ticks) { | 
|  | 
| // Represents a clock, specific to a particular thread, than runs only while the | 
| // thread is running. | 
| -class ThreadTicks final : public time_internal::TimeBase<ThreadTicks> { | 
| +class V8_BASE_EXPORT ThreadTicks final | 
| +    : public time_internal::TimeBase<ThreadTicks> { | 
| public: | 
| ThreadTicks() : TimeBase(0) {} | 
|  | 
| @@ -408,6 +411,9 @@ class ThreadTicks final : public time_internal::TimeBase<ThreadTicks> { | 
| #endif | 
|  | 
| private: | 
| +  template <class TimeClass> | 
| +  friend class time_internal::TimeBase; | 
| + | 
| // Please use Now() or GetForThread() to create a new object. This is for | 
| // internal use and testing. Ticks are in microseconds. | 
| explicit ThreadTicks(int64_t ticks) : TimeBase(ticks) {} | 
|  |