v8
3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
|
#include <objects.h>
Data Structures | |
class | DeoptDependentCodeBit |
class | DoNotInlineBit |
class | ElementsKindBits |
class | MementoFoundCountBits |
class | PretenureDecisionBits |
class | UnusedBits |
Public Types | |
enum | PretenureDecision { kUndecided = 0, kDontTenure = 1, kTenure = 2, kZombie = 3, kLastPretenureDecisionValue = kZombie } |
enum | Reason { TENURING, TRANSITIONS } |
typedef FixedBodyDescriptor < HeapObject::kHeaderSize, kDependentCodeOffset+kPointerSize, kSize > | BodyDescriptor |
Public Types inherited from Object | |
enum | ValueType { OPTIMAL_REPRESENTATION, FORCE_TAGGED } |
Static Public Member Functions | |
static void | DigestTransitionFeedback (Handle< AllocationSite > site, ElementsKind to_kind) |
static void | AddDependentCompilationInfo (Handle< AllocationSite > site, Reason reason, CompilationInfo *info) |
static AllocationSite * | cast (Object *obj) |
static AllocationSiteMode | GetMode (ElementsKind boilerplate_elements_kind) |
static AllocationSiteMode | GetMode (ElementsKind from, ElementsKind to) |
static bool | CanTrack (InstanceType type) |
Static Public Member Functions inherited from Struct | |
static Struct * | cast (Object *that) |
Static Public Member Functions inherited from HeapObject | |
static HeapObject * | FromAddress (Address address) |
static Object ** | RawField (HeapObject *obj, int offset) |
static void | UpdateMapCodeCache (Handle< HeapObject > object, Handle< Name > name, Handle< Code > code) |
static HeapObject * | cast (Object *obj) |
Static Public Member Functions inherited from Object | |
static MUST_USE_RESULT Handle < Object > | ToSmi (Isolate *isolate, Handle< Object > object) |
static Handle< Object > | GetPropertyWithReceiver (Handle< Object > object, Handle< Object > receiver, Handle< Name > name, PropertyAttributes *attributes) |
static Handle< Object > | GetProperty (Handle< Object > object, Handle< Name > key) |
static Handle< Object > | GetProperty (Handle< Object > object, Handle< Object > receiver, LookupResult *result, Handle< Name > key, PropertyAttributes *attributes) |
static MUST_USE_RESULT MaybeObject * | GetPropertyOrFail (Handle< Object > object, Handle< Object > receiver, LookupResult *result, Handle< Name > key, PropertyAttributes *attributes) |
static Handle< Object > | GetElement (Isolate *isolate, Handle< Object > object, uint32_t index) |
static Handle< Object > | GetElementNoExceptionThrown (Isolate *isolate, Handle< Object > object, uint32_t index) |
static Handle< Object > | GetElementWithReceiver (Isolate *isolate, Handle< Object > object, Handle< Object > receiver, uint32_t index) |
static Handle< Object > | GetOrCreateHash (Handle< Object > object, Isolate *isolate) |
static Object * | cast (Object *value) |
Static Public Attributes | |
static const uint32_t | kMaximumArrayBytesToPretransition = 8 * 1024 |
static const double | kPretenureRatio = 0.85 |
static const int | kPretenureMinimumCreated = 100 |
static const int | kTransitionInfoOffset = HeapObject::kHeaderSize |
static const int | kNestedSiteOffset = kTransitionInfoOffset + kPointerSize |
static const int | kPretenureDataOffset = kNestedSiteOffset + kPointerSize |
static const int | kPretenureCreateCountOffset |
static const int | kDependentCodeOffset |
static const int | kWeakNextOffset = kDependentCodeOffset + kPointerSize |
static const int | kSize = kWeakNextOffset + kPointerSize |
static const int | kPointerFieldsBeginOffset = kTransitionInfoOffset |
static const int | kPointerFieldsEndOffset = kDependentCodeOffset |
Static Public Attributes inherited from HeapObject | |
static const int | kMapOffset = Object::kHeaderSize |
static const int | kHeaderSize = kMapOffset + kPointerSize |
Static Public Attributes inherited from Object | |
static const int | kHeaderSize = 0 |
Additional Inherited Members | |
Protected Member Functions inherited from HeapObject | |
void | IteratePointers (ObjectVisitor *v, int start, int end) |
void | IteratePointer (ObjectVisitor *v, int offset) |
void | IterateNextCodeLink (ObjectVisitor *v, int offset) |
enum PretenureDecision |
|
static |
Definition at line 12725 of file objects.cc.
References CompilationInfo::dependencies(), DependentCode::Insert(), CompilationInfo::object_wrapper(), and CompilationInfo::zone().
Referenced by HGraphBuilder::BuildBinaryOperation().
|
inline |
Definition at line 8372 of file objects.h.
References Smi::cast(), and Smi::value().
|
inlinestatic |
Definition at line 1500 of file objects-inl.h.
References v8::internal::FIRST_NONSTRING_TYPE, v8::internal::JS_ARRAY_TYPE, and v8::internal::JS_OBJECT_TYPE.
Referenced by Heap::CopyJSObject(), AllocationSiteUsageContext::ShouldCreateMemento(), and Heap::UpdateAllocationSiteFeedback().
|
inlinestatic |
Referenced by Heap::DeoptMarkedAllocationSites(), AllocationSiteUsageContext::EnterNewScope(), Code::FindFirstAllocationSite(), AllocationMemento::GetAllocationSite(), AllocationSite::IsNestedSite(), AllocationMemento::IsValid(), MarkCompactWeakObjectRetainer::RetainAs(), v8::internal::RUNTIME_FUNCTION(), and TEST().
|
inline |
Definition at line 8321 of file objects.h.
Referenced by Heap::DeoptMarkedAllocationSites().
|
inline |
Definition at line 1554 of file objects-inl.h.
References AllocationSite::GetPretenureMode(), AllocationSite::kDontTenure, AllocationSite::kPretenureMinimumCreated, AllocationSite::kPretenureRatio, AllocationSite::kTenure, AllocationSite::memento_create_count(), AllocationSite::memento_found_count(), v8::internal::PrintF(), AllocationSite::set_deopt_dependent_code(), AllocationSite::set_memento_create_count(), AllocationSite::set_memento_found_count(), AllocationSite::set_pretenure_decision(), and v8::internal::TENURED.
|
static |
Definition at line 12671 of file objects.cc.
References JSArray::cast(), CHECK, v8::internal::ElementsKindToString(), v8::internal::GetHoleyElementsKind(), v8::internal::handle(), v8::internal::IsHoleyElementsKind(), v8::internal::IsMoreGeneralElementsKindTransition(), DependentCode::kAllocationSiteTransitionChangedGroup, v8::internal::PrintF(), and JSObject::TransitionElementsKind().
|
inline |
Definition at line 8360 of file objects.h.
References ASSERT, Smi::cast(), and Smi::value().
|
inlinestatic |
Definition at line 1477 of file objects-inl.h.
References v8::internal::DONT_TRACK_ALLOCATION_SITE, v8::internal::IsFastSmiElementsKind(), and v8::internal::TRACK_ALLOCATION_SITE.
Referenced by ArrayConstructorStubBase::ArrayConstructorStubBase(), and AllocationSiteUsageContext::ShouldCreateMemento().
|
inlinestatic |
Definition at line 1488 of file objects-inl.h.
References v8::internal::DONT_TRACK_ALLOCATION_SITE, v8::internal::IsFastSmiElementsKind(), v8::internal::IsMoreGeneralElementsKindTransition(), and v8::internal::TRACK_ALLOCATION_SITE.
PretenureFlag GetPretenureMode | ( | ) |
Definition at line 12650 of file objects.cc.
References v8::internal::NOT_TENURED, and v8::internal::TENURED.
Referenced by AllocationSite::DigestPretenuringFeedback().
|
inline |
Definition at line 1547 of file objects-inl.h.
References ASSERT, AllocationSite::memento_create_count(), and AllocationSite::set_memento_create_count().
|
inline |
Definition at line 1538 of file objects-inl.h.
References AllocationSite::IsZombie(), AllocationSite::memento_found_count(), and AllocationSite::set_memento_found_count().
Referenced by Heap::UpdateAllocationSiteFeedback().
|
inline |
Definition at line 1457 of file objects-inl.h.
References DependentCode::cast(), Smi::FromInt(), HeapObject::GetHeap(), v8::internal::GetInitialFastElementsKind(), AllocationSite::SetElementsKind(), and v8::internal::SKIP_WRITE_BARRIER.
Referenced by Heap::AllocateAllocationSite(), and AllocationSite::MarkZombie().
bool IsNestedSite | ( | ) |
Definition at line 12657 of file objects.cc.
References Heap::allocation_sites_list(), ASSERT, AllocationSite::cast(), and HeapObject::GetHeap().
|
inline |
Definition at line 8352 of file objects.h.
Referenced by AllocationSite::IncrementMementoFoundCount(), AllocationMemento::IsValid(), AllocationSite::MarkZombie(), and MarkCompactWeakObjectRetainer::RetainAs().
|
inline |
Definition at line 1468 of file objects-inl.h.
References ASSERT, AllocationSite::Initialize(), AllocationSite::IsZombie(), AllocationSite::kZombie, and AllocationSite::set_pretenure_decision().
Referenced by MarkCompactWeakObjectRetainer::RetainAs().
|
inline |
Definition at line 8340 of file objects.h.
Referenced by AllocationSite::DigestPretenuringFeedback(), and AllocationSite::IncrementMementoCreateCount().
|
inline |
Definition at line 8333 of file objects.h.
Referenced by AllocationSite::DigestPretenuringFeedback(), and AllocationSite::IncrementMementoFoundCount().
|
inline |
void ResetPretenureDecision | ( | ) |
Definition at line 12643 of file objects.cc.
|
inline |
Definition at line 8326 of file objects.h.
References Smi::FromInt(), and v8::internal::SKIP_WRITE_BARRIER.
Referenced by Heap::DeoptMarkedAllocationSites(), and AllocationSite::DigestPretenuringFeedback().
|
inline |
Definition at line 8344 of file objects.h.
References Smi::FromInt(), and v8::internal::SKIP_WRITE_BARRIER.
Referenced by AllocationSite::DigestPretenuringFeedback(), and AllocationSite::IncrementMementoCreateCount().
|
inline |
Definition at line 1525 of file objects-inl.h.
References ASSERT, Smi::FromInt(), HeapObject::GetHeap(), BitFieldBase< int, shift, size, uint32_t >::kMax, StaticVisitorBase::kMinObjectSizeInWords, v8::internal::kPointerSize, AllocationMemento::kSize, v8::internal::SKIP_WRITE_BARRIER, and BitFieldBase< int, shift, size, uint32_t >::update().
Referenced by AllocationSite::DigestPretenuringFeedback(), and AllocationSite::IncrementMementoFoundCount().
|
inline |
Definition at line 8314 of file objects.h.
References Smi::FromInt(), and v8::internal::SKIP_WRITE_BARRIER.
Referenced by AllocationSite::DigestPretenuringFeedback(), and AllocationSite::MarkZombie().
|
inline |
Definition at line 8377 of file objects.h.
References Smi::cast(), Smi::FromInt(), v8::internal::SKIP_WRITE_BARRIER, and Smi::value().
|
inline |
Definition at line 8366 of file objects.h.
References Smi::cast(), Smi::FromInt(), v8::internal::SKIP_WRITE_BARRIER, and Smi::value().
Referenced by AllocationSite::Initialize().
STATIC_ASSERT | ( | PretenureDecisionBits::kMax >= | kLastPretenureDecisionValue | ) |
|
static |
Definition at line 8416 of file objects.h.
Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub().
|
static |
|
static |
Definition at line 8412 of file objects.h.
Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub().
|
static |
|
static |
|
static |
Definition at line 8414 of file objects.h.
Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub().
|
static |
Definition at line 8413 of file objects.h.
Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub().
|
static |
Definition at line 8262 of file objects.h.
Referenced by AllocationSite::DigestPretenuringFeedback().
|
static |
Definition at line 8261 of file objects.h.
Referenced by AllocationSite::DigestPretenuringFeedback().
|
static |
Definition at line 8419 of file objects.h.
Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub().
|
static |
Definition at line 8411 of file objects.h.
Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub().
|
static |
Definition at line 8418 of file objects.h.
Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub(), and WeakListVisitor< AllocationSite >::WeakNextOffset().