dillon1000/react
Commit
Browse files Use implicit return (undefined)
Making ReturnTerminal.value non-nullable broke our optimization to elide final value-less return statements. We now check if a return value is explicitly `undefined` and elide the value in this case, which then also propagates to allow removing the final `return` statement of a function if the value is missing.
Changed paths51 files
First-parent comparisoncompiler/forget/src/ReactiveScopes/CodegenReactiveFunction.ts ModifiedM compiler/forget/src/__tests__/fixtures/compiler/_bug.computed-call-evaluation-order.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/_bug.property-call-evaluation-order.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/alias-while.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/call.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/conditional-on-mutable.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/constructor.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/early-return.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/for-return.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/frozen-after-alias.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/hook-call.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/hooks-freeze-arguments.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/hooks-freeze-possibly-mutable-arguments.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/independent-across-if.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/independent.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/interdependent-across-if.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/interdependent.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/issue852.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/mutable-lifetime-loops.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/mutable-lifetime-with-aliasing.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/mutable-liverange-loop.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/object-computed-access-assignment.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/object-properties.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/overlapping-scopes-interleaved-by-terminal.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/overlapping-scopes-interleaved.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/overlapping-scopes-shadowed.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/overlapping-scopes-while.expect.md ModifiedA compiler/forget/src/__tests__/fixtures/compiler/return-undefined.expect.md AddedA compiler/forget/src/__tests__/fixtures/compiler/return-undefined.js AddedM compiler/forget/src/__tests__/fixtures/compiler/reverse-postorder.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/sequence-expression.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/simple-alias.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-call-jsx-2.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-call-jsx.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-complex-multiple-if.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-complex-single-if.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-if-else.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-nested-partial-phi.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-newexpression.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-shadowing.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-sibling-phis.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-simple-phi.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-simple.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-single-if.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-switch.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/switch-with-fallthrough.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/transitive-alias-fields.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/type-args-test-binary-operator.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/type-binary-operator.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/useMemo-return-empty.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/while-conditional-continue.expect.md ModifiedPatch
Files changed
Rendering syntax-highlighted changes…