Mike Shaver wrote:
> On Sun, Jul 27, 2008 at 9:15 PM, Ingvar von Schoultz
> <[EMAIL PROTECTED]> wrote:
>> Does it matter whether it's interpreted as an empty block or
>> an empty discarded array?
> 
> It's not always discarded:
> 
> js> var x = 1
> js> eval ("if (x) [1, 2, 3]")
> 1,2,3

That becomes an array, no problem. My "Does it matter" was
about empty blocks only, in reply to your question:

>> Are you saying that a block then may never be empty as a syntax
>> rule?
> Does it matter whether it's interpreted as an empty block or
> an empty discarded array?

Array is the default. An empty block gets misinterpreted as an
empty array.

So a code generator that produces an eval that returns a scoping
block must deal with the special case that the block may be empty
or contain a comma-separated list of values. It's the generator's
own fault for producing such silly code, so I don't feel sorry
for that generator. :-)

-- 
Ingvar von Schoultz

------- (My quirky use of capitals in code comes from my opinion that
reserved and predefined words should all start with lowercase, and
user-defined should all start with uppercase, because this will easily
and elegantly prevent a host of name-collision problems when things
like programming languages are upgraded with new labels.)
_______________________________________________
Es4-discuss mailing list
Es4-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es4-discuss

Reply via email to