v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
objects.cc File Reference
#include "src/objects/objects.h"
#include <algorithm>
#include <cmath>
#include <memory>
#include <optional>
#include <sstream>
#include <vector>
#include "src/api/api-arguments-inl.h"
#include "src/api/api-natives.h"
#include "src/api/api.h"
#include "src/ast/ast.h"
#include "src/ast/scopes.h"
#include "src/base/bits.h"
#include "src/base/debug/stack_trace.h"
#include "src/base/logging.h"
#include "src/base/overflowing-math.h"
#include "src/base/utils/random-number-generator.h"
#include "src/builtins/accessors.h"
#include "src/builtins/builtins.h"
#include "src/codegen/compiler.h"
#include "src/codegen/source-position-table.h"
#include "src/common/globals.h"
#include "src/common/message-template.h"
#include "src/date/date.h"
#include "src/debug/debug.h"
#include "src/diagnostics/code-tracer.h"
#include "src/execution/arguments.h"
#include "src/execution/execution.h"
#include "src/execution/frames-inl.h"
#include "src/execution/isolate-inl.h"
#include "src/execution/isolate-utils-inl.h"
#include "src/execution/isolate-utils.h"
#include "src/execution/microtask-queue.h"
#include "src/execution/protectors-inl.h"
#include "src/heap/factory-inl.h"
#include "src/heap/heap-inl.h"
#include "src/heap/local-factory-inl.h"
#include "src/heap/read-only-heap.h"
#include "src/ic/ic.h"
#include "src/init/bootstrapper.h"
#include "src/logging/counters.h"
#include "src/logging/log.h"
#include "src/logging/runtime-call-stats-scope.h"
#include "src/objects/allocation-site-inl.h"
#include "src/objects/allocation-site-scopes.h"
#include "src/objects/api-callbacks.h"
#include "src/objects/arguments-inl.h"
#include "src/objects/bigint.h"
#include "src/objects/call-site-info-inl.h"
#include "src/objects/cell-inl.h"
#include "src/objects/code-inl.h"
#include "src/objects/compilation-cache-table-inl.h"
#include "src/objects/debug-objects-inl.h"
#include "src/objects/dictionary.h"
#include "src/objects/elements.h"
#include "src/objects/embedder-data-array-inl.h"
#include "src/objects/field-index-inl.h"
#include "src/objects/field-index.h"
#include "src/objects/field-type.h"
#include "src/objects/foreign.h"
#include "src/objects/free-space-inl.h"
#include "src/objects/function-kind.h"
#include "src/objects/hash-table-inl.h"
#include "src/objects/heap-object-inl.h"
#include "src/objects/instance-type.h"
#include "src/objects/js-array-buffer-inl.h"
#include "src/objects/js-array-inl.h"
#include "src/objects/js-collection-inl.h"
#include "src/objects/js-disposable-stack-inl.h"
#include "src/objects/js-generator-inl.h"
#include "src/objects/js-regexp-inl.h"
#include "src/objects/js-regexp-string-iterator.h"
#include "src/objects/js-weak-refs-inl.h"
#include "src/objects/keys.h"
#include "src/objects/literal-objects-inl.h"
#include "src/objects/lookup-inl.h"
#include "src/objects/map-inl.h"
#include "src/objects/map-updater.h"
#include "src/objects/map.h"
#include "src/objects/megadom-handler-inl.h"
#include "src/objects/microtask-inl.h"
#include "src/objects/module-inl.h"
#include "src/objects/objects-body-descriptors-inl.h"
#include "src/objects/objects-inl.h"
#include "src/objects/promise-inl.h"
#include "src/objects/promise.h"
#include "src/objects/property-descriptor-object-inl.h"
#include "src/objects/property-descriptor.h"
#include "src/objects/property-details.h"
#include "src/objects/prototype.h"
#include "src/objects/slots-atomic-inl.h"
#include "src/objects/string-comparator.h"
#include "src/objects/string-set-inl.h"
#include "src/objects/struct-inl.h"
#include "src/objects/template-objects-inl.h"
#include "src/objects/transitions-inl.h"
#include "src/parsing/preparse-data.h"
#include "src/regexp/regexp.h"
#include "src/roots/roots.h"
#include "src/snapshot/deserializer.h"
#include "src/strings/string-builder-inl.h"
#include "src/strings/string-search.h"
#include "src/strings/string-stream.h"
#include "src/strings/unicode-decoder.h"
#include "src/strings/unicode-inl.h"
#include "src/tracing/traced-value.h"
#include "src/utils/hex-format.h"
#include "src/utils/identity-map.h"
#include "src/utils/ostreams.h"
#include "src/utils/sha-256.h"
#include "src/utils/utils-inl.h"
#include "src/zone/zone.h"

Go to the source code of this file.

Namespaces

namespace  v8
 
namespace  v8::internal
 

Macros

#define WRITE_TYPE(TYPE)
 
#define CASE(TypeCamelCase, TYPE_UPPER_CASE)
 
#define MAKE_TORQUE_SIZE_FOR(TYPE, TypeName)
 
#define SYMBOL_CHECK_AND_PRINT(_, name)
 
#define EXTERN_DEFINE_HASH_TABLE(DERIVED, SHAPE)
 
#define EXTERN_DEFINE_OBJECT_BASE_HASH_TABLE(DERIVED, SHAPE)
 
#define EXTERN_DEFINE_MULTI_OBJECT_BASE_HASH_TABLE(DERIVED, N)
 
#define EXTERN_DEFINE_DICTIONARY(DERIVED, SHAPE)
 
#define EXTERN_DEFINE_BASE_NAME_DICTIONARY(DERIVED, SHAPE)
 

Functions

ShouldThrow v8::internal::GetShouldThrow (Isolate *isolate, Maybe< ShouldThrow > should_throw)
 
bool v8::internal::ComparisonResultToBool (Operation op, ComparisonResult result)
 
V8_EXPORT_PRIVATE std::string v8::internal::ToString (InstanceType instance_type)
 
V8_EXPORT_PRIVATE std::ostream & v8::internal::operator<< (std::ostream &os, InstanceType instance_type)
 
std::ostream & v8::internal::operator<< (std::ostream &os, PropertyCellType type)
 
template Handle< JSAnyv8::internal::Object::WrapForRead< AllocationType::kYoung > (Isolate *isolate, Handle< JSAny > object, Representation representation)
 
template Handle< JSAnyv8::internal::Object::WrapForRead< AllocationType::kOld > (LocalIsolate *isolate, Handle< JSAny > object, Representation representation)
 
void v8::internal::ShortPrint (Tagged< Object > obj, FILE *out)
 
void v8::internal::ShortPrint (Tagged< Object > obj, StringStream *accumulator)
 
void v8::internal::ShortPrint (Tagged< Object > obj, std::ostream &os)
 
std::ostream & v8::internal::operator<< (std::ostream &os, Tagged< Object > obj)
 
std::ostream & v8::internal::operator<< (std::ostream &os, Object::Conversion kind)
 
std::ostream & v8::internal::operator<< (std::ostream &os, const Brief &v)
 
bool v8::internal::PropertyKeyToArrayLength (DirectHandle< Object > value, uint32_t *length)
 
bool v8::internal::PropertyKeyToArrayIndex (DirectHandle< Object > index_obj, uint32_t *output)
 
template bool v8::internal::Script::GetPositionInfoInternal< String::LineEndsVector > (const String::LineEndsVector &ends, int position, Script::PositionInfo *info, const DisallowGarbageCollection &no_gc) const
 
static void v8::internal::MoveMessageToPromise (Isolate *isolate, DirectHandle< JSPromise > promise)
 
static bool v8::internal::RemainsConstantType (Tagged< PropertyCell > cell, Tagged< Object > value)
 
 v8::internal::EXTERN_DEFINE_OBJECT_BASE_HASH_TABLE (EphemeronHashTable, EphemeronHashTableShape) template V8_EXPORT_PRIVATE void Dictionary< NumberDictionary
 
NumberDictionaryShape v8::internal::::UncheckedAdd< Isolate, Handle, AllocationType::kSharedOld > (Isolate *, Handle< NumberDictionary >, uint32_t, DirectHandle< Object >, PropertyDetails)
 

Macro Definition Documentation

◆ CASE

#define CASE ( TypeCamelCase,
TYPE_UPPER_CASE )
Value:
if (instance_type == TYPE_UPPER_CASE##_TYPE) { \
return UncheckedCast<TypeCamelCase>(*this)->AllocatedSize(); \
}

◆ EXTERN_DEFINE_BASE_NAME_DICTIONARY

#define EXTERN_DEFINE_BASE_NAME_DICTIONARY ( DERIVED,
SHAPE )

Definition at line 6788 of file objects.cc.

◆ EXTERN_DEFINE_DICTIONARY

#define EXTERN_DEFINE_DICTIONARY ( DERIVED,
SHAPE )

Definition at line 6755 of file objects.cc.

◆ EXTERN_DEFINE_HASH_TABLE

#define EXTERN_DEFINE_HASH_TABLE ( DERIVED,
SHAPE )
Value:
HashTable<DERIVED, SHAPE>; \
\
template EXPORT_TEMPLATE_DEFINE(V8_EXPORT_PRIVATE) Handle<DERIVED> \
HashTable<DERIVED, SHAPE>::New(Isolate*, int, AllocationType, \
MinimumCapacity); \
template EXPORT_TEMPLATE_DEFINE(V8_EXPORT_PRIVATE) Handle<DERIVED> \
HashTable<DERIVED, SHAPE>::New(LocalIsolate*, int, AllocationType, \
MinimumCapacity); \
\
template EXPORT_TEMPLATE_DEFINE(V8_EXPORT_PRIVATE) Handle<DERIVED> \
HashTable<DERIVED, SHAPE>::EnsureCapacity(Isolate*, Handle<DERIVED>, int, \
AllocationType); \
template EXPORT_TEMPLATE_DEFINE(V8_EXPORT_PRIVATE) Handle<DERIVED> \
HashTable<DERIVED, SHAPE>::EnsureCapacity(LocalIsolate*, Handle<DERIVED>, \
int, AllocationType); \
template EXPORT_TEMPLATE_DEFINE(V8_EXPORT_PRIVATE) DirectHandle<DERIVED> \
HashTable<DERIVED, SHAPE>::EnsureCapacity(Isolate*, DirectHandle<DERIVED>, \
int, AllocationType); \
template EXPORT_TEMPLATE_DEFINE(V8_EXPORT_PRIVATE) DirectHandle<DERIVED> \
HashTable<DERIVED, SHAPE>::EnsureCapacity( \
LocalIsolate*, DirectHandle<DERIVED>, int, AllocationType); \
\
template EXPORT_TEMPLATE_DEFINE(V8_EXPORT_PRIVATE) Handle<DERIVED> \
HashTable<DERIVED, SHAPE>::Shrink(Isolate*, Handle<DERIVED>, int); \
template EXPORT_TEMPLATE_DEFINE(V8_EXPORT_PRIVATE) DirectHandle<DERIVED> \
HashTable<DERIVED, SHAPE>::Shrink(Isolate*, DirectHandle<DERIVED>, int);
#define EXPORT_TEMPLATE_DEFINE(export)
#define V8_EXPORT_PRIVATE
Definition macros.h:460

Definition at line 6716 of file objects.cc.

◆ EXTERN_DEFINE_MULTI_OBJECT_BASE_HASH_TABLE

#define EXTERN_DEFINE_MULTI_OBJECT_BASE_HASH_TABLE ( DERIVED,
N )
Value:
EXTERN_DEFINE_HASH_TABLE(DERIVED, ObjectMultiHashTableShape<N>) \
ObjectMultiHashTableBase<DERIVED, N>;
#define EXTERN_DEFINE_HASH_TABLE(DERIVED, SHAPE)
Definition objects.cc:6716

Definition at line 6750 of file objects.cc.

◆ EXTERN_DEFINE_OBJECT_BASE_HASH_TABLE

#define EXTERN_DEFINE_OBJECT_BASE_HASH_TABLE ( DERIVED,
SHAPE )
Value:
EXTERN_DEFINE_HASH_TABLE(DERIVED, SHAPE) \
ObjectHashTableBase<DERIVED, SHAPE>;

Definition at line 6745 of file objects.cc.

◆ MAKE_TORQUE_SIZE_FOR

#define MAKE_TORQUE_SIZE_FOR ( TYPE,
TypeName )
Value:
if (instance_type == TYPE) { \
return UncheckedCast<TypeName>(*this)->AllocatedSize(); \
}

◆ SYMBOL_CHECK_AND_PRINT

#define SYMBOL_CHECK_AND_PRINT ( _,
name )
Value:
if (this == roots.name()) return #name;
const char * name
Definition builtins.cc:39

◆ WRITE_TYPE

#define WRITE_TYPE ( TYPE)
Value:
case TYPE: \
return #TYPE;