--- !ditz.rubyforge.org,2008-03-06/issue title: "Proxy: custom feature allowing target and proxy to be the same" desc: |- This would correspond somewhat to Lua metatables; metatable is recorded in the object itself. This saves one extra object at the cost of complicating some of the algorithms (e.g. ES6 algorithms lookup properties also from the target - same as the proxy in this case). A simple approach would be to: * Set the DUK_HOBJECT_FLAG_SPECIAL_PROXYOBJ for either kind of proxy. * Indicate a revoked proxy with _handler = null. * Indicate a custom proxy (target == proxy) by having _handler != null and _target = null. This is used for revocation detection now, but using only the _handler reference for revocation should be enough. This is also nice in that the _handler and _target properties need to be looked up anyway. Another approach would be to use another object flag, but there is some pressure to keep flag count in check (there are only a few free flags right now). type: :task component: duk release: v0.12 reporter: Sami Vaarala status: :unstarted disposition: creation_time: 2014-04-28 10:09:02.887074 Z references: [] id: c2c0f091a515a1996db136eb3d126ed80407f651 log_events: - - 2014-04-28 10:09:03.062982 Z - Sami Vaarala - created - "" - - 2014-06-11 16:02:26.282116 Z - Sami Vaarala - assigned to release v0.12 from v0.11 - ""