<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: 12pt">
<DIV style="FONT-FAMILY: ; COLOR: ">
<DIV>[Sorry if this is a duplicate. I tried sending it yesterday but it didn’t 
seem to go through.]</DIV>
<DIV> </DIV>
<DIV>The following paragraph appears in ES 5.1 S15.5.4.14:</DIV>
<DIV> </DIV>
<DIV></DIV>
<DIV>“If separator is undefined, then the result array contains just one String, 
which is the this value (converted to a String). If limit is not undefined, then 
the output array is truncated so that it contains no more than limit 
elements.”</DIV>
<DIV> </DIV>
<DIV></DIV>
<DIV>This paragraph remains verbatim in the latest ES 6 draft (Rev 9).</DIV>
<DIV> </DIV>
<DIV></DIV>
<DIV>This is ambiguous about whether the limit argument applies when separator 
is undefined. The algorithm steps that follow, by my reading, specify that limit 
should not affect the result if separator is undefined. In other words, 
'undefined'.split(undefined, 0) should return ['undefined'], not []. Was this 
special case for the limit argument intentional? Every browser I’ve tested, with 
the exception of Chrome, gets something wrong about the handling of undefined as 
the separator. Test results follow:</DIV>
<DIV> </DIV>
<DIV></DIV>
<DIV>Chrome 20, 22:</DIV>
<DIV></DIV>
<DIV>'undefined'.split(); // –> ['undefined']</DIV>
<DIV>'undefined'.split(undefined); // –> ['undefined']</DIV>
<DIV>'undefined'.split(undefined, 0); // –> ['undefined']</DIV>
<DIV> </DIV>
<DIV></DIV>
<DIV>IE 9 (IE 9 standards mode):</DIV>
<DIV>'undefined'.split(); // –> ['undefined']</DIV>
<DIV></DIV>
<DIV>'undefined'.split(undefined); // –> ['', '']</DIV>
<DIV>'undefined'.split(undefined, 0); // –> []</DIV>
<DIV> </DIV>
<DIV></DIV>
<DIV>Firefox 14.0.1, Opera 12, and Safari 5.1.7:</DIV>
<DIV>'undefined'.split(); // –> ['undefined']</DIV>
<DIV></DIV>
<DIV>'undefined'.split(undefined); // –> ['undefined']</DIV>
<DIV>'undefined'.split(undefined, 0); // –> []</DIV>
<DIV> </DIV>
<DIV></DIV>
<DIV>Safari 5.1.2:</DIV>
<DIV>'undefined'.split(); // –> Didn't test</DIV>
<DIV></DIV>
<DIV>'undefined'.split(undefined); // –> ['', '']</DIV>
<DIV>'undefined'.split(undefined, 0); // –> []</DIV>
<DIV></DIV>
<DIV> </DIV>
<DIV>-- Steven Levithan</DIV>
<DIV> </DIV></DIV></DIV></DIV></BODY></HTML>