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:
Dániel Bátyai 2019-11-25 11:49:24 +01:00 committed by Robert Fancsik
parent b2d34724d4
commit 37850bbfef
2 changed files with 13 additions and 1 deletions

View File

@ -1014,7 +1014,7 @@ ecma_builtin_object_dispatch_routine (uint16_t builtin_routine_id, /**< built-in
#if ENABLED (JERRY_ES2015)
if (!ecma_is_value_object (arg1))
{
return arg1;
return ecma_copy_value (arg1);
}
#endif /* ENABLED (JERRY_ES2015) */

View File

@ -30,19 +30,31 @@ assert (d.enumerable === true);
assert (d.configurable === false);
assert (Object.seal(42) === 42);
assert (Object.seal("a") === "a");
assert (Object.seal(undefined) === undefined);
assert (Object.seal() === undefined);
assert (Object.isSealed(42) === true);
assert (Object.isSealed("a") === true);
assert (Object.isSealed(undefined) === true);
assert (Object.isSealed() === true);
assert (Object.freeze(42) === 42);
assert (Object.freeze("a") === "a");
assert (Object.freeze(undefined) === undefined);
assert (Object.freeze() === undefined);
assert (Object.isFrozen(42) === true);
assert (Object.isFrozen("a") === true);
assert (Object.isFrozen(undefined) === true);
assert (Object.isFrozen() === true);
assert (Object.preventExtensions(42) === 42);
assert (Object.preventExtensions("a") === "a");
assert (Object.preventExtensions(undefined) === undefined);
assert (Object.preventExtensions() === undefined);
assert (Object.isExtensible(42) === false);
assert (Object.isExtensible("a") === false);
assert (Object.isExtensible(undefined) === false);
assert (Object.isExtensible() === false);