| OLD | NEW | 
|---|
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include <sstream> | 5 #include <sstream> | 
| 6 | 6 | 
| 7 #include "src/v8.h" | 7 #include "src/v8.h" | 
| 8 | 8 | 
| 9 #include "src/accessors.h" | 9 #include "src/accessors.h" | 
| 10 #include "src/allocation-site-scopes.h" | 10 #include "src/allocation-site-scopes.h" | 
| (...skipping 14831 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 14842   Isolate* isolate = GetIsolate(); | 14842   Isolate* isolate = GetIsolate(); | 
| 14843   Handle<SharedFunctionInfo> shared(context->closure()->shared()); | 14843   Handle<SharedFunctionInfo> shared(context->closure()->shared()); | 
| 14844   StringSharedKey key(src, shared, FLAG_use_strict ? STRICT : SLOPPY, | 14844   StringSharedKey key(src, shared, FLAG_use_strict ? STRICT : SLOPPY, | 
| 14845                       RelocInfo::kNoPosition); | 14845                       RelocInfo::kNoPosition); | 
| 14846   int entry = FindEntry(&key); | 14846   int entry = FindEntry(&key); | 
| 14847   if (entry == kNotFound) return isolate->factory()->undefined_value(); | 14847   if (entry == kNotFound) return isolate->factory()->undefined_value(); | 
| 14848   return Handle<Object>(get(EntryToIndex(entry) + 1), isolate); | 14848   return Handle<Object>(get(EntryToIndex(entry) + 1), isolate); | 
| 14849 } | 14849 } | 
| 14850 | 14850 | 
| 14851 | 14851 | 
| 14852 Handle<Object> CompilationCacheTable::LookupEval(Handle<String> src, | 14852 Handle<Object> CompilationCacheTable::LookupEval( | 
| 14853                                                  Handle<Context> context, | 14853     Handle<String> src, Handle<SharedFunctionInfo> outer_info, | 
| 14854                                                  StrictMode strict_mode, | 14854     StrictMode strict_mode, int scope_position) { | 
| 14855                                                  int scope_position) { |  | 
| 14856   Isolate* isolate = GetIsolate(); | 14855   Isolate* isolate = GetIsolate(); | 
| 14857   Handle<SharedFunctionInfo> shared(context->closure()->shared()); | 14856   // Cache key is the tuple (source, outer shared function info, scope position) | 
| 14858   StringSharedKey key(src, shared, strict_mode, scope_position); | 14857   // to unambiguously identify the context chain the cached eval code assumes. | 
|  | 14858   StringSharedKey key(src, outer_info, strict_mode, scope_position); | 
| 14859   int entry = FindEntry(&key); | 14859   int entry = FindEntry(&key); | 
| 14860   if (entry == kNotFound) return isolate->factory()->undefined_value(); | 14860   if (entry == kNotFound) return isolate->factory()->undefined_value(); | 
| 14861   return Handle<Object>(get(EntryToIndex(entry) + 1), isolate); | 14861   return Handle<Object>(get(EntryToIndex(entry) + 1), isolate); | 
| 14862 } | 14862 } | 
| 14863 | 14863 | 
| 14864 | 14864 | 
| 14865 Handle<Object> CompilationCacheTable::LookupRegExp(Handle<String> src, | 14865 Handle<Object> CompilationCacheTable::LookupRegExp(Handle<String> src, | 
| 14866                                                    JSRegExp::Flags flags) { | 14866                                                    JSRegExp::Flags flags) { | 
| 14867   Isolate* isolate = GetIsolate(); | 14867   Isolate* isolate = GetIsolate(); | 
| 14868   DisallowHeapAllocation no_allocation; | 14868   DisallowHeapAllocation no_allocation; | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 14885   int entry = cache->FindInsertionEntry(key.Hash()); | 14885   int entry = cache->FindInsertionEntry(key.Hash()); | 
| 14886   cache->set(EntryToIndex(entry), *k); | 14886   cache->set(EntryToIndex(entry), *k); | 
| 14887   cache->set(EntryToIndex(entry) + 1, *value); | 14887   cache->set(EntryToIndex(entry) + 1, *value); | 
| 14888   cache->ElementAdded(); | 14888   cache->ElementAdded(); | 
| 14889   return cache; | 14889   return cache; | 
| 14890 } | 14890 } | 
| 14891 | 14891 | 
| 14892 | 14892 | 
| 14893 Handle<CompilationCacheTable> CompilationCacheTable::PutEval( | 14893 Handle<CompilationCacheTable> CompilationCacheTable::PutEval( | 
| 14894     Handle<CompilationCacheTable> cache, Handle<String> src, | 14894     Handle<CompilationCacheTable> cache, Handle<String> src, | 
| 14895     Handle<Context> context, Handle<SharedFunctionInfo> value, | 14895     Handle<SharedFunctionInfo> outer_info, Handle<SharedFunctionInfo> value, | 
| 14896     int scope_position) { | 14896     int scope_position) { | 
| 14897   Isolate* isolate = cache->GetIsolate(); | 14897   Isolate* isolate = cache->GetIsolate(); | 
| 14898   Handle<SharedFunctionInfo> shared(context->closure()->shared()); | 14898   StringSharedKey key(src, outer_info, value->strict_mode(), scope_position); | 
| 14899   StringSharedKey key(src, shared, value->strict_mode(), scope_position); |  | 
| 14900   cache = EnsureCapacity(cache, 1, &key); | 14899   cache = EnsureCapacity(cache, 1, &key); | 
| 14901   Handle<Object> k = key.AsHandle(isolate); | 14900   Handle<Object> k = key.AsHandle(isolate); | 
| 14902   int entry = cache->FindInsertionEntry(key.Hash()); | 14901   int entry = cache->FindInsertionEntry(key.Hash()); | 
| 14903   cache->set(EntryToIndex(entry), *k); | 14902   cache->set(EntryToIndex(entry), *k); | 
| 14904   cache->set(EntryToIndex(entry) + 1, *value); | 14903   cache->set(EntryToIndex(entry) + 1, *value); | 
| 14905   cache->ElementAdded(); | 14904   cache->ElementAdded(); | 
| 14906   return cache; | 14905   return cache; | 
| 14907 } | 14906 } | 
| 14908 | 14907 | 
| 14909 | 14908 | 
| (...skipping 1590 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 16500   Handle<DependentCode> codes = | 16499   Handle<DependentCode> codes = | 
| 16501       DependentCode::Insert(handle(cell->dependent_code(), info->isolate()), | 16500       DependentCode::Insert(handle(cell->dependent_code(), info->isolate()), | 
| 16502                             DependentCode::kPropertyCellChangedGroup, | 16501                             DependentCode::kPropertyCellChangedGroup, | 
| 16503                             info->object_wrapper()); | 16502                             info->object_wrapper()); | 
| 16504   if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); | 16503   if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); | 
| 16505   info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( | 16504   info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( | 
| 16506       cell, info->zone()); | 16505       cell, info->zone()); | 
| 16507 } | 16506 } | 
| 16508 | 16507 | 
| 16509 } }  // namespace v8::internal | 16508 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|