mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-31 19:53:50 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // 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);
 |