summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Record/constructor.js
blob: 827179c68ed471d4419e115087b626399ec0820e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// |reftest| skip-if(!this.hasOwnProperty("Record"))

assertThrowsInstanceOf(
  () => new Record(),
  TypeError,
  "Record is not a constructor"
);

assertEq(typeof Record({}), "record");
assertEq(typeof Object(Record({})), "object");
assertEq(Record({}) instanceof Record, false);

// TODO: It's still not decided what the prototype of records should be
//assertThrowsInstanceOf(() => Object(Record({})) instanceof Record, TypeError);
// assertEq(Record.prototype, null);
// assertEq(Record({}).__proto__, null);
// assertEq(Object(Record({})).__proto__, null);

assertThrowsInstanceOf(
  () => Record(),
  TypeError,
  "can't convert undefined to object"
);

assertThrowsInstanceOf(
  () => Record(undefined),
  TypeError,
  "can't convert undefined to object"
);

assertThrowsInstanceOf(
  () => Record(null),
  TypeError,
  "can't convert null to object"
);

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