mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-04 13:44:29 +01:00 
			
		
		
		
	The values defined by the referenced files are not used by these tests. This makes their inclusion superfluous, which needlessly increases the time to execute the tests and may confuse some readers.
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright (C) 2018 Amal Hussein. All rights reserved.
 | 
						|
// This code is governed by the BSD license found in the LICENSE file.
 | 
						|
 | 
						|
/*---
 | 
						|
esid: sec-atomics.wait
 | 
						|
description: >
 | 
						|
  Throws a RangeError is index < 0
 | 
						|
info: |
 | 
						|
  Atomics.wait( typedArray, index, value, timeout )
 | 
						|
 | 
						|
  2.Let i be ? ValidateAtomicAccess(typedArray, index).
 | 
						|
    ...
 | 
						|
      2.Let accessIndex be ? ToIndex(requestIndex).
 | 
						|
        ...
 | 
						|
        2.b If integerIndex < 0, throw a RangeError exception
 | 
						|
 | 
						|
features: [Atomics, SharedArrayBuffer, TypedArray]
 | 
						|
---*/
 | 
						|
 | 
						|
const i32a = new Int32Array(
 | 
						|
  new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4)
 | 
						|
);
 | 
						|
 | 
						|
const poisoned = {
 | 
						|
  valueOf: function() {
 | 
						|
    throw new Test262Error('should not evaluate this code');
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
assert.throws(RangeError, function() {
 | 
						|
  Atomics.wait(i32a, -Infinity, poisoned, poisoned);
 | 
						|
}, '`Atomics.wait(i32a, -Infinity, poisoned, poisoned)` throws RangeError');
 | 
						|
assert.throws(RangeError, function() {
 | 
						|
  Atomics.wait(i32a, -7.999, poisoned, poisoned);
 | 
						|
}, '`Atomics.wait(i32a, -7.999, poisoned, poisoned)` throws RangeError');
 | 
						|
assert.throws(RangeError, function() {
 | 
						|
  Atomics.wait(i32a, -1, poisoned, poisoned);
 | 
						|
}, '`Atomics.wait(i32a, -1, poisoned, poisoned)` throws RangeError');
 | 
						|
assert.throws(RangeError, function() {
 | 
						|
  Atomics.wait(i32a, -300, poisoned, poisoned);
 | 
						|
}, '`Atomics.wait(i32a, -300, poisoned, poisoned)` throws RangeError');
 |