Lines Matching refs:handler
65 static_assert(NeedSkipInPGODumpBit::END_BIT <= MAX_BIT_SIZE, "load handler overflow");
76 static_assert(SFieldTypeBit::END_BIT <= MAX_BIT_SIZE, "store handler overflow");
83 static inline bool IsAccessor(Type handler)
85 return AccessorBit::Get(handler);
88 static inline SharedFieldType GetFieldType(Type handler)
90 return static_cast<SharedFieldType>(SFieldTypeBit::Get(handler));
93 static inline bool IsNonExist(Type handler)
95 return GetKind(handler) == HandlerKind::NON_EXIST;
98 static inline bool IsField(Type handler)
100 return GetKind(handler) == HandlerKind::FIELD;
103 static inline bool IsNonSharedStoreField(Type handler)
105 return static_cast<StoreHandlerKind>(GetKind(handler)) == StoreHandlerKind::S_FIELD;
108 static inline bool IsStoreShared(Type handler)
110 return SSharedBit::Get(handler);
113 static inline void ClearSharedStoreKind(Type &handler)
115 SSharedBit::Set<Type>(false, &handler);
118 static inline bool IsStoreOutOfBounds(Type handler)
120 return SOutOfBoundsBit::Get(handler);
123 static inline void ClearStoreOutOfBounds(Type &handler)
125 SOutOfBoundsBit::Set<Type>(false, &handler);
128 static inline bool IsString(Type handler)
130 return GetKind(handler) == HandlerKind::STRING;
133 static inline bool IsNumber(Type handler)
135 return GetKind(handler) == HandlerKind::NUMBER;
138 static inline bool IsStringLength(Type handler)
140 return GetKind(handler) == HandlerKind::STRING_LENGTH;
143 static inline bool IsElement(Type handler)
145 return IsNormalElement(handler) || IsStringElement(handler) || IsTypedArrayElement(handler);
148 static inline bool IsNormalElement(Type handler)
150 return GetKind(handler) == HandlerKind::ELEMENT;
153 static inline bool IsStringElement(Type handler)
155 return GetKind(handler) == HandlerKind::STRING;
158 static inline bool IsTypedArrayElement(Type handler)
160 return GetKind(handler) == HandlerKind::TYPED_ARRAY;
163 static inline bool IsDictionary(Type handler)
165 return GetKind(handler) == HandlerKind::DICTIONARY;
168 static inline bool IsInlinedProps(Type handler)
170 return InlinedPropsBit::Get(handler);
173 static inline HandlerKind GetKind(Type handler)
175 return KindBit::Get(handler);
178 static inline bool IsJSArray(Type handler)
180 return IsJSArrayBit::Get(handler);
183 static inline bool NeedSkipInPGODump(Type handler)
185 return NeedSkipInPGODumpBit::Get(handler);
188 static inline int GetOffset(Type handler)
190 return OffsetBit::Get(handler);
193 static inline bool IsOnHeap(Type handler)
195 return IsOnHeapBit::Get(handler);
203 uint64_t handler = 0;
206 KindBit::Set<uint64_t>(HandlerKind::NON_EXIST, &handler);
207 return JSHandle<JSTaggedValue>(thread, JSTaggedValue::WrapUint64(handler));
216 AccessorBit::Set<uint64_t>(hasAccessor, &handler);
226 KindBit::Set<uint64_t>(HandlerKind::STRING_LENGTH, &handler);
228 KindBit::Set<uint64_t>(HandlerKind::STRING, &handler);
231 KindBit::Set<uint64_t>(HandlerKind::NUMBER, &handler);
233 KindBit::Set<uint64_t>(HandlerKind::FIELD, &handler);
238 InlinedPropsBit::Set<uint64_t>(true, &handler);
241 OffsetBit::Set<uint64_t>(index, &handler);
242 AttrIndexBit::Set<uint64_t>(op.GetIndex(), &handler);
243 RepresentationBit::Set<uint64_t>(op.GetRepresentation(), &handler);
244 return JSHandle<JSTaggedValue>(thread, JSTaggedValue::WrapUint64(handler));
249 AttrIndexBit::Set<uint64_t>(op.GetIndex() + inlinePropNum, &handler);
250 OffsetBit::Set<uint64_t>(op.GetIndex(), &handler);
251 RepresentationBit::Set<uint64_t>(Representation::TAGGED, &handler);
252 return JSHandle<JSTaggedValue>(thread, JSTaggedValue::WrapUint64(handler));
260 uint64_t handler = 0;
261 KindBit::Set<uint64_t>(HandlerKind::ELEMENT, &handler);
272 NeedSkipInPGODumpBit::Set<uint64_t>(true, &handler);
276 IsJSArrayBit::Set<uint64_t>(true, &handler);
278 return JSHandle<JSTaggedValue>(thread, JSTaggedValue::WrapUint64(handler));
283 uint64_t handler = 0;
284 KindBit::Set<uint64_t>(HandlerKind::STRING, &handler);
285 return JSHandle<JSTaggedValue>(thread, JSTaggedValue::WrapUint64(handler));
291 uint64_t handler = 0;
292 KindBit::Set<uint64_t>(HandlerKind::TYPED_ARRAY, &handler);
293 IsOnHeapBit::Set<uint64_t>(JSHandle<TaggedObject>(typedArray)->GetClass()->IsOnHeapFromBitField(), &handler);
294 return JSHandle<JSTaggedValue>(thread, JSTaggedValue::WrapUint64(handler));
302 uint64_t handler = 0;
304 SSharedBit::Set<uint64_t>(op.GetReceiver()->IsJSShared(), &handler);
307 SFieldTypeBit::Set<uint64_t>(op.GetAttr().GetSharedFieldType(), &handler);
309 SFieldTypeBit::Set<uint64_t>(op.GetAttr().GetDictSharedFieldType(), &handler);
312 SOutOfBoundsBit::Set<uint64_t>(op.GetElementOutOfBounds(), &handler);
313 return StoreElement(thread, op.GetReceiver(), handler);
320 AccessorBit::Set<uint64_t>(hasSetter, &handler);
322 SKindBit::Set<uint64_t>(StoreHandlerKind::S_FIELD, &handler);
325 InlinedPropsBit::Set<uint64_t>(true, &handler);
333 AttrIndexBit::Set<uint64_t>(op.GetIndex(), &handler);
334 OffsetBit::Set<uint64_t>(index, &handler);
335 RepresentationBit::Set(op.GetRepresentation(), &handler);
336 return JSHandle<JSTaggedValue>(thread, JSTaggedValue::WrapUint64(handler));
340 AttrIndexBit::Set<uint64_t>(op.GetIndex() + inlinePropNum, &handler);
341 OffsetBit::Set<uint64_t>(op.GetIndex(), &handler);
342 RepresentationBit::Set(Representation::TAGGED, &handler);
343 return JSHandle<JSTaggedValue>(thread, JSTaggedValue::WrapUint64(handler));
347 JSHandle<JSTaggedValue> receiver, uint64_t handler)
349 SKindBit::Set<uint64_t>(StoreHandlerKind::S_ELEMENT, &handler);
352 IsJSArrayBit::Set<uint64_t>(true, &handler);
354 return JSHandle<JSTaggedValue>(thread, JSTaggedValue::WrapUint64(handler));
369 JSHandle<TransitionHandler> handler = factory->NewTransitionHandler();
371 handler->SetHandlerInfo(thread, handlerInfo);
373 handler->SetTransitionHClass(thread, JSTaggedValue(hclass));
374 return JSHandle<JSTaggedValue>::Cast(handler);
400 JSHandle<PrototypeHandler> handler = factory->NewPrototypeHandler();
401 handler->SetHandlerInfo(thread, handlerInfo);
403 handler->SetHolder(thread, op.GetHolder());
416 handler->SetAccessorMethodId(methodOffset);
417 handler->SetAccessorJSFunction(thread, getter);
424 handler->SetProtoCell(thread, result);
426 return JSHandle<JSTaggedValue>::Cast(handler);
432 JSHandle<PrototypeHandler> handler = factory->NewPrototypeHandler();
434 handler->SetHandlerInfo(thread, handlerInfo);
435 handler->SetHolder(thread, op.GetHolder());
445 handler->SetAccessorMethodId(
447 handler->SetAccessorJSFunction(thread, setter);
453 handler->SetProtoCell(thread, result);
455 return JSHandle<JSTaggedValue>::Cast(handler);
486 JSHandle<TransWithProtoHandler> handler = factory->NewTransWithProtoHandler();
488 handler->SetHandlerInfo(thread, handlerInfo);
490 handler->SetProtoCell(thread, result);
491 handler->SetTransitionHClass(thread, hclass.GetTaggedValue());
493 return JSHandle<JSTaggedValue>::Cast(handler);
520 JSHandle<StoreTSHandler> handler = factory->NewStoreTSHandler();
522 handler->SetHandlerInfo(thread, handlerInfo);
523 handler->SetHolder(thread, op.GetHolder());
525 handler->SetProtoCell(thread, result);
526 return JSHandle<JSTaggedValue>::Cast(handler);