react 0.13.2 → 0.14.0-alpha3

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 (197) hide show
  1. package/README.md +1 -1
  2. package/addons.js +7 -0
  3. package/addons/CSSTransitionGroup.js +1 -0
  4. package/addons/LinkedStateMixin.js +1 -0
  5. package/addons/Perf.js +1 -0
  6. package/addons/PureRenderMixin.js +1 -0
  7. package/addons/TestUtils.js +1 -0
  8. package/addons/TransitionGroup.js +1 -0
  9. package/addons/batchedUpdates.js +1 -0
  10. package/addons/cloneWithProps.js +1 -0
  11. package/addons/createFragment.js +1 -0
  12. package/addons/renderSubtreeIntoContainer.js +1 -0
  13. package/addons/shallowCompare.js +1 -0
  14. package/addons/update.js +1 -0
  15. package/dist/JSXTransformer.js +3355 -1685
  16. package/dist/react-with-addons.js +3320 -5133
  17. package/dist/react-with-addons.min.js +6 -7
  18. package/dist/react.js +2962 -4548
  19. package/dist/react.min.js +5 -5
  20. package/lib/AutoFocusMixin.js +4 -3
  21. package/lib/BeforeInputEventPlugin.js +30 -118
  22. package/lib/CSSCore.js +12 -23
  23. package/lib/CSSProperty.js +4 -3
  24. package/lib/CSSPropertyOperations.js +14 -30
  25. package/lib/CallbackQueue.js +7 -10
  26. package/lib/ChangeEventPlugin.js +24 -88
  27. package/lib/ClientReactRootIndex.js +2 -2
  28. package/lib/DOMChildrenOperations.js +13 -33
  29. package/lib/DOMProperty.js +41 -67
  30. package/lib/DOMPropertyOperations.js +30 -51
  31. package/lib/Danger.js +19 -62
  32. package/lib/DefaultEventPluginOrder.js +2 -12
  33. package/lib/EnterLeaveEventPlugin.js +11 -33
  34. package/lib/EventConstants.js +2 -2
  35. package/lib/EventListener.js +11 -13
  36. package/lib/EventPluginHub.js +44 -47
  37. package/lib/EventPluginRegistry.js +18 -74
  38. package/lib/EventPluginUtils.js +27 -38
  39. package/lib/EventPropagators.js +23 -26
  40. package/lib/ExecutionEnvironment.js +4 -8
  41. package/lib/FallbackCompositionState.js +3 -3
  42. package/lib/HTMLDOMPropertyConfig.js +7 -19
  43. package/lib/LinkedStateMixin.js +3 -6
  44. package/lib/LinkedValueUtils.js +34 -64
  45. package/lib/LocalEventTrapMixin.js +9 -16
  46. package/lib/Object.assign.js +1 -1
  47. package/lib/PooledClass.js +8 -11
  48. package/lib/React.js +9 -129
  49. package/lib/ReactBrowserComponentMixin.js +9 -2
  50. package/lib/ReactBrowserEventEmitter.js +26 -82
  51. package/lib/ReactCSSTransitionGroup.js +13 -24
  52. package/lib/ReactCSSTransitionGroupChild.js +18 -28
  53. package/lib/ReactChildReconciler.js +11 -19
  54. package/lib/ReactChildren.js +21 -28
  55. package/lib/ReactClass.js +81 -234
  56. package/lib/ReactComponent.js +17 -33
  57. package/lib/ReactComponentBrowserEnvironment.js +4 -8
  58. package/lib/ReactComponentEnvironment.js +6 -12
  59. package/lib/ReactComponentWithPureRenderMixin.js +4 -5
  60. package/lib/ReactCompositeComponent.js +87 -311
  61. package/lib/ReactContext.js +2 -44
  62. package/lib/ReactCurrentOwner.js +1 -3
  63. package/lib/ReactDOM.js +4 -2
  64. package/lib/ReactDOMButton.js +3 -4
  65. package/lib/ReactDOMClient.js +85 -0
  66. package/lib/ReactDOMComponent.js +182 -146
  67. package/lib/ReactDOMForm.js +3 -3
  68. package/lib/ReactDOMIDOperations.js +11 -22
  69. package/lib/ReactDOMIframe.js +3 -3
  70. package/lib/ReactDOMImg.js +3 -3
  71. package/lib/ReactDOMInput.js +22 -35
  72. package/lib/ReactDOMOption.js +67 -10
  73. package/lib/ReactDOMSelect.js +50 -28
  74. package/lib/ReactDOMSelection.js +5 -20
  75. package/lib/ReactDOMServer.js +24 -0
  76. package/lib/ReactDOMTextComponent.js +17 -18
  77. package/lib/ReactDOMTextarea.js +15 -27
  78. package/lib/ReactDefaultBatchingStrategy.js +9 -13
  79. package/lib/ReactDefaultInjection.js +31 -40
  80. package/lib/ReactDefaultPerf.js +36 -69
  81. package/lib/ReactDefaultPerfAnalysis.js +8 -14
  82. package/lib/ReactElement.js +24 -57
  83. package/lib/ReactElementValidator.js +38 -105
  84. package/lib/ReactEmptyComponent.js +7 -11
  85. package/lib/ReactErrorUtils.js +2 -2
  86. package/lib/ReactEventEmitterMixin.js +3 -12
  87. package/lib/ReactEventListener.js +16 -38
  88. package/lib/ReactFragment.js +23 -54
  89. package/lib/ReactInjection.js +1 -1
  90. package/lib/ReactInputSelection.js +11 -21
  91. package/lib/ReactInstanceHandles.js +27 -57
  92. package/lib/ReactInstanceMap.js +5 -5
  93. package/lib/ReactIsomorphic.js +70 -0
  94. package/lib/ReactLifeCycle.js +1 -1
  95. package/lib/ReactLink.js +2 -4
  96. package/lib/ReactMarkupChecksum.js +5 -10
  97. package/lib/ReactMount.js +137 -260
  98. package/lib/ReactMultiChild.js +19 -45
  99. package/lib/ReactMultiChildUpdateTypes.js +1 -1
  100. package/lib/ReactNativeComponent.js +7 -11
  101. package/lib/ReactOwner.js +7 -24
  102. package/lib/ReactPerf.js +8 -12
  103. package/lib/ReactPropTransferer.js +4 -4
  104. package/lib/ReactPropTypeLocationNames.js +2 -2
  105. package/lib/ReactPropTypeLocations.js +1 -1
  106. package/lib/ReactPropTypes.js +41 -61
  107. package/lib/ReactReconcileTransaction.js +9 -34
  108. package/lib/ReactReconciler.js +9 -19
  109. package/lib/ReactRef.js +5 -8
  110. package/lib/ReactRootIndex.js +2 -2
  111. package/lib/ReactServerRendering.js +7 -15
  112. package/lib/ReactServerRenderingTransaction.js +7 -32
  113. package/lib/ReactStateSetters.js +6 -6
  114. package/lib/ReactTestUtils.js +93 -165
  115. package/lib/ReactTransitionChildMapping.js +5 -7
  116. package/lib/ReactTransitionEvents.js +5 -5
  117. package/lib/ReactTransitionGroup.js +30 -52
  118. package/lib/ReactUpdateQueue.js +27 -90
  119. package/lib/ReactUpdates.js +27 -79
  120. package/lib/ReactWithAddons.js +7 -6
  121. package/lib/SVGDOMPropertyConfig.js +41 -4
  122. package/lib/SelectEventPlugin.js +28 -29
  123. package/lib/ServerReactRootIndex.js +2 -2
  124. package/lib/SimpleEventPlugin.js +136 -128
  125. package/lib/SyntheticClipboardEvent.js +3 -7
  126. package/lib/SyntheticCompositionEvent.js +3 -9
  127. package/lib/SyntheticDragEvent.js +1 -1
  128. package/lib/SyntheticEvent.js +8 -10
  129. package/lib/SyntheticFocusEvent.js +1 -1
  130. package/lib/SyntheticInputEvent.js +3 -9
  131. package/lib/SyntheticKeyboardEvent.js +4 -4
  132. package/lib/SyntheticMouseEvent.js +8 -14
  133. package/lib/SyntheticTouchEvent.js +1 -1
  134. package/lib/SyntheticUIEvent.js +3 -3
  135. package/lib/SyntheticWheelEvent.js +11 -15
  136. package/lib/Transaction.js +12 -24
  137. package/lib/ViewportMetrics.js +2 -2
  138. package/lib/accumulateInto.js +2 -5
  139. package/lib/adler32.js +2 -4
  140. package/lib/camelize.js +4 -2
  141. package/lib/camelizeStyleName.js +2 -2
  142. package/lib/cloneWithProps.js +5 -11
  143. package/lib/containsNode.js +29 -16
  144. package/lib/createArrayFromMixed.js +17 -16
  145. package/lib/createFullPageComponent.js +4 -11
  146. package/lib/createNodesFromMarkup.js +6 -8
  147. package/lib/dangerousStyleValue.js +2 -3
  148. package/lib/emptyFunction.js +10 -4
  149. package/lib/emptyObject.js +1 -1
  150. package/lib/escapeTextContentForBrowser.js +1 -1
  151. package/lib/findDOMNode.js +5 -24
  152. package/lib/flattenChildren.js +4 -10
  153. package/lib/focusNode.js +2 -3
  154. package/lib/forEachAccumulated.js +2 -2
  155. package/lib/getActiveElement.js +4 -2
  156. package/lib/getEventCharCode.js +1 -1
  157. package/lib/getEventKey.js +1 -1
  158. package/lib/getEventModifierState.js +1 -1
  159. package/lib/getEventTarget.js +1 -1
  160. package/lib/getIteratorFn.js +2 -4
  161. package/lib/getMarkupWrap.js +7 -5
  162. package/lib/getNodeForCharacterOffset.js +1 -1
  163. package/lib/getTextContentAccessor.js +2 -4
  164. package/lib/getUnboundedScrollPosition.js +1 -1
  165. package/lib/hyphenate.js +3 -1
  166. package/lib/hyphenateStyleName.js +2 -2
  167. package/lib/instantiateReactComponent.js +14 -38
  168. package/lib/invariant.js +8 -12
  169. package/lib/isEventSupported.js +7 -10
  170. package/lib/isNode.js +4 -6
  171. package/lib/isTextInputElement.js +2 -4
  172. package/lib/isTextNode.js +3 -1
  173. package/lib/joinClasses.js +2 -2
  174. package/lib/keyMirror.js +3 -6
  175. package/lib/keyOf.js +4 -3
  176. package/lib/mapObject.js +1 -1
  177. package/lib/memoizeStringOnly.js +2 -2
  178. package/lib/onlyChild.js +2 -5
  179. package/lib/performance.js +2 -5
  180. package/lib/performanceNow.js +3 -1
  181. package/lib/quoteAttributeValueForBrowser.js +1 -1
  182. package/lib/renderSubtreeIntoContainer.js +16 -0
  183. package/lib/setInnerHTML.js +11 -8
  184. package/lib/setTextContent.js +3 -3
  185. package/lib/shallowCompare.js +24 -0
  186. package/lib/shallowEqual.js +17 -11
  187. package/lib/shouldUpdateReactComponent.js +3 -64
  188. package/lib/toArray.js +8 -19
  189. package/lib/traverseAllChildren.js +22 -89
  190. package/lib/update.js +25 -85
  191. package/lib/validateDOMNesting.js +363 -0
  192. package/lib/warning.js +17 -15
  193. package/package.json +3 -3
  194. package/lib/MobileSafariClickEventPlugin.js +0 -56
  195. package/lib/ReactPutListenerQueue.js +0 -54
  196. package/lib/cx.js +0 -52
  197. package/lib/getReactRootElementInContainer.js +0 -33
@@ -10,7 +10,7 @@
10
10
  * @typechecks
11
11
  */
12
12
 
13
- "use strict";
13
+ 'use strict';
14
14
 
15
15
  var camelize = require("./camelize");
16
16
 
@@ -37,4 +37,4 @@ function camelizeStyleName(string) {
37
37
  return camelize(string.replace(msPattern, 'ms-'));
38
38
  }
39
39
 
40
- module.exports = camelizeStyleName;
40
+ module.exports = camelizeStyleName;
@@ -18,7 +18,7 @@ var ReactPropTransferer = require("./ReactPropTransferer");
18
18
  var keyOf = require("./keyOf");
19
19
  var warning = require("./warning");
20
20
 
21
- var CHILDREN_PROP = keyOf({children: null});
21
+ var CHILDREN_PROP = keyOf({ children: null });
22
22
 
23
23
  /**
24
24
  * Sometimes you want to change the props of a child passed to you. Usually
@@ -30,20 +30,14 @@ var CHILDREN_PROP = keyOf({children: null});
30
30
  * @return {ReactElement} a clone of child with props merged in.
31
31
  */
32
32
  function cloneWithProps(child, props) {
33
- if ("production" !== process.env.NODE_ENV) {
34
- ("production" !== process.env.NODE_ENV ? warning(
35
- !child.ref,
36
- 'You are calling cloneWithProps() on a child with a ref. This is ' +
37
- 'dangerous because you\'re creating a new child which will not be ' +
38
- 'added as a ref to its parent.'
39
- ) : null);
33
+ if ('production' !== process.env.NODE_ENV) {
34
+ 'production' !== process.env.NODE_ENV ? warning(!child.ref, 'You are calling cloneWithProps() on a child with a ref. This is ' + 'dangerous because you\'re creating a new child which will not be ' + 'added as a ref to its parent.') : undefined;
40
35
  }
41
36
 
42
37
  var newProps = ReactPropTransferer.mergeProps(props, child.props);
43
38
 
44
39
  // Use `child.props.children` if it is provided.
45
- if (!newProps.hasOwnProperty(CHILDREN_PROP) &&
46
- child.props.hasOwnProperty(CHILDREN_PROP)) {
40
+ if (!newProps.hasOwnProperty(CHILDREN_PROP) && child.props.hasOwnProperty(CHILDREN_PROP)) {
47
41
  newProps.children = child.props.children;
48
42
  }
49
43
 
@@ -52,4 +46,4 @@ function cloneWithProps(child, props) {
52
46
  return ReactElement.createElement(child.type, newProps);
53
47
  }
54
48
 
55
- module.exports = cloneWithProps;
49
+ module.exports = cloneWithProps;
@@ -10,6 +10,8 @@
10
10
  * @typechecks
11
11
  */
12
12
 
13
+ 'use strict';
14
+
13
15
  var isTextNode = require("./isTextNode");
14
16
 
15
17
  /*jslint bitwise:true */
@@ -21,22 +23,33 @@ var isTextNode = require("./isTextNode");
21
23
  * @param {?DOMNode} innerNode Inner DOM node.
22
24
  * @return {boolean} True if `outerNode` contains or is `innerNode`.
23
25
  */
24
- function containsNode(outerNode, innerNode) {
25
- if (!outerNode || !innerNode) {
26
- return false;
27
- } else if (outerNode === innerNode) {
28
- return true;
29
- } else if (isTextNode(outerNode)) {
30
- return false;
31
- } else if (isTextNode(innerNode)) {
32
- return containsNode(outerNode, innerNode.parentNode);
33
- } else if (outerNode.contains) {
34
- return outerNode.contains(innerNode);
35
- } else if (outerNode.compareDocumentPosition) {
36
- return !!(outerNode.compareDocumentPosition(innerNode) & 16);
37
- } else {
38
- return false;
26
+ function containsNode(_x, _x2) {
27
+ var _again = true;
28
+
29
+ _function: while (_again) {
30
+ var outerNode = _x,
31
+ innerNode = _x2;
32
+ _again = false;
33
+
34
+ if (!outerNode || !innerNode) {
35
+ return false;
36
+ } else if (outerNode === innerNode) {
37
+ return true;
38
+ } else if (isTextNode(outerNode)) {
39
+ return false;
40
+ } else if (isTextNode(innerNode)) {
41
+ _x = outerNode;
42
+ _x2 = innerNode.parentNode;
43
+ _again = true;
44
+ continue _function;
45
+ } else if (outerNode.contains) {
46
+ return outerNode.contains(innerNode);
47
+ } else if (outerNode.compareDocumentPosition) {
48
+ return !!(outerNode.compareDocumentPosition(innerNode) & 16);
49
+ } else {
50
+ return false;
51
+ }
39
52
  }
40
53
  }
41
54
 
42
- module.exports = containsNode;
55
+ module.exports = containsNode;
@@ -10,6 +10,8 @@
10
10
  * @typechecks
11
11
  */
12
12
 
13
+ 'use strict';
14
+
13
15
  var toArray = require("./toArray");
14
16
 
15
17
  /**
@@ -30,23 +32,11 @@ var toArray = require("./toArray");
30
32
  function hasArrayNature(obj) {
31
33
  return (
32
34
  // not null/false
33
- !!obj &&
34
- // arrays are objects, NodeLists are functions in Safari
35
- (typeof obj == 'object' || typeof obj == 'function') &&
36
- // quacks like an array
37
- ('length' in obj) &&
35
+ !!obj && (typeof obj == 'object' || typeof obj == 'function') && 'length' in obj &&
38
36
  // not window
39
- !('setInterval' in obj) &&
40
- // no DOM node should be considered an array-like
41
- // a 'select' element has 'length' and 'item' properties on IE8
42
- (typeof obj.nodeType != 'number') &&
43
- (
44
- // a real array
45
- (// HTMLCollection/NodeList
46
- (Array.isArray(obj) ||
47
- // arguments
48
- ('callee' in obj) || 'item' in obj))
49
- )
37
+ !('setInterval' in obj) && typeof obj.nodeType != 'number' && (
38
+ // a real array
39
+ (Array.isArray(obj) || 'callee' in obj || 'item' in obj))
50
40
  );
51
41
  }
52
42
 
@@ -82,3 +72,14 @@ function createArrayFromMixed(obj) {
82
72
  }
83
73
 
84
74
  module.exports = createArrayFromMixed;
75
+
76
+ // arrays are objects, NodeLists are functions in Safari
77
+
78
+ // quacks like an array
79
+
80
+ // no DOM node should be considered an array-like
81
+ // a 'select' element has 'length' and 'item' properties on IE8
82
+
83
+ // arguments
84
+
85
+ // HTMLCollection/NodeList
@@ -36,18 +36,11 @@ function createFullPageComponent(tag) {
36
36
  tagName: tag.toUpperCase(),
37
37
  displayName: 'ReactFullPageComponent' + tag,
38
38
 
39
- componentWillUnmount: function() {
40
- ("production" !== process.env.NODE_ENV ? invariant(
41
- false,
42
- '%s tried to unmount. Because of cross-browser quirks it is ' +
43
- 'impossible to unmount some top-level components (eg <html>, <head>, ' +
44
- 'and <body>) reliably and efficiently. To fix this, have a single ' +
45
- 'top-level component that never unmounts render these elements.',
46
- this.constructor.displayName
47
- ) : invariant(false));
39
+ componentWillUnmount: function () {
40
+ !false ? 'production' !== process.env.NODE_ENV ? invariant(false, '%s tried to unmount. Because of cross-browser quirks it is ' + 'impossible to unmount some top-level components (eg <html>, <head>, ' + 'and <body>) reliably and efficiently. To fix this, have a single ' + 'top-level component that never unmounts render these elements.', this.constructor.displayName) : invariant(false) : undefined;
48
41
  },
49
42
 
50
- render: function() {
43
+ render: function () {
51
44
  return elementFactory(this.props);
52
45
  }
53
46
  });
@@ -55,4 +48,4 @@ function createFullPageComponent(tag) {
55
48
  return FullPageComponent;
56
49
  }
57
50
 
58
- module.exports = createFullPageComponent;
51
+ module.exports = createFullPageComponent;
@@ -12,6 +12,8 @@
12
12
 
13
13
  /*jslint evil: true, sub: true */
14
14
 
15
+ 'use strict';
16
+
15
17
  var ExecutionEnvironment = require("./ExecutionEnvironment");
16
18
 
17
19
  var createArrayFromMixed = require("./createArrayFromMixed");
@@ -21,8 +23,7 @@ var invariant = require("./invariant");
21
23
  /**
22
24
  * Dummy container used to render all markup.
23
25
  */
24
- var dummyNode =
25
- ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;
26
+ var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;
26
27
 
27
28
  /**
28
29
  * Pattern used by `getNodeName`.
@@ -52,7 +53,7 @@ function getNodeName(markup) {
52
53
  */
53
54
  function createNodesFromMarkup(markup, handleScript) {
54
55
  var node = dummyNode;
55
- ("production" !== process.env.NODE_ENV ? invariant(!!dummyNode, 'createNodesFromMarkup dummy not initialized') : invariant(!!dummyNode));
56
+ !!!dummyNode ? 'production' !== process.env.NODE_ENV ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : undefined;
56
57
  var nodeName = getNodeName(markup);
57
58
 
58
59
  var wrap = nodeName && getMarkupWrap(nodeName);
@@ -69,10 +70,7 @@ function createNodesFromMarkup(markup, handleScript) {
69
70
 
70
71
  var scripts = node.getElementsByTagName('script');
71
72
  if (scripts.length) {
72
- ("production" !== process.env.NODE_ENV ? invariant(
73
- handleScript,
74
- 'createNodesFromMarkup(...): Unexpected <script> element rendered.'
75
- ) : invariant(handleScript));
73
+ !handleScript ? 'production' !== process.env.NODE_ENV ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : undefined;
76
74
  createArrayFromMixed(scripts).forEach(handleScript);
77
75
  }
78
76
 
@@ -83,4 +81,4 @@ function createNodesFromMarkup(markup, handleScript) {
83
81
  return nodes;
84
82
  }
85
83
 
86
- module.exports = createNodesFromMarkup;
84
+ module.exports = createNodesFromMarkup;
@@ -42,8 +42,7 @@ function dangerousStyleValue(name, value) {
42
42
  }
43
43
 
44
44
  var isNonNumeric = isNaN(value);
45
- if (isNonNumeric || value === 0 ||
46
- isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {
45
+ if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {
47
46
  return '' + value; // cast to string
48
47
  }
49
48
 
@@ -53,4 +52,4 @@ function dangerousStyleValue(name, value) {
53
52
  return value + 'px';
54
53
  }
55
54
 
56
- module.exports = dangerousStyleValue;
55
+ module.exports = dangerousStyleValue;
@@ -9,8 +9,10 @@
9
9
  * @providesModule emptyFunction
10
10
  */
11
11
 
12
+ "use strict";
13
+
12
14
  function makeEmptyFunction(arg) {
13
- return function() {
15
+ return function () {
14
16
  return arg;
15
17
  };
16
18
  }
@@ -26,7 +28,11 @@ emptyFunction.thatReturns = makeEmptyFunction;
26
28
  emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
27
29
  emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
28
30
  emptyFunction.thatReturnsNull = makeEmptyFunction(null);
29
- emptyFunction.thatReturnsThis = function() { return this; };
30
- emptyFunction.thatReturnsArgument = function(arg) { return arg; };
31
+ emptyFunction.thatReturnsThis = function () {
32
+ return this;
33
+ };
34
+ emptyFunction.thatReturnsArgument = function (arg) {
35
+ return arg;
36
+ };
31
37
 
32
- module.exports = emptyFunction;
38
+ module.exports = emptyFunction;
@@ -17,4 +17,4 @@ if ("production" !== process.env.NODE_ENV) {
17
17
  Object.freeze(emptyObject);
18
18
  }
19
19
 
20
- module.exports = emptyObject;
20
+ module.exports = emptyObject;
@@ -35,4 +35,4 @@ function escapeTextContentForBrowser(text) {
35
35
  return ('' + text).replace(ESCAPE_REGEX, escaper);
36
36
  }
37
37
 
38
- module.exports = escapeTextContentForBrowser;
38
+ module.exports = escapeTextContentForBrowser;
@@ -27,18 +27,10 @@ var warning = require("./warning");
27
27
  * @return {DOMElement} The root node of this element.
28
28
  */
29
29
  function findDOMNode(componentOrElement) {
30
- if ("production" !== process.env.NODE_ENV) {
30
+ if ('production' !== process.env.NODE_ENV) {
31
31
  var owner = ReactCurrentOwner.current;
32
32
  if (owner !== null) {
33
- ("production" !== process.env.NODE_ENV ? warning(
34
- owner._warnedAboutRefsInRender,
35
- '%s is accessing getDOMNode or findDOMNode inside its render(). ' +
36
- 'render() should be a pure function of props and state. It should ' +
37
- 'never access something that requires stale data from the previous ' +
38
- 'render, such as refs. Move this logic to componentDidMount and ' +
39
- 'componentDidUpdate instead.',
40
- owner.getName() || 'A component'
41
- ) : null);
33
+ 'production' !== process.env.NODE_ENV ? warning(owner._warnedAboutRefsInRender, '%s is accessing getDOMNode or findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : undefined;
42
34
  owner._warnedAboutRefsInRender = true;
43
35
  }
44
36
  }
@@ -51,19 +43,8 @@ function findDOMNode(componentOrElement) {
51
43
  if (ReactInstanceMap.has(componentOrElement)) {
52
44
  return ReactMount.getNodeFromInstance(componentOrElement);
53
45
  }
54
- ("production" !== process.env.NODE_ENV ? invariant(
55
- componentOrElement.render == null ||
56
- typeof componentOrElement.render !== 'function',
57
- 'Component (with keys: %s) contains `render` method ' +
58
- 'but is not mounted in the DOM',
59
- Object.keys(componentOrElement)
60
- ) : invariant(componentOrElement.render == null ||
61
- typeof componentOrElement.render !== 'function'));
62
- ("production" !== process.env.NODE_ENV ? invariant(
63
- false,
64
- 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)',
65
- Object.keys(componentOrElement)
66
- ) : invariant(false));
46
+ !(componentOrElement.render == null || typeof componentOrElement.render !== 'function') ? 'production' !== process.env.NODE_ENV ? invariant(false, 'Component (with keys: %s) contains `render` method ' + 'but is not mounted in the DOM', Object.keys(componentOrElement)) : invariant(false) : undefined;
47
+ !false ? 'production' !== process.env.NODE_ENV ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : invariant(false) : undefined;
67
48
  }
68
49
 
69
- module.exports = findDOMNode;
50
+ module.exports = findDOMNode;
@@ -22,15 +22,9 @@ var warning = require("./warning");
22
22
  function flattenSingleChildIntoContext(traverseContext, child, name) {
23
23
  // We found a component instance.
24
24
  var result = traverseContext;
25
- var keyUnique = !result.hasOwnProperty(name);
26
- if ("production" !== process.env.NODE_ENV) {
27
- ("production" !== process.env.NODE_ENV ? warning(
28
- keyUnique,
29
- 'flattenChildren(...): Encountered two children with the same key, ' +
30
- '`%s`. Child keys must be unique; when two children share a key, only ' +
31
- 'the first child will be used.',
32
- name
33
- ) : null);
25
+ var keyUnique = result[name] === undefined;
26
+ if ('production' !== process.env.NODE_ENV) {
27
+ 'production' !== process.env.NODE_ENV ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : undefined;
34
28
  }
35
29
  if (keyUnique && child != null) {
36
30
  result[name] = child;
@@ -51,4 +45,4 @@ function flattenChildren(children) {
51
45
  return result;
52
46
  }
53
47
 
54
- module.exports = flattenChildren;
48
+ module.exports = flattenChildren;
package/lib/focusNode.js CHANGED
@@ -20,8 +20,7 @@ function focusNode(node) {
20
20
  // reasons that are too expensive and fragile to test.
21
21
  try {
22
22
  node.focus();
23
- } catch(e) {
24
- }
23
+ } catch (e) {}
25
24
  }
26
25
 
27
- module.exports = focusNode;
26
+ module.exports = focusNode;
@@ -18,7 +18,7 @@
18
18
  * handling the case when there is exactly one item (and we do not need to
19
19
  * allocate an array).
20
20
  */
21
- var forEachAccumulated = function(arr, cb, scope) {
21
+ var forEachAccumulated = function (arr, cb, scope) {
22
22
  if (Array.isArray(arr)) {
23
23
  arr.forEach(cb, scope);
24
24
  } else if (arr) {
@@ -26,4 +26,4 @@ var forEachAccumulated = function(arr, cb, scope) {
26
26
  }
27
27
  };
28
28
 
29
- module.exports = forEachAccumulated;
29
+ module.exports = forEachAccumulated;
@@ -16,7 +16,9 @@
16
16
  *
17
17
  * The activeElement will be null only if the document body is not yet defined.
18
18
  */
19
- function getActiveElement() /*?DOMElement*/ {
19
+ "use strict";
20
+
21
+ function getActiveElement() /*?DOMElement*/{
20
22
  try {
21
23
  return document.activeElement || document.body;
22
24
  } catch (e) {
@@ -24,4 +26,4 @@ function getActiveElement() /*?DOMElement*/ {
24
26
  }
25
27
  }
26
28
 
27
- module.exports = getActiveElement;
29
+ module.exports = getActiveElement;
@@ -47,4 +47,4 @@ function getEventCharCode(nativeEvent) {
47
47
  return 0;
48
48
  }
49
49
 
50
- module.exports = getEventCharCode;
50
+ module.exports = getEventCharCode;
@@ -100,4 +100,4 @@ function getEventKey(nativeEvent) {
100
100
  return '';
101
101
  }
102
102
 
103
- module.exports = getEventKey;
103
+ module.exports = getEventKey;
@@ -42,4 +42,4 @@ function getEventModifierState(nativeEvent) {
42
42
  return modifierStateGetter;
43
43
  }
44
44
 
45
- module.exports = getEventModifierState;
45
+ module.exports = getEventModifierState;
@@ -26,4 +26,4 @@ function getEventTarget(nativeEvent) {
26
26
  return target.nodeType === 3 ? target.parentNode : target;
27
27
  }
28
28
 
29
- module.exports = getEventTarget;
29
+ module.exports = getEventTarget;
@@ -31,12 +31,10 @@ var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
31
31
  * @return {?function}
32
32
  */
33
33
  function getIteratorFn(maybeIterable) {
34
- var iteratorFn = maybeIterable && (
35
- (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL])
36
- );
34
+ var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
37
35
  if (typeof iteratorFn === 'function') {
38
36
  return iteratorFn;
39
37
  }
40
38
  }
41
39
 
42
- module.exports = getIteratorFn;
40
+ module.exports = getIteratorFn;