Lines Matching refs:receiver
54 #define CHECK_IS_ON_PROTOTYPE_CHAIN(receiver, holder) \
55 if (UNLIKELY((receiver) != (holder))) { \
60 JSTaggedValue receiver, JSTaggedValue key)
63 if (!receiver.IsHeapObject() || !(receiver.IsRegularObject())) {
73 JSHandle<JSObject> receiverObj(thread, receiver);
86 NumberDictionary::Cast(JSObject::Cast(receiver)->GetElements().GetTaggedObject());
103 auto *hclass = receiver.GetTaggedObject()->GetClass();
105 ASSERT(!TaggedArray::Cast(JSObject::Cast(receiver)->GetProperties().GetTaggedObject())->IsDictionaryMode());
111 TaggedArray *array = TaggedArray::Cast(JSObject::Cast(receiver)->GetProperties().GetTaggedObject());
123 JSTaggedValue ObjectFastOperator::TryFastHasProperty(JSThread *thread, JSTaggedValue receiver,
127 if (UNLIKELY(!receiver.IsHeapObject() || !receiver.IsRegularObject())) {
138 JSHandle<JSObject> receiverObj(thread, receiver);
149 auto *hclass = receiver.GetTaggedObject()->GetClass();
152 JSHandle<JSTaggedValue> receiverHandler(thread, receiver);
158 receiver = receiverHandler.GetTaggedValue();
160 ASSERT(!TaggedArray::Cast(JSObject::Cast(receiver)->GetProperties().GetTaggedObject())->IsDictionaryMode());
170 JSTaggedValue ObjectFastOperator::TryFastGetPropertyByValue(JSThread *thread, JSTaggedValue receiver,
174 if (UNLIKELY(!receiver.IsHeapObject() || !receiver.IsRegularObject())) {
182 return TryFastGetPropertyByIndex<status>(thread, receiver, index);
187 JSHandle<JSTaggedValue> receiverHandler(thread, receiver);
193 receiver = receiverHandler.GetTaggedValue();
195 auto ret = TryGetPropertyByNameThroughCacheAtLocal(thread, receiver, key);
199 return ObjectFastOperator::GetPropertyByName<status>(thread, receiver, key);
205 JSTaggedValue ObjectFastOperator::TryFastGetPropertyByIndex(JSThread *thread, JSTaggedValue receiver, uint32_t index)
207 JSTaggedValue holder = receiver;
223 JSTaggedValue ObjectFastOperator::TryGetPropertyByNameThroughCacheAtLocal(JSThread *thread, JSTaggedValue receiver,
226 auto *hclass = receiver.GetTaggedObject()->GetClass();
228 ASSERT(!TaggedArray::Cast(JSObject::Cast(receiver)->GetProperties().GetTaggedObject())->IsDictionaryMode());
235 auto value = JSObject::Cast(receiver)->GetProperty(hclass, attr);
240 return CallGetter(thread, receiver, receiver, value);
252 JSTaggedValue ObjectFastOperator::GetPropertyByName(JSThread *thread, JSTaggedValue receiver,
259 JSTaggedValue holder = receiver;
265 JSTaggedValue res = FastGetTypeArrayProperty(thread, receiver, holder, key, jsType);
306 return CallGetter(thread, receiver, holder, value);
329 return CallGetter(thread, receiver, holder, value);
345 JSTaggedValue ObjectFastOperator::TrySetPropertyByNameThroughCacheAtLocal(JSThread *thread, JSTaggedValue receiver,
350 auto *hclass = receiver.GetTaggedObject()->GetClass();
352 ASSERT(!TaggedArray::Cast(JSObject::Cast(receiver)->GetProperties().GetTaggedObject())->IsDictionaryMode());
362 auto accessor = JSObject::Cast(receiver)->GetProperty(hclass, attr);
363 if (ShouldCallSetter(receiver, receiver, accessor, attr)) {
364 return CallSetter(thread, receiver, value, accessor);
376 auto attrVal = JSObject::Cast(receiver)->GetProperty(hclass, attr);
380 JSHandle<JSObject> objHandle(thread, receiver);
386 receiver = objHandle.GetTaggedValue();
391 if (receiver.IsJSShared()) {
398 JSObject::Cast(receiver)->SetProperty<true>(thread, hclass, attr, value);
400 JSObject::Cast(receiver)->SetProperty<false>(thread, hclass, attr, value);
409 JSTaggedValue ObjectFastOperator::SetPropertyByName(JSThread *thread, JSTaggedValue receiver, JSTaggedValue key,
414 JSTaggedValue holder = receiver;
421 JSTaggedValue res = FastSetTypeArrayProperty(thread, receiver, holder, key, value, jsType);
446 if (ShouldCallSetter(receiver, holder, accessor, attr)) {
447 return CallSetter(thread, receiver, value, accessor);
461 if (receiverHoleEntry == -1 && holder == receiver) {
471 if (UNLIKELY(holder != receiver)) {
480 JSHandle<JSObject> objHandle(thread, receiver);
485 receiver = objHandle.GetTaggedValue();
488 JSObject::Cast(receiver)->SetProperty<true>(thread, hclass, attr, actualValue.value);
490 JSObject::Cast(receiver)->SetProperty<false>(thread, hclass, attr, actualValue.value);
506 if (ShouldCallSetter(receiver, holder, accessor, attr)) {
507 return CallSetter(thread, receiver, value, accessor);
518 if (UNLIKELY(holder != receiver)) {
538 auto *receiverHClass = receiver.GetTaggedObject()->GetClass();
541 JSHandle<JSObject> objHandle(thread, receiver);
546 receiver = objHandle.GetTaggedValue();
549 JSObject::Cast(receiver)->SetProperty<true>(thread, receiverHClass, attr, actualValue.value);
551 JSObject::Cast(receiver)->SetProperty<false>(thread, receiverHClass, attr, actualValue.value);
557 JSHandle<JSObject> objHandle(thread, receiver);
561 if (UNLIKELY(!JSObject::Cast(receiver)->IsExtensible())) {
565 ASSERT(!receiver.IsJSShared());
572 JSTaggedValue ObjectFastOperator::GetPropertyByIndex(JSThread *thread, JSTaggedValue receiver, uint32_t index)
576 JSTaggedValue holder = receiver;
616 return CallGetter(thread, receiver, holder, value);
633 JSTaggedValue ObjectFastOperator::SetPropertyByIndex(JSThread *thread, JSTaggedValue receiver, uint32_t index,
637 JSTaggedValue holder = receiver;
646 CHECK_IS_ON_PROTOTYPE_CHAIN(receiver, holder);
647 return JSTypedArray::FastSetPropertyByIndex(thread, receiver, index, value, jsType);
661 if (UNLIKELY(holder != receiver)) {
690 if (UNLIKELY(holder != receiver)) {
698 if (ShouldCallSetter(receiver, holder, accessor, attr)) {
699 return CallSetter(thread, receiver, value, accessor);
713 return AddPropertyByIndex(thread, receiver, index, value);
717 JSTaggedValue ObjectFastOperator::GetPropertyByValue(JSThread *thread, JSTaggedValue receiver, JSTaggedValue key)
726 return GetPropertyByIndex<status>(thread, receiver, index);
732 JSHandle<JSTaggedValue> receiverHandler(thread, receiver);
735 receiver = receiverHandler.GetTaggedValue();
737 return ObjectFastOperator::GetPropertyByName<status>(thread, receiver, key);
743 JSTaggedValue ObjectFastOperator::SetPropertyByValue(JSThread *thread, JSTaggedValue receiver, JSTaggedValue key,
753 return SetPropertyByIndex<status>(thread, receiver, index, value);
760 JSHandle<JSTaggedValue> receiverHandler(thread, receiver);
765 receiver = receiverHandler.GetTaggedValue();
769 ObjectOperator::UpdateDetector(thread, receiver, key);
770 return ObjectFastOperator::SetPropertyByName<status>(thread, receiver, key, value, sCheckMode);
775 bool ObjectFastOperator::FastSetPropertyByValue(JSThread *thread, JSTaggedValue receiver, JSTaggedValue key,
779 JSTaggedValue result = ObjectFastOperator::SetPropertyByValue(thread, receiver, key, value, sCheckMode);
784 return JSTaggedValue::SetProperty(thread, JSHandle<JSTaggedValue>(thread, receiver),
789 bool ObjectFastOperator::FastSetPropertyByIndex(JSThread *thread, JSTaggedValue receiver, uint32_t index,
793 JSTaggedValue result = ObjectFastOperator::SetPropertyByIndex(thread, receiver, index, value);
797 return JSTaggedValue::SetProperty(thread, JSHandle<JSTaggedValue>(thread, receiver), index,
801 JSTaggedValue ObjectFastOperator::FastGetPropertyByName(JSThread *thread, JSTaggedValue receiver,
807 JSHandle<JSTaggedValue> receiverHandler(thread, receiver);
810 receiver = receiverHandler.GetTaggedValue();
812 JSTaggedValue result = ObjectFastOperator::GetPropertyByName<Status::GetInternal>(thread, receiver, key);
814 return JSTaggedValue::GetProperty(thread, JSHandle<JSTaggedValue>(thread, receiver),
820 JSTaggedValue ObjectFastOperator::FastGetPropertyByValue(JSThread *thread, JSTaggedValue receiver, JSTaggedValue key,
824 JSTaggedValue result = ObjectFastOperator::GetPropertyByValue(thread, receiver, key);
826 return JSTaggedValue::GetProperty(thread, JSHandle<JSTaggedValue>(thread, receiver),
832 JSTaggedValue ObjectFastOperator::FastGetPropertyByIndex(JSThread *thread, JSTaggedValue receiver, uint32_t index)
835 JSTaggedValue result = ObjectFastOperator::GetPropertyByIndex(thread, receiver, index);
839 JSHandle<JSTaggedValue>(thread, receiver), index).GetValue().GetTaggedValue();
964 JSTaggedValue ObjectFastOperator::CallGetter(JSThread *thread, JSTaggedValue receiver, JSTaggedValue holder,
975 JSHandle<JSTaggedValue> objHandle(thread, receiver);
979 JSTaggedValue ObjectFastOperator::CallSetter(JSThread *thread, JSTaggedValue receiver, JSTaggedValue value,
985 JSHandle<JSTaggedValue> objHandle(thread, receiver);
994 bool ObjectFastOperator::ShouldCallSetter(JSTaggedValue receiver, JSTaggedValue holder, JSTaggedValue accessorValue,
1000 if (receiver != holder) {
1031 JSTaggedValue ObjectFastOperator::FastGetTypeArrayProperty(JSThread *thread, JSTaggedValue receiver,
1035 CHECK_IS_ON_PROTOTYPE_CHAIN(receiver, holder);
1045 return JSTypedArray::FastGetPropertyByIndex(thread, receiver, index, jsType);
1059 JSTaggedValue ObjectFastOperator::FastSetTypeArrayProperty(JSThread *thread, JSTaggedValue receiver,
1063 CHECK_IS_ON_PROTOTYPE_CHAIN(receiver, holder);
1076 return JSTypedArray::FastSetPropertyByIndex(thread, receiver, index, value, jsType);
1086 JSTaggedValue ObjectFastOperator::GetContainerProperty(JSThread *thread, JSTaggedValue receiver, uint32_t index,
1092 res = JSAPIArrayList::Cast(receiver.GetTaggedObject())->Get(thread, index);
1095 res = JSAPIQueue::Cast(receiver.GetTaggedObject())->Get(thread, index);
1098 res = JSAPIPlainArray::Cast(receiver.GetTaggedObject())->Get(JSTaggedValue(index));
1101 res = JSAPIDeque::Cast(receiver.GetTaggedObject())->Get(index);
1104 res = JSAPIStack::Cast(receiver.GetTaggedObject())->Get(index);
1107 auto self = JSHandle<JSTaggedValue>(thread, receiver);
1112 res = JSAPIList::Cast(receiver.GetTaggedObject())->Get(index);
1116 res = JSAPIBitVector::Cast(receiver.GetTaggedObject())->Get(thread, index);
1120 res = JSAPILinkedList::Cast(receiver.GetTaggedObject())->Get(index);
1129 JSTaggedValue ObjectFastOperator::SetContainerProperty(JSThread *thread, JSTaggedValue receiver, uint32_t index,
1135 res = JSAPIArrayList::Cast(receiver.GetTaggedObject())->Set(thread, index, value);
1138 res = JSAPIQueue::Cast(receiver.GetTaggedObject())->Set(thread, index, value);
1141 JSHandle<JSAPIPlainArray> plainArray(thread, receiver);
1146 res = JSAPIDeque::Cast(receiver.GetTaggedObject())->Set(thread, index, value);
1149 res = JSAPIStack::Cast(receiver.GetTaggedObject())->Set(thread, index, value);
1152 res = JSAPIVector::Cast(receiver.GetTaggedObject())->Set(thread, index, value);
1155 res = JSAPIBitVector::Cast(receiver.GetTaggedObject())->Set(thread, index, value);
1158 JSHandle<JSAPIList> singleList(thread, receiver);
1163 JSHandle<JSAPILinkedList> doubleList(thread, receiver);
1173 JSTaggedValue ObjectFastOperator::AddPropertyByIndex(JSThread *thread, JSTaggedValue receiver, uint32_t index,
1179 if (UNLIKELY(!JSObject::Cast(receiver)->IsExtensible()) && !receiver.IsJSSharedArray()) {
1184 bool success = JSObject::AddElementInternal(thread, JSHandle<JSObject>(thread, receiver), index,
1240 JSTaggedValue receiver, uint32_t index)
1243 JSObject *obj = JSObject::Cast(receiver);