diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /js/src/tests/test262/built-ins/FinalizationRegistry/prototype/register/return-undefined-register-symbol.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/test262/built-ins/FinalizationRegistry/prototype/register/return-undefined-register-symbol.js')
-rw-r--r-- | js/src/tests/test262/built-ins/FinalizationRegistry/prototype/register/return-undefined-register-symbol.js | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/FinalizationRegistry/prototype/register/return-undefined-register-symbol.js b/js/src/tests/test262/built-ins/FinalizationRegistry/prototype/register/return-undefined-register-symbol.js new file mode 100644 index 0000000000..8c8a944429 --- /dev/null +++ b/js/src/tests/test262/built-ins/FinalizationRegistry/prototype/register/return-undefined-register-symbol.js @@ -0,0 +1,76 @@ +// |reftest| shell-option(--enable-symbols-as-weakmap-keys) skip-if(release_or_beta||!this.hasOwnProperty('FinalizationRegistry')||!xulRuntime.shell) -- symbols-as-weakmap-keys is not released yet, FinalizationRegistry is not enabled unconditionally, requires shell-options +// Copyright (C) 2022 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-finalization-registry.prototype.register +description: Return undefined after registering a Symbol +info: | + FinalizationRegistry.prototype.register ( _target_ , _heldValue_ [, _unregisterToken_ ] ) + 8. Return *undefined*. +features: [FinalizationRegistry, Symbol, symbols-as-weakmap-keys] +---*/ + +var fn = function() {}; +var reg = new FinalizationRegistry(fn); + +var target = Symbol('a description'); +assert.sameValue(reg.register(target), undefined, 'Register a regular symbol'); +assert.sameValue(reg.register(target), undefined, 'Register the same symbol again'); +assert.sameValue(reg.register(target), undefined, 'Register the same symbol a third time'); + +assert.sameValue( + reg.register(Symbol('a description')), + undefined, + 'Register another symbol with the same description' +); +assert.sameValue( + reg.register(Symbol('a different description')), + undefined, + 'Register another symbol with another description' +); + +assert.sameValue( + reg.register(target, undefined, Symbol('unregister token')), + undefined, + 'Register a regular symbol with a symbol unregister token' +); +assert.sameValue( + reg.register(target, undefined, target), + undefined, + 'Register a regular symbol with itself as the unregister token' +); + +assert.sameValue( + reg.register(target, undefined, undefined), + undefined, + 'Register a regular symbol with explicit undefined unregister token' +); + +assert.sameValue(reg.register(Symbol.hasInstance), undefined, 'Register a well-known symbol'); +assert.sameValue(reg.register(Symbol.hasInstance), undefined, 'Register the same well-known symbol again'); +assert.sameValue(reg.register(Symbol.hasInstance), undefined, 'Register the same well-known symbol a third time'); + +assert.sameValue( + reg.register(target, undefined, Symbol.hasInstance), + undefined, + 'Register a regular symbol with a well-known symbol unregister token' +); +assert.sameValue( + reg.register(Symbol.hasInstance, undefined, Symbol.iterator), + undefined, + 'Register a well-known symbol with a different well-known symbol as unregister token' +); +assert.sameValue( + reg.register(Symbol.hasInstance, undefined, Symbol.hasInstance), + undefined, + 'Register a well-known symbol with itself as the unregister token' +); + +assert.sameValue( + reg.register(Symbol.hasInstance, undefined, undefined), + undefined, + 'Register a well-known symbol with explicit undefined unregister token' +); + +reportCompare(0, 0); |