That's for JSBinding codes. We could manage it and make sure that `userObject` is `dict`.
JS code should never invoke `Node::setUserObject | setUserData` since it's easy for js to add extra properties to an object.