LMAO

--- In [email protected], "Gordon Smith" <[EMAIL PROTECTED]> wrote:
>
> Not sometimes. Local vars are always hoisted from the block where they
> are declared to the scope of the entire function.
>
>
>
> As Ecmascript requires! : )
>
>
>
> Gordon Smith
>
> Adobe Flex SDK Team
>
>
>
> ________________________________
>
> From: [email protected] [mailto:[EMAIL PROTECTED]
On
> Behalf Of Maciek Sakrejda
> Sent: Friday, August 15, 2008 12:54 PM
> To: [email protected]
> Subject: Re: [flexcoders] Method variable scoping problem with Flex
> compiler
>
>
>
> This is variable hoisting in action:
>
> http://docs.huihoo.com/web/js/es4/core/definitions.html#hoist
> <http://docs.huihoo.com/web/js/es4/core/definitions.html#hoist>
>
> I can't really find a clearer explanation, but the gist of it is that
> variable definitions are sometimes moved to the parent block, and
> sometimes this results in the sort of weird behavior you're seeing.
>
> That's the how, but I don't really know the why--anyone more savvy
about
> hoisting care to enlighten the list?
>
> --
> Maciek Sakrejda
> Truviso, Inc.
> http://www.truviso.com <http://www.truviso.com>
>
> -----Original Message-----
> From: toofah_gm [EMAIL PROTECTED] <mailto:garym%40byu.edu> >
> Reply-To: [email protected]
> <mailto:flexcoders%40yahoogroups.com>
> To: [email protected] <mailto:flexcoders%40yahoogroups.com>
> Subject: [flexcoders] Method variable scoping problem with Flex
compiler
> Date: Fri, 15 Aug 2008 19:43:09 -0000
>
> It seems to me and my co-workers that the Flex compiler is broken when
> it comes to local variable scoping within methods.
>
> For example:
>
> for (var i:int=0; i<count; i++)
> {
> // do something
> }
>
> for (var i:int=0; i<count; i++)
> {
> // do something else
> }
>
> This gives a compiler warning stating that 'i' is already defined.
> But in every other language that I have used, this is completely
> valid. Yes 'i' was defined above, but 'i' should only be scoped
> within the 'for' loop and should be invalid outside of it.
>
> Another example:
>
> if (x)
> {
> var myArray:Array = new Array();
> // do more stuff
> }
>
> myArray.push("some data");
>
> This one compiles, when I believe that it shouldn't. myArray should
> only be defined within the 'if' statement. If you don't go into the
> 'if' statement you have a problem here.
>
> Does anyone understand why the Flex compiler allows this? Is this
> just a BUG with the compiler?
>
> Anyway, this is just driving me a little crazy. ;)
>
> Gary
>


Reply via email to