Skip to content

Commit 3f8c03c

Browse files
committed
Fix property lookup in Object.getOwnPropertyDescriptor.
The ecma_op_general_object_get_own_property call does not find all properties, we need to use the ecma_op_object_get_own_property method for correct property lookup. JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
1 parent aaeec7f commit 3f8c03c

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

jerry-core/ecma/builtin-objects/ecma-builtin-object.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ ecma_builtin_object_object_get_own_property_descriptor (ecma_value_t this_arg __
279279
ecma_string_t *name_str_p = ecma_get_string_from_value (name_str_value);
280280

281281
// 3.
282-
ecma_property_t *prop_p = ecma_op_general_object_get_own_property (obj_p, name_str_p);
282+
ecma_property_t *prop_p = ecma_op_object_get_own_property (obj_p, name_str_p);
283283

284284
if (prop_p != NULL)
285285
{

tests/jerry/object_get_own_property_descriptor.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,16 @@ assert (typeof(desc.set) === 'function');
7070
assert (desc.configurable);
7171
assert (desc.enumerable);
7272
assert (obj.foo === 0)
73+
74+
var array_desc = Object.getOwnPropertyDescriptor(Array, "prototype");
75+
assert (array_desc.configurable === false);
76+
assert (array_desc.writable === false);
77+
assert (array_desc.enumerable === false);
78+
79+
var obj_undef;
80+
try {
81+
Object.getOwnPropertyDescriptor (obj_undef, "fail");
82+
assert (false);
83+
} catch (e) {
84+
assert (e instanceof TypeError);
85+
}

0 commit comments

Comments
 (0)