![]() |
v8 11.3.244 (node 20.3.0)
V8 is Google's open source JavaScript engine
|
#include <stddef.h>#include <stdint.h>#include <string.h>#include <atomic>#include <type_traits>#include "v8-version.h"#include "v8config.h"

Go to the source code of this file.
Data Structures | |
| struct | SmiTagging< 4 > |
| struct | SmiTagging< 8 > |
| class | Internals |
| struct | CastCheck< PerformCheck > |
| class | BackingStoreBase |
| class | ValueHelper |
Namespaces | |
| namespace | v8 |
| namespace | v8::internal |
Macros | |
| #define | TAG(i) |
| #define | SHARED_EXTERNAL_POINTER_TAGS(V) |
| #define | PER_ISOLATE_EXTERNAL_POINTER_TAGS(V) |
| #define | ALL_EXTERNAL_POINTER_TAGS(V) |
| #define | EXTERNAL_POINTER_TAG_ENUM(Name, Tag) Name = Tag, |
| #define | MAKE_TAG(HasMarkBit, TypeTag) |
| #define | CHECK_SHARED_EXTERNAL_POINTER_TAGS(Tag, ...) static_assert(IsSharedExternalPointerType(Tag)); |
| #define | CHECK_NON_SHARED_EXTERNAL_POINTER_TAGS(Tag, ...) static_assert(!IsSharedExternalPointerType(Tag)); |
Typedefs | |
| typedef uintptr_t | Address |
| using | PlatformSmiTagging = SmiTagging< kApiTaggedSize > |
| using | SandboxedPointer_t = Address |
| using | ExternalPointerHandle = uint32_t |
| using | ExternalPointer_t = Address |
Enumerations | |
| enum | ExternalPointerTag : uint64_t { kExternalPointerNullTag = MAKE_TAG(0, 0b00000000) , kAnyExternalPointerTag = MAKE_TAG(1, 0b11111111) , kExternalPointerFreeEntryTag = MAKE_TAG(0, 0b11111111) , kExternalPointerEvacuationEntryTag = MAKE_TAG(1, 0b11100111) } |
Functions | |
| constexpr bool | PointerCompressionIsEnabled () |
| constexpr bool | SmiValuesAre31Bits () |
| constexpr bool | SmiValuesAre32Bits () |
| constexpr bool | Is64 () |
| constexpr bool | SandboxIsEnabled () |
| V8_EXPORT internal::Isolate * | IsolateFromNeverReadOnlySpaceObject (Address obj) |
| V8_EXPORT bool | ShouldThrowOnError (internal::Isolate *isolate) |
| template<class T > | |
| V8_INLINE void | PerformCastCheck (T *data) |
Variables | |
| constexpr int | KB = 1024 |
| constexpr int | MB = KB * 1024 |
| constexpr int | GB = MB * 1024 |
| const int | kApiSystemPointerSize = sizeof(void*) |
| const int | kApiDoubleSize = sizeof(double) |
| const int | kApiInt32Size = sizeof(int32_t) |
| const int | kApiInt64Size = sizeof(int64_t) |
| const int | kApiSizetSize = sizeof(size_t) |
| const int | kHeapObjectTag = 1 |
| const int | kWeakHeapObjectTag = 3 |
| const int | kHeapObjectTagSize = 2 |
| const intptr_t | kHeapObjectTagMask = (1 << kHeapObjectTagSize) - 1 |
| const intptr_t | kHeapObjectReferenceTagMask = 1 << (kHeapObjectTagSize - 1) |
| const int | kForwardingTag = 0 |
| const int | kForwardingTagSize = 2 |
| const intptr_t | kForwardingTagMask = (1 << kForwardingTagSize) - 1 |
| const int | kSmiTag = 0 |
| const int | kSmiTagSize = 1 |
| const intptr_t | kSmiTagMask = (1 << kSmiTagSize) - 1 |
| constexpr intptr_t | kIntptrAllBitsSet = intptr_t{-1} |
| constexpr uintptr_t | kUintptrAllBitsSet |
| const int | kApiTaggedSize = kApiSystemPointerSize |
| const int | kSmiShiftSize = PlatformSmiTagging::kSmiShiftSize |
| const int | kSmiValueSize = PlatformSmiTagging::kSmiValueSize |
| const int | kSmiMinValue = static_cast<int>(PlatformSmiTagging::kSmiMinValue) |
| const int | kSmiMaxValue = static_cast<int>(PlatformSmiTagging::kSmiMaxValue) |
| constexpr uint64_t | kExternalPointerMarkBit = 1ULL << 62 |
| constexpr uint64_t | kExternalPointerTagMask = 0x40ff000000000000 |
| constexpr uint64_t | kExternalPointerTagShift = 48 |
| constexpr uint64_t | kAllExternalPointerTypeTags [] |
| constexpr int | kGarbageCollectionReasonMaxValue = 27 |
| #define ALL_EXTERNAL_POINTER_TAGS | ( | V | ) |
Definition at line 423 of file v8-internal.h.
| #define CHECK_NON_SHARED_EXTERNAL_POINTER_TAGS | ( | Tag, | |
| ... | |||
| ) | static_assert(!IsSharedExternalPointerType(Tag)); |
Definition at line 462 of file v8-internal.h.
| #define CHECK_SHARED_EXTERNAL_POINTER_TAGS | ( | Tag, | |
| ... | |||
| ) | static_assert(IsSharedExternalPointerType(Tag)); |
Definition at line 460 of file v8-internal.h.
| #define EXTERNAL_POINTER_TAG_ENUM | ( | Name, | |
| Tag | |||
| ) | Name = Tag, |
Definition at line 427 of file v8-internal.h.
| #define MAKE_TAG | ( | HasMarkBit, | |
| TypeTag | |||
| ) |
Definition at line 428 of file v8-internal.h.
| #define PER_ISOLATE_EXTERNAL_POINTER_TAGS | ( | V | ) |
Definition at line 405 of file v8-internal.h.
| #define SHARED_EXTERNAL_POINTER_TAGS | ( | V | ) |
| #define TAG | ( | i | ) |
Definition at line 382 of file v8-internal.h.