Sync upstream modules
crateObjectFrom is no longer used (was used in ReactPropTypes). Others are small changes.
Paul O’Shannessy committed
May 28, 2014 at 15:07 UTC
6c7abd36ddebbe7b70057d4500f4d55176e7c0f9
6 files changed
+27
-68
src/vendor/core/ExecutionEnvironment.js
+7
-2
@@ -20,7 +20,10 @@
20
21
"use strict";
22
23
-var canUseDOM = typeof window !== 'undefined';
23
+var canUseDOM =
24
+ typeof window !== 'undefined' &&
25
+ window.document &&
26
+ typeof window.document.createElement === 'function';
27
28
/**
29
* Simple, lightweight module assisting with the detection and context of
@@ -35,7 +38,9 @@ var ExecutionEnvironment = {
38
canUseWorkers: typeof Worker !== 'undefined',
39
40
canUseEventListeners:
38
- canUseDOM && (window.addEventListener || window.attachEvent),
41
+ canUseDOM && !!(window.addEventListener || window.attachEvent),
42
+
43
+ canUseViewport: canUseDOM && !!window.screen,
44
45
isInWorker: !canUseDOM // For now, this is true - might change in the future.
46
src/vendor/core/createObjectFrom.js
deleted
-61
@@ -1,61 +0,0 @@
1
-/**
2
- * Copyright 2013-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 createObjectFrom
17
- */
18
-
19
-/**
20
- * Construct an object from an array of keys
21
- * and optionally specified value or list of values.
22
- *
23
- * >>> createObjectFrom(['a','b','c']);
24
- * {a: true, b: true, c: true}
25
- *
26
- * >>> createObjectFrom(['a','b','c'], false);
27
- * {a: false, b: false, c: false}
28
- *
29
- * >>> createObjectFrom(['a','b','c'], 'monkey');
30
- * {c:'monkey', b:'monkey' c:'monkey'}
31
- *
32
- * >>> createObjectFrom(['a','b','c'], [1,2,3]);
33
- * {a: 1, b: 2, c: 3}
34
- *
35
- * >>> createObjectFrom(['women', 'men'], [true, false]);
36
- * {women: true, men: false}
37
- *
38
- * @param Array list of keys
39
- * @param mixed optional value or value array. defaults true.
40
- * @returns object
41
- */
42
-function createObjectFrom(keys, values /* = true */) {
43
- if (__DEV__) {
44
- if (!Array.isArray(keys)) {
45
- throw new TypeError('Must pass an array of keys.');
46
- }
47
- }
48
-
49
- var object = {};
50
- var isArray = Array.isArray(values);
51
- if (typeof values == 'undefined') {
52
- values = true;
53
- }
54
-
55
- for (var ii = keys.length; ii--;) {
56
- object[keys[ii]] = isArray ? values[ii] : values;
57
- }
58
- return object;
59
-}
60
-
61
-module.exports = createObjectFrom;
src/vendor/core/mergeHelpers.js
+11
@@ -92,6 +92,17 @@ var mergeHelpers = {
92
);
93
},
94
95
+ /**
96
+ * @param {*} arg
97
+ */
98
+ checkMergeIntoObjectArg: function(arg) {
99
+ invariant(
100
+ (!isTerminal(arg) || typeof arg === 'function') && !Array.isArray(arg),
101
+ 'Tried to merge into an object, instead got %s.',
102
+ arg
103
+ );
104
+ },
105
+
106
/**
107
* Checks that a merge was not given a circular object or an object that had
108
* too great of depth.
src/vendor/core/mergeInto.js
+3
-2
@@ -22,15 +22,16 @@
22
var mergeHelpers = require('mergeHelpers');
23
24
var checkMergeObjectArg = mergeHelpers.checkMergeObjectArg;
25
+var checkMergeIntoObjectArg = mergeHelpers.checkMergeIntoObjectArg;
26
27
/**
28
* Shallow merges two structures by mutating the first parameter.
29
*
29
- * @param {object} one Object to be merged into.
30
+ * @param {object|function} one Object to be merged into.
31
* @param {?object} two Optional object with properties to merge from.
32
*/
33
function mergeInto(one, two) {
33
- checkMergeObjectArg(one);
34
+ checkMergeIntoObjectArg(one);
35
if (two != null) {
36
checkMergeObjectArg(two);
37
for (var key in two) {
src/vendor/core/toArray.js
+1
-1
@@ -25,7 +25,7 @@ var invariant = require('invariant');
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
28
+ * @param {object|function|filelist} obj
29
* @return {array}
30
*/
31
function toArray(obj) {
src/vendor/stubs/EventListener.js
+5
-2
@@ -1,5 +1,6 @@
1
/**
2
* @providesModule EventListener
3
+ * @typechecks
4
*/
5
6
var emptyFunction = require('emptyFunction');
@@ -29,7 +30,7 @@ var EventListener = {
30
target.attachEvent('on' + eventType, callback);
31
return {
32
remove: function() {
32
- target.detachEvent(eventType, callback);
33
+ target.detachEvent('on' + eventType, callback);
34
}
35
};
36
}
@@ -63,7 +64,9 @@ var EventListener = {
64
}
65
};
66
}
66
- }
67
+ },
68
+
69
+ registerDefault: function() {}
70
};
71
72
module.exports = EventListener;