Brendan Eich wrote: > On Oct 27, 2008, at 8:21 AM, Maciej Stachowiak wrote: > >>> A more functional multiple-case dispatch form would be like Scheme's >>> `cond' or ML/Haskell `case'. God, we need macros. >> >> ECMAScript's switch is sort of halfway between Scheme cond and C >> switch. Personally I think fall through and explicit break were >> unnecessary concessions to C-likeness but I don't think they create >> insurmountable problems. Case labels at arbitrary points in the code >> would be much worse because it's hard to describe them in any way but >> a controlled goto. > > Netscape management said that JS had to "look like Java", which follows > C in having fall-through from an upper case to a lower one. Same as C++. > That's a big head-wind to tack against, and I was not prepared to > explain yet another switch statement to Java-heads circa 1995.
Cyclone and Jacaranda require fall-through to be marked with an explicit 'fallthru' token. I've use this convention for years in C, and find that it does help even when not enforced by a compiler. For Cyclone, see the first item of 'Restrictions' in <http://cyclone.thelanguage.org/wiki/Switch%20Statements>. For Jacaranda, this token is spelled as a comment for compatibility, and is specified as follows: Each <CaseClause> or <DefaultClause> in a switch statement MUST: - have no statements, or - end with a /*fallthru*/ token, or - end with a <ContinueStatement>, <BreakStatement>, <ReturnStatement>, or <ThrowStatement>, or - be the last clause. The last clause in a switch statement MUST NOT end with a /*fallthru*/ token. -- David-Sarah Hopwood _______________________________________________ Es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

