1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
class Removed {
get a() { log(); }
set a(v) { log(); }
static get a() { log(); }
static set a(v) { log(); }
}
class RemovedNoEffect {
get a() {}
set a(v) {}
static get a() {}
static set a(v) {}
}
RemovedNoEffect.prototype.a;
RemovedNoEffect.prototype.a = 1;
RemovedNoEffect.a;
RemovedNoEffect.a = 1;
class RetainedByGetter {
get a() { log(); }
}
RetainedByGetter.prototype.a;
class RetainedBySetter {
set a(v) { log(); }
}
RetainedBySetter.prototype.a = 10;
class RetainedByStaticGetter {
static get a() { log(); }
}
RetainedByStaticGetter.a;
class RetainedByStaticSetter {
static set a(v) { log(); }
}
RetainedByStaticSetter.a = 10;
class RemovedSetters {
set a(v) { log(); }
static set a(v) { log(); }
}
RemovedSetters.prototype.a;
RemovedSetters.a;
class RemovedWrongProp {
get a() { log(); }
static get a() { log(); }
}
RemovedWrongProp.prototype.b
RemovedWrongProp.b
class RetainedSuper {
static get a() { log(); }
}
class RetainedSub extends RetainedSuper {}
RetainedSub.a;
class RemovedSub extends RetainedSuper {}
RemovedSub.b;
// class fields are not part of the prototype
class RemovedProtoValue {
a = true;
}
if (!RemovedProtoValue.prototype.a) log();
class DeoptProto {
a = true;
}
globalThis.unknown(DeoptProto.prototype);
if (!DeoptProto.prototype.a) log();
class DeoptComputed {
static get a() {}
static get [globalThis.unknown]() { log(); }
}
DeoptComputed.a;
|