Index: src/runtime/runtime-date.cc |
diff --git a/src/runtime/runtime-date.cc b/src/runtime/runtime-date.cc |
index 96292ad1c5fb50fbab87ab530d15923c070bf6a5..bea5562d464af8b1e426f26e33010cac239f8e5d 100644 |
--- a/src/runtime/runtime-date.cc |
+++ b/src/runtime/runtime-date.cc |
@@ -36,5 +36,26 @@ RUNTIME_FUNCTION(Runtime_DateCurrentTime) { |
return *isolate->factory()->NewNumber(JSDate::CurrentTimeValue(isolate)); |
} |
+RUNTIME_FUNCTION(Runtime_DateCacheVersion) { |
Dan Ehrenberg
2016/05/18 17:39:57
If this is only used by Intl, better to put it in
pgorszkowski
2016/05/20 13:14:00
Done.
|
+ HandleScope scope(isolate); |
+ DCHECK_EQ(0, args.length()); |
+ if (isolate->serializer_enabled()) return isolate->heap()->undefined_value(); |
+ if (!isolate->eternal_handles()->Exists(EternalHandles::DATE_CACHE_VERSION)) { |
+ Handle<FixedArray> date_cache_version = |
+ isolate->factory()->NewFixedArray(1, TENURED); |
+ date_cache_version->set(0, Smi::FromInt(0)); |
+ isolate->eternal_handles()->CreateSingleton( |
+ isolate, *date_cache_version, EternalHandles::DATE_CACHE_VERSION); |
+ } |
+ Handle<FixedArray> date_cache_version = |
+ Handle<FixedArray>::cast(isolate->eternal_handles()->GetSingleton( |
+ EternalHandles::DATE_CACHE_VERSION)); |
+ // Return result as a JS array. |
+ Handle<JSObject> result = |
+ isolate->factory()->NewJSObject(isolate->array_function()); |
Dan Ehrenberg
2016/05/18 17:39:57
Why is this wrapped in an array, rather than just
pgorszkowski
2016/05/19 11:07:57
Currently it is kept as FixedArray, should we chan
|
+ JSArray::SetContent(Handle<JSArray>::cast(result), date_cache_version); |
+ return *result; |
+} |
+ |
} // namespace internal |
} // namespace v8 |