Fixing GetBindingValue operation for immutable bindings.

This commit is contained in:
Ruben Ayrapetyan 2014-10-31 16:03:32 +03:00
parent 5c4d2085a1
commit 73084cb976

View File

@ -307,11 +307,8 @@ ecma_op_get_binding_value (ecma_object_t *lex_env_p, /**< lexical environment */
ecma_value_t prop_value = property_p->u.named_data_property.value;
/* is the binding mutable? */
if (property_p->u.named_data_property.writable == ECMA_PROPERTY_WRITABLE)
{
return ecma_make_normal_completion_value (ecma_copy_value (prop_value, true));
}
else if (ecma_is_value_empty (prop_value))
if (property_p->u.named_data_property.writable == ECMA_PROPERTY_NOT_WRITABLE
&& ecma_is_value_empty (prop_value))
{
/* unitialized immutable binding */
if (is_strict)
@ -324,6 +321,8 @@ ecma_op_get_binding_value (ecma_object_t *lex_env_p, /**< lexical environment */
}
}
return ecma_make_normal_completion_value (ecma_copy_value (prop_value, true));
break;
}
case ECMA_LEXICAL_ENVIRONMENT_OBJECTBOUND: