'switch' operator improvement

Eugen.Konkov at aldec.com Eugen.Konkov at aldec.com
Tue Oct 16 08:14:35 PDT 2007


I think switch ... case construction must be interpreted as:
function f(g) {
 if( x == g() ) ....     // case g():
 if( ....                    //  case ...
 }

----- Original Message ----- 
From: "Dave Herman" <dherman at ccs.neu.edu>
To: "Lars T Hansen" <lth at acm.org>
Cc: <Eugen.Konkov at aldec.com>; <Es4-discuss at mozilla.org>
Sent: Tuesday, October 16, 2007 6:04 PM
Subject: Re: 'switch' operator improvement


> It's clever, but it's a special case that may not abstract very 
> smoothly. For example:
> 
> function f(g) {
>     switch (x) {
>         case g():
>         ...
>     }
> }
> 
> The behavior of my function depends on whether g() returns a RegEx or a 
> non-RegEx. Maybe that's what you want, but it means it's an extra 
> special case that you have to be aware of whenever abstracting a case 
> statement.
> 
> Dave
> 
> Lars T Hansen wrote:
>> Neat, though it breaks backward compatibility -- each regexp is
>> converted to string before the comparison, IIRC.  (Compatibility may
>> not be a big problem in practice in this case.)
>> 
>> --lars
>> 
>> On 10/16/07, Eugen.Konkov at aldec.com <Eugen.Konkov at aldec.com> wrote:
>>>
>>> allow RegEx in case
>>>
>>> var str= 'a';
>>> switch( str ) {
>>>   case /a/:
>>>     alert('a');
>>>     break;
>>>
>>>   case /b/:
>>>     alert('b');
>>>     break;
>>>   }
>>>
>>> _______________________________________________
>>> Es4-discuss mailing list
>>> Es4-discuss at mozilla.org
>>> https://mail.mozilla.org/listinfo/es4-discuss
>>>
>>>
>> _______________________________________________
>> Es4-discuss mailing list
>> Es4-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es4-discuss
>



More information about the Es4-discuss mailing list