Index: src/runtime/runtime-internal.cc |
diff --git a/src/runtime/runtime-internal.cc b/src/runtime/runtime-internal.cc |
index 724d679bbc1aab088a46db8cbe55aa9ae5e97aed..66cb77f683ab1f1a15ef3aaafffd03966616f46d 100644 |
--- a/src/runtime/runtime-internal.cc |
+++ b/src/runtime/runtime-internal.cc |
@@ -237,102 +237,6 @@ RUNTIME_FUNCTION(Runtime_RenderCallSite) { |
} |
-RUNTIME_FUNCTION(Runtime_GetFromCacheRT) { |
- SealHandleScope shs(isolate); |
- // This is only called from codegen, so checks might be more lax. |
- CONVERT_ARG_CHECKED(JSFunctionResultCache, cache, 0); |
- CONVERT_ARG_CHECKED(Object, key, 1); |
- |
- { |
- DisallowHeapAllocation no_alloc; |
- |
- int finger_index = cache->finger_index(); |
- Object* o = cache->get(finger_index); |
- if (o == key) { |
- // The fastest case: hit the same place again. |
- return cache->get(finger_index + 1); |
- } |
- |
- for (int i = finger_index - 2; i >= JSFunctionResultCache::kEntriesIndex; |
- i -= 2) { |
- o = cache->get(i); |
- if (o == key) { |
- cache->set_finger_index(i); |
- return cache->get(i + 1); |
- } |
- } |
- |
- int size = cache->size(); |
- DCHECK(size <= cache->length()); |
- |
- for (int i = size - 2; i > finger_index; i -= 2) { |
- o = cache->get(i); |
- if (o == key) { |
- cache->set_finger_index(i); |
- return cache->get(i + 1); |
- } |
- } |
- } |
- |
- // There is no value in the cache. Invoke the function and cache result. |
- HandleScope scope(isolate); |
- |
- Handle<JSFunctionResultCache> cache_handle(cache); |
- Handle<Object> key_handle(key, isolate); |
- Handle<Object> value; |
- { |
- Handle<JSFunction> factory(JSFunction::cast( |
- cache_handle->get(JSFunctionResultCache::kFactoryIndex))); |
- // TODO(antonm): consider passing a receiver when constructing a cache. |
- Handle<JSObject> receiver(isolate->global_proxy()); |
- // This handle is nor shared, nor used later, so it's safe. |
- Handle<Object> argv[] = {key_handle}; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, value, |
- Execution::Call(isolate, factory, receiver, arraysize(argv), argv)); |
- } |
- |
-#ifdef VERIFY_HEAP |
- if (FLAG_verify_heap) { |
- cache_handle->JSFunctionResultCacheVerify(); |
- } |
-#endif |
- |
- // Function invocation may have cleared the cache. Reread all the data. |
- int finger_index = cache_handle->finger_index(); |
- int size = cache_handle->size(); |
- |
- // If we have spare room, put new data into it, otherwise evict post finger |
- // entry which is likely to be the least recently used. |
- int index = -1; |
- if (size < cache_handle->length()) { |
- cache_handle->set_size(size + JSFunctionResultCache::kEntrySize); |
- index = size; |
- } else { |
- index = finger_index + JSFunctionResultCache::kEntrySize; |
- if (index == cache_handle->length()) { |
- index = JSFunctionResultCache::kEntriesIndex; |
- } |
- } |
- |
- DCHECK(index % 2 == 0); |
- DCHECK(index >= JSFunctionResultCache::kEntriesIndex); |
- DCHECK(index < cache_handle->length()); |
- |
- cache_handle->set(index, *key_handle); |
- cache_handle->set(index + 1, *value); |
- cache_handle->set_finger_index(index); |
- |
-#ifdef VERIFY_HEAP |
- if (FLAG_verify_heap) { |
- cache_handle->JSFunctionResultCacheVerify(); |
- } |
-#endif |
- |
- return *value; |
-} |
- |
- |
RUNTIME_FUNCTION(Runtime_MessageGetStartPosition) { |
SealHandleScope shs(isolate); |
DCHECK(args.length() == 1); |
@@ -413,15 +317,6 @@ RUNTIME_FUNCTION(Runtime_IS_VAR) { |
} |
-RUNTIME_FUNCTION(Runtime_GetFromCache) { |
- HandleScope scope(isolate); |
- DCHECK(args.length() == 2); |
- CONVERT_SMI_ARG_CHECKED(id, 0); |
- args[0] = isolate->native_context()->jsfunction_result_caches()->get(id); |
- return __RT_impl_Runtime_GetFromCacheRT(args, isolate); |
-} |
- |
- |
RUNTIME_FUNCTION(Runtime_IncrementStatsCounter) { |
SealHandleScope shs(isolate); |
DCHECK(args.length() == 1); |