From 7a544be28d49d3746d1be3ce75a6eb7306681921 Mon Sep 17 00:00:00 2001 From: wangrx Date: Mon, 1 Apr 2024 14:12:26 +0800 Subject: [PATCH] Fix mjsunit/es8/object-entries.js --- ecmascript/js_object.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ecmascript/js_object.cpp b/ecmascript/js_object.cpp index 0b4d939cd..fdeaffde1 100644 --- a/ecmascript/js_object.cpp +++ b/ecmascript/js_object.cpp @@ -1904,11 +1904,13 @@ JSHandle JSObject::EnumerableOwnPropertyNames(JSThread *thread, con // 2. Let ownKeys be ? O.[[OwnPropertyKeys]](). JSHandle tagObj(obj); ObjectFactory *factory = thread->GetEcmaVM()->GetFactory(); - if (tagObj->IsJSObject() && !tagObj->IsJSProxy() && !tagObj->IsTypedArray() && !tagObj->IsModuleNamespace()) { + PropertyDescriptor fdesc(thread); + bool fastMode = ToPropertyDescriptorFast(thread, tagObj, fdesc); + if (tagObj->IsJSObject() && !tagObj->IsJSProxy() && !tagObj->IsTypedArray() && !tagObj->IsModuleNamespace() + && fastMode) { uint32_t copyLengthOfKeys = 0; uint32_t copyLengthOfElements = 0; uint32_t index = 0; - bool fastMode = true; auto keyElementPair = GetOwnEnumerableNamesInFastMode(thread, obj, ©LengthOfKeys, ©LengthOfElements); JSHandle keyArray = keyElementPair.first; JSHandle elementArray = keyElementPair.second; -- Gitee