V8 Project
objects-inl.h File Reference
+ Include dependency graph for objects-inl.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::internal::SequentialStringKey< Char >
 
class  v8::internal::OneByteStringKey
 
class  v8::internal::SeqOneByteSubStringKey
 
class  v8::internal::TwoByteStringKey
 
class  v8::internal::Utf8StringKey
 
class  v8::internal::Code::FindAndReplacePattern
 

Namespaces

 v8
 Debugger support for the V8 JavaScript engine.
 
 v8::internal
 

Macros

#define TYPE_CHECKER(type, instancetype)
 
#define CAST_ACCESSOR(type)
 
#define INT_ACCESSORS(holder, name, offset)
 
#define ACCESSORS(holder, name, type, offset)
 
#define ACCESSORS_TO_SMI(holder, name, offset)
 
#define SMI_ACCESSORS(holder, name, offset)
 
#define SYNCHRONIZED_SMI_ACCESSORS(holder, name, offset)
 
#define NOBARRIER_SMI_ACCESSORS(holder, name, offset)
 
#define BOOL_GETTER(holder, field, name, offset)
 
#define BOOL_ACCESSORS(holder, field, name, offset)
 
#define TYPED_ARRAY_TYPE_CHECKER(Type, type, TYPE, ctype, size)
 
#define MAKE_STRUCT_CASE(NAME, Name, name)   case NAME##_TYPE: return true;
 
#define MAKE_STRUCT_PREDICATE(NAME, Name, name)
 
#define FIELD_ADDR(p, offset)    (reinterpret_cast<byte*>(p) + offset - kHeapObjectTag)
 
#define FIELD_ADDR_CONST(p, offset)    (reinterpret_cast<const byte*>(p) + offset - kHeapObjectTag)
 
#define READ_FIELD(p, offset)    (*reinterpret_cast<Object* const*>(FIELD_ADDR_CONST(p, offset)))
 
#define ACQUIRE_READ_FIELD(p, offset)
 
#define NOBARRIER_READ_FIELD(p, offset)
 
#define WRITE_FIELD(p, offset, value)    (*reinterpret_cast<Object**>(FIELD_ADDR(p, offset)) = value)
 
#define RELEASE_WRITE_FIELD(p, offset, value)
 
#define NOBARRIER_WRITE_FIELD(p, offset, value)
 
#define WRITE_BARRIER(heap, object, offset, value)
 
#define CONDITIONAL_WRITE_BARRIER(heap, object, offset, value, mode)
 
#define READ_DOUBLE_FIELD(p, offset)    (*reinterpret_cast<const double*>(FIELD_ADDR_CONST(p, offset)))
 
#define WRITE_DOUBLE_FIELD(p, offset, value)    (*reinterpret_cast<double*>(FIELD_ADDR(p, offset)) = value)
 
#define READ_INT_FIELD(p, offset)    (*reinterpret_cast<const int*>(FIELD_ADDR_CONST(p, offset)))
 
#define WRITE_INT_FIELD(p, offset, value)    (*reinterpret_cast<int*>(FIELD_ADDR(p, offset)) = value)
 
#define READ_INTPTR_FIELD(p, offset)    (*reinterpret_cast<const intptr_t*>(FIELD_ADDR_CONST(p, offset)))
 
#define WRITE_INTPTR_FIELD(p, offset, value)    (*reinterpret_cast<intptr_t*>(FIELD_ADDR(p, offset)) = value)
 
#define READ_UINT32_FIELD(p, offset)    (*reinterpret_cast<const uint32_t*>(FIELD_ADDR_CONST(p, offset)))
 
#define WRITE_UINT32_FIELD(p, offset, value)    (*reinterpret_cast<uint32_t*>(FIELD_ADDR(p, offset)) = value)
 
#define READ_INT32_FIELD(p, offset)    (*reinterpret_cast<const int32_t*>(FIELD_ADDR_CONST(p, offset)))
 
#define WRITE_INT32_FIELD(p, offset, value)    (*reinterpret_cast<int32_t*>(FIELD_ADDR(p, offset)) = value)
 
#define READ_INT64_FIELD(p, offset)    (*reinterpret_cast<const int64_t*>(FIELD_ADDR_CONST(p, offset)))
 
#define WRITE_INT64_FIELD(p, offset, value)    (*reinterpret_cast<int64_t*>(FIELD_ADDR(p, offset)) = value)
 
#define READ_SHORT_FIELD(p, offset)    (*reinterpret_cast<const uint16_t*>(FIELD_ADDR_CONST(p, offset)))
 
#define WRITE_SHORT_FIELD(p, offset, value)    (*reinterpret_cast<uint16_t*>(FIELD_ADDR(p, offset)) = value)
 
#define READ_BYTE_FIELD(p, offset)    (*reinterpret_cast<const byte*>(FIELD_ADDR_CONST(p, offset)))
 
#define NOBARRIER_READ_BYTE_FIELD(p, offset)
 
#define WRITE_BYTE_FIELD(p, offset, value)    (*reinterpret_cast<byte*>(FIELD_ADDR(p, offset)) = value)
 
#define NOBARRIER_WRITE_BYTE_FIELD(p, offset, value)
 
#define MAKE_STRUCT_CAST(NAME, Name, name)   CAST_ACCESSOR(Name)
 
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)
 
#define CASE(name)   case name: return true;
 
#define PSEUDO_SMI_ACCESSORS_LO(holder, name, offset)
 
#define PSEUDO_SMI_ACCESSORS_HI(holder, name, offset)
 
#define ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(name, type, offset)
 
#define EXTERNAL_ELEMENTS_CHECK(Type, type, TYPE, ctype, size)
 
#define FIXED_TYPED_ELEMENTS_CHECK(Type, type, TYPE, ctype, size)
 

Functions

 v8::internal::STATIC_ASSERT ((kStringRepresentationMask|kStringEncodingMask)==Internals::kFullStringRepresentationMask)
 
 v8::internal::STATIC_ASSERT (static_cast< uint32_t >(kStringEncodingMask)==Internals::kStringEncodingMask)
 
 v8::internal::STATIC_ASSERT ((kExternalStringTag|kOneByteStringTag)==Internals::kExternalOneByteRepresentationTag)
 
 v8::internal::STATIC_ASSERT (v8::String::ONE_BYTE_ENCODING==kOneByteStringTag)
 
 v8::internal::STATIC_ASSERT ((kExternalStringTag|kTwoByteStringTag)==Internals::kExternalTwoByteRepresentationTag)
 
 v8::internal::STATIC_ASSERT (v8::String::TWO_BYTE_ENCODING==kTwoByteStringTag)
 
template<>
bool v8::internal::Is< JSFunction > (Object *obj)
 
template<>
bool v8::internal::Is< JSArray > (Object *obj)
 
template<SearchMode search_mode, typename T >
int v8::internal::BinarySearch (T *array, Name *name, int low, int high, int valid_entries)
 
template<SearchMode search_mode, typename T >
int v8::internal::LinearSearch (T *array, Name *name, int len, int valid_entries)
 
template<SearchMode search_mode, typename T >
int v8::internal::Search (T *array, Name *name, int valid_entries)
 
static void v8::internal::EnsureHasTransitionArray (Handle< Map > map)
 
 v8::internal::ACCESSORS (AccessorInfo, expected_receiver_type, Object, kExpectedReceiverTypeOffset) ACCESSORS(DeclaredAccessorDescriptor
 
kSerializedDataOffset v8::internal::ACCESSORS (DeclaredAccessorInfo, descriptor, DeclaredAccessorDescriptor, kDescriptorOffset) ACCESSORS(FunctionTemplateInfo
 
kSerializedDataOffset kPrototypeTemplateOffset v8::internal::ACCESSORS (FunctionTemplateInfo, named_property_handler, Object, kNamedPropertyHandlerOffset) ACCESSORS(FunctionTemplateInfo
 
kSerializedDataOffset kPrototypeTemplateOffset kIndexedPropertyHandlerOffset v8::internal::ACCESSORS (FunctionTemplateInfo, instance_template, Object, kInstanceTemplateOffset) ACCESSORS(FunctionTemplateInfo
 
kSerializedDataOffset kPrototypeTemplateOffset kIndexedPropertyHandlerOffset kInstanceCallHandlerOffset v8::internal::ACCESSORS (FunctionTemplateInfo, access_check_info, Object, kAccessCheckInfoOffset) ACCESSORS(ObjectTemplateInfo
 
kSerializedDataOffset kPrototypeTemplateOffset kIndexedPropertyHandlerOffset kInstanceCallHandlerOffset kInternalFieldCountOffset v8::internal::ACCESSORS_TO_SMI (AllocationSite, pretenure_create_count, kPretenureCreateCountOffset) ACCESSORS(AllocationSite
 
kSerializedDataOffset kPrototypeTemplateOffset kIndexedPropertyHandlerOffset kInstanceCallHandlerOffset kInternalFieldCountOffset kDependentCodeOffset v8::internal::ACCESSORS_TO_SMI (Script, eval_from_instructions_offset, kEvalFrominstructionsOffsetOffset) Script
 
 v8::internal::ACCESSORS (SharedFunctionInfo, optimized_code_map, Object, kOptimizedCodeMapOffset) ACCESSORS(SharedFunctionInfo
 
kFeedbackVectorOffset v8::internal::ACCESSORS (SharedFunctionInfo, instance_class_name, Object, kInstanceClassNameOffset) BOOL_ACCESSORS(FunctionTemplateInfo
 
kFeedbackVectorOffset kHiddenPrototypeBit v8::internal::BOOL_ACCESSORS (FunctionTemplateInfo, flag, needs_access_check, kNeedsAccessCheckBit) BOOL_ACCESSORS(FunctionTemplateInfo
 
kFeedbackVectorOffset kHiddenPrototypeBit kReadOnlyPrototypeBit v8::internal::BOOL_ACCESSORS (FunctionTemplateInfo, flag, remove_prototype, kRemovePrototypeBit) BOOL_ACCESSORS(FunctionTemplateInfo
 
kFeedbackVectorOffset kHiddenPrototypeBit kReadOnlyPrototypeBit kDoNotCacheBit v8::internal::BOOL_ACCESSORS (SharedFunctionInfo, start_position_and_type, is_expression, kIsExpressionBit) BOOL_ACCESSORS(SharedFunctionInfo
 
kFeedbackVectorOffset kHiddenPrototypeBit kReadOnlyPrototypeBit kDoNotCacheBit kIsTopLevelBit v8::internal::BOOL_ACCESSORS (SharedFunctionInfo, compiler_hints, allows_lazy_compilation, kAllowLazyCompilation) BOOL_ACCESSORS(SharedFunctionInfo
 
kFeedbackVectorOffset kHiddenPrototypeBit kReadOnlyPrototypeBit kDoNotCacheBit kIsTopLevelBit kAllowLazyCompilationWithoutContext v8::internal::BOOL_ACCESSORS (SharedFunctionInfo, compiler_hints, uses_arguments, kUsesArguments) BOOL_ACCESSORS(SharedFunctionInfo
 
 v8::internal::PSEUDO_SMI_ACCESSORS_HI (SharedFunctionInfo, formal_parameter_count, kFormalParameterCountOffset) PSEUDO_SMI_ACCESSORS_LO(SharedFunctionInfo
 
kExpectedNofPropertiesOffset v8::internal::PSEUDO_SMI_ACCESSORS_HI (SharedFunctionInfo, start_position_and_type, kStartPositionAndTypeOffset) PSEUDO_SMI_ACCESSORS_LO(SharedFunctionInfo
 
kExpectedNofPropertiesOffset kFunctionTokenPositionOffset v8::internal::PSEUDO_SMI_ACCESSORS_HI (SharedFunctionInfo, compiler_hints, kCompilerHintsOffset) PSEUDO_SMI_ACCESSORS_LO(SharedFunctionInfo
 
kExpectedNofPropertiesOffset kFunctionTokenPositionOffset kOptCountAndBailoutReasonOffset v8::internal::PSEUDO_SMI_ACCESSORS_LO (SharedFunctionInfo, ast_node_count, kAstNodeCountOffset) PSEUDO_SMI_ACCESSORS_HI(SharedFunctionInfo
 
kExpectedNofPropertiesOffset kFunctionTokenPositionOffset kOptCountAndBailoutReasonOffset kProfilerTicksOffset v8::internal::BOOL_GETTER (SharedFunctionInfo, compiler_hints, optimization_disabled, kOptimizationDisabled) void SharedFunctionInfo
 
 v8::internal::BOOL_ACCESSORS (SharedFunctionInfo, compiler_hints, inline_builtin, kInlineBuiltin) BOOL_ACCESSORS(SharedFunctionInfo
 
kNameShouldPrintAsAnonymous v8::internal::BOOL_ACCESSORS (SharedFunctionInfo, compiler_hints, is_concise_method, kIsConciseMethod) bool Script
 
 v8::internal::ACCESSORS (JSFunction, prototype_or_initial_map, Object, kPrototypeOrInitialMapOffset) Map *JSFunction
 

Variables

 v8::internal::serialized_data
 
 v8::internal::ByteArray
 
kSerializedDataOffset v8::internal::prototype_template
 
kSerializedDataOffset v8::internal::Object
 
kSerializedDataOffset kPrototypeTemplateOffset v8::internal::indexed_property_handler
 
kSerializedDataOffset kPrototypeTemplateOffset kIndexedPropertyHandlerOffset v8::internal::instance_call_handler
 
kSerializedDataOffset kPrototypeTemplateOffset kIndexedPropertyHandlerOffset kInstanceCallHandlerOffset v8::internal::internal_field_count
 
kSerializedDataOffset kPrototypeTemplateOffset kIndexedPropertyHandlerOffset kInstanceCallHandlerOffset kInternalFieldCountOffset v8::internal::dependent_code
 
kSerializedDataOffset kPrototypeTemplateOffset kIndexedPropertyHandlerOffset kInstanceCallHandlerOffset kInternalFieldCountOffset v8::internal::DependentCode
 
 v8::internal::feedback_vector
 
 v8::internal::TypeFeedbackVector
 
kFeedbackVectorOffset v8::internal::flag
 
kFeedbackVectorOffset v8::internal::hidden_prototype
 
kFeedbackVectorOffset kHiddenPrototypeBit v8::internal::read_only_prototype
 
kFeedbackVectorOffset kHiddenPrototypeBit kReadOnlyPrototypeBit v8::internal::do_not_cache
 
kFeedbackVectorOffset kHiddenPrototypeBit kReadOnlyPrototypeBit kDoNotCacheBit v8::internal::start_position_and_type
 
kFeedbackVectorOffset kHiddenPrototypeBit kReadOnlyPrototypeBit kDoNotCacheBit v8::internal::is_toplevel
 
kFeedbackVectorOffset kHiddenPrototypeBit kReadOnlyPrototypeBit kDoNotCacheBit kIsTopLevelBit v8::internal::compiler_hints
 
kFeedbackVectorOffset kHiddenPrototypeBit kReadOnlyPrototypeBit kDoNotCacheBit kIsTopLevelBit v8::internal::allows_lazy_compilation_without_context
 
kFeedbackVectorOffset kHiddenPrototypeBit kReadOnlyPrototypeBit kDoNotCacheBit kIsTopLevelBit kAllowLazyCompilationWithoutContext v8::internal::has_duplicate_parameters
 
 v8::internal::expected_nof_properties
 
kExpectedNofPropertiesOffset v8::internal::function_token_position
 
kExpectedNofPropertiesOffset kFunctionTokenPositionOffset v8::internal::opt_count_and_bailout_reason
 
kExpectedNofPropertiesOffset kFunctionTokenPositionOffset kOptCountAndBailoutReasonOffset v8::internal::profiler_ticks
 
 v8::internal::name_should_print_as_anonymous
 

Macro Definition Documentation

◆ ACCESSORS

#define ACCESSORS (   holder,
  name,
  type,
  offset 
)
Value:
type* holder::name() const { return type::cast(READ_FIELD(this, offset)); } \
void holder::set_##name(type* value, WriteBarrierMode mode) { \
WRITE_FIELD(this, offset, value); \
CONDITIONAL_WRITE_BARRIER(GetHeap(), this, offset, value, mode); \
}
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be expose gc extension under the specified name show built in functions in stack traces use random jit cookie to mask large constants minimum length for automatic enable preparsing CPU profiler sampling interval in microseconds trace out of bounds accesses to external arrays default size of stack region v8 is allowed to maximum length of function source code printed in a stack trace min size of a semi the new space consists of two semi spaces print one trace line following each garbage collection do not print trace line after scavenger collection print cumulative GC statistics in name
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long mode(MIPS only)") DEFINE_BOOL(enable_always_align_csp
#define READ_FIELD(p, offset)
Definition: objects-inl.h:1179

Definition at line 82 of file objects-inl.h.

◆ ACCESSORS_TO_SMI

#define ACCESSORS_TO_SMI (   holder,
  name,
  offset 
)
Value:
Smi* holder::name() const { return Smi::cast(READ_FIELD(this, offset)); } \
void holder::set_##name(Smi* value, WriteBarrierMode mode) { \
WRITE_FIELD(this, offset, value); \
}

Definition at line 91 of file objects-inl.h.

◆ ACQUIRE_READ_FIELD

#define ACQUIRE_READ_FIELD (   p,
  offset 
)
Value:
reinterpret_cast<Object*>(base::Acquire_Load( \
reinterpret_cast<const base::AtomicWord*>(FIELD_ADDR_CONST(p, offset))))
intptr_t AtomicWord
Definition: atomicops.h:57
Atomic32 Acquire_Load(volatile const Atomic32 *ptr)
kSerializedDataOffset Object
Definition: objects-inl.h:5322
#define FIELD_ADDR_CONST(p, offset)
Definition: objects-inl.h:1176

Definition at line 1182 of file objects-inl.h.

◆ BOOL_ACCESSORS

#define BOOL_ACCESSORS (   holder,
  field,
  name,
  offset 
)
Value:
bool holder::name() const { \
return BooleanBit::get(field(), offset); \
} \
void holder::set_##name(bool value) { \
set_##field(BooleanBit::set(field(), offset, value)); \
}

Definition at line 132 of file objects-inl.h.

◆ BOOL_GETTER

#define BOOL_GETTER (   holder,
  field,
  name,
  offset 
)
Value:
bool holder::name() const { \
return BooleanBit::get(field(), offset); \
} \

Definition at line 126 of file objects-inl.h.

◆ CASE

#define CASE (   name)    case name: return true;

◆ CAST_ACCESSOR

#define CAST_ACCESSOR (   type)
Value:
type* type::cast(Object* object) { \
SLOW_DCHECK(object->Is##type()); \
return reinterpret_cast<type*>(object); \
} \
const type* type::cast(const Object* object) { \
SLOW_DCHECK(object->Is##type()); \
return reinterpret_cast<const type*>(object); \
}

Definition at line 66 of file objects-inl.h.

◆ CONDITIONAL_WRITE_BARRIER

#define CONDITIONAL_WRITE_BARRIER (   heap,
  object,
  offset,
  value,
  mode 
)
Value:
heap->incremental_marking()->RecordWrite( \
object, HeapObject::RawField(object, offset), value); \
if (heap->InNewSpace(value)) { \
heap->RecordWrite(object->address(), offset); \
} \
}
@ UPDATE_WRITE_BARRIER
Definition: objects.h:235

Definition at line 1210 of file objects-inl.h.

◆ EXTERNAL_ELEMENTS_CHECK

#define EXTERNAL_ELEMENTS_CHECK (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
bool JSObject::HasExternal##Type##Elements() { \
HeapObject* array = elements(); \
DCHECK(array != NULL); \
if (!array->IsHeapObject()) \
return false; \
return array->map()->instance_type() == EXTERNAL_##TYPE##_ARRAY_TYPE; \
}
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be NULL
TypeImpl< ZoneTypeConfig > Type

Definition at line 6398 of file objects-inl.h.

◆ FIELD_ADDR

#define FIELD_ADDR (   p,
  offset 
)     (reinterpret_cast<byte*>(p) + offset - kHeapObjectTag)

Definition at line 1173 of file objects-inl.h.

◆ FIELD_ADDR_CONST

#define FIELD_ADDR_CONST (   p,
  offset 
)     (reinterpret_cast<const byte*>(p) + offset - kHeapObjectTag)

Definition at line 1176 of file objects-inl.h.

◆ FIXED_TYPED_ELEMENTS_CHECK

#define FIXED_TYPED_ELEMENTS_CHECK (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
bool JSObject::HasFixed##Type##Elements() { \
HeapObject* array = elements(); \
DCHECK(array != NULL); \
if (!array->IsHeapObject()) \
return false; \
return array->map()->instance_type() == FIXED_##TYPE##_ARRAY_TYPE; \
}

Definition at line 6419 of file objects-inl.h.

◆ INT_ACCESSORS

#define INT_ACCESSORS (   holder,
  name,
  offset 
)
Value:
int holder::name() const { return READ_INT_FIELD(this, offset); } \
void holder::set_##name(int value) { WRITE_INT_FIELD(this, offset, value); }
#define WRITE_INT_FIELD(p, offset, value)
Definition: objects-inl.h:1263
#define READ_INT_FIELD(p, offset)
Definition: objects-inl.h:1260

Definition at line 77 of file objects-inl.h.

◆ MAKE_STRUCT_CASE

#define MAKE_STRUCT_CASE (   NAME,
  Name,
  name 
)    case NAME##_TYPE: return true;

◆ MAKE_STRUCT_CAST

#define MAKE_STRUCT_CAST (   NAME,
  Name,
  name 
)    CAST_ACCESSOR(Name)

Definition at line 3265 of file objects-inl.h.

◆ MAKE_STRUCT_PREDICATE

#define MAKE_STRUCT_PREDICATE (   NAME,
  Name,
  name 
)
Value:
bool Object::Is##Name() const { \
return Object::IsHeapObject() \
&& HeapObject::cast(this)->map()->instance_type() == NAME##_TYPE; \
}
bool Is(Object *obj)

Definition at line 1013 of file objects-inl.h.

◆ NOBARRIER_READ_BYTE_FIELD

#define NOBARRIER_READ_BYTE_FIELD (   p,
  offset 
)
Value:
static_cast<byte>(base::NoBarrier_Load( \
reinterpret_cast<base::Atomic8*>(FIELD_ADDR(p, offset))))
Atomic8 NoBarrier_Load(volatile const Atomic8 *ptr)
char Atomic8
Definition: atomicops.h:43
#define FIELD_ADDR(p, offset)
Definition: objects-inl.h:1173

Definition at line 1299 of file objects-inl.h.

◆ NOBARRIER_READ_FIELD

#define NOBARRIER_READ_FIELD (   p,
  offset 
)
Value:
reinterpret_cast<Object*>(base::NoBarrier_Load( \
reinterpret_cast<const base::AtomicWord*>(FIELD_ADDR_CONST(p, offset))))

Definition at line 1186 of file objects-inl.h.

◆ NOBARRIER_SMI_ACCESSORS

#define NOBARRIER_SMI_ACCESSORS (   holder,
  name,
  offset 
)
Value:
int holder::nobarrier_##name() const { \
Object* value = NOBARRIER_READ_FIELD(this, offset); \
return Smi::cast(value)->value(); \
} \
void holder::nobarrier_set_##name(int value) { \
NOBARRIER_WRITE_FIELD(this, offset, Smi::FromInt(value)); \
}
#define NOBARRIER_READ_FIELD(p, offset)
Definition: objects-inl.h:1186

Definition at line 117 of file objects-inl.h.

◆ NOBARRIER_WRITE_BYTE_FIELD

#define NOBARRIER_WRITE_BYTE_FIELD (   p,
  offset,
  value 
)
Value:
reinterpret_cast<base::Atomic8*>(FIELD_ADDR(p, offset)), \
static_cast<base::Atomic8>(value));
void NoBarrier_Store(volatile Atomic8 *ptr, Atomic8 value)

Definition at line 1306 of file objects-inl.h.

◆ NOBARRIER_WRITE_FIELD

#define NOBARRIER_WRITE_FIELD (   p,
  offset,
  value 
)
Value:
reinterpret_cast<base::AtomicWord*>(FIELD_ADDR(p, offset)), \
reinterpret_cast<base::AtomicWord>(value));

Definition at line 1198 of file objects-inl.h.

◆ ORDERED_HASH_TABLE_ITERATOR_ACCESSORS

#define ORDERED_HASH_TABLE_ITERATOR_ACCESSORS (   name,
  type,
  offset 
)
Value:
template<class Derived, class TableType> \
return type::cast(READ_FIELD(this, offset)); \
} \
template<class Derived, class TableType> \
void OrderedHashTableIterator<Derived, TableType>::set_##name( \
type* value, WriteBarrierMode mode) { \
WRITE_FIELD(this, offset, value); \
CONDITIONAL_WRITE_BARRIER(GetHeap(), this, offset, value, mode); \
}

Definition at line 6032 of file objects-inl.h.

◆ PSEUDO_SMI_ACCESSORS_HI

#define PSEUDO_SMI_ACCESSORS_HI (   holder,
  name,
  offset 
)
Value:
STATIC_ASSERT(holder::offset % kPointerSize == kIntSize); \
INT_ACCESSORS(holder, name, offset)
const int kPointerSize
Definition: globals.h:129
STATIC_ASSERT(v8::String::TWO_BYTE_ENCODING==kTwoByteStringTag)
const int kIntSize
Definition: globals.h:124

Definition at line 5492 of file objects-inl.h.

◆ PSEUDO_SMI_ACCESSORS_LO

#define PSEUDO_SMI_ACCESSORS_LO (   holder,
  name,
  offset 
)
Value:
STATIC_ASSERT(holder::offset % kPointerSize == 0); \
int holder::name() const { \
int value = READ_INT_FIELD(this, offset); \
DCHECK(kHeapObjectTag == 1); \
DCHECK((value & kHeapObjectTag) == 0); \
return value >> 1; \
} \
void holder::set_##name(int value) { \
DCHECK(kHeapObjectTag == 1); \
DCHECK((value & 0xC0000000) == 0xC0000000 || \
(value & 0xC0000000) == 0x0); \
WRITE_INT_FIELD(this, \
offset, \
(value << 1) & ~kHeapObjectTag); \
}
const int kHeapObjectTag
Definition: v8.h:5737

Definition at line 5475 of file objects-inl.h.

◆ READ_BYTE_FIELD

#define READ_BYTE_FIELD (   p,
  offset 
)     (*reinterpret_cast<const byte*>(FIELD_ADDR_CONST(p, offset)))

Definition at line 1296 of file objects-inl.h.

◆ READ_DOUBLE_FIELD

#define READ_DOUBLE_FIELD (   p,
  offset 
)     (*reinterpret_cast<const double*>(FIELD_ADDR_CONST(p, offset)))

Definition at line 1220 of file objects-inl.h.

◆ READ_FIELD

#define READ_FIELD (   p,
  offset 
)     (*reinterpret_cast<Object* const*>(FIELD_ADDR_CONST(p, offset)))

Definition at line 1179 of file objects-inl.h.

◆ READ_INT32_FIELD

#define READ_INT32_FIELD (   p,
  offset 
)     (*reinterpret_cast<const int32_t*>(FIELD_ADDR_CONST(p, offset)))

Definition at line 1278 of file objects-inl.h.

◆ READ_INT64_FIELD

#define READ_INT64_FIELD (   p,
  offset 
)     (*reinterpret_cast<const int64_t*>(FIELD_ADDR_CONST(p, offset)))

Definition at line 1284 of file objects-inl.h.

◆ READ_INT_FIELD

#define READ_INT_FIELD (   p,
  offset 
)     (*reinterpret_cast<const int*>(FIELD_ADDR_CONST(p, offset)))

Definition at line 1260 of file objects-inl.h.

◆ READ_INTPTR_FIELD

#define READ_INTPTR_FIELD (   p,
  offset 
)     (*reinterpret_cast<const intptr_t*>(FIELD_ADDR_CONST(p, offset)))

Definition at line 1266 of file objects-inl.h.

◆ READ_SHORT_FIELD

#define READ_SHORT_FIELD (   p,
  offset 
)     (*reinterpret_cast<const uint16_t*>(FIELD_ADDR_CONST(p, offset)))

Definition at line 1290 of file objects-inl.h.

◆ READ_UINT32_FIELD

#define READ_UINT32_FIELD (   p,
  offset 
)     (*reinterpret_cast<const uint32_t*>(FIELD_ADDR_CONST(p, offset)))

Definition at line 1272 of file objects-inl.h.

◆ RELEASE_WRITE_FIELD

#define RELEASE_WRITE_FIELD (   p,
  offset,
  value 
)
Value:
reinterpret_cast<base::AtomicWord*>(FIELD_ADDR(p, offset)), \
reinterpret_cast<base::AtomicWord>(value));
void Release_Store(volatile Atomic32 *ptr, Atomic32 value)

Definition at line 1193 of file objects-inl.h.

◆ SMI_ACCESSORS

#define SMI_ACCESSORS (   holder,
  name,
  offset 
)
Value:
int holder::name() const { \
Object* value = READ_FIELD(this, offset); \
return Smi::cast(value)->value(); \
} \
void holder::set_##name(int value) { \
WRITE_FIELD(this, offset, Smi::FromInt(value)); \
}

Definition at line 99 of file objects-inl.h.

◆ SYNCHRONIZED_SMI_ACCESSORS

#define SYNCHRONIZED_SMI_ACCESSORS (   holder,
  name,
  offset 
)
Value:
int holder::synchronized_##name() const { \
Object* value = ACQUIRE_READ_FIELD(this, offset); \
return Smi::cast(value)->value(); \
} \
void holder::synchronized_set_##name(int value) { \
RELEASE_WRITE_FIELD(this, offset, Smi::FromInt(value)); \
}
#define ACQUIRE_READ_FIELD(p, offset)
Definition: objects-inl.h:1182

Definition at line 108 of file objects-inl.h.

◆ TYPE_CHECKER

#define TYPE_CHECKER (   type,
  instancetype 
)
Value:
bool Object::Is##type() const { \
return Object::IsHeapObject() && \
HeapObject::cast(this)->map()->instance_type() == instancetype; \
}

Definition at line 59 of file objects-inl.h.

◆ TYPED_ARRAY_CASE

#define TYPED_ARRAY_CASE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case FIXED_##TYPE##_ARRAY_TYPE: \
element_size = size; \
break;
enable harmony numeric enable harmony object literal extensions Optimize object size

◆ TYPED_ARRAY_TYPE_CHECKER

#define TYPED_ARRAY_TYPE_CHECKER (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
TYPE_CHECKER(External##Type##Array, EXTERNAL_##TYPE##_ARRAY_TYPE) \
TYPE_CHECKER(Fixed##Type##Array, FIXED_##TYPE##_ARRAY_TYPE)
#define TYPE_CHECKER(type, instancetype)
Definition: objects-inl.h:59

Definition at line 645 of file objects-inl.h.

◆ WRITE_BARRIER

#define WRITE_BARRIER (   heap,
  object,
  offset,
  value 
)
Value:
heap->incremental_marking()->RecordWrite( \
object, HeapObject::RawField(object, offset), value); \
if (heap->InNewSpace(value)) { \
heap->RecordWrite(object->address(), offset); \
}

Definition at line 1203 of file objects-inl.h.

◆ WRITE_BYTE_FIELD

#define WRITE_BYTE_FIELD (   p,
  offset,
  value 
)     (*reinterpret_cast<byte*>(FIELD_ADDR(p, offset)) = value)

Definition at line 1303 of file objects-inl.h.

◆ WRITE_DOUBLE_FIELD

#define WRITE_DOUBLE_FIELD (   p,
  offset,
  value 
)     (*reinterpret_cast<double*>(FIELD_ADDR(p, offset)) = value)

Definition at line 1240 of file objects-inl.h.

◆ WRITE_FIELD

#define WRITE_FIELD (   p,
  offset,
  value 
)     (*reinterpret_cast<Object**>(FIELD_ADDR(p, offset)) = value)

Definition at line 1190 of file objects-inl.h.

◆ WRITE_INT32_FIELD

#define WRITE_INT32_FIELD (   p,
  offset,
  value 
)     (*reinterpret_cast<int32_t*>(FIELD_ADDR(p, offset)) = value)

Definition at line 1281 of file objects-inl.h.

◆ WRITE_INT64_FIELD

#define WRITE_INT64_FIELD (   p,
  offset,
  value 
)     (*reinterpret_cast<int64_t*>(FIELD_ADDR(p, offset)) = value)

Definition at line 1287 of file objects-inl.h.

◆ WRITE_INT_FIELD

#define WRITE_INT_FIELD (   p,
  offset,
  value 
)     (*reinterpret_cast<int*>(FIELD_ADDR(p, offset)) = value)

Definition at line 1263 of file objects-inl.h.

◆ WRITE_INTPTR_FIELD

#define WRITE_INTPTR_FIELD (   p,
  offset,
  value 
)     (*reinterpret_cast<intptr_t*>(FIELD_ADDR(p, offset)) = value)

Definition at line 1269 of file objects-inl.h.

◆ WRITE_SHORT_FIELD

#define WRITE_SHORT_FIELD (   p,
  offset,
  value 
)     (*reinterpret_cast<uint16_t*>(FIELD_ADDR(p, offset)) = value)

Definition at line 1293 of file objects-inl.h.

◆ WRITE_UINT32_FIELD

#define WRITE_UINT32_FIELD (   p,
  offset,
  value 
)     (*reinterpret_cast<uint32_t*>(FIELD_ADDR(p, offset)) = value)

Definition at line 1275 of file objects-inl.h.