Here's an alternative - enforces a classical inheritance-looking structure, but it's really nice. https://github.com/marcuswestin/std-js/blob/master/lib/Class.js Inheritance, super calls, instanceof etc all works as expected.
Yeah, that's pretty snazzy. Inherits is basically just a wrapper around Foo.prototype = Object.create(Bar.prototype), but with some support for keeping the constructor property and anything that was added before calling it. As I was splitting up the node-tap lib into multiple child projects, it seemed best to just make this its own thing.
Foo.prototype = Object.create(Bar.prototype)