last about leaks:
class A {
constructor() {
return new String("");
}
}
class B extends A {
#secret = Math.random();
}
new B;
check the console and expand the String
reference:
secrets are not accessible but somehow inspectable and I doubt any developer would expect this to happen.
considering that "private fields can't be deleted" neither, this hack could cause issues, imho.
if fields were attached before the super()
executes, this leak wouldn't be possible.