My screw up. You are right, it should be treated as a var and run the getter on the assignment.

The code below has flaws and ASC and ES4 tricked me up in how they are reporting differently.

So my take from this is: ES4 doesn't allow method extraction of getters and setters. Though some
implementations may allow it through other means.

Michael


Peter Hall wrote:
ES4 needs to treat getter/setters identically to normal vars.
Otherwise it kind of defeats the point of having them.

I would expect:

      var fun = width;

to *invoke* the getter. In that particular case, I'd expect a compile
error because width can't be accessed from static scope, exactly as if
it was declared as a var.

If implementations want to also expose __get__ properties to access
the functions, then that is up to them, but I think it's quite
important that ES4 treats getter/setters exactly like variables.

Peter


On Feb 6, 2008 10:02 PM, Lars Hansen <[EMAIL PROTECTED]> wrote:
  
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]] On Behalf Of Michael O'Brien
Sent: 6. februar 2008 13:06
To: es4-discuss Discuss
Subject: Extracting getters and setters

Question about getters and setters.  Can you assign a getter
/ setter to a var and invoke later?  i.e. can you extract a
getter/setter method?

Consider:

class Shape {
    function get width(): int {
       return 1;
    }

    function set width(value: int): void {
    }

    /* Does this assign the getter or setter */
    var fun = width
}

var s: Shape = new Shape
s.fun()


ASC will extract the getter.
      
That's surprising to me.

    
But what should ES4 do? How can
you extract the getter or the setter or both?
      
I would like to argue you should not be able to.  Firefox has
facilities, methods called __getter__ and __setter__ IIRC, that extracts
them.  And I think that if ES4 allows them to be extracted that's the
only way to go.

    
Under the hood, is the width getter/setter to be stored as
one property or 2 and what is the property name?
      
It doesn't feel natural for the language spec to talk about that, esp if
it's not observable.

--lars

_______________________________________________
Es4-discuss mailing list
Es4-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es4-discuss

    

  
_______________________________________________
Es4-discuss mailing list
Es4-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es4-discuss

Reply via email to