incubator-flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Desai, Ashish S" <ashish.s.de...@jpmorgan.com>
Subject RE: Odd undefined property via reference to static type compilation error
Date Mon, 09 Jul 2012 19:14:48 GMT
Different decompiler can give different results. Somehow what you gave in source happens to
work. Even this works

private static var myvarfirst:String = "testing";

private var myVar:String = this.myvarfirst;

It allows assigning static values in non-static way and non-static values in static way. Java
allows both ways below:

    private String s3 = "jpm";
    private String s2 =s3;

    private static String s3 = "jpm";
    private String s2 = this.s3;

Thanks,
Ashish


-----Original Message-----
From: omuppi1@gmail.com [mailto:omuppi1@gmail.com] On Behalf Of Om
Sent: Monday, July 09, 2012 3:05 PM
To: flex-dev@incubator.apache.org
Subject: Re: Odd undefined property via reference to static type compilation error

FWIW, I ran the compiled code through a decompiler and this is how the same code gets converted
as:

*Source*:

package
{
    public class A
    {

        public var minHeight:Number = 9;
        public var minHeight2:Number = minHeight;

    }
}

*After decompilation*:

package
{
        public class A
        {
                public function A()
                {
                        this.minHeight2 = this.minHeight;
                }
                public var minHeight2:Number;
                public var minHeight:Number = 9;
        }
}


Next, I tried this (compiles fine):

*Source:*

package
{
    public class A
    {

        public var minHeight:Number = 9;
        public var minHeight2:Number = this["minHeight"];

    }
}

*After decompilation:*

package
{
        public class A
        {
                public function A()
                {
                        this.minHeight2 = this['minHeight'];
                }
                public var minHeight2:Number;
                public var minHeight:Number = 9;
        }
}


Not sure if we learned something here, but it just makes it more interesting :-)

Om


On Mon, Jul 9, 2012 at 11:34 AM, Ryan Frishberg <frishy@gmail.com> wrote:

> In ActionScript, it looks like this doesn't work:
>
> class A
> {
>
> public var minHeight:Number = 9;
>
> protected var minHeight2:Number = this.minHeight;
>
> }
>
> Someone who knows ActionScript in more detail can probably explain why 
> the compilter/runtime can't figure out what "this" should refer to 
> when initializing class properties.
>
> -Ryan
>
> On Wed, Jul 4, 2012 at 5:53 PM, Justin Mclean 
> <justin@classsoftware.com
> >wrote:
>
> > Hi,
> >
> > > BTW, is this an issue in Adobe Flex 4.6 as well?
> > Yep issue with both 4.6 and 4.8 and couldn't find an existing JIRA 
> > report for it.
> >
> > Justin
>
This email is confidential and subject to important disclaimers and
conditions including on offers for the purchase or sale of
securities, accuracy and completeness of information, viruses,
confidentiality, legal privilege, and legal entity disclaimers,
available at http://www.jpmorgan.com/pages/disclosures/email.  

Mime
View raw message