From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../target-not-callable-throws.js | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 js/src/tests/test262/built-ins/FinalizationRegistry/target-not-callable-throws.js (limited to 'js/src/tests/test262/built-ins/FinalizationRegistry/target-not-callable-throws.js') diff --git a/js/src/tests/test262/built-ins/FinalizationRegistry/target-not-callable-throws.js b/js/src/tests/test262/built-ins/FinalizationRegistry/target-not-callable-throws.js new file mode 100644 index 0000000000..e68fecc72e --- /dev/null +++ b/js/src/tests/test262/built-ins/FinalizationRegistry/target-not-callable-throws.js @@ -0,0 +1,72 @@ +// |reftest| skip-if(!this.hasOwnProperty('FinalizationRegistry')||!this.hasOwnProperty('WeakRef')) -- FinalizationRegistry,WeakRef is not enabled unconditionally +// Copyright (C) 2019 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-finalization-registry-target +description: > + Throws a TypeError if target is not callable +info: | + FinalizationRegistry ( cleanupCallback ) + + 1. If NewTarget is undefined, throw a TypeError exception. + 2. If IsCallable(cleanupCallback) is false, throw a TypeError exception. + ... +features: [FinalizationRegistry, WeakRef] +---*/ + +assert.sameValue( + typeof FinalizationRegistry, 'function', + 'typeof FinalizationRegistry is function' +); + +assert.throws(TypeError, function() { + new FinalizationRegistry({}); +}, 'ordinary object'); + +assert.throws(TypeError, function() { + new FinalizationRegistry(WeakRef.prototype); +}, 'WeakRef.prototype'); + +assert.throws(TypeError, function() { + new FinalizationRegistry(FinalizationRegistry.prototype); +}, 'FinalizationRegistry.prototype'); + +assert.throws(TypeError, function() { + new FinalizationRegistry([]); +}, 'Array'); + +assert.throws(TypeError, function() { + new FinalizationRegistry(); +}, 'implicit undefined'); + +assert.throws(TypeError, function() { + new FinalizationRegistry(undefined); +}, 'explicit undefined'); + +assert.throws(TypeError, function() { + new FinalizationRegistry(null); +}, 'null'); + +assert.throws(TypeError, function() { + new FinalizationRegistry(1); +}, 'number'); + +assert.throws(TypeError, function() { + new FinalizationRegistry('Object'); +}, 'string'); + +var s = Symbol(); +assert.throws(TypeError, function() { + new FinalizationRegistry(s); +}, 'symbol'); + +assert.throws(TypeError, function() { + new FinalizationRegistry(true); +}, 'Boolean, true'); + +assert.throws(TypeError, function() { + new FinalizationRegistry(false); +}, 'Boolean, false'); + +reportCompare(0, 0); -- cgit v1.2.3