ladybird/Userland/Libraries/LibJS/Tests/classes/class-static-initializers.js
2021-10-20 23:19:17 +01:00

48 lines
806 B
JavaScript

test("basic functionality", () => {
var called = false;
class A {
static {
expect(called).toBeFalse();
expect(this.name).toBe("A");
called = true;
}
}
expect(called).toBeTrue();
new A();
expect(called).toBeTrue();
});
test("called in order", () => {
var i = 0;
class A {
static {
expect(i).toBe(0);
i++;
}
static method() {
return 2;
}
static {
expect(i).toBe(1);
i++;
}
}
expect(i).toBe(2);
new A();
expect(i).toBe(2);
});
test("correct this", () => {
var thisValue = null;
class A {
static {
thisValue = this;
}
}
expect(thisValue).toBe(A);
});