| 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 12487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12498 | 12498 |
| 12499 // Mark all the code that needs to be deoptimized. | 12499 // Mark all the code that needs to be deoptimized. |
| 12500 bool marked = false; | 12500 bool marked = false; |
| 12501 bool invalidate_embedded_objects = group == kWeakCodeGroup; | 12501 bool invalidate_embedded_objects = group == kWeakCodeGroup; |
| 12502 for (int i = start; i < end; i++) { | 12502 for (int i = start; i < end; i++) { |
| 12503 Object* obj = object_at(i); | 12503 Object* obj = object_at(i); |
| 12504 if (obj->IsWeakCell()) { | 12504 if (obj->IsWeakCell()) { |
| 12505 WeakCell* cell = WeakCell::cast(obj); | 12505 WeakCell* cell = WeakCell::cast(obj); |
| 12506 if (cell->cleared()) continue; | 12506 if (cell->cleared()) continue; |
| 12507 Code* code = Code::cast(cell->value()); | 12507 Code* code = Code::cast(cell->value()); |
| 12508 if (!code->marked_for_deoptimization() && | 12508 if (!code->marked_for_deoptimization()) { |
| 12509 (!code->is_turbofanned() || FLAG_turbo_deoptimization)) { | |
| 12510 SetMarkedForDeoptimization(code, group); | 12509 SetMarkedForDeoptimization(code, group); |
| 12511 if (invalidate_embedded_objects) { | 12510 if (invalidate_embedded_objects) { |
| 12512 code->InvalidateEmbeddedObjects(); | 12511 code->InvalidateEmbeddedObjects(); |
| 12513 } | 12512 } |
| 12514 marked = true; | 12513 marked = true; |
| 12515 } | 12514 } |
| 12516 } else { | 12515 } else { |
| 12517 DCHECK(obj->IsForeign()); | 12516 DCHECK(obj->IsForeign()); |
| 12518 CompilationDependencies* info = | 12517 CompilationDependencies* info = |
| 12519 reinterpret_cast<CompilationDependencies*>( | 12518 reinterpret_cast<CompilationDependencies*>( |
| (...skipping 4776 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 17296 void PropertyCell::SetValueWithInvalidation(Handle<PropertyCell> cell, | 17295 void PropertyCell::SetValueWithInvalidation(Handle<PropertyCell> cell, |
| 17297 Handle<Object> new_value) { | 17296 Handle<Object> new_value) { |
| 17298 if (cell->value() != *new_value) { | 17297 if (cell->value() != *new_value) { |
| 17299 cell->set_value(*new_value); | 17298 cell->set_value(*new_value); |
| 17300 Isolate* isolate = cell->GetIsolate(); | 17299 Isolate* isolate = cell->GetIsolate(); |
| 17301 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 17300 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
| 17302 isolate, DependentCode::kPropertyCellChangedGroup); | 17301 isolate, DependentCode::kPropertyCellChangedGroup); |
| 17303 } | 17302 } |
| 17304 } | 17303 } |
| 17305 } } // namespace v8::internal | 17304 } } // namespace v8::internal |
| OLD | NEW |