I believe there is some "type" confusion in the proxy proposal spec wrt property descriptors and their reification into attributes objects.
1. In a note on the def of [[DefineOwnProperty]] for proxies, the proposal says: "The Desc argument to this trap is a property descriptor object validated by ToPropertyDescriptor, except that it also retains any non-standard attributes present in the original property descriptor passed to Object.defineProperty. See the semantics of the modified Object.defineProperty built-in, below." That seems fishy, since according to ES5 8.10: "Values of the Property Descriptor type are records composed of named fields where each fieldās name is an attribute name and its value is a corresponding attribute value as specified in 8.6.1." In particular, I take this to mean that property descriptors are not objects (but abstract records), and that there cannot be any fields whose name is not an attribute name. (In fact, in V8 we currently encode property descriptors using objects, but the encoding is different from the reified attributes object representation, and not quite compatible with the idea of adding arbitrary other fields.) 2. In the modified definition of Object.defineProperty, the proposal says in step 4.c: "Call the [[DefineOwnProperty]] internal method of O with arguments name, descObj, and true." This is passing descObj, which in fact is _not_ a descriptor, but its reification as an attributes object. /Andreas _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss