blob: 792332c6487d41190effc307cd675127142b6c4d [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001// Copyright 2015 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5'use strict';
6
7var set = new Set();
8
9var objectKey = {};
10var stringKey = 'keykeykey';
11var numberKey = 42.24;
12var booleanKey = true;
13var undefinedKey = undefined;
14var nullKey = null;
15var nanKey = NaN;
16var zeroKey = 0;
17var minusZeroKey = -0;
18
19assertEquals(set.size, 0);
20
21set.add(objectKey);
22set.add(stringKey);
23set.add(numberKey);
24set.add(booleanKey);
25set.add(undefinedKey);
26set.add(nullKey);
27set.add(nanKey);
28set.add(zeroKey);
29
30assertEquals(8, set.size);
31
32assertTrue(set.has(objectKey));
33assertTrue(set.has(stringKey));
34assertTrue(set.has(numberKey));
35assertTrue(set.has(booleanKey));
36assertTrue(set.has(undefinedKey));
37assertTrue(set.has(nullKey));
38assertTrue(set.has(nanKey));
39assertTrue(set.has(zeroKey));
40
41assertFalse(set.has({}));
42assertTrue(set.has('keykeykey'));
43assertTrue(set.has(42.24));
44assertTrue(set.has(true));
45assertTrue(set.has(undefined));
46assertTrue(set.has(null));
47assertTrue(set.has(NaN));
48assertTrue(set.has(0));
49assertTrue(set.has(-0));
50assertTrue(set.has(1 / Infinity));
51assertTrue(set.has(-1 / Infinity));