1// Copyright 2016 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// Note 1: Any file that includes this one should include object-macros-undef.h
6// at the bottom.
7
8// Note 2: This file is deliberately missing the include guards (the undeffing
9// approach wouldn't work otherwise).
10
11#define DECL_BOOLEAN_ACCESSORS(name) \
12  inline bool name() const;          \
13  inline void set_##name(bool value);
14
15#define DECL_INT_ACCESSORS(name) \
16  inline int name() const;       \
17  inline void set_##name(int value);
18
19#define DECL_ACCESSORS(name, type)    \
20  inline type* name() const;          \
21  inline void set_##name(type* value, \
22                         WriteBarrierMode mode = UPDATE_WRITE_BARRIER);
23
24#define DECLARE_CAST(type)                   \
25  INLINE(static type* cast(Object* object)); \
26  INLINE(static const type* cast(const Object* object));
27
28#ifdef VERIFY_HEAP
29#define DECLARE_VERIFIER(Name) void Name##Verify();
30#else
31#define DECLARE_VERIFIER(Name)
32#endif
33