V8 Project
objects.cc File Reference
#include "src/v8.h"
#include "src/accessors.h"
#include "src/allocation-site-scopes.h"
#include "src/api.h"
#include "src/arguments.h"
#include "src/base/bits.h"
#include "src/bootstrapper.h"
#include "src/code-stubs.h"
#include "src/codegen.h"
#include "src/cpu-profiler.h"
#include "src/date.h"
#include "src/debug.h"
#include "src/deoptimizer.h"
#include "src/elements.h"
#include "src/execution.h"
#include "src/field-index-inl.h"
#include "src/field-index.h"
#include "src/full-codegen.h"
#include "src/heap/mark-compact.h"
#include "src/heap/objects-visiting-inl.h"
#include "src/hydrogen.h"
#include "src/ic/ic.h"
#include "src/isolate-inl.h"
#include "src/log.h"
#include "src/lookup.h"
#include "src/macro-assembler.h"
#include "src/objects-inl.h"
#include "src/prototype.h"
#include "src/safepoint-table.h"
#include "src/string-search.h"
#include "src/string-stream.h"
#include "src/utils.h"
+ Include dependency graph for objects.cc:

Go to the source code of this file.

Classes

struct  v8::internal::DescriptorArrayAppender
 
struct  v8::internal::FixedArrayAppender
 
class  v8::internal::JSObjectWalkVisitor< ContextObject >
 
class  v8::internal::IntrusiveMapTransitionIterator
 
class  v8::internal::IntrusivePrototypeTransitionIterator
 
class  v8::internal::TraversableMap
 
class  v8::internal::CodeCacheHashTableKey
 
class  v8::internal::PolymorphicCodeCacheHashTableKey
 
class  v8::internal::RawStringComparator< Chars1, Chars2 >
 
class  v8::internal::RawStringComparator< uint16_t, uint16_t >
 
class  v8::internal::RawStringComparator< uint8_t, uint8_t >
 
class  v8::internal::StringComparator
 
class  v8::internal::StringComparator::State
 
class  v8::internal::StringSharedKey
 
class  v8::internal::RegExpKey
 
class  v8::internal::InternalizedStringKey
 
class  v8::internal::TwoCharHashTableKey
 
class  v8::internal::StringsKey
 
struct  v8::internal::EnumIndexComparator
 

Namespaces

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

Macros

#define TYPED_ARRAY_SHORT_PRINT(Type, type, TYPE, ctype, size)
 
#define MAKE_STRUCT_CASE(NAME, Name, name)
 
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)
 
#define MAKE_STRUCT_CASE(NAME, Name, name)    case NAME##_TYPE:
 
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)
 
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)
 
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)
 
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)
 
#define DECLARE_TAG(ignore1, name, ignore2)   name,
 
#define DECLARE_TAG(ignore1, ignore2, name)   name,
 
#define HANDLE_CODE_AGE(AGE)
 
#define HANDLE_CODE_AGE(AGE)
 
#define CASE(name)   case name: return #name;
 
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)
 
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)
 
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)
 
#define INSTANCE_TYPE_TO_ARRAY_TYPE(Type, type, TYPE, ctype, size)
 
#define INSTANCE_TYPE_TO_ELEMENT_SIZE(Type, type, TYPE, ctype, size)
 
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)    case TYPE##_ELEMENTS: return EXTERNAL_##TYPE##_ELEMENTS;
 

Functions

template<typename To >
static To * v8::internal::CheckedCast (void *from)
 
static Handle< Object > v8::internal::PerformCompare (const BitmaskCompareDescriptor &descriptor, char *ptr, Isolate *isolate)
 
static Handle< Object > v8::internal::PerformCompare (const PointerCompareDescriptor &descriptor, char *ptr, Isolate *isolate)
 
static Handle< Object > v8::internal::GetPrimitiveValue (const PrimitiveValueDescriptor &descriptor, char *ptr, Isolate *isolate)
 
static Handle< Object > v8::internal::GetDeclaredAccessorProperty (Handle< Object > receiver, Handle< DeclaredAccessorInfo > info, Isolate *isolate)
 
static bool v8::internal::FindAllCanReadHolder (LookupIterator *it)
 
static bool v8::internal::FindAllCanWriteHolder (LookupIterator *it)
 
OStream & v8::internal::operator<< (OStream &os, const Brief &v)
 
static bool v8::internal::AnWord (String *str)
 
template<class T >
static int v8::internal::AppendUniqueCallbacks (NeanderArray *callbacks, Handle< typename T::Array > array, int valid_descriptors)
 
static bool v8::internal::ContainsMap (MapHandleList *maps, Handle< Map > map)
 
template<class T >
static Handle< Tv8::internal::MaybeNull (T *p)
 
static Map * v8::internal::FindClosestElementsTransition (Map *map, ElementsKind to_kind)
 
static Handle< Map > v8::internal::AddMissingElementsTransitions (Handle< Map > map, ElementsKind to_kind)
 
static Handle< SeededNumberDictionary > v8::internal::CopyFastElementsToDictionary (Handle< FixedArrayBase > array, int length, Handle< SeededNumberDictionary > dictionary)
 
static Smi * v8::internal::GenerateIdentityHash (Isolate *isolate)
 
template<typename ProxyType >
static Handle< Smi > v8::internal::GetOrCreateIdentityHashHelper (Handle< ProxyType > proxy)
 
template<typename Dictionary >
static void v8::internal::FreezeDictionary (Dictionary *dictionary)
 
static bool v8::internal::FilterKey (Object *key, PropertyAttributes filter)
 
static bool v8::internal::ContainsOnlyValidKeys (Handle< FixedArray > array)
 
static Handle< FixedArray > v8::internal::ReduceFixedArrayTo (Handle< FixedArray > array, int length)
 
static Handle< FixedArray > v8::internal::GetEnumPropertyKeys (Handle< JSObject > object, bool cache_result)
 
static bool v8::internal::UpdateGetterSetterInDictionary (SeededNumberDictionary *dictionary, uint32_t index, Object *getter, Object *setter, PropertyAttributes attributes)
 
template<typename SourceChar >
static void v8::internal::CalculateLineEndsImpl (Isolate *isolate, List< int > *line_ends, Vector< const SourceChar > src, bool include_ending_line)
 
template<typename Char >
static bool v8::internal::CompareRawStringContents (const Char *const a, const Char *const b, int length)
 
static uint32_t v8::internal::ObjectAddressForHashing (Object *object)
 
static bool v8::internal::CheckEquivalent (Map *first, Map *second)
 
Handle< Object > v8::internal::CacheInitialJSArrayMaps (Handle< Context > native_context, Handle< Map > initial_map)
 
static void v8::internal::ClearWrapperCacheWeakCallback (const v8::WeakCallbackData< v8::Value, void > &data)
 
OStream & v8::internal::operator<< (OStream &os, const SourceCodeOf &v)
 
static bool v8::internal::IsCodeEquivalent (Code *code, Code *recompiled)
 
static void v8::internal::GetMinInobjectSlack (Map *map, void *data)
 
static void v8::internal::ShrinkInstanceSize (Map *map, void *data)
 
static Code::Age v8::internal::EffectiveAge (Code::Age age)
 
static bool v8::internal::GetOldValue (Isolate *isolate, Handle< JSObject > object, uint32_t index, List< Handle< Object > > *old_values, List< uint32_t > *indices)
 
static void v8::internal::EnqueueSpliceRecord (Handle< JSArray > object, uint32_t index, Handle< JSArray > deleted, uint32_t add_count)
 
static void v8::internal::BeginPerformSplice (Handle< JSArray > object)
 
static void v8::internal::EndPerformSplice (Handle< JSArray > object)
 
static bool v8::internal::CodeListContains (Object *head, Code *code)
 
static void v8::internal::InsertionSortPairs (FixedArray *content, FixedArray *numbers, int len)
 
void v8::internal::HeapSortPairs (FixedArray *content, FixedArray *numbers, int len)
 
template<typename ExternalArrayClass , typename ValueType >
static Handle< Object > v8::internal::ExternalArrayIntSetter (Isolate *isolate, Handle< ExternalArrayClass > receiver, uint32_t index, Handle< Object > value)
 
static ElementsKind v8::internal::FixedToExternalElementsKind (ElementsKind elements_kind)
 

Macro Definition Documentation

◆ CASE

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

◆ DECLARE_TAG [1/2]

#define DECLARE_TAG (   ignore1,
  ignore2,
  name 
)    name,

Definition at line 10032 of file objects.cc.

◆ DECLARE_TAG [2/2]

#define DECLARE_TAG (   ignore1,
  name,
  ignore2 
)    name,

Definition at line 10032 of file objects.cc.

◆ HANDLE_CODE_AGE [1/2]

#define HANDLE_CODE_AGE (   AGE)
Value:
stub = *builtins->Make##AGE##CodeYoungAgainEvenMarking(); \
if (code == stub) { \
*age = k##AGE##CodeAge; \
*parity = EVEN_MARKING_PARITY; \
return; \
} \
stub = *builtins->Make##AGE##CodeYoungAgainOddMarking(); \
if (code == stub) { \
*age = k##AGE##CodeAge; \
*parity = ODD_MARKING_PARITY; \
return; \
}
@ ODD_MARKING_PARITY
Definition: objects.h:299
@ EVEN_MARKING_PARITY
Definition: objects.h:300

◆ HANDLE_CODE_AGE [2/2]

#define HANDLE_CODE_AGE (   AGE)
Value:
case k##AGE##CodeAge: { \
Code* stub = parity == EVEN_MARKING_PARITY \
? *builtins->Make##AGE##CodeYoungAgainEvenMarking() \
: *builtins->Make##AGE##CodeYoungAgainOddMarking(); \
return stub; \
}

◆ INSTANCE_TYPE_TO_ARRAY_TYPE

#define INSTANCE_TYPE_TO_ARRAY_TYPE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ARRAY_TYPE: \
case FIXED_##TYPE##_ARRAY_TYPE: \
return kExternal##Type##Array;
TypeImpl< ZoneTypeConfig > Type

◆ INSTANCE_TYPE_TO_ELEMENT_SIZE

#define INSTANCE_TYPE_TO_ELEMENT_SIZE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ARRAY_TYPE: \
return size;
enable harmony numeric enable harmony object literal extensions Optimize object size

◆ MAKE_STRUCT_CASE [1/2]

#define MAKE_STRUCT_CASE (   NAME,
  Name,
  name 
)
Value:
case NAME##_TYPE: \
os << "<" #Name ">"; \
break;

◆ MAKE_STRUCT_CASE [2/2]

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

◆ TYPED_ARRAY_CASE [1/9]

#define TYPED_ARRAY_CASE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ARRAY_TYPE: \
case FIXED_##TYPE##_ARRAY_TYPE: \
break;

◆ TYPED_ARRAY_CASE [2/9]

#define TYPED_ARRAY_CASE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ELEMENTS: \
case TYPE##_ELEMENTS: \
break;

◆ TYPED_ARRAY_CASE [3/9]

#define TYPED_ARRAY_CASE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ELEMENTS: \
case TYPE##_ELEMENTS: \

◆ TYPED_ARRAY_CASE [4/9]

#define TYPED_ARRAY_CASE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ELEMENTS: \
case TYPE##_ELEMENTS: \

◆ TYPED_ARRAY_CASE [5/9]

#define TYPED_ARRAY_CASE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ELEMENTS: \
case TYPE##_ELEMENTS: \

◆ TYPED_ARRAY_CASE [6/9]

#define TYPED_ARRAY_CASE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ELEMENTS: { \
Handle<External##Type##Array> array( \
External##Type##Array::cast(object->elements())); \
return External##Type##Array::SetValue(array, index, value); \
} \
case TYPE##_ELEMENTS: { \
Handle<Fixed##Type##Array> array( \
Fixed##Type##Array::cast(object->elements())); \
return Fixed##Type##Array::SetValue(array, index, value); \
}

◆ TYPED_ARRAY_CASE [7/9]

#define TYPED_ARRAY_CASE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ELEMENTS: \
case TYPE##_ELEMENTS: \

◆ TYPED_ARRAY_CASE [8/9]

#define TYPED_ARRAY_CASE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ELEMENTS: \
case TYPE##_ELEMENTS: \

◆ TYPED_ARRAY_CASE [9/9]

#define TYPED_ARRAY_CASE (   Type,
  type,
  TYPE,
  ctype,
  size 
)     case TYPE##_ELEMENTS: return EXTERNAL_##TYPE##_ELEMENTS;

◆ TYPED_ARRAY_SHORT_PRINT

#define TYPED_ARRAY_SHORT_PRINT (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ARRAY_TYPE: \
os << "<External" #Type "Array[" \
<< External##Type##Array::cast(this)->length() << "]>"; \
break; \
case FIXED_##TYPE##_ARRAY_TYPE: \
os << "<Fixed" #Type "Array[" << Fixed##Type##Array::cast(this)->length() \
<< "]>"; \
break;