diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vFor.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vFor.spec.ts.snap index 02235ddd99b..ffcf5d73365 100644 --- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vFor.spec.ts.snap +++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vFor.spec.ts.snap @@ -115,6 +115,21 @@ export function render(_ctx) { }" `; +exports[`compiler: v-for > object value, key and index 1`] = ` +"import { child as _child, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, createFor as _createFor, template as _template } from 'vue'; +const t0 = _template("
", true) + +export function render(_ctx) { + const n0 = _createFor(() => (_ctx.list), (_for_item0, _for_key0, _for_index0) => { + const n2 = t0() + const x2 = _child(n2) + _renderEffect(() => _setText(x2, _toDisplayString(_for_item0.value + _for_key0.value + _for_index0.value))) + return n2 + }, (value, key, index) => (key)) + return n0 +}" +`; + exports[`compiler: v-for > v-for aliases w/ complex expressions 1`] = ` "import { getDefaultValue as _getDefaultValue, child as _child, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, createFor as _createFor, template as _template } from 'vue'; const t0 = _template("
", true) diff --git a/packages/compiler-vapor/__tests__/transforms/vFor.spec.ts b/packages/compiler-vapor/__tests__/transforms/vFor.spec.ts index 31a6da36908..0ce23475ee6 100644 --- a/packages/compiler-vapor/__tests__/transforms/vFor.spec.ts +++ b/packages/compiler-vapor/__tests__/transforms/vFor.spec.ts @@ -118,6 +118,32 @@ describe('compiler: v-for', () => { }) }) + test('object value, key and index', () => { + const { code, ir } = compileWithVFor( + `
{{ value + key + index }}
`, + ) + expect(code).matchSnapshot() + expect(ir.block.operation[0]).toMatchObject({ + type: IRNodeTypes.FOR, + source: { + type: NodeTypes.SIMPLE_EXPRESSION, + content: 'list', + }, + value: { + type: NodeTypes.SIMPLE_EXPRESSION, + content: 'value', + }, + key: { + type: NodeTypes.SIMPLE_EXPRESSION, + content: 'key', + }, + index: { + type: NodeTypes.SIMPLE_EXPRESSION, + content: 'index', + }, + }) + }) + test('object de-structured value', () => { const { code, ir } = compileWithVFor( '{{ id }}{{ value }}',