Files

29 lines
657 B
JavaScript

expect(null ?? undefined).toBeUndefined(undefined);
expect(undefined ?? null).toBeNull();
expect(false ?? true).toBe(false);
expect(0 ?? 1).toBe(0);
expect("" ?? "foo").toBe("");
var obj = { exists: true };
expect(obj.exists ?? false).toBe(true);
expect(obj.doesNotExist ?? "foo").toBe("foo");
var counter = 0;
function sideEffect() { return counter++; }
expect(sideEffect() ?? -1).toBe(0);
var counter2 = 0;
var obj2 = {
get foo() { return counter2++; }
};
expect(obj2.foo ?? -1).toBe(0);
try {
var access_a = 0;
Object.assign(globalThis, { get a() { access_a++ } });
a ?? {};
expect(access_a).toBe(1);
} finally {
delete globalThis.a;
}