mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-03 21:24:30 +01:00 
			
		
		
		
	Add tests for Atomics.pause (#4147)
* Add tests for Atomics.pause * Address review
This commit is contained in:
		
							parent
							
								
									830c52155d
								
							
						
					
					
						commit
						58751ca335
					
				@ -106,6 +106,10 @@ source-phase-imports-module-source
 | 
			
		||||
# https://github.com/tc39/proposal-arraybuffer-base64
 | 
			
		||||
uint8array-base64
 | 
			
		||||
 | 
			
		||||
# Atomics.pause
 | 
			
		||||
# https://github.com/tc39/proposal-atomics-microwait
 | 
			
		||||
Atomics.pause
 | 
			
		||||
 | 
			
		||||
## Standard language features
 | 
			
		||||
#
 | 
			
		||||
# Language features that have been included in a published version of the
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								test/built-ins/Atomics/pause/descriptor.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								test/built-ins/Atomics/pause/descriptor.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
// Copyright 2024 the V8 project authors. All rights reserved.
 | 
			
		||||
// This code is governed by the license found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
/*---
 | 
			
		||||
esid: sec-atomics.pause
 | 
			
		||||
description: Testing descriptor property of Atomics.pause
 | 
			
		||||
includes: [propertyHelper.js]
 | 
			
		||||
features: [Atomics.pause]
 | 
			
		||||
---*/
 | 
			
		||||
 | 
			
		||||
verifyProperty(Atomics, 'pause', {
 | 
			
		||||
  enumerable: false,
 | 
			
		||||
  writable: true,
 | 
			
		||||
  configurable: true,
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										16
									
								
								test/built-ins/Atomics/pause/length.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								test/built-ins/Atomics/pause/length.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
// Copyright 2024 the V8 project authors. All rights reserved.
 | 
			
		||||
// This code is governed by the BSD license found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
/*---
 | 
			
		||||
esid: sec-atomics.pause
 | 
			
		||||
description: Atomics.pause.length is 0.
 | 
			
		||||
includes: [propertyHelper.js]
 | 
			
		||||
features: [Atomics.pause]
 | 
			
		||||
---*/
 | 
			
		||||
 | 
			
		||||
verifyProperty(Atomics.pause, 'length', {
 | 
			
		||||
  value: 0,
 | 
			
		||||
  enumerable: false,
 | 
			
		||||
  writable: false,
 | 
			
		||||
  configurable: true,
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										16
									
								
								test/built-ins/Atomics/pause/name.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								test/built-ins/Atomics/pause/name.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
// Copyright 2024 the V8 project authors. All rights reserved.
 | 
			
		||||
// This code is governed by the BSD license found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
/*---
 | 
			
		||||
esid: sec-atomics.pause
 | 
			
		||||
description: Atomics.pause.name is "pause".
 | 
			
		||||
includes: [propertyHelper.js]
 | 
			
		||||
features: [Atomics.pause]
 | 
			
		||||
---*/
 | 
			
		||||
 | 
			
		||||
verifyProperty(Atomics.pause, 'name', {
 | 
			
		||||
  value: 'pause',
 | 
			
		||||
  enumerable: false,
 | 
			
		||||
  writable: false,
 | 
			
		||||
  configurable: true,
 | 
			
		||||
});
 | 
			
		||||
@ -0,0 +1,19 @@
 | 
			
		||||
// Copyright 2024 the V8 project authors. All rights reserved.
 | 
			
		||||
// This code is governed by the BSD license found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
/*---
 | 
			
		||||
esid: sec-atomics.pause
 | 
			
		||||
description: Atomics.pause throws on negative argument values
 | 
			
		||||
features: [Atomics.pause]
 | 
			
		||||
---*/
 | 
			
		||||
 | 
			
		||||
const values = [
 | 
			
		||||
  -1,
 | 
			
		||||
  Number.MIN_SAFE_INTEGER,
 | 
			
		||||
  Number.MIN_SAFE_INTEGER - 1
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
for (const v of values) {
 | 
			
		||||
  assert.throws(RangeError, () => { Atomics.pause(v); },
 | 
			
		||||
                `${v} is an illegal iterationNumber`);
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,32 @@
 | 
			
		||||
// Copyright (C) 2024 the V8 project authors. All rights reserved.
 | 
			
		||||
// This code is governed by the BSD license found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
/*---
 | 
			
		||||
esid: sec-atomics.pause
 | 
			
		||||
description: Atomics.pause throws on non-integral Number argument values
 | 
			
		||||
features: [Atomics.pause]
 | 
			
		||||
---*/
 | 
			
		||||
 | 
			
		||||
const values = [
 | 
			
		||||
  true,
 | 
			
		||||
  false,
 | 
			
		||||
  null,
 | 
			
		||||
  42.42,
 | 
			
		||||
  -42.42,
 | 
			
		||||
  NaN,
 | 
			
		||||
  Infinity,
 | 
			
		||||
  Symbol("foo"),
 | 
			
		||||
  "bar",
 | 
			
		||||
  "42",
 | 
			
		||||
  /baz/,
 | 
			
		||||
  42n,
 | 
			
		||||
  {},
 | 
			
		||||
  [],
 | 
			
		||||
  function() {},
 | 
			
		||||
  { valueOf() { return 42; } }
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
for (const v of values) {
 | 
			
		||||
  assert.throws(TypeError, () => { Atomics.pause(v); },
 | 
			
		||||
                `${v ? v.toString() : v} is an illegal iterationNumber`);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										28
									
								
								test/built-ins/Atomics/pause/not-a-constructor.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								test/built-ins/Atomics/pause/not-a-constructor.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,28 @@
 | 
			
		||||
// Copyright 2024 the V8 project authors. All rights reserved.
 | 
			
		||||
// This code is governed by the BSD license found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
/*---
 | 
			
		||||
esid: sec-ecmascript-standard-built-in-objects
 | 
			
		||||
description: Atomics.pause does not implement [[Construct]], is not new-able
 | 
			
		||||
info: |
 | 
			
		||||
  ECMAScript Function Objects
 | 
			
		||||
 | 
			
		||||
  Built-in function objects that are not identified as constructors do not
 | 
			
		||||
  implement the [[Construct]] internal method unless otherwise specified in
 | 
			
		||||
  the description of a particular function.
 | 
			
		||||
 | 
			
		||||
  sec-evaluatenew
 | 
			
		||||
 | 
			
		||||
  ...
 | 
			
		||||
  7. If IsConstructor(constructor) is false, throw a TypeError exception.
 | 
			
		||||
  ...
 | 
			
		||||
includes: [isConstructor.js]
 | 
			
		||||
features: [Reflect.construct, Atomics.pause]
 | 
			
		||||
---*/
 | 
			
		||||
 | 
			
		||||
assert.sameValue(isConstructor(Atomics.pause), false, 'isConstructor(Atomics.pause) must return false');
 | 
			
		||||
 | 
			
		||||
assert.throws(TypeError, () => {
 | 
			
		||||
  new Atomics.pause();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								test/built-ins/Atomics/pause/returns-undefined.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								test/built-ins/Atomics/pause/returns-undefined.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
// Copyright 2024 the V8 project authors. All rights reserved.
 | 
			
		||||
// This code is governed by the BSD license found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
/*---
 | 
			
		||||
esid: sec-atomics.pause
 | 
			
		||||
description: Atomics.pause returns undefined
 | 
			
		||||
features: [Atomics.pause]
 | 
			
		||||
---*/
 | 
			
		||||
 | 
			
		||||
assert.sameValue(Atomics.pause(), undefined,
 | 
			
		||||
                 'Atomics.pause returns undefined');
 | 
			
		||||
 | 
			
		||||
const values = [
 | 
			
		||||
  undefined,
 | 
			
		||||
  42,
 | 
			
		||||
  0,
 | 
			
		||||
  -0,
 | 
			
		||||
  Number.MAX_SAFE_INTEGER
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
for (const v of values) {
 | 
			
		||||
  assert.sameValue(Atomics.pause(v), undefined,
 | 
			
		||||
                   'Atomics.pause returns undefined');
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user