diff --git a/jerry-core/ecma/base/ecma-helpers-collection.c b/jerry-core/ecma/base/ecma-helpers-collection.c
index 536c6ddf3..96ad4dadf 100644
--- a/jerry-core/ecma/base/ecma-helpers-collection.c
+++ b/jerry-core/ecma/base/ecma-helpers-collection.c
@@ -197,6 +197,11 @@ ecma_collection_append (ecma_collection_t *collection_p, /**< value collection *
bool
ecma_collection_check_duplicated_entries (ecma_collection_t *collection_p) /**< prop name collection */
{
+ if (collection_p->item_count == 0)
+ {
+ return false;
+ }
+
ecma_value_t *buffer_p = collection_p->buffer_p;
for (uint32_t i = 0; i < collection_p->item_count - 1; i++)
diff --git a/tests/jerry/es.next/regression-test-issue-4093.js b/tests/jerry/es.next/regression-test-issue-4093.js
new file mode 100644
index 000000000..83b12519a
--- /dev/null
+++ b/tests/jerry/es.next/regression-test-issue-4093.js
@@ -0,0 +1,25 @@
+// Copyright JS Foundation and other contributors, http://js.foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+var v138 = {
+ ownKeys: function() { return []; },
+};
+
+var v140 = new Proxy ({}, v138);
+
+/* expected an empty array */
+var result = Object.getOwnPropertyNames (v140);
+
+assert (result instanceof Array);
+assert (result.length === 0);
diff --git a/tests/test262-esnext-excludelist.xml b/tests/test262-esnext-excludelist.xml
index 1a95ec07a..863a96c8a 100644
--- a/tests/test262-esnext-excludelist.xml
+++ b/tests/test262-esnext-excludelist.xml
@@ -10445,14 +10445,6 @@
-
-
-
-
-
-
-
-