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 14189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14200 | 14200 |
14201 // Force instantiation of template instances class. | 14201 // Force instantiation of template instances class. |
14202 // Please note this list is compiler dependent. | 14202 // Please note this list is compiler dependent. |
14203 | 14203 |
14204 template class HashTable<StringTable, StringTableShape, HashTableKey*>; | 14204 template class HashTable<StringTable, StringTableShape, HashTableKey*>; |
14205 | 14205 |
14206 template class HashTable<CompilationCacheTable, | 14206 template class HashTable<CompilationCacheTable, |
14207 CompilationCacheShape, | 14207 CompilationCacheShape, |
14208 HashTableKey*>; | 14208 HashTableKey*>; |
14209 | 14209 |
14210 template class HashTable<MapCache, MapCacheShape, HashTableKey*>; | |
14211 | |
14212 template class HashTable<ObjectHashTable, | 14210 template class HashTable<ObjectHashTable, |
14213 ObjectHashTableShape, | 14211 ObjectHashTableShape, |
14214 Handle<Object> >; | 14212 Handle<Object> >; |
14215 | 14213 |
14216 template class HashTable<WeakHashTable, WeakHashTableShape<2>, Handle<Object> >; | 14214 template class HashTable<WeakHashTable, WeakHashTableShape<2>, Handle<Object> >; |
14217 | 14215 |
14218 template class Dictionary<NameDictionary, NameDictionaryShape, Handle<Name> >; | 14216 template class Dictionary<NameDictionary, NameDictionaryShape, Handle<Name> >; |
14219 | 14217 |
14220 template class Dictionary<SeededNumberDictionary, | 14218 template class Dictionary<SeededNumberDictionary, |
14221 SeededNumberDictionaryShape, | 14219 SeededNumberDictionaryShape, |
(...skipping 929 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15151 return hash; | 15149 return hash; |
15152 } | 15150 } |
15153 | 15151 |
15154 Handle<Object> AsHandle(Isolate* isolate) OVERRIDE { return strings_; } | 15152 Handle<Object> AsHandle(Isolate* isolate) OVERRIDE { return strings_; } |
15155 | 15153 |
15156 private: | 15154 private: |
15157 Handle<FixedArray> strings_; | 15155 Handle<FixedArray> strings_; |
15158 }; | 15156 }; |
15159 | 15157 |
15160 | 15158 |
15161 Object* MapCache::Lookup(FixedArray* array) { | |
15162 DisallowHeapAllocation no_alloc; | |
15163 StringsKey key(handle(array)); | |
15164 int entry = FindEntry(&key); | |
15165 if (entry == kNotFound) return GetHeap()->undefined_value(); | |
15166 return get(EntryToIndex(entry) + 1); | |
15167 } | |
15168 | |
15169 | |
15170 Handle<MapCache> MapCache::Put( | |
15171 Handle<MapCache> map_cache, Handle<FixedArray> array, Handle<Map> value) { | |
15172 StringsKey key(array); | |
15173 | |
15174 Handle<MapCache> new_cache = EnsureCapacity(map_cache, 1, &key); | |
15175 int entry = new_cache->FindInsertionEntry(key.Hash()); | |
15176 new_cache->set(EntryToIndex(entry), *array); | |
15177 new_cache->set(EntryToIndex(entry) + 1, *value); | |
15178 new_cache->ElementAdded(); | |
15179 return new_cache; | |
15180 } | |
15181 | |
15182 | |
15183 template<typename Derived, typename Shape, typename Key> | 15159 template<typename Derived, typename Shape, typename Key> |
15184 Handle<Derived> Dictionary<Derived, Shape, Key>::New( | 15160 Handle<Derived> Dictionary<Derived, Shape, Key>::New( |
15185 Isolate* isolate, | 15161 Isolate* isolate, |
15186 int at_least_space_for, | 15162 int at_least_space_for, |
15187 PretenureFlag pretenure) { | 15163 PretenureFlag pretenure) { |
15188 DCHECK(0 <= at_least_space_for); | 15164 DCHECK(0 <= at_least_space_for); |
15189 Handle<Derived> dict = DerivedHashTable::New(isolate, | 15165 Handle<Derived> dict = DerivedHashTable::New(isolate, |
15190 at_least_space_for, | 15166 at_least_space_for, |
15191 USE_DEFAULT_MINIMUM_CAPACITY, | 15167 USE_DEFAULT_MINIMUM_CAPACITY, |
15192 pretenure); | 15168 pretenure); |
(...skipping 1495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
16688 Handle<DependentCode> codes = | 16664 Handle<DependentCode> codes = |
16689 DependentCode::Insert(handle(cell->dependent_code(), info->isolate()), | 16665 DependentCode::Insert(handle(cell->dependent_code(), info->isolate()), |
16690 DependentCode::kPropertyCellChangedGroup, | 16666 DependentCode::kPropertyCellChangedGroup, |
16691 info->object_wrapper()); | 16667 info->object_wrapper()); |
16692 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); | 16668 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); |
16693 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( | 16669 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( |
16694 cell, info->zone()); | 16670 cell, info->zone()); |
16695 } | 16671 } |
16696 | 16672 |
16697 } } // namespace v8::internal | 16673 } } // namespace v8::internal |
OLD | NEW |