EDIT (2021): TC39, which specifies JavaScript still hasn’t resolved exactly how this is supposed to work. That needs to happen before browsers can consistently implement it. You can follow the latest efforts here.
Original answer:
Instantiating such classes is meant to work; Chrome and Firefox just have bugs. Here’s Chrome’s, here’s Firefox’s. It works fine in Safari (at least on master).
There used to be a bug in the spec which made them impossible to instantiate, but it’s been fixed for a while. (There’s still a related one, but that’s not what you’re seeing.)
The use case is roughly the same as that of Object.create(null)
. Sometimes you want something which doesn’t inherit from Object.prototype
.