{"action":"created","issue":{"url":"https://api.github.com/repos/svaarala/duktape/issues/1027","repository_url":"https://api.github.com/repos/svaarala/duktape","labels_url":"https://api.github.com/repos/svaarala/duktape/issues/1027/labels{/name}","comments_url":"https://api.github.com/repos/svaarala/duktape/issues/1027/comments","events_url":"https://api.github.com/repos/svaarala/duktape/issues/1027/events","html_url":"https://github.com/svaarala/duktape/pull/1027","id":184133214,"number":1027,"title":"Add internal support for [[Get]]/[[Set]] receiver","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":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-10-20T04:35:33Z","updated_at":"2016-10-20T06:49:17Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/svaarala/duktape/pulls/1027","html_url":"https://github.com/svaarala/duktape/pull/1027","diff_url":"https://github.com/svaarala/duktape/pull/1027.diff","patch_url":"https://github.com/svaarala/duktape/pull/1027.patch"},"body":"Prerequisite for #1025, this pull adds a `tv_recv` argument for `duk_hobject_{get|put}prop()` which corresponds to the *Receiver* argument for [[Get]] and [[Set]], needed by several ES6+ algorithms and methods:\r\n* http://www.ecma-international.org/ecma-262/6.0/#sec-ordinary-object-internal-methods-and-internal-slots-get-p-receiver\r\n* http://www.ecma-international.org/ecma-262/6.0/#sec-ordinary-object-internal-methods-and-internal-slots-set-p-v-receiver\r\n\r\nChecklist:\r\n- [x] Add support for *Receiver* argument of [[Get]]\r\n- [ ] Add support for *Receiver* argument of [[Set]]\r\n- [x] RELEASES entry"},"comment":{"url":"https://api.github.com/repos/svaarala/duktape/issues/comments/255023338","html_url":"https://github.com/svaarala/duktape/pull/1027#issuecomment-255023338","issue_url":"https://api.github.com/repos/svaarala/duktape/issues/1027","id":255023338,"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-20T06:49:17Z","updated_at":"2016-10-20T06:49:17Z","body":"For ES6 [[Set]], two property descriptor lookups are required: Once for the target object, then again for the receiving object.  If either or both has `{writable:false}` then [[Set]] fails.\n\nI think it would be best to optimize for the case where Receiver === O, as that will be the common case and can avoid the second writability check entirely.  For now the only time this won't hold is when a receiver is passed to `Reflect.set()` which probably won't occur that often in real-world code."}}
{"actor":{"display_login":"fatcerberus"}}