function test() { let log = []; function effect(desc) { log.push(desc); return desc; } class C { [effect("instance#1")]() {} static [effect("static#2")]() {} get [effect("instanceGetter#3")]() {} static get [effect("staticGetter#4")]() {} set [effect("instanceSetter#5")](v) {} static [effect("staticSetter#6")](v) {} } return log[0] === "instance#1" && log[1] === "static#2" && log[2] === "instanceGetter#3" && log[3] === "staticGetter#4" && log[4] === "instanceSetter#5" && log[5] === "staticSetter#6"; } if (!test()) throw new Error("Test failed");