News for hackers. Stuff that matters.
Re:Opera moves to WebKit by papsosouid on Wednesday February 13, 2013 @12:18PM (#5214279)
No, because strtol gives you the ability to see that the parse failed and where. You chose to give it NULL there, but you could choose to use the function correctly. You can't do it correctly in the javascript and PHP cases. In the PHP case, it is actually just a bug in the PHP codebase that octal digits are supported at all, and they don't use strtol correctly. Note that perl, python and ruby all support octal digits correctly, there really is no excuse for PHP and javascript not to.
Re:Opera moves to WebKit by user24 on Wednesday February 13, 2013 @12:25PM (#5214323)
> You can't do it correctly in the javascript ... case

Sure you can. Read the Fine manual: https://developer.mozilla.org/en-US/docs/JavaScript/Referenc...

tldr: parseInt("08", 10);

Re:Opera moves to WebKit by papsosouid on Wednesday February 13, 2013 @12:35PM (#5214385)
We're not talking about parsing in base 10, we're talking about parsing in base 8. I need to be able to tell if the parse succeeded or not, silently hiding errors is bad. The correct behaviour demonstrated in perl and python:

    $ perl -le 'print 07'
    7
    $ perl -le 'print 08'
    Illegal octal digit '8' at -e line 1, at end of line
    Execution of -e aborted due to compilation errors.
    $ python -c 'print 07'
    7
    $ python -c 'print 08'
      File "", line 1
        print 08
       	^
    SyntaxError: invalid token
Re:Opera moves to WebKit by user24 on Wednesday February 13, 2013 @01:01PM (#5214550)
Got to admit, I am disappointed that

> parseInt("08", 8);

returns 0 instead of NaN

Re:Opera moves to WebKit by nemetroid on Wednesday February 13, 2013 @06:13PM (#5216355)
Returning 0 makes perfect sense. parseInt matches an integer from the beginning of the string, so it reads the 0 and then stops at the 8 because 8 is not a valid digit in base 8.

    >>> parseInt("123foobar", 10)
    123
Re:Opera moves to WebKit by user24 on Thursday February 14, 2013 @06:16AM (#5218936)
Good point.