@samitouri / QOS-React / commits / 0070925a4f

Don't use Stack-only helper in new SSR (#10174)

Dan Abramov committed Jul 13, 2017 at 19:55 UTC 0070925a4fe3ae37cd4ec467ba8bb9f86af7d687
2 files changed +21 -23
scripts/rollup/results.json
+16 -16
@@ -65,20 +65,20 @@
65 "gzip": 81957
66 },
67 "react-dom-server.development.js (UMD_DEV)": {
68 - "size": 157366,
69 - "gzip": 39194
68 + "size": 150871,
69 + "gzip": 37142
70 },
71 "react-dom-server.production.min.js (UMD_PROD)": {
72 - "size": 26047,
73 - "gzip": 9845
72 + "size": 25025,
73 + "gzip": 9431
74 },
75 "react-dom-server.development.js (NODE_DEV)": {
76 - "size": 124505,
77 - "gzip": 31491
76 + "size": 118016,
77 + "gzip": 29314
78 },
79 "react-dom-server.production.min.js (NODE_PROD)": {
80 - "size": 23614,
81 - "gzip": 8897
80 + "size": 22584,
81 + "gzip": 8461
82 },
83 "ReactDOMServerStream-dev.js (FB_DEV)": {
84 "size": 264750,
@@ -181,20 +181,20 @@
181 "gzip": 50920
182 },
183 "ReactDOMServer-dev.js (FB_DEV)": {
184 - "size": 123959,
185 - "gzip": 31418
184 + "size": 117470,
185 + "gzip": 29243
186 },
187 "ReactDOMServer-prod.js (FB_PROD)": {
188 - "size": 65096,
189 - "gzip": 17753
188 + "size": 60410,
189 + "gzip": 16315
190 },
191 "react-dom-node-stream.development.js (NODE_DEV)": {
192 - "size": 126199,
193 - "gzip": 31993
192 + "size": 119710,
193 + "gzip": 29969
194 },
195 "react-dom-node-stream.production.min.js (NODE_PROD)": {
196 - "size": 24554,
197 - "gzip": 9231
196 + "size": 23526,
197 + "gzip": 8790
198 },
199 "ReactDOMNodeStream-dev.js (FB_DEV)": {
200 "size": 264918,
src/renderers/shared/server/ReactPartialRenderer.js
+5 -7
@@ -23,9 +23,10 @@ var emptyObject = require('fbjs/lib/emptyObject');
23 var escapeTextContentForBrowser = require('escapeTextContentForBrowser');
24 var invariant = require('fbjs/lib/invariant');
25 var omittedCloseTags = require('omittedCloseTags');
26 -var traverseStackChildren = require('traverseStackChildren');
26 var warning = require('fbjs/lib/warning');
27
28 +var toArray = React.Children.toArray;
29 +
30 if (__DEV__) {
31 var {
32 validateProperties: validateARIAProperties,
@@ -650,9 +651,10 @@ class ReactDOMServerRenderer {
651 out += '>';
652 footer = '</' + element.type + '>';
653 }
653 - var children = [];
654 + var children;
655 var innerMarkup = getNonChildrenInnerMarkup(props);
656 if (innerMarkup != null) {
657 + children = [];
658 if (newlineEatingTags[tag] && innerMarkup.charAt(0) === '\n') {
659 // text/html ignores the first character in these tags if it's a newline
660 // Prefer to break application/xml over text/html (for now) by adding
@@ -668,11 +670,7 @@ class ReactDOMServerRenderer {
670 }
671 out += innerMarkup;
672 } else {
671 - traverseStackChildren(props.children, function(ctx, child, name) {
672 - if (child != null) {
673 - children.push(child);
674 - }
675 - });
673 + children = toArray(props.children);
674 }
675 this.stack.push({
676 tag,