The backtracking from direct adjacent combinators

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)"
Backtracking as JumpToIndirectAdjacentEntryPoint and failed
PASS getComputedStyle(document.getElementById("target2")).backgroundColor is "rgb(0, 0, 0)"
Backtracking as JumpToIndirectAdjacentTreeWalkerEntryPoint
PASS getComputedStyle(document.getElementById("target3")).backgroundColor is "rgb(1, 2, 3)"
Backtracking as JumpToIndirectAdjacentTreeWalkerEntryPoint and failed
PASS getComputedStyle(document.getElementById("target4")).backgroundColor is "rgb(0, 0, 0)"
Backtracking with tail
PASS getComputedStyle(document.getElementById("target5")).backgroundColor is "rgb(4, 5, 6)"
Backtracking with tail and failed
PASS getComputedStyle(document.getElementById("target6")).backgroundColor is "rgb(0, 0, 0)"
Backtracking with tail
PASS getComputedStyle(document.getElementById("target7")).backgroundColor is "rgb(4, 5, 6)"
Backtracking with tail
PASS getComputedStyle(document.getElementById("target8")).backgroundColor is "rgb(4, 5, 6)"
PASS successfullyParsed is true

TEST COMPLETE

