mirror of
https://github.com/swc-project/swc.git
synced 2024-12-01 01:13:56 +03:00
24 lines
865 B
TypeScript
24 lines
865 B
TypeScript
// @target: es5,es2015
|
|
// @noTypesAndSymbols: true
|
|
|
|
// https://github.com/microsoft/TypeScript/issues/39205
|
|
let trace: any[] = [];
|
|
let order = (n: any): any => trace.push(n);
|
|
|
|
// order(0) should evaluate before order(1) because the first element is undefined
|
|
let [{ [order(1)]: x } = order(0)] = [];
|
|
|
|
// order(0) should not evaluate because the first element is defined
|
|
let [{ [order(1)]: y } = order(0)] = [{}];
|
|
|
|
// order(0) should evaluate first (destructuring of object literal {})
|
|
// order(1) should evaluate next (initializer because property is undefined)
|
|
// order(2) should evaluate last (evaluate object binding pattern from initializer)
|
|
let { [order(0)]: { [order(2)]: z } = order(1), ...w } = {} as any;
|
|
|
|
|
|
// https://github.com/microsoft/TypeScript/issues/39181
|
|
|
|
// b = a must occur *after* 'a' has been assigned
|
|
let [{ ...a }, b = a]: any[] = [{ x: 1 }]
|