{"action":"created","issue":{"url":"https://api.github.com/repos/ljharb/proposal-object-values-entries/issues/5","labels_url":"https://api.github.com/repos/ljharb/proposal-object-values-entries/issues/5/labels{/name}","comments_url":"https://api.github.com/repos/ljharb/proposal-object-values-entries/issues/5/comments","events_url":"https://api.github.com/repos/ljharb/proposal-object-values-entries/issues/5/events","html_url":"https://github.com/ljharb/proposal-object-values-entries/issues/5","id":109854873,"number":5,"title":"Review notes","user":{"login":"anba","id":1447066,"avatar_url":"https://avatars.githubusercontent.com/u/1447066?v=3","gravatar_id":"","url":"https://api.github.com/users/anba","html_url":"https://github.com/anba","followers_url":"https://api.github.com/users/anba/followers","following_url":"https://api.github.com/users/anba/following{/other_user}","gists_url":"https://api.github.com/users/anba/gists{/gist_id}","starred_url":"https://api.github.com/users/anba/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anba/subscriptions","organizations_url":"https://api.github.com/users/anba/orgs","repos_url":"https://api.github.com/users/anba/repos","events_url":"https://api.github.com/users/anba/events{/privacy}","received_events_url":"https://api.github.com/users/anba/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-10-05T18:14:32Z","updated_at":"2015-10-06T08:43:40Z","closed_at":"2015-10-06T08:26:49Z","body":"http://ljharb.github.io/proposal-object-values-entries/#EnumerableOwnProperties\r\n\r\nStep 5.a.iii.2.a is redundant, key is always a string.\r\n\r\n\r\nThe polyfill needs to use Object.getOwnPropertyNames and Object.prototype.propertyIsEnumerable instead of Object.keys and Object.prototype.hasOwnProperty to be compliant to the specification text.\r\n\r\nAnd there is also a typo in Object.entries, `[[k, O[k]]` should be `[k, O[k]]`:\r\n\r\n```javascript\r\nconst ownNames = Object.getOwnPropertyNames;\r\nconst reduce = Function.bind.call(Function.call, Array.prototype.reduce);\r\nconst isEnumerable = Function.bind.call(Function.call, Object.prototype.propertyIsEnumerable);\r\nconst concat = Function.bind.call(Function.call, Array.prototype.concat);\r\n\r\nif (!Object.values) {\r\n    Object.values = function values(O) {\r\n        return reduce(ownNames(O), (v, k) => concat(v, isEnumerable(O, k) ? [O[k]] : []), []);\r\n    };\r\n}\r\n\r\nif (!Object.entries) {\r\n    Object.entries = function entries(O) {\r\n        return reduce(ownNames(O), (e, k) => concat(e, isEnumerable(O, k) ? [k, O[k]] : []), []);\r\n    };\r\n}\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/ljharb/proposal-object-values-entries/issues/comments/145785445","html_url":"https://github.com/ljharb/proposal-object-values-entries/issues/5#issuecomment-145785445","issue_url":"https://api.github.com/repos/ljharb/proposal-object-values-entries/issues/5","id":145785445,"user":{"login":"ljharb","id":45469,"avatar_url":"https://avatars.githubusercontent.com/u/45469?v=3","gravatar_id":"","url":"https://api.github.com/users/ljharb","html_url":"https://github.com/ljharb","followers_url":"https://api.github.com/users/ljharb/followers","following_url":"https://api.github.com/users/ljharb/following{/other_user}","gists_url":"https://api.github.com/users/ljharb/gists{/gist_id}","starred_url":"https://api.github.com/users/ljharb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ljharb/subscriptions","organizations_url":"https://api.github.com/users/ljharb/orgs","repos_url":"https://api.github.com/users/ljharb/repos","events_url":"https://api.github.com/users/ljharb/events{/privacy}","received_events_url":"https://api.github.com/users/ljharb/received_events","type":"User","site_admin":false},"created_at":"2015-10-06T08:43:40Z","updated_at":"2015-10-06T08:43:40Z","body":"That test case isn't actually guaranteed to pass by the spec. There's a specific note already in the spec: \"any added property during enumeration is not guaranteed to be included in the output\" - I'll refine this to be \"any property added or marked enumerable during enumeration\" to be clearer."}}