On Oct 3, 2014, at 7:35 AM, Rick Waldron wrote:

> 
> 
> On Fri, Oct 3, 2014 at 10:04 AM, Erik Arvidsson <[email protected]> 
> wrote:
> Number has always been able to handle the full NumericLiteral. In ES5.1 it 
> can handle '-1', '-0', '0xff', '0XFF', '1e2', '-1E-2', 'Infinity'. Breaking 
> that consistency was unwanted.
> 
> This means that it is a change to existing semantics. We think we can get 
> away with it though.
> 
> ES5.1: Number('0b10') === NaN
> ES6: Number('0b10') === 2
> 
> I don't know why Waldemar thought this would be a security issue for 
> parseInt? I wasn't at that meeting and the notes do not cover that.
> 
> The security concern was for validating user input and any reliance on the 
> existing semantics being broken.

parseInt: "parseInt may interpret only a leading portion of string as an 
integer value; it ignores any code units that cannot be interpreted as part of 
the notation of an integer, and no indication is given that any such code units 
were ignored."

ES5: parseInt("0b10") //0
ES6 as specified: parseInt("0b10") //0
ES6 if new forms recognized:   parseInt("0b10") //2

Number:  "ToNumber applied to Strings applies the following grammar to the 
input String interpreted as a sequence of UTF-16 encoded code points. If the 
grammar cannot interpret the String as an expansion of StringNumericLiteral, 
then the result of ToNumber is NaN."

ES5: Number("0b10") //NaN
ES6: Number("0b10") //2
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to