// Copyright 2018 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-weak-refs-with-cleanup-some (function TestCleanupSomeWithoutFinalizationRegistry() { assertThrows(() => FinalizationRegistry.prototype.cleanupSome.call({}), TypeError); // Does not throw: let fg = new FinalizationRegistry(() => {}); let rv = FinalizationRegistry.prototype.cleanupSome.call(fg); assertEquals(undefined, rv); })(); (function TestCleanupSomeWithNonCallableCallback() { let fg = new FinalizationRegistry(() => {}); assertThrows(() => fg.cleanupSome(1), TypeError); assertThrows(() => fg.cleanupSome(1n), TypeError); assertThrows(() => fg.cleanupSome(Symbol()), TypeError); assertThrows(() => fg.cleanupSome({}), TypeError); assertThrows(() => fg.cleanupSome('foo'), TypeError); assertThrows(() => fg.cleanupSome(true), TypeError); assertThrows(() => fg.cleanupSome(false), TypeError); assertThrows(() => fg.cleanupSome(null), TypeError); })();