It's not adding property, it's overwriting `changeObj`'s `toString()` default behavior.
Before this overwriting, `[{text:'daw'},'a','x','<Right>'].join('\n')` == `[Object Object]ax<Right>`
After this overwriting, `[{text:'daw'},'a','x','<Right>'].join('\n')` == `dawax<Right>`
It doesn't seem like, there's other way of doing it.