// Copyright 2023 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. #ifndef V8_SNAPSHOT_READ_ONLY_SERIALIZER_DESERIALIZER_H_ #define V8_SNAPSHOT_READ_ONLY_SERIALIZER_DESERIALIZER_H_ #include "src/common/globals.h" namespace v8 { namespace internal { namespace ro { // Common functionality for RO serialization and deserialization. enum Bytecode { … }; static constexpr int kNumberOfBytecodes = …; // Like std::vector<bool> but with a known underlying encoding. class BitSet final { … }; // Tagged slots need relocation after deserialization when V8_STATIC_ROOTS is // disabled. // // Note this encoding works for all remaining build configs, in particular for // all supported kTaggedSize values. struct EncodedTagged { … }; static_assert …; struct EncodedExternalReference { … }; static_assert …; } // namespace ro } // namespace internal } // namespace v8 #endif // V8_SNAPSHOT_READ_ONLY_SERIALIZER_DESERIALIZER_H_