On Jun 17, 2014, at 5:22 PM, Allen Wirfs-Brock wrote:
>
> On Jun 17, 2014, at 4:44 PM, Brendan Eich wrote:
>
>> ... especially since I missed the hideous Number special-casing spread
>> around in the draft!
>
> could you be a bit more specific about what you are referring to?
Never mind, I think I know what you mean. You mean, the already initialized
checks which fall out of objects having distinct allocation and initialization
functions. Those checks only occur in functions that directly access private
internal state of built-in oibjects.
Such methods typically have a prologue that look something like this:
• 1. Let M be the this value.
• 2. If Type(M) is not Object, then throw a TypeError exception.
• 3. If M does not have a [[MapData]] internal slot throw a
TypeError exception.
• 4. If M’s [[MapData]] internal slot is undefined, then throw a
TypeError exception.
The fourth step could probably be eliminated under Jason's proposal, the other
would still be needed. One of the things we need to explore is whether we
loose would loose any important subclass flexibility by tightly couple
allocation and initialization again. The 'super' must be first issue is at the
forefront of that question.
Allen
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss