Lines Matching defs:isolate
18 #include "src/execution/isolate-inl.h"
140 LOG(isolate(), ICEvent(type, keyed_prefix, map, name,
147 JavaScriptFrameIterator it(isolate());
193 IC::IC(Isolate* isolate, Handle<FeedbackVector> vector, FeedbackSlot slot,
195 : isolate_(isolate),
218 it->isolate())) {
222 !holder->GetNamedInterceptor().query().IsUndefined(it->isolate())) {
260 Handle<Map> old_map(first_map, isolate());
285 if (lookup_start_object->IsNullOrUndefined(isolate())) return;
297 HandleScope scope(isolate());
298 THROW_NEW_ERROR(isolate(), NewTypeError(index, key, object), Object);
302 HandleScope scope(isolate());
304 isolate(), NewReferenceError(MessageTemplate::kNotDefined, name), Object);
311 OnFeedbackChanged(isolate(), vector, slot, reason);
315 void IC::OnFeedbackChanged(Isolate* isolate, FeedbackVector vector,
349 isolate->tiering_manager()->NotifyICChanged();
354 bool MigrateDeprecated(Isolate* isolate, Handle<Object> object) {
358 JSObject::MigrateInstance(isolate, receiver);
427 : object->IsNullOrUndefined(isolate())) {
430 TRACE_HANDLER_STATS(isolate(), LoadIC_NonReceiver);
432 SetCache(name, LoadHandler::LoadSlow(isolate()));
436 if (*name == ReadOnlyRoots(isolate()).iterator_symbol()) {
437 return isolate()->Throw<Object>(
438 ErrorUtils::NewIteratorError(isolate(), object));
444 DCHECK(object->IsNullOrUndefined(isolate()));
445 ErrorUtils::ThrowLoadFromNullOrUndefined(isolate(), object, name);
454 if (MigrateDeprecated(isolate(), object)) {
458 JSObject::MakePrototypesFast(object, kStartAtReceiver, isolate());
461 PropertyKey key(isolate(), name);
462 LookupIterator it = LookupIterator(isolate(), receiver, key, object);
471 isolate());
475 ? isolate()->factory()->anonymous_string()
505 return maybe.FromJust() ? ReadOnlyRoots(isolate()).true_value_handle()
506 : ReadOnlyRoots(isolate()).false_value_handle();
513 isolate(), result, Object::GetProperty(&it, IsLoadGlobalIC()), Object);
525 Handle<JSGlobalObject> global = isolate()->global_object();
531 global->native_context().script_context_table(), isolate());
536 isolate(), script_contexts, lookup_result.context_index);
539 isolate());
541 if (result->IsTheHole(isolate())) {
545 isolate(),
559 TRACE_HANDLER_STATS(isolate(), LoadGlobalIC_LoadScriptContextField);
562 TRACE_HANDLER_STATS(isolate(), LoadGlobalIC_SlowStub);
563 SetCache(name, LoadHandler::LoadSlow(isolate()));
613 if (!Protectors::IsMegaDOMIntact(isolate())) return false;
626 CallOptimization call_optimization(isolate(), accessor_obj);
639 call_optimization.LookupHolderOfExpectedType(isolate(), map, &holder_lookup);
643 isolate());
645 Handle<MegaDomHandler> new_handler = isolate()->factory()->NewMegaDomHandler(
670 MaybeObjectHandle existing_handler = handle(it.handler(), isolate());
671 Handle<Map> existing_map = handle(it.map(), isolate());
761 isolate(), map_list, ConcurrencyMode::kSynchronous);
810 handler = LoadHandler::LoadSlow(isolate());
812 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadNonexistentDH);
813 Handle<Smi> smi_handler = LoadHandler::LoadNonExistent(isolate());
815 isolate(), lookup_start_object_map(),
816 MaybeObjectHandle(isolate()->factory()->null_value()), smi_handler);
821 handler = LoadHandler::LoadSlow(isolate());
851 return isolate()->load_stub_cache();
854 return isolate()->store_stub_cache();
896 Handle<Smi> MakeLoadWasmStructFieldHandler(Isolate* isolate,
899 DCHECK(holder->IsWasmObject(isolate));
902 if (holder->IsWasmArray(isolate)) {
905 DCHECK_EQ(*isolate->factory()->length_string(), *lookup->name());
920 return LoadHandler::LoadWasmStructField(isolate, type, field_offset);
928 return MakeCodeHandler(isolate(), builtin);
933 ReadOnlyRoots roots(isolate());
942 TRACE_HANDLER_STATS(isolate(), LoadIC_StringLength);
948 TRACE_HANDLER_STATS(isolate(), LoadIC_StringWrapperLength);
957 TRACE_HANDLER_STATS(isolate(), LoadIC_FunctionPrototypeStub);
969 Handle<Smi> smi_handler = LoadHandler::LoadInterceptor(isolate());
972 MaybeObjectHandle holder_ref(isolate()->factory()->null_value());
976 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadNonMaskingInterceptorDH);
977 return LoadHandler::LoadFullChain(isolate(), map, holder_ref,
983 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadInterceptorDH);
987 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadInterceptorFromPrototypeDH);
988 return LoadHandler::LoadFromPrototype(isolate(), map, holder,
998 if (Accessors::IsJSObjectFieldAccessor(isolate(), map, lookup->name(),
1000 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadFieldDH);
1001 return LoadHandler::LoadField(isolate(), field_index);
1006 isolate());
1008 exports->FindEntry(isolate(), roots, lookup->name(),
1014 LoadHandler::LoadModuleExport(isolate(), value_index);
1018 return LoadHandler::LoadFromPrototype(isolate(), map, holder,
1031 Handle<Object> getter(accessor_pair->getter(), isolate());
1034 TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
1035 return LoadHandler::LoadSlow(isolate());
1044 TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
1045 return LoadHandler::LoadSlow(isolate());
1050 CallOptimization call_optimization(isolate(), getter);
1054 call_optimization.LookupHolderOfExpectedType(isolate(), map,
1060 TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
1061 return LoadHandler::LoadSlow(isolate());
1065 isolate(), holder_lookup == CallOptimization::kHolderIsReceiver);
1068 call_optimization.GetAccessorContext(holder->map()), isolate());
1070 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadApiGetterFromPrototypeDH);
1072 isolate(), map, holder, smi_handler,
1079 LoadHandler::LoadAccessor(isolate(), lookup->GetAccessorIndex());
1081 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadAccessorDH);
1083 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadAccessorFromPrototypeDH);
1085 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadGlobalFromPrototypeDH);
1086 smi_handler = LoadHandler::LoadGlobal(isolate());
1088 isolate(), map, holder, smi_handler,
1091 smi_handler = LoadHandler::LoadNormal(isolate());
1092 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadNormalDH);
1094 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadNormalFromPrototypeDH);
1097 return LoadHandler::LoadFromPrototype(isolate(), map, holder,
1106 TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
1107 return LoadHandler::LoadSlow(isolate());
1114 TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
1115 return LoadHandler::LoadSlow(isolate());
1119 isolate(), lookup->GetAccessorIndex());
1120 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadNativeDataPropertyDH);
1122 TRACE_HANDLER_STATS(isolate(),
1124 return LoadHandler::LoadFromPrototype(isolate(), map, holder,
1133 if (holder->IsJSGlobalObject(isolate())) {
1136 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadGlobalDH);
1137 smi_handler = LoadHandler::LoadGlobal(isolate());
1139 isolate(), map, holder, smi_handler,
1142 smi_handler = LoadHandler::LoadNormal(isolate());
1143 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadNormalDH);
1145 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadNormalFromPrototypeDH);
1151 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadNonexistentDH);
1152 return LoadHandler::LoadNonExistent(isolate());
1155 TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
1156 return LoadHandler::LoadSlow(isolate());
1161 if (V8_UNLIKELY(holder->IsWasmObject(isolate()))) {
1163 MakeLoadWasmStructFieldHandler(isolate(), holder, lookup);
1167 DCHECK(holder->IsJSObject(isolate()));
1169 smi_handler = LoadHandler::LoadField(isolate(), field);
1171 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadFieldDH);
1173 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadFieldFromPrototypeDH);
1183 value = handle(ThinString::cast(*value).actual(), isolate());
1194 value->IsSmi() ? MaybeObjectHandle(*value, isolate())
1195 : MaybeObjectHandle::Weak(*value, isolate());
1197 smi_handler = LoadHandler::LoadConstantFromPrototype(isolate());
1198 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadConstantFromPrototypeDH);
1199 return LoadHandler::LoadFromPrototype(isolate(), map, holder,
1203 return LoadHandler::LoadFromPrototype(isolate(), map, holder,
1207 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadIntegerIndexedExoticDH);
1208 return LoadHandler::LoadNonExistent(isolate());
1211 Handle<Smi> smi_handler = LoadHandler::LoadProxy(isolate());
1215 return LoadHandler::LoadFromPrototype(isolate(), map, holder_proxy,
1235 Handle<Map> receiver_map(receiver->map(), isolate());
1317 bool AllowConvertHoleElementToUndefined(Isolate* isolate,
1325 if (Protectors::IsNoElementsIntact(isolate)) {
1334 Handle<Object> receiver_prototype(receiver_map->prototype(), isolate);
1336 if (isolate->IsInAnyContext(*receiver_prototype,
1338 isolate->IsInAnyContext(*receiver_prototype,
1353 (!receiver_map->GetIndexedInterceptor().getter().IsUndefined(isolate()) ||
1356 isolate()))) &&
1359 TRACE_HANDLER_STATS(isolate(), KeyedLoadIC_LoadIndexedInterceptorStub);
1366 TRACE_HANDLER_STATS(isolate(), KeyedLoadIC_LoadIndexedStringDH);
1367 if (IsAnyHas()) return LoadHandler::LoadSlow(isolate());
1368 return LoadHandler::LoadIndexedString(isolate(), load_mode);
1371 TRACE_HANDLER_STATS(isolate(), KeyedLoadIC_SlowStub);
1372 return LoadHandler::LoadSlow(isolate());
1375 return LoadHandler::LoadProxy(isolate());
1380 TRACE_HANDLER_STATS(isolate(), KeyedLoadIC_SlowStub);
1381 return LoadHandler::LoadSlow(isolate());
1388 TRACE_HANDLER_STATS(isolate(), KeyedLoadIC_KeyedLoadSloppyArgumentsStub);
1394 TRACE_HANDLER_STATS(isolate(), KeyedLoadIC_LoadElementDH);
1395 return LoadHandler::LoadElement(isolate(), elements_kind, false,
1404 AllowConvertHoleElementToUndefined(isolate(), receiver_map);
1405 TRACE_HANDLER_STATS(isolate(), KeyedLoadIC_LoadElementDH);
1406 return LoadHandler::LoadElement(isolate(), elements_kind,
1427 isolate(), *receiver_maps, ConcurrencyMode::kSynchronous);
1429 receiver_map->NotifyLeafMapLayoutChange(isolate());
1443 KeyType TryConvertKey(Handle<Object> key, Isolate* isolate, intptr_t* index_out,
1458 key = isolate->factory()->InternalizeString(Handle<String>::cast(key));
1527 KeyedAccessLoadMode GetLoadMode(Isolate* isolate, Handle<Object> receiver,
1532 isolate);
1533 if (AllowConvertHoleElementToUndefined(isolate, receiver_map)) {
1548 isolate(), result, Runtime::GetObjectProperty(isolate(), object, key),
1552 ASSIGN_RETURN_ON_EXCEPTION(isolate(), result,
1553 Runtime::HasProperty(isolate(), object, key),
1561 if (MigrateDeprecated(isolate(), object)) {
1570 KeyType key_type = TryConvertKey(key, isolate(), &maybe_index, &maybe_name);
1573 ASSIGN_RETURN_ON_EXCEPTION(isolate(), load_handle,
1578 KeyedAccessLoadMode load_mode = GetLoadMode(isolate(), object, index);
1616 !info.getter().IsUndefined(isolate()) ||
1617 !info.query().IsUndefined(isolate())) {
1642 PrototypeIterator iter(isolate(), receiver);
1661 (GetShouldThrow(it->isolate(), Nothing<ShouldThrow>()) ==
1692 Handle<JSGlobalObject> global = isolate()->global_object();
1694 global->native_context().script_context_table(), isolate());
1699 isolate(), script_contexts, lookup_result.context_index);
1705 isolate());
1707 if (previous_value->IsTheHole(isolate())) {
1711 isolate(),
1722 TRACE_HANDLER_STATS(isolate(), StoreGlobalIC_StoreScriptContextField);
1725 TRACE_HANDLER_STATS(isolate(), StoreGlobalIC_SlowStub);
1726 SetCache(name, StoreHandler::StoreSlow(isolate()));
1747 DCHECK(!it->GetReceiver()->IsJSGlobalObject(it->isolate()));
1761 return JSProxy::DefineOwnProperty(it->isolate(), it->GetHolder<JSProxy>(),
1808 if (MigrateDeprecated(isolate(), object)) {
1814 PropertyKey key(isolate(), name);
1816 isolate(), object, key,
1833 if (object->IsNullOrUndefined(isolate())) {
1836 TRACE_HANDLER_STATS(isolate(), StoreIC_NonReceiver);
1838 SetCache(name, StoreHandler::StoreSlow(isolate()));
1845 JSObject::MakePrototypesFast(object, kStartAtPrototype, isolate());
1846 PropertyKey key(isolate(), name);
1848 isolate(), object, key,
1878 isolate(), &it, value, Nothing<ShouldThrow>());
1930 handler = MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
1944 TRACE_HANDLER_STATS(isolate(), StoreIC_StoreGlobalTransitionDH);
1959 TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
1960 return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
1963 Handle<Smi> smi_handler = StoreHandler::StoreGlobalProxy(isolate());
1965 isolate(), lookup_start_object_map(), store_target, smi_handler,
1975 return StoreHandler::StoreOwnTransition(isolate(),
1978 return StoreHandler::StoreTransition(isolate(), lookup->transition_map());
1990 if (!info.setter().IsUndefined(isolate()) && !IsAnyDefineOwn()) {
1991 return MaybeObjectHandle(StoreHandler::StoreInterceptor(isolate()));
1995 return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
2001 DCHECK(!info.getter().IsUndefined(isolate()) ||
2002 !info.query().IsUndefined(isolate()));
2004 isolate(), lookup_start_object_map(), holder,
2005 StoreHandler::StoreSlow(isolate()));
2017 TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
2019 MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
2027 TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
2028 return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
2033 TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
2034 return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
2039 TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
2040 return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
2044 isolate(), lookup->GetAccessorIndex());
2045 TRACE_HANDLER_STATS(isolate(), StoreIC_StoreNativeDataPropertyDH);
2049 TRACE_HANDLER_STATS(isolate(),
2052 isolate(), lookup_start_object_map(), holder, smi_handler));
2056 isolate());
2059 TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
2060 return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
2068 TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
2069 return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
2072 CallOptimization call_optimization(isolate(), setter);
2077 isolate(), lookup_start_object_map(), &holder_lookup);
2081 isolate(),
2085 call_optimization.GetAccessorContext(holder->map()), isolate());
2086 TRACE_HANDLER_STATS(isolate(), StoreIC_StoreApiSetterOnPrototypeDH);
2088 isolate(), lookup_start_object_map(), holder, smi_handler,
2093 TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
2094 return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
2097 TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
2098 return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
2102 StoreHandler::StoreAccessor(isolate(), lookup->GetAccessorIndex());
2104 TRACE_HANDLER_STATS(isolate(), StoreIC_StoreAccessorDH);
2108 TRACE_HANDLER_STATS(isolate(), StoreIC_StoreAccessorOnPrototypeDH);
2111 isolate(), lookup_start_object_map(), holder, smi_handler));
2113 TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
2114 return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
2127 TRACE_HANDLER_STATS(isolate(), StoreIC_StoreGlobalDH);
2131 TRACE_HANDLER_STATS(isolate(), StoreIC_StoreNormalDH);
2136 Handle<Smi> handler = StoreHandler::StoreNormal(isolate());
2142 TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
2143 return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
2148 TRACE_HANDLER_STATS(isolate(), StoreIC_StoreFieldDH);
2153 isolate(), descriptor, index, lookup->representation()));
2164 isolate(), descriptor, index, constness, lookup->representation()));
2171 TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
2172 return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
2182 TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
2183 return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
2187 isolate(), lookup_start_object_map(), holder, receiver));
2204 [this](Handle<Map> map) { return Map::TryUpdate(isolate(), map); });
2343 receiver_map->MayHaveReadOnlyElementsInPrototypeChain(isolate()),
2347 return StoreHandler::StoreProxy(isolate());
2354 TRACE_HANDLER_STATS(isolate(), KeyedStoreIC_KeyedStoreSloppyArgumentsStub);
2360 TRACE_HANDLER_STATS(isolate(), KeyedStoreIC_StoreFastElementStub);
2367 TRACE_HANDLER_STATS(isolate(), StoreInArrayLiteralIC_SlowStub);
2368 return StoreHandler::StoreSlow(isolate(), store_mode);
2371 TRACE_HANDLER_STATS(isolate(), KeyedStoreIC_StoreElementStub);
2374 code = StoreHandler::StoreSlow(isolate(), store_mode);
2381 Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
2387 Handle<StoreHandler> handler = isolate()->factory()->NewStoreHandler(0);
2409 receiver_map->MayHaveReadOnlyElementsInPrototypeChain(isolate())) {
2412 TRACE_HANDLER_STATS(isolate(), KeyedStoreIC_SlowStub);
2413 handler = StoreHandler::StoreSlow(isolate());
2418 isolate(), receiver_maps, ConcurrencyMode::kSynchronous);
2421 receiver_map->NotifyLeafMapLayoutChange(isolate());
2423 transition = handle(tmap, isolate());
2433 DataHandler::cast(old_handler_obj).validity_cell(), isolate());
2443 TRACE_HANDLER_STATS(isolate(),
2446 isolate(), receiver_map, transition, store_mode, validity_cell);
2493 if (MigrateDeprecated(isolate(), object)) {
2498 isolate(), result,
2500 ? Runtime::DefineObjectOwnProperty(isolate(), object, key, value,
2502 : Runtime::SetObjectProperty(isolate(), object, key, value,
2512 KeyType key_type = TryConvertKey(key, isolate(), &maybe_index, &maybe_name);
2516 isolate(), store_handle,
2528 JSObject::MakePrototypesFast(object, kStartAtPrototype, isolate());
2539 if (heap_object->map().IsMapInArrayPrototypeChain(isolate())) {
2551 old_receiver_map = handle(receiver->map(), isolate());
2566 isolate(), store_handle,
2570 ? Runtime::DefineObjectOwnProperty(isolate(), object, key, value,
2572 : Runtime::SetObjectProperty(isolate(), object, key, value,
2594 isolate())) {
2601 handle(receiver->map(), isolate()));
2622 Maybe<bool> StoreOwnElement(Isolate* isolate, Handle<JSArray> array,
2625 PropertyKey key(isolate, index);
2626 LookupIterator it(isolate, array, key, LookupIterator::OWN);
2638 DCHECK(!array->map().IsMapInArrayPrototypeChain(isolate()));
2642 MigrateDeprecated(isolate(), array)) {
2643 MAYBE_RETURN_NULL(StoreOwnElement(isolate(), array, index, value));
2657 Handle<Map> old_array_map(array->map(), isolate());
2658 MAYBE_RETURN_NULL(StoreOwnElement(isolate(), array, index, value));
2663 handle(array->map(), isolate()));
2680 HandleScope scope(isolate);
2694 LoadIC ic(isolate, vector, vector_slot, kind);
2696 RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
2699 DCHECK_EQ(isolate->native_context()->global_proxy(), *receiver);
2700 receiver = isolate->global_object();
2701 LoadGlobalIC ic(isolate, vector, vector_slot, kind);
2703 RETURN_RESULT_OR_FAILURE(isolate, ic.Load(key));
2707 KeyedLoadIC ic(isolate, vector, vector_slot, kind);
2709 RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
2714 HandleScope scope(isolate);
2726 LoadIC ic(isolate, vector, vector_slot, kind);
2728 RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
2732 HandleScope scope(isolate);
2741 LoadIC ic(isolate, vector, vector_slot, FeedbackSlotKind::kLoadProperty);
2743 RETURN_RESULT_OR_FAILURE(isolate, ic.Load(object, key, true, receiver));
2747 HandleScope scope(isolate);
2750 Handle<JSGlobalObject> global = isolate->global_object();
2767 LoadGlobalIC ic(isolate, vector, vector_slot, kind);
2771 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(name));
2776 HandleScope scope(isolate);
2785 LoadGlobalIC ic(isolate, vector, vector_slot, kind);
2787 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(name, false));
2792 HandleScope scope(isolate);
2803 LoadIC ic(isolate, vector, vector_slot, FeedbackSlotKind::kLoadProperty);
2805 RETURN_RESULT_OR_FAILURE(isolate, ic.Load(object, key, true, receiver));
2809 HandleScope scope(isolate);
2823 KeyedLoadIC ic(isolate, vector, vector_slot, FeedbackSlotKind::kLoadKeyed);
2825 RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
2829 HandleScope scope(isolate);
2853 StoreIC ic(isolate, vector, vector_slot, kind);
2855 RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
2859 HandleScope scope(isolate);
2884 StoreIC ic(isolate, vector, vector_slot, kind);
2886 RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
2890 HandleScope scope(isolate);
2902 PropertyKey lookup_key(isolate, key);
2903 LookupIterator it(isolate, object, lookup_key, LookupIterator::OWN);
2907 ReadOnlyRoots(isolate).exception());
2912 HandleScope scope(isolate);
2922 StoreGlobalIC ic(isolate, vector, vector_slot, kind);
2923 Handle<JSGlobalObject> global = isolate->global_object();
2925 RETURN_RESULT_OR_FAILURE(isolate, ic.Store(key, value));
2929 HandleScope scope(isolate);
2936 StoreGlobalIC ic(isolate, Handle<FeedbackVector>(), FeedbackSlot(),
2938 RETURN_RESULT_OR_FAILURE(isolate, ic.Store(key, value));
2944 HandleScope scope(isolate);
2962 Handle<JSGlobalObject> global = isolate->global_object();
2963 Handle<Context> native_context = isolate->native_context();
2965 native_context->script_context_table(), isolate);
2970 isolate, script_contexts, lookup_result.context_index);
2973 isolate, NewTypeError(MessageTemplate::kConstAssign, global, name));
2977 isolate);
2979 if (previous_value->IsTheHole(isolate)) {
2981 isolate, NewReferenceError(
2990 isolate, Runtime::SetObjectProperty(isolate, global, name, value,
2995 HandleScope scope(isolate);
3024 KeyedStoreIC ic(isolate, vector, vector_slot, kind);
3026 RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
3031 StoreInArrayLiteralIC ic(isolate, vector, vector_slot);
3034 isolate, ic.Store(Handle<JSArray>::cast(receiver), key, value));
3039 HandleScope scope(isolate);
3060 KeyedStoreIC ic(isolate, vector, vector_slot, kind);
3062 RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
3066 HandleScope scope(isolate);
3082 StoreInArrayLiteralIC ic(isolate, vector, vector_slot);
3084 isolate, ic.Store(Handle<JSArray>::cast(receiver), key, value));
3088 HandleScope scope(isolate);
3095 isolate, Runtime::SetObjectProperty(isolate, object, key, value,
3100 HandleScope scope(isolate);
3107 isolate, Runtime::DefineObjectOwnProperty(isolate, object, key, value,
3112 HandleScope scope(isolate);
3118 StoreOwnElement(isolate, Handle<JSArray>::cast(array), index, value);
3123 HandleScope scope(isolate);
3141 StoreOwnElement(isolate, Handle<JSArray>::cast(object), key, value);
3147 isolate,
3149 ? Runtime::DefineObjectOwnProperty(isolate, object, key, value,
3151 : Runtime::SetObjectProperty(isolate, object, key, value,
3178 static Handle<Map> FastCloneObjectMap(Isolate* isolate, Handle<Map> source_map,
3181 Handle<JSFunction> constructor(isolate->native_context()->object_function(),
3182 isolate);
3184 Handle<Map> initial_map(constructor->initial_map(), isolate);
3194 map = Map::CopyInitialMap(isolate, map, instance_size, inobject_properties,
3200 map = Map::Copy(isolate, map, "ObjectWithNullProto");
3202 Map::SetPrototype(isolate, map, isolate->factory()->null_value());
3211 map = Map::Copy(isolate, map, "InitializeClonedDescriptors");
3215 source_map->instance_descriptors(isolate), isolate);
3219 isolate, source_descriptors, size, slack);
3220 map->InitializeDescriptors(isolate, *descriptors);
3230 static MaybeHandle<JSObject> CloneObjectSlowPath(Isolate* isolate,
3235 new_object = isolate->factory()->NewJSObjectWithNullProto();
3237 Handle<JSFunction> constructor(isolate->native_context()->object_function(),
3238 isolate);
3239 new_object = isolate->factory()->NewJSObject(constructor);
3248 isolate, new_object, source,
3255 HandleScope scope(isolate);
3260 if (!MigrateDeprecated(isolate, source)) {
3268 isolate);
3271 FastCloneObjectMap(isolate, source_map, flags);
3281 RETURN_RESULT_OR_FAILURE(isolate,
3282 CloneObjectSlowPath(isolate, source, flags));
3291 HandleScope scope(isolate);
3296 isolate, Runtime::SetObjectProperty(isolate, receiver, name, value,
3303 PropertyCallbackArguments arguments(isolate, info->data(), *receiver, *holder,
3306 RETURN_FAILURE_IF_SCHEDULED_EXCEPTION(isolate);
3315 HandleScope scope(isolate);
3323 isolate, receiver, Object::ConvertReceiver(isolate, receiver));
3326 Handle<InterceptorInfo> interceptor(holder->GetNamedInterceptor(), isolate);
3327 PropertyCallbackArguments arguments(isolate, interceptor->data(), *receiver,
3331 RETURN_FAILURE_IF_SCHEDULED_EXCEPTION(isolate);
3335 LookupIterator it(isolate, receiver, name, holder);
3344 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, Object::GetProperty(&it));
3355 return ReadOnlyRoots(isolate).undefined_value();
3360 isolate, NewReferenceError(MessageTemplate::kNotDefined, it.name()));
3364 HandleScope scope(isolate);
3378 handle(JSObject::cast(receiver->map().prototype()), isolate);
3382 isolate);
3385 PropertyCallbackArguments arguments(isolate, interceptor->data(), *receiver,
3389 RETURN_FAILURE_IF_SCHEDULED_EXCEPTION(isolate);
3392 LookupIterator it(isolate, receiver, name, receiver);
3403 ReadOnlyRoots(isolate).exception());
3409 HandleScope scope(isolate);
3415 isolate);
3416 PropertyCallbackArguments arguments(isolate, interceptor->data(), *receiver,
3420 RETURN_FAILURE_IF_SCHEDULED_EXCEPTION(isolate);
3423 LookupIterator it(isolate, receiver, index, receiver);
3426 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
3434 HandleScope scope(isolate);
3448 KeyedLoadIC ic(isolate, vector, vector_slot, FeedbackSlotKind::kHasKeyed);
3450 RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
3454 HandleScope scope(isolate);
3460 isolate);
3461 PropertyCallbackArguments arguments(isolate, interceptor->data(), *receiver,
3464 if (!interceptor->query().IsUndefined(isolate)) {
3469 return value == ABSENT ? ReadOnlyRoots(isolate).false_value()
3470 : ReadOnlyRoots(isolate).true_value();
3472 } else if (!interceptor->getter().IsUndefined(isolate)) {
3475 return ReadOnlyRoots(isolate).true_value();
3479 LookupIterator it(isolate, receiver, index, receiver);
3483 if (maybe.IsNothing()) return ReadOnlyRoots(isolate).exception();
3484 return maybe.FromJust() ? ReadOnlyRoots(isolate).true_value()
3485 : ReadOnlyRoots(isolate).false_value();