Allen Wirfs-Brock allen at wirfs-brock.com
Tue Jun 17 17:47:37 PDT 2014

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. 


More information about the es-discuss mailing list