mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-03 21:24:30 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			76 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright (C) 2017 Mozilla Corporation.  All rights reserved.
 | 
						|
// This code is governed by the BSD license found in the LICENSE file.
 | 
						|
 | 
						|
/*---
 | 
						|
esid: sec-atomics.islockfree
 | 
						|
description: >
 | 
						|
  Test isLockFree on various non-intuitive arguments
 | 
						|
features: [Atomics]
 | 
						|
---*/
 | 
						|
 | 
						|
assert.sameValue(
 | 
						|
  Atomics.isLockFree(hide(3, Number.NaN)),
 | 
						|
  false,
 | 
						|
  'Atomics.isLockFree(hide(3, Number.NaN)) returns false'
 | 
						|
);
 | 
						|
assert.sameValue(
 | 
						|
  Atomics.isLockFree(hide(3, -1)),
 | 
						|
  false,
 | 
						|
  'Atomics.isLockFree(hide(3, -1)) returns false'
 | 
						|
);
 | 
						|
assert.sameValue(
 | 
						|
  Atomics.isLockFree(hide(3, 3.14)),
 | 
						|
  false,
 | 
						|
  'Atomics.isLockFree(hide(3, 3.14)) returns false'
 | 
						|
);
 | 
						|
assert.sameValue(
 | 
						|
  Atomics.isLockFree(hide(3, 0)),
 | 
						|
  false,
 | 
						|
  'Atomics.isLockFree(hide(3, 0)) returns false'
 | 
						|
);
 | 
						|
 | 
						|
assert.sameValue(
 | 
						|
  Atomics.isLockFree('1'),
 | 
						|
  Atomics.isLockFree(1),
 | 
						|
  'Atomics.isLockFree(\'1\') returns Atomics.isLockFree(1)'
 | 
						|
);
 | 
						|
assert.sameValue(
 | 
						|
  Atomics.isLockFree('3'),
 | 
						|
  Atomics.isLockFree(3),
 | 
						|
  'Atomics.isLockFree(\'3\') returns Atomics.isLockFree(3)'
 | 
						|
);
 | 
						|
 | 
						|
assert.sameValue(
 | 
						|
  Atomics.isLockFree(true),
 | 
						|
  Atomics.isLockFree(1),
 | 
						|
  'Atomics.isLockFree(true) returns Atomics.isLockFree(1)'
 | 
						|
);
 | 
						|
 | 
						|
assert.sameValue(
 | 
						|
  Atomics.isLockFree(1),
 | 
						|
  Atomics.isLockFree({valueOf: () => 1}),
 | 
						|
  'Atomics.isLockFree(1) returns Atomics.isLockFree({valueOf: () => 1})'
 | 
						|
);
 | 
						|
assert.sameValue(
 | 
						|
  Atomics.isLockFree(3),
 | 
						|
  Atomics.isLockFree({valueOf: () => 3}),
 | 
						|
  'Atomics.isLockFree(3) returns Atomics.isLockFree({valueOf: () => 3})'
 | 
						|
);
 | 
						|
assert.sameValue(
 | 
						|
  Atomics.isLockFree(1),
 | 
						|
  Atomics.isLockFree({toString: () => '1'}),
 | 
						|
  'Atomics.isLockFree(1) returns Atomics.isLockFree({toString: () => \'1\'})'
 | 
						|
);
 | 
						|
assert.sameValue(
 | 
						|
  Atomics.isLockFree(3),
 | 
						|
  Atomics.isLockFree({toString: () => '3'}),
 | 
						|
  'Atomics.isLockFree(3) returns Atomics.isLockFree({toString: () => \'3\'})'
 | 
						|
);
 | 
						|
 | 
						|
function hide(k, x) {
 | 
						|
  if (k) {
 | 
						|
    return hide(k - 3, x) + x;
 | 
						|
  }
 | 
						|
  return 0;
 | 
						|
}
 |