react 15.1.0 → 15.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dist/react-with-addons.js +2685 -1842
  2. package/dist/react-with-addons.min.js +6 -6
  3. package/dist/react.js +2400 -1691
  4. package/dist/react.min.js +6 -6
  5. package/lib/CSSPropertyOperations.js +1 -1
  6. package/lib/CallbackQueue.js +3 -2
  7. package/lib/DOMChildrenOperations.js +9 -9
  8. package/lib/DOMLazyTree.js +3 -2
  9. package/lib/DOMProperty.js +5 -12
  10. package/lib/DOMPropertyOperations.js +21 -15
  11. package/lib/Danger.js +5 -101
  12. package/lib/DisabledInputUtils.js +5 -5
  13. package/lib/EventPluginHub.js +8 -2
  14. package/lib/EventPluginRegistry.js +13 -7
  15. package/lib/EventPluginUtils.js +3 -1
  16. package/lib/HTMLDOMPropertyConfig.js +1 -2
  17. package/lib/KeyEscapeUtils.js +2 -1
  18. package/lib/LinkedValueUtils.js +5 -3
  19. package/lib/NativeMethodsMixin.js +6 -4
  20. package/lib/PooledClass.js +4 -2
  21. package/lib/React.js +1 -1
  22. package/lib/ReactCSSTransitionGroupChild.js +15 -8
  23. package/lib/ReactChildReconciler.js +17 -8
  24. package/lib/ReactClass.js +14 -13
  25. package/lib/ReactComponent.js +3 -6
  26. package/lib/ReactComponentEnvironment.js +3 -1
  27. package/lib/ReactComponentTreeDevtool.js +89 -16
  28. package/lib/ReactComponentTreeTestUtils.js +87 -0
  29. package/lib/ReactCompositeComponent.js +87 -117
  30. package/lib/ReactDOM.js +2 -2
  31. package/lib/ReactDOMButton.js +2 -2
  32. package/lib/ReactDOMComponent.js +130 -76
  33. package/lib/ReactDOMComponentTree.js +23 -21
  34. package/lib/ReactDOMDebugTool.js +17 -11
  35. package/lib/ReactDOMEmptyComponent.js +9 -9
  36. package/lib/ReactDOMFactories.js +1 -1
  37. package/lib/ReactDOMFiber.js +78 -0
  38. package/lib/ReactDOMInput.js +64 -26
  39. package/lib/ReactDOMInstrumentation.js +7 -2
  40. package/lib/ReactDOMNullInputValuePropDevtool.js +43 -0
  41. package/lib/ReactDOMOption.js +40 -26
  42. package/lib/ReactDOMSelect.js +3 -16
  43. package/lib/ReactDOMTextComponent.js +21 -20
  44. package/lib/ReactDOMTextarea.js +59 -46
  45. package/lib/ReactDOMTreeTraversal.js +18 -16
  46. package/lib/ReactDOMUnknownPropertyDevtool.js +65 -17
  47. package/lib/ReactDebugTool.js +148 -95
  48. package/lib/ReactDefaultInjection.js +2 -2
  49. package/lib/ReactElement.js +64 -25
  50. package/lib/ReactElementValidator.js +26 -81
  51. package/lib/ReactEventListener.js +2 -2
  52. package/lib/ReactFeatureFlags.js +1 -0
  53. package/lib/ReactFragment.js +3 -1
  54. package/lib/{ReactNativeComponent.js → ReactHostComponent.js} +10 -29
  55. package/lib/{ReactNativeOperationHistoryDevtool.js → ReactHostOperationHistoryDevtool.js} +5 -5
  56. package/lib/ReactInjection.js +2 -2
  57. package/lib/ReactInstanceHandles.js +8 -6
  58. package/lib/ReactInstrumentation.js +7 -2
  59. package/lib/ReactMount.js +38 -32
  60. package/lib/ReactMultiChild.js +38 -11
  61. package/lib/ReactNativeAttributePayload.js +5 -2
  62. package/lib/ReactNativeBaseComponent.js +7 -7
  63. package/lib/ReactNativeBridgeEventPlugin.js +1 -1
  64. package/lib/ReactNativeComponentTree.js +8 -6
  65. package/lib/ReactNativeDOMIDOperations.js +1 -2
  66. package/lib/ReactNativeDefaultInjection.js +9 -7
  67. package/lib/ReactNativeGlobalResponderHandler.js +1 -1
  68. package/lib/ReactNativeMount.js +3 -14
  69. package/lib/ReactNativeReconcileTransaction.js +16 -0
  70. package/lib/ReactNativeTagHandles.js +3 -1
  71. package/lib/ReactNativeTextComponent.js +10 -9
  72. package/lib/ReactNativeTreeTraversal.js +11 -11
  73. package/lib/ReactNodeTypes.js +6 -3
  74. package/lib/ReactNoop.js +173 -0
  75. package/lib/ReactNoopUpdateQueue.js +6 -5
  76. package/lib/ReactOwner.js +4 -2
  77. package/lib/ReactPerf.js +83 -7
  78. package/lib/ReactPropTypes.js +23 -0
  79. package/lib/ReactReconcileTransaction.js +17 -1
  80. package/lib/ReactReconciler.js +12 -7
  81. package/lib/ReactServerRendering.js +5 -7
  82. package/lib/ReactServerRenderingTransaction.js +17 -0
  83. package/lib/ReactServerUpdateQueue.js +141 -0
  84. package/lib/ReactSimpleEmptyComponent.js +4 -4
  85. package/lib/ReactTestMount.js +115 -0
  86. package/lib/ReactTestReconcileTransaction.js +108 -0
  87. package/lib/ReactTestRenderer.js +133 -0
  88. package/lib/ReactTestUtils.js +17 -10
  89. package/lib/ReactTransitionChildMapping.js +7 -1
  90. package/lib/ReactTransitionGroup.js +41 -6
  91. package/lib/ReactUpdateQueue.js +13 -3
  92. package/lib/ReactUpdates.js +10 -18
  93. package/lib/ReactVersion.js +1 -1
  94. package/lib/ResponderEventPlugin.js +9 -7
  95. package/lib/ResponderTouchHistoryStore.js +99 -95
  96. package/lib/SimpleEventPlugin.js +3 -1
  97. package/lib/SyntheticEvent.js +2 -3
  98. package/lib/SyntheticUIEvent.js +1 -1
  99. package/lib/Transaction.js +4 -2
  100. package/lib/accumulate.js +17 -15
  101. package/lib/accumulateInto.js +11 -12
  102. package/lib/adler32.js +1 -0
  103. package/lib/checkReactTypeSpec.js +73 -0
  104. package/lib/createReactNativeComponentClass.js +2 -2
  105. package/lib/dangerousStyleValue.js +3 -1
  106. package/lib/deprecated.js +7 -1
  107. package/lib/escapeTextContentForBrowser.js +96 -12
  108. package/lib/findDOMNode.js +6 -4
  109. package/lib/findNodeHandle.js +5 -3
  110. package/lib/flattenChildren.js +22 -10
  111. package/lib/forEachAccumulated.js +3 -2
  112. package/lib/{getNativeComponentFromComposite.js → getHostComponentFromComposite.js} +4 -4
  113. package/lib/getIteratorFn.js +1 -0
  114. package/lib/instantiateReactComponent.js +21 -19
  115. package/lib/isTextInputElement.js +11 -1
  116. package/lib/onlyChild.js +3 -1
  117. package/lib/reactComponentExpect.js +3 -3
  118. package/lib/reactProdInvariant.js +39 -0
  119. package/lib/setInnerHTML.js +17 -1
  120. package/lib/setTextContent.js +8 -0
  121. package/lib/traverseAllChildren.js +3 -1
  122. package/lib/update.js +12 -11
  123. package/package.json +2 -2
  124. package/lib/MetaMatchers.js +0 -118
@@ -62,9 +62,9 @@ function inject() {
62
62
  BeforeInputEventPlugin: BeforeInputEventPlugin
63
63
  });
64
64
 
65
- ReactInjection.NativeComponent.injectGenericComponentClass(ReactDOMComponent);
65
+ ReactInjection.HostComponent.injectGenericComponentClass(ReactDOMComponent);
66
66
 
67
- ReactInjection.NativeComponent.injectTextComponentClass(ReactDOMTextComponent);
67
+ ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent);
68
68
 
69
69
  ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);
70
70
  ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);
@@ -17,6 +17,7 @@ var ReactCurrentOwner = require('./ReactCurrentOwner');
17
17
 
18
18
  var warning = require('fbjs/lib/warning');
19
19
  var canDefineProperty = require('./canDefineProperty');
20
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
20
21
 
21
22
  // The Symbol used to tag the ReactElement type. If there is no native Symbol
22
23
  // nor polyfill, then a plain number is used for performance.
@@ -31,6 +32,30 @@ var RESERVED_PROPS = {
31
32
 
32
33
  var specialPropKeyWarningShown, specialPropRefWarningShown;
33
34
 
35
+ function hasValidRef(config) {
36
+ if (process.env.NODE_ENV !== 'production') {
37
+ if (hasOwnProperty.call(config, 'ref')) {
38
+ var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
39
+ if (getter && getter.isReactWarning) {
40
+ return false;
41
+ }
42
+ }
43
+ }
44
+ return config.ref !== undefined;
45
+ }
46
+
47
+ function hasValidKey(config) {
48
+ if (process.env.NODE_ENV !== 'production') {
49
+ if (hasOwnProperty.call(config, 'key')) {
50
+ var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
51
+ if (getter && getter.isReactWarning) {
52
+ return false;
53
+ }
54
+ }
55
+ }
56
+ return config.key !== undefined;
57
+ }
58
+
34
59
  /**
35
60
  * Factory method to create a new React element. This no longer adheres to
36
61
  * the class pattern, so do not use new to call it. Also, no instanceof check
@@ -135,17 +160,20 @@ ReactElement.createElement = function (type, config, children) {
135
160
  config.__proto__ == null || config.__proto__ === Object.prototype,
136
161
  /* eslint-enable no-proto */
137
162
  'React.createElement(...): Expected props argument to be a plain object. ' + 'Properties defined in its prototype chain will be ignored.') : void 0;
138
- ref = !config.hasOwnProperty('ref') || Object.getOwnPropertyDescriptor(config, 'ref').get ? null : config.ref;
139
- key = !config.hasOwnProperty('key') || Object.getOwnPropertyDescriptor(config, 'key').get ? null : '' + config.key;
140
- } else {
141
- ref = config.ref === undefined ? null : config.ref;
142
- key = config.key === undefined ? null : '' + config.key;
143
163
  }
164
+
165
+ if (hasValidRef(config)) {
166
+ ref = config.ref;
167
+ }
168
+ if (hasValidKey(config)) {
169
+ key = '' + config.key;
170
+ }
171
+
144
172
  self = config.__self === undefined ? null : config.__self;
145
173
  source = config.__source === undefined ? null : config.__source;
146
174
  // Remaining properties are added to a new props object
147
175
  for (propName in config) {
148
- if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
176
+ if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
149
177
  props[propName] = config[propName];
150
178
  }
151
179
  }
@@ -174,30 +202,37 @@ ReactElement.createElement = function (type, config, children) {
174
202
  }
175
203
  }
176
204
  if (process.env.NODE_ENV !== 'production') {
177
- // Create dummy `key` and `ref` property to `props` to warn users
178
- // against its use
205
+ var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
206
+
207
+ // Create dummy `key` and `ref` property to `props` to warn users against its use
208
+ var warnAboutAccessingKey = function () {
209
+ if (!specialPropKeyWarningShown) {
210
+ specialPropKeyWarningShown = true;
211
+ process.env.NODE_ENV !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;
212
+ }
213
+ return undefined;
214
+ };
215
+ warnAboutAccessingKey.isReactWarning = true;
216
+
217
+ var warnAboutAccessingRef = function () {
218
+ if (!specialPropRefWarningShown) {
219
+ specialPropRefWarningShown = true;
220
+ process.env.NODE_ENV !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;
221
+ }
222
+ return undefined;
223
+ };
224
+ warnAboutAccessingRef.isReactWarning = true;
225
+
179
226
  if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {
180
227
  if (!props.hasOwnProperty('key')) {
181
228
  Object.defineProperty(props, 'key', {
182
- get: function () {
183
- if (!specialPropKeyWarningShown) {
184
- specialPropKeyWarningShown = true;
185
- process.env.NODE_ENV !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', typeof type === 'function' && 'displayName' in type ? type.displayName : 'Element') : void 0;
186
- }
187
- return undefined;
188
- },
229
+ get: warnAboutAccessingKey,
189
230
  configurable: true
190
231
  });
191
232
  }
192
233
  if (!props.hasOwnProperty('ref')) {
193
234
  Object.defineProperty(props, 'ref', {
194
- get: function () {
195
- if (!specialPropRefWarningShown) {
196
- specialPropRefWarningShown = true;
197
- process.env.NODE_ENV !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', typeof type === 'function' && 'displayName' in type ? type.displayName : 'Element') : void 0;
198
- }
199
- return undefined;
200
- },
235
+ get: warnAboutAccessingRef,
201
236
  configurable: true
202
237
  });
203
238
  }
@@ -258,21 +293,23 @@ ReactElement.cloneElement = function (element, config, children) {
258
293
  /* eslint-enable no-proto */
259
294
  'React.cloneElement(...): Expected props argument to be a plain object. ' + 'Properties defined in its prototype chain will be ignored.') : void 0;
260
295
  }
261
- if (config.ref !== undefined) {
296
+
297
+ if (hasValidRef(config)) {
262
298
  // Silently steal the ref from the parent.
263
299
  ref = config.ref;
264
300
  owner = ReactCurrentOwner.current;
265
301
  }
266
- if (config.key !== undefined) {
302
+ if (hasValidKey(config)) {
267
303
  key = '' + config.key;
268
304
  }
305
+
269
306
  // Remaining properties override existing props
270
307
  var defaultProps;
271
308
  if (element.type && element.type.defaultProps) {
272
309
  defaultProps = element.type.defaultProps;
273
310
  }
274
311
  for (propName in config) {
275
- if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
312
+ if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
276
313
  if (config[propName] === undefined && defaultProps !== undefined) {
277
314
  // Resolve default props
278
315
  props[propName] = defaultProps[propName];
@@ -310,4 +347,6 @@ ReactElement.isValidElement = function (object) {
310
347
  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
311
348
  };
312
349
 
350
+ ReactElement.REACT_ELEMENT_TYPE = REACT_ELEMENT_TYPE;
351
+
313
352
  module.exports = ReactElement;
@@ -18,14 +18,15 @@
18
18
 
19
19
  'use strict';
20
20
 
21
+ var ReactCurrentOwner = require('./ReactCurrentOwner');
22
+ var ReactComponentTreeDevtool = require('./ReactComponentTreeDevtool');
21
23
  var ReactElement = require('./ReactElement');
22
24
  var ReactPropTypeLocations = require('./ReactPropTypeLocations');
23
- var ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');
24
- var ReactCurrentOwner = require('./ReactCurrentOwner');
25
+
26
+ var checkReactTypeSpec = require('./checkReactTypeSpec');
25
27
 
26
28
  var canDefineProperty = require('./canDefineProperty');
27
29
  var getIteratorFn = require('./getIteratorFn');
28
- var invariant = require('fbjs/lib/invariant');
29
30
  var warning = require('fbjs/lib/warning');
30
31
 
31
32
  function getDeclarationErrorAddendum() {
@@ -45,13 +46,24 @@ function getDeclarationErrorAddendum() {
45
46
  */
46
47
  var ownerHasKeyUseWarning = {};
47
48
 
48
- var loggedTypeFailures = {};
49
+ function getCurrentComponentErrorInfo(parentType) {
50
+ var info = getDeclarationErrorAddendum();
51
+
52
+ if (!info) {
53
+ var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
54
+ if (parentName) {
55
+ info = ' Check the top-level render call using <' + parentName + '>.';
56
+ }
57
+ }
58
+ return info;
59
+ }
49
60
 
50
61
  /**
51
62
  * Warn if the element doesn't have an explicit key assigned to it.
52
63
  * This element is in an array. The array could grow and shrink or be
53
64
  * reordered. All children that haven't already been validated are required to
54
- * have a "key" property assigned to it.
65
+ * have a "key" property assigned to it. Error statuses are cached so a warning
66
+ * will only be shown once.
55
67
  *
56
68
  * @internal
57
69
  * @param {ReactElement} element Element that requires a key.
@@ -63,54 +75,24 @@ function validateExplicitKey(element, parentType) {
63
75
  }
64
76
  element._store.validated = true;
65
77
 
66
- var addenda = getAddendaForKeyUse('uniqueKey', element, parentType);
67
- if (addenda === null) {
68
- // we already showed the warning
69
- return;
70
- }
71
- process.env.NODE_ENV !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s%s', addenda.parentOrOwner || '', addenda.childOwner || '', addenda.url || '') : void 0;
72
- }
73
-
74
- /**
75
- * Shared warning and monitoring code for the key warnings.
76
- *
77
- * @internal
78
- * @param {string} messageType A key used for de-duping warnings.
79
- * @param {ReactElement} element Component that requires a key.
80
- * @param {*} parentType element's parent's type.
81
- * @returns {?object} A set of addenda to use in the warning message, or null
82
- * if the warning has already been shown before (and shouldn't be shown again).
83
- */
84
- function getAddendaForKeyUse(messageType, element, parentType) {
85
- var addendum = getDeclarationErrorAddendum();
86
- if (!addendum) {
87
- var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
88
- if (parentName) {
89
- addendum = ' Check the top-level render call using <' + parentName + '>.';
90
- }
91
- }
78
+ var memoizer = ownerHasKeyUseWarning.uniqueKey || (ownerHasKeyUseWarning.uniqueKey = {});
92
79
 
93
- var memoizer = ownerHasKeyUseWarning[messageType] || (ownerHasKeyUseWarning[messageType] = {});
94
- if (memoizer[addendum]) {
95
- return null;
80
+ var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
81
+ if (memoizer[currentComponentErrorInfo]) {
82
+ return;
96
83
  }
97
- memoizer[addendum] = true;
98
-
99
- var addenda = {
100
- parentOrOwner: addendum,
101
- url: ' See https://fb.me/react-warning-keys for more information.',
102
- childOwner: null
103
- };
84
+ memoizer[currentComponentErrorInfo] = true;
104
85
 
105
86
  // Usually the current owner is the offender, but if it accepts children as a
106
87
  // property, it may be the creator of the child that's responsible for
107
88
  // assigning it a key.
89
+ var childOwner = '';
108
90
  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {
109
91
  // Give the component that originally created this child.
110
- addenda.childOwner = ' It was passed a child from ' + element._owner.getName() + '.';
92
+ childOwner = ' It was passed a child from ' + element._owner.getName() + '.';
111
93
  }
112
94
 
113
- return addenda;
95
+ process.env.NODE_ENV !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, ReactComponentTreeDevtool.getCurrentStackAddendum(element)) : void 0;
114
96
  }
115
97
 
116
98
  /**
@@ -155,43 +137,6 @@ function validateChildKeys(node, parentType) {
155
137
  }
156
138
  }
157
139
 
158
- /**
159
- * Assert that the props are valid
160
- *
161
- * @param {string} componentName Name of the component for error messages.
162
- * @param {object} propTypes Map of prop name to a ReactPropType
163
- * @param {object} props
164
- * @param {string} location e.g. "prop", "context", "child context"
165
- * @private
166
- */
167
- function checkPropTypes(componentName, propTypes, props, location) {
168
- for (var propName in propTypes) {
169
- if (propTypes.hasOwnProperty(propName)) {
170
- var error;
171
- // Prop type validation may throw. In case they do, we don't want to
172
- // fail the render phase where it didn't fail before. So we log it.
173
- // After these have been cleaned up, we'll let them throw.
174
- try {
175
- // This is intentionally an invariant that gets caught. It's the same
176
- // behavior as without this statement except with a better message.
177
- !(typeof propTypes[propName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : void 0;
178
- error = propTypes[propName](props, propName, componentName, location);
179
- } catch (ex) {
180
- error = ex;
181
- }
182
- process.env.NODE_ENV !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], propName, typeof error) : void 0;
183
- if (error instanceof Error && !(error.message in loggedTypeFailures)) {
184
- // Only monitor this failure once because there tends to be a lot of the
185
- // same error.
186
- loggedTypeFailures[error.message] = true;
187
-
188
- var addendum = getDeclarationErrorAddendum();
189
- process.env.NODE_ENV !== 'production' ? warning(false, 'Failed propType: %s%s', error.message, addendum) : void 0;
190
- }
191
- }
192
- }
193
- }
194
-
195
140
  /**
196
141
  * Given an element, validate that its props follow the propTypes definition,
197
142
  * provided by the type.
@@ -205,7 +150,7 @@ function validatePropTypes(element) {
205
150
  }
206
151
  var name = componentClass.displayName || componentClass.name;
207
152
  if (componentClass.propTypes) {
208
- checkPropTypes(name, componentClass.propTypes, element.props, ReactPropTypeLocations.prop);
153
+ checkReactTypeSpec(componentClass.propTypes, element.props, ReactPropTypeLocations.prop, name, element, null);
209
154
  }
210
155
  if (typeof componentClass.getDefaultProps === 'function') {
211
156
  process.env.NODE_ENV !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0;
@@ -31,8 +31,8 @@ function findParent(inst) {
31
31
  // TODO: It may be a good idea to cache this to prevent unnecessary DOM
32
32
  // traversal, but caching is difficult to do correctly without using a
33
33
  // mutation observer to listen for all DOM changes.
34
- while (inst._nativeParent) {
35
- inst = inst._nativeParent;
34
+ while (inst._hostParent) {
35
+ inst = inst._hostParent;
36
36
  }
37
37
  var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst);
38
38
  var container = rootNode.parentNode;
@@ -7,6 +7,7 @@
7
7
  * of patent rights can be found in the PATENTS file in the same directory.
8
8
  *
9
9
  * @providesModule ReactFeatureFlags
10
+ *
10
11
  */
11
12
 
12
13
  'use strict';
@@ -11,6 +11,8 @@
11
11
 
12
12
  'use strict';
13
13
 
14
+ var _prodInvariant = require('./reactProdInvariant');
15
+
14
16
  var ReactChildren = require('./ReactChildren');
15
17
  var ReactElement = require('./ReactElement');
16
18
 
@@ -46,7 +48,7 @@ var ReactFragment = {
46
48
  return object;
47
49
  }
48
50
 
49
- !(object.nodeType !== 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.addons.createFragment(...): Encountered an invalid child; DOM ' + 'elements are not valid children of React components.') : invariant(false) : void 0;
51
+ !(object.nodeType !== 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.addons.createFragment(...): Encountered an invalid child; DOM elements are not valid children of React components.') : _prodInvariant('0') : void 0;
50
52
 
51
53
  var result = [];
52
54
 
@@ -6,22 +6,22 @@
6
6
  * LICENSE file in the root directory of this source tree. An additional grant
7
7
  * of patent rights can be found in the PATENTS file in the same directory.
8
8
  *
9
- * @providesModule ReactNativeComponent
9
+ * @providesModule ReactHostComponent
10
10
  */
11
11
 
12
12
  'use strict';
13
13
 
14
- var _assign = require('object-assign');
14
+ var _prodInvariant = require('./reactProdInvariant'),
15
+ _assign = require('object-assign');
15
16
 
16
17
  var invariant = require('fbjs/lib/invariant');
17
18
 
18
- var autoGenerateWrapperClass = null;
19
19
  var genericComponentClass = null;
20
- // This registry keeps track of wrapper classes around native tags.
20
+ // This registry keeps track of wrapper classes around host tags.
21
21
  var tagToComponentClass = {};
22
22
  var textComponentClass = null;
23
23
 
24
- var ReactNativeComponentInjection = {
24
+ var ReactHostComponentInjection = {
25
25
  // This accepts a class that receives the tag string. This is a catch all
26
26
  // that can render any kind of tag.
27
27
  injectGenericComponentClass: function (componentClass) {
@@ -40,31 +40,13 @@ var ReactNativeComponentInjection = {
40
40
  };
41
41
 
42
42
  /**
43
- * Get a composite component wrapper class for a specific tag.
44
- *
45
- * @param {ReactElement} element The tag for which to get the class.
46
- * @return {function} The React class constructor function.
47
- */
48
- function getComponentClassForElement(element) {
49
- if (typeof element.type === 'function') {
50
- return element.type;
51
- }
52
- var tag = element.type;
53
- var componentClass = tagToComponentClass[tag];
54
- if (componentClass == null) {
55
- tagToComponentClass[tag] = componentClass = autoGenerateWrapperClass(tag);
56
- }
57
- return componentClass;
58
- }
59
-
60
- /**
61
- * Get a native internal component class for a specific tag.
43
+ * Get a host internal component class for a specific tag.
62
44
  *
63
45
  * @param {ReactElement} element The element to create.
64
46
  * @return {function} The internal class constructor function.
65
47
  */
66
48
  function createInternalComponent(element) {
67
- !genericComponentClass ? process.env.NODE_ENV !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : invariant(false) : void 0;
49
+ !genericComponentClass ? process.env.NODE_ENV !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : _prodInvariant('111', element.type) : void 0;
68
50
  return new genericComponentClass(element);
69
51
  }
70
52
 
@@ -84,12 +66,11 @@ function isTextComponent(component) {
84
66
  return component instanceof textComponentClass;
85
67
  }
86
68
 
87
- var ReactNativeComponent = {
88
- getComponentClassForElement: getComponentClassForElement,
69
+ var ReactHostComponent = {
89
70
  createInternalComponent: createInternalComponent,
90
71
  createInstanceForText: createInstanceForText,
91
72
  isTextComponent: isTextComponent,
92
- injection: ReactNativeComponentInjection
73
+ injection: ReactHostComponentInjection
93
74
  };
94
75
 
95
- module.exports = ReactNativeComponent;
76
+ module.exports = ReactHostComponent;
@@ -6,15 +6,15 @@
6
6
  * LICENSE file in the root directory of this source tree. An additional grant
7
7
  * of patent rights can be found in the PATENTS file in the same directory.
8
8
  *
9
- * @providesModule ReactNativeOperationHistoryDevtool
9
+ * @providesModule ReactHostOperationHistoryDevtool
10
10
  */
11
11
 
12
12
  'use strict';
13
13
 
14
14
  var history = [];
15
15
 
16
- var ReactNativeOperationHistoryDevtool = {
17
- onNativeOperation: function (debugID, type, payload) {
16
+ var ReactHostOperationHistoryDevtool = {
17
+ onHostOperation: function (debugID, type, payload) {
18
18
  history.push({
19
19
  instanceID: debugID,
20
20
  type: type,
@@ -22,7 +22,7 @@ var ReactNativeOperationHistoryDevtool = {
22
22
  });
23
23
  },
24
24
  clearHistory: function () {
25
- if (ReactNativeOperationHistoryDevtool._preventClearing) {
25
+ if (ReactHostOperationHistoryDevtool._preventClearing) {
26
26
  // Should only be used for tests.
27
27
  return;
28
28
  }
@@ -34,4 +34,4 @@ var ReactNativeOperationHistoryDevtool = {
34
34
  }
35
35
  };
36
36
 
37
- module.exports = ReactNativeOperationHistoryDevtool;
37
+ module.exports = ReactHostOperationHistoryDevtool;