Lines Matching refs:ElementsKind

21 CMap<ElementsKind, std::pair<ConstantIndex, ConstantIndex>> Elements::InitializeHClassMap()
23 CMap<ElementsKind, std::pair<ConstantIndex, ConstantIndex>> result;
25 result.emplace(ElementsKind::name, std::make_pair(ConstantIndex::ELEMENT_##name##_HCLASS_INDEX, \
32 std::string Elements::GetString(ElementsKind kind)
37 bool Elements::IsInt(ElementsKind kind)
39 return kind == ElementsKind::INT;
42 bool Elements::IsNumber(ElementsKind kind)
44 return kind == ElementsKind::NUMBER;
47 bool Elements::IsTagged(ElementsKind kind)
49 return kind == ElementsKind::TAGGED;
52 bool Elements::IsObject(ElementsKind kind)
54 return kind == ElementsKind::OBJECT;
57 bool Elements::IsHole(ElementsKind kind)
63 ConstantIndex Elements::GetGlobalContantIndexByKind(ElementsKind kind)
66 case ElementsKind::NONE:
68 case ElementsKind::INT:
70 case ElementsKind::NUMBER:
72 case ElementsKind::STRING:
74 case ElementsKind::OBJECT:
76 case ElementsKind::TAGGED:
78 case ElementsKind::HOLE:
80 case ElementsKind::HOLE_INT:
82 case ElementsKind::HOLE_NUMBER:
84 case ElementsKind::HOLE_STRING:
86 case ElementsKind::HOLE_OBJECT:
88 case ElementsKind::HOLE_TAGGED:
95 ElementsKind Elements::MergeElementsKind(ElementsKind curKind, ElementsKind newKind)
97 auto result = ElementsKind(static_cast<uint8_t>(curKind) | static_cast<uint8_t>(newKind));
102 ElementsKind Elements::FixElementsKind(ElementsKind oldKind)
106 case ElementsKind::NONE:
107 case ElementsKind::INT:
108 case ElementsKind::NUMBER:
109 case ElementsKind::STRING:
110 case ElementsKind::OBJECT:
111 case ElementsKind::HOLE:
112 case ElementsKind::HOLE_INT:
113 case ElementsKind::HOLE_NUMBER:
114 case ElementsKind::HOLE_STRING:
115 case ElementsKind::HOLE_OBJECT:
119 result = ElementsKind::HOLE_TAGGED;
121 result = ElementsKind::TAGGED;
128 ElementsKind Elements::ToElementsKind(JSTaggedValue value, ElementsKind kind)
130 ElementsKind valueKind = ElementsKind::NONE;
132 valueKind = ElementsKind::INT;
134 valueKind = ElementsKind::NUMBER;
136 valueKind = ElementsKind::STRING;
138 valueKind = ElementsKind::OBJECT;
140 valueKind = ElementsKind::HOLE;
142 valueKind = ElementsKind::TAGGED;
148 const ElementsKind newKind, bool needCOW)
153 } else if (newKind == ElementsKind::NUMBER || newKind == ElementsKind::HOLE_NUMBER) {
158 bool Elements::IsNumberKind(const ElementsKind kind)
160 return static_cast<uint32_t>(kind) >= static_cast<uint32_t>(ElementsKind::NUMBER) &&
161 static_cast<uint32_t>(kind) <= static_cast<uint32_t>(ElementsKind::HOLE_NUMBER);
164 bool Elements::IsStringOrNoneOrHole(const ElementsKind kind)
166 return static_cast<uint32_t>(kind) >= static_cast<uint32_t>(ElementsKind::STRING) ||
167 kind == ElementsKind::NONE || kind == ElementsKind::HOLE;
171 const ElementsKind newKind, bool needCOW)
176 } else if (newKind == ElementsKind::INT || newKind == ElementsKind::HOLE_INT) {
182 const ElementsKind newKind, bool needCOW)
184 if (newKind == ElementsKind::INT || newKind == ElementsKind::HOLE_INT) {
194 const ElementsKind oldKind, const ElementsKind newKind)
201 (oldKind == ElementsKind::INT && newKind == ElementsKind::HOLE_INT) ||
202 (oldKind == ElementsKind::NUMBER && newKind == ElementsKind::HOLE_NUMBER)) {
208 if (oldKind == ElementsKind::INT || oldKind == ElementsKind::HOLE_INT) {