v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
struct-inl.h
Go to the documentation of this file.
1// Copyright 2018 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_STRUCT_INL_H_
6#define V8_OBJECTS_STRUCT_INL_H_
7
9// Include the non-inl header before the rest of the headers.
10
13#include "src/objects/oddball.h"
14#include "src/roots/roots-inl.h"
15
16// Has to be the last include (doesn't have include guards):
18
19namespace v8 {
20namespace internal {
21
22#include "torque-generated/src/objects/struct-tq-inl.inc"
23
25
26Tagged<Object> Tuple2::value1() const { return value1_.load(); }
28 value1_.store(this, value, mode);
29}
30
31Tagged<Object> Tuple2::value2() const { return value2_.load(); }
33 value2_.store(this, value, mode);
34}
35
37
39 return component == ACCESSOR_GETTER ? getter() : setter();
40}
41
43 if (component == ACCESSOR_GETTER) {
44 set_getter(value);
45 } else {
46 set_setter(value);
47 }
48}
49
51 ReleaseStoreTag tag) {
52 if (component == ACCESSOR_GETTER) {
53 set_getter(value, tag);
54 } else {
55 set_setter(value, tag);
56 }
57}
58
61 getter_.store(this, value, mode);
62}
63
65 return getter_.Acquire_Load();
66}
68 WriteBarrierMode mode) {
69 getter_.Release_Store(this, value, mode);
70}
71
74 setter_.store(this, value, mode);
75}
76
78 return setter_.Acquire_Load();
79}
81 WriteBarrierMode mode) {
82 setter_.Release_Store(this, value, mode);
83}
84
89
91 Tagged<Object> setter_value) {
92 return (getter() == getter_value) && (setter() == setter_value);
93}
94
95int ClassPositions::start() const { return start_.load().value(); }
97 start_.store(this, Smi::FromInt(value));
98}
99
100int ClassPositions::end() const { return end_.load().value(); }
101void ClassPositions::set_end(int value) {
102 end_.store(this, Smi::FromInt(value));
103}
104
105} // namespace internal
106} // namespace v8
107
109
110#endif // V8_OBJECTS_STRUCT_INL_H_
PropertyT * getter
Tagged< Object > getter() const
Definition struct-inl.h:59
void set_getter(Tagged< Object > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
Definition struct-inl.h:60
void SetComponents(Tagged< Object > getter, Tagged< Object > setter)
Definition struct-inl.h:85
void set_setter(Tagged< Object > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
Definition struct-inl.h:73
Tagged< Object > setter() const
Definition struct-inl.h:72
bool Equals(Tagged< Object > getter_value, Tagged< Object > setter_value)
Definition struct-inl.h:90
void set(AccessorComponent component, Tagged< Object > value)
Definition struct-inl.h:42
TaggedMember< Object > setter_
Definition struct.h:115
TaggedMember< Object > getter_
Definition struct.h:114
TaggedMember< Smi > end_
Definition struct.h:136
void set_start(int value)
Definition struct-inl.h:96
TaggedMember< Smi > start_
Definition struct.h:135
static constexpr Tagged< Smi > FromInt(int value)
Definition smi.h:38
void set_value2(Tagged< Object > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
Definition struct-inl.h:32
TaggedMember< Object > value2_
Definition struct.h:61
TaggedMember< Object > value1_
Definition struct.h:60
void set_value1(Tagged< Object > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
Definition struct-inl.h:27
Tagged< Object > value2() const
Definition struct-inl.h:31
@ ACCESSOR_GETTER
Definition objects.h:879
kInstanceDescriptorsOffset kTransitionsOrPrototypeInfoOffset IsNull(value)||IsJSProxy(value)||IsWasmObject(value)||(IsJSObject(value) &&(HeapLayout
Definition map-inl.h:70
#define TQ_OBJECT_CONSTRUCTORS_IMPL(Type)
#define NEVER_READ_ONLY_SPACE_IMPL(Type)