summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/Map/bigint-number-same-value.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/built-ins/Map/bigint-number-same-value.js')
-rw-r--r--js/src/tests/test262/built-ins/Map/bigint-number-same-value.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Map/bigint-number-same-value.js b/js/src/tests/test262/built-ins/Map/bigint-number-same-value.js
new file mode 100644
index 0000000000..783afd421b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/Map/bigint-number-same-value.js
@@ -0,0 +1,46 @@
+// Copyright (C) 2021 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-map.prototype.set
+description: >
+ Observing the expected behavior of keys when a BigInt and Number have
+ the same value.
+info: |
+ Map.prototype.set ( key , value )
+
+ ...
+ Let p be the Record {[[key]]: key, [[value]]: value}.
+ Append p as the last element of entries.
+ ...
+
+features: [BigInt]
+---*/
+
+const number = 9007199254740991;
+const bigint = 9007199254740991n;
+
+const m = new Map([
+ [number, number],
+ [bigint, bigint],
+]);
+
+assert.sameValue(m.size, 2);
+assert.sameValue(m.has(number), true);
+assert.sameValue(m.has(bigint), true);
+
+assert.sameValue(m.get(number), number);
+assert.sameValue(m.get(bigint), bigint);
+
+m.delete(number);
+assert.sameValue(m.size, 1);
+assert.sameValue(m.has(number), false);
+m.delete(bigint);
+assert.sameValue(m.size, 0);
+assert.sameValue(m.has(bigint), false);
+
+m.set(number, number);
+assert.sameValue(m.size, 1);
+m.set(bigint, bigint);
+assert.sameValue(m.size, 2);
+
+reportCompare(0, 0);