// https://gist.github.com/dmethvin/1676346#gistcomment-1732477
function debugAccess(obj, prop, debugGet) {
var origValue = obj[prop]
Object.defineProperty(obj, prop, {
get() {
if (debugGet) debugger
return origValue
},
set(val) {
return (origValue = val)
},
})
}
// can walk prototype too
function allProperties(obj) {
return Object.getOwnPropertyNames(obj)
.concat(Object.getOwnPropertySymbols(obj))
.concat(Object.keys(obj))
}
function wrapEntireObj(obj) {
allProperties(obj).map(prop => debugAccess(obj, prop))
}