'switch' operator improvement

Dave Herman dherman at ccs.neu.edu
Tue Oct 16 08:19:44 PDT 2007


But that's not what you proposed, is it? I understood your proposal to 
mean something more like:

function f(g) {
     if (let (tmp = g())    // case g():
         (tmp is RegEx ? tmp.match(x) : x == tmp)) ....
     if ....
}

Dave

Eugen.Konkov at aldec.com wrote:
> 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
> _______________________________________________
> Es4-discuss mailing list
> Es4-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es4-discuss




More information about the Es4-discuss mailing list