The question is pretty simple but seems like this is impossible with the current implementation of Object.observe. Imagine :
var obj = { foo: 1 }
Object.observe(obj, function (changes) {
console.log(changes)
})
obj.foo = 2
This will log an object with the changes I've made, as expected. So the question is how can I change the property without this side effect?