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