You probably do not see that this script is actually embedded at runtime in a block starting at line 1: the start of the block (which actually makes an anonymous function) has active (invisible) code prepended at start of the line, even if line 1 is then only followed by a comment. The script is also followed by an end of block containing some active code (with an implicit return statement just before it, and a function call just after it), but this appending does not increment the line counter.