Opt-in versioning (was: Re: Surprising semantics)

2008-07-18 Thread Brendan Eich
On Jul 18, 2008, at 6:41 PM, Waldemar Horwat wrote: We've been down this road before, and the arguments you present have been hashed out over years. This approach doesn't work. Read the archives of the ES4 group. Specifically, from the March 2008 meeting: * ES3.1 and ES4 will both allow

Re: Surprising semantics

2008-07-18 Thread Waldemar Horwat
We've been down this road before, and the arguments you present have been hashed out over years. This approach doesn't work. Read the archives of the ES4 group. The problem is that you then get a plethora of ways to define things: var const function type namespace let let const let function l

Re: ES3.1 Object static methods rationale document

2008-07-18 Thread Garrett Smith
On Fri, Jul 18, 2008 at 2:02 PM, Allen Wirfs-Brock <[EMAIL PROTECTED]> wrote: >> -Original Message- >> From: [EMAIL PROTECTED] [mailto:es4-discuss- >> [EMAIL PROTECTED] On Behalf Of Garrett Smith >> Sent: Friday, July 18, 2008 12:28 PM > ... >> You're prev response seems to have come from t

Re: ES3.1 Object static methods rationale document

2008-07-18 Thread Garrett Smith
On Fri, Jul 18, 2008 at 12:40 PM, John Resig <[EMAIL PROTECTED]> wrote: > >> You're prev response seems to have come from the discussion of >> Object.create. > > No? We've been discussing the viability of a new Object.extend() method to be > introduced in ES3.1. The title of the thread is "object

RE: ES3.1 Object static methods rationale document

2008-07-18 Thread Allen Wirfs-Brock
> -Original Message- > From: Garrett Smith [mailto:[EMAIL PROTECTED] > Sent: Friday, July 18, 2008 10:31 AM ... > > > > Neither Object.create nor Object.clone was not intended to be a > directly replacement for Object.extend. > Make that: Neither Object.create or Object.clone were

RE: ES3.1 Object static methods rationale document

2008-07-18 Thread Allen Wirfs-Brock
> -Original Message- > From: [EMAIL PROTECTED] [mailto:es4-discuss- > [EMAIL PROTECTED] On Behalf Of Garrett Smith > Sent: Friday, July 18, 2008 12:28 PM ... > You're prev response seems to have come from the discussion of > Object.create. Object.create, with only one argument, is the same

RE: ES3.1 Object static methods rationale document

2008-07-18 Thread Allen Wirfs-Brock
> -Original Message- > From: [EMAIL PROTECTED] [mailto:es4-discuss- > [EMAIL PROTECTED] On Behalf Of John Resig > > No? We've been discussing the viability of a new Object.extend() method > to be introduced in ES3.1. Mozilla has offered a proposal and is > looking to implement it in SpiderM

Re: ES3.1 Object static methods rationale document

2008-07-18 Thread John Resig
> You're prev response seems to have come from the discussion of > Object.create. No? We've been discussing the viability of a new Object.extend() method to be introduced in ES3.1. Mozilla has offered a proposal and is looking to implement it in SpiderMonkey. I provided examples of Object.exte

Re: ES3.1 Object static methods rationale document

2008-07-18 Thread Garrett Smith
On Wed, Jul 16, 2008 at 5:50 PM, Maciej Stachowiak <[EMAIL PROTECTED]> wrote: > > On Jul 16, 2008, at 4:10 PM, Allen Wirfs-Brock wrote: > [snip] > > 1) It seems like Object.clone as you have described it is not suitable > for the "mixin" type use case where an object gets properties/methods > from

Re: ES3.1 Object static methods rationale document

2008-07-18 Thread Garrett Smith
On Fri, Jul 18, 2008 at 10:56 AM, John Resig <[EMAIL PROTECTED]> wrote: > >> Not true. YAHOO.lang.extend uses prototypal inheritance. > > YAHOO.lang.extend is similar in name only - YAHOO.lang.augmentObject is the > one that's actually similar to the functionality used by other code bases. > You'

Re: ES3.1 Object static methods rationale document

2008-07-18 Thread John Resig
> Not true. YAHOO.lang.extend uses prototypal inheritance. YAHOO.lang.extend is similar in name only - YAHOO.lang.augmentObject is the one that's actually similar to the functionality used by other code bases. --John ___ Es4-discuss mailing list Es4-d

Re: ES3.1 Object static methods rationale document

2008-07-18 Thread Garrett Smith
On Fri, Jul 18, 2008 at 7:39 AM, Allen Wirfs-Brock <[EMAIL PROTECTED]> wrote: > John, > > Thanks for pulling together all the various versions of Object.extend. Not all. > It's useful to have them in one place. > > There are a couple of things you mentioned that I wanted to clarify. > > Neither O

Re: ES3.1 Object static methods rationale document

2008-07-18 Thread Igor Bukanov
2008/7/18 Allen Wirfs-Brock <[EMAIL PROTECTED]>: > We ultimately concluded that the best way to think about what we are > currently provide is that it is a set of primitive mechanisms that could be > used to build higher level reflection facilities. If we had a strong use case > we could reintro

Re: ES3.1 Object static methods rationale document

2008-07-18 Thread Brendan Eich
On Jul 18, 2008, at 9:02 AM, Allen Wirfs-Brock wrote: > We ultimately concluded that the best way to think about what we > are currently provide is that it is a set of primitive mechanisms > that could be used to build higher level reflection facilities. If > we had a strong use case we coul

RE: ES3.1 Object static methods rationale document

2008-07-18 Thread Allen Wirfs-Brock
Object.getProperties and Object.getOwnProperties were part of the early design of thiss set of functions. See for example, the June 24 draft at http://wiki.ecmascript.org/doku.php?id=es3.1:es3.1_proposal_working_draft I proposed removing them, because I felt that they were starting to impinge

Re: ES3.1 Object static methods rationale document

2008-07-18 Thread Igor Bukanov
2008/7/18 Allen Wirfs-Brock <[EMAIL PROTECTED]>: > Collectively, > getOwnProperty,defineProperties/defineProperty,getOwnPropertyNames,getPrototypeOf > are intended to provide all the mechanisms necessary to build any of these > variants to extent or any other model of property manipulation using

Re: ES3.1 Object static methods rationale document

2008-07-18 Thread Ingvar von Schoultz
Allen Wirfs-Brock wrote: > Object.create's heritage is Doug Crockford's beget function and its primary > purpose is to provide a more direct way to create an object with an > explicitly specified prototype. I think the name Object.createHeir would clarify its use better. -- Ingvar von Schoult

RE: ES3.1 Object static methods rationale document

2008-07-18 Thread Allen Wirfs-Brock
John, Thanks for pulling together all the various versions of Object.extend. It's useful to have them in one place. There are a couple of things you mentioned that I wanted to clarify. Neither Object.create nor Object.clone was not intended to be a directly replacement for Object.extend. The