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_CELL_INL_H_ |
6 | #define V8_OBJECTS_CELL_INL_H_ |
7 | |
8 | #include "src/objects/cell.h" |
9 | |
10 | #include "src/heap/heap-write-barrier-inl.h" |
11 | #include "src/objects-inl.h" |
12 | |
13 | // Has to be the last include (doesn't have include guards): |
14 | #include "src/objects/object-macros.h" |
15 | |
16 | namespace v8 { |
17 | namespace internal { |
18 | |
19 | OBJECT_CONSTRUCTORS_IMPL(Cell, HeapObject) |
20 | |
21 | CAST_ACCESSOR(Cell) |
22 | |
23 | ACCESSORS(Cell, value, Object, kValueOffset) |
24 | |
25 | Cell Cell::FromValueAddress(Address value) { |
26 | return Cell::cast(HeapObject::FromAddress(value - kValueOffset)); |
27 | } |
28 | |
29 | } // namespace internal |
30 | } // namespace v8 |
31 | |
32 | #include "src/objects/object-macros-undef.h" |
33 | |
34 | #endif // V8_OBJECTS_CELL_INL_H_ |
35 |