Well, JavaScript lets you attach extra properties to any object, so the fact that a property named extra
is no longer in the C3 runtime shouldn't stop you - you can just put extra properties directly on the object (so long as the names are unique). However I would advise to use a WeakMap instead, as a better and more modern way of tracking custom state with other objects in JavaScript. You can use the object you want to add state to as a key, and an object with all your custom properties as a value, and because it's a weak map your custom state will get garbage collected at the same time as the other object and so not leak memory.