On 10/25/2018 09:24 AM, Logan Smyth wrote:
Yeah, /LineTerminatorSequence/ is definitely the canonical definition of line 
numbers in JS at the moment. As we explore 
https://github.com/tc39/proposal-error-stacks, it would be good to clearly 
specify how a line number is computed from the original source. As currently 
specified, a line number in a stack trace takes U+2028/29 into account, and 
thus requires any consumer of this source code and line number value needs to 
have a special case for JS code. It seems unrealistic to expect every piece of 
tooling that works with source code would have a special case for JS code to 
take these 2 characters into account. Given that, the choices are

1. Every tool that manipulates source code needs to know what type so it can 
special-case JS it is in order to process line-related information
2. Every tool should consider U+2028/29 newlines, causing line numbers to be 
off in other programming languages
2. Accept that tooling and the spec will never correspond and the use of these 
two characters in source code will continue to cause issues
3. Diverge the definition of current source-code line from the current 
/LineTerminatorSequence/ lexical grammar such that source line number is always 
/\r?\n/, which is what the user is realistically going to see in their editor

The Unicode standard is the more relevant one here.  Choice 2 is the correct 
one per the Unicode standard.  Tools that do not consider U+2028/29 to be line 
breaks are not behaving as they should according to the latest Unicode standard.

    Waldemar
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to