react 0.6.3 → 0.9.0-rc1
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.
- package/README.md +10 -222
- package/addons.js +1 -0
- package/lib/AutoFocusMixin.js +30 -0
- package/lib/CSSCore.js +115 -0
- package/lib/CSSProperty.js +121 -0
- package/lib/CSSPropertyOperations.js +97 -0
- package/lib/ChangeEventPlugin.js +387 -0
- package/lib/ClientReactRootIndex.js +30 -0
- package/lib/CompositionEventPlugin.js +260 -0
- package/lib/DOMChildrenOperations.js +165 -0
- package/lib/DOMProperty.js +268 -0
- package/lib/DOMPropertyOperations.js +181 -0
- package/lib/Danger.js +187 -0
- package/lib/DefaultDOMPropertyConfig.js +197 -0
- package/lib/DefaultEventPluginOrder.js +44 -0
- package/lib/EnterLeaveEventPlugin.js +145 -0
- package/lib/EventConstants.js +76 -0
- package/lib/EventListener.js +69 -0
- package/lib/EventPluginHub.js +291 -0
- package/lib/EventPluginRegistry.js +260 -0
- package/lib/EventPluginUtils.js +214 -0
- package/lib/EventPropagators.js +143 -0
- package/lib/ExecutionEnvironment.js +44 -0
- package/lib/LinkedStateMixin.js +46 -0
- package/lib/LinkedValueUtils.js +161 -0
- package/lib/MobileSafariClickEventPlugin.js +63 -0
- package/lib/PooledClass.js +119 -0
- package/lib/React.js +95 -0
- package/lib/ReactCSSTransitionGroup.js +65 -0
- package/lib/ReactCSSTransitionGroupChild.js +138 -0
- package/lib/ReactChildren.js +132 -0
- package/lib/ReactComponent.js +550 -0
- package/lib/ReactComponentBrowserEnvironment.js +158 -0
- package/lib/ReactComponentEnvironment.js +26 -0
- package/lib/ReactCompositeComponent.js +1455 -0
- package/lib/ReactContext.js +67 -0
- package/lib/ReactCurrentOwner.js +39 -0
- package/lib/ReactDOM.js +207 -0
- package/lib/ReactDOMButton.js +68 -0
- package/lib/ReactDOMComponent.js +399 -0
- package/lib/ReactDOMForm.js +59 -0
- package/lib/ReactDOMIDOperations.js +218 -0
- package/lib/ReactDOMImg.js +58 -0
- package/lib/ReactDOMInput.js +181 -0
- package/lib/ReactDOMOption.js +51 -0
- package/lib/ReactDOMSelect.js +179 -0
- package/lib/ReactDOMSelection.js +189 -0
- package/lib/ReactDOMTextarea.js +140 -0
- package/lib/ReactDefaultBatchingStrategy.js +75 -0
- package/lib/ReactDefaultInjection.js +115 -0
- package/lib/ReactDefaultPerf.js +244 -0
- package/lib/ReactDefaultPerfAnalysis.js +199 -0
- package/lib/ReactErrorUtils.js +37 -0
- package/lib/ReactEventEmitter.js +337 -0
- package/lib/ReactEventEmitterMixin.js +57 -0
- package/lib/ReactEventTopLevelCallback.js +109 -0
- package/lib/ReactInjection.js +39 -0
- package/lib/ReactInputSelection.js +140 -0
- package/lib/ReactInstanceHandles.js +338 -0
- package/lib/ReactLink.js +54 -0
- package/lib/ReactMarkupChecksum.js +53 -0
- package/lib/ReactMount.js +641 -0
- package/lib/ReactMountReady.js +95 -0
- package/lib/ReactMultiChild.js +425 -0
- package/lib/ReactMultiChildUpdateTypes.js +38 -0
- package/lib/ReactOwner.js +154 -0
- package/lib/ReactPerf.js +85 -0
- package/lib/ReactPropTransferer.js +147 -0
- package/lib/ReactPropTypeLocationNames.js +31 -0
- package/lib/ReactPropTypeLocations.js +29 -0
- package/lib/ReactPropTypes.js +359 -0
- package/lib/ReactPutListenerQueue.js +61 -0
- package/lib/ReactReconcileTransaction.js +181 -0
- package/lib/ReactRootIndex.js +36 -0
- package/lib/ReactServerRendering.js +59 -0
- package/lib/ReactStateSetters.js +111 -0
- package/lib/ReactTextComponent.js +99 -0
- package/lib/ReactTransitionChildMapping.js +106 -0
- package/lib/ReactTransitionEvents.js +97 -0
- package/lib/ReactTransitionGroup.js +187 -0
- package/lib/ReactUpdates.js +148 -0
- package/lib/ReactWithAddons.js +46 -0
- package/lib/SelectEventPlugin.js +200 -0
- package/lib/ServerReactRootIndex.js +36 -0
- package/lib/SimpleEventPlugin.js +413 -0
- package/lib/SyntheticClipboardEvent.js +51 -0
- package/lib/SyntheticCompositionEvent.js +51 -0
- package/lib/SyntheticDragEvent.js +44 -0
- package/lib/SyntheticEvent.js +164 -0
- package/lib/SyntheticFocusEvent.js +44 -0
- package/lib/SyntheticKeyboardEvent.js +58 -0
- package/lib/SyntheticMouseEvent.js +85 -0
- package/lib/SyntheticTouchEvent.js +50 -0
- package/lib/SyntheticUIEvent.js +45 -0
- package/lib/SyntheticWheelEvent.js +66 -0
- package/lib/Transaction.js +276 -0
- package/lib/ViewportMetrics.js +37 -0
- package/lib/accumulate.js +54 -0
- package/lib/adler32.js +39 -0
- package/lib/cloneWithProps.js +59 -0
- package/lib/containsNode.js +49 -0
- package/lib/copyProperties.js +54 -0
- package/lib/createArrayFrom.js +91 -0
- package/lib/createFullPageComponent.js +63 -0
- package/lib/createNodesFromMarkup.js +93 -0
- package/lib/createObjectFrom.js +61 -0
- package/lib/cx.js +44 -0
- package/lib/dangerousStyleValue.js +57 -0
- package/lib/emptyFunction.js +43 -0
- package/lib/escapeTextForBrowser.js +47 -0
- package/lib/flattenChildren.js +57 -0
- package/lib/forEachAccumulated.js +36 -0
- package/lib/getActiveElement.js +34 -0
- package/lib/getEventKey.js +85 -0
- package/lib/getEventTarget.js +36 -0
- package/lib/getMarkupWrap.js +118 -0
- package/lib/getNodeForCharacterOffset.js +80 -0
- package/lib/getReactRootElementInContainer.js +40 -0
- package/lib/getTextContentAccessor.js +42 -0
- package/lib/getUnboundedScrollPosition.js +45 -0
- package/lib/hyphenate.js +35 -0
- package/lib/invariant.js +62 -0
- package/lib/isEventSupported.js +70 -0
- package/lib/isNode.js +33 -0
- package/lib/isTextInputElement.js +49 -0
- package/lib/isTextNode.js +30 -0
- package/lib/joinClasses.js +44 -0
- package/lib/keyMirror.js +58 -0
- package/lib/keyOf.js +41 -0
- package/lib/memoizeStringOnly.js +39 -0
- package/lib/merge.js +37 -0
- package/lib/mergeHelpers.js +136 -0
- package/lib/mergeInto.js +45 -0
- package/lib/mixInto.js +34 -0
- package/lib/objMap.js +47 -0
- package/lib/objMapKeyVal.js +47 -0
- package/lib/onlyChild.js +43 -0
- package/lib/performanceNow.js +42 -0
- package/lib/shallowEqual.js +49 -0
- package/lib/shouldUpdateReactComponent.js +58 -0
- package/lib/toArray.js +75 -0
- package/lib/traverseAllChildren.js +189 -0
- package/lib/warning.js +40 -0
- package/package.json +32 -21
- package/react.js +1 -0
- package/.npmignore +0 -7
- package/.travis.yml +0 -5
- package/Jakefile.js +0 -39
- package/LICENSE +0 -19
- package/browser-test/dist.html +0 -90
- package/browser-test/index.html +0 -86
- package/browser-test/min.html +0 -90
- package/dist/react.js +0 -3107
- package/dist/react.min.js +0 -22
- package/doc/advanced.md +0 -174
- package/doc/color-def.graffle +0 -938
- package/doc/color-def.png +0 -0
- package/doc/simple.dot +0 -25
- package/doc/simple.png +0 -0
- package/examples/longer-example.js +0 -41
- package/examples/simple.js +0 -45
- package/examples/using-ast-directly.js +0 -30
- package/examples/using-events1.js +0 -79
- package/examples/using-log-events.js +0 -43
- package/lib/base-task.js +0 -123
- package/lib/cb-task.js +0 -84
- package/lib/core.js +0 -138
- package/lib/dsl.js +0 -138
- package/lib/error.js +0 -55
- package/lib/event-collector.js +0 -81
- package/lib/event-manager.js +0 -89
- package/lib/eventemitter.js +0 -20
- package/lib/finalcb-first-task.js +0 -68
- package/lib/finalcb-task.js +0 -65
- package/lib/id.js +0 -22
- package/lib/input-parser.js +0 -56
- package/lib/log-events.js +0 -101
- package/lib/parse.js +0 -41
- package/lib/promise-resolve.js +0 -50
- package/lib/promise-task.js +0 -93
- package/lib/react.js +0 -59
- package/lib/ret-task.js +0 -71
- package/lib/sprintf.js +0 -18
- package/lib/status.js +0 -14
- package/lib/task.js +0 -251
- package/lib/track-tasks.js +0 -74
- package/lib/validate.js +0 -159
- package/lib/vcon.js +0 -90
- package/lib/when-task.js +0 -85
- package/src/dist.build.requirejs +0 -20
- package/test/ast.mocha.js +0 -136
- package/test/cb-task.mocha.js +0 -220
- package/test/core-deferred.mocha.js +0 -143
- package/test/core-when.mocha.js +0 -96
- package/test/core.mocha.js +0 -589
- package/test/dsl.mocha.js +0 -350
- package/test/event-manager.mocha.js +0 -119
- package/test/exec-options.mocha.js +0 -48
- package/test/finalcb-task.mocha.js +0 -58
- package/test/input-parser.mocha.js +0 -86
- package/test/log-events.mocha.js +0 -88
- package/test/mocha.opts +0 -2
- package/test/module-use.mocha.js +0 -147
- package/test/promise-auto-resolve.mocha.js +0 -68
- package/test/ret-task.mocha.js +0 -220
- package/test/task.mocha.js +0 -42
- package/test/validate-cb-task.mocha.js +0 -100
- package/test/validate-ret-task.mocha.js +0 -110
- package/test/validate.mocha.js +0 -324
- package/test/vcon.mocha.js +0 -193
- package/vendor/chai/chai.js +0 -2038
- package/vendor/jquery/jquery-1.7.1.js +0 -9266
- package/vendor/jquery/jquery-1.7.1.min.js +0 -4
- package/vendor/mocha/mocha.css +0 -135
- package/vendor/mocha/mocha.js +0 -3589
- package/vendor/node/util.js +0 -531
- package/vendor/requirejs/require.js +0 -2053
- package/vendor/requirejs/require.min.js +0 -33
package/lib/mergeInto.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule mergeInto
|
|
17
|
+
* @typechecks static-only
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
"use strict";
|
|
21
|
+
|
|
22
|
+
var mergeHelpers = require("./mergeHelpers");
|
|
23
|
+
|
|
24
|
+
var checkMergeObjectArg = mergeHelpers.checkMergeObjectArg;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Shallow merges two structures by mutating the first parameter.
|
|
28
|
+
*
|
|
29
|
+
* @param {object} one Object to be merged into.
|
|
30
|
+
* @param {?object} two Optional object with properties to merge from.
|
|
31
|
+
*/
|
|
32
|
+
function mergeInto(one, two) {
|
|
33
|
+
checkMergeObjectArg(one);
|
|
34
|
+
if (two != null) {
|
|
35
|
+
checkMergeObjectArg(two);
|
|
36
|
+
for (var key in two) {
|
|
37
|
+
if (!two.hasOwnProperty(key)) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
one[key] = two[key];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
module.exports = mergeInto;
|
package/lib/mixInto.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule mixInto
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
"use strict";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Simply copies properties to the prototype.
|
|
23
|
+
*/
|
|
24
|
+
var mixInto = function(constructor, methodBag) {
|
|
25
|
+
var methodName;
|
|
26
|
+
for (methodName in methodBag) {
|
|
27
|
+
if (!methodBag.hasOwnProperty(methodName)) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
constructor.prototype[methodName] = methodBag[methodName];
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
module.exports = mixInto;
|
package/lib/objMap.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule objMap
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
"use strict";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* For each key/value pair, invokes callback func and constructs a resulting
|
|
23
|
+
* object which contains, for every key in obj, values that are the result of
|
|
24
|
+
* of invoking the function:
|
|
25
|
+
*
|
|
26
|
+
* func(value, key, iteration)
|
|
27
|
+
*
|
|
28
|
+
* @param {?object} obj Object to map keys over
|
|
29
|
+
* @param {function} func Invoked for each key/val pair.
|
|
30
|
+
* @param {?*} context
|
|
31
|
+
* @return {?object} Result of mapping or null if obj is falsey
|
|
32
|
+
*/
|
|
33
|
+
function objMap(obj, func, context) {
|
|
34
|
+
if (!obj) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
var i = 0;
|
|
38
|
+
var ret = {};
|
|
39
|
+
for (var key in obj) {
|
|
40
|
+
if (obj.hasOwnProperty(key)) {
|
|
41
|
+
ret[key] = func.call(context, obj[key], key, i++);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return ret;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
module.exports = objMap;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule objMapKeyVal
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
"use strict";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Behaves the same as `objMap` but invokes func with the key first, and value
|
|
23
|
+
* second. Use `objMap` unless you need this special case.
|
|
24
|
+
* Invokes func as:
|
|
25
|
+
*
|
|
26
|
+
* func(key, value, iteration)
|
|
27
|
+
*
|
|
28
|
+
* @param {?object} obj Object to map keys over
|
|
29
|
+
* @param {!function} func Invoked for each key/val pair.
|
|
30
|
+
* @param {?*} context
|
|
31
|
+
* @return {?object} Result of mapping or null if obj is falsey
|
|
32
|
+
*/
|
|
33
|
+
function objMapKeyVal(obj, func, context) {
|
|
34
|
+
if (!obj) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
var i = 0;
|
|
38
|
+
var ret = {};
|
|
39
|
+
for (var key in obj) {
|
|
40
|
+
if (obj.hasOwnProperty(key)) {
|
|
41
|
+
ret[key] = func.call(context, key, obj[key], i++);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return ret;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
module.exports = objMapKeyVal;
|
package/lib/onlyChild.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule onlyChild
|
|
17
|
+
*/
|
|
18
|
+
"use strict";
|
|
19
|
+
|
|
20
|
+
var ReactComponent = require("./ReactComponent");
|
|
21
|
+
|
|
22
|
+
var invariant = require("./invariant");
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Returns the first child in a collection of children and verifies that there
|
|
26
|
+
* is only one child in the collection. The current implementation of this
|
|
27
|
+
* function assumes that a single child gets passed without a wrapper, but the
|
|
28
|
+
* purpose of this helper function is to abstract away the particular structure
|
|
29
|
+
* of children.
|
|
30
|
+
*
|
|
31
|
+
* @param {?object} children Child collection structure.
|
|
32
|
+
* @return {ReactComponent} The first and only `ReactComponent` contained in the
|
|
33
|
+
* structure.
|
|
34
|
+
*/
|
|
35
|
+
function onlyChild(children) {
|
|
36
|
+
("production" !== process.env.NODE_ENV ? invariant(
|
|
37
|
+
ReactComponent.isValidComponent(children),
|
|
38
|
+
'onlyChild must be passed a children with exactly one child.'
|
|
39
|
+
) : invariant(ReactComponent.isValidComponent(children)));
|
|
40
|
+
return children;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
module.exports = onlyChild;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule performanceNow
|
|
17
|
+
* @typechecks static-only
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
"use strict";
|
|
21
|
+
|
|
22
|
+
var ExecutionEnvironment = require("./ExecutionEnvironment");
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Detect if we can use window.performance.now() and gracefully
|
|
26
|
+
* fallback to Date.now() if it doesn't exist.
|
|
27
|
+
* We need to support Firefox < 15 for now due to Facebook's webdriver
|
|
28
|
+
* infrastructure.
|
|
29
|
+
*/
|
|
30
|
+
var performance = null;
|
|
31
|
+
|
|
32
|
+
if (ExecutionEnvironment.canUseDOM) {
|
|
33
|
+
performance = window.performance || window.webkitPerformance;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (!performance || !performance.now) {
|
|
37
|
+
performance = Date;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
var performanceNow = performance.now.bind(performance);
|
|
41
|
+
|
|
42
|
+
module.exports = performanceNow;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule shallowEqual
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
"use strict";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Performs equality by iterating through keys on an object and returning
|
|
23
|
+
* false when any key has values which are not strictly equal between
|
|
24
|
+
* objA and objB. Returns true when the values of all keys are strictly equal.
|
|
25
|
+
*
|
|
26
|
+
* @return {boolean}
|
|
27
|
+
*/
|
|
28
|
+
function shallowEqual(objA, objB) {
|
|
29
|
+
if (objA === objB) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
var key;
|
|
33
|
+
// Test for A's keys different from B.
|
|
34
|
+
for (key in objA) {
|
|
35
|
+
if (objA.hasOwnProperty(key) &&
|
|
36
|
+
(!objB.hasOwnProperty(key) || objA[key] !== objB[key])) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Test for B'a keys missing from A.
|
|
41
|
+
for (key in objB) {
|
|
42
|
+
if (objB.hasOwnProperty(key) && !objA.hasOwnProperty(key)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
module.exports = shallowEqual;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule shouldUpdateReactComponent
|
|
17
|
+
* @typechecks static-only
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
"use strict";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Given a `prevComponent` and `nextComponent`, determines if `prevComponent`
|
|
24
|
+
* should be updated as opposed to being destroyed or replaced.
|
|
25
|
+
*
|
|
26
|
+
* @param {?object} prevComponent
|
|
27
|
+
* @param {?object} nextComponent
|
|
28
|
+
* @return {boolean} True if `prevComponent` should be updated.
|
|
29
|
+
* @protected
|
|
30
|
+
*/
|
|
31
|
+
function shouldUpdateReactComponent(prevComponent, nextComponent) {
|
|
32
|
+
// TODO: Remove warning after a release.
|
|
33
|
+
if (prevComponent && nextComponent &&
|
|
34
|
+
prevComponent.constructor === nextComponent.constructor && (
|
|
35
|
+
(prevComponent.props && prevComponent.props.key) ===
|
|
36
|
+
(nextComponent.props && nextComponent.props.key)
|
|
37
|
+
)) {
|
|
38
|
+
if (prevComponent._owner === nextComponent._owner) {
|
|
39
|
+
return true;
|
|
40
|
+
} else {
|
|
41
|
+
if ("production" !== process.env.NODE_ENV) {
|
|
42
|
+
if (prevComponent.state) {
|
|
43
|
+
console.warn(
|
|
44
|
+
'A recent change to React has been found to impact your code. ' +
|
|
45
|
+
'A mounted component will now be unmounted and replaced by a ' +
|
|
46
|
+
'component (of the same class) if their owners are different. ' +
|
|
47
|
+
'Previously, ownership was not considered when updating.',
|
|
48
|
+
prevComponent,
|
|
49
|
+
nextComponent
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
module.exports = shouldUpdateReactComponent;
|
package/lib/toArray.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule toArray
|
|
17
|
+
* @typechecks
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
var invariant = require("./invariant");
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Convert array-like objects to arrays.
|
|
24
|
+
*
|
|
25
|
+
* This API assumes the caller knows the contents of the data type. For less
|
|
26
|
+
* well defined inputs use createArrayFrom.
|
|
27
|
+
*
|
|
28
|
+
* @param {object|function} obj
|
|
29
|
+
* @return {array}
|
|
30
|
+
*/
|
|
31
|
+
function toArray(obj) {
|
|
32
|
+
var length = obj.length;
|
|
33
|
+
|
|
34
|
+
// Some browse builtin objects can report typeof 'function' (e.g. NodeList in
|
|
35
|
+
// old versions of Safari).
|
|
36
|
+
("production" !== process.env.NODE_ENV ? invariant(
|
|
37
|
+
!Array.isArray(obj) &&
|
|
38
|
+
(typeof obj === 'object' || typeof obj === 'function'),
|
|
39
|
+
'toArray: Array-like object expected'
|
|
40
|
+
) : invariant(!Array.isArray(obj) &&
|
|
41
|
+
(typeof obj === 'object' || typeof obj === 'function')));
|
|
42
|
+
|
|
43
|
+
("production" !== process.env.NODE_ENV ? invariant(
|
|
44
|
+
typeof length === 'number',
|
|
45
|
+
'toArray: Object needs a length property'
|
|
46
|
+
) : invariant(typeof length === 'number'));
|
|
47
|
+
|
|
48
|
+
("production" !== process.env.NODE_ENV ? invariant(
|
|
49
|
+
length === 0 ||
|
|
50
|
+
(length - 1) in obj,
|
|
51
|
+
'toArray: Object should have keys for indices'
|
|
52
|
+
) : invariant(length === 0 ||
|
|
53
|
+
(length - 1) in obj));
|
|
54
|
+
|
|
55
|
+
// Old IE doesn't give collections access to hasOwnProperty. Assume inputs
|
|
56
|
+
// without method will throw during the slice call and skip straight to the
|
|
57
|
+
// fallback.
|
|
58
|
+
if (obj.hasOwnProperty) {
|
|
59
|
+
try {
|
|
60
|
+
return Array.prototype.slice.call(obj);
|
|
61
|
+
} catch (e) {
|
|
62
|
+
// IE < 9 does not support Array#slice on collections objects
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Fall back to copying key by key. This assumes all keys have a value,
|
|
67
|
+
// so will not preserve sparsely populated inputs.
|
|
68
|
+
var ret = Array(length);
|
|
69
|
+
for (var ii = 0; ii < length; ii++) {
|
|
70
|
+
ret[ii] = obj[ii];
|
|
71
|
+
}
|
|
72
|
+
return ret;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
module.exports = toArray;
|