| 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 17880 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 17891 Isolate* isolate = table->GetIsolate(); | 17891 Isolate* isolate = table->GetIsolate(); |
| 17892 | 17892 |
| 17893 int entry = table->FindEntry(isolate, key, hash); | 17893 int entry = table->FindEntry(isolate, key, hash); |
| 17894 | 17894 |
| 17895 // Key is already in table, just overwrite value. | 17895 // Key is already in table, just overwrite value. |
| 17896 if (entry != kNotFound) { | 17896 if (entry != kNotFound) { |
| 17897 table->set(EntryToIndex(entry) + 1, *value); | 17897 table->set(EntryToIndex(entry) + 1, *value); |
| 17898 return table; | 17898 return table; |
| 17899 } | 17899 } |
| 17900 | 17900 |
| 17901 // Rehash if more than 25% of the entries are deleted entries. | 17901 // Rehash if more than 33% of the entries are deleted entries. |
| 17902 // TODO(jochen): Consider to shrink the fixed array in place. | 17902 // TODO(jochen): Consider to shrink the fixed array in place. |
| 17903 if ((table->NumberOfDeletedElements() << 1) > table->NumberOfElements()) { | 17903 if ((table->NumberOfDeletedElements() << 1) > table->NumberOfElements()) { |
| 17904 table->Rehash(isolate->factory()->undefined_value()); | 17904 table->Rehash(isolate->factory()->undefined_value()); |
| 17905 } | 17905 } |
| 17906 | 17906 |
| 17907 // Check whether the hash table should be extended. | 17907 // Check whether the hash table should be extended. |
| 17908 table = EnsureCapacity(table, 1, key); | 17908 table = EnsureCapacity(table, 1, key); |
| 17909 table->AddEntry(table->FindInsertionEntry(hash), *key, *value); | 17909 table->AddEntry(table->FindInsertionEntry(hash), *key, *value); |
| 17910 return table; | 17910 return table; |
| 17911 } | 17911 } |
| (...skipping 1149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 19061 if (cell->value() != *new_value) { | 19061 if (cell->value() != *new_value) { |
| 19062 cell->set_value(*new_value); | 19062 cell->set_value(*new_value); |
| 19063 Isolate* isolate = cell->GetIsolate(); | 19063 Isolate* isolate = cell->GetIsolate(); |
| 19064 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 19064 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
| 19065 isolate, DependentCode::kPropertyCellChangedGroup); | 19065 isolate, DependentCode::kPropertyCellChangedGroup); |
| 19066 } | 19066 } |
| 19067 } | 19067 } |
| 19068 | 19068 |
| 19069 } // namespace internal | 19069 } // namespace internal |
| 19070 } // namespace v8 | 19070 } // namespace v8 |
| OLD | NEW |