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 pgal.u-szeged@partner.samsung.com
This commit is contained in:
Peter Gal
2015-05-27 17:01:55 +02:00
parent 3329583435
commit c3f9169eb7
2 changed files with 14 additions and 1 deletions
@@ -279,7 +279,7 @@ ecma_builtin_object_object_get_own_property_descriptor (ecma_value_t this_arg __
ecma_string_t *name_str_p = ecma_get_string_from_value (name_str_value);
// 3.
ecma_property_t *prop_p = ecma_op_general_object_get_own_property (obj_p, name_str_p);
ecma_property_t *prop_p = ecma_op_object_get_own_property (obj_p, name_str_p);
if (prop_p != NULL)
{
@@ -70,3 +70,16 @@ assert (typeof(desc.set) === 'function');
assert (desc.configurable);
assert (desc.enumerable);
assert (obj.foo === 0)
var array_desc = Object.getOwnPropertyDescriptor(Array, "prototype");
assert (array_desc.configurable === false);
assert (array_desc.writable === false);
assert (array_desc.enumerable === false);
var obj_undef;
try {
Object.getOwnPropertyDescriptor (obj_undef, "fail");
assert (false);
} catch (e) {
assert (e instanceof TypeError);
}