• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1describe("unittests:: evaluation:: objectRest", () => {
2    // https://github.com/microsoft/TypeScript/issues/31469
3    it("side effects in property assignment", async () => {
4        const result = evaluator.evaluateTypeScript(`
5            const k = { a: 1, b: 2 };
6            const o = { a: 3, ...k, b: k.a++ };
7            export const output = o;
8        `);
9        assert.deepEqual(result.output, { a: 1, b: 1 });
10    });
11    it("side effects in during spread", async () => {
12        const result = evaluator.evaluateTypeScript(`
13            const k = { a: 1, get b() { l = { c: 9 }; return 2; } };
14            let l = { c: 3 };
15            const o = { ...k, ...l };
16            export const output = o;
17        `);
18        assert.deepEqual(result.output, { a: 1, b: 2, c: 9 });
19    });
20    it("trailing literal-valued object-literal", async () => {
21        const result = evaluator.evaluateTypeScript(`
22            const k = { a: 1 }
23            const o = { ...k, ...{ b: 2 } };
24            export const output = o;
25        `);
26        assert.deepEqual(result.output, { a: 1, b: 2 });
27    });
28});
29