diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js index 3ced96af29564..568a931c7d9e3 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js @@ -2508,4 +2508,27 @@ describe('ReactDOMFizzServer', () => { default, ]); }); + + // @gate experimental + it('Supports iterable', async () => { + const Immutable = require('immutable'); + + const mappedJSX = Immutable.fromJS([ + {name: 'a', value: 'a'}, + {name: 'b', value: 'b'}, + ]).map(item =>
  • {item.get('name')}
  • ); + + await act(async () => { + const {pipe} = ReactDOMFizzServer.renderToPipeableStream( + , + ); + pipe(writable); + }); + expect(getVisibleChildren(container)).toEqual( + , + ); + }); }); diff --git a/packages/react-server/src/ReactFizzServer.js b/packages/react-server/src/ReactFizzServer.js index c09d21cb55cf5..018235aae0872 100644 --- a/packages/react-server/src/ReactFizzServer.js +++ b/packages/react-server/src/ReactFizzServer.js @@ -1181,7 +1181,7 @@ function renderNodeDestructive( const iteratorFn = getIteratorFn(node); if (iteratorFn) { if (__DEV__) { - validateIterable(node, iteratorFn()); + validateIterable(node, iteratorFn); } const iterator = iteratorFn.call(node); if (iterator) {