From 4378cffb515afa084fd3be1db0300921cdfbc7cc Mon Sep 17 00:00:00 2001 From: Marco Salazar Date: Fri, 25 Mar 2022 13:29:35 -0400 Subject: [PATCH 1/3] fix validate iterable call --- .../src/__tests__/ReactDOMFizzServer-test.js | 22 +++++++++++++++++++ packages/react-server/src/ReactFizzServer.js | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js index 3ced96af2956..8bd64ee5c02b 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js @@ -2508,4 +2508,26 @@ describe('ReactDOMFizzServer', () => { default, ]); }); + + it('Supports immutable lists', 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 c09d21cb55cf..018235aae087 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) { From c8bd01499157089f89cb9df89f4df98acfcc3a72 Mon Sep 17 00:00:00 2001 From: Marco Salazar Date: Fri, 25 Mar 2022 13:32:34 -0400 Subject: [PATCH 2/3] supports iterable --- packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js index 8bd64ee5c02b..4aef4f3ec6dd 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js @@ -2509,7 +2509,7 @@ describe('ReactDOMFizzServer', () => { ]); }); - it('Supports immutable lists', async () => { + it('Supports iterable', async () => { const Immutable = require('immutable'); const mappedJSX = Immutable.fromJS([ From a8804f0b5360dcb2f4d5f7a7885c0cd4eef5cdaa Mon Sep 17 00:00:00 2001 From: Marco Salazar Date: Fri, 25 Mar 2022 13:35:44 -0400 Subject: [PATCH 3/3] gate test by experimental --- packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js index 4aef4f3ec6dd..568a931c7d9e 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js @@ -2509,6 +2509,7 @@ describe('ReactDOMFizzServer', () => { ]); }); + // @gate experimental it('Supports iterable', async () => { const Immutable = require('immutable');