- `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>
39 lines
825 B
JavaScript
39 lines
825 B
JavaScript
const actualOrder = [];
|
|
|
|
const track = i => {
|
|
actualOrder.push(i);
|
|
return i;
|
|
};
|
|
|
|
class MyClass {
|
|
static [track(1)] = track(10);
|
|
[track(2)] = track(13);
|
|
get [track(3)]() {
|
|
return "foo";
|
|
}
|
|
set [track(4)](value) {
|
|
this.bar = value;
|
|
}
|
|
[track(5)] = track(14);
|
|
static [track(6)] = track(11);
|
|
static [track(7)] = track(12);
|
|
[track(8)]() {}
|
|
[track(9)] = track(15);
|
|
}
|
|
|
|
const inst = new MyClass();
|
|
|
|
const expectedOrder = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
|
|
expect(actualOrder).toEqual(expectedOrder);
|
|
|
|
expect(MyClass[1]).toBe(10);
|
|
expect(inst[2]).toBe(13);
|
|
expect(inst[3]).toBe("foo");
|
|
inst[4] = "baz";
|
|
expect(inst.bar).toBe("baz");
|
|
expect(inst[5]).toBe(14);
|
|
expect(MyClass[6]).toBe(11);
|
|
expect(MyClass[7]).toBe(12);
|
|
expect(typeof inst[8]).toBe("function");
|
|
expect(inst[9]).toBe(15);
|