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,