summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/object/keys.js
blob: 5766f16d11ad738eec7efefd3df9eb1881b7e4f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*
 * Any copyright is dedicated to the Public Domain.
 * https://creativecommons.org/publicdomain/zero/1.0/
 */

var BUGNUMBER = 1038545;
var summary = "Coerce the argument passed to Object.keys using ToObject";
print(BUGNUMBER + ": " + summary);

assertThrowsInstanceOf(() => Object.keys(), TypeError);
assertThrowsInstanceOf(() => Object.keys(undefined), TypeError);
assertThrowsInstanceOf(() => Object.keys(null), TypeError);

assertDeepEq(Object.keys(1), []);
assertDeepEq(Object.keys(true), []);
if (typeof Symbol === "function") {
    assertDeepEq(Object.keys(Symbol("foo")), []);
}

assertDeepEq(Object.keys("foo"), ["0", "1", "2"]);

if (typeof reportCompare === "function")
    reportCompare(true, true);