Lines Matching refs:key
26 void ICRuntime::UpdateLoadHandler(const ObjectOperator &op, JSHandle<JSTaggedValue> key,
33 key = JSHandle<JSTaggedValue>();
78 if (key.IsEmpty()) {
87 icAccessor_.AddHandlerWithKey(key, JSHandle<JSTaggedValue>::Cast(hclass), handlerValue);
112 void ICRuntime::UpdateStoreHandler(const ObjectOperator &op, JSHandle<JSTaggedValue> key,
119 key = JSHandle<JSTaggedValue>();
142 if (key.IsEmpty()) {
151 icAccessor_.AddHandlerWithKey(key, receiverHClass_, handlerValue);
156 [[maybe_unused]] JSHandle<JSTaggedValue> key) const
161 if (key->IsString()) {
162 auto keyStrHandle = JSHandle<EcmaString>::Cast(key);
163 LOG_ECMA(ERROR) << kind << " miss key is: " << EcmaStringAccessor(keyStrHandle).ToCString()
174 JSTaggedValue LoadICRuntime::LoadValueMiss(JSHandle<JSTaggedValue> receiver, JSHandle<JSTaggedValue> key)
181 JSHandle<JSTaggedValue> propKey = JSTaggedValue::ToPropertyKey(thread_, key);
186 return LoadTypedArrayValueMiss(receiver, key);
190 return JSSharedArray::GetProperty(thread_, receiver, key, SCheckMode::CHECK).GetValue().GetTaggedValue();
192 ObjectOperator op(GetThread(), receiver, key);
205 op = ObjectOperator(GetThread(), receiver, key);
213 TraceIC(receiver, key);
219 UpdateLoadHandler(op, key, receiver);
225 JSTaggedValue LoadICRuntime::LoadMiss(JSHandle<JSTaggedValue> receiver, JSHandle<JSTaggedValue> key)
229 return LoadOrdinaryGet(receiver, key);
235 JSTaggedValue box = SlowRuntimeStub::LdGlobalRecord(thread_, key.GetTaggedValue());
245 if (key->IsJSFunction()) { // key is a private getter
246 return CallPrivateGetter(receiver, key);
249 if (key->IsSymbol() && JSSymbol::Cast(key->GetTaggedObject())->IsPrivate()) {
251 if (!JSTaggedValue::IsPropertyKey(key) ||
252 !JSTaggedValue::GetOwnProperty(thread_, receiver, key, desc)) {
253 THROW_TYPE_ERROR_AND_RETURN(thread_, "invalid or cannot find private key", JSTaggedValue::Exception());
257 ObjectOperator op(GetThread(), receiver, key);
261 op = ObjectOperator(GetThread(), receiver, key);
264 return SlowRuntimeStub::ThrowReferenceError(GetThread(), key.GetTaggedValue(), " is not defined");
272 TraceIC(receiver, key);
279 UpdateLoadHandler(op, key, receiver);
283 JSTaggedValue LoadICRuntime::LoadOrdinaryGet(JSHandle<JSTaggedValue> receiver, JSHandle<JSTaggedValue> key)
286 JSHandle<JSTaggedValue> propKey = JSTaggedValue::ToPropertyKey(thread_, key);
291 inline JSTaggedValue LoadICRuntime::CallPrivateGetter(JSHandle<JSTaggedValue> receiver, JSHandle<JSTaggedValue> key)
295 EcmaInterpreter::NewRuntimeCallInfo(thread_, key, receiver, undefined, 0); // 0: getter has 0 argument
302 JSTaggedValue LoadICRuntime::LoadTypedArrayValueMiss(JSHandle<JSTaggedValue> receiver, JSHandle<JSTaggedValue> key)
304 JSHandle<JSTaggedValue> propKey = JSTaggedValue::ToPropertyKey(GetThread(), key);
319 ObjectOperator op(GetThread(), receiver, key);
323 op = ObjectOperator(GetThread(), receiver, key);
331 TraceIC(receiver, key);
337 UpdateLoadHandler(op, key, receiver);
342 JSTaggedValue StoreICRuntime::StoreMiss(JSHandle<JSTaggedValue> receiver, JSHandle<JSTaggedValue> key,
347 key = JSTaggedValue::ToPropertyKey(GetThread(), key);
351 bool success = JSTaggedValue::SetProperty(GetThread(), receiver, key, value, true);
356 return StoreTypedArrayValueMiss(receiver, key, value);
361 JSTaggedValue box = SlowRuntimeStub::LdGlobalRecord(thread_, key.GetTaggedValue());
364 SlowRuntimeStub::TryUpdateGlobalRecord(thread_, key.GetTaggedValue(), value.GetTaggedValue());
376 bool success = JSSharedArray::SetProperty(thread_, receiver, key, value, true, SCheckMode::CHECK);
383 if (key->IsJSFunction()) { // key is a private setter
384 return CallPrivateSetter(receiver, key, value);
387 if (key->IsSymbol() && JSSymbol::Cast(key->GetTaggedObject())->IsPrivate()) {
389 if (!JSTaggedValue::IsPropertyKey(key) ||
390 !JSTaggedValue::GetOwnProperty(thread_, receiver, key, desc)) {
391 THROW_TYPE_ERROR_AND_RETURN(thread_, "invalid or cannot find private key", JSTaggedValue::Exception());
395 ObjectOperator op(GetThread(), receiver, key, isOwn ? OperatorType::OWN : OperatorType::PROTOTYPE_CHAIN);
401 return SlowRuntimeStub::ThrowReferenceError(GetThread(), key.GetTaggedValue(), " is not defined");
418 TraceIC(receiver, key);
425 UpdateStoreHandler(op, key, receiver);
431 inline JSTaggedValue StoreICRuntime::CallPrivateSetter(JSHandle<JSTaggedValue> receiver, JSHandle<JSTaggedValue> key,
436 EcmaInterpreter::NewRuntimeCallInfo(thread_, key, receiver, undefined, 1); // 1: setter has 1 argument
444 JSTaggedValue StoreICRuntime::StoreTypedArrayValueMiss(JSHandle<JSTaggedValue> receiver, JSHandle<JSTaggedValue> key,
447 JSHandle<JSTaggedValue> propKey = JSTaggedValue::ToPropertyKey(GetThread(), key);
467 ObjectOperator op(GetThread(), receiver, key);
470 op = ObjectOperator(GetThread(), receiver, key);
478 TraceIC(receiver, key);
485 UpdateStoreHandler(op, key, receiver);