Re: Number.isNaN

2012-12-18 Thread Olov Lassus
2012/12/14 Allen Wirfs-Brock al...@wirfs-brock.com BTW, I think there are probably other related issues that need to be discussed/resolved at that level. For example, is SameValue really want we want for Map/Set equivalence (the -0 different from +0 issue), did we agree to parameterize the

Re: Number.isNaN

2012-12-18 Thread gaz Heyes
On 14 December 2012 16:39, Allen Wirfs-Brock al...@wirfs-brock.com wrote: No, the whole point of Number.isNaN is to provide a definitively test for NaN number values which cannot be tested for in the usual way using ===. The definitiveness of the test would be lost if other values such a

Re: Number.isNaN

2012-12-18 Thread David Bruant
Le 18/12/2012 14:43, gaz Heyes a écrit : On 14 December 2012 16:39, Allen Wirfs-Brock al...@wirfs-brock.com mailto:al...@wirfs-brock.com wrote: No, the whole point of Number.isNaN is to provide a definitively test for NaN number values which cannot be tested for in the usual way

Re: URLs / subclassing JavaScript

2012-12-18 Thread Alex Russell
hey Anne, Sam! Comments inline: On Monday, December 17, 2012, Sam Tobin-Hochstadt wrote: On Mon, Dec 17, 2012 at 9:19 AM, Anne van Kesteren ann...@annevk.nljavascript:; wrote: If down the road we want to allow for the theoretical possibility of having all platform APIs implemented in

Re: URLs / subclassing JavaScript

2012-12-18 Thread Anne van Kesteren
On Tue, Dec 18, 2012 at 4:32 PM, Alex Russell slightly...@google.com wrote: Object.observe() is a notification, not interception, mechanism. Where we need to stratify an intercept, ES 6 Proxies are the mechanism we should lean on, but in the main, we should ALWAYS seek to avoid using them. That

Fwd: Function identity of non-configurable accessors

2012-12-18 Thread Mark S. Miller
[Reposted at David's request.] -- Forwarded message -- From: Mark S. Miller erig...@google.com Date: Tue, Dec 18, 2012 at 8:19 AM Subject: Re: Function identity of non-configurable accessors To: David Bruant bruan...@gmail.com On Tue, Dec 18, 2012 at 8:08 AM, David Bruant

Re: URLs / subclassing JavaScript

2012-12-18 Thread Allen Wirfs-Brock
On Dec 18, 2012, at 8:08 AM, Anne van Kesteren wrote: On Tue, Dec 18, 2012 at 4:32 PM, Alex Russell slightly...@google.com wrote: Object.observe() is a notification, not interception, mechanism. Where we need to stratify an intercept, ES 6 Proxies are the mechanism we should lean on, but in

Expressing that a property is non-deletable (was: Function identity of non-configurable accessors)

2012-12-18 Thread David Bruant
Hi, Le 18/12/2012 18:08, Brendan Eich a écrit : Mark S. Miller wrote: That could work, but because of its complexity, I'm leaning back towards the configurable data property that refuses to be configured approach. Is there a problem with that? It self-hosts fine. Certainly this is the

Re: Function identity of non-configurable accessors

2012-12-18 Thread Allen Wirfs-Brock
On Dec 15, 2012, at 2:51 PM, David Bruant wrote: Le 15/12/2012 16:14, David Bruant a écrit : Le 15/12/2012 15:49, Sam Tobin-Hochstadt a écrit : If I create a non-configurable property with a getter that I define (such as `() = 3`), I know that accessing the property will always produce a

Re: Function identity of non-configurable accessors

2012-12-18 Thread Allen Wirfs-Brock
On Dec 18, 2012, at 9:08 AM, Brendan Eich wrote: Mark S. Miller wrote: That could work, but because of its complexity, I'm leaning back towards the configurable data property that refuses to be configured approach. Is there a problem with that? It self-hosts fine. Certainly this is the

Re: Function identity of non-configurable accessors

2012-12-18 Thread Mark S. Miller
On Tue, Dec 18, 2012 at 9:38 AM, Allen Wirfs-Brock al...@wirfs-brock.com wrote: The whole whole idea of such invariants was a late addition to ES5, and not without some controversy. I don't think anyone believed that ES5 had a complete set of invariants or even what that might be. As part

8.2.4 The Reference Specification Type

2012-12-18 Thread John J Barton
I'm trying to decode section 8.2.4 The Reference Specification Type I believe that it is trying to say obj.prop = ... obj is reference base prop is reference name But base can also be Boolean, String, Number and env. record. I can't figure out what a reference name means in these cases. I

Re: Function identity of non-configurable accessors

2012-12-18 Thread Mark S. Miller
On Tue, Dec 18, 2012 at 10:23 AM, Allen Wirfs-Brock al...@wirfs-brock.com wrote: If we are only talking about the Global Object, we can probably accommodate almost anything by defining it as a special kind of exotic object. AFAICT, we are only talking about the global object, in order to deal

Re: Expressing that a property is non-deletable (was: Function identity of non-configurable accessors)

2012-12-18 Thread Andrea Giammarchi
{deletable: false} does not look that bad, semantically speaking ... you don't have to explain much what that would do in a property descriptor. Thing is, all others are false by default so you might want to chose same default for this property and in this case the name is wrong.

Bringing ES6 to programmers as soon as possible

2012-12-18 Thread Axel Rauschmayer
FWIW: This topic has been on my mind for a long time. I’ve finally written down my thoughts. Feedback welcome. http://www.2ality.com/2012/12/es6-workflow.html -- Dr. Axel Rauschmayer a...@rauschma.de home: rauschma.de twitter: twitter.com/rauschma blog: 2ality.com

Re: 8.2.4 The Reference Specification Type

2012-12-18 Thread Brandon Benvie
In that example obj itself would first have been a Reference with no base and the name obj which would resolve to an environment record. Then after prop would be another Reference with the resolved obj as its base and prop as the name. ___ es-discuss

Re: 8.2.4 The Reference Specification Type

2012-12-18 Thread Brandon Benvie
Er I was a bit unclear. It would look like: objReference = { base: undefined, name: obj }; Which would resolve to the object obj, on an environment record. objPropRefence = { base: IdentifierResolution(objReference), name: prop } On Tue, Dec 18, 2012 at 2:01 PM, Brandon Benvie

Re: Expressing that a property is non-deletable (was: Function identity of non-configurable accessors)

2012-12-18 Thread Mark S. Miller
I see no reason why this needs to be a reflected property. As to whether it is an exotic internal property or just prose, that is a specification expository issue for which I defer to Allen. But the spec only needs such extra state for the exotic global object. There's nothing general about it.

Re: Function identity of non-configurable accessors

2012-12-18 Thread Allen Wirfs-Brock
On Dec 18, 2012, at 10:34 AM, Mark S. Miller wrote: On Tue, Dec 18, 2012 at 9:38 AM, Allen Wirfs-Brock al...@wirfs-brock.com wrote: The whole whole idea of such invariants was a late addition to ES5, and not without some controversy. I don't think anyone believed that ES5 had a complete

Re: 8.2.4 The Reference Specification Type

2012-12-18 Thread Allen Wirfs-Brock
On Dec 18, 2012, at 10:42 AM, John J Barton wrote: I'm trying to decode section 8.2.4 The Reference Specification Type I believe that it is trying to say obj.prop = ... obj is reference base prop is reference name But base can also be Boolean, String, Number and env. record. I

Re: 8.2.4 The Reference Specification Type

2012-12-18 Thread Allen Wirfs-Brock
oops, I meant {base: 123.0, referenced name: toFixed, strict: false} below On Dec 18, 2012, at 11:39 AM, Allen Wirfs-Brock wrote: On Dec 18, 2012, at 10:42 AM, John J Barton wrote: I'm trying to decode section 8.2.4 The Reference Specification Type I believe that it is trying to say

Re: 8.2.4 The Reference Specification Type

2012-12-18 Thread John J Barton
On Tue, Dec 18, 2012 at 11:39 AM, Allen Wirfs-Brock al...@wirfs-brock.comwrote: ... I'r all in 8.2.4.1 and 8.2.4.2 (GetValue/SetValue). Consider an expression like: 123.0.toFixed This evaluates to a Reference value {base: 0, referenced name: toFixed, strict: false} (or strict is

Do Anonymous Exports Solve the Backwards Compatibility Problem?

2012-12-18 Thread Kevin Smith
At first glance, it seems like anonymous exports might provide a way for pre-ES6 (read: Node) modules and ES6 modules to coexist. After all: exports = function A() {}; just looks so much like: module.exports = function A() {}; But is that the case? Does this oddball syntax actually

Strawman page for ECMA 402 spec

2012-12-18 Thread Nebojša Ćirić
Hi all, since we have our namespace in the wiki (Globalization) we decided to put our strawman proposals there. I've created a new page - http://wiki.ecmascript.org/doku.php?id=globalization:strawman to hold them. I've started adding proposals there just to describe the overall structure of the

Re: A DOM use case that can't be emulated with direct proxies

2012-12-18 Thread Tom Van Cutsem
2012/12/12 Kevin Reid kpr...@google.com On Wed, Dec 12, 2012 at 12:35 PM, David Bruant bruan...@gmail.com wrote: I was a bit too strong in my statement, sorry. Let me rephrase: the internal [[Target]] can't be changed, but a proxy can emulate changing of fake target as long as what happens

Re: A DOM use case that can't be emulated with direct proxies

2012-12-18 Thread Tom Van Cutsem
2012/12/13 David Bruant bruan...@gmail.com Le 13/12/2012 20:47, Jason Orendorff a écrit : David: https://gist.github.com/4279162 I think this is what Kevin has in mind. Note in particular that the target of the Proxy is just a dummy object, and the handler ignores it entirely. The proxy

Re: URLs / subclassing JavaScript

2012-12-18 Thread Anne van Kesteren
On Tue, Dec 18, 2012 at 6:01 PM, Allen Wirfs-Brock al...@wirfs-brock.com wrote: It seems you either need to use a Proxy, some kind of wrapper method, or a custom implementation in most cases. Typically when objects akin to Map or Array are exposed in a platform API, mutating them has

Re: A DOM use case that can't be emulated with direct proxies

2012-12-18 Thread Tom Van Cutsem
2012/12/13 Kevin Reid kpr...@google.com Yes, exactly. I was just this minute in the process of writing such a proxy myself, and have not yet confirmed whether it is accepted by the invariant checks for all the cases I'm thinking of (testing against FF 18.0). Note that either (1) all the

Re: A DOM use case that can't be emulated with direct proxies

2012-12-18 Thread Tom Van Cutsem
2012/12/14 Mark S. Miller erig...@google.com On Fri, Dec 14, 2012 at 10:19 AM, Brendan Eich bren...@mozilla.com wrote: David Bruant wrote: Le 14/12/2012 08:25, Brendan Eich a écrit : window.location can be set by assignment to navigate to a new URL. location is [Unforgeable,

Proxies: wrong receiver used in default set trap

2012-12-18 Thread Tom Van Cutsem
Hi, Someone recently reported an issue [1] while using my harmony-reflect shim for direct proxies. The fix probably requires a change in the proxy specification. I'm unsure how to resolve it, so I thought I'd bring it to the list. The issue is as follows: consider a proxy with an empty handler:

Re: Proxies: wrong receiver used in default set trap

2012-12-18 Thread Allen Wirfs-Brock
I think it has to be A, for consistency with [[Call]]. Note that when [[Call]] is directly forwarded to the target, the this value is set to target. It wouldn't be self-consistent if directly forwarded foo.access and foo.method() invocations used different this values. I assume that by proxy

Re: URLs / subclassing JavaScript

2012-12-18 Thread Allen Wirfs-Brock
On Dec 18, 2012, at 1:36 PM, Anne van Kesteren wrote: On Tue, Dec 18, 2012 at 6:01 PM, Allen Wirfs-Brock al...@wirfs-brock.com wrote: It seems you either need to use a Proxy, some kind of wrapper method, or a custom implementation in most cases. Typically when objects akin to Map or Array