diff options
Diffstat (limited to 'deps/v8/test/mjsunit/harmony/weakrefs/symbol-as-weakref-target.js')
-rw-r--r-- | deps/v8/test/mjsunit/harmony/weakrefs/symbol-as-weakref-target.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/harmony/weakrefs/symbol-as-weakref-target.js b/deps/v8/test/mjsunit/harmony/weakrefs/symbol-as-weakref-target.js new file mode 100644 index 0000000000..1dc874ed83 --- /dev/null +++ b/deps/v8/test/mjsunit/harmony/weakrefs/symbol-as-weakref-target.js @@ -0,0 +1,41 @@ +// Copyright 2022 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Flags: --harmony-symbol-as-weakmap-key + +(function TestRegisterWithSymbolTarget() { + const fg = new FinalizationRegistry(() => { }); + fg.register(Symbol('123'), 'holdings'); + // Registered symbols cannot be the target. + assertThrows(() => fg.register(Symbol.for('123'), 'holdings'), TypeError); +})(); + +(function TestRegisterWithSymbolUnregisterToken() { + const fg = new FinalizationRegistry(() => { }); + fg.register({}, 'holdings', Symbol('123')); + // Registered symbols cannot be the unregister token. + assertThrows(() => fg.register({}, 'holdings', Symbol.for('123')), TypeError); +})(); + +(function TestRegisterSymbolAndHoldingsSameValue() { + const fg = new FinalizationRegistry(() => {}); + const obj = Symbol('123'); + // SameValue(target, holdings) not ok. + assertThrows(() => fg.register(obj, obj), TypeError); + const holdings = {a: 1}; + fg.register(obj, holdings); +})(); + +(function TestUnregisterWithSymbolUnregisterToken() { + const fg = new FinalizationRegistry(() => {}); + fg.unregister(Symbol('123')); + // Registered symbols cannot be the unregister token. + assertThrows(() => fg.unregister(Symbol.for('123')), TypeError); +})(); + +(function TestWeakRefConstructorWithSymbol() { + new WeakRef(Symbol('123')); + // Registered symbols cannot be the WeakRef target. + assertThrows(() => new WeakRef(Symbol.for('123')), TypeError); +})(); |