diff --git a/compiler/forget/src/__tests__/fixtures/compiler/useMemo-inverted-if.expect.md b/compiler/forget/src/__tests__/fixtures/compiler/useMemo-inverted-if.expect.md new file mode 100644 index 0000000000..ebe949ec3b --- /dev/null +++ b/compiler/forget/src/__tests__/fixtures/compiler/useMemo-inverted-if.expect.md @@ -0,0 +1,37 @@ + +## Input + +```javascript +function Component(props) { + const x = useMemo(() => { + label: { + if (props.cond) { + break label; + } + return props.a; + } + return props.b; + }); + return x; +} + +``` + +## Code + +```javascript +function Component(props) { + let t17 = undefined; + bb10: { + if (props.cond) { + t17 = props.b; + break bb10; + } + t17 = props.a; + } + const x = t17; + return x; +} + +``` + \ No newline at end of file diff --git a/compiler/forget/src/__tests__/fixtures/compiler/useMemo-inverted-if.js b/compiler/forget/src/__tests__/fixtures/compiler/useMemo-inverted-if.js new file mode 100644 index 0000000000..62d00013e9 --- /dev/null +++ b/compiler/forget/src/__tests__/fixtures/compiler/useMemo-inverted-if.js @@ -0,0 +1,12 @@ +function Component(props) { + const x = useMemo(() => { + label: { + if (props.cond) { + break label; + } + return props.a; + } + return props.b; + }); + return x; +} diff --git a/compiler/forget/src/__tests__/fixtures/compiler/useMemo-nested-ifs.expect.md b/compiler/forget/src/__tests__/fixtures/compiler/useMemo-nested-ifs.expect.md new file mode 100644 index 0000000000..5b50c443a1 --- /dev/null +++ b/compiler/forget/src/__tests__/fixtures/compiler/useMemo-nested-ifs.expect.md @@ -0,0 +1,28 @@ + +## Input + +```javascript +function Component(props) { + const x = useMemo(() => { + if (props.cond) { + if (props.cond) { + } + } + }, [props.cond]); + return x; +} + +``` + +## Code + +```javascript +function Component(props) { + if (props.cond) { + if (props.cond) { + } + } +} + +``` + \ No newline at end of file diff --git a/compiler/forget/src/__tests__/fixtures/compiler/useMemo-nested-ifs.js b/compiler/forget/src/__tests__/fixtures/compiler/useMemo-nested-ifs.js new file mode 100644 index 0000000000..49b800b427 --- /dev/null +++ b/compiler/forget/src/__tests__/fixtures/compiler/useMemo-nested-ifs.js @@ -0,0 +1,9 @@ +function Component(props) { + const x = useMemo(() => { + if (props.cond) { + if (props.cond) { + } + } + }, [props.cond]); + return x; +} diff --git a/compiler/forget/src/__tests__/fixtures/compiler/useMemo-switch-return.expect.md b/compiler/forget/src/__tests__/fixtures/compiler/useMemo-switch-return.expect.md new file mode 100644 index 0000000000..0bd9903e03 --- /dev/null +++ b/compiler/forget/src/__tests__/fixtures/compiler/useMemo-switch-return.expect.md @@ -0,0 +1,55 @@ + +## Input + +```javascript +function Component(props) { + const x = useMemo(() => { + let y; + switch (props.switch) { + case "foo": { + return "foo"; + } + case "bar": { + y = "bar"; + break; + } + default: { + y = props.y; + } + } + return y; + }); + return x; +} + +``` + +## Code + +```javascript +function Component(props) { + let t22 = undefined; + bb10: { + let y = undefined; + bb2: switch (props.switch) { + case "foo": { + t22 = "foo"; + break bb10; + } + case "bar": { + y = "bar"; + break bb2; + } + default: { + y = props.y; + } + } + + t22 = y; + } + const x = t22; + return x; +} + +``` + \ No newline at end of file diff --git a/compiler/forget/src/__tests__/fixtures/compiler/useMemo-switch-return.js b/compiler/forget/src/__tests__/fixtures/compiler/useMemo-switch-return.js new file mode 100644 index 0000000000..59b564d1e9 --- /dev/null +++ b/compiler/forget/src/__tests__/fixtures/compiler/useMemo-switch-return.js @@ -0,0 +1,19 @@ +function Component(props) { + const x = useMemo(() => { + let y; + switch (props.switch) { + case "foo": { + return "foo"; + } + case "bar": { + y = "bar"; + break; + } + default: { + y = props.y; + } + } + return y; + }); + return x; +}