<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
My screw up. You are right, it should be treated as a var and run the
getter on the assignment.<br>
<br>
The code below has flaws and ASC and ES4 tricked me up in how they are
reporting differently.<br>
<br>
So my take from this is: ES4 doesn't allow method extraction of getters
and setters. Though some <br>
implementations may allow it through other means.<br>
<br>
Michael<br>
<br>
<br>
Peter Hall wrote:
<blockquote
 cite="mid:9ac110a90802061509s67fa47e5p19da41d4c0610efe@mail.gmail.com"
 type="cite">
  <pre wrap="">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 <a class="moz-txt-link-rfc2396E" href="mailto:lhansen@adobe.com">&lt;lhansen@adobe.com&gt;</a> wrote:
  </pre>
  <blockquote type="cite">
    <blockquote type="cite">
      <pre wrap="">-----Original Message-----
From: <a class="moz-txt-link-abbreviated" href="mailto:es4-discuss-bounces@mozilla.org">es4-discuss-bounces@mozilla.org</a>
[<a class="moz-txt-link-freetext" href="mailto:es4-discuss-bounces@mozilla.org">mailto:es4-discuss-bounces@mozilla.org</a>] 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.
      </pre>
    </blockquote>
    <pre wrap="">That's surprising to me.

    </pre>
    <blockquote type="cite">
      <pre wrap="">But what should ES4 do? How can
you extract the getter or the setter or both?
      </pre>
    </blockquote>
    <pre wrap="">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.

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

--lars

_______________________________________________
Es4-discuss mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Es4-discuss@mozilla.org">Es4-discuss@mozilla.org</a>
<a class="moz-txt-link-freetext" href="https://mail.mozilla.org/listinfo/es4-discuss">https://mail.mozilla.org/listinfo/es4-discuss</a>

    </pre>
  </blockquote>
  <pre wrap=""><!---->
  </pre>
</blockquote>
</body>
</html>