It may be a mistake, or it may just be how they developed it. But this seems to be related to how the debugger deals with the conditions of the if statement, which it can easily evaluate, and the code style used (K & R, Allman, 1TBS, etc.)

Lines of code that may have breakpoints set are green, and those that cannot be obscured by a gray debugger.
Simply put, the debugger does not highlight the lines of the statements (and possibly even the other lines of the control statements), which it can easily say has a true / false condition. When setting a breakpoint, a breakpoint will be placed on the next breaking line of code.
In the case of blocks that use 1TBS / OTBS or K & R style formatting, the debugger will select the first broken line in the if block instead of the line in the actual if line. This gives the false impression that the code is inside a false condition if the statements are executed as follows.
In the case of blocks that use Allman-style formatting, the debugger will not highlight any part of the if statement or code when passing through. And if you try to put a code break in an if statement, it will skip the whole block and place a breakpoint on the next flexible line.
If the if statements do not use conditions that the debugger can easily read as true / false, the debugger acts as expected.
Demonstration for testing.
debugger; var one = true; var two = false;
source share