Gareth Smith (2013-05-09T10:48:40.000Z)
github at esdiscuss.org (2013-07-12T02:27:21.328Z)
Andrea: Thanks for your quick reply! I think I understand what you just told me, but would like to clarify to be sure: Am I right in thinking that you believe that to correctly interpret the for-in/Ennumerate section of the spec/draft (ES5:12.6.4 , ES6:8.3.12) we should treat the phrases "property" and "property name" as interchangeable in those sections? I certainly think I agree with the good sense of making an implementation behave the way you have described, but am particularly interested in exactly what is and isn't expressly forbidden by the published standard. I think you're telling me that if I write an implementation which chooses to skip the enumeration of x in either of my original examples, I will be in violation of the published standard. What I'm trying to understand now is how I should read the letter of the standards documents in order to arrive at this conclusion. Am I right in thinking that the phrases "property" and "property name" should be treated interchangeably in these sections, or is there some other phrasing or implied intent that I've misunderstood? Should I submit versions of my original two examples as test262 cases, which check that x definitely is enumerated? I apologise for the unusual slant of my questions. I'm not writing an ECMAScript implementation (not one intended for deployment anyway), nor am I asking exclusively about the behaviour of existing implementations. I'm part of an academic effort to formalise the existing specification in the Coq proof assistant, so I am forced to care about the detail of which particular implementation behaviours are allowed or disallowed by which particular phrases in the published standard. If we can't pin these behaviours on particular phrases in the published standard, then I'm very interested in existing community consensus.