v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::ReadOnlyDeserializer Class Referencefinal

#include <read-only-deserializer.h>

Inheritance diagram for v8::internal::ReadOnlyDeserializer:
Collaboration diagram for v8::internal::ReadOnlyDeserializer:

Public Member Functions

 ReadOnlyDeserializer (Isolate *isolate, const SnapshotData *data, bool can_rehash)
 
void DeserializeIntoIsolate ()
 
- Public Member Functions inherited from v8::internal::Deserializer< Isolate >
 ~Deserializer () override
 
 Deserializer (const Deserializer &)=delete
 
Deserializeroperator= (const Deserializer &)=delete
 
int ReadRepeatedRoot (SlotAccessor slot_accessor, int repeat_count)
 
- Public Member Functions inherited from v8::internal::RootVisitor
virtual ~RootVisitor ()=default
 
virtual void VisitRootPointer (Root root, const char *description, FullObjectSlot p)
 
virtual void VisitRootPointers (Root root, const char *description, OffHeapObjectSlot start, OffHeapObjectSlot end)
 
virtual void VisitRunningCode (FullObjectSlot code_slot, FullObjectSlot istream_or_smi_zero_slot)
 
virtual GarbageCollector collector () const
 

Private Member Functions

void PostProcessNewObjects ()
 

Additional Inherited Members

- Static Public Member Functions inherited from v8::internal::SerializerDeserializer
static void IterateStartupObjectCache (Isolate *isolate, RootVisitor *visitor)
 
static void IterateSharedHeapObjectCache (Isolate *isolate, RootVisitor *visitor)
 
- Static Public Member Functions inherited from v8::internal::RootVisitor
static const char * RootName (Root root)
 
- Protected Types inherited from v8::internal::SerializerDeserializer
enum class  SlotType { kAnySlot , kMapSlot }
 
enum  Bytecode : uint8_t {
  kNewObject = 0x00 , kBackref = 0x04 , kReadOnlyHeapRef , kStartupObjectCache ,
  kRootArray , kAttachedReference , kSharedHeapObjectCache , kNop ,
  kSynchronize , kVariableRepeatRoot , kOffHeapBackingStore , kOffHeapResizableBackingStore ,
  kEmbedderFieldsData , kApiWrapperFieldsData , kVariableRawData , kApiReference ,
  kExternalReference , kSandboxedApiReference , kSandboxedExternalReference , kSandboxedRawExternalReference ,
  kClearedWeakReference , kWeakPrefix , kRegisterPendingForwardRef , kResolvePendingForwardRef ,
  kNewContextlessMetaMap , kNewContextfulMetaMap , kIndirectPointerPrefix , kInitializeSelfIndirectPointer ,
  kAllocateJSDispatchEntry , kJSDispatchEntry , kProtectedPointerPrefix , kRootArrayConstants = 0x40 ,
  kFixedRawData = 0x60 , kFixedRepeatRoot = 0x80 , kHotObject = 0x90
}
 
template<Bytecode bytecode>
using SpaceEncoder
 
using NewObject = SpaceEncoder<kNewObject>
 
using FixedRawDataWithSize
 
using FixedRepeatRootWithCount
 
using RootArrayConstant
 
using HotObject = BytecodeValueEncoder<kHotObject, 0, kHotObjectCount - 1>
 
- Protected Member Functions inherited from v8::internal::Deserializer< Isolate >
 Deserializer (Isolate *isolate, base::Vector< const uint8_t > payload, uint32_t magic_number, bool deserializing_user_code, bool can_rehash)
 
void DeserializeDeferredObjects ()
 
void LogNewObjectEvents ()
 
void LogScriptEvents (Tagged< Script > script)
 
void LogNewMapEvents ()
 
void WeakenDescriptorArrays ()
 
Handle< HeapObjectGetBackReferencedObject ()
 
Handle< HeapObjectGetBackReferencedObject (uint32_t index)
 
void AddAttachedObject (DirectHandle< HeapObject > attached_object)
 
Isolateisolate () const
 
Isolatemain_thread_isolate () const
 
SnapshotByteSourcesource ()
 
base::Vector< const DirectHandle< AllocationSite > > new_allocation_sites () const
 
base::Vector< const DirectHandle< InstructionStream > > new_code_objects () const
 
base::Vector< const DirectHandle< Map > > new_maps () const
 
base::Vector< const DirectHandle< AccessorInfo > > accessor_infos () const
 
base::Vector< const DirectHandle< FunctionTemplateInfo > > function_template_infos () const
 
base::Vector< const DirectHandle< Script > > new_scripts () const
 
std::shared_ptr< BackingStorebacking_store (size_t i)
 
bool deserializing_user_code () const
 
bool should_rehash () const
 
void PushObjectToRehash (DirectHandle< HeapObject > object)
 
void Rehash ()
 
DirectHandle< HeapObjectReadObject ()
 
- Protected Member Functions inherited from v8::internal::SerializerDeserializer
void RestoreExternalReferenceRedirector (Isolate *isolate, Tagged< AccessorInfo > accessor_info)
 
void RestoreExternalReferenceRedirector (Isolate *isolate, Tagged< FunctionTemplateInfo > function_template_info)
 
- Static Protected Member Functions inherited from v8::internal::SerializerDeserializer
static bool CanBeDeferred (Tagged< HeapObject > o, SlotType slot_type)
 
- Static Protected Attributes inherited from v8::internal::SerializerDeserializer
static const int kRootArrayConstantsCount = 0x20
 
static const int kFixedRawDataCount = 0x20
 
static const int kFixedRepeatRootCount = 0x10
 
static const int kHotObjectCount = 8
 
static const int kDoubleAlignmentSentinel = 0
 
static const int kFirstEncodableFixedRawDataSize = 1
 
static const int kLastEncodableFixedRawDataSize
 
static const int kFirstEncodableRepeatRootCount = 2
 
static const int kLastEncodableFixedRepeatRootCount
 
static const int kFirstEncodableVariableRepeatRootCount
 
static const uint32_t kEmptyBackingStoreRefSentinel = 0
 

Detailed Description

Definition at line 16 of file read-only-deserializer.h.

Constructor & Destructor Documentation

◆ ReadOnlyDeserializer()

v8::internal::ReadOnlyDeserializer::ReadOnlyDeserializer ( Isolate * isolate,
const SnapshotData * data,
bool can_rehash )

Definition at line 151 of file read-only-deserializer.cc.

Member Function Documentation

◆ DeserializeIntoIsolate()

void v8::internal::ReadOnlyDeserializer::DeserializeIntoIsolate ( )

Definition at line 157 of file read-only-deserializer.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PostProcessNewObjects()

void v8::internal::ReadOnlyDeserializer::PostProcessNewObjects ( )
private

Definition at line 359 of file read-only-deserializer.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: