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
|
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 RetainedSuper {
static get a() { log(); }
}
class RetainedSub extends RetainedSuper {}
RetainedSub.a;
// 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;
|