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

----- Original Message ----- 
From: "Dave Herman" <[EMAIL PROTECTED]>
To: "Lars T Hansen" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>; <Es4-discuss@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, [EMAIL PROTECTED] <[EMAIL PROTECTED]> 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@mozilla.org
>>> https://mail.mozilla.org/listinfo/es4-discuss
>>>
>>>
>> _______________________________________________
>> Es4-discuss mailing list
>> Es4-discuss@mozilla.org
>> https://mail.mozilla.org/listinfo/es4-discuss
>
_______________________________________________
Es4-discuss mailing list
Es4-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es4-discuss

Reply via email to