Lines Matching refs:receiver

167                                const JSHandle<JSTaggedValue> &receiver, const JSHandle<JSTaggedValue> &key,
169 : thread_(thread), holder_(thread, holder.GetTaggedValue()), receiver_(thread, receiver.GetTaggedValue())
177 ObjectOperator::ObjectOperator(JSThread *thread, const JSTaggedValue &receiver, const JSTaggedValue &name,
179 : thread_(thread), holder_(thread, receiver), receiver_(thread, receiver), key_(thread, name)
198 ObjectOperator::ObjectOperator(JSThread *thread, const JSTaggedValue &receiver, const JSTaggedValue &name,
200 : thread_(thread), receiver_(thread, receiver), key_(thread, name)
204 void ObjectOperator::FastAdd(JSThread *thread, const JSTaggedValue &receiver, const JSTaggedValue &name,
207 ObjectOperator op(thread, receiver, name, attr);
212 void ObjectOperator::UpdateDetectorOnSetPrototype(const JSThread *thread, JSTaggedValue receiver)
219 JSHClass *hclass = receiver.GetTaggedObject()->GetClass();
244 if (JSPrimitiveRef::Cast(receiver.GetTaggedObject())->IsString() &&
280 (receiver == env->GetTaggedInt8ArrayFunctionPrototype() ||
281 receiver == env->GetTaggedUint8ArrayFunctionPrototype() ||
282 receiver == env->GetTaggedUint8ClampedArrayFunctionPrototype() ||
283 receiver == env->GetTaggedInt16ArrayFunctionPrototype() ||
284 receiver == env->GetTaggedUint16ArrayFunctionPrototype() ||
285 receiver == env->GetTaggedInt32ArrayFunctionPrototype() ||
286 receiver == env->GetTaggedUint32ArrayFunctionPrototype() ||
287 receiver == env->GetTaggedFloat32ArrayFunctionPrototype() ||
288 receiver == env->GetTaggedFloat64ArrayFunctionPrototype() ||
289 receiver == env->GetTaggedBigInt64ArrayFunctionPrototype() ||
290 receiver == env->GetTaggedBigUint64ArrayFunctionPrototype()) &&
296 JSObject::Cast(receiver)->GetJSHClass()->IsPrototype() && receiver.IsJSPrimitive())) {
311 void ObjectOperator::UpdateDetector(const JSThread *thread, JSTaggedValue receiver, JSTaggedValue key)
324 (receiver.IsJSRegExp() || receiver == env->GetTaggedRegExpPrototype())) {
330 if (receiver.IsJSMap() || receiver == env->GetTaggedMapPrototype()) {
335 } else if (receiver.IsJSSet() || receiver == env->GetTaggedSetPrototype()) {
340 } else if ((receiver.IsJSPrimitiveRef() && JSPrimitiveRef::Cast(receiver.GetTaggedObject())->IsString()) ||
341 receiver == env->GetTaggedStringPrototype()) {
346 } else if (receiver.IsJSArray() || receiver == env->GetTaggedArrayPrototype()) {
351 } else if (receiver.IsTypedArray() ||
352 receiver == env->GetTaggedArrayPrototype() ||
353 receiver == env->GetTaggedInt8ArrayFunctionPrototype() ||
354 receiver == env->GetTaggedUint8ArrayFunctionPrototype() ||
355 receiver == env->GetTaggedUint8ClampedArrayFunctionPrototype() ||
356 receiver == env->GetTaggedInt16ArrayFunctionPrototype() ||
357 receiver == env->GetTaggedUint16ArrayFunctionPrototype() ||
358 receiver == env->GetTaggedInt32ArrayFunctionPrototype() ||
359 receiver == env->GetTaggedUint32ArrayFunctionPrototype() ||
360 receiver == env->GetTaggedFloat32ArrayFunctionPrototype() ||
361 receiver == env->GetTaggedFloat64ArrayFunctionPrototype() ||
362 receiver == env->GetTaggedBigInt64ArrayFunctionPrototype() ||
363 receiver == env->GetTaggedBigUint64ArrayFunctionPrototype()) {
370 if (receiver == env->GetTypedArrayFunction().GetTaggedValue()) {
376 if (receiver == env->GetRegExpFunction().GetTaggedValue()) {
389 if ((JSObject::Cast(receiver)->GetJSHClass()->IsPrototype() &&
390 (receiver.IsJSPrimitive() || receiver == env->GetTaggedObjectFunctionPrototype()))) {
394 (receiver.IsJSRegExp() || receiver == env->GetTaggedRegExpPrototype())) {
598 void ObjectOperator::TransitionForAttributeChanged(const JSHandle<JSObject> &receiver, PropertyAttributes attr)
602 if (!receiver->GetJSHClass()->IsDictionaryElement()) {
603 JSObject::ElementsToDictionary(thread_, receiver);
605 auto dict = NumberDictionary::Cast(receiver->GetElements().GetTaggedObject());
611 auto dict = NumberDictionary::Cast(receiver->GetElements().GetTaggedObject());
616 } else if (receiver->IsJSGlobalObject()) {
618 JSHandle<GlobalDictionary> dictHandle(thread_, receiver->GetProperties());
623 if (!receiver->GetJSHClass()->IsDictionaryMode()) {
624 JSHandle<NameDictionary> dict(JSObject::TransitionToDictionary(thread_, receiver));
632 auto dict = NameDictionary::Cast(receiver->GetProperties().GetTaggedObject());
640 bool ObjectOperator::UpdateValueAndDetails(const JSHandle<JSObject> &receiver, const JSHandle<JSTaggedValue> &value,
650 return UpdateDataValue(receiver, value, isInternalAccessor);
653 TransitionForAttributeChanged(receiver, attr);
655 return UpdateDataValue(receiver, value, isInternalAccessor);
657 bool res = UpdateDataValue(receiver, value, isInternalAccessor);
659 TransitionForAttributeChanged(receiver, attr);
665 bool ObjectOperator::UpdateDataValue(const JSHandle<JSObject> &receiver, const JSHandle<JSTaggedValue> &value,
669 TaggedArray *elements = TaggedArray::Cast(receiver->GetElements().GetTaggedObject());
671 if (receiver.GetTaggedValue().IsJSCOWArray()) {
672 JSArray::CheckAndCopyArray(thread_, JSHandle<JSArray>(receiver));
673 } else if (receiver->IsTypedArray()) {
674 JSTaggedValue holder = receiver.GetTaggedValue();
677 receiver.GetTaggedValue(), GetIndex(), value.GetTaggedValue(), jsType);
684 ElementsKind oldKind = receiver->GetClass()->GetElementsKind();
685 if (JSHClass::TransitToElementsKind(thread_, receiver, value)) {
687 ElementsKind newKind = receiver->GetClass()->GetElementsKind();
689 Elements::MigrateArrayWithKind(thread_, receiver, oldKind, newKind);
691 ElementAccessor::Set(thread_, receiver, GetIndex(), value, false);
700 if (receiver->IsJSGlobalObject()) {
702 auto *dict = GlobalDictionary::Cast(receiver->GetProperties().GetTaggedObject());
716 bool res = accessor->CallInternalSet(thread_, JSHandle<JSObject>(receiver), value, mayThrow);
717 if (receiver->GetJSHClass()->IsDictionaryMode()) {
725 JSMutableHandle<TaggedArray> properties(thread_, TaggedArray::Cast(receiver->GetProperties().GetTaggedObject()));
745 receiver->SetPropertyInlinedPropsWithRep(thread_, GetIndex(), actualValue.value);
747 if (receiver.GetTaggedValue().IsJSCOWArray()) {
748 JSArray::CheckAndCopyArray(thread_, JSHandle<JSArray>(receiver));
749 properties.Update(JSHandle<JSArray>(receiver)->GetProperties());
763 bool ObjectOperator::WriteDataProperty(const JSHandle<JSObject> &receiver, const PropertyDescriptor &desc)
785 TransitionForAttributeChanged(receiver, attr);
793 if (receiver->IsJSGlobalObject()) {
807 return UpdateValueAndDetails(receiver, desc.GetValue(), attr, attrChanged);
810 TaggedArray *properties = TaggedArray::Cast(receiver->GetProperties().GetTaggedObject());
826 JSHandle<NameDictionary> dict(JSObject::TransitionToDictionary(thread_, receiver));
857 bool success = UpdateValueAndDetails(receiver, value, attr, attrChanged);
859 JSHandle<JSObject> obj(receiver);
879 bool ObjectOperator::AddProperty(const JSHandle<JSObject> &receiver, const JSHandle<JSTaggedValue> &value,
883 ElementsKind oldKind = receiver->GetClass()->GetElementsKind();
884 uint32_t oldLen = receiver.GetTaggedValue().IsJSArray() ?
885 JSArray::Cast(*receiver)->GetArrayLength() : 0;
886 bool ret = JSObject::AddElementInternal(thread_, receiver, elementIndex_, value, attr);
888 ElementsKind newKind = receiver->GetClass()->GetElementsKind();
889 uint32_t newLen = receiver.GetTaggedValue().IsJSArray() ?
890 JSArray::Cast(*receiver)->GetArrayLength() : 0;
893 if (receiver.GetTaggedValue().IsJSArray() && (newKind != oldKind)) {
896 bool isDict = receiver->GetJSHClass()->IsDictionaryElement();
902 receiver_.Update(receiver.GetTaggedValue());
908 void ObjectOperator::WriteElement(const JSHandle<JSObject> &receiver, JSHandle<JSTaggedValue> value) const
912 if (!ElementAccessor::IsDictionaryMode(receiver)) {
913 ElementAccessor::Set(thread_, receiver, index_, value, true);
917 TaggedArray *elements = TaggedArray::Cast(receiver->GetElements().GetTaggedObject());