- `mutableTemplateObject` and `ignoreToPrimitiveHint` (#12408) - `setClassMethods` (#12407) - `setComputedProperties` (#12490) - `ignoreFunctionLength` (#12491) - `noDocumentAll` (#12481) - `iterableIsArray` and `arrayLikeIsIterable` (#12489) - `pureGetters` (#12504) - `skipForOfIteratorClosing` (#12496) - `objectRestNoSymbols`, `setSpreadProperties` and `pureGetters` (#12505) - `noNewArrows` (#12613, #12793) - `setPublicClassFields` and `privateFieldsAsProperties` (#12497) - `constantReexports` and `enumerableModuleMeta` (#12618) - `constantSuper`, `superIsCallableConstructor` and `noClassCalls` (#12726) Co-authored-by: Justin Ridgewell <justin@ridgewell.name> Co-authored-by: Huáng Jùnliàng <JLHwung@users.noreply.github.com>
20 lines
497 B
JavaScript
20 lines
497 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);
|