They work like I suggest; but they aren’t implemented efficiently yet. The reason is that they don’t do full property assignments, but defineProperty. We don’t have fast paths for that yet. We’re working on it though.
Most importantly, we have full control over how they are set up and will make them as fast as possible.
I’m a strong proponent of being very declarative: if you tell us what you want to do we don’t need to figure it out and can optimize for it with much less overhead. If you want classes, use ES6 classes. If you want maps and sets, use ES6 maps and sets.