Currently, a JS class can inherit from a Rust class, a Js class can inherit from a JS class, but a Rust class cannot inherit from anything other than the base prototype.
This has been broken for at least a year, likely forever. Rust classes (specifically JsClass implementors), cannot specify a base class anywhere.
Two things might need some consideration:
- can
downcast_ref be broken if the same JsClass implementor appears twice in the prototype chain?
- there are multiple specifications of prototype property in JsObject and JsPrototype. It's confusing, but necessary (prototype of constructor and prototype of instances). They have separate properties/arguments now when creating new objects, but it's unclear if they even work the way they're supposed to.
Either of those can change the public API, so I'm marking it as blocking 1.0.
Currently, a JS class can inherit from a Rust class, a Js class can inherit from a JS class, but a Rust class cannot inherit from anything other than the base prototype.
This has been broken for at least a year, likely forever. Rust classes (specifically
JsClassimplementors), cannot specify a base class anywhere.Two things might need some consideration:
downcast_refbe broken if the sameJsClassimplementor appears twice in the prototype chain?Either of those can change the public API, so I'm marking it as blocking 1.0.