This fixes an issue where state bleed from the parent to the child

What do you think about the `Object.create(Object.assign({}, RenderMode, ...` pattern we discussed instead? Too weird? I guess all it does is avoid the verbose property syntax of defineProperty, which looked a little cleaner / more ES6 like to me.