chromium/v8/src/heap/weak-object-worklists.cc

// Copyright 2020 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "src/heap/weak-object-worklists.h"

#include "src/heap/heap-inl.h"
#include "src/heap/heap.h"
#include "src/objects/hash-table.h"
#include "src/objects/heap-object.h"
#include "src/objects/js-function.h"
#include "src/objects/js-weak-refs-inl.h"
#include "src/objects/js-weak-refs.h"
#include "src/objects/shared-function-info.h"
#include "src/objects/transitions.h"

namespace v8 {

namespace internal {

WeakObjects::Local::Local(WeakObjects* weak_objects)
    :{}

void WeakObjects::Local::Publish() {}

void WeakObjects::UpdateAfterScavenge() {}

void WeakObjects::Clear() {}

// static
void WeakObjects::UpdateTransitionArrays(
    WeakObjectWorklist<Tagged<TransitionArray>>& transition_arrays) {}

// static
void WeakObjects::UpdateEphemeronHashTables(
    WeakObjectWorklist<Tagged<EphemeronHashTable>>& ephemeron_hash_tables) {}

namespace {
bool EphemeronUpdater(Ephemeron slot_in, Ephemeron* slot_out) {}
}  // anonymous namespace

// static
void WeakObjects::UpdateCurrentEphemerons(
    WeakObjectWorklist<Ephemeron>& current_ephemerons) {}

// static
void WeakObjects::UpdateNextEphemerons(
    WeakObjectWorklist<Ephemeron>& next_ephemerons) {}

// static
void WeakObjects::UpdateDiscoveredEphemerons(
    WeakObjectWorklist<Ephemeron>& discovered_ephemerons) {}

namespace {
void UpdateWeakReferencesHelper(
    WeakObjects::WeakObjectWorklist<HeapObjectAndSlot>& weak_references) {}
}  // anonymous namespace

// static
void WeakObjects::UpdateWeakReferencesTrivial(
    WeakObjectWorklist<HeapObjectAndSlot>& weak_references) {}

// static
void WeakObjects::UpdateWeakReferencesNonTrivial(
    WeakObjectWorklist<HeapObjectAndSlot>& weak_references) {}

// static
void WeakObjects::UpdateWeakReferencesNonTrivialUnmarked(
    WeakObjectWorklist<HeapObjectAndSlot>& weak_references) {}

// static
void WeakObjects::UpdateWeakObjectsInCode(
    WeakObjectWorklist<HeapObjectAndCode>& weak_objects_in_code) {}

// static
void WeakObjects::UpdateJSWeakRefs(
    WeakObjectWorklist<Tagged<JSWeakRef>>& js_weak_refs) {}

// static
void WeakObjects::UpdateWeakCells(
    WeakObjectWorklist<Tagged<WeakCell>>& weak_cells) {}

// static
void WeakObjects::UpdateCodeFlushingCandidates(
    WeakObjectWorklist<Tagged<SharedFunctionInfo>>& code_flushing_candidates) {}

// static
void WeakObjects::UpdateFlushedJSFunctions(
    WeakObjectWorklist<Tagged<JSFunction>>& flushed_js_functions) {}

// static
void WeakObjects::UpdateBaselineFlushingCandidates(
    WeakObjectWorklist<Tagged<JSFunction>>& baseline_flush_candidates) {}

#ifdef DEBUG
// static
template <typename Type>
bool WeakObjects::ContainsYoungObjects(
    WeakObjectWorklist<Tagged<Type>>& worklist) {}
#endif

}  // namespace internal
}  // namespace v8