Files
Huáng JùnliàngandGitHub 26af3161e6 Optimize do expression output (#17444)
* add new test case

* opt: conditionally apply the flatten transform

Only apply the flatten transform when the do expression contains Break/Continue/Return. This enables us to optimize the output since we don't have to memoize intermediate results.

* update test outputs

* remove unreachable code

variable declaration within for in/of can not have initializer.

* update test case to cover spread element

* add more test cases for early exit scenario

* make node 6 happy

* revert complex variable declaration removal
2025-07-25 14:29:47 -04:00

19 lines
369 B
JavaScript

const effects = [];
const object = {
value: 'this',
get method() {
effects.push(4);
return function (arg) {
effects.push(this.value);
effects.push(arg);
};
}
};
(effects.push(1), object)[effects.push(2), "method"]((effects.push(3), "arg"));
(() => {
effects.push(5);
return {
x: () => effects.push(6)
};
})().x(effects.push(7));