1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 13:18:13 +00:00

LibJS: Add static initializers to classes

This commit is contained in:
davidot 2021-10-20 21:29:47 +02:00 committed by Linus Groh
parent 1245512c50
commit 6b2accce31
4 changed files with 134 additions and 13 deletions

View file

@ -0,0 +1,48 @@
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);
});