- `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>
42 lines
917 B
JavaScript
42 lines
917 B
JavaScript
class Foo {
|
|
constructor(status) {
|
|
this.status = status;
|
|
expect(() => this.#getStatus = null).toThrow(TypeError);
|
|
}
|
|
|
|
#getStatus() {
|
|
return this.status;
|
|
}
|
|
|
|
getCurrentStatus() {
|
|
return this.#getStatus();
|
|
}
|
|
|
|
setCurrentStatus(newStatus) {
|
|
this.status = newStatus;
|
|
}
|
|
|
|
getFakeStatus(fakeStatus) {
|
|
const getStatus = this.#getStatus;
|
|
return function () {
|
|
return getStatus.call({ status: fakeStatus });
|
|
};
|
|
}
|
|
|
|
getFakeStatusFunc() {
|
|
return {
|
|
status: 'fake-status',
|
|
getFakeStatus: this.#getStatus,
|
|
};
|
|
}
|
|
}
|
|
|
|
const f = new Foo('inactive');
|
|
expect(f.getCurrentStatus()).toBe('inactive');
|
|
|
|
f.setCurrentStatus('new-status');
|
|
expect(f.getCurrentStatus()).toBe('new-status');
|
|
|
|
expect(f.getFakeStatus('fake')()).toBe('fake');
|
|
expect(f.getFakeStatusFunc().getFakeStatus()).toBe('fake-status');
|