fix(compiler-sfc): properly analyze destructured bindings with dynamic keys
fix #4540
This commit is contained in:
@@ -96,6 +96,19 @@ export default /*#__PURE__*/ Object.assign(__default__, {
|
||||
})"
|
||||
`;
|
||||
|
||||
exports[`SFC compile <script setup> binding analysis for destructur 1`] = `
|
||||
"export default {
|
||||
setup(__props, { expose }) {
|
||||
expose()
|
||||
|
||||
const { foo, b: bar, ['x' + 'y']: baz, x: { y, zz: { z }}} = {}
|
||||
|
||||
return { foo, bar, baz, y, z }
|
||||
}
|
||||
|
||||
}"
|
||||
`;
|
||||
|
||||
exports[`SFC compile <script setup> defineEmits() 1`] = `
|
||||
"export default {
|
||||
emits: ['foo', 'bar'],
|
||||
|
||||
@@ -36,6 +36,23 @@ describe('SFC compile <script setup>', () => {
|
||||
assertCode(content)
|
||||
})
|
||||
|
||||
test('binding analysis for destructur', () => {
|
||||
const { content, bindings } = compile(`
|
||||
<script setup>
|
||||
const { foo, b: bar, ['x' + 'y']: baz, x: { y, zz: { z }}} = {}
|
||||
</script>
|
||||
`)
|
||||
expect(content).toMatch('return { foo, bar, baz, y, z }')
|
||||
expect(bindings).toStrictEqual({
|
||||
foo: BindingTypes.SETUP_MAYBE_REF,
|
||||
bar: BindingTypes.SETUP_MAYBE_REF,
|
||||
baz: BindingTypes.SETUP_MAYBE_REF,
|
||||
y: BindingTypes.SETUP_MAYBE_REF,
|
||||
z: BindingTypes.SETUP_MAYBE_REF
|
||||
})
|
||||
assertCode(content)
|
||||
})
|
||||
|
||||
test('defineProps()', () => {
|
||||
const { content, bindings } = compile(`
|
||||
<script setup>
|
||||
|
||||
Reference in New Issue
Block a user