58 if (!IsJSReceiver(*
object)) {
61 NewTypeError(MessageTemplate::kInvalidInOperatorUse,
key,
object));
72 return isolate->factory()->ToBoolean(maybe.
FromJust());
140 int nod = map->NumberOfOwnDescriptors();
142 if (nod != 0 && map->NumberOfEnumerableProperties() == nod) {
172 if (IsJSModuleNamespace(*
object)) {
177 return isolate->heap()->ToBoolean(
result.FromJust());
179 }
else if (IsJSObject(*
object)) {
191 DCHECK(!isolate->has_exception());
196 if (!IsJSGlobalProxyMap(map) &&
198 ? !map->has_indexed_interceptor()
199 : !map->has_named_interceptor())) {
207 DCHECK(!isolate->has_exception());
208 return isolate->heap()->ToBoolean(maybe.
FromJust());
210 }
else if (IsJSProxy(*
object)) {
216 return isolate->heap()->ToBoolean(attributes.
FromJust() !=
ABSENT);
218 }
else if (IsString(*
object)) {
219 return isolate->heap()->ToBoolean(
225 isolate, NewTypeError(MessageTemplate::kUndefinedOrNullToObject));
239 if (!success)
return ReadOnlyRoots(isolate).undefined_value();
241 if (IsJSObject(*
object)) {
245 switch (it.state()) {
247 return isolate->heap()->ToBoolean(
false);
249 return isolate->heap()->ToBoolean(it.constness() ==
276 receiver->property_dictionary_swiss(), isolate);
281 receiver->SetProperties(*dictionary);
286 NameDictionary::Add(isolate, dictionary, name, value, property_details);
287 if (name->IsInteresting(isolate)) {
288 dictionary->set_may_have_interesting_properties(
true);
290 receiver->SetProperties(*dictionary);
302 int depth =
args.smi_value_at(3);
303 DCHECK(brand->is_private_name());
310 NewTypeError(MessageTemplate::kInvalidPrivateBrandReinitialization,
321 for (; depth > 0; depth--) {
348 if (!
TryCast(maybe_prototype, &prototype)) {
351 NewTypeError(MessageTemplate::kProtoObjectOrNull, maybe_prototype));
359 if (!IsUndefined(*properties, isolate)) {
382 if (maybe_property.
ToHandle(&property_name)) {
385 NewTypeError(MessageTemplate::kNonObjectPropertyStoreWithProperty,
386 lookup_start_obj, property_name));
389 NewTypeError(MessageTemplate::kNonObjectPropertyStore,
395 bool success =
false;
403 return isolate->factory()->undefined_value();
428 if (maybe_property.
ToHandle(&property_name)) {
431 NewTypeError(MessageTemplate::kNonObjectPropertyStoreWithProperty,
432 object, property_name));
436 NewTypeError(MessageTemplate::kNonObjectPropertyStore,
object));
440 bool success =
false;
453 return isolate->factory()->undefined_value();
480 int properties =
args.smi_value_at(1);
482 if (properties > 100000)
return isolate->ThrowIllegalOperation();
483 if (object->HasFastProperties() && !IsJSGlobalProxy(*
object)) {
485 properties,
"OptimizeForAdding");
501 return *isolate->factory()->NewJSArrayWithElements(values);
515 return *isolate->factory()->NewJSArrayWithElements(value);
529 return *isolate->factory()->NewJSArrayWithElements(
entries);
543 return *isolate->factory()->NewJSArrayWithElements(
entries);
552 IsJSReceiver(*
object)
556 return isolate->heap()->ToBoolean(
result.FromJust());
578 return *isolate->factory()->ToBoolean(
result.FromJust());
614 return *isolate->factory()->ToBoolean(
result.FromJust());
623 if (
args.length() == 3) {
642 if (IsString(*key_obj) &&
Cast<String>(*key_obj)->AsArrayIndex(&index)) {
643 key_obj = isolate->factory()->NewNumberFromUint(index);
645 if (IsJSObject(*lookup_start_obj)) {
648 if (!IsJSGlobalProxy(*lookup_start_object) &&
649 !IsAccessCheckNeeded(*lookup_start_object) && IsName(*key_obj)) {
651 key_obj =
key = isolate->factory()->InternalizeName(
key);
654 if (IsJSGlobalObject(*lookup_start_object)) {
664 if (!IsPropertyCellHole(value, isolate))
return value;
668 }
else if (!lookup_start_object->HasFastProperties()) {
672 lookup_start_object->property_dictionary_swiss();
676 return dictionary->ValueAt(entry);
680 lookup_start_object->property_dictionary();
684 return dictionary->ValueAt(entry);
688 }
else if (
IsSmi(*key_obj)) {
695 ElementsKind elements_kind = lookup_start_object->GetElementsKind();
697 if (
Smi::ToInt(*key_obj) >= lookup_start_object->elements()->length()) {
707 }
else if (IsString(*lookup_start_obj) &&
IsSmi(*key_obj)) {
710 uint32_t smi_index =
Cast<Smi>(*key_obj).value();
711 if (smi_index < str->
length()) {
712 Factory* factory = isolate->factory();
767 DirectHandle<Object>
key,
775 return isolate->heap()->ToBoolean(
result.FromJust());
785 int language_mode =
args.smi_value_at(2);
786 return DeleteProperty(isolate,
object,
key,
795 return *NameDictionary::Shrink(isolate, dictionary);
815 if (!IsJSReceiver(*
object)) {
818 NewTypeError(MessageTemplate::kInvalidInOperatorUse,
key,
object));
830 return isolate->heap()->ToBoolean(maybe.
FromJust());
837 int filter_value =
args.smi_value_at(1);
846 return *isolate->factory()->NewJSArrayWithElements(keys);
853 if (IsJSObject(*
object) && !IsJSGlobalObject(*
object)) {
855 "RuntimeToFastProperties");
863 return *isolate->factory()->NewHeapNumber(0);
882 if (IsTrue(*rab_gsab)) {
908 if (!js_object->map()->is_deprecated())
return Smi::zero();
921 DCHECK(js_object->map()->is_deprecated());
936 js_object->map()->set_is_migration_target(
true);
973 DCHECK(IsJSFunction(*value));
975 DCHECK(!function->shared()->HasSharedName());
978 isolate->factory()->empty_string())) {
983 *function_map == function->map());
993 int flag =
args.smi_value_at(3);
996 if (!IsUndefined(*maybe_vector)) {
997 int index =
args.tagged_index_value_at(5);
999 DCHECK(IsFeedbackVector(*maybe_vector));
1021 DCHECK(IsJSFunction(*value));
1023 DCHECK(!function->shared()->HasSharedName());
1026 isolate->factory()->empty_string())) {
1031 *function_map == function->map());
1055 return isolate->heap()->ToBoolean(
1063 return isolate->heap()->ToBoolean(IsJSReceiver(obj));
1092 object, name,
getter, isolate->factory()->null_value(), attrs));
1103 if (IsUndefined(*source, isolate) ||
IsNull(*source, isolate)) {
1108 isolate, target, source,
1121 if (IsUndefined(*source, isolate) ||
IsNull(*source, isolate)) {
1127 isolate, target, source,
1137void CheckExcludedPropertiesAreOnCallerStack(
Isolate* isolate,
Address base,
1140 StackFrameIterator it(isolate);
1143 if (count == 0)
return;
1151 DCHECK_GE(last_property, it.frame()->sp());
1155 for (; !it.done(); it.Advance()) {
1156 if (it.frame()->is_javascript()) {
1173 int excluded_property_count =
args.smi_value_at(1);
1179 CheckExcludedPropertiesAreOnCallerStack(
1180 isolate,
reinterpret_cast<Address>(excluded_property_base),
1181 excluded_property_count);
1190 excluded_property_count);
1191 for (
int i = 0;
i < excluded_property_count;
i++) {
1195 uint32_t property_num;
1200 if (IsString(*property) &&
1201 Cast<String>(*property)->AsArrayIndex(&property_num)) {
1202 property = isolate->factory()->NewNumberFromUint(property_num);
1209 isolate->factory()->NewJSObject(isolate->object_function());
1212 isolate, target, source,
1214 {excluded_properties.
data(), excluded_properties.
size()},
false),
1238 object, name, isolate->factory()->null_value(),
setter, attrs));
1288 if (!IsJSReceiver(*
object))
return ReadOnlyRoots(isolate).false_value();
1292 return isolate->heap()->ToBoolean(
result.FromJust());
1301 return *isolate->factory()->NewJSIteratorResult(
1326 int attributes =
args.smi_value_at(3);
1347 return *desc.ToPropertyDescriptorObject(isolate);
1366void CollectPrivateMethodsAndAccessorsFromContext(
1369 std::vector<PrivateMember>* results) {
1372 int context_index = scope_info->ContextSlotIndex(desc, &lookup_result);
1373 if (context_index == -1 ||
1381 IsJSFunction(*slot_value));
1383 IsAccessorPair(*slot_value));
1384 results->push_back({
1395 DirectHandle<String> desc, std::vector<PrivateMember>* results) {
1398 DirectHandle<FixedArray> keys;
1407 DirectHandle<SharedFunctionInfo>
shared(func->shared(), isolate);
1408 if (shared->is_class_constructor() &&
1409 shared->has_static_private_methods_or_accessors()) {
1410 DirectHandle<Context> receiver_context(
1412 CollectPrivateMethodsAndAccessorsFromContext(
1418 for (
int i = 0;
i < keys->
length(); ++
i) {
1419 DirectHandle<Object> obj_key(keys->get(
i), isolate);
1421 CHECK(symbol->is_private_name());
1422 Handle<Object>
value;
1427 if (symbol->is_private_brand()) {
1428 DirectHandle<Context> value_context(
Cast<Context>(*value), isolate);
1429 CollectPrivateMethodsAndAccessorsFromContext(
1433 DirectHandle<String> symbol_desc(
Cast<String>(symbol->description()),
1435 if (symbol_desc->Equals(*desc)) {
1436 results->push_back({
1448Maybe<bool> FindPrivateMembersFromReceiver(Isolate* isolate,
1450 DirectHandle<String> desc,
1453 std::vector<PrivateMember> results;
1455 CollectPrivateMembersFromReceiver(isolate,
receiver, desc, &results),
1458 if (results.empty()) {
1461 }
else if (results.size() > 1) {
1463 isolate, NewError(MessageTemplate::kConflictingPrivateName, desc),
1477 isolate,
receiver, desc, MessageTemplate::kInvalidPrivateMemberRead,
1489 if (
IsNull(pair->getter())) {
1492 NewError(MessageTemplate::kInvalidPrivateGetterAccess, desc));
1494 DCHECK(IsJSFunction(pair->getter()));
1507 isolate,
receiver, desc, MessageTemplate::kInvalidPrivateMemberRead,
1518 isolate, NewError(MessageTemplate::kInvalidPrivateMethodWrite, desc));
1524 if (
IsNull(pair->setter())) {
1527 NewError(MessageTemplate::kInvalidPrivateSetterAccess, desc));
1529 DCHECK(IsJSFunction(pair->setter()));
1551 isolate, NewTypeError(MessageTemplate::kNonObjectPrivateNameAccess, desc,
1569 isolate, NewTypeError(MessageTemplate::kNonObjectPrivateNameAccess, desc,
1577 DCHECK(IsJSFunction(pair->setter()));
1578 return pair->setter();
1585 DCHECK(IsJSFunction(pair->getter()));
1586 return pair->getter();
1595 pair->SetComponents(
args[0],
args[1]);
1603 int at_least_space_for =
args.smi_value_at(0);
1605 return *isolate->factory()->NewSwissNameDictionary(at_least_space_for,
1644 table->ValueAtPut(index, value);
1647 table->DetailsAtPut(index, details);
1688 return table->KeyAt(index);
1698 return table->ValueAt(index);
V8_INLINE bool IsJust() const
V8_INLINE T FromJust() const &
V8_INLINE bool IsNothing() const
DirectHandle< T > * data() noexcept
size_t size() const noexcept
static Tagged< Object > ThrowLoadFromNullOrUndefined(Isolate *isolate, DirectHandle< Object > object, MaybeDirectHandle< Object > key)
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT MaybeHandle< Object > Call(Isolate *isolate, DirectHandle< Object > callable, DirectHandle< Object > receiver, base::Vector< const DirectHandle< Object > > args)
Handle< String > LookupSingleCharacterStringFromCode(uint16_t code)
Tagged< Name > GetName() const
void ConfigureMonomorphic(DirectHandle< Name > name, DirectHandle< Map > receiver_map, const MaybeObjectDirectHandle &handler)
bool ConfigureMegamorphic()
InlineCacheState ic_state() const
Tagged< Map > GetFirstMap() const
static FeedbackSlot ToSlot(intptr_t index)
static V8_WARN_UNUSED_RESULT bool SetName(DirectHandle< JSFunction > function, DirectHandle< Name > name, DirectHandle< String > prefix)
static Handle< String > GetName(Isolate *isolate, DirectHandle< JSFunction > function)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Map > GetDerivedRabGsabTypedArrayMap(Isolate *isolate, DirectHandle< JSFunction > constructor, DirectHandle< JSReceiver > new_target)
static V8_EXPORT_PRIVATE V8_WARN_UNUSED_RESULT MaybeHandle< Map > GetDerivedMap(Isolate *isolate, DirectHandle< JSFunction > constructor, DirectHandle< JSReceiver > new_target)
static V8_WARN_UNUSED_RESULT HandleType< Object >::MaybeType DefineOwnPropertyIgnoreAttributes(LookupIterator *it, HandleType< T > value, PropertyAttributes attributes, AccessorInfoHandling handling=DONT_FORCE_FIELD, EnforceDefineSemantics semantics=EnforceDefineSemantics::kSet)
static V8_EXPORT_PRIVATE void MigrateSlowToFast(DirectHandle< JSObject > object, int unused_property_fields, const char *reason)
static V8_EXPORT_PRIVATE V8_WARN_UNUSED_RESULT MaybeHandle< JSObject > New(DirectHandle< JSFunction > constructor, DirectHandle< JSReceiver > new_target, DirectHandle< AllocationSite > site, NewJSObjectType=NewJSObjectType::kNoAPIWrapper)
static constexpr uint32_t kMaxElementIndex
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > V8_EXPORT_PRIVATE SetOwnPropertyIgnoreAttributes(DirectHandle< JSObject > object, DirectHandle< Name > name, DirectHandle< Object > value, PropertyAttributes attributes)
static V8_EXPORT_PRIVATE void NormalizeProperties(Isolate *isolate, DirectHandle< JSObject > object, PropertyNormalizationMode mode, int expected_additional_properties, bool use_cache, const char *reason)
static V8_EXPORT_PRIVATE void TransitionElementsKind(DirectHandle< JSObject > object, ElementsKind to_kind)
static V8_EXPORT_PRIVATE MaybeDirectHandle< Object > DefineOwnAccessorIgnoreAttributes(DirectHandle< JSObject > object, DirectHandle< Name > name, DirectHandle< Object > getter, DirectHandle< Object > setter, PropertyAttributes attributes)
static bool TryMigrateInstance(Isolate *isolate, DirectHandle< JSObject > instance)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSObject > ObjectCreate(Isolate *isolate, DirectHandle< JSPrototype > prototype)
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT Maybe< bool > GetOwnPropertyDescriptor(Isolate *isolate, DirectHandle< JSReceiver > object, DirectHandle< Object > key, PropertyDescriptor *desc)
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT Maybe< bool > SetPrototype(Isolate *isolate, DirectHandle< JSReceiver > object, DirectHandle< Object > value, bool from_javascript, ShouldThrow should_throw)
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT Maybe< bool > DeleteProperty(Isolate *isolate, DirectHandle< JSReceiver > object, DirectHandle< Name > name, LanguageMode language_mode=LanguageMode::kSloppy)
static V8_WARN_UNUSED_RESULT Maybe< bool > PreventExtensions(Isolate *isolate, DirectHandle< JSReceiver > object, ShouldThrow should_throw)
static V8_WARN_UNUSED_RESULT Maybe< bool > HasInPrototypeChain(Isolate *isolate, DirectHandle< JSReceiver > object, DirectHandle< Object > proto)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< FixedArray > GetOwnValues(Isolate *isolate, DirectHandle< JSReceiver > object, PropertyFilter filter, bool try_fast_path=true)
static MaybeDirectHandle< JSPrototype > GetPrototype(Isolate *isolate, DirectHandle< JSReceiver > receiver)
static V8_WARN_UNUSED_RESULT Maybe< bool > CreateDataProperty(Isolate *isolate, DirectHandle< JSReceiver > object, DirectHandle< Name > key, DirectHandle< Object > value, Maybe< ShouldThrow > should_throw)
static V8_WARN_UNUSED_RESULT Maybe< bool > IsExtensible(Isolate *isolate, DirectHandle< JSReceiver > object)
static V8_WARN_UNUSED_RESULT Maybe< PropertyAttributes > GetPropertyAttributes(Isolate *isolate, DirectHandle< JSReceiver > object, DirectHandle< Name > name)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< FixedArray > GetOwnEntries(Isolate *isolate, DirectHandle< JSReceiver > object, PropertyFilter filter, bool try_fast_path=true)
static V8_WARN_UNUSED_RESULT Maybe< bool > CheckPrivateNameStore(LookupIterator *it, bool is_define)
static V8_WARN_UNUSED_RESULT Maybe< bool > SetOrCopyDataProperties(Isolate *isolate, DirectHandle< JSReceiver > target, DirectHandle< Object > source, PropertiesEnumerationMode mode, base::Vector< DirectHandle< Object > > excluded_properties={}, bool use_set=true)
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT Maybe< bool > HasProperty(LookupIterator *it)
static V8_WARN_UNUSED_RESULT Maybe< bool > AddPrivateField(LookupIterator *it, DirectHandle< Object > value, Maybe< ShouldThrow > should_throw)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > DefineProperties(Isolate *isolate, DirectHandle< Object > object, DirectHandle< Object > properties)
static MaybeHandle< FixedArray > GetKeys(Isolate *isolate, DirectHandle< JSReceiver > object, KeyCollectionMode mode, PropertyFilter filter, GetKeysConversion keys_conversion=GetKeysConversion::kKeepNumbers, bool is_for_in=false, bool skip_indices=false)
@ TYPED_ARRAY_INDEX_NOT_FOUND
static void CompleteInobjectSlackTracking(Isolate *isolate, Tagged< Map > initial_map)
V8_WARN_UNUSED_RESULT V8_INLINE bool ToHandle(DirectHandle< S > *out) const
static V8_WARN_UNUSED_RESULT MaybeHandle< Object > ToLength(Isolate *isolate, DirectHandle< Object > input)
static V8_WARN_UNUSED_RESULT HandleType< String >::MaybeType ToString(Isolate *isolate, HandleType< T > input)
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT Maybe< bool > AddDataProperty(LookupIterator *it, DirectHandle< Object > value, PropertyAttributes attributes, Maybe< ShouldThrow > should_throw, StoreOrigin store_origin, EnforceDefineSemantics semantics=EnforceDefineSemantics::kSet)
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT Maybe< bool > SetProperty(LookupIterator *it, DirectHandle< Object > value, StoreOrigin store_origin, Maybe< ShouldThrow > should_throw=Nothing< ShouldThrow >())
static V8_WARN_UNUSED_RESULT HandleType< Number >::MaybeType ToNumber(Isolate *isolate, HandleType< T > input)
static V8_EXPORT_PRIVATE bool BooleanValue(Tagged< Object > obj, IsolateT *isolate)
static V8_WARN_UNUSED_RESULT HandleType< JSReceiver >::MaybeType ToObject(Isolate *isolate, HandleType< T > object, const char *method_name=nullptr)
static V8_EXPORT_PRIVATE MaybeDirectHandle< String > NoSideEffectsToMaybeString(Isolate *isolate, DirectHandle< Object > input)
static V8_WARN_UNUSED_RESULT HandleType< Name >::MaybeType ToName(Isolate *isolate, HandleType< Object > input)
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT MaybeHandle< Object > GetProperty(LookupIterator *it, bool is_global_reference=false)
static V8_WARN_UNUSED_RESULT HandleType< Object >::MaybeType ToNumeric(Isolate *isolate, HandleType< T > input)
static constexpr PropertyConstness kConstIfDictConstnessTracking
Tagged< Smi > AsSmi() const
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > SetPrivateMember(Isolate *isolate, DirectHandle< JSReceiver > receiver, DirectHandle< String > desc, DirectHandle< Object > value)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > HasProperty(Isolate *isolate, DirectHandle< Object > object, DirectHandle< Object > key)
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > SetObjectProperty(Isolate *isolate, DirectHandle< JSAny > object, DirectHandle< Object > key, DirectHandle< Object > value, MaybeDirectHandle< JSAny > receiver, StoreOrigin store_origin, Maybe< ShouldThrow > should_throw=Nothing< ShouldThrow >())
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT Maybe< bool > DeleteObjectProperty(Isolate *isolate, DirectHandle< JSReceiver > receiver, DirectHandle< Object > key, LanguageMode language_mode)
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > GetObjectProperty(Isolate *isolate, DirectHandle< JSAny > lookup_start_object, DirectHandle< Object > key, DirectHandle< JSAny > receiver={}, bool *is_found=nullptr)
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > DefineObjectOwnProperty(Isolate *isolate, DirectHandle< JSAny > object, DirectHandle< Object > key, DirectHandle< Object > value, StoreOrigin store_origin)
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > GetPrivateMember(Isolate *isolate, DirectHandle< JSReceiver > receiver, DirectHandle< String > desc)
static constexpr int ToInt(const Tagged< Object > object)
static constexpr Tagged< Smi > FromInt(int value)
static constexpr Tagged< Smi > zero()
static V8_INLINE HandleType< String > Flatten(Isolate *isolate, HandleType< T > string, AllocationType allocation=AllocationType::kYoung)
static HandleType< SwissNameDictionary > Shrink(Isolate *isolate, HandleType< SwissNameDictionary > table)
static constexpr int kNotFoundSentinel
static HandleType< SwissNameDictionary > Add(IsolateT *isolate, HandleType< SwissNameDictionary > table, DirectHandle< Name > key, DirectHandle< Object > value, PropertyDetails details, InternalIndex *entry_out=nullptr)
static HandleType< SwissNameDictionary > DeleteEntry(Isolate *isolate, HandleType< SwissNameDictionary > table, InternalIndex entry)
#define V8_ENABLE_SWISS_NAME_DICTIONARY_BOOL
#define HAS_SMI_TAG(value)
#define V8_DICT_PROPERTY_CONST_TRACKING_BOOL
#define RUNTIME_FUNCTION(Name)
#define RETURN_FAILURE_IF_EXCEPTION(isolate)
#define THROW_NEW_ERROR_RETURN_VALUE(isolate, call, value)
#define ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, dst, call)
#define ASSIGN_RETURN_ON_EXCEPTION(isolate, dst, call)
#define THROW_NEW_ERROR(isolate, call)
#define ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, dst, call, value)
#define THROW_NEW_ERROR_RETURN_FAILURE(isolate, call)
#define RETURN_FAILURE_ON_EXCEPTION(isolate, call)
#define MAYBE_RETURN_NULL(call)
#define MAYBE_RETURN(call, value)
#define RETURN_RESULT_OR_FAILURE(isolate, call)
base::Vector< const DirectHandle< Object > > args
DirectHandle< Object > new_target
SharedFunctionInfoRef shared
ZoneVector< RpoNumber > & result
ZoneVector< Entry > entries
constexpr Vector< T > VectorOf(T *start, size_t size)
V8_INLINE const Operation & Get(const Graph &graph, OpIndex index)
bool TryCast(Tagged< From > value, Tagged< To > *out)
constexpr bool IsHoleyElementsKind(ElementsKind kind)
bool IsClassConstructor(FunctionKind kind)
V8_INLINE constexpr bool IsSmi(TaggedImpl< kRefType, StorageType > obj)
V8_INLINE DirectHandle< T > direct_handle(Tagged< T > object, Isolate *isolate)
too high values may cause the compiler to set high thresholds for inlining to as much as possible avoid inlined allocation of objects that cannot escape trace load stores from virtual maglev objects use TurboFan fast string builder analyze liveness of environment slots and zap dead values trace TurboFan load elimination emit data about basic block usage in builtins to this enable builtin reordering when run mksnapshot flag for emit warnings when applying builtin profile data verify register allocation in TurboFan randomly schedule instructions to stress dependency tracking enable store store elimination in TurboFan rewrite far to near simulate GC compiler thread race related to allow float parameters to be passed in simulator mode JS Wasm Run additional turbo_optimize_inlined_js_wasm_wrappers enable experimental feedback collection in generic lowering enable Turboshaft s WasmLoadElimination enable Turboshaft s low level load elimination for JS enable Turboshaft s escape analysis for string concatenation use enable Turbolev features that we want to ship in the not too far future trace individual Turboshaft reduction steps trace intermediate Turboshaft reduction steps invocation count threshold for early optimization Enables optimizations which favor memory size over execution speed Enables sampling allocation profiler with X as a sample interval min size of a semi the new space consists of two semi spaces max size of the Collect garbage after Collect garbage after keeps maps alive for< n > old space garbage collections print one detailed trace line in name
bool IsNullOrUndefined(Tagged< Object > obj, Isolate *isolate)
bool IsSmiOrObjectElementsKind(ElementsKind kind)
constexpr int kSystemPointerSize
bool IsFastPackedElementsKind(ElementsKind kind)
DONT_OVERRIDE DISABLE_ALLOCATION_SITES HOLEY_ELEMENTS
bool IsFastElementsKind(ElementsKind kind)
static bool IsValidAccessor(Isolate *isolate, DirectHandle< Object > obj)
bool IsUniqueName(Tagged< Name > obj)
V8_INLINE PropertyAttributes PropertyAttributesFromInt(int value)
bool IsPrivateMethodOrAccessorVariableMode(VariableMode mode)
constexpr bool IsDoubleElementsKind(ElementsKind kind)
kInstanceDescriptorsOffset kTransitionsOrPrototypeInfoOffset IsNull(value)||IsJSProxy(value)||IsWasmObject(value)||(IsJSObject(value) &&(HeapLayout
kInstanceDescriptorsOffset kTransitionsOrPrototypeInfoOffset prototype
@ KEEP_INOBJECT_PROPERTIES
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
static constexpr AcquireLoadTag kAcquireLoad
Maybe< T > Just(const T &t)
#define DCHECK_IMPLIES(v1, v2)
#define DCHECK_NE(v1, v2)
#define DCHECK_GE(v1, v2)
#define CHECK_EQ(lhs, rhs)
#define DCHECK(condition)
#define DCHECK_LT(v1, v2)
#define DCHECK_EQ(v1, v2)
Handle< Object > brand_or_field_symbol
IsStaticFlag is_static_flag
#define V8_UNLIKELY(condition)