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.

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 Schoultz

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 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 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 could

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 reintroduce

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

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 prev

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 two

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

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 SpiderMonkey.

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 as

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 intended

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 static

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 the

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