| 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 <iomanip> | 5 #include <iomanip> | 
| 6 #include <sstream> | 6 #include <sstream> | 
| 7 | 7 | 
| 8 #include "src/v8.h" | 8 #include "src/v8.h" | 
| 9 | 9 | 
| 10 #include "src/accessors.h" | 10 #include "src/accessors.h" | 
| (...skipping 9524 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 9535     if (FLAG_trace_opt) { | 9535     if (FLAG_trace_opt) { | 
| 9536       PrintF("[evicting entry from optimizing code map (%s) for ", reason); | 9536       PrintF("[evicting entry from optimizing code map (%s) for ", reason); | 
| 9537       ShortPrint(); | 9537       ShortPrint(); | 
| 9538       PrintF(" (context-independent code)]\n"); | 9538       PrintF(" (context-independent code)]\n"); | 
| 9539     } | 9539     } | 
| 9540   } | 9540   } | 
| 9541   if (dst != length) { | 9541   if (dst != length) { | 
| 9542     // Always trim even when array is cleared because of heap verifier. | 9542     // Always trim even when array is cleared because of heap verifier. | 
| 9543     GetHeap()->RightTrimFixedArray<Heap::CONCURRENT_TO_SWEEPER>(code_map, | 9543     GetHeap()->RightTrimFixedArray<Heap::CONCURRENT_TO_SWEEPER>(code_map, | 
| 9544                                                                 length - dst); | 9544                                                                 length - dst); | 
| 9545     if (code_map->length() == kEntriesStart) ClearOptimizedCodeMap(); | 9545     if (code_map->length() == kEntriesStart && | 
|  | 9546         code_map->get(kSharedCodeIndex)->IsUndefined()) { | 
|  | 9547       ClearOptimizedCodeMap(); | 
|  | 9548     } | 
| 9546   } | 9549   } | 
| 9547 } | 9550 } | 
| 9548 | 9551 | 
| 9549 | 9552 | 
| 9550 void SharedFunctionInfo::TrimOptimizedCodeMap(int shrink_by) { | 9553 void SharedFunctionInfo::TrimOptimizedCodeMap(int shrink_by) { | 
| 9551   FixedArray* code_map = FixedArray::cast(optimized_code_map()); | 9554   FixedArray* code_map = FixedArray::cast(optimized_code_map()); | 
| 9552   DCHECK(shrink_by % kEntryLength == 0); | 9555   DCHECK(shrink_by % kEntryLength == 0); | 
| 9553   DCHECK(shrink_by <= code_map->length() - kEntriesStart); | 9556   DCHECK(shrink_by <= code_map->length() - kEntriesStart); | 
| 9554   // Always trim even when array is cleared because of heap verifier. | 9557   // Always trim even when array is cleared because of heap verifier. | 
| 9555   GetHeap()->RightTrimFixedArray<Heap::SEQUENTIAL_TO_SWEEPER>(code_map, | 9558   GetHeap()->RightTrimFixedArray<Heap::SEQUENTIAL_TO_SWEEPER>(code_map, | 
| 9556                                                               shrink_by); | 9559                                                               shrink_by); | 
| 9557   if (code_map->length() == kEntriesStart) { | 9560   if (code_map->length() == kEntriesStart && | 
|  | 9561       code_map->get(kSharedCodeIndex)->IsUndefined()) { | 
| 9558     ClearOptimizedCodeMap(); | 9562     ClearOptimizedCodeMap(); | 
| 9559   } | 9563   } | 
| 9560 } | 9564 } | 
| 9561 | 9565 | 
| 9562 | 9566 | 
| 9563 static void GetMinInobjectSlack(Map* map, void* data) { | 9567 static void GetMinInobjectSlack(Map* map, void* data) { | 
| 9564   int slack = map->unused_property_fields(); | 9568   int slack = map->unused_property_fields(); | 
| 9565   if (*reinterpret_cast<int*>(data) > slack) { | 9569   if (*reinterpret_cast<int*>(data) > slack) { | 
| 9566     *reinterpret_cast<int*>(data) = slack; | 9570     *reinterpret_cast<int*>(data) = slack; | 
| 9567   } | 9571   } | 
| (...skipping 6337 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 15905                                             Handle<Object> new_value) { | 15909                                             Handle<Object> new_value) { | 
| 15906   if (cell->value() != *new_value) { | 15910   if (cell->value() != *new_value) { | 
| 15907     cell->set_value(*new_value); | 15911     cell->set_value(*new_value); | 
| 15908     Isolate* isolate = cell->GetIsolate(); | 15912     Isolate* isolate = cell->GetIsolate(); | 
| 15909     cell->dependent_code()->DeoptimizeDependentCodeGroup( | 15913     cell->dependent_code()->DeoptimizeDependentCodeGroup( | 
| 15910         isolate, DependentCode::kPropertyCellChangedGroup); | 15914         isolate, DependentCode::kPropertyCellChangedGroup); | 
| 15911   } | 15915   } | 
| 15912 } | 15916 } | 
| 15913 }  // namespace internal | 15917 }  // namespace internal | 
| 15914 }  // namespace v8 | 15918 }  // namespace v8 | 
| OLD | NEW | 
|---|