Checking isn't evaluation. Short-circuiting and by a constant false doesn't mean we skip checks on the right hand side. The right hand side is dead code. We check dead code.
E.g.
if (false) { x = undefined_var; }
should diagnose the undefined_var before throwing away the dead code.
(If such a diagnostic exists and would be applied to
Checking isn't evaluation. Short-circuiting and by a constant false doesn't mean we skip checks on the right hand side. The right hand side is dead code. We check dead code.
E.g.
should diagnose the undefined_var before throwing away the dead code.(If such a diagnostic exists and would be applied to