diff --git a/packages/compiler-core/__tests__/transforms/transformSlotOutlet.spec.ts b/packages/compiler-core/__tests__/transforms/transformSlotOutlet.spec.ts index 82a5c8e50e1..1a4ea3da8bf 100644 --- a/packages/compiler-core/__tests__/transforms/transformSlotOutlet.spec.ts +++ b/packages/compiler-core/__tests__/transforms/transformSlotOutlet.spec.ts @@ -339,6 +339,15 @@ describe('compiler: transform outlets', () => { }) }) + test('slot with slotted: true', async () => { + const ast = parseWithSlots(``, { slotted: true }) + expect((ast.children[0] as ElementNode).codegenNode).toMatchObject({ + type: NodeTypes.JS_CALL_EXPRESSION, + callee: RENDER_SLOT, + arguments: [`$slots`, `"default"`, `{}`, `undefined`, `true`] + }) + }) + test(`error on unexpected custom directive on `, () => { const onError = jest.fn() const source = `` diff --git a/packages/compiler-core/src/options.ts b/packages/compiler-core/src/options.ts index 2850da196b1..d8d2573a6e8 100644 --- a/packages/compiler-core/src/options.ts +++ b/packages/compiler-core/src/options.ts @@ -199,6 +199,12 @@ export interface TransformOptions extends SharedTransformCodegenOptions { * SFC scoped styles ID */ scopeId?: string | null + /** + * Indicates this SFC template has used :slotted in its styles + * Defaults to `true` for backwards compatibility - SFC tooling should set it + * to `false` if no `:slotted` usage is detected in ``).descriptor + .slotted + ).toBe(false) + expect( + parse(``) + .descriptor.slotted + ).toBe(true) + expect( + parse(``) + .descriptor.slotted + ).toBe(true) + }) + test('error tolerance', () => { const { errors } = parse(`