Tests for the `queryHolders` function in the Command Line API.


== Running test suite: CommandLineAPI.queryHolders
-- Running test case: CommandLineAPI.queryHolders.Root
[] (1)

-- Running test case: CommandLineAPI.queryHolders.A
[Root] (1)

-- Running test case: CommandLineAPI.queryHolders.B
[A, Root] (2)

-- Running test case: CommandLineAPI.queryHolders.C
[A, B, Root] (3)

-- Running test case: CommandLineAPI.queryHolders.Array
[Root] (1)

-- Running test case: CommandLineAPI.queryHolders.ArrayItem
[Array, Root] (2)

-- Running test case: CommandLineAPI.queryHolders.Map
[Root] (1)

-- Running test case: CommandLineAPI.queryHolders.MapKey
[Map, Root] (2)

-- Running test case: CommandLineAPI.queryHolders.MapValue
[Map, Root] (2)

-- Running test case: CommandLineAPI.queryHolders.Set
[Root] (1)

-- Running test case: CommandLineAPI.queryHolders.SetItem
[Root, Set] (2)

-- Running test case: CommandLineAPI.queryHolders.WeakMap
[Root] (1)

-- Running test case: CommandLineAPI.queryHolders.WeakMapKey
[Root] (1)

-- Running test case: CommandLineAPI.queryHolders.WeakMapValue
[Root] (1)

-- Running test case: CommandLineAPI.queryHolders.WeakSet
[Root] (1)

-- Running test case: CommandLineAPI.queryHolders.WeakSetItem
[Root] (1)

-- Running test case: CommandLineAPI.queryHolders.Promise
[Root] (1)

-- Running test case: CommandLineAPI.queryHolders.PromiseThen
[Root, object] (2)

-- Running test case: CommandLineAPI.queryHolders.PromiseCatch
[Root, object] (2)

-- Running test case: CommandLineAPI.queryHolders.PromiseFinally
[Root, object] (2)

-- Running test case: CommandLineAPI.queryHolders.EventListenerCallback
[<div id="event-listener-target">, Root] (2)

-- Running test case: CommandLineAPI.queryHolders.SymbolReferenceObject
[Root, SymbolReferenceHolder] (2)

-- Running test case: CommandLineAPI.queryHolders.MultipleReferenceObject
[<filtered>] (1001)

-- Running test case: CommandLineAPI.queryHolders.RepeatedReferenceObject
[RepeatedReferenceHolder, Root] (2)

-- Running test case: CommandLineAPI.queryHolders.OnlyHeldByDebugger
PASS: The result should have 0 items.

-- Running test case: CommandLineAPI.queryHolders.NonObject
PASS: Should produce an exception.
Error: TypeError: queryHolders first argument must be an object.

-- Running test case: CommandLineAPI.queryHolders.NoParameter
PASS: The result should be undefined.

