I'm wondering if the following is in compliance with the ES6 spec:
class X {
constructor(name) {
this._name = name;
}
get name() {
return this._name;
}
set name(name) {
this._name = name + "X";
}
}
class Y extends X {
constructor(name) {
super(name);
}
set name(name) {
super.name = name;
this._name += "Y";
}
}
The idea is that let y = new Y(""); y.name = "hi"
should result in y.name === "hiXY"
being true.
As far as I can tell, this doesn't work in Chrome with the ES6 flag turned on. It also doesn't work using Babel with the es2015
flag. Is using super.name = ...
in an inherited setter not part of the ES6 spec? Or is this a bug in the implementation of Babel?