|
2 | 2 |
|
3 | 3 | Object.defineProperty(exports, '__esModule', { value: true }); |
4 | 4 |
|
5 | | -let scheduleTimeout = setTimeout; |
6 | | - |
7 | | -let cancelTimeout = clearTimeout; |
8 | | - |
9 | | -let hasOwnProperty = Object.prototype.hasOwnProperty; |
10 | | - |
11 | | -let slice = Array.prototype.slice; |
12 | | - |
13 | | -let isString = (value) => { |
14 | | - return typeof value === 'string'; |
15 | | -}; |
16 | | - |
17 | | -let isNumber = (value) => { |
18 | | - return typeof value === 'number'; |
19 | | -}; |
20 | | - |
21 | | -let isFunction = (value) => { |
22 | | - return typeof value === 'function'; |
23 | | -}; |
24 | | - |
25 | | -let isArray = (value) => { |
26 | | - return value instanceof Array; |
27 | | -}; |
28 | | - |
29 | | -/** |
30 | | - * Object.is equivalence. |
31 | | - * https://github.com/facebook/fbjs/blob/main/packages/fbjs/src/core/shallowEqual.js#L22 |
32 | | - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is |
33 | | - * |
34 | | - * @param {any} x |
35 | | - * @param {any} y |
36 | | - * @returns {boolean} |
37 | | - */ |
38 | | - let theSame = (x, y) => { |
39 | | - // SameValue algorithm |
40 | | - if (x === y) { |
41 | | - // +0 != -0 |
42 | | - return x !== 0 || 1 / x === 1 / y; |
43 | | - } else { |
44 | | - // NaN == NaN |
45 | | - return x !== x && y !== y; |
46 | | - } |
47 | | -}; |
48 | | - |
49 | | -/** |
50 | | - * |
51 | | - * @param {{}} A |
52 | | - * @param {{}} B |
53 | | - * @returns {boolean} |
54 | | - */ |
55 | | -let objectsShallowEqual = (A, B) => { |
56 | | - if (A === B) { |
57 | | - return true; |
58 | | - } |
59 | | - let kA = Object.keys(A); |
60 | | - let kB = Object.keys(B); |
61 | | - if (kA.length !== kB.length) { |
62 | | - return false; |
63 | | - } |
64 | | - for (let k, i = kA.length - 1; i >= 0; --i) { |
65 | | - k = kA[i]; |
66 | | - if (!( |
67 | | - hasOwnProperty.call(B, k) && |
68 | | - theSame(A[k], B[k]) |
69 | | - )) { |
70 | | - return false; |
71 | | - } |
72 | | - } |
73 | | - return true; |
74 | | -}; |
75 | | - |
76 | | -/** |
77 | | - * |
78 | | - * @param {[]} A |
79 | | - * @param {[]} B |
80 | | - * @returns {boolean} |
81 | | - */ |
82 | | - let arraysShallowEqual = (A, B) => { |
83 | | - if (A === B) { |
84 | | - return true; |
85 | | - } |
86 | | - if (A.length !== B.length) { |
87 | | - return false; |
88 | | - } |
89 | | - for (let i = A.length - 1; i >= 0; --i) { |
90 | | - if (!theSame(A[i], B[i])) { |
91 | | - return false; |
92 | | - } |
93 | | - } |
94 | | - return true; |
95 | | -}; |
96 | | - |
97 | 5 | // Do not support namespace MathML as almost browsers do not support as well |
98 | 6 | const NAMESPACE_HTML = 0; |
99 | 7 | const NAMESPACE_SVG = 1; |
@@ -360,6 +268,98 @@ let walkNativeChildren = (callback, parent, stopBefore) => { |
360 | 268 | } |
361 | 269 | }; |
362 | 270 |
|
| 271 | +let scheduleTimeout = setTimeout; |
| 272 | + |
| 273 | +let cancelTimeout = clearTimeout; |
| 274 | + |
| 275 | +let hasOwnProperty = Object.prototype.hasOwnProperty; |
| 276 | + |
| 277 | +let slice = Array.prototype.slice; |
| 278 | + |
| 279 | +let isString = (value) => { |
| 280 | + return typeof value === 'string'; |
| 281 | +}; |
| 282 | + |
| 283 | +let isNumber = (value) => { |
| 284 | + return typeof value === 'number'; |
| 285 | +}; |
| 286 | + |
| 287 | +let isFunction = (value) => { |
| 288 | + return typeof value === 'function'; |
| 289 | +}; |
| 290 | + |
| 291 | +let isArray = (value) => { |
| 292 | + return value instanceof Array; |
| 293 | +}; |
| 294 | + |
| 295 | +/** |
| 296 | + * Object.is equivalence. |
| 297 | + * https://github.com/facebook/fbjs/blob/main/packages/fbjs/src/core/shallowEqual.js#L22 |
| 298 | + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is |
| 299 | + * |
| 300 | + * @param {any} x |
| 301 | + * @param {any} y |
| 302 | + * @returns {boolean} |
| 303 | + */ |
| 304 | + let theSame = (x, y) => { |
| 305 | + // SameValue algorithm |
| 306 | + if (x === y) { |
| 307 | + // +0 != -0 |
| 308 | + return x !== 0 || 1 / x === 1 / y; |
| 309 | + } else { |
| 310 | + // NaN == NaN |
| 311 | + return x !== x && y !== y; |
| 312 | + } |
| 313 | +}; |
| 314 | + |
| 315 | +/** |
| 316 | + * |
| 317 | + * @param {{}} A |
| 318 | + * @param {{}} B |
| 319 | + * @returns {boolean} |
| 320 | + */ |
| 321 | +let objectsShallowEqual = (A, B) => { |
| 322 | + if (A === B) { |
| 323 | + return true; |
| 324 | + } |
| 325 | + let kA = Object.keys(A); |
| 326 | + let kB = Object.keys(B); |
| 327 | + if (kA.length !== kB.length) { |
| 328 | + return false; |
| 329 | + } |
| 330 | + for (let k, i = kA.length - 1; i >= 0; --i) { |
| 331 | + k = kA[i]; |
| 332 | + if (!( |
| 333 | + hasOwnProperty.call(B, k) && |
| 334 | + theSame(A[k], B[k]) |
| 335 | + )) { |
| 336 | + return false; |
| 337 | + } |
| 338 | + } |
| 339 | + return true; |
| 340 | +}; |
| 341 | + |
| 342 | +/** |
| 343 | + * |
| 344 | + * @param {[]} A |
| 345 | + * @param {[]} B |
| 346 | + * @returns {boolean} |
| 347 | + */ |
| 348 | + let arraysShallowEqual = (A, B) => { |
| 349 | + if (A === B) { |
| 350 | + return true; |
| 351 | + } |
| 352 | + if (A.length !== B.length) { |
| 353 | + return false; |
| 354 | + } |
| 355 | + for (let i = A.length - 1; i >= 0; --i) { |
| 356 | + if (!theSame(A[i], B[i])) { |
| 357 | + return false; |
| 358 | + } |
| 359 | + } |
| 360 | + return true; |
| 361 | +}; |
| 362 | + |
363 | 363 | /** |
364 | 364 | * |
365 | 365 | * @param {Text} node |
@@ -1827,13 +1827,11 @@ let useCallback = (callback, deps) => { |
1827 | 1827 |
|
1828 | 1828 | exports.Fragment = Fragment; |
1829 | 1829 | exports.Text = Text; |
1830 | | -exports.cancelTimeout = cancelTimeout; |
1831 | 1830 | exports.createElement = createElement; |
1832 | 1831 | exports.createPortal = createPortal; |
1833 | 1832 | exports.createRef = createRef; |
1834 | 1833 | exports.jsx = createElement; |
1835 | 1834 | exports.render = render; |
1836 | | -exports.scheduleTimeout = scheduleTimeout; |
1837 | 1835 | exports.useCallback = useCallback; |
1838 | 1836 | exports.useCatch = useCatch; |
1839 | 1837 | exports.useEffect = useEffect; |
|
0 commit comments