The thing that worries me about configurability is that it allows something to become an accessor. I was following the path of "prototype" when deciding on non-configurability for "name". Essentially: preventing arbitrary code from executing when accessing this thing.
I'm not married to this restriction, I just wanted to following real world implementations as closely as possible. If implementors have no issue then I don't. But figured every difference between existing implementations and the spec was an additional barrier to my idea becoming realistic reality. On Aug 30, 2013, at 9:34 PM, Brendan Eich <[email protected]> wrote: > Mark and I discussed this privately a while back. We would rather use the > same attribute pair for both. Is non-writable configurable ok? I argued that > for name it is onerous to require Object.defineProperty calls, e.g., from > Cappuccino when compiling Objective-J into JS, to fix up every function's > name to tell its Obj-J pathname. But you wrote the name proposal -- you > should weigh in and even call this shot! > > /be > >> Brandon Benvie <mailto:[email protected]> >> August 30, 2013 11:39 AM >> Part of the function name proposal submitted would make "name" writable but >> not configurable, which is the inverse of the current spec for "length" >> being configurable but not writable. Seems there needs to be some discussion >> on what attributes should be where. >> >> On Aug 30, 2013, at 7:36 PM, "Mark S. Miller" <[email protected] >> <mailto:[email protected]>> wrote: >> >>> Cool. In that case we have more freedom. In any case, we should give both >>> of these the same attributes. >>> >>> >>> On Fri, Aug 30, 2013 at 10:34 AM, Claude Pache <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> >>> Le 30 août 2013 à 18:54, "Mark S. Miller" <[email protected] >>> <mailto:[email protected]>> a écrit : >>> >>> > It seems we have legacy saying that "name" should be writable. >>> > >>> >>> Really? Just tried in the console of the latest stable versions >>> of Firefox, Safari, Chrome and IE: >>> >>> ``` >>> Object.getOwnPropertyDescriptor(function() {}, 'name') >>> ``` >>> >>> Firefox, Safari and Chrome: `{value: "", writable: false, >>> enumerable: false, configurable: false}` >>> IE: `undefined` >>> >>> —Claude >>> >>> >>> >>> >>> -- >>> Cheers, >>> --MarkM >>> _______________________________________________ >>> es-discuss mailing list >>> [email protected] <mailto:[email protected]> >>> https://mail.mozilla.org/listinfo/es-discuss >> Brendan Eich <mailto:[email protected]> >> August 30, 2013 9:34 AM >> Allen probably could use a bug on file at bugs.ecmascript.org -- anyone? >> >> /be >> >> _______________________________________________ >> es-discuss mailing list >> [email protected] >> https://mail.mozilla.org/listinfo/es-discuss >> >> Claude Pache <mailto:[email protected]> >> August 30, 2013 5:35 AM >> The `uncurryThis` metafunction, given as example in [1], needs to correct >> the length of a function produced by `bind`. Simplified version: >> >> ``` >> uncurryThis = f => Function.protytpe.call.bind(f) // uncurryThis(f).length >> == 1 instead of f.length + 1 >> ``` >> >> So, yes, `bind` should produce functions with mutable length. >> >> —Claude >> >> [1] http://www.mail-archive.com/[email protected]/msg21786.html >> >> >> _______________________________________________ >> es-discuss mailing list >> [email protected] >> https://mail.mozilla.org/listinfo/es-discuss >> >> Brandon Benvie <mailto:[email protected]> >> August 30, 2013 3:54 AM >> The latest spec revision makes the function "length" property configurable >> (section 8.3.16.6). Function.prototype.bind (15.3.3.5) still produces >> functions with non-configurable "length", however. I think this may be an >> oversight, but I'm not sure. >> _______________________________________________ >> es-discuss mailing list >> [email protected] >> https://mail.mozilla.org/listinfo/es-discuss >> _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

