diff --git a/src/renderers/dom/shared/HTMLDOMPropertyConfig.js b/src/renderers/dom/shared/HTMLDOMPropertyConfig.js index ec288be9ea..da0ca9b449 100644 --- a/src/renderers/dom/shared/HTMLDOMPropertyConfig.js +++ b/src/renderers/dom/shared/HTMLDOMPropertyConfig.js @@ -139,6 +139,8 @@ var HTMLDOMPropertyConfig = { shape: 0, size: HAS_POSITIVE_NUMERIC_VALUE, sizes: 0, + // support for projecting regular DOM Elements via V1 named slots ( shadow dom ) + slot: 0, span: HAS_POSITIVE_NUMERIC_VALUE, spellCheck: 0, src: 0, diff --git a/src/renderers/dom/shared/__tests__/ReactDOMComponent-test.js b/src/renderers/dom/shared/__tests__/ReactDOMComponent-test.js index 36d2841700..00d0bd445d 100644 --- a/src/renderers/dom/shared/__tests__/ReactDOMComponent-test.js +++ b/src/renderers/dom/shared/__tests__/ReactDOMComponent-test.js @@ -245,6 +245,24 @@ describe('ReactDOMComponent', () => { expect(stubStyle.display).toEqual(''); }); + it('should allow named slot projection on both web components and regular DOM elements', () => { + var container = document.createElement('div'); + + ReactDOM.render( + + + + , + container + ); + + var lightDOM = container.firstChild.childNodes; + + expect(lightDOM[0].getAttribute('slot')).toBe('first'); + expect(lightDOM[1].getAttribute('slot')).toBe('second'); + + } ); + it('should skip reserved props on web components', () => { var container = document.createElement('div');