Fix ecma_get_property_descriptor_from_property for accessor properties with [[Get]] / [[Set]] set to undefined value

JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
This commit is contained in:
Kristof Kosztyo
2015-08-05 16:25:03 +02:00
parent fe0ec9d7fa
commit 2eb8f76089
2 changed files with 21 additions and 11 deletions
+3 -10
View File
@@ -1293,25 +1293,18 @@ ecma_get_property_descriptor_from_property (ecma_property_t *prop_p) /**< proper
else if (prop_p->type == ECMA_PROPERTY_NAMEDACCESSOR)
{
prop_desc.get_p = ecma_get_named_accessor_property_getter (prop_p);
prop_desc.is_get_defined = true;
if (prop_desc.get_p != NULL)
{
prop_desc.is_get_defined = true;
ecma_ref_object (prop_desc.get_p);
}
else
{
prop_desc.is_get_defined = false;
}
prop_desc.set_p = ecma_get_named_accessor_property_setter (prop_p);
prop_desc.is_set_defined = true;
if (prop_desc.set_p != NULL)
{
prop_desc.is_set_defined = true;
ecma_ref_object (prop_desc.set_p);
}
else
{
prop_desc.is_set_defined = false;
}
}
return prop_desc;
+18 -1
View File
@@ -37,4 +37,21 @@ try {
var desc = Object.getOwnPropertyDescriptor (obj, "prop");
assert (desc.value === 2010);
assert (typeof (desc.get) === 'undefined');
}
}
obj = {};
var setter = function () {};
Object.defineProperty(obj, "prop", {
set: setter,
configurable: true
});
var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
Object.defineProperty(obj, "prop", {
set: undefined
});
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
assert (desc1.set === setter && desc2.set === undefined);