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:
@@ -1293,25 +1293,18 @@ ecma_get_property_descriptor_from_property (ecma_property_t *prop_p) /**< proper
|
|||||||
else if (prop_p->type == ECMA_PROPERTY_NAMEDACCESSOR)
|
else if (prop_p->type == ECMA_PROPERTY_NAMEDACCESSOR)
|
||||||
{
|
{
|
||||||
prop_desc.get_p = ecma_get_named_accessor_property_getter (prop_p);
|
prop_desc.get_p = ecma_get_named_accessor_property_getter (prop_p);
|
||||||
|
prop_desc.is_get_defined = true;
|
||||||
if (prop_desc.get_p != NULL)
|
if (prop_desc.get_p != NULL)
|
||||||
{
|
{
|
||||||
prop_desc.is_get_defined = true;
|
|
||||||
ecma_ref_object (prop_desc.get_p);
|
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.set_p = ecma_get_named_accessor_property_setter (prop_p);
|
||||||
|
prop_desc.is_set_defined = true;
|
||||||
if (prop_desc.set_p != NULL)
|
if (prop_desc.set_p != NULL)
|
||||||
{
|
{
|
||||||
prop_desc.is_set_defined = true;
|
|
||||||
ecma_ref_object (prop_desc.set_p);
|
ecma_ref_object (prop_desc.set_p);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
prop_desc.is_set_defined = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return prop_desc;
|
return prop_desc;
|
||||||
|
|||||||
@@ -38,3 +38,20 @@ try {
|
|||||||
assert (desc.value === 2010);
|
assert (desc.value === 2010);
|
||||||
assert (typeof (desc.get) === 'undefined');
|
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);
|
||||||
|
|||||||
Reference in New Issue
Block a user