{"action":"created","issue":{"url":"https://api.github.com/repos/svaarala/duktape/issues/1025","repository_url":"https://api.github.com/repos/svaarala/duktape","labels_url":"https://api.github.com/repos/svaarala/duktape/issues/1025/labels{/name}","comments_url":"https://api.github.com/repos/svaarala/duktape/issues/1025/comments","events_url":"https://api.github.com/repos/svaarala/duktape/issues/1025/events","html_url":"https://github.com/svaarala/duktape/pull/1025","id":183600069,"number":1025,"title":"Implement built-in Reflect object (ES6+)","user":{"login":"fatcerberus","id":4097841,"avatar_url":"https://avatars.githubusercontent.com/u/4097841?v=3","gravatar_id":"","url":"https://api.github.com/users/fatcerberus","html_url":"https://github.com/fatcerberus","followers_url":"https://api.github.com/users/fatcerberus/followers","following_url":"https://api.github.com/users/fatcerberus/following{/other_user}","gists_url":"https://api.github.com/users/fatcerberus/gists{/gist_id}","starred_url":"https://api.github.com/users/fatcerberus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fatcerberus/subscriptions","organizations_url":"https://api.github.com/users/fatcerberus/orgs","repos_url":"https://api.github.com/users/fatcerberus/repos","events_url":"https://api.github.com/users/fatcerberus/events{/privacy}","received_events_url":"https://api.github.com/users/fatcerberus/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/svaarala/duktape/labels/es6","name":"es6","color":"bfe5bf"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":22,"created_at":"2016-10-18T06:23:27Z","updated_at":"2016-10-20T11:56:56Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/svaarala/duktape/pulls/1025","html_url":"https://github.com/svaarala/duktape/pull/1025","diff_url":"https://github.com/svaarala/duktape/pull/1025.diff","patch_url":"https://github.com/svaarala/duktape/pull/1025.patch"},"body":"_Work in progress._\r\n\r\nImplement the built-in `Reflect` object, first introduced with Ecmascript 2015 (ES6).  Concrete implementation based on the latest Ecmascript standard at the time of writing (2016/ES7).\r\n\r\nNew Ecmascript calls introduced:\r\n* `Reflect.apply()`\r\n* `Reflect.construct()`\r\n* `Reflect.defineProperty()`\r\n* `Reflect.deleteProperty()`\r\n* `Reflect.get()`\r\n* `Reflect.getOwnPropertyDescriptor()`\r\n* `Reflect.getPrototypeOf()`\r\n* `Reflect.has()`\r\n* `Reflect.isExtensible()`\r\n* `Reflect.ownKeys()`\r\n* `Reflect.preventExtensions()`\r\n* `Reflect.set()`\r\n* `Reflect.setPrototypeOf()`\r\n\r\n`Reflect.enumerate()` will **NOT** be implemented.  It was dropped in ES7 for placing too many constraints on Ecmascript implementors, see this GitHub issue:\r\nhttps://github.com/tc39/ecma262/issues/161\r\n\r\nChecklist:\r\n- [x] Implement `Reflect`, all ES7 methods\r\n- [ ] Update `Object` equivalents to match ES7 (ToObject coercion vs TypeError)\r\n- [ ] Testcases for all `Reflect` methods\r\n- [ ] Feed the pig before it eats everyone\r\n- [ ] Website changes for new feature\r\n- [x] RELEASES entry"},"comment":{"url":"https://api.github.com/repos/svaarala/duktape/issues/comments/255085422","html_url":"https://github.com/svaarala/duktape/pull/1025#issuecomment-255085422","issue_url":"https://api.github.com/repos/svaarala/duktape/issues/1025","id":255085422,"user":{"login":"fatcerberus","id":4097841,"avatar_url":"https://avatars.githubusercontent.com/u/4097841?v=3","gravatar_id":"","url":"https://api.github.com/users/fatcerberus","html_url":"https://github.com/fatcerberus","followers_url":"https://api.github.com/users/fatcerberus/followers","following_url":"https://api.github.com/users/fatcerberus/following{/other_user}","gists_url":"https://api.github.com/users/fatcerberus/gists{/gist_id}","starred_url":"https://api.github.com/users/fatcerberus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fatcerberus/subscriptions","organizations_url":"https://api.github.com/users/fatcerberus/orgs","repos_url":"https://api.github.com/users/fatcerberus/repos","events_url":"https://api.github.com/users/fatcerberus/events{/privacy}","received_events_url":"https://api.github.com/users/fatcerberus/received_events","type":"User","site_admin":false},"created_at":"2016-10-20T11:56:56Z","updated_at":"2016-10-20T11:56:56Z","body":"Regarding `Reflect.get/set()` and #1027: I'd be fine with merging this without support for a receiver, but in that case it has to be very well documented that the optional last argument is not supported, because it completely changes the meaning of any call to `get()` or `set()` that includes it.  Accessors will get the wrong `this` value, and redirection of property writes will not work at all which will definitely surprise any calling code that relies on it."}}
{"actor":{"display_login":"fatcerberus"}}