Octal literals have their uses (you Unix haters skip this one)

Oliver Hunt oliver at apple.com
Thu Jan 12 12:44:26 PST 2012


I'll just add a caveat to brendan's comments below though: JScript doesn't support octal in many (all?) cases, leading to incompatible behaviour when parsing things like 012.

I think the problem with octal numbers isn't a philosophical hate of octal, inasmuch as it is a general unhappiness with the existing octal support, namely a simple 0 prefix switching the parse mode.  If we had another (unambiguous) prefix that would (I'm sure) be fine.

If we were willing to add octal with a clear prefix I would be fine with that, for consistency with hex, I'd lean towards 0o<...>, but I'm open to any suggestions that people may wish to add.  Personally I'd also like a binary form, a la 0b...., but I'm unsure how useful regular developers would find that (I don't write "realworld" JS so my needs don't always align with those of regular developers).

--Oliver

On Jan 12, 2012, at 12:30 PM, Brendan Eich wrote:

>> 	Greg Smith	January 12, 2012 12:08 PM
>> To me this seems like an exception rather than a common problem. Most APIs / tools don't use octals for this type of thing. Seems unnecessary to add to the language for this one use case.
> 
> "Add to the language" is not accurate. Octal is *already* supported by JS engines today, and again, AFAIK, it is required for web compatibility. Banishing octal to the non-normative Annex B, banning it from strict mode -- that does not remove octal from JS in reality.
> 
> Given this, the shoe is rather on the other foot: strict-mode has one more drawback from the point of view of a non-trivial cohort of users (Node.js hackers who wrangle Unix permissions).
>> 
>> Not a Linux hater by any means, just the parseInt thing doesn't bother me for this one situation.
> 
> That's nice, but Node.js supports JS non-strict and people use it freely, including not quoting octal literals (the API works with string inputs too, so explicit parseInt is not required).
> 
> The problem for CoffeeScript users can be solved quickly via 0o prefixing. The problem for JS users is also easy: don't use strict mode. Is this really what we want? What good have we done by banning octal in strict mode?
> 
>> Or am I wrong and there are other common uses for octal literals?
> 
> The only use case I'm citing here is Unix permission modes. That's enough.
> 
> /be
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20120112/44a9c51c/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: postbox-contact.jpg
Type: image/jpeg
Size: 1212 bytes
Desc: not available
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20120112/44a9c51c/attachment-0001.jpg>


More information about the es-discuss mailing list