Fix refcount when returning with the argument in Object built-ins (#3353)
Fixes #3350. Fixes #3351. Fixes #3352. JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai@inf.u-szeged.hu
This commit is contained in:
committed by
Robert Fancsik
parent
b2d34724d4
commit
37850bbfef
@@ -1014,7 +1014,7 @@ ecma_builtin_object_dispatch_routine (uint16_t builtin_routine_id, /**< built-in
|
|||||||
#if ENABLED (JERRY_ES2015)
|
#if ENABLED (JERRY_ES2015)
|
||||||
if (!ecma_is_value_object (arg1))
|
if (!ecma_is_value_object (arg1))
|
||||||
{
|
{
|
||||||
return arg1;
|
return ecma_copy_value (arg1);
|
||||||
}
|
}
|
||||||
#endif /* ENABLED (JERRY_ES2015) */
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
|
|||||||
@@ -30,19 +30,31 @@ assert (d.enumerable === true);
|
|||||||
assert (d.configurable === false);
|
assert (d.configurable === false);
|
||||||
|
|
||||||
assert (Object.seal(42) === 42);
|
assert (Object.seal(42) === 42);
|
||||||
|
assert (Object.seal("a") === "a");
|
||||||
assert (Object.seal(undefined) === undefined);
|
assert (Object.seal(undefined) === undefined);
|
||||||
|
assert (Object.seal() === undefined);
|
||||||
|
|
||||||
assert (Object.isSealed(42) === true);
|
assert (Object.isSealed(42) === true);
|
||||||
|
assert (Object.isSealed("a") === true);
|
||||||
assert (Object.isSealed(undefined) === true);
|
assert (Object.isSealed(undefined) === true);
|
||||||
|
assert (Object.isSealed() === true);
|
||||||
|
|
||||||
assert (Object.freeze(42) === 42);
|
assert (Object.freeze(42) === 42);
|
||||||
|
assert (Object.freeze("a") === "a");
|
||||||
assert (Object.freeze(undefined) === undefined);
|
assert (Object.freeze(undefined) === undefined);
|
||||||
|
assert (Object.freeze() === undefined);
|
||||||
|
|
||||||
assert (Object.isFrozen(42) === true);
|
assert (Object.isFrozen(42) === true);
|
||||||
|
assert (Object.isFrozen("a") === true);
|
||||||
assert (Object.isFrozen(undefined) === true);
|
assert (Object.isFrozen(undefined) === true);
|
||||||
|
assert (Object.isFrozen() === true);
|
||||||
|
|
||||||
assert (Object.preventExtensions(42) === 42);
|
assert (Object.preventExtensions(42) === 42);
|
||||||
|
assert (Object.preventExtensions("a") === "a");
|
||||||
assert (Object.preventExtensions(undefined) === undefined);
|
assert (Object.preventExtensions(undefined) === undefined);
|
||||||
|
assert (Object.preventExtensions() === undefined);
|
||||||
|
|
||||||
assert (Object.isExtensible(42) === false);
|
assert (Object.isExtensible(42) === false);
|
||||||
|
assert (Object.isExtensible("a") === false);
|
||||||
assert (Object.isExtensible(undefined) === false);
|
assert (Object.isExtensible(undefined) === false);
|
||||||
|
assert (Object.isExtensible() === false);
|
||||||
|
|||||||
Reference in New Issue
Block a user