* Private Static Class Fields Implementation * Redo testing without class transform for static private * Add a call() test for private static * Use Object.defineProperty in loose mode
42 lines
845 B
JavaScript
42 lines
845 B
JavaScript
class Base {
|
|
static getThis() {
|
|
return babelHelpers.classStaticPrivateFieldLooseBase(this, Base)._foo;
|
|
}
|
|
|
|
static updateThis(val) {
|
|
return babelHelpers.classStaticPrivateFieldLooseBase(this, Base)._foo = val;
|
|
}
|
|
|
|
static getClass() {
|
|
return babelHelpers.classStaticPrivateFieldLooseBase(Base, Base)._foo;
|
|
}
|
|
|
|
static updateClass(val) {
|
|
return babelHelpers.classStaticPrivateFieldLooseBase(Base, Base)._foo = val;
|
|
}
|
|
|
|
}
|
|
|
|
Object.defineProperty(Base, "_foo", {
|
|
value: 1,
|
|
enumerable: false,
|
|
configurable: false,
|
|
writable: true
|
|
});
|
|
|
|
class Sub1 extends Base {
|
|
static update(val) {
|
|
return babelHelpers.classStaticPrivateFieldLooseBase(this, Sub1)._foo2 = val;
|
|
}
|
|
|
|
}
|
|
|
|
Object.defineProperty(Sub1, "_foo2", {
|
|
value: 2,
|
|
enumerable: false,
|
|
configurable: false,
|
|
writable: true
|
|
});
|
|
|
|
class Sub2 extends Base {}
|