summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/expressions/strict-does-not-equals/bigint-and-object.js
blob: e273cc7d7ab4edf1b42d2d8cbdafb926c51e009b (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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// Copyright (C) 2017 Josh Wolfe. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: Strict inequality comparison of BigInt values and non-primitive objects
esid: sec-strict-equality-comparison
info: |
  1. If Type(x) is different from Type(y), return false.

features: [BigInt]
---*/
assert.sameValue(0n !== Object(0n), true, 'The result of (0n !== Object(0n)) is true');
assert.sameValue(Object(0n) !== 0n, true, 'The result of (Object(0n) !== 0n) is true');
assert.sameValue(0n !== Object(1n), true, 'The result of (0n !== Object(1n)) is true');
assert.sameValue(Object(1n) !== 0n, true, 'The result of (Object(1n) !== 0n) is true');
assert.sameValue(1n !== Object(0n), true, 'The result of (1n !== Object(0n)) is true');
assert.sameValue(Object(0n) !== 1n, true, 'The result of (Object(0n) !== 1n) is true');
assert.sameValue(1n !== Object(1n), true, 'The result of (1n !== Object(1n)) is true');
assert.sameValue(Object(1n) !== 1n, true, 'The result of (Object(1n) !== 1n) is true');
assert.sameValue(2n !== Object(0n), true, 'The result of (2n !== Object(0n)) is true');
assert.sameValue(Object(0n) !== 2n, true, 'The result of (Object(0n) !== 2n) is true');
assert.sameValue(2n !== Object(1n), true, 'The result of (2n !== Object(1n)) is true');
assert.sameValue(Object(1n) !== 2n, true, 'The result of (Object(1n) !== 2n) is true');
assert.sameValue(2n !== Object(2n), true, 'The result of (2n !== Object(2n)) is true');
assert.sameValue(Object(2n) !== 2n, true, 'The result of (Object(2n) !== 2n) is true');
assert.sameValue(0n !== {}, true, 'The result of (0n !== {}) is true');
assert.sameValue({} !== 0n, true, 'The result of (({}) !== 0n) is true');

assert.sameValue(0n !== {
  valueOf: function() {
    return 0n;
  }
}, true, 'The result of (0n !== {valueOf: function() {return 0n;}}) is true');

assert.sameValue({
  valueOf: function() {
    return 0n;
  }
} !== 0n, true, 'The result of (({valueOf: function() {return 0n;}}) !== 0n) is true');

assert.sameValue(0n !== {
  valueOf: function() {
    return 1n;
  }
}, true, 'The result of (0n !== {valueOf: function() {return 1n;}}) is true');

assert.sameValue({
  valueOf: function() {
    return 1n;
  }
} !== 0n, true, 'The result of (({valueOf: function() {return 1n;}}) !== 0n) is true');

assert.sameValue(0n !== {
  toString: function() {
    return '0';
  }
}, true, 'The result of (0n !== {toString: function() {return "0";}}) is true');

assert.sameValue({
  toString: function() {
    return '0';
  }
} !== 0n, true, 'The result of (({toString: function() {return "0";}}) !== 0n) is true');

assert.sameValue(0n !== {
  toString: function() {
    return '1';
  }
}, true, 'The result of (0n !== {toString: function() {return "1";}}) is true');

assert.sameValue({
  toString: function() {
    return '1';
  }
} !== 0n, true, 'The result of (({toString: function() {return "1";}}) !== 0n) is true');

assert.sameValue(900719925474099101n !== {
  valueOf: function() {
    return 900719925474099101n;
  }
}, true, 'The result of (900719925474099101n !== {valueOf: function() {return 900719925474099101n;}}) is true');

assert.sameValue({
  valueOf: function() {
    return 900719925474099101n;
  }
} !== 900719925474099101n, true, 'The result of (({valueOf: function() {return 900719925474099101n;}}) !== 900719925474099101n) is true');

assert.sameValue(900719925474099101n !== {
  valueOf: function() {
    return 900719925474099102n;
  }
}, true, 'The result of (900719925474099101n !== {valueOf: function() {return 900719925474099102n;}}) is true');

assert.sameValue({
  valueOf: function() {
    return 900719925474099102n;
  }
} !== 900719925474099101n, true, 'The result of (({valueOf: function() {return 900719925474099102n;}}) !== 900719925474099101n) is true');

assert.sameValue(900719925474099101n !== {
  toString: function() {
    return '900719925474099101';
  }
}, true, 'The result of (900719925474099101n !== {toString: function() {return "900719925474099101";}}) is true');

assert.sameValue({
  toString: function() {
    return '900719925474099101';
  }
} !== 900719925474099101n, true, 'The result of (({toString: function() {return "900719925474099101";}}) !== 900719925474099101n) is true');

assert.sameValue(900719925474099101n !== {
  toString: function() {
    return '900719925474099102';
  }
}, true, 'The result of (900719925474099101n !== {toString: function() {return "900719925474099102";}}) is true');

assert.sameValue({
  toString: function() {
    return '900719925474099102';
  }
} !== 900719925474099101n, true, 'The result of (({toString: function() {return "900719925474099102";}}) !== 900719925474099101n) is true');

reportCompare(0, 0);