We ought to update our code and parser to follow this.

Begin forwarded message:

From: "Lars Hansen" <[EMAIL PROTECTED]>
Date: 21 April 2008 00:40:09 EDT
To: "Michael O'Brien" <[EMAIL PROTECTED]>, "Jeff Dyer" <[EMAIL PROTECTED] >
Cc: es4-discuss Discuss <[EMAIL PROTECTED]>
Subject: RE: Class static blocks

Static blocks are anonymous parameterless functions.  "var" hoists
to the top of these functions (as in any other functions); "static"
is disallowed (because it's legal only on class attributes); and
other binding forms that are legal in functions ("function", "let",
"const") are legal.

--lars

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Michael O'Brien
Sent: 20. april 2008 22:16
To: Jeff Dyer
Cc: es4-discuss Discuss
Subject: Re: Class static blocks

Jeff,

What happens to "var" declarations inside a static block?
Are they converted to static declarations or disallowed?

Similarly, I presume a redundant "static" attribute inside a
static block is allowed.

Michael


On Apr 20, 2008, at 4:50 PM, Jeff Dyer wrote:



On 4/20/08 11:52 AM, Michael O'Brien wrote:

I wanted to clarify the meaning of a static block. Consider:

class Shape {

static var count
var origin

static {
// Is this static initialization code?

count = 1
}

{

// Is this instance initialization code?

origin = 0
}
}


Reading the latest draft of the grammar I'm assuming that you must
now put static init code inside a static {} block. Is this correct?

That is correct.

Does that mean that other directives outside of methods and static
blocks are instance initialization code?

No, statements are no longer allowed at the top level of a class
definition.
Class initialization code goes in 'static {...}' blocks,
and instance
initialization code goes in constructors, of course.
Multiple 'static
{...}'
blocks are allowed.

Jd


_______________________________________________
Es4-discuss mailing list
[EMAIL PROTECTED]
https://mail.mozilla.org/listinfo/es4-discuss

_______________________________________________
Es4-discuss mailing list
[EMAIL PROTECTED]
https://mail.mozilla.org/listinfo/es4-discuss

Reply via email to