v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
tagged-value-inl.h
Go to the documentation of this file.
1
// Copyright 2019 the V8 project authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#ifndef V8_OBJECTS_TAGGED_VALUE_INL_H_
6
#define V8_OBJECTS_TAGGED_VALUE_INL_H_
7
8
#include "
src/objects/tagged-value.h
"
9
// Include the non-inl header before the rest of the headers.
10
11
#include "
include/v8-internal.h
"
12
#include "
src/common/ptr-compr-inl.h
"
13
#include "
src/objects/maybe-object.h
"
14
#include "
src/objects/objects.h
"
15
#include "
src/objects/oddball.h
"
16
#include "
src/objects/tagged-impl-inl.h
"
17
#include "
src/roots/roots-inl.h
"
18
19
namespace
v8
{
20
namespace
internal
{
21
22
inline
StrongTaggedValue::StrongTaggedValue
(
Tagged<Object>
o)
23
:
24
#ifdef V8_COMPRESS_POINTERS
25
TaggedImpl
(
V8HeapCompressionScheme
::CompressObject(o.ptr()))
26
#
else
27
TaggedImpl
(o.ptr())
28
#endif
29
{
30
}
31
32
Tagged<Object>
StrongTaggedValue::ToObject
(
Isolate
* isolate,
33
StrongTaggedValue
object
) {
34
#ifdef V8_COMPRESS_POINTERS
35
return
Tagged<Object>
(
36
V8HeapCompressionScheme::DecompressTagged
(isolate,
object
.
ptr
()));
37
#else
38
return
Tagged<Object>
(
object
.
ptr
());
39
#endif
40
}
41
42
inline
TaggedValue::TaggedValue
(
Tagged<MaybeObject>
o)
43
:
44
#ifdef V8_COMPRESS_POINTERS
45
TaggedImpl
(
V8HeapCompressionScheme
::CompressAny(o.ptr()))
46
#
else
47
TaggedImpl
(o.ptr())
48
#endif
49
{
50
}
51
52
Tagged<MaybeObject>
TaggedValue::ToMaybeObject
(
Isolate
* isolate,
53
TaggedValue
object
) {
54
#ifdef V8_COMPRESS_POINTERS
55
return
Tagged<MaybeObject>
(
56
V8HeapCompressionScheme::DecompressTagged
(isolate,
object
.
ptr
()));
57
#else
58
return
Tagged<MaybeObject>
(
object
.
ptr
());
59
#endif
60
}
61
62
}
// namespace internal
63
}
// namespace v8
64
65
#endif
// V8_OBJECTS_TAGGED_VALUE_INL_H_
v8::internal::Isolate
Definition
isolate.h:586
v8::internal::StrongTaggedValue
Definition
tagged-value.h:20
v8::internal::StrongTaggedValue::StrongTaggedValue
constexpr StrongTaggedValue()
Definition
tagged-value.h:22
v8::internal::StrongTaggedValue::ToObject
static Tagged< Object > ToObject(Isolate *isolate, StrongTaggedValue object)
Definition
tagged-value-inl.h:32
v8::internal::TaggedImpl
Definition
tagged-impl.h:33
v8::internal::TaggedImpl< HeapObjectReferenceType::STRONG, Tagged_t >::ptr
V8_INLINE constexpr Tagged_t ptr() const
Definition
tagged-impl.h:114
v8::internal::TaggedValue
Definition
tagged-value.h:33
v8::internal::TaggedValue::TaggedValue
constexpr TaggedValue()
Definition
tagged-value.h:35
v8::internal::TaggedValue::ToMaybeObject
static Tagged< MaybeObject > ToMaybeObject(Isolate *isolate, TaggedValue object)
Definition
tagged-value-inl.h:52
v8::internal::Tagged
Definition
waiter-queue-node.h:21
v8::internal::V8HeapCompressionSchemeImpl
Definition
ptr-compr.h:23
v8::internal::V8HeapCompressionSchemeImpl::DecompressTagged
static V8_INLINE Address DecompressTagged(TOnHeapAddress on_heap_addr, Tagged_t raw_value)
maybe-object.h
v8::internal::Tagged
Tagged(T object) -> Tagged< T >
v8::internal::internal
internal
Definition
wasm-objects-inl.h:458
v8::internal::Tagged< Object >
Tagged< Object >
Definition
js-objects-inl.h:162
v8::internal::else
else
Definition
assembler-riscv.cc:1584
v8
Definition
api-arguments-inl.h:19
objects.h
oddball.h
ptr-compr-inl.h
roots-inl.h
tagged-impl-inl.h
tagged-value.h
v8-internal.h
src
objects
tagged-value-inl.h
Generated on Sun Apr 6 2025 21:08:56 for v8 by
1.12.0