| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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 "src/objects.h" | 5 #include "src/objects.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 #include <iomanip> | 8 #include <iomanip> |
| 9 #include <sstream> | 9 #include <sstream> |
| 10 | 10 |
| (...skipping 17608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 17619 return Handle<Object>(get(EntryToIndex(entry) + 1), isolate); | 17619 return Handle<Object>(get(EntryToIndex(entry) + 1), isolate); |
| 17620 } | 17620 } |
| 17621 | 17621 |
| 17622 | 17622 |
| 17623 Handle<CompilationCacheTable> CompilationCacheTable::Put( | 17623 Handle<CompilationCacheTable> CompilationCacheTable::Put( |
| 17624 Handle<CompilationCacheTable> cache, Handle<String> src, | 17624 Handle<CompilationCacheTable> cache, Handle<String> src, |
| 17625 Handle<Context> context, LanguageMode language_mode, Handle<Object> value) { | 17625 Handle<Context> context, LanguageMode language_mode, Handle<Object> value) { |
| 17626 Isolate* isolate = cache->GetIsolate(); | 17626 Isolate* isolate = cache->GetIsolate(); |
| 17627 Handle<SharedFunctionInfo> shared(context->closure()->shared()); | 17627 Handle<SharedFunctionInfo> shared(context->closure()->shared()); |
| 17628 StringSharedKey key(src, shared, language_mode, RelocInfo::kNoPosition); | 17628 StringSharedKey key(src, shared, language_mode, RelocInfo::kNoPosition); |
| 17629 Handle<Object> k = key.AsHandle(isolate); | 17629 { |
| 17630 Handle<Object> k = key.AsHandle(isolate); |
| 17631 DisallowHeapAllocation no_allocation_scope; |
| 17632 int entry = cache->FindEntry(&key); |
| 17633 if (entry != kNotFound) { |
| 17634 cache->set(EntryToIndex(entry), *k); |
| 17635 cache->set(EntryToIndex(entry) + 1, *value); |
| 17636 return cache; |
| 17637 } |
| 17638 } |
| 17639 |
| 17630 cache = EnsureCapacity(cache, 1, &key); | 17640 cache = EnsureCapacity(cache, 1, &key); |
| 17631 int entry = cache->FindInsertionEntry(key.Hash()); | 17641 int entry = cache->FindInsertionEntry(key.Hash()); |
| 17642 Handle<Object> k = |
| 17643 isolate->factory()->NewNumber(static_cast<double>(key.Hash())); |
| 17632 cache->set(EntryToIndex(entry), *k); | 17644 cache->set(EntryToIndex(entry), *k); |
| 17633 cache->set(EntryToIndex(entry) + 1, *value); | 17645 cache->set(EntryToIndex(entry) + 1, Smi::FromInt(kHashGenerations)); |
| 17634 cache->ElementAdded(); | 17646 cache->ElementAdded(); |
| 17635 return cache; | 17647 return cache; |
| 17636 } | 17648 } |
| 17637 | 17649 |
| 17638 | 17650 |
| 17639 Handle<CompilationCacheTable> CompilationCacheTable::PutEval( | 17651 Handle<CompilationCacheTable> CompilationCacheTable::PutEval( |
| 17640 Handle<CompilationCacheTable> cache, Handle<String> src, | 17652 Handle<CompilationCacheTable> cache, Handle<String> src, |
| 17641 Handle<SharedFunctionInfo> outer_info, Handle<SharedFunctionInfo> value, | 17653 Handle<SharedFunctionInfo> outer_info, Handle<SharedFunctionInfo> value, |
| 17642 int scope_position) { | 17654 int scope_position) { |
| 17643 Isolate* isolate = cache->GetIsolate(); | 17655 Isolate* isolate = cache->GetIsolate(); |
| (...skipping 1720 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 19364 if (cell->value() != *new_value) { | 19376 if (cell->value() != *new_value) { |
| 19365 cell->set_value(*new_value); | 19377 cell->set_value(*new_value); |
| 19366 Isolate* isolate = cell->GetIsolate(); | 19378 Isolate* isolate = cell->GetIsolate(); |
| 19367 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 19379 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
| 19368 isolate, DependentCode::kPropertyCellChangedGroup); | 19380 isolate, DependentCode::kPropertyCellChangedGroup); |
| 19369 } | 19381 } |
| 19370 } | 19382 } |
| 19371 | 19383 |
| 19372 } // namespace internal | 19384 } // namespace internal |
| 19373 } // namespace v8 | 19385 } // namespace v8 |
| OLD | NEW |