Skip to content

Instantly share code, notes, and snippets.

@khyperia
Last active June 25, 2019 15:50
Show Gist options
  • Save khyperia/1d088ff330416bea0eb1c51489bcdad9 to your computer and use it in GitHub Desktop.
Save khyperia/1d088ff330416bea0eb1c51489bcdad9 to your computer and use it in GitHub Desktop.
Super calls in computed field keys
class C extends B {
field = 2;
constructor() {
class D {
[super()];
}
}
}
// ---
let .initializers = [() => this.field = 2];
class C extends B {
constructor() {
let .fieldKeys = [(super(), .initializers[0]())]; // accesses inner .initializers, not outer
let .initializers = [() => this[.fieldKeys[0]] = undefined];
class D {
// ...
}
}
}
let .initializers = [() => this.field = 2];
class C extends B {
constructor() {
let .fieldKeys = [(super(), .initializers[0]())]; // accesses outer .initializers, not inner
{
let .initializers = [() => this[.fieldKeys[0]] = undefined];
class D {
// ...
}
}
}
}
class C extends B {
field = 2;
constructor() {
class D {
[super()];
constructor(){}
[f()] = g();
}
}
}
// ---
let .initializers = [() => this.field = 2];
class C extends B {
constructor() {
let .fieldKeys = [undefined, undefined];
class D {
.fieldKeys[0] = (super(), .initializers[0]());
{
let .initializers = [
() => this[.fieldKeys[0]] = undefined,
() => this[.fieldKeys[1]] = g(),
];
constructor() {
.initializers[0]();
.initializers[1]();
}
}
.fieldKeys[1] = f();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment