diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-object.c b/jerry-core/ecma/builtin-objects/ecma-builtin-object.c
index fa7b026e8..1a3e45dd0 100644
--- a/jerry-core/ecma/builtin-objects/ecma-builtin-object.c
+++ b/jerry-core/ecma/builtin-objects/ecma-builtin-object.c
@@ -1019,6 +1019,13 @@ ecma_builtin_object_object_define_property (ecma_object_t *obj_p, /**< routine's
return define_own_prop_ret;
}
+ if (ecma_is_value_false (define_own_prop_ret))
+ {
+ return ecma_raise_type_error (ECMA_ERR_MSG ("The requested property update cannot be performed."));
+ }
+
+ JERRY_ASSERT (ecma_is_value_true (define_own_prop_ret));
+
ecma_ref_object (obj_p);
ecma_free_value (define_own_prop_ret);
diff --git a/tests/jerry/es.next/proxy_define_own_property.js b/tests/jerry/es.next/proxy_define_own_property.js
index cef7e391f..ef10ecbf7 100644
--- a/tests/jerry/es.next/proxy_define_own_property.js
+++ b/tests/jerry/es.next/proxy_define_own_property.js
@@ -56,33 +56,25 @@ var handler = {
var proxy = new Proxy(target, handler);
-Object.defineProperty(proxy, "bar", desc);
+try {
+ Object.defineProperty(proxy, "bar", desc);
+ assert(false);
+} catch (e) {
+ assert(e instanceof TypeError);
+}
-assert(proxy.bar === 1);
+var bar = Object.getOwnPropertyDescriptor(proxy, "bar");
+assert(bar.value === 1);
+assert(bar.writable);
+assert(bar.configurable);
-/* TODO - remove this comment when [[GetOwnProperty]] is implemented
-proxy.bar = 2;
-assert(proxy.bar === 2);
-*/
+try {
+ Object.defineProperty(proxy, "name", {});
+ assert(false);
+} catch (e) {
+ assert(e instanceof TypeError);
+}
-delete proxy.bar;
-assert(proxy.bar === undefined);
-
-/* TODO - remove this comment when [[GetOwnProperty]] is implemented
-Object.defineProperty(proxy, "name", {
- get() {
- return this._name;
- },
- set(value) {
- this._name = value;
- }
-});
-
-proxy.name = "foo";
-
-assert(proxy.name === "foo");
-assert(target.name === "foo");
-*/
// test when trap is not callable
var target = {};
diff --git a/tests/test262-esnext-excludelist.xml b/tests/test262-esnext-excludelist.xml
index 5bcba5a72..02ee2b6b1 100644
--- a/tests/test262-esnext-excludelist.xml
+++ b/tests/test262-esnext-excludelist.xml
@@ -1254,7 +1254,6 @@
-