| Index: src/objects-debug.cc
|
| diff --git a/src/objects-debug.cc b/src/objects-debug.cc
|
| index 96da68778b52dff9ca1895333707d15fde2503ce..be072b1bde089401b7260e210fc6d00937613fe0 100644
|
| --- a/src/objects-debug.cc
|
| +++ b/src/objects-debug.cc
|
| @@ -698,11 +698,25 @@ void Code::VerifyEmbeddedObjectsDependency() {
|
| CHECK(map->dependent_code()->Contains(DependentCode::kWeakCodeGroup,
|
| cell));
|
| } else if (obj->IsJSObject()) {
|
| - WeakHashTable* table =
|
| - GetIsolate()->heap()->weak_object_to_code_table();
|
| - Handle<HeapObject> key_obj(HeapObject::cast(obj), isolate);
|
| - CHECK(DependentCode::cast(table->Lookup(key_obj))
|
| - ->Contains(DependentCode::kWeakCodeGroup, cell));
|
| + if (isolate->heap()->InNewSpace(obj)) {
|
| + ArrayList* list =
|
| + GetIsolate()->heap()->weak_code_to_new_space_ref_list();
|
| + bool found = false;
|
| + for (int i = 0; i < list->Length(); i += 2) {
|
| + WeakCell* obj_cell = WeakCell::cast(list->Get(i));
|
| + if (!obj_cell->cleared() && obj_cell->value() == obj &&
|
| + WeakCell::cast(list->Get(i + 1)) == cell) {
|
| + found = true;
|
| + break;
|
| + }
|
| + }
|
| + CHECK(found);
|
| + } else {
|
| + Handle<HeapObject> key_obj(HeapObject::cast(obj), isolate);
|
| + DependentCode* dep =
|
| + GetIsolate()->heap()->LookupWeakObjectToCodeDependency(key_obj);
|
| + dep->Contains(DependentCode::kWeakCodeGroup, cell);
|
| + }
|
| }
|
| }
|
| }
|
|
|