The backtracking from direct adjacent combinators inside :nth-child(An+B of selector)

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Backtracking as JumpToIndirectAdjacentEntryPoint
PASS getComputedStyle(document.getElementById("target1")).backgroundColor is "rgb(1, 2, 3)"
PASS getComputedStyle(document.getElementById("target1")).color is "rgb(7, 8, 9)"
Backtracking as JumpToIndirectAdjacentEntryPoint and failed
PASS getComputedStyle(document.getElementById("target2")).backgroundColor is "rgb(0, 0, 0)"
PASS getComputedStyle(document.getElementById("target2")).color is "rgb(255, 255, 255)"
Backtracking as JumpToIndirectAdjacentTreeWalkerEntryPoint
PASS getComputedStyle(document.getElementById("target3")).backgroundColor is "rgb(1, 2, 3)"
PASS getComputedStyle(document.getElementById("target3")).color is "rgb(7, 8, 9)"
Backtracking as JumpToIndirectAdjacentTreeWalkerEntryPoint and failed
PASS getComputedStyle(document.getElementById("target4")).backgroundColor is "rgb(0, 0, 0)"
PASS getComputedStyle(document.getElementById("target4")).color is "rgb(255, 255, 255)"
Backtracking with tail
PASS getComputedStyle(document.getElementById("target5")).backgroundColor is "rgb(4, 5, 6)"
PASS getComputedStyle(document.getElementById("target5")).color is "rgb(10, 11, 12)"
Backtracking with tail and failed
PASS getComputedStyle(document.getElementById("target6")).backgroundColor is "rgb(0, 0, 0)"
PASS getComputedStyle(document.getElementById("target6")).color is "rgb(255, 255, 255)"
Backtracking with tail
PASS getComputedStyle(document.getElementById("target7")).backgroundColor is "rgb(4, 5, 6)"
PASS getComputedStyle(document.getElementById("target7")).color is "rgb(10, 11, 12)"
Backtracking with tail
PASS getComputedStyle(document.getElementById("target8")).backgroundColor is "rgb(4, 5, 6)"
PASS getComputedStyle(document.getElementById("target8")).color is "rgb(10, 11, 12)"
PASS successfullyParsed is true

TEST COMPLETE

