| // Copyright 2015 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| 'use strict'; |
| |
| var set = new Set(); |
| |
| var objectKey = {}; |
| var stringKey = 'keykeykey'; |
| var numberKey = 42.24; |
| var booleanKey = true; |
| var undefinedKey = undefined; |
| var nullKey = null; |
| var nanKey = NaN; |
| var zeroKey = 0; |
| var minusZeroKey = -0; |
| |
| assertEquals(set.size, 0); |
| |
| set.add(objectKey); |
| set.add(stringKey); |
| set.add(numberKey); |
| set.add(booleanKey); |
| set.add(undefinedKey); |
| set.add(nullKey); |
| set.add(nanKey); |
| set.add(zeroKey); |
| |
| assertEquals(8, set.size); |
| |
| assertTrue(set.has(objectKey)); |
| assertTrue(set.has(stringKey)); |
| assertTrue(set.has(numberKey)); |
| assertTrue(set.has(booleanKey)); |
| assertTrue(set.has(undefinedKey)); |
| assertTrue(set.has(nullKey)); |
| assertTrue(set.has(nanKey)); |
| assertTrue(set.has(zeroKey)); |
| |
| assertFalse(set.has({})); |
| assertTrue(set.has('keykeykey')); |
| assertTrue(set.has(42.24)); |
| assertTrue(set.has(true)); |
| assertTrue(set.has(undefined)); |
| assertTrue(set.has(null)); |
| assertTrue(set.has(NaN)); |
| assertTrue(set.has(0)); |
| assertTrue(set.has(-0)); |
| assertTrue(set.has(1 / Infinity)); |
| assertTrue(set.has(-1 / Infinity)); |