Offset 1, 3 lines modified | Offset 1, 3 lines modified | ||
1 | ·ab489f52a05cb6f576a7f31bbb51ac3b·115632·javascript·optional·libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb | 1 | ·ab489f52a05cb6f576a7f31bbb51ac3b·115632·javascript·optional·libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb |
2 | · | 2 | ·a178180b144bacbd976661b77453694f·120476·javascript·optional·node-underscore_1.13.4~dfsg+~1.11.4-3_all.deb |
Offset 1, 3 lines modified | Offset 1, 3 lines modified | ||
1 | -rw-r--r--···0········0········0········4·2023-01-02·04:09:24.000000·debian-binary | 1 | -rw-r--r--···0········0········0········4·2023-01-02·04:09:24.000000·debian-binary |
2 | -rw-r--r--···0········0········0····11572·2023-01-02·04:09:24.000000·control.tar.xz | 2 | -rw-r--r--···0········0········0····11572·2023-01-02·04:09:24.000000·control.tar.xz |
3 | -rw-r--r--···0········0········0···108 | 3 | -rw-r--r--···0········0········0···108712·2023-01-02·04:09:24.000000·data.tar.xz |
Offset 13, 334 lines modified | Offset 13, 334 lines modified | ||
13 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2023-01-02·04:09:24.000000·./usr/share/nodejs/@types/underscore/ | 13 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2023-01-02·04:09:24.000000·./usr/share/nodejs/@types/underscore/ |
14 | -rw-r--r--···0·root·········(0)·root·········(0)·····1697·2023-01-02·04:09:24.000000·./usr/share/nodejs/@types/underscore/index.d.mts | 14 | -rw-r--r--···0·root·········(0)·root·········(0)·····1697·2023-01-02·04:09:24.000000·./usr/share/nodejs/@types/underscore/index.d.mts |
15 | -rw-r--r--···0·root·········(0)·root·········(0)···242854·2023-01-02·04:09:24.000000·./usr/share/nodejs/@types/underscore/index.d.ts | 15 | -rw-r--r--···0·root·········(0)·root·········(0)···242854·2023-01-02·04:09:24.000000·./usr/share/nodejs/@types/underscore/index.d.ts |
16 | -rw-r--r--···0·root·········(0)·root·········(0)·····2254·2023-01-02·04:09:24.000000·./usr/share/nodejs/@types/underscore/package.json | 16 | -rw-r--r--···0·root·········(0)·root·········(0)·····2254·2023-01-02·04:09:24.000000·./usr/share/nodejs/@types/underscore/package.json |
17 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/ | 17 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/ |
18 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/ | 18 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/ |
19 | -rw-r--r--···0·root·········(0)·root·········(0)······574·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index.js | 19 | -rw-r--r--···0·root·········(0)·root·········(0)······574·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index.js |
20 | -rw-r--r--···0·root·········(0)·root·········(0)·····1085·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index10.js | ||
21 | -rw-r--r--···0·root·········(0)·root·········(0)······270·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index100.js | ||
22 | -rw-r--r--···0·root·········(0)·root·········(0)······ | 20 | -rw-r--r--···0·root·········(0)·root·········(0)······411·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index10.js |
23 | -rw-r--r--···0·root·········(0)·root·········(0)······44 | 21 | -rw-r--r--···0·root·········(0)·root·········(0)······448·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index100.js |
24 | -rw-r--r--···0·root·········(0)·root·········(0)······554·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index10 | 22 | -rw-r--r--···0·root·········(0)·root·········(0)······554·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index101.js |
25 | -rw-r--r--···0·root·········(0)·root·········(0)······405·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index10 | 23 | -rw-r--r--···0·root·········(0)·root·········(0)······405·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index102.js |
26 | -rw-r--r--···0·root·········(0)·root·········(0)······292·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index10 | 24 | -rw-r--r--···0·root·········(0)·root·········(0)······292·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index103.js |
27 | -rw-r--r--···0·root·········(0)·root·········(0)······577·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index10 | 25 | -rw-r--r--···0·root·········(0)·root·········(0)······577·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index104.js |
28 | -rw-r--r--···0·root·········(0)·root·········(0)······571·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index10 | 26 | -rw-r--r--···0·root·········(0)·root·········(0)······571·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index105.js |
29 | -rw-r--r--···0·root·········(0)·root·········(0)······327·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index10 | 27 | -rw-r--r--···0·root·········(0)·root·········(0)······327·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index106.js |
30 | -rw-r--r--···0·root·········(0)·root·········(0)······985·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index10 | 28 | -rw-r--r--···0·root·········(0)·root·········(0)······985·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index107.js |
29 | -rw-r--r--···0·root·········(0)·root·········(0)······464·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index108.js | ||
30 | -rw-r--r--···0·root·········(0)·root·········(0)······981·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index109.js | ||
31 | -rw-r--r--···0·root·········(0)·root·········(0)······331·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index11.js | 31 | -rw-r--r--···0·root·········(0)·root·········(0)······331·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index11.js |
32 | -rw-r--r--···0·root·········(0)·root·········(0)······464·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index110.js | ||
33 | -rw-r--r--···0·root·········(0)·root·········(0)······981·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index111.js | ||
34 | -rw-r--r--···0·root·········(0)·root·········(0)······573·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index11 | 32 | -rw-r--r--···0·root·········(0)·root·········(0)······573·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index110.js |
35 | -rw-r--r--···0·root·········(0)·root·········(0)······220·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index11 | 33 | -rw-r--r--···0·root·········(0)·root·········(0)······220·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index111.js |
36 | -rw-r--r--···0·root·········(0)·root·········(0)······ | 34 | -rw-r--r--···0·root·········(0)·root·········(0)······477·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index112.js |
35 | -rw-r--r--···0·root·········(0)·root·········(0)······192·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index113.js | ||
37 | -rw-r--r--···0·root·········(0)·root·········(0)······580·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index11 | 36 | -rw-r--r--···0·root·········(0)·root·········(0)······580·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index114.js |
38 | -rw-r--r--···0·root·········(0)·root·········(0)······248·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index116.js | ||
39 | -rw-r--r--···0·root·········(0)·root·········(0)······681·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index11 | 37 | -rw-r--r--···0·root·········(0)·root·········(0)······681·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index115.js |
40 | -rw-r--r--···0·root·········(0)·root·········(0)······252·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index11 | 38 | -rw-r--r--···0·root·········(0)·root·········(0)······252·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index116.js |
41 | -rw-r--r--···0·root·········(0)·root·········(0)······401·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index11 | 39 | -rw-r--r--···0·root·········(0)·root·········(0)······401·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index117.js |
42 | -rw-r--r--···0·root·········(0)·root·········(0)······608·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index12.js | ||
43 | -rw-r--r--···0·root·········(0)·root·········(0)·····1001·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index1 | 40 | -rw-r--r--···0·root·········(0)·root·········(0)·····1001·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index118.js |
41 | -rw-r--r--···0·root·········(0)·root·········(0)······715·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index119.js | ||
42 | -rw-r--r--···0·root·········(0)·root·········(0)······233·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index12.js | ||
44 | -rw-r--r--···0·root·········(0)·root·········(0)······329·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index12 | 43 | -rw-r--r--···0·root·········(0)·root·········(0)······329·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index120.js |
45 | -rw-r--r--···0·root·········(0)·root·········(0)······840·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index122.js | ||
46 | -rw-r--r--···0·root·········(0)·root·········(0)······237·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index12 | 44 | -rw-r--r--···0·root·········(0)·root·········(0)······237·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index121.js |
47 | -rw-r--r--···0·root·········(0)·root·········(0)······384·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index12 | 45 | -rw-r--r--···0·root·········(0)·root·········(0)······384·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index122.js |
46 | -rw-r--r--···0·root·········(0)·root·········(0)······840·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index123.js | ||
48 | -rw-r--r--···0·root·········(0)·root·········(0)······296·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index12 | 47 | -rw-r--r--···0·root·········(0)·root·········(0)······296·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index124.js |
49 | -rw-r--r--···0·root·········(0)·root·········(0)······270·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index12 | 48 | -rw-r--r--···0·root·········(0)·root·········(0)······270·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index125.js |
50 | -rw-r--r--···0·root·········(0)·root·········(0)······640·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index12 | 49 | -rw-r--r--···0·root·········(0)·root·········(0)······640·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index126.js |
51 | -rw-r--r--···0·root·········(0)·root·········(0)······ | 50 | -rw-r--r--···0·root·········(0)·root·········(0)······199·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index127.js |
52 | -rw-r--r--···0·root·········(0)·root·········(0)······18 | 51 | -rw-r--r--···0·root·········(0)·root·········(0)······184·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index128.js |
52 | -rw-r--r--···0·root·········(0)·root·········(0)······728·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index129.js | ||
53 | -rw-r--r--···0·root·········(0)·root·········(0)······ | 53 | -rw-r--r--···0·root·········(0)·root·········(0)······608·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index13.js |
54 | -rw-r--r--···0·root·········(0)·root·········(0)······272·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index130.js | 54 | -rw-r--r--···0·root·········(0)·root·········(0)······272·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index130.js |
55 | -rw-r--r--···0·root·········(0)·root·········(0)······348·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index131.js | ||
56 | -rw-r--r--···0·root·········(0)·root·········(0)·····1219·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index13 | 55 | -rw-r--r--···0·root·········(0)·root·········(0)·····1219·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index131.js |
57 | -rw-r--r--···0·root·········(0)·root·········(0)······192·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index133.js | ||
58 | -rw-r--r--···0·root·········(0)·root·········(0)······785·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index13 | 56 | -rw-r--r--···0·root·········(0)·root·········(0)······785·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index132.js |
59 | -rw-r--r--···0·root·········(0)·root·········(0)······ | 57 | -rw-r--r--···0·root·········(0)·root·········(0)······982·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index133.js |
60 | -rw-r--r--···0·root·········(0)·root·········(0)······161·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index13 | 58 | -rw-r--r--···0·root·········(0)·root·········(0)······161·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index134.js |
61 | -rw-r--r--···0·root·········(0)·root·········(0)······264·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index13 | 59 | -rw-r--r--···0·root·········(0)·root·········(0)······264·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index135.js |
62 | -rw-r--r--···0·root·········(0)·root·········(0)······556·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index13 | 60 | -rw-r--r--···0·root·········(0)·root·········(0)······556·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index136.js |
63 | -rw-r--r--···0·root·········(0)·root·········(0)······722·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index13 | 61 | -rw-r--r--···0·root·········(0)·root·········(0)······722·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index137.js |
62 | -rw-r--r--···0·root·········(0)·root·········(0)······587·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index138.js | ||
63 | -rw-r--r--···0·root·········(0)·root·········(0)······338·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index139.js | ||
64 | -rw-r--r--···0·root·········(0)·root·········(0)·····1006·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index14.js | 64 | -rw-r--r--···0·root·········(0)·root·········(0)·····1006·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index14.js |
65 | -rw-r--r--···0·root·········(0)·root·········(0)······587·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index140.js | ||
66 | -rw-r--r--···0·root·········(0)·root·········(0)······338·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index141.js | ||
67 | -rw-r--r--···0·root·········(0)·root·········(0)·····3476·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index14 | 65 | -rw-r--r--···0·root·········(0)·root·········(0)·····3476·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index140.js |
68 | -rw-r--r--···0·root·········(0)·root·········(0)······385·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index143.js | ||
69 | -rw-r--r--···0·root·········(0)·root·········(0)·····1567·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index14 | 66 | -rw-r--r--···0·root·········(0)·root·········(0)·····1567·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index141.js |
67 | -rw-r--r--···0·root·········(0)·root·········(0)······385·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index142.js | ||
70 | -rw-r--r--···0·root·········(0)·root·········(0)······313·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index14 | 68 | -rw-r--r--···0·root·········(0)·root·········(0)······313·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index143.js |
71 | -rw-r--r--···0·root·········(0)·root·········(0)······ | 69 | -rw-r--r--···0·root·········(0)·root·········(0)······161·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index144.js |
72 | -rw-r--r--···0·root·········(0)·root·········(0)······304·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index14 | 70 | -rw-r--r--···0·root·········(0)·root·········(0)······304·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index145.js |
73 | -rw-r--r--···0·root·········(0)·root·········(0)······978·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index14 | 71 | -rw-r--r--···0·root·········(0)·root·········(0)······978·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index146.js |
72 | -rw-r--r--···0·root·········(0)·root·········(0)······844·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index147.js | ||
74 | -rw-r--r--···0·root·········(0)·root·········(0)······210·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index14 | 73 | -rw-r--r--···0·root·········(0)·root·········(0)······210·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index148.js |
74 | -rw-r--r--···0·root·········(0)·root·········(0)······326·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index149.js | ||
75 | -rw-r--r--···0·root·········(0)·root·········(0)······207·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index15.js | 75 | -rw-r--r--···0·root·········(0)·root·········(0)······207·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index15.js |
76 | -rw-r--r--···0·root·········(0)·root·········(0)······844·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index150.js | ||
77 | -rw-r--r--···0·root·········(0)·root·········(0)······326·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index151.js | ||
78 | -rw-r--r--···0·root·········(0)·root·········(0)·····1251·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index15 | 76 | -rw-r--r--···0·root·········(0)·root·········(0)·····1251·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index150.js |
79 | -rw-r--r--···0·root·········(0)·root·········(0)······285·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index15 | 77 | -rw-r--r--···0·root·········(0)·root·········(0)······285·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index151.js |
80 | -rw-r--r--···0·root·········(0)·root·········(0)······471·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index15 | 78 | -rw-r--r--···0·root·········(0)·root·········(0)······471·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index152.js |
81 | -rw-r--r--···0·root·········(0)·root·········(0)······335·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index15 | 79 | -rw-r--r--···0·root·········(0)·root·········(0)······335·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index153.js |
82 | -rw-r--r--···0·root·········(0)·root·········(0)······293·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index15 | 80 | -rw-r--r--···0·root·········(0)·root·········(0)······293·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index154.js |
83 | -rw-r--r--···0·root·········(0)·root·········(0)······29 | 81 | -rw-r--r--···0·root·········(0)·root·········(0)······294·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index155.js |
84 | -rw-r--r--···0·root·········(0)·root·········(0)······329·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index15 | 82 | -rw-r--r--···0·root·········(0)·root·········(0)······329·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index156.js |
83 | -rw-r--r--···0·root·········(0)·root·········(0)······227·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index157.js | ||
84 | -rw-r--r--···0·root·········(0)·root·········(0)······134·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index158.js | ||
85 | -rw-r--r--···0·root·········(0)·root·········(0)······ | 85 | -rw-r--r--···0·root·········(0)·root·········(0)······659·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index159.js |
86 | -rw-r--r--···0·root·········(0)·root·········(0)······191·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index16.js | 86 | -rw-r--r--···0·root·········(0)·root·········(0)······191·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index16.js |
87 | -rw-r--r--···0·root·········(0)·root·········(0)······ | 87 | -rw-r--r--···0·root·········(0)·root·········(0)······348·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index160.js |
88 | -rw-r--r--···0·root·········(0)·root·········(0)······491·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index17.js | 88 | -rw-r--r--···0·root·········(0)·root·········(0)······491·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index17.js |
89 | -rw-r--r--···0·root·········(0)·root·········(0)······240·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index18.js | 89 | -rw-r--r--···0·root·········(0)·root·········(0)······240·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index18.js |
90 | -rw-r--r--···0·root·········(0)·root·········(0)······119·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index19.js | 90 | -rw-r--r--···0·root·········(0)·root·········(0)······119·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index19.js |
91 | -rw-r--r--···0·root·········(0)·root·········(0)······ | 91 | -rw-r--r--···0·root·········(0)·root·········(0)······437·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index2.js |
92 | -rw-r--r--···0·root·········(0)·root·········(0)······436·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index20.js | 92 | -rw-r--r--···0·root·········(0)·root·········(0)······436·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index20.js |
93 | -rw-r--r--···0·root·········(0)·root·········(0)······289·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index21.js | 93 | -rw-r--r--···0·root·········(0)·root·········(0)······289·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index21.js |
94 | -rw-r--r--···0·root·········(0)·root·········(0)······227·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index22.js | 94 | -rw-r--r--···0·root·········(0)·root·········(0)······227·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index22.js |
95 | -rw-r--r--···0·root·········(0)·root·········(0)·····1708·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index23.js | 95 | -rw-r--r--···0·root·········(0)·root·········(0)·····1708·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index23.js |
96 | -rw-r--r--···0·root·········(0)·root·········(0)······888·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index24.js | 96 | -rw-r--r--···0·root·········(0)·root·········(0)······888·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index24.js |
97 | -rw-r--r--···0·root·········(0)·root·········(0)·····2593·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index25.js | 97 | -rw-r--r--···0·root·········(0)·root·········(0)·····2593·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index25.js |
98 | -rw-r--r--···0·root·········(0)·root·········(0)······255·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index26.js | 98 | -rw-r--r--···0·root·········(0)·root·········(0)······255·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index26.js |
99 | -rw-r--r--···0·root·········(0)·root·········(0)······555·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index27.js | 99 | -rw-r--r--···0·root·········(0)·root·········(0)······555·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index27.js |
100 | -rw-r--r--···0·root·········(0)·root·········(0)······401·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index28.js | ||
101 | -rw-r--r--···0·root·········(0)·root·········(0)······293·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index2 | 100 | -rw-r--r--···0·root·········(0)·root·········(0)······293·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index28.js |
101 | -rw-r--r--···0·root·········(0)·root·········(0)······401·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index29.js | ||
102 | -rw-r--r--···0·root·········(0)·root·········(0)····· | 102 | -rw-r--r--···0·root·········(0)·root·········(0)·····1429·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index3.js |
103 | -rw-r--r--···0·root·········(0)·root·········(0)······263·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index30.js | 103 | -rw-r--r--···0·root·········(0)·root·········(0)······263·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index30.js |
104 | -rw-r--r--···0·root·········(0)·root·········(0)······187·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index31.js | ||
105 | -rw-r--r--···0·root·········(0)·root·········(0)······268·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index32.js | ||
106 | -rw-r--r--···0·root·········(0)·root·········(0)······411·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index33.js | ||
107 | -rw-r--r--···0·root·········(0)·root·········(0)······356·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index3 | 104 | -rw-r--r--···0·root·········(0)·root·········(0)······356·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index31.js |
108 | -rw-r--r--···0·root·········(0)·root·········(0)······532·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index3 | 105 | -rw-r--r--···0·root·········(0)·root·········(0)······532·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index32.js |
109 | -rw-r--r--···0·root·········(0)·root·········(0)······631·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index3 | 106 | -rw-r--r--···0·root·········(0)·root·········(0)······631·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index33.js |
110 | -rw-r--r--···0·root·········(0)·root·········(0)······234·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index3 | 107 | -rw-r--r--···0·root·········(0)·root·········(0)······234·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index34.js |
111 | -rw-r--r--···0·root·········(0)·root·········(0)······413·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index3 | 108 | -rw-r--r--···0·root·········(0)·root·········(0)······413·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index35.js |
112 | -rw-r--r--···0·root·········(0)·root·········(0)······288·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index3 | 109 | -rw-r--r--···0·root·········(0)·root·········(0)······288·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index36.js |
113 | -rw-r--r--···0·root·········(0)·root·········(0)······246·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index4.js | ||
114 | -rw-r--r--···0·root·········(0)·root·········(0)······182·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index | 110 | -rw-r--r--···0·root·········(0)·root·········(0)······182·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index37.js |
115 | -rw-r--r--···0·root·········(0)·root·········(0)······456·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index | 111 | -rw-r--r--···0·root·········(0)·root·········(0)······456·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index38.js |
116 | -rw-r--r--···0·root·········(0)·root·········(0)······205·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index | 112 | -rw-r--r--···0·root·········(0)·root·········(0)······205·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index39.js |
113 | -rw-r--r--···0·root·········(0)·root·········(0)······658·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index4.js | ||
117 | -rw-r--r--···0·root·········(0)·root·········(0)······406·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index4 | 114 | -rw-r--r--···0·root·········(0)·root·········(0)······406·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index40.js |
118 | -rw-r--r--···0·root·········(0)·root·········(0)······378·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index4 | 115 | -rw-r--r--···0·root·········(0)·root·········(0)······378·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index41.js |
119 | -rw-r--r--···0·root·········(0)·root·········(0)······403·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index4 | 116 | -rw-r--r--···0·root·········(0)·root·········(0)······403·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index42.js |
120 | -rw-r--r--···0·root·········(0)·root·········(0)·····1291·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index4 | 117 | -rw-r--r--···0·root·········(0)·root·········(0)·····1291·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index43.js |
121 | -rw-r--r--···0·root·········(0)·root·········(0)······199·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index4 | 118 | -rw-r--r--···0·root·········(0)·root·········(0)······199·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index44.js |
122 | -rw-r--r--···0·root·········(0)·root·········(0)······ | 119 | -rw-r--r--···0·root·········(0)·root·········(0)······248·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index45.js |
123 | -rw-r--r--···0·root·········(0)·root·········(0)······337·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index4 | 120 | -rw-r--r--···0·root·········(0)·root·········(0)······337·2023-01-02·04:09:24.000000·./usr/share/nodejs/underscore/amd/index46.js |
Max diff block lines reached; 53978/80423 bytes (67.12%) of diff not shown. |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index9 | 1 | define(['./index91',·'./index25'],·(function(isObject,·_setup)·{ |
2 | ····//·Create·a·naked·function·reference·for·surrogate-prototype-swapping. | 2 | ····//·Create·a·naked·function·reference·for·surrogate-prototype-swapping. |
3 | ····function·ctor()·{ | 3 | ····function·ctor()·{ |
4 | ········return·function()·{}; | 4 | ········return·function()·{}; |
5 | ····} | 5 | ····} |
6 | ····//·An·internal·function·for·creating·a·new·object·that·inherits·from·another. | 6 | ····//·An·internal·function·for·creating·a·new·object·that·inherits·from·another. |
Offset 1, 30 lines modified | Offset 1, 13 lines modified | ||
1 | define(['./index2 | 1 | define(['./index25'],·(function(_setup)·{ |
2 | ····//·Common·internal·logic·for·`isArrayLike`·and·`isBufferLike`. | ||
3 | ····function·createSizePropertyCheck(getSizeProperty)·{ | ||
4 | ········return·function(collection)·{ | ||
5 | ············var·sizeProperty·=·getSizeProperty(collection); | ||
6 | ············return·typeof·sizeProperty·==·'number'·&&·sizeProperty·>=·0·&&·sizeProperty·<=·_setup.MAX_ARRAY_INDEX; | ||
2 | ····//·Internal·helper·to·create·a·reducing·function,·iterating·left·or·right. | ||
3 | ····function·createReduce(dir)·{ | ||
4 | ········//·Wrap·code·that·reassigns·argument·variables·in·a·separate·function·than | ||
5 | ········//·the·one·that·accesses·`arguments.length`·to·avoid·a·perf·hit.·(#1991) | ||
6 | ········var·reducer·=·function(obj,·iteratee,·memo,·initial)·{ | ||
7 | ············var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
8 | ················length·=·(_keys·||·obj).length, | ||
9 | ················index·=·dir·>·0·?·0·:·length·-·1; | ||
10 | ············if·(!initial)·{ | ||
11 | ················memo·=·obj[_keys·?·_keys[index]·:·index]; | ||
12 | ················index·+=·dir; | ||
13 | ············} | ||
14 | ············for·(;·index·>=·0·&&·index·<·length;·index·+=·dir)·{ | ||
15 | ················var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
16 | ················memo·=·iteratee(memo,·obj[currentKey],·currentKey,·obj); | ||
17 | ············} | ||
18 | ············return·memo; | ||
19 | ········} | 7 | ········} |
20 | ········return·function(obj,·iteratee,·memo,·context)·{ | ||
21 | ············var·initial·=·arguments.length·>=·3; | ||
22 | ············return·reducer(obj,·_optimizeCb(iteratee,·context,·4),·memo,·initial); | ||
23 | ········}; | ||
24 | ····} | 8 | ····} |
25 | ····return·create | 9 | ····return·createSizePropertyCheck; |
26 | })); | 10 | })); |
Offset 1, 7 lines modified | Offset 1, 13 lines modified | ||
1 | define(['./index | 1 | define(['./index147',·'./index119'],·(function(underscore,·_baseIteratee)·{ |
2 | ···· | 2 | ····//·External·wrapper·for·our·callback·generator.·Users·may·customize |
3 | ····//·`_.iteratee`·if·they·want·additional·predicate/iteratee·shorthand·styles. | ||
4 | ····//·This·abstraction·hides·the·internal-only·`argCount`·argument. | ||
5 | ····function·iteratee(value,·context)·{ | ||
6 | ········return·_baseIteratee(value,·context,·Infinity); | ||
7 | ····} | ||
8 | ····underscore.iteratee·=·iteratee; | ||
3 | ····return·i | 9 | ····return·iteratee; |
4 | })); | 10 | })); |
Offset 1, 7 lines modified | Offset 1, 18 lines modified | ||
1 | define(['./index2 | 1 | define(['./index91',·'./index25',·'./index18',·'./index3'],·(function(isObject,·_setup,·_has,·_collectNonEnumProps)·{ |
2 | ···· | 2 | ····//·Retrieve·the·names·of·an·object's·own·properties. |
3 | ····//·Delegates·to·**ECMAScript·5**'s·native·`Object.keys`. | ||
4 | ····function·keys(obj)·{ | ||
5 | ········if·(!isObject(obj))·return·[]; | ||
6 | ········if·(_setup.nativeKeys)·return·_setup.nativeKeys(obj); | ||
7 | ········var·keys·=·[]; | ||
8 | ········for·(var·key·in·obj) | ||
9 | ············if·(_has(obj,·key))·keys.push(key); | ||
10 | ········//·Ahem,·IE·<·9. | ||
11 | ········if·(_setup.hasEnumBug)·_collectNonEnumProps(obj,·keys); | ||
12 | ········return·keys; | ||
13 | ····} | ||
3 | ····return· | 14 | ····return·keys; |
4 | })); | 15 | })); |
Offset 1, 13 lines modified | Offset 1, 13 lines modified | ||
1 | define(['./index1 | 1 | define(['./index160'],·(function(rest)·{ |
2 | ····//·External·wrapper·for·our·callback·generator.·Users·may·customize | ||
3 | ····//·`_.iteratee`·if·they·want·additional·predicate/iteratee·shorthand·styles. | ||
4 | ····//·This·abstraction·hides·the·internal-only·`argCount`·argument. | ||
5 | ····function·iteratee(value,·context)·{ | ||
6 | ········ | 2 | ····//·Get·the·last·element·of·an·array.·Passing·**n**·will·return·the·last·N |
3 | ····//·values·in·the·array. | ||
4 | ····function·last(array,·n,·guard)·{ | ||
5 | ········if·(array·==·null·||·array.length·<·1)·return·n·==·null·||·guard·?·void·0·:·[]; | ||
6 | ········if·(n·==·null·||·guard)·return·array[array.length·-·1]; | ||
7 | ········return·rest(array,·Math.max(0,·array.length·-·n)); | ||
7 | ····} | 8 | ····} |
8 | ····underscore.iteratee·=·iteratee; | ||
9 | ····return· | 9 | ····return·last; |
10 | })); | 10 | })); |
Offset 1, 18 lines modified | Offset 1, 9 lines modified | ||
1 | define(['./index | 1 | define(['./index58',·'./index7'],·(function(findLastIndex,·_createIndexFinder)·{ |
2 | ····//·Return·the·position·of·the·last·occurrence·of·an·item·in·an·array, | ||
3 | ····//·or·-1·if·the·item·is·not·included·in·the·array. | ||
4 | ····var·lastIndexOf·=·_createIndexFinder(-1,·findLastIndex); | ||
2 | ····//·Retrieve·the·names·of·an·object's·own·properties. | ||
3 | ····//·Delegates·to·**ECMAScript·5**'s·native·`Object.keys`. | ||
4 | ····function·keys(obj)·{ | ||
5 | ········if·(!isObject(obj))·return·[]; | ||
6 | ········if·(_setup.nativeKeys)·return·_setup.nativeKeys(obj); | ||
7 | ········var·keys·=·[]; | ||
8 | ········for·(var·key·in·obj) | ||
9 | ············if·(_has(obj,·key))·keys.push(key); | ||
10 | ········//·Ahem,·IE·<·9. | ||
11 | ········if·(_setup.hasEnumBug)·_collectNonEnumProps(obj,·keys); | ||
12 | ········return·keys; | ||
13 | ····} | ||
14 | ····return· | 5 | ····return·lastIndexOf; |
15 | })); | 6 | })); |
Offset 1, 13 lines modified | Offset 1, 18 lines modified | ||
1 | define(['./index1 | 1 | define(['./index2',·'./index20',·'./index101'],·(function(_cb,·_isArrayLike,·keys)·{ |
2 | ····//·Get·the·last·element·of·an·array.·Passing·**n**·will·return·the·last·N | ||
3 | ····//·values·in·the·array. | ||
4 | ····function·last(array,·n,·guard)·{ | ||
5 | ········if·(array·==·null·||·array.length·<·1)·return·n·==·null·||·guard·?·void·0·:·[]; | ||
6 | ········if·(n·==·null·||·guard)·return·array[array.length·-·1]; | ||
7 | ···· | 2 | ····//·Return·the·results·of·applying·the·iteratee·to·each·element. |
3 | ····function·map(obj,·iteratee,·context)·{ | ||
4 | ········iteratee·=·_cb(iteratee,·context); | ||
5 | ········var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
6 | ············length·=·(_keys·||·obj).length, | ||
7 | ············results·=·Array(length); | ||
8 | ········for·(var·index·=·0;·index·<·length;·index++)·{ | ||
9 | ············var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
10 | ············results[index]·=·iteratee(obj[currentKey],·currentKey,·obj); | ||
11 | ········} | ||
12 | ········return·results; | ||
8 | ····} | 13 | ····} |
9 | ····return· | 14 | ····return·map; |
10 | })); | 15 | })); |
Offset 1, 9 lines modified | Offset 1, 19 lines modified | ||
1 | define(['./index | 1 | define(['./index2',·'./index101'],·(function(_cb,·keys)·{ |
2 | ····//·Return·the·position·of·the·last·occurrence·of·an·item·in·an·array, | ||
3 | ····//·or·-1·if·the·item·is·not·included·in·the·array. | ||
4 | ···· | 2 | ····//·Returns·the·results·of·applying·the·`iteratee`·to·each·element·of·`obj`. |
3 | ····//·In·contrast·to·`_.map`·it·returns·an·object. | ||
4 | ····function·mapObject(obj,·iteratee,·context)·{ | ||
5 | ········iteratee·=·_cb(iteratee,·context); | ||
6 | ········var·_keys·=·keys(obj), | ||
7 | ············length·=·_keys.length, | ||
8 | ············results·=·{}; | ||
9 | ········for·(var·index·=·0;·index·<·length;·index++)·{ | ||
10 | ············var·currentKey·=·_keys[index]; | ||
11 | ············results[currentKey]·=·iteratee(obj[currentKey],·currentKey,·obj); | ||
12 | ········} | ||
13 | ········return·results; | ||
14 | ····} | ||
5 | ····return· | 15 | ····return·mapObject; |
6 | })); | 16 | })); |
Offset 1, 18 lines modified | Offset 1, 14 lines modified | ||
1 | define(['./index | 1 | define(['./index53',·'./index87'],·(function(extendOwn,·isMatch)·{ |
2 | ····//·Returns·a·predicate·for·checking·whether·an·object·has·a·given·set·of | ||
3 | ····//·`key:value`·pairs. | ||
4 | ····function·matcher(attrs)·{ | ||
5 | ········attrs·=·extendOwn({},·attrs); | ||
6 | ········return·function(obj)·{ | ||
7 | ············return·isMatch(obj,·attrs); | ||
2 | ····//·Return·the·results·of·applying·the·iteratee·to·each·element. | ||
3 | ····function·map(obj,·iteratee,·context)·{ | ||
4 | ········iteratee·=·_cb(iteratee,·context); | ||
5 | ········var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
6 | ············length·=·(_keys·||·obj).length, | ||
7 | ············results·=·Array(length); | ||
8 | ········for·(var·index·=·0;·index·<·length;·index++)·{ | ||
9 | ············var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
10 | ············results[index]·=·iteratee(obj[currentKey],·currentKey,·obj); | ||
11 | ········} | 8 | ········}; |
12 | ········return·results; | ||
13 | ····} | 9 | ····} |
14 | ····return·ma | 10 | ····return·matcher; |
15 | })); | 11 | })); |
Offset 1, 19 lines modified | Offset 1, 31 lines modified | ||
1 | define(['./index | 1 | define(['./index20',·'./index153',·'./index2',·'./index48'],·(function(_isArrayLike,·values,·_cb,·each)·{ |
2 | ····//·Return·the·maximum·element·(or·element-based·computation). | ||
2 | ····//·Returns·the·results·of·applying·the·`iteratee`·to·each·element·of·`obj`. | ||
3 | ····//·In·contrast·to·`_.map`·it·returns·an·object. | ||
4 | ····function·ma | 3 | ····function·max(obj,·iteratee,·context)·{ |
4 | ········var·result·=·-Infinity, | ||
5 | ············lastComputed·=·-Infinity, | ||
6 | ············value,·computed; | ||
7 | ········if·(iteratee·==·null·||·(typeof·iteratee·==·'number'·&&·typeof·obj[0]·!=·'object'·&&·obj·!=·null))·{ | ||
8 | ············obj·=·_isArrayLike(obj)·?·obj·:·values(obj); | ||
9 | ············for·(var·i·=·0,·length·=·obj.length;·i·<·length;·i++)·{ | ||
10 | ················value·=·obj[i]; | ||
11 | ················if·(value·!=·null·&&·value·>·result)·{ | ||
12 | ····················result·=·value; | ||
13 | ················} | ||
14 | ············} | ||
15 | ········}·else·{ | ||
5 | ········iteratee·=·_cb(iteratee,·context); | 16 | ············iteratee·=·_cb(iteratee,·context); |
6 | ········var·_keys·=·keys(obj), | ||
7 | ············ | 17 | ············each(obj,·function(v,·index,·list)·{ |
18 | ················computed·=·iteratee(v,·index,·list); | ||
19 | ················if·(computed·>·lastComputed·||·(computed·===·-Infinity·&&·result·===·-Infinity))·{ | ||
8 | ············result | 20 | ····················result·=·v; |
9 | ········for·(var·index·=·0;·index·<·length;·index++)·{ | ||
10 | ············var·currentKey·=·_keys[index]; | ||
11 | ············ | 21 | ····················lastComputed·=·computed; |
22 | ················} | ||
23 | ············}); | ||
12 | ········} | 24 | ········} |
13 | ········return·result | 25 | ········return·result; |
14 | ····} | 26 | ····} |
15 | ····return·ma | 27 | ····return·max; |
16 | })); | 28 | })); |
Offset 1, 14 lines modified | Offset 1, 17 lines modified | ||
1 | define(['./index | 1 | define(['./index18'],·(function(_has)·{ |
2 | ····//·Returns·a·predicate·for·checking·whether·an·object·has·a·given·set·of | ||
3 | ····//·`key:value`·pairs. | ||
4 | ····function·matcher(attrs)·{ | ||
5 | ········attrs·=·extendOwn({},·attrs); | ||
6 | ········return·function(obj)·{ | ||
7 | ····· | 2 | ····//·Memoize·an·expensive·function·by·storing·its·results. |
3 | ····function·memoize(func,·hasher)·{ | ||
4 | ········var·memoize·=·function(key)·{ | ||
5 | ············var·cache·=·memoize.cache; | ||
6 | ············var·address·=·''·+·(hasher·?·hasher.apply(this,·arguments)·:·key); | ||
7 | ············if·(!_has(cache,·address))·cache[address]·=·func.apply(this,·arguments); | ||
8 | ············return·cache[address]; | ||
8 | ········}; | 9 | ········}; |
10 | ········memoize.cache·=·{}; | ||
11 | ········return·memoize; | ||
9 | ····} | 12 | ····} |
10 | ····return·m | 13 | ····return·memoize; |
11 | })); | 14 | })); |
Offset 1, 31 lines modified | Offset 1, 31 lines modified | ||
1 | define(['./index20',·'./index15 | 1 | define(['./index20',·'./index153',·'./index2',·'./index48'],·(function(_isArrayLike,·values,·_cb,·each)·{ |
2 | ····//·Return·the·m | 2 | ····//·Return·the·minimum·element·(or·element-based·computation). |
3 | ····function·m | 3 | ····function·min(obj,·iteratee,·context)·{ |
4 | ········var·result·=· | 4 | ········var·result·=·Infinity, |
5 | ············lastComputed·=· | 5 | ············lastComputed·=·Infinity, |
6 | ············value,·computed; | 6 | ············value,·computed; |
7 | ········if·(iteratee·==·null·||·(typeof·iteratee·==·'number'·&&·typeof·obj[0]·!=·'object'·&&·obj·!=·null))·{ | 7 | ········if·(iteratee·==·null·||·(typeof·iteratee·==·'number'·&&·typeof·obj[0]·!=·'object'·&&·obj·!=·null))·{ |
8 | ············obj·=·_isArrayLike(obj)·?·obj·:·values(obj); | 8 | ············obj·=·_isArrayLike(obj)·?·obj·:·values(obj); |
9 | ············for·(var·i·=·0,·length·=·obj.length;·i·<·length;·i++)·{ | 9 | ············for·(var·i·=·0,·length·=·obj.length;·i·<·length;·i++)·{ |
10 | ················value·=·obj[i]; | 10 | ················value·=·obj[i]; |
11 | ················if·(value·!=·null·&&·value· | 11 | ················if·(value·!=·null·&&·value·<·result)·{ |
12 | ····················result·=·value; | 12 | ····················result·=·value; |
13 | ················} | 13 | ················} |
14 | ············} | 14 | ············} |
15 | ········}·else·{ | 15 | ········}·else·{ |
16 | ············iteratee·=·_cb(iteratee,·context); | 16 | ············iteratee·=·_cb(iteratee,·context); |
17 | ············each(obj,·function(v,·index,·list)·{ | 17 | ············each(obj,·function(v,·index,·list)·{ |
18 | ················computed·=·iteratee(v,·index,·list); | 18 | ················computed·=·iteratee(v,·index,·list); |
19 | ················if·(computed· | 19 | ················if·(computed·<·lastComputed·||·(computed·===·Infinity·&&·result·===·Infinity))·{ |
20 | ····················result·=·v; | 20 | ····················result·=·v; |
21 | ····················lastComputed·=·computed; | 21 | ····················lastComputed·=·computed; |
22 | ················} | 22 | ················} |
23 | ············}); | 23 | ············}); |
24 | ········} | 24 | ········} |
25 | ········return·result; | 25 | ········return·result; |
26 | ····} | 26 | ····} |
27 | ····return·m | 27 | ····return·min; |
28 | })); | 28 | })); |
Offset 1, 17 lines modified | Offset 1, 18 lines modified | ||
1 | define(['./index18'],·(function(_has)·{ | 1 | define(['./index147',·'./index48',·'./index62',·'./index25',·'./index6'],·(function(underscore,·each,·functions,·_setup,·_chainResult)·{ |
2 | ····//·Memoize·an·expensive·function·by·storing·its·results. | ||
3 | ····function·memoize(func,·hasher)·{ | ||
4 | ········var·memoize·=·function(key)·{ | ||
5 | ············var·cache·=·memoize.cache; | ||
6 | ············var·address·=·''·+·(hasher·?·hasher.apply(this,·arguments)·:·key); | ||
7 | ············if·(!_has(cache,·address))·cache[address]·=·func.apply(this,·arguments); | ||
8 | ········ | 2 | ····//·Add·your·own·custom·functions·to·the·Underscore·object. |
3 | ····function·mixin(obj)·{ | ||
4 | ········each(functions(obj),·function(name)·{ | ||
5 | ············var·func·=·underscore[name]·=·obj[name]; | ||
6 | ············underscore.prototype[name]·=·function()·{ | ||
7 | ················var·args·=·[this._wrapped]; | ||
8 | ················_setup.push.apply(args,·arguments); | ||
9 | ················return·_chainResult(this,·func.apply(underscore,·args)); | ||
10 | ············}; | ||
9 | ········}; | 11 | ········}); |
10 | ········memoize.cache·=·{}; | ||
11 | ········return· | 12 | ········return·underscore; |
12 | ····} | 13 | ····} |
13 | ····return·m | 14 | ····return·mixin; |
14 | })); | 15 | })); |
Offset 1, 31 lines modified | Offset 1, 12 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Returns·a·negated·version·of·the·passed-in·predicate. | ||
3 | ····function·negate(predicate)·{ | ||
4 | ········return·function()·{ | ||
5 | ············return·!predicate.apply(this,·arguments); | ||
2 | ····//·Return·the·minimum·element·(or·element-based·computation). | ||
3 | ····function·min(obj,·iteratee,·context)·{ | ||
4 | ········var·result·=·Infinity, | ||
5 | ············lastComputed·=·Infinity, | ||
6 | ············value,·computed; | ||
7 | ········if·(iteratee·==·null·||·(typeof·iteratee·==·'number'·&&·typeof·obj[0]·!=·'object'·&&·obj·!=·null))·{ | ||
8 | ············obj·=·_isArrayLike(obj)·?·obj·:·values(obj); | ||
9 | ············for·(var·i·=·0,·length·=·obj.length;·i·<·length;·i++)·{ | ||
10 | ················value·=·obj[i]; | ||
11 | ················if·(value·!=·null·&&·value·<·result)·{ | ||
12 | ····················result·=·value; | ||
13 | ················} | ||
14 | ············} | ||
15 | ········}·else·{ | ||
16 | ············iteratee·=·_cb(iteratee,·context); | ||
17 | ············each(obj,·function(v,·index,·list)·{ | ||
18 | ················computed·=·iteratee(v,·index,·list); | ||
19 | ················if·(computed·<·lastComputed·||·(computed·===·Infinity·&&·result·===·Infinity))·{ | ||
20 | ····················result·=·v; | ||
21 | ····················lastComputed·=·computed; | ||
22 | ················} | ||
23 | ············}); | ||
24 | ········} | 6 | ········}; |
25 | ········return·result; | ||
26 | ····} | 7 | ····} |
27 | ····return· | 8 | ····return·negate; |
28 | })); | 9 | })); |
Offset 1, 18 lines modified | Offset 1, 14 lines modified | ||
1 | define(['./index1 | 1 | define(['./index131',·'./index14',·'./index54',·'./index40'],·(function(restArguments,·_flatten,·filter,·contains)·{ |
2 | ····//·Take·the·difference·between·one·array·and·a·number·of·other·arrays. | ||
3 | ····//·Only·the·elements·present·in·just·the·first·array·will·remain. | ||
4 | ····var·difference·=·restArguments(function(array,·rest)·{ | ||
5 | ········rest·=·_flatten(rest,·true,·true); | ||
6 | ········return·filter(array,·function(value)·{ | ||
7 | ············return·!contains(rest,·value); | ||
2 | ····//·Add·your·own·custom·functions·to·the·Underscore·object. | ||
3 | ····function·mixin(obj)·{ | ||
4 | ········each(functions(obj),·function(name)·{ | ||
5 | ············var·func·=·underscore[name]·=·obj[name]; | ||
6 | ············underscore.prototype[name]·=·function()·{ | ||
7 | ················var·args·=·[this._wrapped]; | ||
8 | ················_setup.push.apply(args,·arguments); | ||
9 | ················return·_chainResult(this,·func.apply(underscore,·args)); | ||
10 | ············}; | ||
11 | ········}); | 8 | ········}); |
12 | ········return·underscore; | ||
13 | ····} | 9 | ····}); |
14 | ····return· | 10 | ····return·difference; |
15 | })); | 11 | })); |
Offset 1, 12 lines modified | Offset 1, 10 lines modified | ||
1 | define((function()·{ | 1 | define((function()·{ |
2 | ····//·A·(possibly·faster)·way·to·get·the·current·timestamp·as·an·integer. | ||
3 | ····var·now·=·Date.now·||·function()·{ | ||
4 | ········return·new·Date().getTime(); | ||
2 | ····//·Returns·a·negated·version·of·the·passed-in·predicate. | ||
3 | ····function·negate(predicate)·{ | ||
4 | ········return·function()·{ | ||
5 | ············return·!predicate.apply(this,·arguments); | ||
6 | ········}; | ||
7 | ····} | 5 | ····}; |
8 | ····return·n | 6 | ····return·now; |
9 | })); | 7 | })); |
Offset 1, 8 lines modified | Offset 1, 20 lines modified | ||
1 | define((function()·{ | 1 | define(['./index16'],·(function(_getLength)·{ |
2 | ····//·Predicate-generating·function.·Often·useful·outside·of·Underscore. | ||
3 | ···· | 2 | ····//·Converts·lists·into·objects.·Pass·either·a·single·array·of·`[key,·value]` |
3 | ····//·pairs,·or·two·parallel·arrays·of·the·same·length·--·one·of·keys,·and·one·of | ||
4 | ····//·the·corresponding·values.·Passing·by·pairs·is·the·reverse·of·`_.pairs`. | ||
5 | ····function·object(list,·values)·{ | ||
6 | ········var·result·=·{}; | ||
7 | ········for·(var·i·=·0,·length·=·_getLength(list);·i·<·length;·i++)·{ | ||
8 | ············if·(values)·{ | ||
9 | ················result[list[i]]·=·values[i]; | ||
10 | ············}·else·{ | ||
11 | ················result[list[i][0]]·=·list[i][1]; | ||
12 | ············} | ||
13 | ········} | ||
14 | ········return·result; | ||
15 | ····} | ||
4 | ····return· | 16 | ····return·object; |
5 | })); | 17 | })); |
Offset 1, 20 lines modified | Offset 1, 21 lines modified | ||
1 | define(['./index1 | 1 | define(['./index131',·'./index85',·'./index111',·'./index104',·'./index14',·'./index40',·'./index123'],·(function(restArguments,·isFunction,·negate,·map,·_flatten,·contains,·pick)·{ |
2 | ····//·Return·a·copy·of·the·object·without·the·disallowed·properties. | ||
3 | ····var·omit·=·restArguments(function(obj,·keys)·{ | ||
4 | ········var·iteratee·=·keys[0], | ||
5 | ············context; | ||
6 | ········if·(isFunction(iteratee))·{ | ||
7 | ············iteratee·=·negate(iteratee); | ||
8 | ············if·(keys.length·>·1)·context·=·keys[1]; | ||
2 | ····//·Converts·lists·into·objects.·Pass·either·a·single·array·of·`[key,·value]` | ||
3 | ····//·pairs,·or·two·parallel·arrays·of·the·same·length·--·one·of·keys,·and·one·of | ||
4 | ····//·the·corresponding·values.·Passing·by·pairs·is·the·reverse·of·`_.pairs`. | ||
5 | ····function·object(list,·values)·{ | ||
6 | ········var·result·=·{}; | ||
7 | ········for·(var·i·=·0,·length·=·_getLength(list);·i·<·length;·i++)·{ | ||
8 | ············if·(values)·{ | ||
9 | ················result[list[i]]·=·values[i]; | ||
10 | ········ | 9 | ········}·else·{ |
11 | ·············· | 10 | ············keys·=·map(_flatten(keys,·false,·false),·String); |
11 | ············iteratee·=·function(value,·key)·{ | ||
12 | ················return·!contains(keys,·key); | ||
12 | ············} | 13 | ············}; |
13 | ········} | 14 | ········} |
14 | ········return·re | 15 | ········return·pick(obj,·iteratee,·context); |
15 | ····} | 16 | ····}); |
16 | ····return·o | 17 | ····return·omit; |
17 | })); | 18 | })); |
Offset 1, 9 lines modified | Offset 1, 9 lines modified | ||
1 | define(['./index1 | 1 | define(['./index118',·'./index31'],·(function(partial,·before)·{ |
2 | ····//·Defers·a·function,·scheduling·it·to·run·after·the·current·call·stack·has | ||
3 | ····//·cleared. | ||
4 | ···· | 2 | ····//·Returns·a·function·that·will·be·executed·at·most·one·time,·no·matter·how |
3 | ····//·often·you·call·it.·Useful·for·lazy·initialization. | ||
4 | ····var·once·=·partial(before,·2); | ||
5 | ····return· | 5 | ····return·once; |
6 | })); | 6 | })); |
Offset 1, 21 lines modified | Offset 1, 17 lines modified | ||
1 | define(['./index1 | 1 | define(['./index101'],·(function(keys)·{ |
2 | ····//·Convert·an·object·into·a·list·of·`[key,·value]`·pairs. | ||
3 | ····//·The·opposite·of·`_.object`·with·one·argument. | ||
4 | ····function·pairs(obj)·{ | ||
5 | ········var·_keys·=·keys(obj); | ||
6 | ········var·length·=·_keys.length; | ||
7 | ········var·pairs·=·Array(length); | ||
8 | ········for·(var·i·=·0;·i·<·length;·i++)·{ | ||
9 | ············pairs[i]·=·[_keys[i],·obj[_keys[i]]]; | ||
2 | ····//·Return·a·copy·of·the·object·without·the·disallowed·properties. | ||
3 | ····var·omit·=·restArguments(function(obj,·keys)·{ | ||
4 | ········var·iteratee·=·keys[0], | ||
5 | ············context; | ||
6 | ········if·(isFunction(iteratee))·{ | ||
7 | ············iteratee·=·negate(iteratee); | ||
8 | ············if·(keys.length·>·1)·context·=·keys[1]; | ||
9 | ········}·else·{ | ||
10 | ············keys·=·map(_flatten(keys,·false,·false),·String); | ||
11 | ············iteratee·=·function(value,·key)·{ | ||
12 | ················return·!contains(keys,·key); | ||
13 | ············}; | ||
14 | ········} | 10 | ········} |
15 | ········return·p | 11 | ········return·pairs; |
16 | ····} | 12 | ····} |
17 | ····return· | 13 | ····return·pairs; |
18 | })); | 14 | })); |
Offset 1, 9 lines modified | Offset 1, 26 lines modified | ||
1 | define(['./index1 | 1 | define(['./index131',·'./index13',·'./index147'],·(function(restArguments,·_executeBound,·underscore)·{ |
2 | ····//·Returns·a·function·that·will·be·executed·at·most·one·time,·no·matter·how | ||
3 | ····//·often·you·call·it.·Useful·for·lazy·initialization. | ||
4 | ···· | 2 | ····//·Partially·apply·a·function·by·creating·a·version·that·has·had·some·of·its |
3 | ····//·arguments·pre-filled,·without·changing·its·dynamic·`this`·context.·`_`·acts | ||
4 | ····//·as·a·placeholder·by·default,·allowing·any·combination·of·arguments·to·be | ||
5 | ····//·pre-filled.·Set·`_.partial.placeholder`·for·a·custom·placeholder·argument. | ||
6 | ····var·partial·=·restArguments(function(func,·boundArgs)·{ | ||
7 | ········var·placeholder·=·partial.placeholder; | ||
8 | ········var·bound·=·function()·{ | ||
9 | ············var·position·=·0, | ||
10 | ················length·=·boundArgs.length; | ||
11 | ············var·args·=·Array(length); | ||
12 | ············for·(var·i·=·0;·i·<·length;·i++)·{ | ||
13 | ················args[i]·=·boundArgs[i]·===·placeholder·?·arguments[position++]·:·boundArgs[i]; | ||
14 | ············} | ||
15 | ············while·(position·<·arguments.length)·args.push(arguments[position++]); | ||
16 | ············return·_executeBound(func,·bound,·this,·this,·args); | ||
17 | ········}; | ||
18 | ········return·bound; | ||
19 | ····}); | ||
5 | ····re | 20 | ····partial.placeholder·=·underscore; |
21 | ····return·partial; | ||
6 | })); | 22 | })); |
Offset 1, 17 lines modified | Offset 1, 15 lines modified | ||
1 | define(['./index10 | 1 | define(['./index65',·'./index85',·'./index91',·'./index75',·'./index106',·'./index122',·'./index24'],·(function(identity,·isFunction,·isObject,·isArray,·matcher,·property,·_optimizeCb)·{ |
2 | ····//·An·internal·function·to·generate·callbacks·that·can·be·applied·to·each | ||
3 | ····//·element·in·a·collection,·returning·the·desired·result·—·either·`_.identity`, | ||
4 | ····//·an·arbitrary·callback,·a·property·matcher,·or·a·property·accessor. | ||
5 | ····function·baseIteratee(value,·context,·argCount)·{ | ||
6 | ········if·(value·==·null)·return·identity; | ||
7 | ········if·(isFunction(value))·return·_optimizeCb(value,·context,·argCount); | ||
8 | ········if·(isObject(value)·&&·!isArray(value))·return·matcher(value); | ||
9 | ········return·property(value); | ||
2 | ····//·Convert·an·object·into·a·list·of·`[key,·value]`·pairs. | ||
3 | ····//·The·opposite·of·`_.object`·with·one·argument. | ||
4 | ····function·pairs(obj)·{ | ||
5 | ········var·_keys·=·keys(obj); | ||
6 | ········var·length·=·_keys.length; | ||
7 | ········var·pairs·=·Array(length); | ||
8 | ········for·(var·i·=·0;·i·<·length;·i++)·{ | ||
9 | ············pairs[i]·=·[_keys[i],·obj[_keys[i]]]; | ||
10 | ········} | ||
11 | ········return·pairs; | ||
12 | ····} | 10 | ····} |
13 | ····return· | 11 | ····return·baseIteratee; |
14 | })); | 12 | })); |
Offset 1, 16 lines modified | Offset 1, 15 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Internal·list·of·HTML·entities·for·escaping. | ||
3 | ····var·escapeMap·=·{ | ||
4 | ········'&':·'&', | ||
5 | ········'<':·'<', | ||
6 | ········'>':·'>', | ||
7 | ········'"':·'"', | ||
8 | ········"'":·''', | ||
9 | ········'`':·'`' | ||
2 | ····//·Internal·function·to·execute·`sourceFunc`·bound·to·`context`·with·optional | ||
3 | ····//·`args`.·Determines·whether·to·execute·a·function·as·a·constructor·or·as·a | ||
4 | ····//·normal·function. | ||
5 | ····function·executeBound(sourceFunc,·boundFunc,·context,·callingContext,·args)·{ | ||
6 | ········if·(!(callingContext·instanceof·boundFunc))·return·sourceFunc.apply(context,·args); | ||
7 | ········var·self·=·_baseCreate(sourceFunc.prototype); | ||
8 | ········var·result·=·sourceFunc.apply(self,·args); | ||
9 | ········if·(isObject(result))·return·result; | ||
10 | ········return·self; | ||
11 | ····} | 10 | ····}; |
12 | ····return·e | 11 | ····return·escapeMap; |
13 | })); | 12 | })); |
Offset 1, 26 lines modified | Offset 1, 11 lines modified | ||
1 | define(['./index1 | 1 | define(['./index17'],·(function(_group)·{ |
2 | ····//·Split·a·collection·into·two·arrays:·one·whose·elements·all·pass·the·given | ||
3 | ····//·truth·test,·and·one·whose·elements·all·do·not·pass·the·truth·test. | ||
4 | ····var·partition·=·_group(function(result,·value,·pass)·{ | ||
5 | ········result[pass·?·0·:·1].push(value); | ||
6 | ····},·true); | ||
2 | ····//·Partially·apply·a·function·by·creating·a·version·that·has·had·some·of·its | ||
3 | ····//·arguments·pre-filled,·without·changing·its·dynamic·`this`·context.·`_`·acts | ||
4 | ····//·as·a·placeholder·by·default,·allowing·any·combination·of·arguments·to·be | ||
5 | ····//·pre-filled.·Set·`_.partial.placeholder`·for·a·custom·placeholder·argument. | ||
6 | ····var·partial·=·restArguments(function(func,·boundArgs)·{ | ||
7 | ········var·placeholder·=·partial.placeholder; | ||
8 | ········var·bound·=·function()·{ | ||
9 | ············var·position·=·0, | ||
10 | ················length·=·boundArgs.length; | ||
11 | ············var·args·=·Array(length); | ||
12 | ············for·(var·i·=·0;·i·<·length;·i++)·{ | ||
13 | ················args[i]·=·boundArgs[i]·===·placeholder·?·arguments[position++]·:·boundArgs[i]; | ||
14 | ············} | ||
15 | ············while·(position·<·arguments.length)·args.push(arguments[position++]); | ||
16 | ············return·_executeBound(func,·bound,·this,·this,·args); | ||
17 | ········}; | ||
18 | ········return·bound; | ||
19 | ····}); | ||
20 | ····partial.placeholder·=·underscore; | ||
21 | ····return·parti | 7 | ····return·partition; |
22 | })); | 8 | })); |
Offset 1, 11 lines modified | Offset 1, 10 lines modified | ||
1 | define(['./index1 | 1 | define(['./index104',·'./index122'],·(function(map,·property)·{ |
2 | ····//·Convenience·version·of·a·common·use·case·of·`_.map`:·fetching·a·property. | ||
3 | ····function·pluck(obj,·key)·{ | ||
4 | ········return·map(obj,·property(key)); | ||
5 | ····} | ||
2 | ····//·Split·a·collection·into·two·arrays:·one·whose·elements·all·pass·the·given | ||
3 | ····//·truth·test,·and·one·whose·elements·all·do·not·pass·the·truth·test. | ||
4 | ····var·partition·=·_group(function(result,·value,·pass)·{ | ||
5 | ········result[pass·?·0·:·1].push(value); | ||
6 | ····},·true); | ||
7 | ····return·p | 6 | ····return·pluck; |
8 | })); | 7 | })); |
Offset 1, 26 lines modified | Offset 1, 14 lines modified | ||
1 | define(['./index1 | 1 | define(['./index11',·'./index30'],·(function(_deepGet,·_toPath)·{ |
2 | ····//·Creates·a·function·that,·when·passed·an·object,·will·traverse·that·object’s | ||
3 | ····//·properties·down·the·given·`path`,·specified·as·an·array·of·keys·or·indices. | ||
4 | ····function·property(path)·{ | ||
5 | ········path·=·_toPath(path); | ||
6 | ········return·function(obj)·{ | ||
7 | ············return·_deepGet(obj,·path); | ||
2 | ····//·Return·a·copy·of·the·object·only·containing·the·allowed·properties. | ||
3 | ····var·pick·=·restArguments(function(obj,·keys)·{ | ||
4 | ········var·result·=·{}, | ||
5 | ············iteratee·=·keys[0]; | ||
6 | ········if·(obj·==·null)·return·result; | ||
7 | ········if·(isFunction(iteratee))·{ | ||
8 | ············if·(keys.length·>·1)·iteratee·=·_optimizeCb(iteratee,·keys[1]); | ||
9 | ············keys·=·allKeys(obj); | ||
10 | ········}·else·{ | ||
11 | ············iteratee·=·_keyInObj; | ||
12 | ············keys·=·_flatten(keys,·false,·false); | ||
13 | ············obj·=·Object(obj); | ||
14 | ········} | 8 | ········}; |
15 | ········for·(var·i·=·0,·length·=·keys.length;·i·<·length;·i++)·{ | ||
16 | ············var·key·=·keys[i]; | ||
17 | ············var·value·=·obj[key]; | ||
18 | ············if·(iteratee(value,·key,·obj))·result[key]·=·value; | ||
19 | ········} | ||
20 | ········return·result; | ||
21 | ····} | 9 | ····} |
22 | ····return·p | 10 | ····return·property; |
23 | })); | 11 | })); |
Offset 1, 10 lines modified | Offset 1, 26 lines modified | ||
1 | define(['./index1 | 1 | define(['./index131',·'./index85',·'./index24',·'./index49',·'./index22',·'./index14'],·(function(restArguments,·isFunction,·_optimizeCb,·allKeys,·_keyInObj,·_flatten)·{ |
2 | ····//·Convenience·version·of·a·common·use·case·of·`_.map`:·fetching·a·property. | ||
3 | ····function·pluck(obj,·key)·{ | ||
4 | ········ | 2 | ····//·Return·a·copy·of·the·object·only·containing·the·allowed·properties. |
3 | ····var·pick·=·restArguments(function(obj,·keys)·{ | ||
4 | ········var·result·=·{}, | ||
5 | ············iteratee·=·keys[0]; | ||
6 | ········if·(obj·==·null)·return·result; | ||
7 | ········if·(isFunction(iteratee))·{ | ||
8 | ············if·(keys.length·>·1)·iteratee·=·_optimizeCb(iteratee,·keys[1]); | ||
9 | ············keys·=·allKeys(obj); | ||
10 | ········}·else·{ | ||
11 | ············iteratee·=·_keyInObj; | ||
12 | ············keys·=·_flatten(keys,·false,·false); | ||
13 | ············obj·=·Object(obj); | ||
14 | ········} | ||
15 | ········for·(var·i·=·0,·length·=·keys.length;·i·<·length;·i++)·{ | ||
16 | ············var·key·=·keys[i]; | ||
17 | ············var·value·=·obj[key]; | ||
18 | ············if·(iteratee(value,·key,·obj))·result[key]·=·value; | ||
19 | ········} | ||
20 | ········return·result; | ||
5 | ····} | 21 | ····}); |
6 | ····return·p | 22 | ····return·pick; |
7 | })); | 23 | })); |
Offset 1, 14 lines modified | Offset 1, 13 lines modified | ||
1 | define(['./index1 | 1 | define(['./index158',·'./index63'],·(function(noop,·get)·{ |
2 | ····//·Generates·a·function·for·a·given·object·that·returns·a·given·property. | ||
2 | ····//·Creates·a·function·that,·when·passed·an·object,·will·traverse·that·object’s | ||
3 | ····//·properties·down·the·given·`path`,·specified·as·an·array·of·keys·or·indices. | ||
4 | ····function·property | 3 | ····function·propertyOf(obj)·{ |
5 | ········ | 4 | ········if·(obj·==·null)·return·noop; |
6 | ········return·function( | 5 | ········return·function(path)·{ |
7 | ············return· | 6 | ············return·get(obj,·path); |
8 | ········}; | 7 | ········}; |
9 | ····} | 8 | ····} |
10 | ····return·property; | 9 | ····return·propertyOf; |
11 | })); | 10 | })); |
Offset 1, 13 lines modified | Offset 1, 14 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Generates·a·function·for·a·given·object·that·returns·a·given·property. | ||
3 | ····function·propertyOf(obj)·{ | ||
4 | ········if·(obj·==·null)·return·noop; | ||
5 | ········return·function(path)·{ | ||
6 | ········ | 2 | ····//·Return·a·random·integer·between·`min`·and·`max`·(inclusive). |
3 | ····function·random(min,·max)·{ | ||
4 | ········if·(max·==·null)·{ | ||
5 | ············max·=·min; | ||
6 | ············min·=·0; | ||
7 | ········} | 7 | ········} |
8 | ········return·min·+·Math.floor(Math.random()·*·(max·-·min·+·1)); | ||
8 | ····} | 9 | ····} |
9 | ····return· | 10 | ····return·random; |
10 | })); | 11 | })); |
Offset 1, 14 lines modified | Offset 1, 27 lines modified | ||
1 | define((function()·{ | 1 | define((function()·{ |
2 | ····//·Return·a·random·integer·between·`min`·and·`max`·(inclusive). | ||
3 | ···· | 2 | ····//·Generate·an·integer·Array·containing·an·arithmetic·progression.·A·port·of |
3 | ····//·the·native·Python·`range()`·function.·See | ||
4 | ····//·[the·Python·documentation](https://docs.python.org/library/functions.html#range). | ||
5 | ····function·range(start,·stop,·step)·{ | ||
4 | ········if·( | 6 | ········if·(stop·==·null)·{ |
5 | ············ | 7 | ············stop·=·start·||·0; |
6 | ············ | 8 | ············start·=·0; |
7 | ········} | 9 | ········} |
8 | ········ | 10 | ········if·(!step)·{ |
11 | ············step·=·stop·<·start·?·-1·:·1; | ||
12 | ········} | ||
13 | ········var·length·=·Math.max(Math.ceil((stop·-·start)·/·step),·0); | ||
14 | ········var·range·=·Array(length); | ||
15 | ········for·(var·idx·=·0;·idx·<·length;·idx++,·start·+=·step)·{ | ||
16 | ············range[idx]·=·start; | ||
17 | ········} | ||
18 | ········return·range; | ||
9 | ····} | 19 | ····} |
10 | ····return·ran | 20 | ····return·range; |
11 | })); | 21 | })); |
Offset 1, 27 lines modified | Offset 1, 9 lines modified | ||
1 | define((function()·{ | 1 | define(['./index8'],·(function(_createReduce)·{ |
2 | ····//·**Reduce**·builds·up·a·single·result·from·a·list·of·values,·aka·`inject`, | ||
3 | ····//·or·`foldl`. | ||
4 | ····var·reduce·=·_createReduce(1); | ||
2 | ····//·Generate·an·integer·Array·containing·an·arithmetic·progression.·A·port·of | ||
3 | ····//·the·native·Python·`range()`·function.·See | ||
4 | ····//·[the·Python·documentation](https://docs.python.org/library/functions.html#range). | ||
5 | ····function·range(start,·stop,·step)·{ | ||
6 | ········if·(stop·==·null)·{ | ||
7 | ············stop·=·start·||·0; | ||
8 | ············start·=·0; | ||
9 | ········} | ||
10 | ········if·(!step)·{ | ||
11 | ············step·=·stop·<·start·?·-1·:·1; | ||
12 | ········} | ||
13 | ········var·length·=·Math.max(Math.ceil((stop·-·start)·/·step),·0); | ||
14 | ········var·range·=·Array(length); | ||
15 | ········for·(var·idx·=·0;·idx·<·length;·idx++,·start·+=·step)·{ | ||
16 | ············range[idx]·=·start; | ||
17 | ········} | ||
18 | ········return·range; | ||
19 | ····} | ||
20 | ····return·r | 5 | ····return·reduce; |
21 | })); | 6 | })); |
Offset 1, 9 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index | 1 | define(['./index8'],·(function(_createReduce)·{ |
2 | ····//·The·right-associative·version·of·reduce,·also·known·as·`foldr`. | ||
2 | ····//·**Reduce**·builds·up·a·single·result·from·a·list·of·values,·aka·`inject`, | ||
3 | ····//·or·`foldl`. | ||
4 | ····var·reduce·=·_createReduce(1); | 3 | ····var·reduceRight·=·_createReduce(-1); |
5 | ····return·reduce; | 4 | ····return·reduceRight; |
6 | })); | 5 | })); |
Offset 1, 8 lines modified | Offset 1, 17 lines modified | ||
1 | define(['./index | 1 | define(['./index25',·'./index78',·'./index39',·'./index21'],·(function(_setup,·isDataView,·constant,·_isBufferLike)·{ |
2 | ····//·The·right-associative·version·of·reduce,·also·known·as·`foldr`. | ||
3 | ···· | 2 | ····//·Is·a·given·value·a·typed·array? |
3 | ····var·typedArrayPattern·=·/\[object·((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/; | ||
4 | ···· | 4 | ····function·isTypedArray(obj)·{ |
5 | ········//·`ArrayBuffer.isView`·is·the·most·future-proof,·so·use·it·when·available. | ||
6 | ········//·Otherwise,·fall·back·on·the·above·regular·expression. | ||
7 | ········return·_setup.nativeIsView·?·(_setup.nativeIsView(obj)·&&·!isDataView(obj))·: | ||
8 | ············_isBufferLike(obj)·&&·typedArrayPattern.test(_setup.toString.call(obj)); | ||
9 | ····} | ||
10 | ····var·isTypedArray$1·=·_setup.supportsArrayBuffer·?·isTypedArray·:·constant(false); | ||
11 | ····return·isTypedArray$1; | ||
5 | })); | 12 | })); |
Offset 1, 15 lines modified | Offset 1, 16 lines modified | ||
1 | define((function()·{ | 1 | define(['./index',·'./index91'],·(function(_baseCreate,·isObject)·{ |
2 | ····//·Internal·list·of·HTML·entities·for·escaping. | ||
3 | ····var·escapeMap·=·{ | ||
4 | ········'&':·'&', | ||
5 | ········'<':·'<', | ||
6 | ········'>':·'>', | ||
7 | ········'"':·'"', | ||
8 | ········"'":·''', | ||
9 | ········ | 2 | ····//·Internal·function·to·execute·`sourceFunc`·bound·to·`context`·with·optional |
3 | ····//·`args`.·Determines·whether·to·execute·a·function·as·a·constructor·or·as·a | ||
4 | ····//·normal·function. | ||
5 | ····function·executeBound(sourceFunc,·boundFunc,·context,·callingContext,·args)·{ | ||
6 | ········if·(!(callingContext·instanceof·boundFunc))·return·sourceFunc.apply(context,·args); | ||
7 | ········var·self·=·_baseCreate(sourceFunc.prototype); | ||
8 | ········var·result·=·sourceFunc.apply(self,·args); | ||
9 | ········if·(isObject(result))·return·result; | ||
10 | ········return·self; | ||
10 | ····} | 11 | ····} |
11 | ····return·e | 12 | ····return·executeBound; |
12 | })); | 13 | })); |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index5 | 1 | define(['./index54',·'./index111',·'./index2'],·(function(filter,·negate,·_cb)·{ |
2 | ····//·Return·all·the·elements·for·which·a·truth·test·fails. | 2 | ····//·Return·all·the·elements·for·which·a·truth·test·fails. |
3 | ····function·reject(obj,·predicate,·context)·{ | 3 | ····function·reject(obj,·predicate,·context)·{ |
4 | ········return·filter(obj,·negate(_cb(predicate)),·context); | 4 | ········return·filter(obj,·negate(_cb(predicate)),·context); |
5 | ····} | 5 | ····} |
6 | ····return·reject; | 6 | ····return·reject; |
Offset 1, 12 lines modified | Offset 1, 36 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Returns·everything·but·the·first·entry·of·the·`array`.·Especially·useful·on | ||
3 | ····//·the·`arguments`·object.·Passing·an·**n**·will·return·the·rest·N·values·in·the | ||
4 | ····//·`array`. | ||
5 | ····function·rest(array,·n,·guard)·{ | ||
6 | ···· | 2 | ····//·Some·functions·take·a·variable·number·of·arguments,·or·a·few·expected |
3 | ····//·arguments·at·the·beginning·and·then·a·variable·number·of·values·to·operate | ||
4 | ····//·on.·This·helper·accumulates·all·remaining·arguments·past·the·function’s | ||
5 | ····//·argument·length·(or·an·explicit·`startIndex`),·into·an·array·that·becomes | ||
6 | ····//·the·last·argument.·Similar·to·ES6’s·"rest·parameter". | ||
7 | ····function·restArguments(func,·startIndex)·{ | ||
8 | ········startIndex·=·startIndex·==·null·?·func.length·-·1·:·+startIndex; | ||
9 | ········return·function()·{ | ||
10 | ············var·length·=·Math.max(arguments.length·-·startIndex,·0), | ||
11 | ················rest·=·Array(length), | ||
12 | ················index·=·0; | ||
13 | ············for·(;·index·<·length;·index++)·{ | ||
14 | ················rest[index]·=·arguments[index·+·startIndex]; | ||
15 | ············} | ||
16 | ············switch·(startIndex)·{ | ||
17 | ················case·0: | ||
18 | ····················return·func.call(this,·rest); | ||
19 | ················case·1: | ||
20 | ····················return·func.call(this,·arguments[0],·rest); | ||
21 | ················case·2: | ||
22 | ····················return·func.call(this,·arguments[0],·arguments[1],·rest); | ||
23 | ············} | ||
24 | ············var·args·=·Array(startIndex·+·1); | ||
25 | ············for·(index·=·0;·index·<·startIndex;·index++)·{ | ||
26 | ················args[index]·=·arguments[index]; | ||
27 | ············} | ||
28 | ············args[startIndex]·=·rest; | ||
29 | ············return·func.apply(this,·args); | ||
30 | ········}; | ||
7 | ····} | 31 | ····} |
8 | ····return·rest; | 32 | ····return·restArguments; |
9 | })); | 33 | })); |
Offset 1, 36 lines modified | Offset 1, 25 lines modified | ||
1 | define((function()·{ | 1 | define(['./index85',·'./index30'],·(function(isFunction,·_toPath)·{ |
2 | ····//·Traverses·the·children·of·`obj`·along·`path`.·If·a·child·is·a·function,·it | ||
3 | ····//·is·invoked·with·its·parent·as·context.·Returns·the·value·of·the·final | ||
4 | ····//·child,·or·`fallback`·if·any·child·is·undefined. | ||
5 | ····function·result(obj,·path,·fallback)·{ | ||
6 | ········path·=·_toPath(path); | ||
7 | ········var·length·=·path.length; | ||
8 | ········if·(!length)·{ | ||
9 | ············return·isFunction(fallback)·?·fallback.call(obj)·:·fallback; | ||
10 | ········} | ||
2 | ····//·Some·functions·take·a·variable·number·of·arguments,·or·a·few·expected | ||
3 | ····//·arguments·at·the·beginning·and·then·a·variable·number·of·values·to·operate | ||
4 | ····//·on.·This·helper·accumulates·all·remaining·arguments·past·the·function’s | ||
5 | ····//·argument·length·(or·an·explicit·`startIndex`),·into·an·array·that·becomes | ||
6 | ····//·the·last·argument.·Similar·to·ES6’s·"rest·parameter". | ||
7 | ····function·restArguments(func,·startIndex)·{ | ||
8 | ········startIndex·=·startIndex·==·null·?·func.length·-·1·:·+startIndex; | ||
9 | ········return·function()·{ | ||
10 | ············var·length·=·Math.max(arguments.length·-·startIndex,·0), | ||
11 | ················rest·=·Array(length), | ||
12 | ················index·=·0; | ||
13 | ········ | 11 | ········for·(var·i·=·0;·i·<·length;·i++)·{ |
14 | ············ | 12 | ············var·prop·=·obj·==·null·?·void·0·:·obj[path[i]]; |
13 | ············if·(prop·===·void·0)·{ | ||
14 | ················prop·=·fallback; | ||
15 | ················i·=·length;·//·Ensure·we·don't·continue·iterating. | ||
15 | ············} | 16 | ············} |
17 | ············obj·=·isFunction(prop)·?·prop.call(obj)·:·prop; | ||
16 | ············switch·(startIndex)·{ | ||
17 | ················case·0: | ||
18 | ····················return·func.call(this,·rest); | ||
19 | ················case·1: | ||
20 | ····················return·func.call(this,·arguments[0],·rest); | ||
21 | ················case·2: | ||
22 | ····················return·func.call(this,·arguments[0],·arguments[1],·rest); | ||
23 | ············} | ||
24 | ············var·args·=·Array(startIndex·+·1); | ||
25 | ············for·(index·=·0;·index·<·startIndex;·index++)·{ | ||
26 | ················args[index]·=·arguments[index]; | ||
27 | ············} | ||
28 | ············args[startIndex]·=·rest; | ||
29 | ············return·func.apply(this,·args); | ||
30 | ········} | 18 | ········} |
19 | ········return·obj; | ||
31 | ····} | 20 | ····} |
32 | ····return·res | 21 | ····return·result; |
33 | })); | 22 | })); |
Offset 1, 10 lines modified | Offset 1, 27 lines modified | ||
1 | define((function()·{ | 1 | define(['./index20',·'./index153',·'./index16',·'./index125',·'./index159'],·(function(_isArrayLike,·values,·_getLength,·random,·toArray)·{ |
2 | ····//·A·(possibly·faster)·way·to·get·the·current·timestamp·as·an·integer. | ||
3 | ····var·now·=·Date.now·||·function()·{ | ||
4 | ········retu | 2 | ····//·Sample·**n**·random·values·from·a·collection·using·the·modern·version·of·the |
3 | ····//·[Fisher-Yates·shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle). | ||
4 | ····//·If·**n**·is·not·specified,·returns·a·single·random·element. | ||
5 | ····//·The·internal·`guard`·argument·allows·it·to·work·with·`_.map`. | ||
6 | ····function·sample(obj,·n,·guard)·{ | ||
7 | ········if·(n·==·null·||·guard)·{ | ||
8 | ············if·(!_isArrayLike(obj))·obj·=·values(obj); | ||
9 | ············return·obj[random(obj.length·-·1)]; | ||
10 | ········} | ||
11 | ········var·sample·=·toArray(obj); | ||
12 | ········var·length·=·_getLength(sample); | ||
13 | ········n·=·Math.max(Math.min(n,·length),·0); | ||
14 | ········var·last·=·length·-·1; | ||
15 | ········for·(var·index·=·0;·index·<·n;·index++)·{ | ||
16 | ············var·rand·=·random(index,·last); | ||
17 | ············var·temp·=·sample[index]; | ||
18 | ············sample[index]·=·sample[rand]; | ||
19 | ············sample[rand]·=·temp; | ||
20 | ········} | ||
21 | ········return·sample.slice(0,·n); | ||
5 | ····} | 22 | ····} |
6 | ····return· | 23 | ····return·sample; |
7 | })); | 24 | })); |
Offset 1, 25 lines modified | Offset 1, 10 lines modified | ||
1 | define(['./index | 1 | define(['./index133'],·(function(sample)·{ |
2 | ····//·Shuffle·a·collection. | ||
3 | ····function·shuffle(obj)·{ | ||
4 | ········return·sample(obj,·Infinity); | ||
2 | ····//·Traverses·the·children·of·`obj`·along·`path`.·If·a·child·is·a·function,·it | ||
3 | ····//·is·invoked·with·its·parent·as·context.·Returns·the·value·of·the·final | ||
4 | ····//·child,·or·`fallback`·if·any·child·is·undefined. | ||
5 | ····function·result(obj,·path,·fallback)·{ | ||
6 | ········path·=·_toPath(path); | ||
7 | ········var·length·=·path.length; | ||
8 | ········if·(!length)·{ | ||
9 | ············return·isFunction(fallback)·?·fallback.call(obj)·:·fallback; | ||
10 | ········} | ||
11 | ········for·(var·i·=·0;·i·<·length;·i++)·{ | ||
12 | ············var·prop·=·obj·==·null·?·void·0·:·obj[path[i]]; | ||
13 | ············if·(prop·===·void·0)·{ | ||
14 | ················prop·=·fallback; | ||
15 | ················i·=·length;·//·Ensure·we·don't·continue·iterating. | ||
16 | ············} | ||
17 | ············obj·=·isFunction(prop)·?·prop.call(obj)·:·prop; | ||
18 | ········} | ||
19 | ········return·obj; | ||
20 | ····} | 5 | ····} |
21 | ····return· | 6 | ····return·shuffle; |
22 | })); | 7 | })); |
Offset 1, 17 lines modified | Offset 1, 11 lines modified | ||
1 | define(['./index2 | 1 | define(['./index20',·'./index101'],·(function(_isArrayLike,·keys)·{ |
2 | ····//·Return·the·number·of·elements·in·a·collection. | ||
2 | ····//·Is·a·given·value·a·typed·array? | ||
3 | ····var·typedArrayPattern·=·/\[object·((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/; | ||
4 | ····function· | 3 | ····function·size(obj)·{ |
4 | ········if·(obj·==·null)·return·0; | ||
5 | ········return·_isArrayLike(obj)·?·obj.length·:·keys(obj).length; | ||
5 | ········//·`ArrayBuffer.isView`·is·the·most·future-proof,·so·use·it·when·available. | ||
6 | ········//·Otherwise,·fall·back·on·the·above·regular·expression. | ||
7 | ········return·_setup.nativeIsView·?·(_setup.nativeIsView(obj)·&&·!isDataView(obj))·: | ||
8 | ············_isBufferLike(obj)·&&·typedArrayPattern.test(_setup.toString.call(obj)); | ||
9 | ····} | 6 | ····} |
7 | ····return·size; | ||
10 | ····var·isTypedArray$1·=·_setup.supportsArrayBuffer·?·isTypedArray·:·constant(false); | ||
11 | ····return·isTypedArray$1; | ||
12 | })); | 8 | })); |
Offset 1, 10 lines modified | Offset 1, 17 lines modified | ||
1 | define(['./index1 | 1 | define(['./index2',·'./index20',·'./index101'],·(function(_cb,·_isArrayLike,·keys)·{ |
2 | ····//·Shuffle·a·collection. | ||
3 | ····function·shuffle(obj)·{ | ||
4 | ········ | 2 | ····//·Determine·if·at·least·one·element·in·the·object·passes·a·truth·test. |
3 | ····function·some(obj,·predicate,·context)·{ | ||
4 | ········predicate·=·_cb(predicate,·context); | ||
5 | ········var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
6 | ············length·=·(_keys·||·obj).length; | ||
7 | ········for·(var·index·=·0;·index·<·length;·index++)·{ | ||
8 | ············var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
9 | ············if·(predicate(obj[currentKey],·currentKey,·obj))·return·true; | ||
10 | ········} | ||
11 | ········return·false; | ||
5 | ····} | 12 | ····} |
6 | ····return·s | 13 | ····return·some; |
7 | })); | 14 | })); |
Offset 1, 11 lines modified | Offset 1, 26 lines modified | ||
1 | define(['./index2 | 1 | define(['./index2',·'./index121',·'./index104'],·(function(_cb,·pluck,·map)·{ |
2 | ····//·Return·the·number·of·elements·in·a·collection. | ||
3 | ····function·size(obj)·{ | ||
4 | ········if·(obj·==·null)·return·0; | ||
5 | ···· | 2 | ····//·Sort·the·object's·values·by·a·criterion·produced·by·an·iteratee. |
3 | ····function·sortBy(obj,·iteratee,·context)·{ | ||
4 | ········var·index·=·0; | ||
5 | ········iteratee·=·_cb(iteratee,·context); | ||
6 | ········return·pluck(map(obj,·function(value,·key,·list)·{ | ||
7 | ············return·{ | ||
8 | ················value:·value, | ||
9 | ················index:·index++, | ||
10 | ················criteria:·iteratee(value,·key,·list) | ||
11 | ············}; | ||
12 | ········}).sort(function(left,·right)·{ | ||
13 | ············var·a·=·left.criteria; | ||
14 | ············var·b·=·right.criteria; | ||
15 | ············if·(a·!==·b)·{ | ||
16 | ················if·(a·>·b·||·a·===·void·0)·return·1; | ||
17 | ················if·(a·<·b·||·b·===·void·0)·return·-1; | ||
18 | ············} | ||
19 | ············return·left.index·-·right.index; | ||
20 | ········}),·'value'); | ||
6 | ····} | 21 | ····} |
7 | ····return·s | 22 | ····return·sortBy; |
8 | })); | 23 | })); |
Offset 1, 17 lines modified | Offset 1, 20 lines modified | ||
1 | define(['./index | 1 | define(['./index2',·'./index16'],·(function(_cb,·_getLength)·{ |
2 | ····//· | 2 | ····//·Use·a·comparator·function·to·figure·out·the·smallest·index·at·which |
3 | ····//·an·object·should·be·inserted·so·as·to·maintain·order.·Uses·binary·search. | ||
3 | ····function·so | 4 | ····function·sortedIndex(array,·obj,·iteratee,·context)·{ |
4 | ········ | 5 | ········iteratee·=·_cb(iteratee,·context,·1); |
5 | ········var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
6 | ············length·=·(_keys·||·obj).length; | ||
7 | ········for·(var·index·=·0;·index·<·length;·index++)·{ | ||
8 | ············var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
9 | ········ | 6 | ········var·value·=·iteratee(obj); |
7 | ········var·low·=·0, | ||
8 | ············high·=·_getLength(array); | ||
9 | ········while·(low·<·high)·{ | ||
10 | ············var·mid·=·Math.floor((low·+·high)·/·2); | ||
11 | ············if·(iteratee(array[mid])·<·value)·low·=·mid·+·1; | ||
12 | ············else·high·=·mid; | ||
10 | ········} | 13 | ········} |
11 | ········return· | 14 | ········return·low; |
12 | ····} | 15 | ····} |
13 | ····return·so | 16 | ····return·sortedIndex; |
14 | })); | 17 | })); |
Offset 1, 26 lines modified | Offset 1, 13 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Sort·the·object's·values·by·a·criterion·produced·by·an·iteratee. | ||
3 | ····function·sortBy(obj,·iteratee,·context)·{ | ||
4 | ········var·index·=·0; | ||
5 | ········iteratee·=·_cb(iteratee,·context); | ||
6 | ···· | 2 | ····//·Invokes·`interceptor`·with·the·`obj`·and·then·returns·`obj`. |
3 | ····//·The·primary·purpose·of·this·method·is·to·"tap·into"·a·method·chain,·in | ||
4 | ····//·order·to·perform·operations·on·intermediate·results·within·the·chain. | ||
5 | ····function·tap(obj,·interceptor)·{ | ||
6 | ········interceptor(obj); | ||
7 | ········ | 7 | ········return·obj; |
8 | ················value:·value, | ||
9 | ················index:·index++, | ||
10 | ················criteria:·iteratee(value,·key,·list) | ||
11 | ············}; | ||
12 | ········}).sort(function(left,·right)·{ | ||
13 | ············var·a·=·left.criteria; | ||
14 | ············var·b·=·right.criteria; | ||
15 | ············if·(a·!==·b)·{ | ||
16 | ················if·(a·>·b·||·a·===·void·0)·return·1; | ||
17 | ················if·(a·<·b·||·b·===·void·0)·return·-1; | ||
18 | ············} | ||
19 | ············return·left.index·-·right.index; | ||
20 | ········}),·'value'); | ||
21 | ····} | 8 | ····} |
22 | ····return· | 9 | ····return·tap; |
23 | })); | 10 | })); |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index16',·'./index20',·'./index7 | 1 | define(['./index16',·'./index20',·'./index75',·'./index74'],·(function(_getLength,·_isArrayLike,·isArray,·isArguments)·{ |
2 | ····//·Internal·implementation·of·a·recursive·`flatten`·function. | 2 | ····//·Internal·implementation·of·a·recursive·`flatten`·function. |
3 | ····function·flatten(input,·depth,·strict,·output)·{ | 3 | ····function·flatten(input,·depth,·strict,·output)·{ |
4 | ········output·=·output·||·[]; | 4 | ········output·=·output·||·[]; |
5 | ········if·(!depth·&&·depth·!==·0)·{ | 5 | ········if·(!depth·&&·depth·!==·0)·{ |
6 | ············depth·=·Infinity; | 6 | ············depth·=·Infinity; |
7 | ········}·else·if·(depth·<=·0)·{ | 7 | ········}·else·if·(depth·<=·0)·{ |
Offset 1, 20 lines modified | Offset 1, 103 lines modified | ||
1 | define(['./index | 1 | define(['./index44',·'./index147',·'./index142'],·(function(defaults,·underscore,·templateSettings)·{ |
2 | ····//·Use·a·comparator·function·to·figure·out·the·smallest·index·at·which | ||
3 | ····//·an·object·should·be·inserted·so·as·to·maintain·order.·Uses·binary·search. | ||
4 | ····function·sortedIndex(array,·obj,·iteratee,·context)·{ | ||
5 | ········iteratee·=·_cb(iteratee,·context,·1); | ||
6 | ······· | 2 | ····//·When·customizing·`_.templateSettings`,·if·you·don't·want·to·define·an |
3 | ····//·interpolation,·evaluation·or·escaping·regex,·we·need·one·that·is | ||
4 | ····//·guaranteed·not·to·match. | ||
5 | ····var·noMatch·=·/(.)^/; | ||
6 | ····//·Certain·characters·need·to·be·escaped·so·that·they·can·be·put·into·a | ||
7 | ····//·string·literal. | ||
8 | ····var·escapes·=·{ | ||
9 | ········"'":·"'", | ||
10 | ········'\\':·'\\', | ||
11 | ········'\r':·'r', | ||
12 | ········'\n':·'n', | ||
13 | ········'\u2028':·'u2028', | ||
14 | ········'\u2029':·'u2029' | ||
15 | ····}; | ||
16 | ····var·escapeRegExp·=·/\\|'|\r|\n|\u2028|\u2029/g; | ||
17 | ····function·escapeChar(match)·{ | ||
18 | ········return·'\\'·+·escapes[match]; | ||
19 | ····} | ||
20 | ····//·In·order·to·prevent·third-party·code·injection·through | ||
21 | ····//·`_.templateSettings.variable`,·we·test·it·against·the·following·regular | ||
22 | ····//·expression.·It·is·intentionally·a·bit·more·liberal·than·just·matching·valid | ||
23 | ····//·identifiers,·but·still·prevents·possible·loopholes·through·defaults·or | ||
24 | ····//·destructuring·assignment. | ||
25 | ····var·bareIdentifier·=·/^\s*(\w|\$)+\s*$/; | ||
26 | ····//·JavaScript·micro-templating,·similar·to·John·Resig's·implementation. | ||
27 | ····//·Underscore·templating·handles·arbitrary·delimiters,·preserves·whitespace, | ||
28 | ····//·and·correctly·escapes·quotes·within·interpolated·code. | ||
29 | ····//·NB:·`oldSettings`·only·exists·for·backwards·compatibility. | ||
30 | ····function·template(text,·settings,·oldSettings)·{ | ||
31 | ········if·(!settings·&&·oldSettings)·settings·=·oldSettings; | ||
32 | ········settings·=·defaults({},·settings,·underscore.templateSettings); | ||
33 | ········//·Combine·delimiters·into·one·regular·expression·via·alternation. | ||
34 | ········var·matcher·=·RegExp([ | ||
35 | ············(settings.escape·||·noMatch).source, | ||
36 | ············(settings.interpolate·||·noMatch).source, | ||
37 | ············(settings.evaluate·||·noMatch).source | ||
38 | ········].join('|')·+·'|$',·'g'); | ||
39 | ········//·Compile·the·template·source,·escaping·string·literals·appropriately. | ||
7 | ········var· | 40 | ········var·index·=·0; |
8 | ············high·=·_getLength(array); | ||
9 | ········while·(low·<·high)·{ | ||
10 | ············var·mid·=·Math.floor((low·+·high)·/·2); | ||
11 | ············if·(iteratee(array[mid])·<·value)·low·=·mid·+·1; | ||
12 | ········ | 41 | ········var·source·=·"__p+='"; |
42 | ········text.replace(matcher,·function(match,·escape,·interpolate,·evaluate,·offset)·{ | ||
43 | ············source·+=·text.slice(index,·offset).replace(escapeRegExp,·escapeChar); | ||
44 | ············index·=·offset·+·match.length; | ||
45 | ············if·(escape)·{ | ||
46 | ················source·+=·"'+\n((__t=("·+·escape·+·"))==null?'':_.escape(__t))+\n'"; | ||
47 | ············}·else·if·(interpolate)·{ | ||
48 | ················source·+=·"'+\n((__t=("·+·interpolate·+·"))==null?'':__t)+\n'"; | ||
49 | ············}·else·if·(evaluate)·{ | ||
50 | ················source·+=·"';\n"·+·evaluate·+·"\n__p+='"; | ||
51 | ············} | ||
52 | ············//·Adobe·VMs·need·the·match·returned·to·produce·the·correct·offset. | ||
53 | ············return·match; | ||
54 | ········}); | ||
55 | ········source·+=·"';\n"; | ||
56 | ········var·argument·=·settings.variable; | ||
57 | ········if·(argument)·{ | ||
58 | ············//·Insure·against·third-party·code·injection.·(CVE-2021-23358) | ||
59 | ············if·(!bareIdentifier.test(argument))·throw·new·Error( | ||
60 | ················'variable·is·not·a·bare·identifier:·'·+·argument | ||
61 | ············); | ||
62 | ········}·else·{ | ||
63 | ············//·If·a·variable·is·not·specified,·place·data·values·in·local·scope. | ||
64 | ············source·=·'with(obj||{}){\n'·+·source·+·'}\n'; | ||
65 | ············argument·=·'obj'; | ||
66 | ········} | ||
67 | ········source·=·"var·__t,__p='',__j=Array.prototype.join,"·+ | ||
68 | ············"print=function(){__p+=__j.call(arguments,'');};\n"·+ | ||
69 | ············source·+·'return·__p;\n'; | ||
70 | ········var·render; | ||
71 | ········try·{ | ||
72 | ············render·=·new·Function(argument,·'_',·source); | ||
73 | ········}·catch·(e)·{ | ||
74 | ············e.source·=·source; | ||
75 | ············throw·e; | ||
13 | ········} | 76 | ········} |
77 | ········var·template·=·function(data)·{ | ||
78 | ············return·render.call(this,·data,·underscore); | ||
79 | ········}; | ||
80 | ········//·Provide·the·compiled·source·as·a·convenience·for·precompilation. | ||
81 | ········template.source·=·'function('·+·argument·+·'){\n'·+·source·+·'}'; | ||
14 | ········return·l | 82 | ········return·template; |
15 | ····} | 83 | ····} |
16 | ····return· | 84 | ····return·template; |
17 | })); | 85 | })); |
Offset 1, 13 lines modified | Offset 1, 51 lines modified | ||
1 | define((function()·{ | 1 | define(['./index113'],·(function(now)·{ |
2 | ····//·Invokes·`interceptor`·with·the·`obj`·and·then·returns·`obj`. | ||
3 | ····//·The·primary·purpose·of·this·method·is·to·"tap·into"·a·method·chain,·in | ||
4 | ····//·order·to·perform·operations·on·intermediate·results·within·the·chain. | ||
5 | ····function·tap(obj,·interceptor)·{ | ||
6 | ········inter | 2 | ····//·Returns·a·function,·that,·when·invoked,·will·only·be·triggered·at·most·once |
3 | ····//·during·a·given·window·of·time.·Normally,·the·throttled·function·will·run | ||
4 | ····//·as·much·as·it·can,·without·ever·going·more·than·once·per·`wait`·duration; | ||
5 | ····//·but·if·you'd·like·to·disable·the·execution·on·the·leading·edge,·pass | ||
6 | ····//·`{leading:·false}`.·To·disable·execution·on·the·trailing·edge,·ditto. | ||
7 | ····function·throttle(func,·wait,·options)·{ | ||
8 | ········var·timeout,·context,·args,·result; | ||
9 | ········var·previous·=·0; | ||
10 | ········if·(!options)·options·=·{}; | ||
11 | ········var·later·=·function()·{ | ||
12 | ············previous·=·options.leading·===·false·?·0·:·now(); | ||
13 | ············timeout·=·null; | ||
14 | ············result·=·func.apply(context,·args); | ||
15 | ············if·(!timeout)·context·=·args·=·null; | ||
16 | ········}; | ||
17 | ········var·throttled·=·function()·{ | ||
18 | ············var·_now·=·now(); | ||
19 | ············if·(!previous·&&·options.leading·===·false)·previous·=·_now; | ||
20 | ············var·remaining·=·wait·-·(_now·-·previous); | ||
21 | ············context·=·this; | ||
22 | ············args·=·arguments; | ||
23 | ············if·(remaining·<=·0·||·remaining·>·wait)·{ | ||
24 | ················if·(timeout)·{ | ||
25 | ····················clearTimeout(timeout); | ||
26 | ····················timeout·=·null; | ||
27 | ················} | ||
28 | ················previous·=·_now; | ||
29 | ················result·=·func.apply(context,·args); | ||
30 | ················if·(!timeout)·context·=·args·=·null; | ||
31 | ············}·else·if·(!timeout·&&·options.trailing·!==·false)·{ | ||
32 | ················timeout·=·setTimeout(later,·remaining); | ||
33 | ············} | ||
34 | ············return·result; | ||
35 | ········}; | ||
36 | ········throttled.cancel·=·function()·{ | ||
37 | ············clearTimeout(timeout); | ||
38 | ············previous·=·0; | ||
39 | ············timeout·=·context·=·args·=·null; | ||
40 | ········}; | ||
7 | ········return·o | 41 | ········return·throttled; |
8 | ····} | 42 | ····} |
9 | ····return·t | 43 | ····return·throttle; |
10 | })); | 44 | })); |
Offset 1, 103 lines modified | Offset 1, 13 lines modified | ||
1 | define(['./index | 1 | define(['./index147'],·(function(underscore)·{ |
2 | ····//·By·default,·Underscore·uses·ERB-style·template·delimiters.·Change·the | ||
3 | ····//·following·template·settings·to·use·alternative·delimiters. | ||
4 | ····var·templateSettings·=·underscore.templateSettings·=·{ | ||
5 | ········evaluate:·/<%([\s\S]+?)%>/g, | ||
6 | ········interpolate:·/<%=([\s\S]+?)%>/g, | ||
7 | ········escape:·/<%-([\s\S]+?)%>/g | ||
2 | ····//·When·customizing·`_.templateSettings`,·if·you·don't·want·to·define·an | ||
3 | ····//·interpolation,·evaluation·or·escaping·regex,·we·need·one·that·is | ||
4 | ····//·guaranteed·not·to·match. | ||
5 | ····var·noMatch·=·/(.)^/; | ||
6 | ····//·Certain·characters·need·to·be·escaped·so·that·they·can·be·put·into·a | ||
7 | ····//·string·literal. | ||
8 | ····var·escapes·=·{ | ||
9 | ········"'":·"'", | ||
10 | ········'\\':·'\\', | ||
11 | ········'\r':·'r', | ||
12 | ········'\n':·'n', | ||
13 | ········'\u2028':·'u2028', | ||
14 | ········'\u2029':·'u2029' | ||
15 | ····}; | 8 | ····}; |
16 | ····var·escapeRegExp·=·/\\|'|\r|\n|\u2028|\u2029/g; | ||
17 | ····function·escapeChar(match)·{ | ||
18 | ········return·'\\'·+·escapes[match]; | ||
19 | ····} | ||
20 | ····//·In·order·to·prevent·third-party·code·injection·through | ||
21 | ····//·`_.templateSettings.variable`,·we·test·it·against·the·following·regular | ||
22 | ····//·expression.·It·is·intentionally·a·bit·more·liberal·than·just·matching·valid | ||
23 | ····//·identifiers,·but·still·prevents·possible·loopholes·through·defaults·or | ||
24 | ····//·destructuring·assignment. | ||
25 | ····var·bareIdentifier·=·/^\s*(\w|\$)+\s*$/; | ||
26 | ····//·JavaScript·micro-templating,·similar·to·John·Resig's·implementation. | ||
27 | ····//·Underscore·templating·handles·arbitrary·delimiters,·preserves·whitespace, | ||
28 | ····//·and·correctly·escapes·quotes·within·interpolated·code. | ||
29 | ····//·NB:·`oldSettings`·only·exists·for·backwards·compatibility. | ||
30 | ····function·template(text,·settings,·oldSettings)·{ | ||
31 | ········if·(!settings·&&·oldSettings)·settings·=·oldSettings; | ||
32 | ········settings·=·defaults({},·settings,·underscore.templateSettings); | ||
33 | ········//·Combine·delimiters·into·one·regular·expression·via·alternation. | ||
34 | ········var·matcher·=·RegExp([ | ||
35 | ············(settings.escape·||·noMatch).source, | ||
36 | ············(settings.interpolate·||·noMatch).source, | ||
37 | ············(settings.evaluate·||·noMatch).source | ||
38 | ········].join('|')·+·'|$',·'g'); | ||
39 | ········//·Compile·the·template·source,·escaping·string·literals·appropriately. | ||
40 | ········var·index·=·0; | ||
41 | ········var·source·=·"__p+='"; | ||
42 | ········text.replace(matcher,·function(match,·escape,·interpolate,·evaluate,·offset)·{ | ||
43 | ············source·+=·text.slice(index,·offset).replace(escapeRegExp,·escapeChar); | ||
44 | ············index·=·offset·+·match.length; | ||
45 | ············if·(escape)·{ | ||
46 | ················source·+=·"'+\n((__t=("·+·escape·+·"))==null?'':_.escape(__t))+\n'"; | ||
47 | ············}·else·if·(interpolate)·{ | ||
48 | ················source·+=·"'+\n((__t=("·+·interpolate·+·"))==null?'':__t)+\n'"; | ||
49 | ············}·else·if·(evaluate)·{ | ||
50 | ················source·+=·"';\n"·+·evaluate·+·"\n__p+='"; | ||
51 | ············} | ||
52 | ············//·Adobe·VMs·need·the·match·returned·to·produce·the·correct·offset. | ||
53 | ············return·match; | ||
54 | ········}); | ||
55 | ········source·+=·"';\n"; | ||
56 | ········var·argument·=·settings.variable; | ||
57 | ········if·(argument)·{ | ||
58 | ············//·Insure·against·third-party·code·injection.·(CVE-2021-23358) | ||
59 | ············if·(!bareIdentifier.test(argument))·throw·new·Error( | ||
60 | ················'variable·is·not·a·bare·identifier:·'·+·argument | ||
61 | ············); | ||
62 | ········}·else·{ | ||
63 | ············//·If·a·variable·is·not·specified,·place·data·values·in·local·scope. | ||
64 | ············source·=·'with(obj||{}){\n'·+·source·+·'}\n'; | ||
65 | ············argument·=·'obj'; | ||
66 | ········} | ||
67 | ········source·=·"var·__t,__p='',__j=Array.prototype.join,"·+ | ||
68 | ············"print=function(){__p+=__j.call(arguments,'');};\n"·+ | ||
69 | ············source·+·'return·__p;\n'; | ||
70 | ········var·render; | ||
71 | ········try·{ | ||
72 | ············render·=·new·Function(argument,·'_',·source); | ||
73 | ········}·catch·(e)·{ | ||
74 | ············e.source·=·source; | ||
75 | ············throw·e; | ||
76 | ········} | ||
77 | ········var·template·=·function(data)·{ | ||
78 | ············return·render.call(this,·data,·underscore); | ||
79 | ········}; | ||
80 | ········//·Provide·the·compiled·source·as·a·convenience·for·precompilation. | ||
81 | ········template.source·=·'function('·+·argument·+·'){\n'·+·source·+·'}'; | ||
82 | ········return·template; | ||
83 | ····} | ||
84 | ····return·template; | 9 | ····return·templateSettings; |
85 | })); | 10 | })); |
Offset 1, 13 lines modified | Offset 1, 13 lines modified | ||
1 | define(['./index | 1 | define(['./index24'],·(function(_optimizeCb)·{ |
2 | ····//·By·default,·Underscore·uses·ERB-style·template·delimiters.·Change·the | ||
3 | ····//·following·template·settings·to·use·alternative·delimiters. | ||
4 | ····var·templateSettings·=·underscore.templateSettings·=·{ | ||
5 | ········evaluate:·/<%([\s\S]+?)%>/g, | ||
6 | ········interpolate:·/<%=([\s\S]+?)%>/g, | ||
7 | ···· | 2 | ····//·Run·a·function·**n**·times. |
3 | ····function·times(n,·iteratee,·context)·{ | ||
4 | ········var·accum·=·Array(Math.max(0,·n)); | ||
5 | ········iteratee·=·_optimizeCb(iteratee,·context,·1); | ||
6 | ········for·(var·i·=·0;·i·<·n;·i++)·accum[i]·=·iteratee(i); | ||
7 | ········return·accum; | ||
8 | ····} | 8 | ····} |
9 | ····return·t | 9 | ····return·times; |
10 | })); | 10 | })); |
Offset 1, 51 lines modified | Offset 1, 10 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Is·a·given·value·a·DOM·element? | ||
3 | ····function·isElement(obj)·{ | ||
4 | ········return·!!(obj·&&·obj.nodeType·===·1); | ||
2 | ····//·Returns·a·function,·that,·when·invoked,·will·only·be·triggered·at·most·once | ||
3 | ····//·during·a·given·window·of·time.·Normally,·the·throttled·function·will·run | ||
4 | ····//·as·much·as·it·can,·without·ever·going·more·than·once·per·`wait`·duration; | ||
5 | ····//·but·if·you'd·like·to·disable·the·execution·on·the·leading·edge,·pass | ||
6 | ····//·`{leading:·false}`.·To·disable·execution·on·the·trailing·edge,·ditto. | ||
7 | ····function·throttle(func,·wait,·options)·{ | ||
8 | ········var·timeout,·context,·args,·result; | ||
9 | ········var·previous·=·0; | ||
10 | ········if·(!options)·options·=·{}; | ||
11 | ········var·later·=·function()·{ | ||
12 | ············previous·=·options.leading·===·false·?·0·:·now(); | ||
13 | ············timeout·=·null; | ||
14 | ············result·=·func.apply(context,·args); | ||
15 | ············if·(!timeout)·context·=·args·=·null; | ||
16 | ········}; | ||
17 | ········var·throttled·=·function()·{ | ||
18 | ············var·_now·=·now(); | ||
19 | ············if·(!previous·&&·options.leading·===·false)·previous·=·_now; | ||
20 | ············var·remaining·=·wait·-·(_now·-·previous); | ||
21 | ············context·=·this; | ||
22 | ············args·=·arguments; | ||
23 | ············if·(remaining·<=·0·||·remaining·>·wait)·{ | ||
24 | ················if·(timeout)·{ | ||
25 | ····················clearTimeout(timeout); | ||
26 | ····················timeout·=·null; | ||
27 | ················} | ||
28 | ················previous·=·_now; | ||
29 | ················result·=·func.apply(context,·args); | ||
30 | ················if·(!timeout)·context·=·args·=·null; | ||
31 | ············}·else·if·(!timeout·&&·options.trailing·!==·false)·{ | ||
32 | ················timeout·=·setTimeout(later,·remaining); | ||
33 | ············} | ||
34 | ············return·result; | ||
35 | ········}; | ||
36 | ········throttled.cancel·=·function()·{ | ||
37 | ············clearTimeout(timeout); | ||
38 | ············previous·=·0; | ||
39 | ············timeout·=·context·=·args·=·null; | ||
40 | ········}; | ||
41 | ········return·throttled; | ||
42 | ····} | 5 | ····} |
43 | ····return· | 6 | ····return·isElement; |
44 | })); | 7 | })); |
Offset 1, 13 lines modified | Offset 1, 12 lines modified | ||
1 | define(['./index | 1 | define(['./index147',·'./index75'],·(function(underscore,·isArray)·{ |
2 | ····//·Normalize·a·(deep)·property·`path`·to·array. | ||
3 | ····//·Like·`_.iteratee`,·this·function·can·be·customized. | ||
4 | ····function·toPath(path)·{ | ||
5 | ········return·isArray(path)·?·path·:·[path]; | ||
2 | ····//·Run·a·function·**n**·times. | ||
3 | ····function·times(n,·iteratee,·context)·{ | ||
4 | ········var·accum·=·Array(Math.max(0,·n)); | ||
5 | ········iteratee·=·_optimizeCb(iteratee,·context,·1); | ||
6 | ········for·(var·i·=·0;·i·<·n;·i++)·accum[i]·=·iteratee(i); | ||
7 | ········return·accum; | ||
8 | ····} | 6 | ····} |
7 | ····underscore.toPath·=·toPath; | ||
9 | ····return·t | 8 | ····return·toPath; |
10 | })); | 9 | })); |
Offset 1, 19 lines modified | Offset 1, 30 lines modified | ||
1 | define(['./index | 1 | define(['./index147',·'./index48',·'./index25',·'./index6'],·(function(underscore,·each,·_setup,·_chainResult)·{ |
2 | ····//·Safely·create·a·real,·live·array·from·anything·iterable. | ||
3 | ···· | 2 | ····//·Add·all·mutator·`Array`·functions·to·the·wrapper. |
3 | ····each(['pop',·'push',·'reverse',·'shift',·'sort',·'splice',·'unshift'],·function(name)·{ | ||
4 | ········var·method·=·_setup.ArrayProto[name]; | ||
5 | ········underscore.prototype[name]·=·function()·{ | ||
6 | ············var·obj·=·this._wrapped; | ||
7 | ············if·(obj·!=·null)·{ | ||
8 | ················method.apply(obj,·arguments); | ||
9 | ················if·((name·===·'shift'·||·name·===·'splice')·&&·obj.length·===·0)·{ | ||
10 | ····················delete·obj[0]; | ||
11 | ················} | ||
12 | ············} | ||
13 | ············return·_chainResult(this,·obj); | ||
14 | ········}; | ||
15 | ····}); | ||
4 | ····function·toArray(obj)·{ | ||
5 | ········if·(!obj)·return·[]; | ||
6 | ········if·(isArray(obj))·return·_setup.slice.call(obj); | ||
7 | ········if·(isString(obj))·{ | ||
8 | ············//·Keep·surrogate·pair·characters·together. | ||
9 | ······· | 16 | ····//·Add·all·accessor·`Array`·functions·to·the·wrapper. |
17 | ····each(['concat',·'join',·'slice'],·function(name)·{ | ||
18 | ········var·method·=·_setup.ArrayProto[name]; | ||
19 | ········underscore.prototype[name]·=·function()·{ | ||
20 | ············var·obj·=·this._wrapped; | ||
21 | ············if·(obj·!=·null)·obj·=·method.apply(obj,·arguments); | ||
22 | ············return·_chainResult(this,·obj); | ||
10 | ········} | 23 | ········}; |
11 | ········if·(_isArrayLike(obj))·return·map(obj,·identity); | ||
12 | ········return·values(obj); | ||
13 | ····} | 24 | ····}); |
14 | ····return· | 25 | ····return·underscore; |
15 | })); | 26 | })); |
Offset 1, 12 lines modified | Offset 1, 29 lines modified | ||
1 | define(['./index | 1 | define(['./index25'],·(function(_setup)·{ |
2 | ····//·Normalize·a·(deep)·property·`path`·to·array. | ||
3 | ····//·Like·`_.iteratee`,·this·function·can·be·customized. | ||
4 | ····function·toPath(path)·{ | ||
5 | ······ | 2 | ····//·If·Underscore·is·called·as·a·function,·it·returns·a·wrapped·object·that·can |
3 | ····//·be·used·OO-style.·This·wrapper·holds·altered·versions·of·all·functions·added | ||
4 | ····//·through·`_.mixin`.·Wrapped·objects·may·be·chained. | ||
5 | ····function·_(obj)·{ | ||
6 | ········if·(obj·instanceof·_)·return·obj; | ||
7 | ········if·(!(this·instanceof·_))·return·new·_(obj); | ||
8 | ········this._wrapped·=·obj; | ||
6 | ····} | 9 | ····} |
7 | ····underscore.toPath·=·toPath; | ||
10 | ····_.VERSION·=·_setup.VERSION; | ||
11 | ····//·Extracts·the·result·from·a·wrapped·and·chained·object. | ||
12 | ····_.prototype.value·=·function()·{ | ||
13 | ········return·this._wrapped; | ||
14 | ····}; | ||
15 | ····//·Provide·unwrapping·proxies·for·some·methods·used·in·engine·operations | ||
16 | ····//·such·as·arithmetic·and·JSON·stringification. | ||
17 | ····_.prototype.valueOf·=·_.prototype.toJSON·=·_.prototype.value; | ||
18 | ····_.prototype.toString·=·function()·{ | ||
19 | ········return·String(this._wrapped); | ||
20 | ····}; | ||
8 | ····return· | 21 | ····return·_; |
9 | })); | 22 | })); |
Offset 1, 30 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index | 1 | define(['./index5',·'./index47'],·(function(_createEscaper,·_unescapeMap)·{ |
2 | ····//·Function·for·unescaping·strings·from·HTML·interpolation. | ||
3 | ····var·unescape·=·_createEscaper(_unescapeMap); | ||
2 | ····//·Add·all·mutator·`Array`·functions·to·the·wrapper. | ||
3 | ····each(['pop',·'push',·'reverse',·'shift',·'sort',·'splice',·'unshift'],·function(name)·{ | ||
4 | ········var·method·=·_setup.ArrayProto[name]; | ||
5 | ········underscore.prototype[name]·=·function()·{ | ||
6 | ············var·obj·=·this._wrapped; | ||
7 | ············if·(obj·!=·null)·{ | ||
8 | ················method.apply(obj,·arguments); | ||
9 | ················if·((name·===·'shift'·||·name·===·'splice')·&&·obj.length·===·0)·{ | ||
10 | ····················delete·obj[0]; | ||
11 | ················} | ||
12 | ············} | ||
13 | ············return·_chainResult(this,·obj); | ||
14 | ········}; | ||
15 | ····}); | ||
16 | ····//·Add·all·accessor·`Array`·functions·to·the·wrapper. | ||
17 | ····each(['concat',·'join',·'slice'],·function(name)·{ | ||
18 | ········var·method·=·_setup.ArrayProto[name]; | ||
19 | ········underscore.prototype[name]·=·function()·{ | ||
20 | ············var·obj·=·this._wrapped; | ||
21 | ············if·(obj·!=·null)·obj·=·method.apply(obj,·arguments); | ||
22 | ············return·_chainResult(this,·obj); | ||
23 | ········}; | ||
24 | ····}); | ||
25 | ····return·un | 4 | ····return·unescape; |
26 | })); | 5 | })); |
Offset 1, 8 lines modified | Offset 1, 11 lines modified | ||
1 | define(['./index | 1 | define(['./index131',·'./index150',·'./index14'],·(function(restArguments,·uniq,·_flatten)·{ |
2 | ····//·Function·for·unescaping·strings·from·HTML·interpolation. | ||
3 | ···· | 2 | ····//·Produce·an·array·that·contains·the·union:·each·distinct·element·from·all·of |
3 | ····//·the·passed-in·arrays. | ||
4 | ····var·union·=·restArguments(function(arrays)·{ | ||
5 | ········return·uniq(_flatten(arrays,·true,·true)); | ||
6 | ····}); | ||
4 | ····return·un | 7 | ····return·union; |
5 | })); | 8 | })); |
Offset 1, 29 lines modified | Offset 1, 37 lines modified | ||
1 | define(['./index2 | 1 | define(['./index77',·'./index2',·'./index16',·'./index40'],·(function(isBoolean,·_cb,·_getLength,·contains)·{ |
2 | ····//·If·Underscore·is·called·as·a·function,·it·returns·a·wrapped·object·that·can | ||
3 | ····//·be·used·OO-style.·This·wrapper·holds·altered·versions·of·all·functions·added | ||
4 | ····//·through·`_.mixin`.·Wrapped·objects·may·be·chained. | ||
5 | ····function·_(obj)·{ | ||
6 | ········if·(obj·instanceof·_)·return·obj; | ||
7 | ········if·(!(this·instanceof·_))·return·new·_(obj); | ||
8 | ········th | 2 | ····//·Produce·a·duplicate-free·version·of·the·array.·If·the·array·has·already |
3 | ····//·been·sorted,·you·have·the·option·of·using·a·faster·algorithm. | ||
4 | ····//·The·faster·algorithm·will·not·work·with·an·iteratee·if·the·iteratee | ||
5 | ····//·is·not·a·one-to-one·function,·so·providing·an·iteratee·will·disable | ||
6 | ····//·the·faster·algorithm. | ||
7 | ····function·uniq(array,·isSorted,·iteratee,·context)·{ | ||
8 | ········if·(!isBoolean(isSorted))·{ | ||
9 | ············context·=·iteratee; | ||
10 | ············iteratee·=·isSorted; | ||
11 | ············isSorted·=·false; | ||
12 | ········} | ||
13 | ········if·(iteratee·!=·null)·iteratee·=·_cb(iteratee,·context); | ||
14 | ········var·result·=·[]; | ||
15 | ········var·seen·=·[]; | ||
16 | ········for·(var·i·=·0,·length·=·_getLength(array);·i·<·length;·i++)·{ | ||
17 | ············var·value·=·array[i], | ||
18 | ················computed·=·iteratee·?·iteratee(value,·i,·array)·:·value; | ||
19 | ············if·(isSorted·&&·!iteratee)·{ | ||
20 | ················if·(!i·||·seen·!==·computed)·result.push(value); | ||
21 | ················seen·=·computed; | ||
22 | ············}·else·if·(iteratee)·{ | ||
23 | ················if·(!contains(seen,·computed))·{ | ||
24 | ····················seen.push(computed); | ||
25 | ····················result.push(value); | ||
26 | ················} | ||
27 | ············}·else·if·(!contains(result,·value))·{ | ||
28 | ················result.push(value); | ||
29 | ············} | ||
30 | ········} | ||
31 | ········return·result; | ||
9 | ····} | 32 | ····} |
10 | ····_.VERSION·=·_setup.VERSION; | ||
11 | ····//·Extracts·the·result·from·a·wrapped·and·chained·object. | ||
12 | ····_.prototype.value·=·function()·{ | ||
13 | ········return·this._wrapped; | ||
14 | ····}; | ||
15 | ····//·Provide·unwrapping·proxies·for·some·methods·used·in·engine·operations | ||
16 | ····//·such·as·arithmetic·and·JSON·stringification. | ||
17 | ····_.prototype.valueOf·=·_.prototype.toJSON·=·_.prototype.value; | ||
18 | ····_.prototype.toString·=·function()·{ | ||
19 | ········return·String(this._wrapped); | ||
20 | ····}; | ||
21 | ····return· | 33 | ····return·uniq; |
22 | })); | 34 | })); |
Offset 1, 11 lines modified | Offset 1, 14 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Generate·a·unique·integer·id·(unique·within·the·entire·client·session). | ||
3 | ····//·Useful·for·temporary·DOM·ids. | ||
4 | ····var·idCounter·=·0; | ||
2 | ····//·Produce·an·array·that·contains·the·union:·each·distinct·element·from·all·of | ||
3 | ····//·the·passed-in·arrays. | ||
4 | ····var·union·=·restArguments(function(arrays)·{ | ||
5 | ········return·uniq(_flatten(arrays,·true,·true)); | ||
6 | ····}); | ||
5 | ····function·uniqueId(prefix)·{ | ||
6 | ········var·id·=·++idCounter·+·''; | ||
7 | ········return·prefix·?·prefix·+·id·:·id; | ||
8 | ····} | ||
7 | ····return·uni | 9 | ····return·uniqueId; |
8 | })); | 10 | })); |
Offset 1, 37 lines modified | Offset 1, 17 lines modified | ||
1 | define(['./index | 1 | define(['./index107',·'./index16',·'./index121'],·(function(max,·_getLength,·pluck)·{ |
2 | ····//·Complement·of·zip.·Unzip·accepts·an·array·of·arrays·and·groups | ||
3 | ····//·each·array's·elements·on·shared·indices. | ||
4 | ····function·unzip(array)·{ | ||
5 | ········var·length·=·(array·&&·max(array,·_getLength).length)·||·0; | ||
6 | ········var·result·=·Array(length); | ||
7 | ········for·(var·index·=·0;·index·<·length;·index++)·{ | ||
8 | ············result[index]·=·pluck(array,·index); | ||
2 | ····//·Produce·a·duplicate-free·version·of·the·array.·If·the·array·has·already | ||
3 | ····//·been·sorted,·you·have·the·option·of·using·a·faster·algorithm. | ||
4 | ····//·The·faster·algorithm·will·not·work·with·an·iteratee·if·the·iteratee | ||
5 | ····//·is·not·a·one-to-one·function,·so·providing·an·iteratee·will·disable | ||
6 | ····//·the·faster·algorithm. | ||
7 | ····function·uniq(array,·isSorted,·iteratee,·context)·{ | ||
8 | ········if·(!isBoolean(isSorted))·{ | ||
9 | ············context·=·iteratee; | ||
10 | ············iteratee·=·isSorted; | ||
11 | ············isSorted·=·false; | ||
12 | ········} | ||
13 | ········if·(iteratee·!=·null)·iteratee·=·_cb(iteratee,·context); | ||
14 | ········var·result·=·[]; | ||
15 | ········var·seen·=·[]; | ||
16 | ········for·(var·i·=·0,·length·=·_getLength(array);·i·<·length;·i++)·{ | ||
17 | ············var·value·=·array[i], | ||
18 | ················computed·=·iteratee·?·iteratee(value,·i,·array)·:·value; | ||
19 | ············if·(isSorted·&&·!iteratee)·{ | ||
20 | ················if·(!i·||·seen·!==·computed)·result.push(value); | ||
21 | ················seen·=·computed; | ||
22 | ············}·else·if·(iteratee)·{ | ||
23 | ················if·(!contains(seen,·computed))·{ | ||
24 | ····················seen.push(computed); | ||
25 | ····················result.push(value); | ||
26 | ················} | ||
27 | ············}·else·if·(!contains(result,·value))·{ | ||
28 | ················result.push(value); | ||
29 | ············} | ||
30 | ········} | 9 | ········} |
31 | ········return·result; | 10 | ········return·result; |
32 | ····} | 11 | ····} |
33 | ····return·uni | 12 | ····return·unzip; |
34 | })); | 13 | })); |
Offset 1, 14 lines modified | Offset 1, 16 lines modified | ||
1 | define((function()·{ | 1 | define(['./index101'],·(function(keys)·{ |
2 | ····//·Generate·a·unique·integer·id·(unique·within·the·entire·client·session). | ||
3 | ····//·Useful·for·temporary·DOM·ids. | ||
4 | ····var·idCounter·=·0; | ||
5 | ····function·uniqueId(prefix)·{ | ||
6 | ········var·id·=·++idCounter·+·''; | ||
7 | ····· | 2 | ····//·Retrieve·the·values·of·an·object's·properties. |
3 | ····function·values(obj)·{ | ||
4 | ········var·_keys·=·keys(obj); | ||
5 | ········var·length·=·_keys.length; | ||
6 | ········var·values·=·Array(length); | ||
7 | ········for·(var·i·=·0;·i·<·length;·i++)·{ | ||
8 | ············values[i]·=·obj[_keys[i]]; | ||
9 | ········} | ||
10 | ········return·values; | ||
8 | ····} | 11 | ····} |
9 | ····return· | 12 | ····return·values; |
10 | })); | 13 | })); |
Offset 1, 17 lines modified | Offset 1, 11 lines modified | ||
1 | define(['./index | 1 | define(['./index54',·'./index106'],·(function(filter,·matcher)·{ |
2 | ····//·Convenience·version·of·a·common·use·case·of·`_.filter`:·selecting·only | ||
3 | ····//·objects·containing·specific·`key:value`·pairs. | ||
4 | ····function·where(obj,·attrs)·{ | ||
5 | ········return·filter(obj,·matcher(attrs)); | ||
2 | ····//·Complement·of·zip.·Unzip·accepts·an·array·of·arrays·and·groups | ||
3 | ····//·each·array's·elements·on·shared·indices. | ||
4 | ····function·unzip(array)·{ | ||
5 | ········var·length·=·(array·&&·max(array,·_getLength).length)·||·0; | ||
6 | ········var·result·=·Array(length); | ||
7 | ········for·(var·index·=·0;·index·<·length;·index++)·{ | ||
8 | ············result[index]·=·pluck(array,·index); | ||
9 | ········} | ||
10 | ········return·result; | ||
11 | ····} | 6 | ····} |
12 | ····return· | 7 | ····return·where; |
13 | })); | 8 | })); |
Offset 1, 16 lines modified | Offset 1, 10 lines modified | ||
1 | define(['./index1 | 1 | define(['./index131',·'./index112'],·(function(restArguments,·difference)·{ |
2 | ····//·Return·a·version·of·the·array·that·does·not·contain·the·specified·value(s). | ||
3 | ····var·without·=·restArguments(function(array,·otherArrays)·{ | ||
4 | ········return·difference(array,·otherArrays); | ||
2 | ····//·Retrieve·the·values·of·an·object's·properties. | ||
3 | ····function·values(obj)·{ | ||
4 | ········var·_keys·=·keys(obj); | ||
5 | ········var·length·=·_keys.length; | ||
6 | ········var·values·=·Array(length); | ||
7 | ········for·(var·i·=·0;·i·<·length;·i++)·{ | ||
8 | ············values[i]·=·obj[_keys[i]]; | ||
9 | ········} | ||
10 | ········return·values; | ||
11 | ····} | 5 | ····}); |
12 | ····return· | 6 | ····return·without; |
13 | })); | 7 | })); |
Offset 1, 11 lines modified | Offset 1, 12 lines modified | ||
1 | define(['./index | 1 | define(['./index118'],·(function(partial)·{ |
2 | ····//·Convenience·version·of·a·common·use·case·of·`_.filter`:·selecting·only | ||
3 | ····//·objects·containing·specific·`key:value`·pairs. | ||
4 | ····function·where(obj,·attrs)·{ | ||
5 | ···· | 2 | ····//·Returns·the·first·function·passed·as·an·argument·to·the·second, |
3 | ····//·allowing·you·to·adjust·arguments,·run·code·before·and·after,·and | ||
4 | ····//·conditionally·execute·the·original·function. | ||
5 | ····function·wrap(func,·wrapper)·{ | ||
6 | ········return·partial(wrapper,·func); | ||
6 | ····} | 7 | ····} |
7 | ····return·w | 8 | ····return·wrap; |
8 | })); | 9 | })); |
Offset 1, 10 lines modified | Offset 1, 9 lines modified | ||
1 | define(['./index13 | 1 | define(['./index131',·'./index152'],·(function(restArguments,·unzip)·{ |
2 | ····//·Zip·together·multiple·lists·into·a·single·array·--·elements·that·share | ||
3 | ····//·an·index·go·together. | ||
4 | ····var·zip·=·restArguments(unzip); | ||
2 | ····//·Return·a·version·of·the·array·that·does·not·contain·the·specified·value(s). | ||
3 | ····var·without·=·restArguments(function(array,·otherArrays)·{ | ||
4 | ········return·difference(array,·otherArrays); | ||
5 | ····}); | ||
6 | ····return· | 5 | ····return·zip; |
7 | })); | 6 | })); |
Offset 1, 12 lines modified | Offset 1, 8 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Predicate-generating·function.·Often·useful·outside·of·Underscore. | ||
3 | ····function·noop()·{} | ||
2 | ····//·Returns·the·first·function·passed·as·an·argument·to·the·second, | ||
3 | ····//·allowing·you·to·adjust·arguments,·run·code·before·and·after,·and | ||
4 | ····//·conditionally·execute·the·original·function. | ||
5 | ····function·wrap(func,·wrapper)·{ | ||
6 | ········return·partial(wrapper,·func); | ||
7 | ····} | ||
8 | ····return· | 4 | ····return·noop; |
9 | })); | 5 | })); |
Offset 1, 27 lines modified | Offset 1, 19 lines modified | ||
1 | define(['./index | 1 | define(['./index75',·'./index25',·'./index94',·'./index20',·'./index104',·'./index65',·'./index153'],·(function(isArray,·_setup,·isString,·_isArrayLike,·map,·identity,·values)·{ |
2 | ····//·Safely·create·a·real,·live·array·from·anything·iterable. | ||
3 | ····var·reStrSymbol·=·/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g; | ||
4 | ····function·toArray(obj)·{ | ||
5 | ········if·(!obj)·return·[]; | ||
6 | ········if·(isArray(obj))·return·_setup.slice.call(obj); | ||
7 | ········if·(isString(obj))·{ | ||
8 | ············//·Keep·surrogate·pair·characters·together. | ||
9 | ············return·obj.match(reStrSymbol); | ||
2 | ····//·Sample·**n**·random·values·from·a·collection·using·the·modern·version·of·the | ||
3 | ····//·[Fisher-Yates·shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle). | ||
4 | ····//·If·**n**·is·not·specified,·returns·a·single·random·element. | ||
5 | ····//·The·internal·`guard`·argument·allows·it·to·work·with·`_.map`. | ||
6 | ····function·sample(obj,·n,·guard)·{ | ||
7 | ········if·(n·==·null·||·guard)·{ | ||
8 | ············if·(!_isArrayLike(obj))·obj·=·values(obj); | ||
9 | ············return·obj[random(obj.length·-·1)]; | ||
10 | ········} | ||
11 | ········var·sample·=·toArray(obj); | ||
12 | ········var·length·=·_getLength(sample); | ||
13 | ········n·=·Math.max(Math.min(n,·length),·0); | ||
14 | ········var·last·=·length·-·1; | ||
15 | ········for·(var·index·=·0;·index·<·n;·index++)·{ | ||
16 | ············var·rand·=·random(index,·last); | ||
17 | ············var·temp·=·sample[index]; | ||
18 | ············sample[index]·=·sample[rand]; | ||
19 | ············sample[rand]·=·temp; | ||
20 | ········} | 10 | ········} |
21 | ········return· | 11 | ········if·(_isArrayLike(obj))·return·map(obj,·identity); |
12 | ········return·values(obj); | ||
22 | ····} | 13 | ····} |
23 | ····return· | 14 | ····return·toArray; |
24 | })); | 15 | })); |
Offset 1, 9 lines modified | Offset 1, 12 lines modified | ||
1 | define(['./index | 1 | define(['./index25'],·(function(_setup)·{ |
2 | ····//·Zip·together·multiple·lists·into·a·single·array·--·elements·that·share | ||
3 | ····//·an·index·go·together. | ||
4 | ····v | 2 | ····//·Returns·everything·but·the·first·entry·of·the·`array`.·Especially·useful·on |
3 | ····//·the·`arguments`·object.·Passing·an·**n**·will·return·the·rest·N·values·in·the | ||
4 | ····//·`array`. | ||
5 | ····function·rest(array,·n,·guard)·{ | ||
6 | ········return·_setup.slice.call(array,·n·==·null·||·guard·?·1·:·n); | ||
7 | ····} | ||
5 | ····return· | 8 | ····return·rest; |
6 | })); | 9 | })); |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index | 1 | define(['./index2',·'./index48'],·(function(_cb,·each)·{ |
2 | ····//·An·internal·function·used·for·aggregate·"group·by"·operations. | 2 | ····//·An·internal·function·used·for·aggregate·"group·by"·operations. |
3 | ····function·group(behavior,·partition)·{ | 3 | ····function·group(behavior,·partition)·{ |
4 | ········return·function(obj,·iteratee,·context)·{ | 4 | ········return·function(obj,·iteratee,·context)·{ |
5 | ············var·result·=·partition·?·[ | 5 | ············var·result·=·partition·?·[ |
6 | ················[], | 6 | ················[], |
7 | ················[] | 7 | ················[] |
Offset 1, 7 lines modified | Offset 1, 7 lines modified | ||
1 | define(['./index2 | 1 | define(['./index28'],·(function(_tagTester)·{ |
2 | ····var·hasObjectTag·=·_tagTester('Object'); | 2 | ····var·hasObjectTag·=·_tagTester('Object'); |
3 | ····return·hasObjectTag; | 3 | ····return·hasObjectTag; |
4 | })); | 4 | })); |
Offset 1, 15 lines modified | Offset 1, 12 lines modified | ||
1 | define(['./index | 1 | define(['./index147',·'./index119',·'./index100'],·(function(underscore,·_baseIteratee,·iteratee)·{ |
2 | ····//·The·function·we·call·internally·to·generate·a·callback.·It·invokes | ||
3 | ····//·`_.iteratee`·if·overridden,·otherwise·`baseIteratee`. | ||
2 | ····//·An·internal·function·to·generate·callbacks·that·can·be·applied·to·each | ||
3 | ····//·element·in·a·collection,·returning·the·desired·result·—·either·`_.identity`, | ||
4 | ····//·an·arbitrary·callback,·a·property·matcher,·or·a·property·accessor. | ||
5 | ····function· | 4 | ····function·cb(value,·context,·argCount)·{ |
5 | ········if·(underscore.iteratee·!==·iteratee)·return·underscore.iteratee(value,·context); | ||
6 | ········return·_baseIteratee(value,·context,·argCount); | ||
6 | ········if·(value·==·null)·return·identity; | ||
7 | ········if·(isFunction(value))·return·_optimizeCb(value,·context,·argCount); | ||
8 | ········if·(isObject(value)·&&·!isArray(value))·return·matcher(value); | ||
9 | ········return·property(value); | ||
10 | ····} | 7 | ····} |
11 | ····return· | 8 | ····return·cb; |
12 | })); | 9 | })); |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index | 1 | define(['./index10',·'./index16'],·(function(_createSizePropertyCheck,·_getLength)·{ |
2 | ····//·Internal·helper·for·collection·methods·to·determine·whether·a·collection | 2 | ····//·Internal·helper·for·collection·methods·to·determine·whether·a·collection |
3 | ····//·should·be·iterated·as·an·array·or·as·an·object. | 3 | ····//·should·be·iterated·as·an·array·or·as·an·object. |
4 | ····//·Related:·https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength | 4 | ····//·Related:·https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength |
5 | ····//·Avoids·a·very·nasty·iOS·8·JIT·bug·on·ARM-64.·#2094 | 5 | ····//·Avoids·a·very·nasty·iOS·8·JIT·bug·on·ARM-64.·#2094 |
6 | ····var·isArrayLike·=·_createSizePropertyCheck(_getLength); | 6 | ····var·isArrayLike·=·_createSizePropertyCheck(_getLength); |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index | 1 | define(['./index10',·'./index15'],·(function(_createSizePropertyCheck,·_getByteLength)·{ |
2 | ····//·Internal·helper·to·determine·whether·we·should·spend·extensive·checks·against | 2 | ····//·Internal·helper·to·determine·whether·we·should·spend·extensive·checks·against |
3 | ····//·`ArrayBuffer`·et·al. | 3 | ····//·`ArrayBuffer`·et·al. |
4 | ····var·isBufferLike·=·_createSizePropertyCheck(_getByteLength); | 4 | ····var·isBufferLike·=·_createSizePropertyCheck(_getByteLength); |
5 | ····return·isBufferLike; | 5 | ····return·isBufferLike; |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | define(['exports',·'./index16',·'./index8 | 1 | define(['exports',·'./index16',·'./index85',·'./index49'],·(function(exports,·_getLength,·isFunction,·allKeys)·{ |
2 | ····//·Since·the·regular·`Object.prototype.toString`·type·tests·don't·work·for | 2 | ····//·Since·the·regular·`Object.prototype.toString`·type·tests·don't·work·for |
3 | ····//·some·types·in·IE·11,·we·use·a·fingerprinting·heuristic·instead,·based | 3 | ····//·some·types·in·IE·11,·we·use·a·fingerprinting·heuristic·instead,·based |
4 | ····//·on·the·methods.·It's·not·great,·but·it's·the·best·we·got. | 4 | ····//·on·the·methods.·It's·not·great,·but·it's·the·best·we·got. |
5 | ····//·The·fingerprint·method·lists·are·defined·below. | 5 | ····//·The·fingerprint·method·lists·are·defined·below. |
6 | ····function·ie11fingerprint(methods)·{ | 6 | ····function·ie11fingerprint(methods)·{ |
7 | ········var·length·=·_getLength(methods); | 7 | ········var·length·=·_getLength(methods); |
Offset 1, 15 lines modified | Offset 1, 13 lines modified | ||
1 | define(['./index | 1 | define(['./index25'],·(function(_setup)·{ |
2 | ····//·Internal·function·for·creating·a·`toString`-based·type·tester. | ||
3 | ····function·tagTester(name)·{ | ||
4 | ········var·tag·=·'[object·'·+·name·+·']'; | ||
5 | ········return·function(obj)·{ | ||
6 | ············return·_setup.toString.call(obj)·===·tag; | ||
2 | ····//·Internal·function·to·wrap·or·shallow-copy·an·ArrayBuffer, | ||
3 | ····//·typed·array·or·DataView·to·a·new·view,·reusing·the·buffer. | ||
4 | ····function·toBufferView(bufferSource)·{ | ||
5 | ········return·new·Uint8Array( | ||
6 | ············bufferSource.buffer·||·bufferSource, | ||
7 | ············bufferSource.byteOffset·||·0, | ||
8 | ············_getByteLength(bufferSource) | ||
9 | ········ | 7 | ········}; |
10 | ····} | 8 | ····} |
11 | ····return·t | 9 | ····return·tagTester; |
12 | })); | 10 | })); |
Offset 1, 13 lines modified | Offset 1, 15 lines modified | ||
1 | define(['./index | 1 | define(['./index15'],·(function(_getByteLength)·{ |
2 | ····//·Internal·function·for·creating·a·`toString`-based·type·tester. | ||
3 | ····function·tagTester(name)·{ | ||
4 | ········var·tag·=·'[object·'·+·name·+·']'; | ||
5 | ········return·function(obj)·{ | ||
6 | ···· | 2 | ····//·Internal·function·to·wrap·or·shallow-copy·an·ArrayBuffer, |
3 | ····//·typed·array·or·DataView·to·a·new·view,·reusing·the·buffer. | ||
4 | ····function·toBufferView(bufferSource)·{ | ||
5 | ········return·new·Uint8Array( | ||
6 | ············bufferSource.buffer·||·bufferSource, | ||
7 | ············bufferSource.byteOffset·||·0, | ||
8 | ············_getByteLength(bufferSource) | ||
7 | ········ | 9 | ········); |
8 | ····} | 10 | ····} |
9 | ····return·t | 11 | ····return·toBufferView; |
10 | })); | 12 | })); |
Offset 1, 12 lines modified | Offset 1, 44 lines modified | ||
1 | define(['./index | 1 | define(['./index25',·'./index85',·'./index18'],·(function(_setup,·isFunction,·_has)·{ |
2 | ····//·The·function·we·call·internally·to·generate·a·callback.·It·invokes | ||
3 | ····//·`_.iteratee`·if·overridden,·otherwise·`baseIteratee`. | ||
4 | ····function·cb(value,·context,·argCount)·{ | ||
5 | ········if·(underscore.iteratee·!==·iteratee)·return·underscore.iteratee(value,·context); | ||
6 | ···· | 2 | ····//·Internal·helper·to·create·a·simple·lookup·structure. |
3 | ····//·`collectNonEnumProps`·used·to·depend·on·`_.contains`,·but·this·led·to | ||
4 | ····//·circular·imports.·`emulatedSet`·is·a·one-off·solution·that·only·works·for | ||
5 | ····//·arrays·of·strings. | ||
6 | ····function·emulatedSet(keys)·{ | ||
7 | ········var·hash·=·{}; | ||
8 | ········for·(var·l·=·keys.length,·i·=·0;·i·<·l;·++i)·hash[keys[i]]·=·true; | ||
9 | ········return·{ | ||
10 | ············contains:·function(key)·{ | ||
11 | ················return·hash[key]·===·true; | ||
12 | ············}, | ||
13 | ············push:·function(key)·{ | ||
14 | ················hash[key]·=·true; | ||
15 | ················return·keys.push(key); | ||
16 | ············} | ||
17 | ········}; | ||
7 | ····} | 18 | ····} |
8 | ····ret | 19 | ····//·Internal·helper.·Checks·`keys`·for·the·presence·of·keys·in·IE·<·9·that·won't |
20 | ····//·be·iterated·by·`for·key·in·...`·and·thus·missed.·Extends·`keys`·in·place·if | ||
21 | ····//·needed. | ||
22 | ····function·collectNonEnumProps(obj,·keys)·{ | ||
23 | ········keys·=·emulatedSet(keys); | ||
24 | ········var·nonEnumIdx·=·_setup.nonEnumerableProps.length; | ||
25 | ········var·constructor·=·obj.constructor; | ||
26 | ········var·proto·=·(isFunction(constructor)·&&·constructor.prototype)·||·_setup.ObjProto; | ||
27 | ········//·Constructor·is·a·special·case. | ||
28 | ········var·prop·=·'constructor'; | ||
29 | ········if·(_has(obj,·prop)·&&·!keys.contains(prop))·keys.push(prop); | ||
30 | ········while·(nonEnumIdx--)·{ | ||
31 | ············prop·=·_setup.nonEnumerableProps[nonEnumIdx]; | ||
32 | ············if·(prop·in·obj·&&·obj[prop]·!==·proto[prop]·&&·!keys.contains(prop))·{ | ||
33 | ················keys.push(prop); | ||
34 | ············} | ||
35 | ········} | ||
36 | ····} | ||
37 | ····return·collectNonEnumProps; | ||
9 | })); | 38 | })); |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index1 | 1 | define(['./index147',·'./index145'],·(function(underscore,·toPath$1)·{ |
2 | ····//·Internal·wrapper·for·`_.toPath`·to·enable·minification. | 2 | ····//·Internal·wrapper·for·`_.toPath`·to·enable·minification. |
3 | ····//·Similar·to·`cb`·for·`_.iteratee`. | 3 | ····//·Similar·to·`cb`·for·`_.iteratee`. |
4 | ····function·toPath(path)·{ | 4 | ····function·toPath(path)·{ |
5 | ········return·underscore.toPath(path); | 5 | ········return·underscore.toPath(path); |
6 | ····} | 6 | ····} |
Offset 1, 8 lines modified | Offset 1, 18 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Internal·list·of·HTML·entities·for·unescaping. | ||
3 | ···· | 2 | ····//·Returns·a·function·that·will·only·be·executed·up·to·(but·not·including)·the |
3 | ····//·Nth·call. | ||
4 | ····function·before(times,·func)·{ | ||
5 | ········var·memo; | ||
6 | ········return·function()·{ | ||
7 | ············if·(--times·>·0)·{ | ||
8 | ················memo·=·func.apply(this,·arguments); | ||
9 | ············} | ||
10 | ············if·(times·<=·1)·func·=·null; | ||
11 | ············return·memo; | ||
12 | ········}; | ||
13 | ····} | ||
4 | ····return· | 14 | ····return·before; |
5 | })); | 15 | })); |
Offset 1, 14 lines modified | Offset 1, 15 lines modified | ||
1 | define((function()·{ | 1 | define(['./index131',·'./index85',·'./index13'],·(function(restArguments,·isFunction,·_executeBound)·{ |
2 | ····//·Returns·a·function·that·will·only·be·executed·on·and·after·the·Nth·call. | ||
3 | ····function·after(times,·func)·{ | ||
4 | ········return·function()·{ | ||
5 | ············if·(--times·<·1)·{ | ||
6 | ················return·func.apply(this,·arguments); | ||
7 | ············ | 2 | ····//·Create·a·function·bound·to·a·given·object·(assigning·`this`,·and·arguments, |
3 | ····//·optionally). | ||
4 | ····var·bind·=·restArguments(function(func,·context,·args)·{ | ||
5 | ········if·(!isFunction(func))·throw·new·TypeError('Bind·must·be·called·on·a·function'); | ||
6 | ········var·bound·=·restArguments(function(callArgs)·{ | ||
7 | ············return·_executeBound(func,·bound,·context,·this,·args.concat(callArgs)); | ||
8 | ········}; | 8 | ········}); |
9 | ········return·bound; | ||
9 | ····} | 10 | ····}); |
10 | ····return· | 11 | ····return·bind; |
11 | })); | 12 | })); |
Offset 1, 15 lines modified | Offset 1, 19 lines modified | ||
1 | define(['./index | 1 | define(['./index131',·'./index14',·'./index32'],·(function(restArguments,·_flatten,·bind)·{ |
2 | ····//·Retrieve·all·the·enumerable·property·names·of·an·object. | ||
3 | ····function·allKeys(obj)·{ | ||
4 | ········ | 2 | ····//·Bind·a·number·of·an·object's·methods·to·that·object.·Remaining·arguments |
3 | ····//·are·the·method·names·to·be·bound.·Useful·for·ensuring·that·all·callbacks | ||
4 | ····//·defined·on·an·object·belong·to·it. | ||
5 | ····var·bindAll·=·restArguments(function(obj,·keys)·{ | ||
6 | ········keys·=·_flatten(keys,·false,·false); | ||
7 | ········var·index·=·keys.length; | ||
8 | ········if·(index·<·1)·throw·new·Error('bindAll·must·be·passed·function·names'); | ||
9 | ········while·(index--)·{ | ||
5 | ········var·key | 10 | ············var·key·=·keys[index]; |
11 | ············obj[key]·=·bind(obj[key],·obj); | ||
12 | ········} | ||
6 | ········for·(var·key·in·obj)·keys.push(key); | ||
7 | ········//·Ahem,·IE·<·9. | ||
8 | ········if·(_setup.hasEnumBug)·_collectNonEnumProps(obj,·keys); | ||
9 | ········return· | 13 | ········return·obj; |
10 | ····} | 14 | ····}); |
11 | ····return· | 15 | ····return·bindAll; |
12 | })); | 16 | })); |
Offset 1, 18 lines modified | Offset 1, 12 lines modified | ||
1 | define((function()·{ | 1 | define(['./index147'],·(function(underscore)·{ |
2 | ····//·Start·chaining·a·wrapped·Underscore·object. | ||
3 | ····function·chain(obj)·{ | ||
4 | ········var·instance·=·underscore(obj); | ||
5 | ········instance._chain·=·true; | ||
6 | ········return·instance; | ||
2 | ····//·Returns·a·function·that·will·only·be·executed·up·to·(but·not·including)·the | ||
3 | ····//·Nth·call. | ||
4 | ····function·before(times,·func)·{ | ||
5 | ········var·memo; | ||
6 | ········return·function()·{ | ||
7 | ············if·(--times·>·0)·{ | ||
8 | ················memo·=·func.apply(this,·arguments); | ||
9 | ············} | ||
10 | ············if·(times·<=·1)·func·=·null; | ||
11 | ············return·memo; | ||
12 | ········}; | ||
13 | ····} | 7 | ····} |
14 | ····return· | 8 | ····return·chain; |
15 | })); | 9 | })); |
Offset 1, 15 lines modified | Offset 1, 18 lines modified | ||
1 | define(['./index | 1 | define(['./index25'],·(function(_setup)·{ |
2 | ····//·Create·a·function·bound·to·a·given·object·(assigning·`this`,·and·arguments, | ||
3 | ····//·optionally). | ||
4 | ····var·bind·=·restArguments(function(func,·context,·args)·{ | ||
5 | ········if·(!isFunction(func))·throw·new·TypeError('Bind·must·be·called·on·a·function'); | ||
6 | ········var·bound·=·restArguments(function(callArgs)·{ | ||
7 | ····· | 2 | ····//·Chunk·a·single·array·into·multiple·arrays,·each·containing·`count`·or·fewer |
3 | ····//·items. | ||
4 | ····function·chunk(array,·count)·{ | ||
5 | ········if·(count·==·null·||·count·<·1)·return·[]; | ||
6 | ········var·result·=·[]; | ||
7 | ········var·i·=·0, | ||
8 | ············length·=·array.length; | ||
9 | ········while·(i·<·length)·{ | ||
10 | ············result.push(_setup.slice.call(array,·i,·i·+=·count)); | ||
8 | ········} | 11 | ········} |
9 | ········return· | 12 | ········return·result; |
10 | ····} | 13 | ····} |
11 | ····return· | 14 | ····return·chunk; |
12 | })); | 15 | })); |
Offset 1, 19 lines modified | Offset 1, 11 lines modified | ||
1 | define(['./index | 1 | define(['./index91',·'./index75',·'./index52'],·(function(isObject,·isArray,·extend)·{ |
2 | ····//·Create·a·(shallow-cloned)·duplicate·of·an·object. | ||
3 | ····function·clone(obj)·{ | ||
4 | ········if·(!isObject(obj))·return·obj; | ||
5 | ········return·isArray(obj)·?·obj.slice()·:·extend({},·obj); | ||
2 | ····//·Bind·a·number·of·an·object's·methods·to·that·object.·Remaining·arguments | ||
3 | ····//·are·the·method·names·to·be·bound.·Useful·for·ensuring·that·all·callbacks | ||
4 | ····//·defined·on·an·object·belong·to·it. | ||
5 | ····var·bindAll·=·restArguments(function(obj,·keys)·{ | ||
6 | ········keys·=·_flatten(keys,·false,·false); | ||
7 | ········var·index·=·keys.length; | ||
8 | ········if·(index·<·1)·throw·new·Error('bindAll·must·be·passed·function·names'); | ||
9 | ········while·(index--)·{ | ||
10 | ············var·key·=·keys[index]; | ||
11 | ············obj[key]·=·bind(obj[key],·obj); | ||
12 | ········} | ||
13 | ········return·obj; | ||
14 | ····} | 6 | ····} |
15 | ····return· | 7 | ····return·clone; |
16 | })); | 8 | })); |
Offset 1, 12 lines modified | Offset 1, 10 lines modified | ||
1 | define(['./index | 1 | define(['./index54'],·(function(filter)·{ |
2 | ····//·Trim·out·all·falsy·values·from·an·array. | ||
3 | ····function·compact(array)·{ | ||
4 | ········return·filter(array,·Boolean); | ||
2 | ····//·Start·chaining·a·wrapped·Underscore·object. | ||
3 | ····function·chain(obj)·{ | ||
4 | ········var·instance·=·underscore(obj); | ||
5 | ········instance._chain·=·true; | ||
6 | ········return·instance; | ||
7 | ····} | 5 | ····} |
8 | ····return·c | 6 | ····return·compact; |
9 | })); | 7 | })); |
Offset 1, 18 lines modified | Offset 1, 18 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Chunk·a·single·array·into·multiple·arrays,·each·containing·`count`·or·fewer | ||
3 | ····//·items. | ||
4 | ····function·chunk(array,·count)·{ | ||
5 | ········if·(count·==·null·||·count·<·1)·return·[]; | ||
6 | ········var·result·=·[]; | ||
7 | ········var·i·=·0, | ||
8 | ············length·=·array.length; | ||
9 | ········while·(i·<·length)·{ | ||
10 | ····· | 2 | ····//·Returns·a·function·that·is·the·composition·of·a·list·of·functions,·each |
3 | ····//·consuming·the·return·value·of·the·function·that·follows. | ||
4 | ····function·compose()·{ | ||
5 | ········var·args·=·arguments; | ||
6 | ········var·start·=·args.length·-·1; | ||
7 | ········return·function()·{ | ||
8 | ············var·i·=·start; | ||
9 | ············var·result·=·args[start].apply(this,·arguments); | ||
10 | ············while·(i--)·result·=·args[i].call(this,·result); | ||
11 | ············return·result; | ||
11 | ········} | 12 | ········}; |
12 | ········return·result; | ||
13 | ····} | 13 | ····} |
14 | ····return·c | 14 | ····return·compose; |
15 | })); | 15 | })); |
Offset 1, 11 lines modified | Offset 1, 12 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Create·a·(shallow-cloned)·duplicate·of·an·object. | ||
3 | ····function·clone(obj)·{ | ||
4 | ········if·(!isObject(obj))·return·obj; | ||
5 | ···· | 2 | ····//·Predicate-generating·function.·Often·useful·outside·of·Underscore. |
3 | ····function·constant(value)·{ | ||
4 | ········return·function()·{ | ||
5 | ············return·value; | ||
6 | ········}; | ||
6 | ····} | 7 | ····} |
7 | ····return·c | 8 | ····return·constant; |
8 | })); | 9 | })); |
Offset 1, 10 lines modified | Offset 1, 24 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Helper·function·to·continue·chaining·intermediate·results. | ||
3 | ····function·chainResult(instance,·obj)·{ | ||
4 | ···· | 2 | ····//·An·internal·function·for·creating·assigner·functions. |
3 | ····function·createAssigner(keysFunc,·defaults)·{ | ||
4 | ········return·function(obj)·{ | ||
5 | ············var·length·=·arguments.length; | ||
6 | ············if·(defaults)·obj·=·Object(obj); | ||
7 | ············if·(length·<·2·||·obj·==·null)·return·obj; | ||
8 | ············for·(var·index·=·1;·index·<·length;·index++)·{ | ||
9 | ················var·source·=·arguments[index], | ||
10 | ····················keys·=·keysFunc(source), | ||
11 | ····················l·=·keys.length; | ||
12 | ················for·(var·i·=·0;·i·<·l;·i++)·{ | ||
13 | ····················var·key·=·keys[i]; | ||
14 | ····················if·(!defaults·||·obj[key]·===·void·0)·obj[key]·=·source[key]; | ||
15 | ················} | ||
16 | ············} | ||
17 | ············return·obj; | ||
18 | ········}; | ||
5 | ····} | 19 | ····} |
6 | ····return·c | 20 | ····return·createAssigner; |
7 | })); | 21 | })); |
Offset 1, 10 lines modified | Offset 1, 12 lines modified | ||
1 | define(['./index56'],·(function( | 1 | define(['./index20',·'./index153',·'./index69'],·(function(_isArrayLike,·values,·indexOf)·{ |
2 | ····//·Trim·out·all·falsy·values·from·an·array. | ||
3 | ····function·compact(array)·{ | ||
4 | ···· | 2 | ····//·Determine·if·the·array·or·object·contains·a·given·item·(using·`===`). |
3 | ····function·contains(obj,·item,·fromIndex,·guard)·{ | ||
4 | ········if·(!_isArrayLike(obj))·obj·=·values(obj); | ||
5 | ········if·(typeof·fromIndex·!=·'number'·||·guard)·fromIndex·=·0; | ||
6 | ········return·indexOf(obj,·item,·fromIndex)·>=·0; | ||
5 | ····} | 7 | ····} |
6 | ····return·co | 8 | ····return·contains; |
7 | })); | 9 | })); |
Offset 1, 18 lines modified | Offset 1, 13 lines modified | ||
1 | define((function()·{ | 1 | define(['./index17',·'./index18'],·(function(_group,·_has)·{ |
2 | ····//·Counts·instances·of·an·object·that·group·by·a·certain·criterion.·Pass | ||
3 | ····//·either·a·string·attribute·to·count·by,·or·a·function·that·returns·the | ||
4 | ····//·criterion. | ||
5 | ····var·countBy·=·_group(function(result,·value,·key)·{ | ||
6 | ········if·(_has(result,·key))·result[key]++; | ||
7 | ········else·result[key]·=·1; | ||
2 | ····//·Returns·a·function·that·is·the·composition·of·a·list·of·functions,·each | ||
3 | ····//·consuming·the·return·value·of·the·function·that·follows. | ||
4 | ····function·compose()·{ | ||
5 | ········var·args·=·arguments; | ||
6 | ········var·start·=·args.length·-·1; | ||
7 | ········return·function()·{ | ||
8 | ············var·i·=·start; | ||
9 | ············var·result·=·args[start].apply(this,·arguments); | ||
10 | ············while·(i--)·result·=·args[i].call(this,·result); | ||
11 | ············return·result; | ||
12 | ········}; | ||
13 | ····} | 8 | ····}); |
14 | ····return·co | 9 | ····return·countBy; |
15 | })); | 10 | })); |
Offset 1, 12 lines modified | Offset 1, 14 lines modified | ||
1 | define((function()·{ | 1 | define(['./index',·'./index53'],·(function(_baseCreate,·extendOwn)·{ |
2 | ····//·Predicate-generating·function.·Often·useful·outside·of·Underscore. | ||
3 | ····function·constant(value)·{ | ||
4 | ········return·function()·{ | ||
5 | ············return·value; | ||
6 | ········ | 2 | ····//·Creates·an·object·that·inherits·from·the·given·prototype·object. |
3 | ····//·If·additional·properties·are·provided·then·they·will·be·added·to·the | ||
4 | ····//·created·object. | ||
5 | ····function·create(prototype,·props)·{ | ||
6 | ········var·result·=·_baseCreate(prototype); | ||
7 | ········if·(props)·extendOwn(result,·props); | ||
8 | ········return·result; | ||
7 | ····} | 9 | ····} |
8 | ····return·c | 10 | ····return·create; |
9 | })); | 11 | })); |
Offset 1, 12 lines modified | Offset 1, 43 lines modified | ||
1 | define(['./index | 1 | define(['./index131',·'./index113'],·(function(restArguments,·now)·{ |
2 | ····//·Determine·if·the·array·or·object·contains·a·given·item·(using·`===`). | ||
3 | ····function·contains(obj,·item,·fromIndex,·guard)·{ | ||
4 | ········if·(!_isArrayLike(obj))·obj·=·values(obj); | ||
5 | ········if·(typeof·fromIndex·!=·'number'·||·guard)·fromIndex·=·0; | ||
6 | ······ | 2 | ····//·When·a·sequence·of·calls·of·the·returned·function·ends,·the·argument |
3 | ····//·function·is·triggered.·The·end·of·a·sequence·is·defined·by·the·`wait` | ||
4 | ····//·parameter.·If·`immediate`·is·passed,·the·argument·function·will·be | ||
5 | ····//·triggered·at·the·beginning·of·the·sequence·instead·of·at·the·end. | ||
6 | ····function·debounce(func,·wait,·immediate)·{ | ||
7 | ········var·timeout,·previous,·args,·result,·context; | ||
8 | ········var·later·=·function()·{ | ||
9 | ············var·passed·=·now()·-·previous; | ||
10 | ············if·(wait·>·passed)·{ | ||
11 | ················timeout·=·setTimeout(later,·wait·-·passed); | ||
12 | ············}·else·{ | ||
13 | ················timeout·=·null; | ||
14 | ················if·(!immediate)·result·=·func.apply(context,·args); | ||
15 | ················//·This·check·is·needed·because·`func`·can·recursively·invoke·`debounced`. | ||
16 | ················if·(!timeout)·args·=·context·=·null; | ||
17 | ············} | ||
18 | ········}; | ||
19 | ········var·debounced·=·restArguments(function(_args)·{ | ||
20 | ············context·=·this; | ||
21 | ············args·=·_args; | ||
22 | ············previous·=·now(); | ||
23 | ············if·(!timeout)·{ | ||
24 | ················timeout·=·setTimeout(later,·wait); | ||
25 | ················if·(immediate)·result·=·func.apply(context,·args); | ||
26 | ············} | ||
27 | ············return·result; | ||
28 | ········}); | ||
29 | ········debounced.cancel·=·function()·{ | ||
30 | ············clearTimeout(timeout); | ||
31 | ············timeout·=·args·=·context·=·null; | ||
32 | ········}; | ||
33 | ········return·debounced; | ||
7 | ····} | 34 | ····} |
8 | ····return· | 35 | ····return·debounce; |
9 | })); | 36 | })); |
Offset 1, 13 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index | 1 | define(['./index4',·'./index49'],·(function(_createAssigner,·allKeys)·{ |
2 | ····//·Fill·in·a·given·object·with·default·properties. | ||
3 | ····var·defaults·=·_createAssigner(allKeys,·true); | ||
2 | ····//·Counts·instances·of·an·object·that·group·by·a·certain·criterion.·Pass | ||
3 | ····//·either·a·string·attribute·to·count·by,·or·a·function·that·returns·the | ||
4 | ····//·criterion. | ||
5 | ····var·countBy·=·_group(function(result,·value,·key)·{ | ||
6 | ········if·(_has(result,·key))·result[key]++; | ||
7 | ········else·result[key]·=·1; | ||
8 | ····}); | ||
9 | ····return· | 4 | ····return·defaults; |
10 | })); | 5 | })); |
Offset 1, 14 lines modified | Offset 1, 9 lines modified | ||
1 | define(['./index',·'./index | 1 | define(['./index118',·'./index46',·'./index147'],·(function(partial,·delay,·underscore)·{ |
2 | ····//·Defers·a·function,·scheduling·it·to·run·after·the·current·call·stack·has | ||
3 | ····//·cleared. | ||
4 | ····var·defer·=·partial(delay,·underscore,·1); | ||
2 | ····//·Creates·an·object·that·inherits·from·the·given·prototype·object. | ||
3 | ····//·If·additional·properties·are·provided·then·they·will·be·added·to·the | ||
4 | ····//·created·object. | ||
5 | ····function·create(prototype,·props)·{ | ||
6 | ········var·result·=·_baseCreate(prototype); | ||
7 | ········if·(props)·extendOwn(result,·props); | ||
8 | ········return·result; | ||
9 | ····} | ||
10 | ····return· | 5 | ····return·defer; |
11 | })); | 6 | })); |
Offset 1, 43 lines modified | Offset 1, 13 lines modified | ||
1 | define(['./index13 | 1 | define(['./index131'],·(function(restArguments)·{ |
2 | ····//·When·a·sequence·of·calls·of·the·returned·function·ends,·the·argument | ||
3 | ····//·function·is·triggered.·The·end·of·a·sequence·is·defined·by·the·`wait` | ||
4 | ····//·parameter.·If·`immediate`·is·passed,·the·argument·function·will·be | ||
5 | ····//·triggered·at·the·beginning·of·the·sequence·instead·of·at·the·end. | ||
6 | ····function·debounce(func,·wait,·immediate)·{ | ||
7 | ······ | 2 | ····//·Delays·a·function·for·the·given·number·of·milliseconds,·and·then·calls |
3 | ····//·it·with·the·arguments·supplied. | ||
4 | ····var·delay·=·restArguments(function(func,·wait,·args)·{ | ||
5 | ········return·setTimeout(function()·{ | ||
6 | ············return·func.apply(null,·args); | ||
7 | ········},·wait); | ||
8 | ····}); | ||
8 | ········var·later·=·function()·{ | ||
9 | ············var·passed·=·now()·-·previous; | ||
10 | ············if·(wait·>·passed)·{ | ||
11 | ················timeout·=·setTimeout(later,·wait·-·passed); | ||
12 | ············}·else·{ | ||
13 | ················timeout·=·null; | ||
14 | ················if·(!immediate)·result·=·func.apply(context,·args); | ||
15 | ················//·This·check·is·needed·because·`func`·can·recursively·invoke·`debounced`. | ||
16 | ················if·(!timeout)·args·=·context·=·null; | ||
17 | ············} | ||
18 | ········}; | ||
19 | ········var·debounced·=·restArguments(function(_args)·{ | ||
20 | ············context·=·this; | ||
21 | ············args·=·_args; | ||
22 | ············previous·=·now(); | ||
23 | ············if·(!timeout)·{ | ||
24 | ················timeout·=·setTimeout(later,·wait); | ||
25 | ················if·(immediate)·result·=·func.apply(context,·args); | ||
26 | ············} | ||
27 | ············return·result; | ||
28 | ········}); | ||
29 | ········debounced.cancel·=·function()·{ | ||
30 | ············clearTimeout(timeout); | ||
31 | ············timeout·=·args·=·context·=·null; | ||
32 | ········}; | ||
33 | ········return·debounced; | ||
34 | ····} | ||
35 | ····return·de | 9 | ····return·delay; |
36 | })); | 10 | })); |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index | 1 | define(['./index72',·'./index12'],·(function(invert,·_escapeMap)·{ |
2 | ····//·Fill·in·a·given·object·with·default·properties. | ||
3 | ···· | 2 | ····//·Internal·list·of·HTML·entities·for·unescaping. |
3 | ····var·unescapeMap·=·invert(_escapeMap); | ||
4 | ····return· | 4 | ····return·unescapeMap; |
5 | })); | 5 | })); |
Offset 1, 14 lines modified | Offset 1, 25 lines modified | ||
1 | define(['./index | 1 | define(['./index24',·'./index20',·'./index101'],·(function(_optimizeCb,·_isArrayLike,·keys)·{ |
2 | ····//·Take·the·difference·between·one·array·and·a·number·of·other·arrays. | ||
3 | ····//·Only·the·elements·present·in·just·the·first·array·will·remain. | ||
4 | ····var·difference·=·restArguments(function(array,·rest)·{ | ||
5 | ········rest·=·_flatten(rest,·true,·true); | ||
6 | ········return·filter(array,·function(value)·{ | ||
7 | ···· | 2 | ····//·The·cornerstone·for·collection·functions,·an·`each` |
3 | ····//·implementation,·aka·`forEach`. | ||
4 | ····//·Handles·raw·objects·in·addition·to·array-likes.·Treats·all | ||
5 | ····//·sparse·array-likes·as·if·they·were·dense. | ||
6 | ····function·each(obj,·iteratee,·context)·{ | ||
7 | ········iteratee·=·_optimizeCb(iteratee,·context); | ||
8 | ········var·i,·length; | ||
9 | ········if·(_isArrayLike(obj))·{ | ||
10 | ············for·(i·=·0,·length·=·obj.length;·i·<·length;·i++)·{ | ||
11 | ················iteratee(obj[i],·i,·obj); | ||
12 | ············} | ||
13 | ········}·else·{ | ||
14 | ············var·_keys·=·keys(obj); | ||
15 | ············for·(i·=·0,·length·=·_keys.length;·i·<·length;·i++)·{ | ||
16 | ················iteratee(obj[_keys[i]],·_keys[i],·obj); | ||
17 | ············} | ||
8 | ········} | 18 | ········} |
19 | ········return·obj; | ||
9 | ····} | 20 | ····} |
10 | ····return· | 21 | ····return·each; |
11 | })); | 22 | })); |
Offset 1, 13 lines modified | Offset 1, 15 lines modified | ||
1 | define(['./index1 | 1 | define(['./index91',·'./index25',·'./index3'],·(function(isObject,·_setup,·_collectNonEnumProps)·{ |
2 | ····//·Delays·a·function·for·the·given·number·of·milliseconds,·and·then·calls | ||
3 | ····//·it·with·the·arguments·supplied. | ||
4 | ····var·delay·=·restArguments(function(func,·wait,·args)·{ | ||
5 | ········return·setTimeout(function()·{ | ||
6 | ············return·func.apply(null,·args); | ||
7 | ········ | 2 | ····//·Retrieve·all·the·enumerable·property·names·of·an·object. |
3 | ····function·allKeys(obj)·{ | ||
4 | ········if·(!isObject(obj))·return·[]; | ||
5 | ········var·keys·=·[]; | ||
6 | ········for·(var·key·in·obj)·keys.push(key); | ||
7 | ········//·Ahem,·IE·<·9. | ||
8 | ········if·(_setup.hasEnumBug)·_collectNonEnumProps(obj,·keys); | ||
9 | ········return·keys; | ||
8 | ····} | 10 | ····} |
9 | ····return· | 11 | ····return·allKeys; |
10 | })); | 12 | })); |
Offset 1, 44 lines modified | Offset 1, 21 lines modified | ||
1 | define(['./index | 1 | define(['./index101'],·(function(keys)·{ |
2 | ····//·Internal·helper·to·generate·functions·for·escaping·and·unescaping·strings | ||
3 | ····//·to/from·HTML·interpolation. | ||
4 | ····function·createEscaper(map)·{ | ||
5 | ········var·escaper·=·function(match)·{ | ||
6 | ············return·map[match]; | ||
2 | ····//·Internal·helper·to·create·a·simple·lookup·structure. | ||
3 | ····//·`collectNonEnumProps`·used·to·depend·on·`_.contains`,·but·this·led·to | ||
4 | ····//·circular·imports.·`emulatedSet`·is·a·one-off·solution·that·only·works·for | ||
5 | ····//·arrays·of·strings. | ||
6 | ····function·emulatedSet(keys)·{ | ||
7 | ········var·hash·=·{}; | ||
8 | ········for·(var·l·=·keys.length,·i·=·0;·i·<·l;·++i)·hash[keys[i]]·=·true; | ||
9 | ········return·{ | ||
10 | ············contains:·function(key)·{ | ||
11 | ················return·hash[key]·===·true; | ||
12 | ············}, | ||
13 | ············push:·function(key)·{ | ||
14 | ················hash[key]·=·true; | ||
15 | ················return·keys.push(key); | ||
16 | ········ | 7 | ········}; |
8 | ········//·Regexes·for·identifying·a·key·that·needs·to·be·escaped. | ||
9 | ········var·source·=·'(?:'·+·keys(map).join('|')·+·')'; | ||
10 | ········var·testRegexp·=·RegExp(source); | ||
11 | ········var·replaceRegexp·=·RegExp(source,·'g'); | ||
12 | ········return·function(string)·{ | ||
13 | ············string·=·string·==·null·?·''·:·''·+·string; | ||
14 | ············return·testRegexp.test(string)·?·string.replace(replaceRegexp,·escaper)·:·string; | ||
17 | ········}; | 15 | ········}; |
18 | ····} | 16 | ····} |
17 | ····return·createEscaper; | ||
19 | ····//·Internal·helper.·Checks·`keys`·for·the·presence·of·keys·in·IE·<·9·that·won't | ||
20 | ····//·be·iterated·by·`for·key·in·...`·and·thus·missed.·Extends·`keys`·in·place·if | ||
21 | ····//·needed. | ||
22 | ····function·collectNonEnumProps(obj,·keys)·{ | ||
23 | ········keys·=·emulatedSet(keys); | ||
24 | ········var·nonEnumIdx·=·_setup.nonEnumerableProps.length; | ||
25 | ········var·constructor·=·obj.constructor; | ||
26 | ········var·proto·=·(isFunction(constructor)·&&·constructor.prototype)·||·_setup.ObjProto; | ||
27 | ········//·Constructor·is·a·special·case. | ||
28 | ········var·prop·=·'constructor'; | ||
29 | ········if·(_has(obj,·prop)·&&·!keys.contains(prop))·keys.push(prop); | ||
30 | ········while·(nonEnumIdx--)·{ | ||
31 | ············prop·=·_setup.nonEnumerableProps[nonEnumIdx]; | ||
32 | ············if·(prop·in·obj·&&·obj[prop]·!==·proto[prop]·&&·!keys.contains(prop))·{ | ||
33 | ················keys.push(prop); | ||
34 | ············} | ||
35 | ········} | ||
36 | ····} | ||
37 | ····return·collectNonEnumProps; | ||
38 | })); | 18 | })); |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index | 1 | define(['./index5',·'./index12'],·(function(_createEscaper,·_escapeMap)·{ |
2 | ····//·Function·for·escaping·strings·to·HTML·interpolation. | 2 | ····//·Function·for·escaping·strings·to·HTML·interpolation. |
3 | ····var·escape·=·_createEscaper(_escapeMap); | 3 | ····var·escape·=·_createEscaper(_escapeMap); |
4 | ····return·escape; | 4 | ····return·escape; |
5 | })); | 5 | })); |
Offset 1, 25 lines modified | Offset 1, 17 lines modified | ||
1 | define(['./index2 | 1 | define(['./index2',·'./index20',·'./index101'],·(function(_cb,·_isArrayLike,·keys)·{ |
2 | ····//·Determine·whether·all·of·the·elements·pass·a·truth·test. | ||
2 | ····//·The·cornerstone·for·collection·functions,·an·`each` | ||
3 | ····//·implementation,·aka·`forEach`. | ||
4 | ····//·Handles·raw·objects·in·addition·to·array-likes.·Treats·all | ||
5 | ····//·sparse·array-likes·as·if·they·were·dense. | ||
6 | ····function·e | 3 | ····function·every(obj,·predicate,·context)·{ |
4 | ········predicate·=·_cb(predicate,·context); | ||
5 | ········var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
6 | ············length·=·(_keys·||·obj).length; | ||
7 | ········for·(var·index·=·0;·index·<·length;·index++)·{ | ||
8 | ············var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
9 | ············if·(!predicate(obj[currentKey],·currentKey,·obj))·return·false; | ||
7 | ········iteratee·=·_optimizeCb(iteratee,·context); | ||
8 | ········var·i,·length; | ||
9 | ········if·(_isArrayLike(obj))·{ | ||
10 | ············for·(i·=·0,·length·=·obj.length;·i·<·length;·i++)·{ | ||
11 | ················iteratee(obj[i],·i,·obj); | ||
12 | ············} | ||
13 | ········}·else·{ | ||
14 | ············var·_keys·=·keys(obj); | ||
15 | ············for·(i·=·0,·length·=·_keys.length;·i·<·length;·i++)·{ | ||
16 | ················iteratee(obj[_keys[i]],·_keys[i],·obj); | ||
17 | ············} | ||
18 | ········} | 10 | ········} |
19 | ········return· | 11 | ········return·true; |
20 | ····} | 12 | ····} |
21 | ····return·e | 13 | ····return·every; |
22 | })); | 14 | })); |
Offset 1, 13 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index | 1 | define(['./index4',·'./index49'],·(function(_createAssigner,·allKeys)·{ |
2 | ····//·Extend·a·given·object·with·all·the·properties·in·passed-in·object(s). | ||
3 | ····var·extend·=·_createAssigner(allKeys); | ||
2 | ····//·Common·internal·logic·for·`isArrayLike`·and·`isBufferLike`. | ||
3 | ····function·createSizePropertyCheck(getSizeProperty)·{ | ||
4 | ········return·function(collection)·{ | ||
5 | ············var·sizeProperty·=·getSizeProperty(collection); | ||
6 | ············return·typeof·sizeProperty·==·'number'·&&·sizeProperty·>=·0·&&·sizeProperty·<=·_setup.MAX_ARRAY_INDEX; | ||
7 | ········} | ||
8 | ····} | ||
9 | ····return· | 4 | ····return·extend; |
10 | })); | 5 | })); |
Offset 1, 17 lines modified | Offset 1, 10 lines modified | ||
1 | define(['./index | 1 | define(['./index4',·'./index101'],·(function(_createAssigner,·keys)·{ |
2 | ····//·Assigns·a·given·object·with·all·the·own·properties·in·the·passed-in | ||
3 | ····//·object(s). | ||
4 | ····//·(https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) | ||
5 | ····var·extendOwn·=·_createAssigner(keys); | ||
2 | ····//·Determine·whether·all·of·the·elements·pass·a·truth·test. | ||
3 | ····function·every(obj,·predicate,·context)·{ | ||
4 | ········predicate·=·_cb(predicate,·context); | ||
5 | ········var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
6 | ············length·=·(_keys·||·obj).length; | ||
7 | ········for·(var·index·=·0;·index·<·length;·index++)·{ | ||
8 | ············var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
9 | ············if·(!predicate(obj[currentKey],·currentKey,·obj))·return·false; | ||
10 | ········} | ||
11 | ········return·true; | ||
12 | ····} | ||
13 | ····return·e | 6 | ····return·extendOwn; |
14 | })); | 7 | })); |
Offset 1, 8 lines modified | Offset 1, 15 lines modified | ||
1 | define(['./index | 1 | define(['./index2',·'./index48'],·(function(_cb,·each)·{ |
2 | ····//·Extend·a·given·object·with·all·the·properties·in·passed-in·object(s). | ||
3 | ···· | 2 | ····//·Return·all·the·elements·that·pass·a·truth·test. |
3 | ····function·filter(obj,·predicate,·context)·{ | ||
4 | ········var·results·=·[]; | ||
5 | ········predicate·=·_cb(predicate,·context); | ||
6 | ········each(obj,·function(value,·index,·list)·{ | ||
7 | ············if·(predicate(value,·index,·list))·results.push(value); | ||
8 | ········}); | ||
9 | ········return·results; | ||
10 | ····} | ||
4 | ····return· | 11 | ····return·filter; |
5 | })); | 12 | })); |
Offset 1, 10 lines modified | Offset 1, 12 lines modified | ||
1 | define(['./index | 1 | define(['./index20',·'./index56',·'./index57'],·(function(_isArrayLike,·findIndex,·findKey)·{ |
2 | ····//·Assigns·a·given·object·with·all·the·own·properties·in·the·passed-in | ||
3 | ····//·object(s). | ||
4 | ····//·(https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) | ||
5 | ···· | 2 | ····//·Return·the·first·value·which·passes·a·truth·test. |
3 | ····function·find(obj,·predicate,·context)·{ | ||
4 | ········var·keyFinder·=·_isArrayLike(obj)·?·findIndex·:·findKey; | ||
5 | ········var·key·=·keyFinder(obj,·predicate,·context); | ||
6 | ········if·(key·!==·void·0·&&·key·!==·-1)·return·obj[key]; | ||
7 | ····} | ||
6 | ····return· | 8 | ····return·find; |
7 | })); | 9 | })); |
Offset 1, 15 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index | 1 | define(['./index9'],·(function(_createPredicateIndexFinder)·{ |
2 | ····//·Returns·the·first·index·on·an·array-like·that·passes·a·truth·test. | ||
3 | ····var·findIndex·=·_createPredicateIndexFinder(1); | ||
2 | ····//·Return·all·the·elements·that·pass·a·truth·test. | ||
3 | ····function·filter(obj,·predicate,·context)·{ | ||
4 | ········var·results·=·[]; | ||
5 | ········predicate·=·_cb(predicate,·context); | ||
6 | ········each(obj,·function(value,·index,·list)·{ | ||
7 | ············if·(predicate(value,·index,·list))·results.push(value); | ||
8 | ········}); | ||
9 | ········return·results; | ||
10 | ····} | ||
11 | ····return·fi | 4 | ····return·findIndex; |
12 | })); | 5 | })); |
Offset 1, 12 lines modified | Offset 1, 16 lines modified | ||
1 | define(['./index2 | 1 | define(['./index2',·'./index101'],·(function(_cb,·keys)·{ |
2 | ····//·Return·the·first· | 2 | ····//·Returns·the·first·key·on·an·object·that·passes·a·truth·test. |
3 | ····function·find(obj,·predicate,·context)·{ | 3 | ····function·findKey(obj,·predicate,·context)·{ |
4 | ········var·keyFinder·=·_isArrayLike(obj)·?·findIndex·:·findKey; | ||
5 | ········var·key·=·keyFinder(obj,·predicate,·context); | ||
6 | ········ | 4 | ········predicate·=·_cb(predicate,·context); |
5 | ········var·_keys·=·keys(obj), | ||
6 | ············key; | ||
7 | ········for·(var·i·=·0,·length·=·_keys.length;·i·<·length;·i++)·{ | ||
8 | ············key·=·_keys[i]; | ||
9 | ············if·(predicate(obj[key],·key,·obj))·return·key; | ||
10 | ········} | ||
7 | ····} | 11 | ····} |
8 | ····return·find; | 12 | ····return·findKey; |
9 | })); | 13 | })); |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index9'],·(function(_createPredicateIndexFinder)·{ | 1 | define(['./index9'],·(function(_createPredicateIndexFinder)·{ |
2 | ····//·Returns·the· | 2 | ····//·Returns·the·last·index·on·an·array-like·that·passes·a·truth·test. |
3 | ····var·findIndex·=·_createPredicateIndexFinder(1); | 3 | ····var·findLastIndex·=·_createPredicateIndexFinder(-1); |
4 | ····return·findIndex; | 4 | ····return·findLastIndex; |
5 | })); | 5 | })); |
Offset 1, 16 lines modified | Offset 1, 11 lines modified | ||
1 | define(['./index | 1 | define(['./index55',·'./index106'],·(function(find,·matcher)·{ |
2 | ····//·Convenience·version·of·a·common·use·case·of·`_.find`:·getting·the·first | ||
3 | ····//·object·containing·specific·`key:value`·pairs. | ||
4 | ····function·findWhere(obj,·attrs)·{ | ||
5 | ········return·find(obj,·matcher(attrs)); | ||
2 | ····//·Returns·the·first·key·on·an·object·that·passes·a·truth·test. | ||
3 | ····function·findKey(obj,·predicate,·context)·{ | ||
4 | ········predicate·=·_cb(predicate,·context); | ||
5 | ········var·_keys·=·keys(obj), | ||
6 | ············key; | ||
7 | ········for·(var·i·=·0,·length·=·_keys.length;·i·<·length;·i++)·{ | ||
8 | ············key·=·_keys[i]; | ||
9 | ············if·(predicate(obj[key],·key,·obj))·return·key; | ||
10 | ········} | ||
11 | ····} | 6 | ····} |
12 | ····return·find | 7 | ····return·findWhere; |
13 | })); | 8 | })); |
Offset 1, 24 lines modified | Offset 1, 10 lines modified | ||
1 | define((function()·{ | 1 | define(['./index147'],·(function(underscore)·{ |
2 | ····//·Helper·function·to·continue·chaining·intermediate·results. | ||
3 | ····function·chainResult(instance,·obj)·{ | ||
4 | ········return·instance._chain·?·underscore(obj).chain()·:·obj; | ||
2 | ····//·An·internal·function·for·creating·assigner·functions. | ||
3 | ····function·createAssigner(keysFunc,·defaults)·{ | ||
4 | ········return·function(obj)·{ | ||
5 | ············var·length·=·arguments.length; | ||
6 | ············if·(defaults)·obj·=·Object(obj); | ||
7 | ············if·(length·<·2·||·obj·==·null)·return·obj; | ||
8 | ············for·(var·index·=·1;·index·<·length;·index++)·{ | ||
9 | ················var·source·=·arguments[index], | ||
10 | ····················keys·=·keysFunc(source), | ||
11 | ····················l·=·keys.length; | ||
12 | ················for·(var·i·=·0;·i·<·l;·i++)·{ | ||
13 | ····················var·key·=·keys[i]; | ||
14 | ····················if·(!defaults·||·obj[key]·===·void·0)·obj[key]·=·source[key]; | ||
15 | ················} | ||
16 | ············} | ||
17 | ············return·obj; | ||
18 | ········}; | ||
19 | ····} | 5 | ····} |
20 | ····return·c | 6 | ····return·chainResult; |
21 | })); | 7 | })); |
Offset 1, 8 lines modified | Offset 1, 13 lines modified | ||
1 | define(['./index | 1 | define(['./index70'],·(function(initial)·{ |
2 | ····//·Returns·the·last·index·on·an·array-like·that·passes·a·truth·test. | ||
3 | ···· | 2 | ····//·Get·the·first·element·of·an·array.·Passing·**n**·will·return·the·first·N |
3 | ····//·values·in·the·array.·The·**guard**·check·allows·it·to·work·with·`_.map`. | ||
4 | ····function·first(array,·n,·guard)·{ | ||
5 | ········if·(array·==·null·||·array.length·<·1)·return·n·==·null·||·guard·?·void·0·:·[]; | ||
6 | ········if·(n·==·null·||·guard)·return·array[0]; | ||
7 | ········return·initial(array,·array.length·-·n); | ||
8 | ····} | ||
4 | ····return·fi | 9 | ····return·first; |
5 | })); | 10 | })); |
Offset 1, 11 lines modified | Offset 1, 11 lines modified | ||
1 | define(['./index | 1 | define(['./index14'],·(function(_flatten)·{ |
2 | ····//·Convenience·version·of·a·common·use·case·of·`_.find`:·getting·the·first | ||
3 | ····//·object·containing·specific·`key:value`·pairs. | ||
4 | ····function·findWhere(obj,·attrs)·{ | ||
5 | ········retur | 2 | ····//·Flatten·out·an·array,·either·recursively·(by·default),·or·up·to·`depth`. |
3 | ····//·Passing·`true`·or·`false`·as·`depth`·means·`1`·or·`Infinity`,·respectively. | ||
4 | ····function·flatten(array,·depth)·{ | ||
5 | ········return·_flatten(array,·depth,·false); | ||
6 | ····} | 6 | ····} |
7 | ····return·f | 7 | ····return·flatten; |
8 | })); | 8 | })); |
Offset 1, 13 lines modified | Offset 1, 14 lines modified | ||
1 | define(['./index | 1 | define(['./index85'],·(function(isFunction)·{ |
2 | ····//·Get·the·first·element·of·an·array.·Passing·**n**·will·return·the·first·N | ||
3 | ····//·values·in·the·array.·The·**guard**·check·allows·it·to·work·with·`_.map`. | ||
4 | ····function·first(array,·n,·guard)·{ | ||
5 | ········if·(array·==·null·||·array.length·<·1)·return·n·==·null·||·guard·?·void·0·:·[]; | ||
6 | ········if·(n·==·null·||·guard)·return·array[0]; | ||
7 | ······· | 2 | ····//·Return·a·sorted·list·of·the·function·names·available·on·the·object. |
3 | ····function·functions(obj)·{ | ||
4 | ········var·names·=·[]; | ||
5 | ········for·(var·key·in·obj)·{ | ||
6 | ············if·(isFunction(obj[key]))·names.push(key); | ||
7 | ········} | ||
8 | ········return·names.sort(); | ||
8 | ····} | 9 | ····} |
9 | ····return·fi | 10 | ····return·functions; |
10 | })); | 11 | })); |
Offset 1, 11 lines modified | Offset 1, 14 lines modified | ||
1 | define(['./index1 | 1 | define(['./index30',·'./index11',·'./index97'],·(function(_toPath,·_deepGet,·isUndefined)·{ |
2 | ····//·Flatten·out·an·array,·either·recursively·(by·default),·or·up·to·`depth`. | ||
3 | ····//·Passing·`true`·or·`false`·as·`depth`·means·`1`·or·`Infinity`,·respectively. | ||
4 | ····function·flatten(array,·depth)·{ | ||
5 | ····· | 2 | ····//·Get·the·value·of·the·(deep)·property·on·`path`·from·`object`. |
3 | ····//·If·any·property·in·`path`·does·not·exist·or·if·the·value·is | ||
4 | ····//·`undefined`,·return·`defaultValue`·instead. | ||
5 | ····//·The·`path`·is·normalized·through·`_.toPath`. | ||
6 | ····function·get(object,·path,·defaultValue)·{ | ||
7 | ········var·value·=·_deepGet(object,·_toPath(path)); | ||
8 | ········return·isUndefined(value)·?·defaultValue·:·value; | ||
6 | ····} | 9 | ····} |
7 | ····return· | 10 | ····return·get; |
8 | })); | 11 | })); |
Offset 1, 14 lines modified | Offset 1, 19 lines modified | ||
1 | define(['./index8 | 1 | define(['./index18',·'./index30'],·(function(_has,·_toPath)·{ |
2 | ····//·Return·a·sorted·list·of·the·function·names·available·on·the·object. | ||
3 | ····function·functions(obj)·{ | ||
4 | ········var·names·=·[]; | ||
5 | ········for·(var·key·in·obj)·{ | ||
6 | ····· | 2 | ····//·Shortcut·function·for·checking·if·an·object·has·a·given·property·directly·on |
3 | ····//·itself·(in·other·words,·not·on·a·prototype).·Unlike·the·internal·`has` | ||
4 | ····//·function,·this·public·version·can·also·traverse·nested·properties. | ||
5 | ····function·has(obj,·path)·{ | ||
6 | ········path·=·_toPath(path); | ||
7 | ········var·length·=·path.length; | ||
8 | ········for·(var·i·=·0;·i·<·length;·i++)·{ | ||
9 | ············var·key·=·path[i]; | ||
10 | ············if·(!_has(obj,·key))·return·false; | ||
11 | ············obj·=·obj[key]; | ||
7 | ········} | 12 | ········} |
8 | ········return· | 13 | ········return·!!length; |
9 | ····} | 14 | ····} |
10 | ····return· | 15 | ····return·has; |
11 | })); | 16 | })); |
Offset 1, 14 lines modified | Offset 1, 10 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Keep·the·identity·function·around·for·default·iteratees. | ||
3 | ····function·identity(value)·{ | ||
4 | ········return·value; | ||
2 | ····//·Get·the·value·of·the·(deep)·property·on·`path`·from·`object`. | ||
3 | ····//·If·any·property·in·`path`·does·not·exist·or·if·the·value·is | ||
4 | ····//·`undefined`,·return·`defaultValue`·instead. | ||
5 | ····//·The·`path`·is·normalized·through·`_.toPath`. | ||
6 | ····function·get(object,·path,·defaultValue)·{ | ||
7 | ········var·value·=·_deepGet(object,·_toPath(path)); | ||
8 | ········return·isUndefined(value)·?·defaultValue·:·value; | ||
9 | ····} | 5 | ····} |
10 | ····return· | 6 | ····return·identity; |
11 | })); | 7 | })); |
Offset 1, 12 lines modified | Offset 1, 29 lines modified | ||
1 | define(['./index | 1 | define(['./index67',·'./index110'],·(function(index,·mixin)·{ |
2 | ····//·Groups·the·object's·values·by·a·criterion.·Pass·either·a·string·attribute | ||
3 | ····//·to·group·by,·or·a·function·that·returns·the·criterion. | ||
4 | ····var·groupBy·=·_group(function(result,·value,·key)·{ | ||
5 | ········if·(_has(result,·key))·result[key].push(value); | ||
6 | ········else·result[key]·=·[value]; | ||
7 | ···· | 2 | ····//·Default·Export |
3 | ····//·============== | ||
4 | ····//·In·this·module,·we·mix·our·bundled·exports·into·the·`_`·object·and·export | ||
5 | ····//·the·result.·This·is·analogous·to·setting·`module.exports·=·_`·in·CommonJS. | ||
6 | ····//·Hence,·this·module·is·also·the·entry·point·of·our·UMD·bundle·and·the·package | ||
7 | ····//·entry·point·for·CommonJS·and·AMD·users.·In·other·words,·this·is·(the·source | ||
8 | ····//·of)·the·module·you·are·interfacing·with·when·you·do·any·of·the·following: | ||
9 | ····// | ||
10 | ····//·```js | ||
11 | ····//·//·CommonJS | ||
12 | ····//·var·_·=·require('underscore'); | ||
13 | ····// | ||
14 | ····//·//·AMD | ||
15 | ····//·define(['underscore'],·function(_)·{...}); | ||
16 | ····// | ||
17 | ····//·//·UMD·in·the·browser | ||
18 | ····//·//·_·is·available·as·a·global·variable | ||
19 | ····//·``` | ||
20 | ····//·Add·all·of·the·Underscore·functions·to·the·wrapper·object. | ||
21 | ····var·_·=·mixin(index); | ||
22 | ····//·Legacy·Node.js·API. | ||
23 | ····_._·=·_; | ||
8 | ····return· | 24 | ····return·_; |
9 | })); | 25 | })); |
Offset 1, 19 lines modified | Offset 1, 157 lines modified | ||
1 | define(['./index18',·'./index3 | 1 | define(['exports',·'./index25',·'./index131',·'./index91',·'./index89',·'./index97',·'./index77',·'./index144',·'./index94',·'./index90',·'./index79',·'./index92',·'./index83',·'./index95',·'./index76',·'./index78',·'./index75',·'./index85',·'./index74',·'./index84[·...·truncated·by·diffoscope;·len:·2618,·SHA:·797b2dd9067d55e6dcb6f6698ab7c2a7a5ad772023dba3d95fa80e6f0364c8de·...·])·{ |
2 | ····//·Named·Exports | ||
3 | ····//·============= | ||
2 | ····//·Shortcut·function·for·checking·if·an·object·has·a·given·property·directly·on | ||
3 | ····//·itself·(in·other·words,·not·on·a·prototype).·Unlike·the·internal·`has` | ||
4 | ····//·function,·this·public·version·can·also·traverse·nested·properties. | ||
5 | ····function·has(obj,·path)·{ | ||
6 | ········path·=·_toPath(path); | ||
7 | ········var·length·=·path.length; | ||
8 | ········for·(var·i·=·0;·i·<·length;·i++)·{ | ||
9 | ············var·key·=·path[i]; | ||
10 | ············if·(!_has(obj,·key))·return·false; | ||
11 | ············obj·=·obj[key]; | ||
12 | ········} | ||
13 | ········return·!!length; | ||
14 | ····} | ||
15 | ····retu | 4 | ····exports.VERSION·=·_setup.VERSION; |
5 | ····exports.restArguments·=·restArguments; | ||
6 | ····exports.isObject·=·isObject; | ||
7 | ····exports.isNull·=·isNull; | ||
8 | ····exports.isUndefined·=·isUndefined; | ||
9 | ····exports.isBoolean·=·isBoolean; | ||
10 | ····exports.isElement·=·isElement; | ||
11 | ····exports.isString·=·isString; | ||
12 | ····exports.isNumber·=·isNumber; | ||
13 | ····exports.isDate·=·isDate; | ||
14 | ····exports.isRegExp·=·isRegExp; | ||
15 | ····exports.isError·=·isError; | ||
16 | ····exports.isSymbol·=·isSymbol; | ||
17 | ····exports.isArrayBuffer·=·isArrayBuffer; | ||
18 | ····exports.isDataView·=·isDataView; | ||
19 | ····exports.isArray·=·isArray; | ||
20 | ····exports.isFunction·=·isFunction; | ||
21 | ····exports.isArguments·=·isArguments; | ||
22 | ····exports.isFinite·=·isFinite; | ||
23 | ····exports.isNaN·=·isNaN; | ||
24 | ····exports.isTypedArray·=·isTypedArray; | ||
25 | ····exports.isEmpty·=·isEmpty; | ||
26 | ····exports.isMatch·=·isMatch; | ||
27 | ····exports.isEqual·=·isEqual; | ||
28 | ····exports.isMap·=·isMap; | ||
29 | ····exports.isWeakMap·=·isWeakMap; | ||
30 | ····exports.isSet·=·isSet; | ||
31 | ····exports.isWeakSet·=·isWeakSet; | ||
32 | ····exports.keys·=·keys; | ||
33 | ····exports.allKeys·=·allKeys; | ||
34 | ····exports.values·=·values; | ||
35 | ····exports.pairs·=·pairs; | ||
36 | ····exports.invert·=·invert; | ||
37 | ····exports.functions·=·functions; | ||
38 | ····exports.methods·=·functions; | ||
39 | ····exports.extend·=·extend; | ||
40 | ····exports.assign·=·extendOwn; | ||
41 | ····exports.extendOwn·=·extendOwn; | ||
42 | ····exports.defaults·=·defaults; | ||
43 | ····exports.create·=·create; | ||
44 | ····exports.clone·=·clone; | ||
45 | ····exports.tap·=·tap; | ||
46 | ····exports.get·=·get; | ||
47 | ····exports.has·=·has; | ||
48 | ····exports.mapObject·=·mapObject; | ||
49 | ····exports.identity·=·identity; | ||
50 | ····exports.constant·=·constant; | ||
51 | ····exports.noop·=·noop; | ||
52 | ····exports.toPath·=·toPath; | ||
53 | ····exports.property·=·property; | ||
54 | ····exports.propertyOf·=·propertyOf; | ||
55 | ····exports.matcher·=·matcher; | ||
56 | ····exports.matches·=·matcher; | ||
57 | ····exports.times·=·times; | ||
58 | ····exports.random·=·random; | ||
59 | ····exports.now·=·now; | ||
60 | ····exports.escape·=·escape; | ||
61 | ····exports.unescape·=·unescape; | ||
62 | ····exports.templateSettings·=·templateSettings; | ||
63 | ····exports.template·=·template; | ||
64 | ····exports.result·=·result; | ||
65 | ····exports.uniqueId·=·uniqueId; | ||
66 | ····exports.chain·=·chain; | ||
67 | ····exports.iteratee·=·iteratee; | ||
68 | ····exports.partial·=·partial; | ||
69 | ····exports.bind·=·bind; | ||
70 | ····exports.bindAll·=·bindAll; | ||
71 | ····exports.memoize·=·memoize; | ||
72 | ····exports.delay·=·delay; | ||
73 | ····exports.defer·=·defer; | ||
74 | ····exports.throttle·=·throttle; | ||
75 | ····exports.debounce·=·debounce; | ||
76 | ····exports.wrap·=·wrap; | ||
77 | ····exports.negate·=·negate; | ||
78 | ····exports.compose·=·compose; | ||
79 | ····exports.after·=·after; | ||
80 | ····exports.before·=·before; | ||
81 | ····exports.once·=·once; | ||
82 | ····exports.findKey·=·findKey; | ||
83 | ····exports.findIndex·=·findIndex; | ||
84 | ····exports.findLastIndex·=·findLastIndex; | ||
85 | ····exports.sortedIndex·=·sortedIndex; | ||
86 | ····exports.indexOf·=·indexOf; | ||
87 | ····exports.lastIndexOf·=·lastIndexOf; | ||
88 | ····exports.detect·=·find; | ||
89 | ····exports.find·=·find; | ||
90 | ····exports.findWhere·=·findWhere; | ||
91 | ····exports.each·=·each; | ||
92 | ····exports.forEach·=·each; | ||
93 | ····exports.collect·=·map; | ||
94 | ····exports.map·=·map; | ||
95 | ····exports.foldl·=·reduce; | ||
96 | ····exports.inject·=·reduce; | ||
97 | ····exports.reduce·=·reduce; | ||
98 | ····exports.foldr·=·reduceRight; | ||
99 | ····exports.reduceRight·=·reduceRight; | ||
100 | ····exports.filter·=·filter; | ||
101 | ····exports.select·=·filter; | ||
102 | ····exports.reject·=·reject; | ||
103 | ····exports.all·=·every; | ||
104 | ····exports.every·=·every; | ||
105 | ····exports.any·=·some; | ||
106 | ····exports.some·=·some; | ||
107 | ····exports.contains·=·contains; | ||
108 | ····exports.include·=·contains; | ||
109 | ····exports.includes·=·contains; | ||
110 | ····exports.invoke·=·invoke; | ||
111 | ····exports.pluck·=·pluck; | ||
112 | ····exports.where·=·where; | ||
Max diff block lines reached; 6/8243 bytes (0.07%) of diff not shown. |
Offset 1, 10 lines modified | Offset 1, 11 lines modified | ||
1 | define((function()·{ | 1 | define(['./index17'],·(function(_group)·{ |
2 | ····//·Keep·the·identity·function·around·for·default·iteratees. | ||
3 | ····function·identity(value)·{ | ||
4 | ········r | 2 | ····//·Indexes·the·object's·values·by·a·criterion,·similar·to·`_.groupBy`,·but·for |
3 | ····//·when·you·know·that·your·index·values·will·be·unique. | ||
4 | ····var·indexBy·=·_group(function(result,·value,·key)·{ | ||
5 | ········result[key]·=·value; | ||
5 | ····} | 6 | ····}); |
6 | ····return·ide | 7 | ····return·indexBy; |
7 | })); | 8 | })); |
Offset 1, 29 lines modified | Offset 1, 11 lines modified | ||
1 | define(['./index | 1 | define(['./index138',·'./index56',·'./index7'],·(function(sortedIndex,·findIndex,·_createIndexFinder)·{ |
2 | ····//·Return·the·position·of·the·first·occurrence·of·an·item·in·an·array, | ||
3 | ····//·or·-1·if·the·item·is·not·included·in·the·array. | ||
4 | ····//·If·the·array·is·large·and·already·in·sort·order,·pass·`true` | ||
5 | ····//·for·**isSorted**·to·use·binary·search. | ||
6 | ····var·indexOf·=·_createIndexFinder(1,·findIndex,·sortedIndex); | ||
2 | ····//·Default·Export | ||
3 | ····//·============== | ||
4 | ····//·In·this·module,·we·mix·our·bundled·exports·into·the·`_`·object·and·export | ||
5 | ····//·the·result.·This·is·analogous·to·setting·`module.exports·=·_`·in·CommonJS. | ||
6 | ····//·Hence,·this·module·is·also·the·entry·point·of·our·UMD·bundle·and·the·package | ||
7 | ····//·entry·point·for·CommonJS·and·AMD·users.·In·other·words,·this·is·(the·source | ||
8 | ····//·of)·the·module·you·are·interfacing·with·when·you·do·any·of·the·following: | ||
9 | ····// | ||
10 | ····//·```js | ||
11 | ····//·//·CommonJS | ||
12 | ····//·var·_·=·require('underscore'); | ||
13 | ····// | ||
14 | ····//·//·AMD | ||
15 | ····//·define(['underscore'],·function(_)·{...}); | ||
16 | ····// | ||
17 | ····//·//·UMD·in·the·browser | ||
18 | ····//·//·_·is·available·as·a·global·variable | ||
19 | ····//·``` | ||
20 | ····//·Add·all·of·the·Underscore·functions·to·the·wrapper·object. | ||
21 | ····var·_·=·mixin(index); | ||
22 | ····//·Legacy·Node.js·API. | ||
23 | ····_._·=·_; | ||
24 | ····return· | 7 | ····return·indexOf; |
25 | })); | 8 | })); |
Offset 1, 21 lines modified | Offset 1, 31 lines modified | ||
1 | define(['./index1 | 1 | define(['./index16',·'./index25',·'./index88'],·(function(_getLength,·_setup,·isNaN)·{ |
2 | ····//·Internal·helper·to·generate·functions·for·escaping·and·unescaping·strings | ||
3 | ····//·to/from·HTML·interpolation. | ||
4 | ····function·createEscaper(map)·{ | ||
5 | ········var·escaper·=·function(match)·{ | ||
6 | ········ | 2 | ····//·Internal·function·to·generate·the·`_.indexOf`·and·`_.lastIndexOf`·functions. |
3 | ····function·createIndexFinder(dir,·predicateFind,·sortedIndex)·{ | ||
4 | ········return·function(array,·item,·idx)·{ | ||
5 | ············var·i·=·0, | ||
6 | ················length·=·_getLength(array); | ||
7 | ············if·(typeof·idx·==·'number')·{ | ||
8 | ················if·(dir·>·0)·{ | ||
9 | ····················i·=·idx·>=·0·?·idx·:·Math.max(idx·+·length,·i); | ||
10 | ················}·else·{ | ||
11 | ····················length·=·idx·>=·0·?·Math.min(idx·+·1,·length)·:·idx·+·length·+·1; | ||
12 | ················} | ||
13 | ············}·else·if·(sortedIndex·&&·idx·&&·length)·{ | ||
14 | ················idx·=·sortedIndex(array,·item); | ||
15 | ················return·array[idx]·===·item·?·idx·:·-1; | ||
7 | ········ | 16 | ············} |
8 | ········//·Regexes·for·identifying·a·key·that·needs·to·be·escaped. | ||
9 | ········var·source·=·'(?:'·+·keys(map).join('|')·+·')'; | ||
10 | ········var·testRegexp·=·RegExp(source); | ||
11 | ········var·replaceRegexp·=·RegExp(source,·'g'); | ||
12 | ········return·function(string)·{ | ||
13 | ············string·=·string·==·null·?·''·:·''·+·string; | ||
14 | ············ | 17 | ············if·(item·!==·item)·{ |
18 | ················idx·=·predicateFind(_setup.slice.call(array,·i,·length),·isNaN); | ||
19 | ················return·idx·>=·0·?·idx·+·i·:·-1; | ||
20 | ············} | ||
21 | ············for·(idx·=·dir·>·0·?·i·:·length·-·1;·idx·>=·0·&&·idx·<·length;·idx·+=·dir)·{ | ||
22 | ················if·(array[idx]·===·item)·return·idx; | ||
23 | ············} | ||
24 | ············return·-1; | ||
15 | ········}; | 25 | ········}; |
16 | ····} | 26 | ····} |
17 | ····return·create | 27 | ····return·createIndexFinder; |
18 | })); | 28 | })); |
Offset 1, 157 lines modified | Offset 1, 12 lines modified | ||
1 | define([' | 1 | define(['./index25'],·(function(_setup)·{ |
2 | ····//·Named·Exports | ||
3 | ····//· | 2 | ····//·Returns·everything·but·the·last·entry·of·the·array.·Especially·useful·on |
3 | ····//·the·arguments·object.·Passing·**n**·will·return·all·the·values·in | ||
4 | ····//·the·array,·excluding·the·last·N. | ||
5 | ····function·initial(array,·n,·guard)·{ | ||
6 | ········return·_setup.slice.call(array,·0,·Math.max(0,·array.length·-·(n·==·null·||·guard·?·1·:·n))); | ||
7 | ····} | ||
8 | ····return·initial; | ||
4 | ····exports.VERSION·=·_setup.VERSION; | ||
5 | ····exports.restArguments·=·restArguments; | ||
6 | ····exports.isObject·=·isObject; | ||
7 | ····exports.isNull·=·isNull; | ||
8 | ····exports.isUndefined·=·isUndefined; | ||
9 | ····exports.isBoolean·=·isBoolean; | ||
10 | ····exports.isElement·=·isElement; | ||
11 | ····exports.isString·=·isString; | ||
12 | ····exports.isNumber·=·isNumber; | ||
13 | ····exports.isDate·=·isDate; | ||
14 | ····exports.isRegExp·=·isRegExp; | ||
15 | ····exports.isError·=·isError; | ||
16 | ····exports.isSymbol·=·isSymbol; | ||
17 | ····exports.isArrayBuffer·=·isArrayBuffer; | ||
18 | ····exports.isDataView·=·isDataView; | ||
19 | ····exports.isArray·=·isArray; | ||
20 | ····exports.isFunction·=·isFunction; | ||
21 | ····exports.isArguments·=·isArguments; | ||
22 | ····exports.isFinite·=·isFinite; | ||
23 | ····exports.isNaN·=·isNaN; | ||
24 | ····exports.isTypedArray·=·isTypedArray; | ||
25 | ····exports.isEmpty·=·isEmpty; | ||
26 | ····exports.isMatch·=·isMatch; | ||
27 | ····exports.isEqual·=·isEqual; | ||
28 | ····exports.isMap·=·isMap; | ||
29 | ····exports.isWeakMap·=·isWeakMap; | ||
30 | ····exports.isSet·=·isSet; | ||
31 | ····exports.isWeakSet·=·isWeakSet; | ||
32 | ····exports.keys·=·keys; | ||
33 | ····exports.allKeys·=·allKeys; | ||
34 | ····exports.values·=·values; | ||
35 | ····exports.pairs·=·pairs; | ||
36 | ····exports.invert·=·invert; | ||
37 | ····exports.functions·=·functions; | ||
38 | ····exports.methods·=·functions; | ||
39 | ····exports.extend·=·extend; | ||
40 | ····exports.assign·=·extendOwn; | ||
41 | ····exports.extendOwn·=·extendOwn; | ||
42 | ····exports.defaults·=·defaults; | ||
43 | ····exports.create·=·create; | ||
44 | ····exports.clone·=·clone; | ||
45 | ····exports.tap·=·tap; | ||
46 | ····exports.get·=·get; | ||
47 | ····exports.has·=·has; | ||
48 | ····exports.mapObject·=·mapObject; | ||
49 | ····exports.identity·=·identity; | ||
50 | ····exports.constant·=·constant; | ||
51 | ····exports.noop·=·noop; | ||
52 | ····exports.toPath·=·toPath; | ||
53 | ····exports.property·=·property; | ||
54 | ····exports.propertyOf·=·propertyOf; | ||
55 | ····exports.matcher·=·matcher; | ||
56 | ····exports.matches·=·matcher; | ||
57 | ····exports.times·=·times; | ||
58 | ····exports.random·=·random; | ||
59 | ····exports.now·=·now; | ||
60 | ····exports.escape·=·escape; | ||
61 | ····exports.unescape·=·unescape; | ||
62 | ····exports.templateSettings·=·templateSettings; | ||
63 | ····exports.template·=·template; | ||
64 | ····exports.result·=·result; | ||
65 | ····exports.uniqueId·=·uniqueId; | ||
66 | ····exports.chain·=·chain; | ||
67 | ····exports.iteratee·=·iteratee; | ||
68 | ····exports.partial·=·partial; | ||
69 | ····exports.bind·=·bind; | ||
70 | ····exports.bindAll·=·bindAll; | ||
71 | ····exports.memoize·=·memoize; | ||
72 | ····exports.delay·=·delay; | ||
73 | ····exports.defer·=·defer; | ||
74 | ····exports.throttle·=·throttle; | ||
75 | ····exports.debounce·=·debounce; | ||
76 | ····exports.wrap·=·wrap; | ||
77 | ····exports.negate·=·negate; | ||
78 | ····exports.compose·=·compose; | ||
79 | ····exports.after·=·after; | ||
80 | ····exports.before·=·before; | ||
81 | ····exports.once·=·once; | ||
82 | ····exports.findKey·=·findKey; | ||
83 | ····exports.findIndex·=·findIndex; | ||
84 | ····exports.findLastIndex·=·findLastIndex; | ||
85 | ····exports.sortedIndex·=·sortedIndex; | ||
86 | ····exports.indexOf·=·indexOf; | ||
87 | ····exports.lastIndexOf·=·lastIndexOf; | ||
88 | ····exports.detect·=·find; | ||
89 | ····exports.find·=·find; | ||
90 | ····exports.findWhere·=·findWhere; | ||
91 | ····exports.each·=·each; | ||
92 | ····exports.forEach·=·each; | ||
93 | ····exports.collect·=·map; | ||
94 | ····exports.map·=·map; | ||
95 | ····exports.foldl·=·reduce; | ||
96 | ····exports.inject·=·reduce; | ||
97 | ····exports.reduce·=·reduce; | ||
98 | ····exports.foldr·=·reduceRight; | ||
99 | ····exports.reduceRight·=·reduceRight; | ||
100 | ····exports.filter·=·filter; | ||
101 | ····exports.select·=·filter; | ||
102 | ····exports.reject·=·reject; | ||
103 | ····exports.all·=·every; | ||
104 | ····exports.every·=·every; | ||
105 | ····exports.any·=·some; | ||
106 | ····exports.some·=·some; | ||
107 | ····exports.contains·=·contains; | ||
108 | ····exports.include·=·contains; | ||
109 | ····exports.includes·=·contains; | ||
110 | ····exports.invoke·=·invoke; | ||
111 | ····exports.pluck·=·pluck; | ||
112 | ····exports.where·=·where; | ||
113 | ····exports.max·=·max; | ||
114 | ····exports.min·=·min; | ||
115 | ····exports.shuffle·=·shuffle; | ||
116 | ····exports.sample·=·sample; | ||
117 | ····exports.sortBy·=·sortBy; | ||
118 | ····exports.groupBy·=·groupBy; | ||
119 | ····exports.indexBy·=·indexBy; | ||
Max diff block lines reached; 6/8042 bytes (0.07%) of diff not shown. |
Offset 1, 11 lines modified | Offset 1, 22 lines modified | ||
1 | define(['./index1 | 1 | define(['./index16',·'./index40'],·(function(_getLength,·contains)·{ |
2 | ····//·Indexes·the·object's·values·by·a·criterion,·similar·to·`_.groupBy`,·but·for | ||
3 | ····//·when·you·know·that·your·index·values·will·be·unique. | ||
4 | ····var·indexBy·=·_group(function(result,·value,·key)·{ | ||
5 | ········ | 2 | ····//·Produce·an·array·that·contains·every·item·shared·between·all·the |
3 | ····//·passed-in·arrays. | ||
4 | ····function·intersection(array)·{ | ||
5 | ········var·result·=·[]; | ||
6 | ········var·argsLength·=·arguments.length; | ||
7 | ········for·(var·i·=·0,·length·=·_getLength(array);·i·<·length;·i++)·{ | ||
8 | ············var·item·=·array[i]; | ||
9 | ············if·(contains(result,·item))·continue; | ||
10 | ············var·j; | ||
11 | ············for·(j·=·1;·j·<·argsLength;·j++)·{ | ||
12 | ················if·(!contains(arguments[j],·item))·break; | ||
13 | ············} | ||
14 | ············if·(j·===·argsLength)·result.push(item); | ||
15 | ········} | ||
16 | ········return·result; | ||
6 | ····} | 17 | ····} |
7 | ····return·in | 18 | ····return·intersection; |
8 | })); | 19 | })); |
Offset 1, 12 lines modified | Offset 1, 15 lines modified | ||
1 | define(['./index | 1 | define(['./index101'],·(function(keys)·{ |
2 | ····//·Returns·everything·but·the·last·entry·of·the·array.·Especially·useful·on | ||
3 | ····//·the·arguments·object.·Passing·**n**·will·return·all·the·values·in | ||
4 | ····//·the·array,·excluding·the·last·N. | ||
5 | ····function·initial(array,·n,·guard)·{ | ||
6 | ···· | 2 | ····//·Invert·the·keys·and·values·of·an·object.·The·values·must·be·serializable. |
3 | ····function·invert(obj)·{ | ||
4 | ········var·result·=·{}; | ||
5 | ········var·_keys·=·keys(obj); | ||
6 | ········for·(var·i·=·0,·length·=·_keys.length;·i·<·length;·i++)·{ | ||
7 | ············result[obj[_keys[i]]]·=·_keys[i]; | ||
8 | ········} | ||
9 | ········return·result; | ||
7 | ····} | 10 | ····} |
8 | ····return·in | 11 | ····return·invert; |
9 | })); | 12 | })); |
Offset 1, 11 lines modified | Offset 1, 28 lines modified | ||
1 | define(['./index1 | 1 | define(['./index131',·'./index85',·'./index104',·'./index11',·'./index30'],·(function(restArguments,·isFunction,·map,·_deepGet,·_toPath)·{ |
2 | ····//·Return·the·position·of·the·first·occurrence·of·an·item·in·an·array, | ||
3 | ····//·or·-1·if·the·item·is·not·included·in·the·array. | ||
4 | ····//·If·the·array·is·large·and·already·in·sort·order,·pass·`true` | ||
5 | ····//·for·**isSorted**·to·use·binary·search. | ||
6 | ····v | 2 | ····//·Invoke·a·method·(with·arguments)·on·every·item·in·a·collection. |
3 | ····var·invoke·=·restArguments(function(obj,·path,·args)·{ | ||
4 | ········var·contextPath,·func; | ||
5 | ········if·(isFunction(path))·{ | ||
6 | ············func·=·path; | ||
7 | ········}·else·{ | ||
8 | ············path·=·_toPath(path); | ||
9 | ············contextPath·=·path.slice(0,·-1); | ||
10 | ············path·=·path[path.length·-·1]; | ||
11 | ········} | ||
12 | ········return·map(obj,·function(context)·{ | ||
13 | ············var·method·=·func; | ||
14 | ············if·(!method)·{ | ||
15 | ················if·(contextPath·&&·contextPath.length)·{ | ||
16 | ····················context·=·_deepGet(context,·contextPath); | ||
17 | ················} | ||
18 | ················if·(context·==·null)·return·void·0; | ||
19 | ················method·=·context[path]; | ||
20 | ············} | ||
21 | ············return·method·==·null·?·method·:·method.apply(context,·args); | ||
22 | ········}); | ||
23 | ····}); | ||
7 | ····return·in | 24 | ····return·invoke; |
8 | })); | 25 | })); |
Offset 1, 22 lines modified | Offset 1, 19 lines modified | ||
1 | define(['./index | 1 | define(['./index28',·'./index18'],·(function(_tagTester,·_has)·{ |
2 | ····var·isArguments·=·_tagTester('Arguments'); | ||
3 | ····//·Define·a·fallback·version·of·the·method·in·browsers·(ahem,·IE·<·9),·where | ||
4 | ····//·there·isn't·any·inspectable·"Arguments"·type. | ||
5 | ····(function()·{ | ||
6 | ········if·(!isArguments(arguments))·{ | ||
7 | ············isArguments·=·function(obj)·{ | ||
8 | ················return·_has(obj,·'callee'); | ||
2 | ····//·Produce·an·array·that·contains·every·item·shared·between·all·the | ||
3 | ····//·passed-in·arrays. | ||
4 | ····function·intersection(array)·{ | ||
5 | ········var·result·=·[]; | ||
6 | ········var·argsLength·=·arguments.length; | ||
7 | ········for·(var·i·=·0,·length·=·_getLength(array);·i·<·length;·i++)·{ | ||
8 | ············var·item·=·array[i]; | ||
9 | ············if·(contains(result,·item))·continue; | ||
10 | ············var·j; | ||
11 | ············for·(j·=·1;·j·<·argsLength;·j++)·{ | ||
12 | ················if·(!contains(arguments[j],·item))·break; | ||
13 | ············} | 9 | ············}; |
14 | ············if·(j·===·argsLength)·result.push(item); | ||
15 | ········} | 10 | ········} |
16 | ········return·result; | ||
17 | ····} | 11 | ····}()); |
12 | ····var·isArguments$1·=·isArguments; | ||
18 | ····return·i | 13 | ····return·isArguments$1; |
19 | })); | 14 | })); |
Offset 1, 15 lines modified | Offset 1, 9 lines modified | ||
1 | define(['./index | 1 | define(['./index25',·'./index28'],·(function(_setup,·_tagTester)·{ |
2 | ····//·Is·a·given·value·an·array? | ||
3 | ····//·Delegates·to·ECMA5's·native·`Array.isArray`. | ||
4 | ····var·isArray·=·_setup.nativeIsArray·||·_tagTester('Array'); | ||
2 | ····//·Invert·the·keys·and·values·of·an·object.·The·values·must·be·serializable. | ||
3 | ····function·invert(obj)·{ | ||
4 | ········var·result·=·{}; | ||
5 | ········var·_keys·=·keys(obj); | ||
6 | ········for·(var·i·=·0,·length·=·_keys.length;·i·<·length;·i++)·{ | ||
7 | ············result[obj[_keys[i]]]·=·_keys[i]; | ||
8 | ········} | ||
9 | ········return·result; | ||
10 | ····} | ||
11 | ····return·i | 5 | ····return·isArray; |
12 | })); | 6 | })); |
Offset 1, 28 lines modified | Offset 1, 7 lines modified | ||
1 | define(['./index | 1 | define(['./index28'],·(function(_tagTester)·{ |
2 | ····var·isArrayBuffer·=·_tagTester('ArrayBuffer'); | ||
2 | ····//·Invoke·a·method·(with·arguments)·on·every·item·in·a·collection. | ||
3 | ····var·invoke·=·restArguments(function(obj,·path,·args)·{ | ||
4 | ········var·contextPath,·func; | ||
5 | ········if·(isFunction(path))·{ | ||
6 | ············func·=·path; | ||
7 | ········}·else·{ | ||
8 | ············path·=·_toPath(path); | ||
9 | ············contextPath·=·path.slice(0,·-1); | ||
10 | ············path·=·path[path.length·-·1]; | ||
11 | ········} | ||
12 | ········return·map(obj,·function(context)·{ | ||
13 | ············var·method·=·func; | ||
14 | ············if·(!method)·{ | ||
15 | ················if·(contextPath·&&·contextPath.length)·{ | ||
16 | ····················context·=·_deepGet(context,·contextPath); | ||
17 | ················} | ||
18 | ················if·(context·==·null)·return·void·0; | ||
19 | ················method·=·context[path]; | ||
20 | ············} | ||
21 | ············return·method·==·null·?·method·:·method.apply(context,·args); | ||
22 | ········}); | ||
23 | ····}); | ||
24 | ····return·i | 3 | ····return·isArrayBuffer; |
25 | })); | 4 | })); |
Offset 1, 19 lines modified | Offset 1, 10 lines modified | ||
1 | define(['./index2 | 1 | define(['./index25'],·(function(_setup)·{ |
2 | ···· | 2 | ····//·Is·a·given·value·a·boolean? |
3 | ····function·isBoolean(obj)·{ | ||
4 | ········return·obj·===·true·||·obj·===·false·||·_setup.toString.call(obj)·===·'[object·Boolean]'; | ||
5 | ····} | ||
6 | ····return·isBoolean; | ||
3 | ····//·Define·a·fallback·version·of·the·method·in·browsers·(ahem,·IE·<·9),·where | ||
4 | ····//·there·isn't·any·inspectable·"Arguments"·type. | ||
5 | ····(function()·{ | ||
6 | ········if·(!isArguments(arguments))·{ | ||
7 | ············isArguments·=·function(obj)·{ | ||
8 | ················return·_has(obj,·'callee'); | ||
9 | ············}; | ||
10 | ········} | ||
11 | ····}()); | ||
12 | ····var·isArguments$1·=·isArguments; | ||
13 | ····return·isArguments$1; | ||
14 | })); | 7 | })); |
Offset 1, 9 lines modified | Offset 1, 15 lines modified | ||
1 | define(['./index25',·'./index2 | 1 | define(['./index28',·'./index85',·'./index76',·'./index27'],·(function(_tagTester,·isFunction,·isArrayBuffer,·_stringTagBug)·{ |
2 | ····var·isDataView·=·_tagTester('DataView'); | ||
2 | ····//·Is·a·given·value·an·array? | ||
3 | ····//·Delegates·to·ECMA5's·native·`Array.isArray`. | ||
4 | ····var·isArray·=·_setup.nativeIsArray·||·_tagTester('Array'); | ||
5 | ···· | 3 | ····//·In·IE·10·-·Edge·13,·we·need·a·different·heuristic |
4 | ····//·to·determine·whether·an·object·is·a·`DataView`. | ||
5 | ····function·ie10IsDataView(obj)·{ | ||
6 | ········return·obj·!=·null·&&·isFunction(obj.getInt8)·&&·isArrayBuffer(obj.buffer); | ||
7 | ····} | ||
8 | ····var·isDataView$1·=·(_stringTagBug.hasStringTagBug·?·ie10IsDataView·:·isDataView); | ||
9 | ····return·isDataView$1; | ||
6 | })); | 10 | })); |
Offset 1, 10 lines modified | Offset 1, 7 lines modified | ||
1 | define(['./index2 | 1 | define(['./index28'],·(function(_tagTester)·{ |
2 | ····var·isDate·=·_tagTester('Date'); | ||
2 | ····//·Is·a·given·value·a·boolean? | ||
3 | ····function·isBoolean(obj)·{ | ||
4 | ········return·obj·===·true·||·obj·===·false·||·_setup.toString.call(obj)·===·'[object·Boolean]'; | ||
5 | ····} | ||
6 | ····return·is | 3 | ····return·isDate; |
7 | })); | 4 | })); |
Offset 1, 31 lines modified | Offset 1, 30 lines modified | ||
1 | define(['./index | 1 | define(['./index20',·'./index101',·'./index24'],·(function(_isArrayLike,·keys,·_optimizeCb)·{ |
2 | ····//·Internal·helper·to·create·a·reducing·function,·iterating·left·or·right. | ||
3 | ····function·createReduce(dir)·{ | ||
4 | ········//·Wrap·code·that·reassigns·argument·variables·in·a·separate·function·than | ||
5 | ········//·the·one·that·accesses·`arguments.length`·to·avoid·a·perf·hit.·(#1991) | ||
6 | ········var·reducer·=·function(obj,·iteratee,·memo,·initial)·{ | ||
7 | ············var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
8 | ················length·=·(_keys·||·obj).length, | ||
9 | ················index·=·dir·>·0·?·0·:·length·-·1; | ||
10 | ············if·(!initial)·{ | ||
11 | ················memo·=·obj[_keys·?·_keys[index]·:·index]; | ||
12 | ················index·+=·dir; | ||
2 | ····//·Internal·function·to·generate·the·`_.indexOf`·and·`_.lastIndexOf`·functions. | ||
3 | ····function·createIndexFinder(dir,·predicateFind,·sortedIndex)·{ | ||
4 | ········return·function(array,·item,·idx)·{ | ||
5 | ············var·i·=·0, | ||
6 | ················length·=·_getLength(array); | ||
7 | ············if·(typeof·idx·==·'number')·{ | ||
8 | ················if·(dir·>·0)·{ | ||
9 | ····················i·=·idx·>=·0·?·idx·:·Math.max(idx·+·length,·i); | ||
10 | ················}·else·{ | ||
11 | ····················length·=·idx·>=·0·?·Math.min(idx·+·1,·length)·:·idx·+·length·+·1; | ||
12 | ················} | ||
13 | ············}·else·if·(sortedIndex·&&·idx·&&·length)·{ | ||
14 | ················idx·=·sortedIndex(array,·item); | ||
15 | ················return·array[idx]·===·item·?·idx·:·-1; | ||
16 | ············} | 13 | ············} |
17 | ············if·(item·!==·item)·{ | ||
18 | ················idx·=·predicateFind(_setup.slice.call(array,·i,·length),·isNaN); | ||
19 | ············ | 14 | ············for·(;·index·>=·0·&&·index·<·length;·index·+=·dir)·{ |
15 | ················var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
16 | ················memo·=·iteratee(memo,·obj[currentKey],·currentKey,·obj); | ||
20 | ············} | 17 | ············} |
21 | ············for·(idx·=·dir·>·0·?·i·:·length·-·1;·idx·>=·0·&&·idx·<·length;·idx·+=·dir)·{ | ||
22 | ················if·(array[idx]·===·item)·return·idx; | ||
23 | ············} | ||
24 | ············return· | 18 | ············return·memo; |
19 | ········}; | ||
20 | ········return·function(obj,·iteratee,·memo,·context)·{ | ||
21 | ············var·initial·=·arguments.length·>=·3; | ||
22 | ············return·reducer(obj,·_optimizeCb(iteratee,·context,·4),·memo,·initial); | ||
25 | ········}; | 23 | ········}; |
26 | ····} | 24 | ····} |
27 | ····return·create | 25 | ····return·createReduce; |
28 | })); | 26 | })); |
Offset 1, 7 lines modified | Offset 1, 12 lines modified | ||
1 | define(['./index | 1 | define(['./index17',·'./index18'],·(function(_group,·_has)·{ |
2 | ····va | 2 | ····//·Groups·the·object's·values·by·a·criterion.·Pass·either·a·string·attribute |
3 | ····//·to·group·by,·or·a·function·that·returns·the·criterion. | ||
4 | ····var·groupBy·=·_group(function(result,·value,·key)·{ | ||
5 | ········if·(_has(result,·key))·result[key].push(value); | ||
6 | ········else·result[key]·=·[value]; | ||
7 | ····}); | ||
3 | ····return· | 8 | ····return·groupBy; |
4 | })); | 9 | })); |
Offset 1, 15 lines modified | Offset 1, 18 lines modified | ||
1 | define(['./index | 1 | define(['./index16',·'./index75',·'./index94',·'./index74',·'./index101'],·(function(_getLength,·isArray,·isString,·isArguments,·keys)·{ |
2 | ····//·Is·a·given·array,·string,·or·object·empty? | ||
3 | ····//·An·"empty"·object·has·no·enumerable·own-properties. | ||
2 | ····var·isDataView·=·_tagTester('DataView'); | ||
3 | ····//·In·IE·10·-·Edge·13,·we·need·a·different·heuristic | ||
4 | ····//·to·determine·whether·an·object·is·a·`DataView`. | ||
5 | ····function·i | 4 | ····function·isEmpty(obj)·{ |
6 | ········ | 5 | ········if·(obj·==·null)·return·true; |
6 | ········//·Skip·the·more·expensive·`toString`-based·type·checks·if·`obj`·has·no | ||
7 | ········//·`.length`. | ||
8 | ········var·length·=·_getLength(obj); | ||
9 | ········if·(typeof·length·==·'number'·&&·( | ||
10 | ················isArray(obj)·||·isString(obj)·||·isArguments(obj) | ||
11 | ············))·return·length·===·0; | ||
12 | ········return·_getLength(keys(obj))·===·0; | ||
7 | ····} | 13 | ····} |
14 | ····return·isEmpty; | ||
8 | ····var·isDataView$1·=·(_stringTagBug.hasStringTagBug·?·ie10IsDataView·:·isDataView); | ||
9 | ····return·isDataView$1; | ||
10 | })); | 15 | })); |
Offset 1, 7 lines modified | Offset 1, 135 lines modified | ||
1 | define(['./index29'],·(function(_tagTester)·{ | 1 | define(['./index147',·'./index25',·'./index15',·'./index129',·'./index85',·'./index27',·'./index78',·'./index101',·'./index18',·'./index29'],·(function(underscore,·_setup,·_getByteLength,·isTypedArray,·isFunction,·_stringTagBug,·isDataView,·keys,·_has,·_toBufferView)·{ |
2 | ···· | 2 | ····//·We·use·this·string·twice,·so·give·it·a·name·for·minification. |
3 | ····var·tagDataView·=·'[object·DataView]'; | ||
4 | ····//·Internal·recursive·comparison·function·for·`_.isEqual`. | ||
5 | ····function·eq(a,·b,·aStack,·bStack)·{ | ||
6 | ········//·Identical·objects·are·equal.·`0·===·-0`,·but·they·aren't·identical. | ||
7 | ········//·See·the·[Harmony·`egal`·proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal). | ||
8 | ········if·(a·===·b)·return·a·!==·0·||·1·/·a·===·1·/·b; | ||
9 | ········//·`null`·or·`undefined`·only·equal·to·itself·(strict·comparison). | ||
10 | ········if·(a·==·null·||·b·==·null)·return·false; | ||
11 | ········//·`NaN`s·are·equivalent,·but·non-reflexive. | ||
12 | ········if·(a·!==·a)·return·b·!==·b; | ||
13 | ········//·Exhaust·primitive·checks | ||
14 | ········var·type·=·typeof·a; | ||
15 | ········if·(type·!==·'function'·&&·type·!==·'object'·&&·typeof·b·!=·'object')·return·false; | ||
16 | ········return·deepEq(a,·b,·aStack,·bStack); | ||
17 | ····} | ||
18 | ····//·Internal·recursive·comparison·function·for·`_.isEqual`. | ||
19 | ····function·deepEq(a,·b,·aStack,·bStack)·{ | ||
20 | ········//·Unwrap·any·wrapped·objects. | ||
21 | ········if·(a·instanceof·underscore)·a·=·a._wrapped; | ||
22 | ········if·(b·instanceof·underscore)·b·=·b._wrapped; | ||
23 | ········//·Compare·`[[Class]]`·names. | ||
24 | ········var·className·=·_setup.toString.call(a); | ||
25 | ········if·(className·!==·_setup.toString.call(b))·return·false; | ||
26 | ········//·Work·around·a·bug·in·IE·10·-·Edge·13. | ||
27 | ········if·(_stringTagBug.hasStringTagBug·&&·className·==·'[object·Object]'·&&·isDataView(a))·{ | ||
28 | ············if·(!isDataView(b))·return·false; | ||
29 | ············className·=·tagDataView; | ||
30 | ········} | ||
31 | ········switch·(className)·{ | ||
32 | ············//·These·types·are·compared·by·value. | ||
33 | ············case·'[object·RegExp]': | ||
34 | ················//·RegExps·are·coerced·to·strings·for·comparison·(Note:·''·+·/a/i·===·'/a/i') | ||
35 | ············case·'[object·String]': | ||
36 | ················//·Primitives·and·their·corresponding·object·wrappers·are·equivalent;·thus,·`"5"`·is | ||
37 | ················//·equivalent·to·`new·String("5")`. | ||
38 | ················return·''·+·a·===·''·+·b; | ||
39 | ············case·'[object·Number]': | ||
40 | ················//·`NaN`s·are·equivalent,·but·non-reflexive. | ||
41 | ················//·Object(NaN)·is·equivalent·to·NaN. | ||
42 | ················if·(+a·!==·+a)·return·+b·!==·+b; | ||
43 | ················//·An·`egal`·comparison·is·performed·for·other·numeric·values. | ||
44 | ················return·+a·===·0·?·1·/·+a·===·1·/·b·:·+a·===·+b; | ||
45 | ············case·'[object·Date]': | ||
46 | ············case·'[object·Boolean]': | ||
47 | ················//·Coerce·dates·and·booleans·to·numeric·primitive·values.·Dates·are·compared·by·their | ||
48 | ················//·millisecond·representations.·Note·that·invalid·dates·with·millisecond·representations | ||
49 | ················//·of·`NaN`·are·not·equivalent. | ||
50 | ················return·+a·===·+b; | ||
51 | ············case·'[object·Symbol]': | ||
52 | ················return·_setup.SymbolProto.valueOf.call(a)·===·_setup.SymbolProto.valueOf.call(b); | ||
53 | ············case·'[object·ArrayBuffer]': | ||
54 | ············case·tagDataView: | ||
55 | ················//·Coerce·to·typed·array·so·we·can·fall·through. | ||
56 | ················return·deepEq(_toBufferView(a),·_toBufferView(b),·aStack,·bStack); | ||
57 | ········} | ||
58 | ········var·areArrays·=·className·===·'[object·Array]'; | ||
59 | ········if·(!areArrays·&&·isTypedArray(a))·{ | ||
60 | ············var·byteLength·=·_getByteLength(a); | ||
61 | ············if·(byteLength·!==·_getByteLength(b))·return·false; | ||
62 | ············if·(a.buffer·===·b.buffer·&&·a.byteOffset·===·b.byteOffset)·return·true; | ||
63 | ············areArrays·=·true; | ||
64 | ········} | ||
65 | ········if·(!areArrays)·{ | ||
66 | ············if·(typeof·a·!=·'object'·||·typeof·b·!=·'object')·return·false; | ||
67 | ············//·Objects·with·different·constructors·are·not·equivalent,·but·`Object`s·or·`Array`s | ||
68 | ············//·from·different·frames·are. | ||
69 | ············var·aCtor·=·a.constructor, | ||
70 | ················bCtor·=·b.constructor; | ||
71 | ············if·(aCtor·!==·bCtor·&&·!(isFunction(aCtor)·&&·aCtor·instanceof·aCtor·&& | ||
72 | ····················isFunction(bCtor)·&&·bCtor·instanceof·bCtor)·&& | ||
73 | ················('constructor'·in·a·&&·'constructor'·in·b))·{ | ||
74 | ················return·false; | ||
75 | ············} | ||
76 | ········} | ||
77 | ········//·Assume·equality·for·cyclic·structures.·The·algorithm·for·detecting·cyclic | ||
78 | ········//·structures·is·adapted·from·ES·5.1·section·15.12.3,·abstract·operation·`JO`. | ||
79 | ········//·Initializing·stack·of·traversed·objects. | ||
80 | ········//·It's·done·here·since·we·only·need·them·for·objects·and·arrays·comparison. | ||
81 | ········aStack·=·aStack·||·[]; | ||
82 | ········bStack·=·bStack·||·[]; | ||
83 | ········var·length·=·aStack.length; | ||
84 | ········while·(length--)·{ | ||
85 | ············//·Linear·search.·Performance·is·inversely·proportional·to·the·number·of | ||
86 | ············//·unique·nested·structures. | ||
87 | ············if·(aStack[length]·===·a)·return·bStack[length]·===·b; | ||
88 | ········} | ||
89 | ········//·Add·the·first·object·to·the·stack·of·traversed·objects. | ||
90 | ········aStack.push(a); | ||
91 | ········bStack.push(b); | ||
92 | ········//·Recursively·compare·objects·and·arrays. | ||
93 | ········if·(areArrays)·{ | ||
94 | ············//·Compare·array·lengths·to·determine·if·a·deep·comparison·is·necessary. | ||
95 | ············length·=·a.length; | ||
96 | ············if·(length·!==·b.length)·return·false; | ||
97 | ············//·Deep·compare·the·contents,·ignoring·non-numeric·properties. | ||
98 | ············while·(length--)·{ | ||
99 | ················if·(!eq(a[length],·b[length],·aStack,·bStack))·return·false; | ||
100 | ············} | ||
101 | ········}·else·{ | ||
102 | ············//·Deep·compare·objects. | ||
103 | ············var·_keys·=·keys(a), | ||
104 | ················key; | ||
105 | ············length·=·_keys.length; | ||
106 | ············//·Ensure·that·both·objects·contain·the·same·number·of·properties·before·comparing·deep·equality. | ||
107 | ············if·(keys(b).length·!==·length)·return·false; | ||
108 | ············while·(length--)·{ | ||
109 | ················//·Deep·compare·each·member | ||
110 | ················key·=·_keys[length]; | ||
111 | ················if·(!(_has(b,·key)·&&·eq(a[key],·b[key],·aStack,·bStack)))·return·false; | ||
112 | ············} | ||
113 | ········} | ||
114 | ········//·Remove·the·first·object·from·the·stack·of·traversed·objects. | ||
115 | ········aStack.pop(); | ||
116 | ········bStack.pop(); | ||
117 | ········return·true; | ||
118 | ····} | ||
Max diff block lines reached; 6/6507 bytes (0.09%) of diff not shown. |
Offset 1, 10 lines modified | Offset 1, 7 lines modified | ||
1 | define((function()·{ | 1 | define(['./index28'],·(function(_tagTester)·{ |
2 | ····var·isError·=·_tagTester('Error'); | ||
2 | ····//·Is·a·given·value·a·DOM·element? | ||
3 | ····function·isElement(obj)·{ | ||
4 | ········return·!!(obj·&&·obj.nodeType·===·1); | ||
5 | ····} | ||
6 | ····return·isE | 3 | ····return·isError; |
7 | })); | 4 | })); |
Offset 1, 18 lines modified | Offset 1, 10 lines modified | ||
1 | define(['./index | 1 | define(['./index25',·'./index95'],·(function(_setup,·isSymbol)·{ |
2 | ····//·Is·a·given·object·a·finite·number? | ||
2 | ····//·Is·a·given·array,·string,·or·object·empty? | ||
3 | ····//·An·"empty"·object·has·no·enumerable·own-properties. | ||
4 | ····function·is | 3 | ····function·isFinite(obj)·{ |
4 | ········return·!isSymbol(obj)·&&·_setup._isFinite(obj)·&&·!isNaN(parseFloat(obj)); | ||
5 | ········if·(obj·==·null)·return·true; | ||
6 | ········//·Skip·the·more·expensive·`toString`-based·type·checks·if·`obj`·has·no | ||
7 | ········//·`.length`. | ||
8 | ········var·length·=·_getLength(obj); | ||
9 | ········if·(typeof·length·==·'number'·&&·( | ||
10 | ················isArray(obj)·||·isString(obj)·||·isArguments(obj) | ||
11 | ············))·return·length·===·0; | ||
12 | ········return·_getLength(keys(obj))·===·0; | ||
13 | ····} | 5 | ····} |
14 | ····return·is | 6 | ····return·isFinite; |
15 | })); | 7 | })); |
Offset 1, 135 lines modified | Offset 1, 18 lines modified | ||
1 | define(['./index | 1 | define(['./index28',·'./index25'],·(function(_tagTester,·_setup)·{ |
2 | ····var·isFunction·=·_tagTester('Function'); | ||
2 | ····//·We·use·this·string·twice,·so·give·it·a·name·for·minification. | ||
3 | ····var·tagDataView·=·'[object·DataView]'; | ||
3 | ····//·Optimize·`isFunction`·if·appropriate.·Work·around·some·`typeof`·bugs·in·old | ||
4 | ····//·v8,·IE·11·(#1621),·Safari·8·(#1929),·and·PhantomJS·(#2236). | ||
5 | ····var·nodelist·=·_setup.root.document·&&·_setup.root.document.childNodes; | ||
6 | ····if·(typeof·/./·!=·'function'·&&·typeof·Int8Array·!=·'object'·&&·typeof·nodelist·!=·'function')·{ | ||
7 | ········isFunction·=·function(obj)·{ | ||
8 | ············return·typeof·obj·==·'function'·||·false; | ||
9 | ········}; | ||
4 | ····//·Internal·recursive·comparison·function·for·`_.isEqual`. | ||
5 | ····function·eq(a,·b,·aStack,·bStack)·{ | ||
6 | ········//·Identical·objects·are·equal.·`0·===·-0`,·but·they·aren't·identical. | ||
7 | ········//·See·the·[Harmony·`egal`·proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal). | ||
8 | ········if·(a·===·b)·return·a·!==·0·||·1·/·a·===·1·/·b; | ||
9 | ········//·`null`·or·`undefined`·only·equal·to·itself·(strict·comparison). | ||
10 | ········if·(a·==·null·||·b·==·null)·return·false; | ||
11 | ········//·`NaN`s·are·equivalent,·but·non-reflexive. | ||
12 | ········if·(a·!==·a)·return·b·!==·b; | ||
13 | ········//·Exhaust·primitive·checks | ||
14 | ········var·type·=·typeof·a; | ||
15 | ········if·(type·!==·'function'·&&·type·!==·'object'·&&·typeof·b·!=·'object')·return·false; | ||
16 | ········return·deepEq(a,·b,·aStack,·bStack); | ||
17 | ····} | 10 | ····} |
11 | ····var·isFunction$1·=·isFunction; | ||
18 | ····//·Internal·recursive·comparison·function·for·`_.isEqual`. | ||
19 | ····function·deepEq(a,·b,·aStack,·bStack)·{ | ||
20 | ········//·Unwrap·any·wrapped·objects. | ||
21 | ········if·(a·instanceof·underscore)·a·=·a._wrapped; | ||
22 | ········if·(b·instanceof·underscore)·b·=·b._wrapped; | ||
23 | ········//·Compare·`[[Class]]`·names. | ||
24 | ········var·className·=·_setup.toString.call(a); | ||
25 | ········if·(className·!==·_setup.toString.call(b))·return·false; | ||
26 | ········//·Work·around·a·bug·in·IE·10·-·Edge·13. | ||
27 | ········if·(_stringTagBug.hasStringTagBug·&&·className·==·'[object·Object]'·&&·isDataView(a))·{ | ||
28 | ············if·(!isDataView(b))·return·false; | ||
29 | ············className·=·tagDataView; | ||
30 | ········} | ||
31 | ········switch·(className)·{ | ||
32 | ············//·These·types·are·compared·by·value. | ||
33 | ············case·'[object·RegExp]': | ||
34 | ················//·RegExps·are·coerced·to·strings·for·comparison·(Note:·''·+·/a/i·===·'/a/i') | ||
35 | ············case·'[object·String]': | ||
36 | ················//·Primitives·and·their·corresponding·object·wrappers·are·equivalent;·thus,·`"5"`·is | ||
37 | ················//·equivalent·to·`new·String("5")`. | ||
38 | ················return·''·+·a·===·''·+·b; | ||
39 | ············case·'[object·Number]': | ||
40 | ················//·`NaN`s·are·equivalent,·but·non-reflexive. | ||
41 | ················//·Object(NaN)·is·equivalent·to·NaN. | ||
42 | ················if·(+a·!==·+a)·return·+b·!==·+b; | ||
43 | ················//·An·`egal`·comparison·is·performed·for·other·numeric·values. | ||
44 | ················return·+a·===·0·?·1·/·+a·===·1·/·b·:·+a·===·+b; | ||
45 | ············case·'[object·Date]': | ||
46 | ············case·'[object·Boolean]': | ||
47 | ················//·Coerce·dates·and·booleans·to·numeric·primitive·values.·Dates·are·compared·by·their | ||
48 | ················//·millisecond·representations.·Note·that·invalid·dates·with·millisecond·representations | ||
49 | ················//·of·`NaN`·are·not·equivalent. | ||
50 | ················return·+a·===·+b; | ||
51 | ············case·'[object·Symbol]': | ||
52 | ················return·_setup.SymbolProto.valueOf.call(a)·===·_setup.SymbolProto.valueOf.call(b); | ||
53 | ············case·'[object·ArrayBuffer]': | ||
54 | ············case·tagDataView: | ||
55 | ················//·Coerce·to·typed·array·so·we·can·fall·through. | ||
56 | ················return·deepEq(_toBufferView(a),·_toBufferView(b),·aStack,·bStack); | ||
57 | ········} | ||
12 | ····return·isFunction$1; | ||
58 | ········var·areArrays·=·className·===·'[object·Array]'; | ||
59 | ········if·(!areArrays·&&·isTypedArray(a))·{ | ||
60 | ············var·byteLength·=·_getByteLength(a); | ||
61 | ············if·(byteLength·!==·_getByteLength(b))·return·false; | ||
62 | ············if·(a.buffer·===·b.buffer·&&·a.byteOffset·===·b.byteOffset)·return·true; | ||
63 | ············areArrays·=·true; | ||
64 | ········} | ||
65 | ········if·(!areArrays)·{ | ||
66 | ············if·(typeof·a·!=·'object'·||·typeof·b·!=·'object')·return·false; | ||
67 | ············//·Objects·with·different·constructors·are·not·equivalent,·but·`Object`s·or·`Array`s | ||
68 | ············//·from·different·frames·are. | ||
69 | ············var·aCtor·=·a.constructor, | ||
70 | ················bCtor·=·b.constructor; | ||
71 | ············if·(aCtor·!==·bCtor·&&·!(isFunction(aCtor)·&&·aCtor·instanceof·aCtor·&& | ||
72 | ····················isFunction(bCtor)·&&·bCtor·instanceof·bCtor)·&& | ||
73 | ················('constructor'·in·a·&&·'constructor'·in·b))·{ | ||
74 | ················return·false; | ||
75 | ············} | ||
76 | ········} | ||
77 | ········//·Assume·equality·for·cyclic·structures.·The·algorithm·for·detecting·cyclic | ||
78 | ········//·structures·is·adapted·from·ES·5.1·section·15.12.3,·abstract·operation·`JO`. | ||
79 | ········//·Initializing·stack·of·traversed·objects. | ||
80 | ········//·It's·done·here·since·we·only·need·them·for·objects·and·arrays·comparison. | ||
81 | ········aStack·=·aStack·||·[]; | ||
82 | ········bStack·=·bStack·||·[]; | ||
83 | ········var·length·=·aStack.length; | ||
84 | ········while·(length--)·{ | ||
85 | ············//·Linear·search.·Performance·is·inversely·proportional·to·the·number·of | ||
86 | ············//·unique·nested·structures. | ||
87 | ············if·(aStack[length]·===·a)·return·bStack[length]·===·b; | ||
88 | ········} | ||
89 | ········//·Add·the·first·object·to·the·stack·of·traversed·objects. | ||
90 | ········aStack.push(a); | ||
91 | ········bStack.push(b); | ||
92 | ········//·Recursively·compare·objects·and·arrays. | ||
93 | ········if·(areArrays)·{ | ||
94 | ············//·Compare·array·lengths·to·determine·if·a·deep·comparison·is·necessary. | ||
95 | ············length·=·a.length; | ||
96 | ············if·(length·!==·b.length)·return·false; | ||
97 | ············//·Deep·compare·the·contents,·ignoring·non-numeric·properties. | ||
98 | ············while·(length--)·{ | ||
99 | ················if·(!eq(a[length],·b[length],·aStack,·bStack))·return·false; | ||
100 | ············} | ||
101 | ········}·else·{ | ||
102 | ············//·Deep·compare·objects. | ||
103 | ············var·_keys·=·keys(a), | ||
104 | ················key; | ||
105 | ············length·=·_keys.length; | ||
106 | ············//·Ensure·that·both·objects·contain·the·same·number·of·properties·before·comparing·deep·equality. | ||
107 | ············if·(keys(b).length·!==·length)·return·false; | ||
108 | ············while·(length--)·{ | ||
109 | ················//·Deep·compare·each·member | ||
Max diff block lines reached; 6/7015 bytes (0.09%) of diff not shown. |
Offset 1, 7 lines modified | Offset 1, 7 lines modified | ||
1 | define(['./index2 | 1 | define(['./index28',·'./index27',·'./index23'],·(function(_tagTester,·_stringTagBug,·_methodFingerprint)·{ |
2 | ····var·isError· | 2 | ····var·isMap·=·_stringTagBug.isIE11·?·_methodFingerprint.ie11fingerprint(_methodFingerprint.mapMethods)·:·_tagTester('Map'); |
3 | ····return·is | 3 | ····return·isMap; |
4 | })); | 4 | })); |
Offset 1, 10 lines modified | Offset 1, 18 lines modified | ||
1 | define(['./index | 1 | define(['./index101'],·(function(keys)·{ |
2 | ····//·Is·a·given·object·a·finite·number? | ||
3 | ····function·isFinite(obj)·{ | ||
4 | ···· | 2 | ····//·Returns·whether·an·object·has·a·given·set·of·`key:value`·pairs. |
3 | ····function·isMatch(object,·attrs)·{ | ||
4 | ········var·_keys·=·keys(attrs), | ||
5 | ············length·=·_keys.length; | ||
6 | ········if·(object·==·null)·return·!length; | ||
7 | ········var·obj·=·Object(object); | ||
8 | ········for·(var·i·=·0;·i·<·length;·i++)·{ | ||
9 | ············var·key·=·_keys[i]; | ||
10 | ············if·(attrs[key]·!==·obj[key]·||·!(key·in·obj))·return·false; | ||
11 | ········} | ||
12 | ········return·true; | ||
5 | ····} | 13 | ····} |
6 | ····return·is | 14 | ····return·isMatch; |
7 | })); | 15 | })); |
Offset 1, 18 lines modified | Offset 1, 10 lines modified | ||
1 | define(['./index2 | 1 | define(['./index25',·'./index90'],·(function(_setup,·isNumber)·{ |
2 | ····//·Is·the·given·value·`NaN`? | ||
3 | ····function·isNaN(obj)·{ | ||
4 | ········return·isNumber(obj)·&&·_setup._isNaN(obj); | ||
2 | ····var·isFunction·=·_tagTester('Function'); | ||
3 | ····//·Optimize·`isFunction`·if·appropriate.·Work·around·some·`typeof`·bugs·in·old | ||
4 | ····//·v8,·IE·11·(#1621),·Safari·8·(#1929),·and·PhantomJS·(#2236). | ||
5 | ····var·nodelist·=·_setup.root.document·&&·_setup.root.document.childNodes; | ||
6 | ····if·(typeof·/./·!=·'function'·&&·typeof·Int8Array·!=·'object'·&&·typeof·nodelist·!=·'function')·{ | ||
7 | ········isFunction·=·function(obj)·{ | ||
8 | ············return·typeof·obj·==·'function'·||·false; | ||
9 | ········}; | ||
10 | ····} | 5 | ····} |
6 | ····return·isNaN; | ||
11 | ····var·isFunction$1·=·isFunction; | ||
12 | ····return·isFunction$1; | ||
13 | })); | 7 | })); |
Offset 1, 7 lines modified | Offset 1, 10 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ···· | 2 | ····//·Is·a·given·value·equal·to·null? |
3 | ····function·isNull(obj)·{ | ||
4 | ········return·obj·===·null; | ||
5 | ····} | ||
3 | ····return·is | 6 | ····return·isNull; |
4 | })); | 7 | })); |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | define(['./index | 1 | define(['./index2',·'./index16'],·(function(_cb,·_getLength)·{ |
2 | ····//·Internal·function·to·generate·`_.findIndex`·and·`_.findLastIndex`. | 2 | ····//·Internal·function·to·generate·`_.findIndex`·and·`_.findLastIndex`. |
3 | ····function·createPredicateIndexFinder(dir)·{ | 3 | ····function·createPredicateIndexFinder(dir)·{ |
4 | ········return·function(array,·predicate,·context)·{ | 4 | ········return·function(array,·predicate,·context)·{ |
5 | ············predicate·=·_cb(predicate,·context); | 5 | ············predicate·=·_cb(predicate,·context); |
6 | ············var·length·=·_getLength(array); | 6 | ············var·length·=·_getLength(array); |
7 | ············var·index·=·dir·>·0·?·0·:·length·-·1; | 7 | ············var·index·=·dir·>·0·?·0·:·length·-·1; |
Offset 1, 18 lines modified | Offset 1, 7 lines modified | ||
1 | define(['./index | 1 | define(['./index28'],·(function(_tagTester)·{ |
2 | ····var·isNumber·=·_tagTester('Number'); | ||
2 | ····//·Returns·whether·an·object·has·a·given·set·of·`key:value`·pairs. | ||
3 | ····function·isMatch(object,·attrs)·{ | ||
4 | ········var·_keys·=·keys(attrs), | ||
5 | ············length·=·_keys.length; | ||
6 | ········if·(object·==·null)·return·!length; | ||
7 | ········var·obj·=·Object(object); | ||
8 | ········for·(var·i·=·0;·i·<·length;·i++)·{ | ||
9 | ············var·key·=·_keys[i]; | ||
10 | ············if·(attrs[key]·!==·obj[key]·||·!(key·in·obj))·return·false; | ||
11 | ········} | ||
12 | ········return·true; | ||
13 | ····} | ||
14 | ····return·is | 3 | ····return·isNumber; |
15 | })); | 4 | })); |
Offset 1, 10 lines modified | Offset 1, 11 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ····//·Is· | 2 | ····//·Is·a·given·variable·an·object? |
3 | ····function·is | 3 | ····function·isObject(obj)·{ |
4 | ········ | 4 | ········var·type·=·typeof·obj; |
5 | ········return·type·===·'function'·||·(type·===·'object'·&&·!!obj); | ||
5 | ····} | 6 | ····} |
6 | ····return·is | 7 | ····return·isObject; |
7 | })); | 8 | })); |
Offset 1, 10 lines modified | Offset 1, 7 lines modified | ||
1 | define((function()·{ | 1 | define(['./index28'],·(function(_tagTester)·{ |
2 | ····var·isRegExp·=·_tagTester('RegExp'); | ||
2 | ····//·Is·a·given·value·equal·to·null? | ||
3 | ····function·isNull(obj)·{ | ||
4 | ········return·obj·===·null; | ||
5 | ····} | ||
6 | ····return·is | 3 | ····return·isRegExp; |
7 | })); | 4 | })); |
Offset 1, 7 lines modified | Offset 1, 7 lines modified | ||
1 | define(['./index2 | 1 | define(['./index28',·'./index27',·'./index23'],·(function(_tagTester,·_stringTagBug,·_methodFingerprint)·{ |
2 | ····var·is | 2 | ····var·isSet·=·_stringTagBug.isIE11·?·_methodFingerprint.ie11fingerprint(_methodFingerprint.setMethods)·:·_tagTester('Set'); |
3 | ····return·is | 3 | ····return·isSet; |
4 | })); | 4 | })); |
Offset 1, 11 lines modified | Offset 1, 7 lines modified | ||
1 | define((function()·{ | 1 | define(['./index28'],·(function(_tagTester)·{ |
2 | ····var·isString·=·_tagTester('String'); | ||
2 | ····//·Is·a·given·variable·an·object? | ||
3 | ····function·isObject(obj)·{ | ||
4 | ········var·type·=·typeof·obj; | ||
5 | ········return·type·===·'function'·||·(type·===·'object'·&&·!!obj); | ||
6 | ····} | ||
7 | ····return·is | 3 | ····return·isString; |
8 | })); | 4 | })); |
Offset 1, 7 lines modified | Offset 1, 7 lines modified | ||
1 | define(['./index2 | 1 | define(['./index28'],·(function(_tagTester)·{ |
2 | ····var·is | 2 | ····var·isSymbol·=·_tagTester('Symbol'); |
3 | ····return·is | 3 | ····return·isSymbol; |
4 | })); | 4 | })); |
Offset 1, 7 lines modified | Offset 1, 14 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ···· | 2 | ····//·Returns·a·function·that·will·only·be·executed·on·and·after·the·Nth·call. |
3 | ····function·after(times,·func)·{ | ||
4 | ········return·function()·{ | ||
5 | ············if·(--times·<·1)·{ | ||
6 | ················return·func.apply(this,·arguments); | ||
7 | ············} | ||
8 | ········}; | ||
9 | ····} | ||
3 | ····return· | 10 | ····return·after; |
4 | })); | 11 | })); |
Offset 1, 7 lines modified | Offset 1, 10 lines modified | ||
1 | define( | 1 | define((function()·{ |
2 | ···· | 2 | ····//·Is·a·given·variable·undefined? |
3 | ····function·isUndefined(obj)·{ | ||
4 | ········return·obj·===·void·0; | ||
5 | ····} | ||
3 | ····return·is | 6 | ····return·isUndefined; |
4 | })); | 7 | })); |
Offset 1, 7 lines modified | Offset 1, 7 lines modified | ||
1 | define(['./index2 | 1 | define(['./index28',·'./index27',·'./index23'],·(function(_tagTester,·_stringTagBug,·_methodFingerprint)·{ |
2 | ····var·is | 2 | ····var·isWeakMap·=·_stringTagBug.isIE11·?·_methodFingerprint.ie11fingerprint(_methodFingerprint.weakMapMethods)·:·_tagTester('WeakMap'); |
3 | ····return·is | 3 | ····return·isWeakMap; |
4 | })); | 4 | })); |
Offset 1, 10 lines modified | Offset 1, 7 lines modified | ||
1 | define((function()·{ | 1 | define(['./index28'],·(function(_tagTester)·{ |
2 | ····var·isWeakSet·=·_tagTester('WeakSet'); | ||
2 | ····//·Is·a·given·variable·undefined? | ||
3 | ····function·isUndefined(obj)·{ | ||
4 | ········return·obj·===·void·0; | ||
5 | ····} | ||
6 | ····return·is | 3 | ····return·isWeakSet; |
7 | })); | 4 | })); |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | var·isObject·=·require('./index9 | 1 | var·isObject·=·require('./index91.js'); |
2 | var·_setup·=·require('./index25.js'); | 2 | var·_setup·=·require('./index25.js'); |
3 | //·Create·a·naked·function·reference·for·surrogate-prototype-swapping. | 3 | //·Create·a·naked·function·reference·for·surrogate-prototype-swapping. |
4 | function·ctor()·{ | 4 | function·ctor()·{ |
5 | ····return·function()·{}; | 5 | ····return·function()·{}; |
6 | } | 6 | } |
Offset 1, 30 lines modified | Offset 1, 11 lines modified | ||
1 | var·_ | 1 | var·_setup·=·require('./index25.js'); |
2 | var·keys·=·require('./index103.js'); | ||
3 | var·_optimizeCb·=·require('./index24.js'); | ||
2 | //·Common·internal·logic·for·`isArrayLike`·and·`isBufferLike`. | ||
3 | function·createSizePropertyCheck(getSizeProperty)·{ | ||
4 | ····return·function(collection)·{ | ||
5 | ········var·sizeProperty·=·getSizeProperty(collection); | ||
6 | ········return·typeof·sizeProperty·==·'number'·&&·sizeProperty·>=·0·&&·sizeProperty·<=·_setup.MAX_ARRAY_INDEX; | ||
4 | //·Internal·helper·to·create·a·reducing·function,·iterating·left·or·right. | ||
5 | function·createReduce(dir)·{ | ||
6 | ····//·Wrap·code·that·reassigns·argument·variables·in·a·separate·function·than | ||
7 | ····//·the·one·that·accesses·`arguments.length`·to·avoid·a·perf·hit.·(#1991) | ||
8 | ····var·reducer·=·function(obj,·iteratee,·memo,·initial)·{ | ||
9 | ········var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
10 | ············length·=·(_keys·||·obj).length, | ||
11 | ············index·=·dir·>·0·?·0·:·length·-·1; | ||
12 | ········if·(!initial)·{ | ||
13 | ············memo·=·obj[_keys·?·_keys[index]·:·index]; | ||
14 | ············index·+=·dir; | ||
15 | ········} | ||
16 | ········for·(;·index·>=·0·&&·index·<·length;·index·+=·dir)·{ | ||
17 | ············var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
18 | ············memo·=·iteratee(memo,·obj[currentKey],·currentKey,·obj); | ||
19 | ········} | ||
20 | ········return·memo; | ||
21 | ····} | 7 | ····} |
22 | ····return·function(obj,·iteratee,·memo,·context)·{ | ||
23 | ········var·initial·=·arguments.length·>=·3; | ||
24 | ········return·reducer(obj,·_optimizeCb(iteratee,·context,·4),·memo,·initial); | ||
25 | ····}; | ||
26 | } | 8 | } |
27 | module.exports·=·create | 9 | module.exports·=·createSizePropertyCheck; |
Offset 1, 7 lines modified | Offset 1, 12 lines modified | ||
1 | var·underscore·=·require('./index147.js'); | ||
1 | var·_ | 2 | var·_baseIteratee·=·require('./index119.js'); |
2 | var·_stringTagBug·=·require('./index27.js'); | ||
3 | var·_methodFingerprint·=·require('./index23.js'); | ||
4 | 3 | //·External·wrapper·for·our·callback·generator.·Users·may·customize | |
4 | //·`_.iteratee`·if·they·want·additional·predicate/iteratee·shorthand·styles. | ||
5 | //·This·abstraction·hides·the·internal-only·`argCount`·argument. | ||
6 | function·iteratee(value,·context)·{ | ||
7 | ····return·_baseIteratee(value,·context,·Infinity); | ||
8 | } | ||
9 | underscore.iteratee·=·iteratee; | ||
5 | module.exports·=·i | 10 | module.exports·=·iteratee; |
Offset 1, 5 lines modified | Offset 1, 19 lines modified | ||
1 | var·isObject·=·require('./index91.js'); | ||
2 | var·_setup·=·require('./index25.js'); | ||
1 | var·_ | 3 | var·_has·=·require('./index18.js'); |
4 | var·_collectNonEnumProps·=·require('./index3.js'); | ||
2 | 5 | //·Retrieve·the·names·of·an·object's·own·properties. | |
6 | //·Delegates·to·**ECMAScript·5**'s·native·`Object.keys`. | ||
7 | function·keys(obj)·{ | ||
8 | ····if·(!isObject(obj))·return·[]; | ||
9 | ····if·(_setup.nativeKeys)·return·_setup.nativeKeys(obj); | ||
10 | ····var·keys·=·[]; | ||
11 | ····for·(var·key·in·obj) | ||
12 | ········if·(_has(obj,·key))·keys.push(key); | ||
13 | ····//·Ahem,·IE·<·9. | ||
14 | ····if·(_setup.hasEnumBug)·_collectNonEnumProps(obj,·keys); | ||
15 | ····return·keys; | ||
16 | } | ||
3 | module.exports·=· | 17 | module.exports·=·keys; |
Offset 1, 12 lines modified | Offset 1, 11 lines modified | ||
1 | var· | 1 | var·rest·=·require('./index160.js'); |
2 | var·_baseIteratee·=·require('./index2.js'); | ||
3 | //·External·wrapper·for·our·callback·generator.·Users·may·customize | ||
4 | //·`_.iteratee`·if·they·want·additional·predicate/iteratee·shorthand·styles. | ||
5 | //·This·abstraction·hides·the·internal-only·`argCount`·argument. | ||
6 | function·iteratee(value,·context)·{ | ||
7 | ···· | 2 | //·Get·the·last·element·of·an·array.·Passing·**n**·will·return·the·last·N |
3 | //·values·in·the·array. | ||
4 | function·last(array,·n,·guard)·{ | ||
5 | ····if·(array·==·null·||·array.length·<·1)·return·n·==·null·||·guard·?·void·0·:·[]; | ||
6 | ····if·(n·==·null·||·guard)·return·array[array.length·-·1]; | ||
7 | ····return·rest(array,·Math.max(0,·array.length·-·n)); | ||
8 | } | 8 | } |
9 | underscore.iteratee·=·iteratee; | ||
10 | module.exports·=· | 9 | module.exports·=·last; |
Offset 1, 19 lines modified | Offset 1, 8 lines modified | ||
1 | var·isObject·=·require('./index94.js'); | ||
2 | var·_setup·=·require('./index25.js'); | ||
3 | var· | 1 | var·findLastIndex·=·require('./index58.js'); |
4 | var·_c | 2 | var·_createIndexFinder·=·require('./index7.js'); |
3 | //·Return·the·position·of·the·last·occurrence·of·an·item·in·an·array, | ||
4 | //·or·-1·if·the·item·is·not·included·in·the·array. | ||
5 | var·lastIndexOf·=·_createIndexFinder(-1,·findLastIndex); | ||
5 | //·Retrieve·the·names·of·an·object's·own·properties. | ||
6 | //·Delegates·to·**ECMAScript·5**'s·native·`Object.keys`. | ||
7 | function·keys(obj)·{ | ||
8 | ····if·(!isObject(obj))·return·[]; | ||
9 | ····if·(_setup.nativeKeys)·return·_setup.nativeKeys(obj); | ||
10 | ····var·keys·=·[]; | ||
11 | ····for·(var·key·in·obj) | ||
12 | ········if·(_has(obj,·key))·keys.push(key); | ||
13 | ····//·Ahem,·IE·<·9. | ||
14 | ····if·(_setup.hasEnumBug)·_collectNonEnumProps(obj,·keys); | ||
15 | ····return·keys; | ||
16 | } | ||
17 | module.exports·=· | 6 | module.exports·=·lastIndexOf; |
Offset 1, 11 lines modified | Offset 1, 18 lines modified | ||
1 | var·_cb·=·require('./index2.js'); | ||
2 | var·_isArrayLike·=·require('./index20.js'); | ||
1 | var· | 3 | var·keys·=·require('./index101.js'); |
2 | //·Get·the·last·element·of·an·array.·Passing·**n**·will·return·the·last·N | ||
3 | //·values·in·the·array. | ||
4 | function·last(array,·n,·guard)·{ | ||
5 | ····if·(array·==·null·||·array.length·<·1)·return·n·==·null·||·guard·?·void·0·:·[]; | ||
6 | ····if·(n·==·null·||·guard)·return·array[array.length·-·1]; | ||
7 | 4 | //·Return·the·results·of·applying·the·iteratee·to·each·element. | |
5 | function·map(obj,·iteratee,·context)·{ | ||
6 | ····iteratee·=·_cb(iteratee,·context); | ||
7 | ····var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
8 | ········length·=·(_keys·||·obj).length, | ||
9 | ········results·=·Array(length); | ||
10 | ····for·(var·index·=·0;·index·<·length;·index++)·{ | ||
11 | ········var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
12 | ········results[index]·=·iteratee(obj[currentKey],·currentKey,·obj); | ||
13 | ····} | ||
14 | ····return·results; | ||
8 | } | 15 | } |
9 | module.exports·=· | 16 | module.exports·=·map; |
Offset 1, 8 lines modified | Offset 1, 18 lines modified | ||
1 | var·_cb·=·require('./index2.js'); | ||
1 | var· | 2 | var·keys·=·require('./index101.js'); |
2 | var·_createIndexFinder·=·require('./index8.js'); | ||
3 | //·Return·the·position·of·the·last·occurrence·of·an·item·in·an·array, | ||
4 | //·or·-1·if·the·item·is·not·included·in·the·array. | ||
5 | 3 | //·Returns·the·results·of·applying·the·`iteratee`·to·each·element·of·`obj`. | |
4 | //·In·contrast·to·`_.map`·it·returns·an·object. | ||
5 | function·mapObject(obj,·iteratee,·context)·{ | ||
6 | ····iteratee·=·_cb(iteratee,·context); | ||
7 | ····var·_keys·=·keys(obj), | ||
8 | ········length·=·_keys.length, | ||
9 | ········results·=·{}; | ||
10 | ····for·(var·index·=·0;·index·<·length;·index++)·{ | ||
11 | ········var·currentKey·=·_keys[index]; | ||
12 | ········results[currentKey]·=·iteratee(obj[currentKey],·currentKey,·obj); | ||
13 | ····} | ||
14 | ····return·results; | ||
15 | } | ||
6 | module.exports·=· | 16 | module.exports·=·mapObject; |
Offset 1, 18 lines modified | Offset 1, 13 lines modified | ||
1 | var·extendOwn·=·require('./index53.js'); | ||
1 | var· | 2 | var·isMatch·=·require('./index87.js'); |
2 | var·_isArrayLike·=·require('./index20.js'); | ||
3 | var·keys·=·require('./index103.js'); | ||
3 | //·Returns·a·predicate·for·checking·whether·an·object·has·a·given·set·of | ||
4 | //·`key:value`·pairs. | ||
5 | function·matcher(attrs)·{ | ||
6 | ····attrs·=·extendOwn({},·attrs); | ||
7 | ····return·function(obj)·{ | ||
8 | ········return·isMatch(obj,·attrs); | ||
4 | //·Return·the·results·of·applying·the·iteratee·to·each·element. | ||
5 | function·map(obj,·iteratee,·context)·{ | ||
6 | ····iteratee·=·_cb(iteratee,·context); | ||
7 | ····var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
8 | ········length·=·(_keys·||·obj).length, | ||
9 | ········results·=·Array(length); | ||
10 | ····for·(var·index·=·0;·index·<·length;·index++)·{ | ||
11 | ········var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
12 | ········results[index]·=·iteratee(obj[currentKey],·currentKey,·obj); | ||
13 | ····} | 9 | ····}; |
14 | ····return·results; | ||
15 | } | 10 | } |
16 | module.exports·=·ma | 11 | module.exports·=·matcher; |
Offset 1, 18 lines modified | Offset 1, 32 lines modified | ||
1 | var·_isArrayLike·=·require('./index20.js'); | ||
2 | var·values·=·require('./index153.js'); | ||
1 | var·_cb·=·require('./index | 3 | var·_cb·=·require('./index2.js'); |
2 | var· | 4 | var·each·=·require('./index48.js'); |
5 | //·Return·the·maximum·element·(or·element-based·computation). | ||
3 | //·Returns·the·results·of·applying·the·`iteratee`·to·each·element·of·`obj`. | ||
4 | //·In·contrast·to·`_.map`·it·returns·an·object. | ||
5 | function·ma | 6 | function·max(obj,·iteratee,·context)·{ |
7 | ····var·result·=·-Infinity, | ||
8 | ········lastComputed·=·-Infinity, | ||
9 | ········value,·computed; | ||
10 | ····if·(iteratee·==·null·||·(typeof·iteratee·==·'number'·&&·typeof·obj[0]·!=·'object'·&&·obj·!=·null))·{ | ||
11 | ········obj·=·_isArrayLike(obj)·?·obj·:·values(obj); | ||
12 | ········for·(var·i·=·0,·length·=·obj.length;·i·<·length;·i++)·{ | ||
13 | ············value·=·obj[i]; | ||
14 | ············if·(value·!=·null·&&·value·>·result)·{ | ||
15 | ················result·=·value; | ||
16 | ············} | ||
17 | ········} | ||
18 | ····}·else·{ | ||
6 | ····iteratee·=·_cb(iteratee,·context); | 19 | ········iteratee·=·_cb(iteratee,·context); |
7 | ····var·_keys·=·keys(obj), | ||
8 | ········ | 20 | ········each(obj,·function(v,·index,·list)·{ |
21 | ············computed·=·iteratee(v,·index,·list); | ||
22 | ············if·(computed·>·lastComputed·||·(computed·===·-Infinity·&&·result·===·-Infinity))·{ | ||
9 | ········result | 23 | ················result·=·v; |
10 | ····for·(var·index·=·0;·index·<·length;·index++)·{ | ||
11 | ········var·currentKey·=·_keys[index]; | ||
12 | ········ | 24 | ················lastComputed·=·computed; |
25 | ············} | ||
26 | ········}); | ||
13 | ····} | 27 | ····} |
14 | ····return·result | 28 | ····return·result; |
15 | } | 29 | } |
16 | module.exports·=·ma | 30 | module.exports·=·max; |
Offset 1, 13 lines modified | Offset 1, 15 lines modified | ||
1 | var·extendOwn·=·require('./index55.js'); | ||
2 | var· | 1 | var·_has·=·require('./index18.js'); |
3 | //·Returns·a·predicate·for·checking·whether·an·object·has·a·given·set·of | ||
4 | //·`key:value`·pairs. | ||
5 | function·matcher(attrs)·{ | ||
6 | ····attrs·=·extendOwn({},·attrs); | ||
7 | ····return·function(obj)·{ | ||
8 | · | 2 | //·Memoize·an·expensive·function·by·storing·its·results. |
3 | function·memoize(func,·hasher)·{ | ||
4 | ····var·memoize·=·function(key)·{ | ||
5 | ········var·cache·=·memoize.cache; | ||
6 | ········var·address·=·''·+·(hasher·?·hasher.apply(this,·arguments)·:·key); | ||
7 | ········if·(!_has(cache,·address))·cache[address]·=·func.apply(this,·arguments); | ||
8 | ········return·cache[address]; | ||
9 | ····}; | 9 | ····}; |
10 | ····memoize.cache·=·{}; | ||
11 | ····return·memoize; | ||
10 | } | 12 | } |
11 | module.exports·=·m | 13 | module.exports·=·memoize; |
Offset 1, 32 lines modified | Offset 1, 32 lines modified | ||
1 | var·_isArrayLike·=·require('./index20.js'); | 1 | var·_isArrayLike·=·require('./index20.js'); |
2 | var·values·=·require('./index15 | 2 | var·values·=·require('./index153.js'); |
3 | var·_cb·=·require('./index | 3 | var·_cb·=·require('./index2.js'); |
4 | var·each·=·require('./index | 4 | var·each·=·require('./index48.js'); |
5 | //·Return·the·m | 5 | //·Return·the·minimum·element·(or·element-based·computation). |
6 | function·m | 6 | function·min(obj,·iteratee,·context)·{ |
7 | ····var·result·=· | 7 | ····var·result·=·Infinity, |
8 | ········lastComputed·=· | 8 | ········lastComputed·=·Infinity, |
9 | ········value,·computed; | 9 | ········value,·computed; |
10 | ····if·(iteratee·==·null·||·(typeof·iteratee·==·'number'·&&·typeof·obj[0]·!=·'object'·&&·obj·!=·null))·{ | 10 | ····if·(iteratee·==·null·||·(typeof·iteratee·==·'number'·&&·typeof·obj[0]·!=·'object'·&&·obj·!=·null))·{ |
11 | ········obj·=·_isArrayLike(obj)·?·obj·:·values(obj); | 11 | ········obj·=·_isArrayLike(obj)·?·obj·:·values(obj); |
12 | ········for·(var·i·=·0,·length·=·obj.length;·i·<·length;·i++)·{ | 12 | ········for·(var·i·=·0,·length·=·obj.length;·i·<·length;·i++)·{ |
13 | ············value·=·obj[i]; | 13 | ············value·=·obj[i]; |
14 | ············if·(value·!=·null·&&·value· | 14 | ············if·(value·!=·null·&&·value·<·result)·{ |
15 | ················result·=·value; | 15 | ················result·=·value; |
16 | ············} | 16 | ············} |
17 | ········} | 17 | ········} |
18 | ····}·else·{ | 18 | ····}·else·{ |
19 | ········iteratee·=·_cb(iteratee,·context); | 19 | ········iteratee·=·_cb(iteratee,·context); |
20 | ········each(obj,·function(v,·index,·list)·{ | 20 | ········each(obj,·function(v,·index,·list)·{ |
21 | ············computed·=·iteratee(v,·index,·list); | 21 | ············computed·=·iteratee(v,·index,·list); |
22 | ············if·(computed· | 22 | ············if·(computed·<·lastComputed·||·(computed·===·Infinity·&&·result·===·Infinity))·{ |
23 | ················result·=·v; | 23 | ················result·=·v; |
24 | ················lastComputed·=·computed; | 24 | ················lastComputed·=·computed; |
25 | ············} | 25 | ············} |
26 | ········}); | 26 | ········}); |
27 | ····} | 27 | ····} |
28 | ····return·result; | 28 | ····return·result; |
29 | } | 29 | } |
30 | module.exports·=·m | 30 | module.exports·=·min; |
Offset 1, 15 lines modified | Offset 1, 20 lines modified | ||
1 | var·underscore·=·require('./index147.js'); | ||
1 | var· | 2 | var·each·=·require('./index48.js'); |
3 | var·functions·=·require('./index62.js'); | ||
4 | var·_setup·=·require('./index25.js'); | ||
5 | var·_chainResult·=·require('./index6.js'); | ||
2 | //·Memoize·an·expensive·function·by·storing·its·results. | ||
3 | function·memoize(func,·hasher)·{ | ||
4 | ····var·memoize·=·function(key)·{ | ||
5 | ········var·cache·=·memoize.cache; | ||
6 | ········var·address·=·''·+·(hasher·?·hasher.apply(this,·arguments)·:·key); | ||
7 | ········if·(!_has(cache,·address))·cache[address]·=·func.apply(this,·arguments); | ||
8 | ···· | 6 | //·Add·your·own·custom·functions·to·the·Underscore·object. |
7 | function·mixin(obj)·{ | ||
8 | ····each(functions(obj),·function(name)·{ | ||
9 | ········var·func·=·underscore[name]·=·obj[name]; | ||
10 | ········underscore.prototype[name]·=·function()·{ | ||
11 | ············var·args·=·[this._wrapped]; | ||
12 | ············_setup.push.apply(args,·arguments); | ||
13 | ············return·_chainResult(this,·func.apply(underscore,·args)); | ||
14 | ········}; | ||
9 | ····}; | 15 | ····}); |
16 | ····return·underscore; | ||
10 | ····memoize.cache·=·{}; | ||
11 | ····return·memoize; | ||
12 | } | 17 | } |
13 | module.exports·=·m | 18 | module.exports·=·mixin; |
Offset 1, 32 lines modified | Offset 1, 8 lines modified | ||
1 | //·Returns·a·negated·version·of·the·passed-in·predicate. | ||
2 | function·negate(predicate)·{ | ||
3 | ····return·function()·{ | ||
4 | ········return·!predicate.apply(this,·arguments); | ||
1 | var·_isArrayLike·=·require('./index20.js'); | ||
2 | var·values·=·require('./index155.js'); | ||
3 | var·_cb·=·require('./index3.js'); | ||
4 | var·each·=·require('./index51.js'); | ||
5 | //·Return·the·minimum·element·(or·element-based·computation). | ||
6 | function·min(obj,·iteratee,·context)·{ | ||
7 | ····var·result·=·Infinity, | ||
8 | ········lastComputed·=·Infinity, | ||
9 | ········value,·computed; | ||
10 | ····if·(iteratee·==·null·||·(typeof·iteratee·==·'number'·&&·typeof·obj[0]·!=·'object'·&&·obj·!=·null))·{ | ||
11 | ········obj·=·_isArrayLike(obj)·?·obj·:·values(obj); | ||
12 | ········for·(var·i·=·0,·length·=·obj.length;·i·<·length;·i++)·{ | ||
13 | ············value·=·obj[i]; | ||
14 | ············if·(value·!=·null·&&·value·<·result)·{ | ||
15 | ················result·=·value; | ||
16 | ············} | ||
17 | ········} | ||
18 | ····}·else·{ | ||
19 | ········iteratee·=·_cb(iteratee,·context); | ||
20 | ········each(obj,·function(v,·index,·list)·{ | ||
21 | ············computed·=·iteratee(v,·index,·list); | ||
22 | ············if·(computed·<·lastComputed·||·(computed·===·Infinity·&&·result·===·Infinity))·{ | ||
23 | ················result·=·v; | ||
24 | ················lastComputed·=·computed; | ||
25 | ············} | ||
26 | ········}); | ||
27 | ····} | 5 | ····}; |
28 | ····return·result; | ||
29 | } | 6 | } |
30 | module.exports·=· | 7 | module.exports·=·negate; |
Offset 1, 20 lines modified | Offset 1, 15 lines modified | ||
1 | var·restArguments·=·require('./index131.js'); | ||
1 | var· | 2 | var·_flatten·=·require('./index14.js'); |
2 | var· | 3 | var·filter·=·require('./index54.js'); |
3 | var· | 4 | var·contains·=·require('./index40.js'); |
4 | var·_setup·=·require('./index25.js'); | ||
5 | var·_chainResult·=·require('./index4.js'); | ||
5 | //·Take·the·difference·between·one·array·and·a·number·of·other·arrays. | ||
6 | //·Only·the·elements·present·in·just·the·first·array·will·remain. | ||
7 | var·difference·=·restArguments(function(array,·rest)·{ | ||
8 | ····rest·=·_flatten(rest,·true,·true); | ||
9 | ····return·filter(array,·function(value)·{ | ||
10 | ········return·!contains(rest,·value); | ||
6 | //·Add·your·own·custom·functions·to·the·Underscore·object. | ||
7 | function·mixin(obj)·{ | ||
8 | ····each(functions(obj),·function(name)·{ | ||
9 | ········var·func·=·underscore[name]·=·obj[name]; | ||
10 | ········underscore.prototype[name]·=·function()·{ | ||
11 | ············var·args·=·[this._wrapped]; | ||
12 | ············_setup.push.apply(args,·arguments); | ||
13 | ············return·_chainResult(this,·func.apply(underscore,·args)); | ||
14 | ········}; | ||
15 | ····}); | 11 | ····}); |
12 | }); | ||
16 | ····return·underscore; | ||
17 | } | ||
18 | module.exports·=· | 13 | module.exports·=·difference; |
Offset 1, 8 lines modified | Offset 1, 6 lines modified | ||
1 | //·A·(possibly·faster)·way·to·get·the·current·timestamp·as·an·integer. | ||
2 | var·now·=·Date.now·||·function()·{ | ||
3 | ····return·new·Date().getTime(); | ||
4 | }; | ||
1 | //·Returns·a·negated·version·of·the·passed-in·predicate. | ||
2 | function·negate(predicate)·{ | ||
3 | ····return·function()·{ | ||
4 | ········return·!predicate.apply(this,·arguments); | ||
5 | ····}; | ||
6 | } | ||
7 | module.exports·=·n | 5 | module.exports·=·now; |
Offset 1, 4 lines modified | Offset 1, 18 lines modified | ||
1 | var·_getLength·=·require('./index16.js'); | ||
1 | //·Predicate-generating·function.·Often·useful·outside·of·Underscore. | ||
2 | function·noop()·{} | ||
2 | //·Converts·lists·into·objects.·Pass·either·a·single·array·of·`[key,·value]` | ||
3 | //·pairs,·or·two·parallel·arrays·of·the·same·length·--·one·of·keys,·and·one·of | ||
4 | //·the·corresponding·values.·Passing·by·pairs·is·the·reverse·of·`_.pairs`. | ||
5 | function·object(list,·values)·{ | ||
6 | ····var·result·=·{}; | ||
7 | ····for·(var·i·=·0,·length·=·_getLength(list);·i·<·length;·i++)·{ | ||
8 | ········if·(values)·{ | ||
9 | ············result[list[i]]·=·values[i]; | ||
10 | ········}·else·{ | ||
11 | ············result[list[i][0]]·=·list[i][1]; | ||
12 | ········} | ||
13 | ····} | ||
14 | ····return·result; | ||
15 | } | ||
3 | module.exports·=· | 16 | module.exports·=·object; |
Offset 1, 18 lines modified | Offset 1, 25 lines modified | ||
1 | var·restArguments·=·require('./index131.js'); | ||
2 | var·isFunction·=·require('./index85.js'); | ||
3 | var·negate·=·require('./index111.js'); | ||
4 | var·map·=·require('./index104.js'); | ||
1 | var·_ | 5 | var·_flatten·=·require('./index14.js'); |
6 | var·contains·=·require('./index40.js'); | ||
7 | var·pick·=·require('./index123.js'); | ||
8 | //·Return·a·copy·of·the·object·without·the·disallowed·properties. | ||
9 | var·omit·=·restArguments(function(obj,·keys)·{ | ||
10 | ····var·iteratee·=·keys[0], | ||
11 | ········context; | ||
12 | ····if·(isFunction(iteratee))·{ | ||
13 | ········iteratee·=·negate(iteratee); | ||
14 | ········if·(keys.length·>·1)·context·=·keys[1]; | ||
2 | //·Converts·lists·into·objects.·Pass·either·a·single·array·of·`[key,·value]` | ||
3 | //·pairs,·or·two·parallel·arrays·of·the·same·length·--·one·of·keys,·and·one·of | ||
4 | //·the·corresponding·values.·Passing·by·pairs·is·the·reverse·of·`_.pairs`. | ||
5 | function·object(list,·values)·{ | ||
6 | ····var·result·=·{}; | ||
7 | ····for·(var·i·=·0,·length·=·_getLength(list);·i·<·length;·i++)·{ | ||
8 | ········if·(values)·{ | ||
9 | ············result[list[i]]·=·values[i]; | ||
10 | ···· | 15 | ····}·else·{ |
11 | ·········· | 16 | ········keys·=·map(_flatten(keys,·false,·false),·String); |
17 | ········iteratee·=·function(value,·key)·{ | ||
18 | ············return·!contains(keys,·key); | ||
12 | ········} | 19 | ········}; |
13 | ····} | 20 | ····} |
14 | ····return·result; | ||
15 | 21 | ····return·pick(obj,·iteratee,·context); | |
22 | }); | ||
16 | module.exports·=·o | 23 | module.exports·=·omit; |
Offset 1, 9 lines modified | Offset 1, 8 lines modified | ||
1 | var·partial·=·require('./index1 | 1 | var·partial·=·require('./index118.js'); |
2 | var·delay·=·require('./index49.js'); | ||
3 | var· | 2 | var·before·=·require('./index31.js'); |
4 | //·Defers·a·function,·scheduling·it·to·run·after·the·current·call·stack·has | ||
5 | //·cleared. | ||
6 | 3 | //·Returns·a·function·that·will·be·executed·at·most·one·time,·no·matter·how | |
4 | //·often·you·call·it.·Useful·for·lazy·initialization. | ||
5 | var·once·=·partial(before,·2); | ||
7 | module.exports·=· | 6 | module.exports·=·once; |
Offset 1, 25 lines modified | Offset 1, 15 lines modified | ||
1 | var·restArguments·=·require('./index132.js'); | ||
2 | var·isFunction·=·require('./index88.js'); | ||
3 | var·negate·=·require('./index113.js'); | ||
4 | var· | 1 | var·keys·=·require('./index101.js'); |
5 | var·_flatten·=·require('./index14.js'); | ||
6 | var·contains·=·require('./index43.js'); | ||
7 | var·pick·=·require('./index122.js'); | ||
2 | //·Convert·an·object·into·a·list·of·`[key,·value]`·pairs. | ||
3 | //·The·opposite·of·`_.object`·with·one·argument. | ||
4 | function·pairs(obj)·{ | ||
5 | ····var·_keys·=·keys(obj); | ||
6 | ····var·length·=·_keys.length; | ||
7 | ····var·pairs·=·Array(length); | ||
8 | ····for·(var·i·=·0;·i·<·length;·i++)·{ | ||
9 | ········pairs[i]·=·[_keys[i],·obj[_keys[i]]]; | ||
8 | //·Return·a·copy·of·the·object·without·the·disallowed·properties. | ||
9 | var·omit·=·restArguments(function(obj,·keys)·{ | ||
10 | ····var·iteratee·=·keys[0], | ||
11 | ········context; | ||
12 | ····if·(isFunction(iteratee))·{ | ||
13 | ········iteratee·=·negate(iteratee); | ||
14 | ········if·(keys.length·>·1)·context·=·keys[1]; | ||
15 | ····}·else·{ | ||
16 | ········keys·=·map(_flatten(keys,·false,·false),·String); | ||
17 | ········iteratee·=·function(value,·key)·{ | ||
18 | ············return·!contains(keys,·key); | ||
19 | ········}; | ||
20 | ····} | 10 | ····} |
21 | ····return·pick(obj,·iteratee,·context); | ||
22 | 11 | ····return·pairs; | |
12 | } | ||
23 | module.exports·=· | 13 | module.exports·=·pairs; |
Offset 1, 8 lines modified | Offset 1, 26 lines modified | ||
1 | var· | 1 | var·restArguments·=·require('./index131.js'); |
2 | var·_executeBound·=·require('./index13.js'); | ||
2 | var· | 3 | var·underscore·=·require('./index147.js'); |
3 | //·Returns·a·function·that·will·be·executed·at·most·one·time,·no·matter·how | ||
4 | //·often·you·call·it.·Useful·for·lazy·initialization. | ||
5 | 4 | //·Partially·apply·a·function·by·creating·a·version·that·has·had·some·of·its | |
5 | //·arguments·pre-filled,·without·changing·its·dynamic·`this`·context.·`_`·acts | ||
6 | //·as·a·placeholder·by·default,·allowing·any·combination·of·arguments·to·be | ||
7 | //·pre-filled.·Set·`_.partial.placeholder`·for·a·custom·placeholder·argument. | ||
8 | var·partial·=·restArguments(function(func,·boundArgs)·{ | ||
9 | ····var·placeholder·=·partial.placeholder; | ||
10 | ····var·bound·=·function()·{ | ||
11 | ········var·position·=·0, | ||
12 | ············length·=·boundArgs.length; | ||
13 | ········var·args·=·Array(length); | ||
14 | ········for·(var·i·=·0;·i·<·length;·i++)·{ | ||
15 | ············args[i]·=·boundArgs[i]·===·placeholder·?·arguments[position++]·:·boundArgs[i]; | ||
16 | ········} | ||
17 | ········while·(position·<·arguments.length)·args.push(arguments[position++]); | ||
18 | ········return·_executeBound(func,·bound,·this,·this,·args); | ||
19 | ····}; | ||
20 | ····return·bound; | ||
21 | }); | ||
22 | partial.placeholder·=·underscore; | ||
6 | module.exports·=· | 23 | module.exports·=·partial; |
Offset 1, 15 lines modified | Offset 1, 19 lines modified | ||
1 | var·identity·=·require('./index65.js'); | ||
2 | var·isFunction·=·require('./index85.js'); | ||
3 | var·isObject·=·require('./index91.js'); | ||
4 | var·isArray·=·require('./index75.js'); | ||
1 | var· | 5 | var·matcher·=·require('./index106.js'); |
6 | var·property·=·require('./index122.js'); | ||
7 | var·_optimizeCb·=·require('./index24.js'); | ||
8 | //·An·internal·function·to·generate·callbacks·that·can·be·applied·to·each | ||
9 | //·element·in·a·collection,·returning·the·desired·result·—·either·`_.identity`, | ||
10 | //·an·arbitrary·callback,·a·property·matcher,·or·a·property·accessor. | ||
11 | function·baseIteratee(value,·context,·argCount)·{ | ||
12 | ····if·(value·==·null)·return·identity; | ||
13 | ····if·(isFunction(value))·return·_optimizeCb(value,·context,·argCount); | ||
14 | ····if·(isObject(value)·&&·!isArray(value))·return·matcher(value); | ||
15 | ····return·property(value); | ||
2 | //·Convert·an·object·into·a·list·of·`[key,·value]`·pairs. | ||
3 | //·The·opposite·of·`_.object`·with·one·argument. | ||
4 | function·pairs(obj)·{ | ||
5 | ····var·_keys·=·keys(obj); | ||
6 | ····var·length·=·_keys.length; | ||
7 | ····var·pairs·=·Array(length); | ||
8 | ····for·(var·i·=·0;·i·<·length;·i++)·{ | ||
9 | ········pairs[i]·=·[_keys[i],·obj[_keys[i]]]; | ||
10 | ····} | ||
11 | ····return·pairs; | ||
12 | } | 16 | } |
13 | module.exports·=· | 17 | module.exports·=·baseIteratee; |
Offset 1, 15 lines modified | Offset 1, 11 lines modified | ||
1 | var·_baseCreate·=·require('./index.js'); | ||
2 | 1 | //·Internal·list·of·HTML·entities·for·escaping. | |
2 | var·escapeMap·=·{ | ||
3 | ····'&':·'&', | ||
4 | ····'<':·'<', | ||
5 | ····'>':·'>', | ||
6 | ····'"':·'"', | ||
7 | ····"'":·''', | ||
8 | ····'`':·'`' | ||
9 | }; | ||
10 | module.exports·=·escapeMap; | ||
3 | //·Internal·function·to·execute·`sourceFunc`·bound·to·`context`·with·optional | ||
4 | //·`args`.·Determines·whether·to·execute·a·function·as·a·constructor·or·as·a | ||
5 | //·normal·function. | ||
6 | function·executeBound(sourceFunc,·boundFunc,·context,·callingContext,·args)·{ | ||
7 | ····if·(!(callingContext·instanceof·boundFunc))·return·sourceFunc.apply(context,·args); | ||
8 | ····var·self·=·_baseCreate(sourceFunc.prototype); | ||
9 | ····var·result·=·sourceFunc.apply(self,·args); | ||
10 | ····if·(isObject(result))·return·result; | ||
11 | ····return·self; | ||
12 | } | ||
13 | module.exports·=·executeBound; |
Offset 1, 26 lines modified | Offset 1, 9 lines modified | ||
1 | var·restArguments·=·require('./index132.js'); | ||
2 | var·_ | 1 | var·_group·=·require('./index17.js'); |
3 | var·underscore·=·require('./index150.js'); | ||
2 | //·Split·a·collection·into·two·arrays:·one·whose·elements·all·pass·the·given | ||
3 | //·truth·test,·and·one·whose·elements·all·do·not·pass·the·truth·test. | ||
4 | var·partition·=·_group(function(result,·value,·pass)·{ | ||
5 | ····result[pass·?·0·:·1].push(value); | ||
6 | },·true); | ||
4 | //·Partially·apply·a·function·by·creating·a·version·that·has·had·some·of·its | ||
5 | //·arguments·pre-filled,·without·changing·its·dynamic·`this`·context.·`_`·acts | ||
6 | //·as·a·placeholder·by·default,·allowing·any·combination·of·arguments·to·be | ||
7 | //·pre-filled.·Set·`_.partial.placeholder`·for·a·custom·placeholder·argument. | ||
8 | var·partial·=·restArguments(function(func,·boundArgs)·{ | ||
9 | ····var·placeholder·=·partial.placeholder; | ||
10 | ····var·bound·=·function()·{ | ||
11 | ········var·position·=·0, | ||
12 | ············length·=·boundArgs.length; | ||
13 | ········var·args·=·Array(length); | ||
14 | ········for·(var·i·=·0;·i·<·length;·i++)·{ | ||
15 | ············args[i]·=·boundArgs[i]·===·placeholder·?·arguments[position++]·:·boundArgs[i]; | ||
16 | ········} | ||
17 | ········while·(position·<·arguments.length)·args.push(arguments[position++]); | ||
18 | ········return·_executeBound(func,·bound,·this,·this,·args); | ||
19 | ····}; | ||
20 | ····return·bound; | ||
21 | }); | ||
22 | partial.placeholder·=·underscore; | ||
23 | module.exports·=·parti | 7 | module.exports·=·partition; |
Offset 1, 9 lines modified | Offset 1, 9 lines modified | ||
1 | var· | 1 | var·map·=·require('./index104.js'); |
2 | var·property·=·require('./index122.js'); | ||
3 | //·Convenience·version·of·a·common·use·case·of·`_.map`:·fetching·a·property. | ||
4 | function·pluck(obj,·key)·{ | ||
5 | ····return·map(obj,·property(key)); | ||
6 | } | ||
2 | //·Split·a·collection·into·two·arrays:·one·whose·elements·all·pass·the·given | ||
3 | //·truth·test,·and·one·whose·elements·all·do·not·pass·the·truth·test. | ||
4 | var·partition·=·_group(function(result,·value,·pass)·{ | ||
5 | ····result[pass·?·0·:·1].push(value); | ||
6 | },·true); | ||
7 | module.exports·=·p | 7 | module.exports·=·pluck; |
Offset 1, 29 lines modified | Offset 1, 13 lines modified | ||
1 | var·restArguments·=·require('./index132.js'); | ||
2 | var·isFunction·=·require('./index88.js'); | ||
3 | var·_ | 1 | var·_deepGet·=·require('./index11.js'); |
4 | var·allKeys·=·require('./index33.js'); | ||
5 | var·_keyInObj·=·require('./index22.js'); | ||
6 | var·_ | 2 | var·_toPath·=·require('./index30.js'); |
3 | //·Creates·a·function·that,·when·passed·an·object,·will·traverse·that·object’s | ||
4 | //·properties·down·the·given·`path`,·specified·as·an·array·of·keys·or·indices. | ||
5 | function·property(path)·{ | ||
6 | ····path·=·_toPath(path); | ||
7 | ····return·function(obj)·{ | ||
8 | ········return·_deepGet(obj,·path); | ||
7 | //·Return·a·copy·of·the·object·only·containing·the·allowed·properties. | ||
8 | var·pick·=·restArguments(function(obj,·keys)·{ | ||
9 | ····var·result·=·{}, | ||
10 | ········iteratee·=·keys[0]; | ||
11 | ····if·(obj·==·null)·return·result; | ||
12 | ····if·(isFunction(iteratee))·{ | ||
13 | ········if·(keys.length·>·1)·iteratee·=·_optimizeCb(iteratee,·keys[1]); | ||
14 | ········keys·=·allKeys(obj); | ||
15 | ····}·else·{ | ||
16 | ········iteratee·=·_keyInObj; | ||
17 | ········keys·=·_flatten(keys,·false,·false); | ||
18 | ········obj·=·Object(obj); | ||
19 | ····} | 9 | ····}; |
10 | } | ||
20 | ····for·(var·i·=·0,·length·=·keys.length;·i·<·length;·i++)·{ | ||
21 | ········var·key·=·keys[i]; | ||
22 | ········var·value·=·obj[key]; | ||
23 | ········if·(iteratee(value,·key,·obj))·result[key]·=·value; | ||
24 | ····} | ||
25 | ····return·result; | ||
26 | }); | ||
27 | module.exports·=·p | 11 | module.exports·=·property; |
Offset 1, 9 lines modified | Offset 1, 29 lines modified | ||
1 | var·restArguments·=·require('./index131.js'); | ||
2 | var·isFunction·=·require('./index85.js'); | ||
3 | var·_optimizeCb·=·require('./index24.js'); | ||
4 | var·allKeys·=·require('./index49.js'); | ||
5 | var·_keyInObj·=·require('./index22.js'); | ||
1 | var· | 6 | var·_flatten·=·require('./index14.js'); |
2 | var·property·=·require('./index124.js'); | ||
3 | //·Convenience·version·of·a·common·use·case·of·`_.map`:·fetching·a·property. | ||
4 | function·pluck(obj,·key)·{ | ||
5 | ····return·map(obj,·property(key)); | ||
6 | 7 | //·Return·a·copy·of·the·object·only·containing·the·allowed·properties. | |
8 | var·pick·=·restArguments(function(obj,·keys)·{ | ||
9 | ····var·result·=·{}, | ||
10 | ········iteratee·=·keys[0]; | ||
11 | ····if·(obj·==·null)·return·result; | ||
12 | ····if·(isFunction(iteratee))·{ | ||
13 | ········if·(keys.length·>·1)·iteratee·=·_optimizeCb(iteratee,·keys[1]); | ||
14 | ········keys·=·allKeys(obj); | ||
15 | ····}·else·{ | ||
16 | ········iteratee·=·_keyInObj; | ||
17 | ········keys·=·_flatten(keys,·false,·false); | ||
18 | ········obj·=·Object(obj); | ||
19 | ····} | ||
20 | ····for·(var·i·=·0,·length·=·keys.length;·i·<·length;·i++)·{ | ||
21 | ········var·key·=·keys[i]; | ||
22 | ········var·value·=·obj[key]; | ||
23 | ········if·(iteratee(value,·key,·obj))·result[key]·=·value; | ||
24 | ····} | ||
25 | ····return·result; | ||
26 | }); | ||
7 | module.exports·=·p | 27 | module.exports·=·pick; |
Offset 1, 13 lines modified | Offset 1, 12 lines modified | ||
1 | var· | 1 | var·noop·=·require('./index158.js'); |
2 | var· | 2 | var·get·=·require('./index63.js'); |
3 | //·Generates·a·function·for·a·given·object·that·returns·a·given·property. | ||
3 | //·Creates·a·function·that,·when·passed·an·object,·will·traverse·that·object’s | ||
4 | //·properties·down·the·given·`path`,·specified·as·an·array·of·keys·or·indices. | ||
5 | function·property | 4 | function·propertyOf(obj)·{ |
6 | ···· | 5 | ····if·(obj·==·null)·return·noop; |
7 | ····return·function( | 6 | ····return·function(path)·{ |
8 | ········return· | 7 | ········return·get(obj,·path); |
9 | ····}; | 8 | ····}; |
10 | } | 9 | } |
11 | module.exports·=·property; | 10 | module.exports·=·propertyOf; |
Offset 1, 12 lines modified | Offset 1, 10 lines modified | ||
1 | //·Return·a·random·integer·between·`min`·and·`max`·(inclusive). | ||
2 | function·random(min,·max)·{ | ||
3 | ····if·(max·==·null)·{ | ||
4 | ········max·=·min; | ||
5 | ········min·=·0; | ||
1 | var·noop·=·require('./index114.js'); | ||
2 | var·get·=·require('./index65.js'); | ||
3 | //·Generates·a·function·for·a·given·object·that·returns·a·given·property. | ||
4 | function·propertyOf(obj)·{ | ||
5 | ····if·(obj·==·null)·return·noop; | ||
6 | ····return·function(path)·{ | ||
7 | ········return·get(obj,·path); | ||
8 | ····} | 6 | ····} |
7 | ····return·min·+·Math.floor(Math.random()·*·(max·-·min·+·1)); | ||
9 | } | 8 | } |
10 | module.exports·=· | 9 | module.exports·=·random; |
Offset 1, 10 lines modified | Offset 1, 23 lines modified | ||
1 | //·Return·a·random·integer·between·`min`·and·`max`·(inclusive). | ||
2 | 1 | //·Generate·an·integer·Array·containing·an·arithmetic·progression.·A·port·of | |
2 | //·the·native·Python·`range()`·function.·See | ||
3 | //·[the·Python·documentation](https://docs.python.org/library/functions.html#range). | ||
4 | function·range(start,·stop,·step)·{ | ||
3 | ····if·( | 5 | ····if·(stop·==·null)·{ |
4 | ········ | 6 | ········stop·=·start·||·0; |
5 | ········ | 7 | ········start·=·0; |
6 | ····} | 8 | ····} |
7 | ···· | 9 | ····if·(!step)·{ |
10 | ········step·=·stop·<·start·?·-1·:·1; | ||
11 | ····} | ||
12 | ····var·length·=·Math.max(Math.ceil((stop·-·start)·/·step),·0); | ||
13 | ····var·range·=·Array(length); | ||
14 | ····for·(var·idx·=·0;·idx·<·length;·idx++,·start·+=·step)·{ | ||
15 | ········range[idx]·=·start; | ||
16 | ····} | ||
17 | ····return·range; | ||
8 | } | 18 | } |
9 | module.exports·=·ran | 19 | module.exports·=·range; |
Offset 1, 23 lines modified | Offset 1, 7 lines modified | ||
1 | var·_createReduce·=·require('./index8.js'); | ||
1 | //·Generate·an·integer·Array·containing·an·arithmetic·progression.·A·port·of | ||
2 | //·the·native·Python·`range()`·function.·See | ||
3 | //·[the·Python·documentation](https://docs.python.org/library/functions.html#range). | ||
4 | function·range(start,·stop,·step)·{ | ||
5 | ····if·(stop·==·null)·{ | ||
6 | ········stop·=·start·||·0; | ||
7 | ········start·=·0; | ||
8 | ····} | ||
9 | ····if·(!step)·{ | ||
10 | ········step·=·stop·<·start·?·-1·:·1; | ||
11 | ····} | ||
12 | ····var·length·=·Math.max(Math.ceil((stop·-·start)·/·step),·0); | ||
13 | ··· | 2 | //·**Reduce**·builds·up·a·single·result·from·a·list·of·values,·aka·`inject`, |
3 | //·or·`foldl`. | ||
4 | var·reduce·=·_createReduce(1); | ||
14 | ····for·(var·idx·=·0;·idx·<·length;·idx++,·start·+=·step)·{ | ||
15 | ········range[idx]·=·start; | ||
16 | ····} | ||
17 | ····return·range; | ||
18 | } | ||
19 | module.exports·=·r | 5 | module.exports·=·reduce; |
Offset 1, 7 lines modified | Offset 1, 6 lines modified | ||
1 | var·_createReduce·=·require('./index | 1 | var·_createReduce·=·require('./index8.js'); |
2 | //·The·right-associative·version·of·reduce,·also·known·as·`foldr`. | ||
2 | //·**Reduce**·builds·up·a·single·result·from·a·list·of·values,·aka·`inject`, | ||
3 | //·or·`foldl`. | ||
4 | var·reduce·=·_createReduce(1); | 3 | var·reduceRight·=·_createReduce(-1); |
5 | module.exports·=·reduce; | 4 | module.exports·=·reduceRight; |
Offset 1, 6 lines modified | Offset 1, 18 lines modified | ||
1 | var·_ | 1 | var·_setup·=·require('./index25.js'); |
2 | var·isDataView·=·require('./index78.js'); | ||
3 | var·constant·=·require('./index39.js'); | ||
4 | var·_isBufferLike·=·require('./index21.js'); | ||
2 | //·The·right-associative·version·of·reduce,·also·known·as·`foldr`. | ||
3 | 5 | //·Is·a·given·value·a·typed·array? | |
6 | var·typedArrayPattern·=·/\[object·((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/; | ||
4 | 7 | function·isTypedArray(obj)·{ | |
8 | ····//·`ArrayBuffer.isView`·is·the·most·future-proof,·so·use·it·when·available. | ||
9 | ····//·Otherwise,·fall·back·on·the·above·regular·expression. | ||
10 | ····return·_setup.nativeIsView·?·(_setup.nativeIsView(obj)·&&·!isDataView(obj))·: | ||
11 | ········_isBufferLike(obj)·&&·typedArrayPattern.test(_setup.toString.call(obj)); | ||
12 | } | ||
13 | var·isTypedArray$1·=·_setup.supportsArrayBuffer·?·isTypedArray·:·constant(false); | ||
14 | module.exports·=·isTypedArray$1; |
Offset 1, 11 lines modified | Offset 1, 15 lines modified | ||
1 | var·_baseCreate·=·require('./index.js'); | ||
2 | var·isObject·=·require('./index91.js'); | ||
1 | //·Internal·list·of·HTML·entities·for·escaping. | ||
2 | var·escapeMap·=·{ | ||
3 | ····'&':·'&', | ||
4 | ····'<':·'<', | ||
5 | ····'>':·'>', | ||
6 | ····'"':·'"', | ||
7 | ····"'":·''', | ||
8 | ····'`':·'`' | ||
9 | }; | ||
10 | 3 | //·Internal·function·to·execute·`sourceFunc`·bound·to·`context`·with·optional | |
4 | //·`args`.·Determines·whether·to·execute·a·function·as·a·constructor·or·as·a | ||
5 | //·normal·function. | ||
6 | function·executeBound(sourceFunc,·boundFunc,·context,·callingContext,·args)·{ | ||
7 | ····if·(!(callingContext·instanceof·boundFunc))·return·sourceFunc.apply(context,·args); | ||
8 | ····var·self·=·_baseCreate(sourceFunc.prototype); | ||
9 | ····var·result·=·sourceFunc.apply(self,·args); | ||
10 | ····if·(isObject(result))·return·result; | ||
11 | ····return·self; | ||
12 | } | ||
13 | module.exports·=·executeBound; |
Offset 1, 10 lines modified | Offset 1, 10 lines modified | ||
1 | var·filter·=·require('./index5 | 1 | var·filter·=·require('./index54.js'); |
2 | var·negate·=·require('./index11 | 2 | var·negate·=·require('./index111.js'); |
3 | var·_cb·=·require('./index | 3 | var·_cb·=·require('./index2.js'); |
4 | //·Return·all·the·elements·for·which·a·truth·test·fails. | 4 | //·Return·all·the·elements·for·which·a·truth·test·fails. |
5 | function·reject(obj,·predicate,·context)·{ | 5 | function·reject(obj,·predicate,·context)·{ |
6 | ····return·filter(obj,·negate(_cb(predicate)),·context); | 6 | ····return·filter(obj,·negate(_cb(predicate)),·context); |
7 | } | 7 | } |
8 | module.exports·=·reject; | 8 | module.exports·=·reject; |
Offset 1, 10 lines modified | Offset 1, 32 lines modified | ||
1 | var·_setup·=·require('./index25.js'); | ||
2 | //·Returns·everything·but·the·first·entry·of·the·`array`.·Especially·useful·on | ||
3 | //·the·`arguments`·object.·Passing·an·**n**·will·return·the·rest·N·values·in·the | ||
4 | //·`array`. | ||
5 | function·rest(array,·n,·guard)·{ | ||
6 | 1 | //·Some·functions·take·a·variable·number·of·arguments,·or·a·few·expected | |
2 | //·arguments·at·the·beginning·and·then·a·variable·number·of·values·to·operate | ||
3 | //·on.·This·helper·accumulates·all·remaining·arguments·past·the·function’s | ||
4 | //·argument·length·(or·an·explicit·`startIndex`),·into·an·array·that·becomes | ||
5 | //·the·last·argument.·Similar·to·ES6’s·"rest·parameter". | ||
6 | function·restArguments(func,·startIndex)·{ | ||
7 | ····startIndex·=·startIndex·==·null·?·func.length·-·1·:·+startIndex; | ||
8 | ····return·function()·{ | ||
9 | ········var·length·=·Math.max(arguments.length·-·startIndex,·0), | ||
10 | ············rest·=·Array(length), | ||
11 | ············index·=·0; | ||
12 | ········for·(;·index·<·length;·index++)·{ | ||
13 | ············rest[index]·=·arguments[index·+·startIndex]; | ||
14 | ········} | ||
15 | ········switch·(startIndex)·{ | ||
16 | ············case·0: | ||
17 | ················return·func.call(this,·rest); | ||
18 | ············case·1: | ||
19 | ················return·func.call(this,·arguments[0],·rest); | ||
20 | ············case·2: | ||
21 | ················return·func.call(this,·arguments[0],·arguments[1],·rest); | ||
22 | ········} | ||
23 | ········var·args·=·Array(startIndex·+·1); | ||
24 | ········for·(index·=·0;·index·<·startIndex;·index++)·{ | ||
25 | ············args[index]·=·arguments[index]; | ||
26 | ········} | ||
27 | ········args[startIndex]·=·rest; | ||
28 | ········return·func.apply(this,·args); | ||
29 | ····}; | ||
7 | } | 30 | } |
8 | module.exports·=·rest; | 31 | module.exports·=·restArguments; |
Offset 1, 32 lines modified | Offset 1, 24 lines modified | ||
1 | var·isFunction·=·require('./index85.js'); | ||
2 | var·_toPath·=·require('./index30.js'); | ||
3 | //·Traverses·the·children·of·`obj`·along·`path`.·If·a·child·is·a·function,·it | ||
4 | //·is·invoked·with·its·parent·as·context.·Returns·the·value·of·the·final | ||
5 | //·child,·or·`fallback`·if·any·child·is·undefined. | ||
6 | function·result(obj,·path,·fallback)·{ | ||
7 | ····path·=·_toPath(path); | ||
8 | ····var·length·=·path.length; | ||
9 | ····if·(!length)·{ | ||
10 | ········return·isFunction(fallback)·?·fallback.call(obj)·:·fallback; | ||
11 | ····} | ||
12 | ····for·(var·i·=·0;·i·<·length;·i++)·{ | ||
13 | ········var·prop·=·obj·==·null·?·void·0·:·obj[path[i]]; | ||
14 | ········if·(prop·===·void·0)·{ | ||
15 | ············prop·=·fallback; | ||
16 | ············i·=·length;·//·Ensure·we·don't·continue·iterating. | ||
1 | //·Some·functions·take·a·variable·number·of·arguments,·or·a·few·expected | ||
2 | //·arguments·at·the·beginning·and·then·a·variable·number·of·values·to·operate | ||
3 | //·on.·This·helper·accumulates·all·remaining·arguments·past·the·function’s | ||
4 | //·argument·length·(or·an·explicit·`startIndex`),·into·an·array·that·becomes | ||
5 | //·the·last·argument.·Similar·to·ES6’s·"rest·parameter". | ||
6 | function·restArguments(func,·startIndex)·{ | ||
7 | ····startIndex·=·startIndex·==·null·?·func.length·-·1·:·+startIndex; | ||
8 | ····return·function()·{ | ||
9 | ········var·length·=·Math.max(arguments.length·-·startIndex,·0), | ||
10 | ············rest·=·Array(length), | ||
11 | ············index·=·0; | ||
12 | ········for·(;·index·<·length;·index++)·{ | ||
13 | ············rest[index]·=·arguments[index·+·startIndex]; | ||
14 | ········} | ||
15 | ········switch·(startIndex)·{ | ||
16 | ············case·0: | ||
17 | ················return·func.call(this,·rest); | ||
18 | ············case·1: | ||
19 | ················return·func.call(this,·arguments[0],·rest); | ||
20 | ············case·2: | ||
21 | ················return·func.call(this,·arguments[0],·arguments[1],·rest); | ||
22 | ········} | ||
23 | ········var·args·=·Array(startIndex·+·1); | ||
24 | ········for·(index·=·0;·index·<·startIndex;·index++)·{ | ||
25 | ············args[index]·=·arguments[index]; | ||
26 | ········} | 17 | ········} |
18 | ········obj·=·isFunction(prop)·?·prop.call(obj)·:·prop; | ||
27 | ········args[startIndex]·=·rest; | ||
28 | ········return·func.apply(this,·args); | ||
29 | ····} | 19 | ····} |
20 | ····return·obj; | ||
30 | } | 21 | } |
31 | module.exports·=·res | 22 | module.exports·=·result; |
Offset 1, 6 lines modified | Offset 1, 29 lines modified | ||
1 | //·A·(possibly·faster)·way·to·get·the·current·timestamp·as·an·integer. | ||
2 | var·now·=·Date.now·||·function()·{ | ||
3 | ····return·new·Date().getTime(); | ||
4 | 1 | var·_isArrayLike·=·require('./index20.js'); | |
2 | var·values·=·require('./index153.js'); | ||
3 | var·_getLength·=·require('./index16.js'); | ||
4 | var·random·=·require('./index125.js'); | ||
5 | var·toArray·=·require('./index159.js'); | ||
6 | //·Sample·**n**·random·values·from·a·collection·using·the·modern·version·of·the | ||
7 | //·[Fisher-Yates·shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle). | ||
8 | //·If·**n**·is·not·specified,·returns·a·single·random·element. | ||
9 | //·The·internal·`guard`·argument·allows·it·to·work·with·`_.map`. | ||
10 | function·sample(obj,·n,·guard)·{ | ||
11 | ····if·(n·==·null·||·guard)·{ | ||
12 | ········if·(!_isArrayLike(obj))·obj·=·values(obj); | ||
13 | ········return·obj[random(obj.length·-·1)]; | ||
14 | ····} | ||
15 | ····var·sample·=·toArray(obj); | ||
16 | ····var·length·=·_getLength(sample); | ||
17 | ····n·=·Math.max(Math.min(n,·length),·0); | ||
18 | ····var·last·=·length·-·1; | ||
19 | ····for·(var·index·=·0;·index·<·n;·index++)·{ | ||
20 | ········var·rand·=·random(index,·last); | ||
21 | ········var·temp·=·sample[index]; | ||
22 | ········sample[index]·=·sample[rand]; | ||
23 | ········sample[rand]·=·temp; | ||
24 | ····} | ||
25 | ····return·sample.slice(0,·n); | ||
26 | } | ||
5 | module.exports·=· | 27 | module.exports·=·sample; |
Offset 1, 24 lines modified | Offset 1, 8 lines modified | ||
1 | var·isFunction·=·require('./index88.js'); | ||
2 | var· | 1 | var·sample·=·require('./index133.js'); |
2 | //·Shuffle·a·collection. | ||
3 | function·shuffle(obj)·{ | ||
4 | ····return·sample(obj,·Infinity); | ||
3 | //·Traverses·the·children·of·`obj`·along·`path`.·If·a·child·is·a·function,·it | ||
4 | //·is·invoked·with·its·parent·as·context.·Returns·the·value·of·the·final | ||
5 | //·child,·or·`fallback`·if·any·child·is·undefined. | ||
6 | function·result(obj,·path,·fallback)·{ | ||
7 | ····path·=·_toPath(path); | ||
8 | ····var·length·=·path.length; | ||
9 | ····if·(!length)·{ | ||
10 | ········return·isFunction(fallback)·?·fallback.call(obj)·:·fallback; | ||
11 | ····} | ||
12 | ····for·(var·i·=·0;·i·<·length;·i++)·{ | ||
13 | ········var·prop·=·obj·==·null·?·void·0·:·obj[path[i]]; | ||
14 | ········if·(prop·===·void·0)·{ | ||
15 | ············prop·=·fallback; | ||
16 | ············i·=·length;·//·Ensure·we·don't·continue·iterating. | ||
17 | ········} | ||
18 | ········obj·=·isFunction(prop)·?·prop.call(obj)·:·prop; | ||
19 | ····} | ||
20 | ····return·obj; | ||
21 | } | 5 | } |
22 | module.exports·=· | 6 | module.exports·=·shuffle; |
Offset 1, 18 lines modified | Offset 1, 10 lines modified | ||
1 | var·_setup·=·require('./index25.js'); | ||
2 | var·isDataView·=·require('./index81.js'); | ||
3 | var·constant·=·require('./index42.js'); | ||
4 | var·_is | 1 | var·_isArrayLike·=·require('./index20.js'); |
2 | var·keys·=·require('./index101.js'); | ||
3 | //·Return·the·number·of·elements·in·a·collection. | ||
5 | //·Is·a·given·value·a·typed·array? | ||
6 | var·typedArrayPattern·=·/\[object·((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/; | ||
7 | function· | 4 | function·size(obj)·{ |
5 | ····if·(obj·==·null)·return·0; | ||
6 | ····return·_isArrayLike(obj)·?·obj.length·:·keys(obj).length; | ||
8 | ····//·`ArrayBuffer.isView`·is·the·most·future-proof,·so·use·it·when·available. | ||
9 | ····//·Otherwise,·fall·back·on·the·above·regular·expression. | ||
10 | ····return·_setup.nativeIsView·?·(_setup.nativeIsView(obj)·&&·!isDataView(obj))·: | ||
11 | ········_isBufferLike(obj)·&&·typedArrayPattern.test(_setup.toString.call(obj)); | ||
12 | } | 7 | } |
8 | module.exports·=·size; | ||
13 | var·isTypedArray$1·=·_setup.supportsArrayBuffer·?·isTypedArray·:·constant(false); | ||
14 | module.exports·=·isTypedArray$1; |
Offset 1, 8 lines modified | Offset 1, 17 lines modified | ||
1 | var·_cb·=·require('./index2.js'); | ||
2 | var·_isArrayLike·=·require('./index20.js'); | ||
1 | var· | 3 | var·keys·=·require('./index101.js'); |
2 | //·Shuffle·a·collection. | ||
3 | function·shuffle(obj)·{ | ||
4 | ···· | 4 | //·Determine·if·at·least·one·element·in·the·object·passes·a·truth·test. |
5 | function·some(obj,·predicate,·context)·{ | ||
6 | ····predicate·=·_cb(predicate,·context); | ||
7 | ····var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
8 | ········length·=·(_keys·||·obj).length; | ||
9 | ····for·(var·index·=·0;·index·<·length;·index++)·{ | ||
10 | ········var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
11 | ········if·(predicate(obj[currentKey],·currentKey,·obj))·return·true; | ||
12 | ····} | ||
13 | ····return·false; | ||
5 | } | 14 | } |
6 | module.exports·=·s | 15 | module.exports·=·some; |
Offset 1, 10 lines modified | Offset 1, 26 lines modified | ||
1 | var·_ | 1 | var·_cb·=·require('./index2.js'); |
2 | var·pluck·=·require('./index121.js'); | ||
2 | var· | 3 | var·map·=·require('./index104.js'); |
3 | //·Return·the·number·of·elements·in·a·collection. | ||
4 | function·size(obj)·{ | ||
5 | ····if·(obj·==·null)·return·0; | ||
6 | 4 | //·Sort·the·object's·values·by·a·criterion·produced·by·an·iteratee. | |
5 | function·sortBy(obj,·iteratee,·context)·{ | ||
6 | ····var·index·=·0; | ||
7 | ····iteratee·=·_cb(iteratee,·context); | ||
8 | ····return·pluck(map(obj,·function(value,·key,·list)·{ | ||
9 | ········return·{ | ||
10 | ············value:·value, | ||
11 | ············index:·index++, | ||
12 | ············criteria:·iteratee(value,·key,·list) | ||
13 | ········}; | ||
14 | ····}).sort(function(left,·right)·{ | ||
15 | ········var·a·=·left.criteria; | ||
16 | ········var·b·=·right.criteria; | ||
17 | ········if·(a·!==·b)·{ | ||
18 | ············if·(a·>·b·||·a·===·void·0)·return·1; | ||
19 | ············if·(a·<·b·||·b·===·void·0)·return·-1; | ||
20 | ········} | ||
21 | ········return·left.index·-·right.index; | ||
22 | ····}),·'value'); | ||
7 | } | 23 | } |
8 | module.exports·=·s | 24 | module.exports·=·sortBy; |
Offset 1, 17 lines modified | Offset 1, 19 lines modified | ||
1 | var·_cb·=·require('./index | 1 | var·_cb·=·require('./index2.js'); |
2 | var·_isArrayLike·=·require('./index20.js'); | ||
3 | var· | 2 | var·_getLength·=·require('./index16.js'); |
4 | //·Determine·if·at·least·one·element·in·the·object·passes·a·truth·test. | ||
5 | function·some(obj,·predicate,·context)·{ | ||
6 | ····predicate·=·_cb(predicate,·context); | ||
7 | ····var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
8 | ········length·=·(_keys·||·obj).length; | ||
9 | ····for·(var·index·=·0;·index·<·length;·index++)·{ | ||
10 | ········var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
11 | 3 | //·Use·a·comparator·function·to·figure·out·the·smallest·index·at·which | |
4 | //·an·object·should·be·inserted·so·as·to·maintain·order.·Uses·binary·search. | ||
5 | function·sortedIndex(array,·obj,·iteratee,·context)·{ | ||
6 | ····iteratee·=·_cb(iteratee,·context,·1); | ||
7 | ····var·value·=·iteratee(obj); | ||
8 | ····var·low·=·0, | ||
9 | ········high·=·_getLength(array); | ||
10 | ····while·(low·<·high)·{ | ||
11 | ········var·mid·=·Math.floor((low·+·high)·/·2); | ||
12 | ········if·(iteratee(array[mid])·<·value)·low·=·mid·+·1; | ||
13 | ········else·high·=·mid; | ||
12 | ····} | 14 | ····} |
13 | ····return· | 15 | ····return·low; |
14 | } | 16 | } |
15 | module.exports·=·so | 17 | module.exports·=·sortedIndex; |
Offset 1, 26 lines modified | Offset 1, 9 lines modified | ||
1 | //·Invokes·`interceptor`·with·the·`obj`·and·then·returns·`obj`. | ||
2 | //·The·primary·purpose·of·this·method·is·to·"tap·into"·a·method·chain,·in | ||
3 | //·order·to·perform·operations·on·intermediate·results·within·the·chain. | ||
4 | function·tap(obj,·interceptor)·{ | ||
5 | ····interceptor(obj); | ||
6 | ····return·obj; | ||
1 | var·_cb·=·require('./index3.js'); | ||
2 | var·pluck·=·require('./index123.js'); | ||
3 | var·map·=·require('./index106.js'); | ||
4 | //·Sort·the·object's·values·by·a·criterion·produced·by·an·iteratee. | ||
5 | function·sortBy(obj,·iteratee,·context)·{ | ||
6 | ····var·index·=·0; | ||
7 | ····iteratee·=·_cb(iteratee,·context); | ||
8 | ····return·pluck(map(obj,·function(value,·key,·list)·{ | ||
9 | ········return·{ | ||
10 | ············value:·value, | ||
11 | ············index:·index++, | ||
12 | ············criteria:·iteratee(value,·key,·list) | ||
13 | ········}; | ||
14 | ····}).sort(function(left,·right)·{ | ||
15 | ········var·a·=·left.criteria; | ||
16 | ········var·b·=·right.criteria; | ||
17 | ········if·(a·!==·b)·{ | ||
18 | ············if·(a·>·b·||·a·===·void·0)·return·1; | ||
19 | ············if·(a·<·b·||·b·===·void·0)·return·-1; | ||
20 | ········} | ||
21 | ········return·left.index·-·right.index; | ||
22 | ····}),·'value'); | ||
23 | } | 7 | } |
24 | module.exports·=· | 8 | module.exports·=·tap; |
Offset 1, 11 lines modified | Offset 1, 11 lines modified | ||
1 | var·_getLength·=·require('./index16.js'); | 1 | var·_getLength·=·require('./index16.js'); |
2 | var·_isArrayLike·=·require('./index20.js'); | 2 | var·_isArrayLike·=·require('./index20.js'); |
3 | var·isArray·=·require('./index7 | 3 | var·isArray·=·require('./index75.js'); |
4 | var·isArguments·=·require('./index7 | 4 | var·isArguments·=·require('./index74.js'); |
5 | //·Internal·implementation·of·a·recursive·`flatten`·function. | 5 | //·Internal·implementation·of·a·recursive·`flatten`·function. |
6 | function·flatten(input,·depth,·strict,·output)·{ | 6 | function·flatten(input,·depth,·strict,·output)·{ |
7 | ····output·=·output·||·[]; | 7 | ····output·=·output·||·[]; |
8 | ····if·(!depth·&&·depth·!==·0)·{ | 8 | ····if·(!depth·&&·depth·!==·0)·{ |
9 | ········depth·=·Infinity; | 9 | ········depth·=·Infinity; |
10 | ····}·else·if·(depth·<=·0)·{ | 10 | ····}·else·if·(depth·<=·0)·{ |
Offset 1, 19 lines modified | Offset 1, 103 lines modified | ||
1 | var· | 1 | var·defaults·=·require('./index44.js'); |
2 | var· | 2 | var·underscore·=·require('./index147.js'); |
3 | require('./index142.js'); | ||
3 | //·Use·a·comparator·function·to·figure·out·the·smallest·index·at·which | ||
4 | //·an·object·should·be·inserted·so·as·to·maintain·order.·Uses·binary·search. | ||
5 | function·sortedIndex(array,·obj,·iteratee,·context)·{ | ||
6 | ····iteratee·=·_cb(iteratee,·context,·1); | ||
7 | ····var·value·=·iteratee(obj); | ||
8 | ····var·low·=·0, | ||
9 | ········high·=·_getLength(array); | ||
10 | ····while·(low·<·high)·{ | ||
11 | ········var·mid·=·Math.floor((low·+·high)·/·2); | ||
12 | ········if·(iteratee(array[mid])·<·value)·low·=·mid·+·1; | ||
13 | ·· | 4 | //·When·customizing·`_.templateSettings`,·if·you·don't·want·to·define·an |
5 | //·interpolation,·evaluation·or·escaping·regex,·we·need·one·that·is | ||
6 | //·guaranteed·not·to·match. | ||
7 | var·noMatch·=·/(.)^/; | ||
8 | //·Certain·characters·need·to·be·escaped·so·that·they·can·be·put·into·a | ||
9 | //·string·literal. | ||
10 | var·escapes·=·{ | ||
11 | ····"'":·"'", | ||
12 | ····'\\':·'\\', | ||
13 | ····'\r':·'r', | ||
14 | ····'\n':·'n', | ||
15 | ····'\u2028':·'u2028', | ||
16 | ····'\u2029':·'u2029' | ||
17 | }; | ||
18 | var·escapeRegExp·=·/\\|'|\r|\n|\u2028|\u2029/g; | ||
19 | function·escapeChar(match)·{ | ||
20 | ····return·'\\'·+·escapes[match]; | ||
21 | } | ||
22 | //·In·order·to·prevent·third-party·code·injection·through | ||
23 | //·`_.templateSettings.variable`,·we·test·it·against·the·following·regular | ||
24 | //·expression.·It·is·intentionally·a·bit·more·liberal·than·just·matching·valid | ||
25 | //·identifiers,·but·still·prevents·possible·loopholes·through·defaults·or | ||
26 | //·destructuring·assignment. | ||
27 | var·bareIdentifier·=·/^\s*(\w|\$)+\s*$/; | ||
28 | //·JavaScript·micro-templating,·similar·to·John·Resig's·implementation. | ||
29 | //·Underscore·templating·handles·arbitrary·delimiters,·preserves·whitespace, | ||
30 | //·and·correctly·escapes·quotes·within·interpolated·code. | ||
31 | //·NB:·`oldSettings`·only·exists·for·backwards·compatibility. | ||
32 | function·template(text,·settings,·oldSettings)·{ | ||
33 | ····if·(!settings·&&·oldSettings)·settings·=·oldSettings; | ||
34 | ····settings·=·defaults({},·settings,·underscore.templateSettings); | ||
35 | ····//·Combine·delimiters·into·one·regular·expression·via·alternation. | ||
36 | ····var·matcher·=·RegExp([ | ||
37 | ········(settings.escape·||·noMatch).source, | ||
38 | ········(settings.interpolate·||·noMatch).source, | ||
39 | ········(settings.evaluate·||·noMatch).source | ||
40 | ····].join('|')·+·'|$',·'g'); | ||
41 | ····//·Compile·the·template·source,·escaping·string·literals·appropriately. | ||
42 | ····var·index·=·0; | ||
43 | ····var·source·=·"__p+='"; | ||
44 | ····text.replace(matcher,·function(match,·escape,·interpolate,·evaluate,·offset)·{ | ||
45 | ········source·+=·text.slice(index,·offset).replace(escapeRegExp,·escapeChar); | ||
46 | ········index·=·offset·+·match.length; | ||
47 | ········if·(escape)·{ | ||
48 | ············source·+=·"'+\n((__t=("·+·escape·+·"))==null?'':_.escape(__t))+\n'"; | ||
49 | ········}·else·if·(interpolate)·{ | ||
50 | ············source·+=·"'+\n((__t=("·+·interpolate·+·"))==null?'':__t)+\n'"; | ||
51 | ········}·else·if·(evaluate)·{ | ||
52 | ············source·+=·"';\n"·+·evaluate·+·"\n__p+='"; | ||
53 | ········} | ||
54 | ········//·Adobe·VMs·need·the·match·returned·to·produce·the·correct·offset. | ||
55 | ········return·match; | ||
56 | ····}); | ||
57 | ····source·+=·"';\n"; | ||
58 | ····var·argument·=·settings.variable; | ||
59 | ····if·(argument)·{ | ||
60 | ········//·Insure·against·third-party·code·injection.·(CVE-2021-23358) | ||
61 | ········if·(!bareIdentifier.test(argument))·throw·new·Error( | ||
62 | ············'variable·is·not·a·bare·identifier:·'·+·argument | ||
63 | ········); | ||
64 | ····}·else·{ | ||
65 | ········//·If·a·variable·is·not·specified,·place·data·values·in·local·scope. | ||
66 | ········source·=·'with(obj||{}){\n'·+·source·+·'}\n'; | ||
67 | ········argument·=·'obj'; | ||
68 | ····} | ||
69 | ····source·=·"var·__t,__p='',__j=Array.prototype.join,"·+ | ||
70 | ········"print=function(){__p+=__j.call(arguments,'');};\n"·+ | ||
71 | ········source·+·'return·__p;\n'; | ||
72 | ····var·render; | ||
73 | ····try·{ | ||
74 | ········render·=·new·Function(argument,·'_',·source); | ||
75 | ····}·catch·(e)·{ | ||
76 | ········e.source·=·source; | ||
77 | ········throw·e; | ||
14 | ····} | 78 | ····} |
15 | ····return·low; | ||
79 | ····var·template·=·function(data)·{ | ||
80 | ········return·render.call(this,·data,·underscore); | ||
81 | ····}; | ||
82 | ····//·Provide·the·compiled·source·as·a·convenience·for·precompilation. | ||
83 | ····template.source·=·'function('·+·argument·+·'){\n'·+·source·+·'}'; | ||
84 | ····return·template; | ||
16 | } | 85 | } |
17 | module.exports·=· | 86 | module.exports·=·template; |
Offset 1, 9 lines modified | Offset 1, 49 lines modified | ||
1 | //·Invokes·`interceptor`·with·the·`obj`·and·then·returns·`obj`. | ||
2 | //·The·primary·purpose·of·this·method·is·to·"tap·into"·a·method·chain,·in | ||
3 | //·order·to·perform·operations·on·intermediate·results·within·the·chain. | ||
4 | function·tap(obj,·interceptor)·{ | ||
5 | ····interceptor(obj); | ||
6 | ·· | 1 | var·now·=·require('./index113.js'); |
2 | //·Returns·a·function,·that,·when·invoked,·will·only·be·triggered·at·most·once | ||
3 | //·during·a·given·window·of·time.·Normally,·the·throttled·function·will·run | ||
4 | //·as·much·as·it·can,·without·ever·going·more·than·once·per·`wait`·duration; | ||
5 | //·but·if·you'd·like·to·disable·the·execution·on·the·leading·edge,·pass | ||
6 | //·`{leading:·false}`.·To·disable·execution·on·the·trailing·edge,·ditto. | ||
7 | function·throttle(func,·wait,·options)·{ | ||
8 | ····var·timeout,·context,·args,·result; | ||
9 | ····var·previous·=·0; | ||
10 | ····if·(!options)·options·=·{}; | ||
11 | ····var·later·=·function()·{ | ||
12 | ········previous·=·options.leading·===·false·?·0·:·now(); | ||
13 | ········timeout·=·null; | ||
14 | ········result·=·func.apply(context,·args); | ||
15 | ········if·(!timeout)·context·=·args·=·null; | ||
16 | ····}; | ||
17 | ····var·throttled·=·function()·{ | ||
18 | ········var·_now·=·now(); | ||
19 | ········if·(!previous·&&·options.leading·===·false)·previous·=·_now; | ||
20 | ········var·remaining·=·wait·-·(_now·-·previous); | ||
21 | ········context·=·this; | ||
22 | ········args·=·arguments; | ||
23 | ········if·(remaining·<=·0·||·remaining·>·wait)·{ | ||
24 | ············if·(timeout)·{ | ||
25 | ················clearTimeout(timeout); | ||
26 | ················timeout·=·null; | ||
27 | ············} | ||
28 | ············previous·=·_now; | ||
29 | ············result·=·func.apply(context,·args); | ||
30 | ············if·(!timeout)·context·=·args·=·null; | ||
31 | ········}·else·if·(!timeout·&&·options.trailing·!==·false)·{ | ||
32 | ············timeout·=·setTimeout(later,·remaining); | ||
33 | ········} | ||
34 | ········return·result; | ||
35 | ····}; | ||
36 | ····throttled.cancel·=·function()·{ | ||
37 | ········clearTimeout(timeout); | ||
38 | ········previous·=·0; | ||
39 | ········timeout·=·context·=·args·=·null; | ||
40 | ····}; | ||
41 | ····return·throttled; | ||
7 | } | 42 | } |
8 | module.exports·=·t | 43 | module.exports·=·throttle; |
Offset 1, 103 lines modified | Offset 1, 11 lines modified | ||
1 | var·defaults·=·require('./index47.js'); | ||
2 | var·underscore·=·require('./index1 | 1 | var·underscore·=·require('./index147.js'); |
3 | require('./index143.js'); | ||
2 | //·By·default,·Underscore·uses·ERB-style·template·delimiters.·Change·the | ||
3 | //·following·template·settings·to·use·alternative·delimiters. | ||
4 | var·templateSettings·=·underscore.templateSettings·=·{ | ||
5 | ····evaluate:·/<%([\s\S]+?)%>/g, | ||
6 | ····interpolate:·/<%=([\s\S]+?)%>/g, | ||
7 | ····escape:·/<%-([\s\S]+?)%>/g | ||
4 | //·When·customizing·`_.templateSettings`,·if·you·don't·want·to·define·an | ||
5 | //·interpolation,·evaluation·or·escaping·regex,·we·need·one·that·is | ||
6 | //·guaranteed·not·to·match. | ||
7 | var·noMatch·=·/(.)^/; | ||
8 | //·Certain·characters·need·to·be·escaped·so·that·they·can·be·put·into·a | ||
9 | //·string·literal. | ||
10 | var·escapes·=·{ | ||
11 | ····"'":·"'", | ||
12 | ····'\\':·'\\', | ||
13 | ····'\r':·'r', | ||
14 | ····'\n':·'n', | ||
15 | ····'\u2028':·'u2028', | ||
16 | ····'\u2029':·'u2029' | ||
17 | }; | 8 | }; |
18 | var·escapeRegExp·=·/\\|'|\r|\n|\u2028|\u2029/g; | ||
19 | function·escapeChar(match)·{ | ||
20 | ····return·'\\'·+·escapes[match]; | ||
21 | } | ||
22 | //·In·order·to·prevent·third-party·code·injection·through | ||
23 | //·`_.templateSettings.variable`,·we·test·it·against·the·following·regular | ||
24 | //·expression.·It·is·intentionally·a·bit·more·liberal·than·just·matching·valid | ||
25 | //·identifiers,·but·still·prevents·possible·loopholes·through·defaults·or | ||
26 | //·destructuring·assignment. | ||
27 | var·bareIdentifier·=·/^\s*(\w|\$)+\s*$/; | ||
28 | //·JavaScript·micro-templating,·similar·to·John·Resig's·implementation. | ||
29 | //·Underscore·templating·handles·arbitrary·delimiters,·preserves·whitespace, | ||
30 | //·and·correctly·escapes·quotes·within·interpolated·code. | ||
31 | //·NB:·`oldSettings`·only·exists·for·backwards·compatibility. | ||
32 | function·template(text,·settings,·oldSettings)·{ | ||
33 | ····if·(!settings·&&·oldSettings)·settings·=·oldSettings; | ||
34 | ····settings·=·defaults({},·settings,·underscore.templateSettings); | ||
35 | ····//·Combine·delimiters·into·one·regular·expression·via·alternation. | ||
36 | ····var·matcher·=·RegExp([ | ||
37 | ········(settings.escape·||·noMatch).source, | ||
38 | ········(settings.interpolate·||·noMatch).source, | ||
39 | ········(settings.evaluate·||·noMatch).source | ||
40 | ····].join('|')·+·'|$',·'g'); | ||
41 | ····//·Compile·the·template·source,·escaping·string·literals·appropriately. | ||
42 | ····var·index·=·0; | ||
43 | ····var·source·=·"__p+='"; | ||
44 | ····text.replace(matcher,·function(match,·escape,·interpolate,·evaluate,·offset)·{ | ||
45 | ········source·+=·text.slice(index,·offset).replace(escapeRegExp,·escapeChar); | ||
46 | ········index·=·offset·+·match.length; | ||
47 | ········if·(escape)·{ | ||
48 | ············source·+=·"'+\n((__t=("·+·escape·+·"))==null?'':_.escape(__t))+\n'"; | ||
49 | ········}·else·if·(interpolate)·{ | ||
50 | ············source·+=·"'+\n((__t=("·+·interpolate·+·"))==null?'':__t)+\n'"; | ||
51 | ········}·else·if·(evaluate)·{ | ||
52 | ············source·+=·"';\n"·+·evaluate·+·"\n__p+='"; | ||
53 | ········} | ||
54 | ········//·Adobe·VMs·need·the·match·returned·to·produce·the·correct·offset. | ||
55 | ········return·match; | ||
56 | ····}); | ||
57 | ····source·+=·"';\n"; | ||
58 | ····var·argument·=·settings.variable; | ||
59 | ····if·(argument)·{ | ||
60 | ········//·Insure·against·third-party·code·injection.·(CVE-2021-23358) | ||
61 | ········if·(!bareIdentifier.test(argument))·throw·new·Error( | ||
62 | ············'variable·is·not·a·bare·identifier:·'·+·argument | ||
63 | ········); | ||
64 | ····}·else·{ | ||
65 | ········//·If·a·variable·is·not·specified,·place·data·values·in·local·scope. | ||
66 | ········source·=·'with(obj||{}){\n'·+·source·+·'}\n'; | ||
67 | ········argument·=·'obj'; | ||
68 | ····} | ||
69 | ····source·=·"var·__t,__p='',__j=Array.prototype.join,"·+ | ||
70 | ········"print=function(){__p+=__j.call(arguments,'');};\n"·+ | ||
71 | ········source·+·'return·__p;\n'; | ||
72 | ····var·render; | ||
73 | ····try·{ | ||
74 | ········render·=·new·Function(argument,·'_',·source); | ||
75 | ····}·catch·(e)·{ | ||
76 | ········e.source·=·source; | ||
77 | ········throw·e; | ||
78 | ····} | ||
79 | ····var·template·=·function(data)·{ | ||
80 | ········return·render.call(this,·data,·underscore); | ||
81 | ····}; | ||
82 | ····//·Provide·the·compiled·source·as·a·convenience·for·precompilation. | ||
83 | ····template.source·=·'function('·+·argument·+·'){\n'·+·source·+·'}'; | ||
84 | ····return·template; | ||
85 | } | ||
86 | module.exports·=·template; | 9 | module.exports·=·templateSettings; |
Offset 1, 11 lines modified | Offset 1, 11 lines modified | ||
1 | var· | 1 | var·_optimizeCb·=·require('./index24.js'); |
2 | //·By·default,·Underscore·uses·ERB-style·template·delimiters.·Change·the | ||
3 | //·following·template·settings·to·use·alternative·delimiters. | ||
4 | var·templateSettings·=·underscore.templateSettings·=·{ | ||
5 | ····evaluate:·/<%([\s\S]+?)%>/g, | ||
6 | ····interpolate:·/<%=([\s\S]+?)%>/g, | ||
7 | ····escape:·/<%-([\s\S]+?)%>/g | ||
8 | 2 | //·Run·a·function·**n**·times. | |
3 | function·times(n,·iteratee,·context)·{ | ||
4 | ····var·accum·=·Array(Math.max(0,·n)); | ||
5 | ····iteratee·=·_optimizeCb(iteratee,·context,·1); | ||
6 | ····for·(var·i·=·0;·i·<·n;·i++)·accum[i]·=·iteratee(i); | ||
7 | ····return·accum; | ||
8 | } | ||
9 | module.exports·=·t | 9 | module.exports·=·times; |
Offset 1, 49 lines modified | Offset 1, 6 lines modified | ||
1 | //·Is·a·given·value·a·DOM·element? | ||
2 | function·isElement(obj)·{ | ||
3 | ····return·!!(obj·&&·obj.nodeType·===·1); | ||
1 | var·now·=·require('./index133.js'); | ||
2 | //·Returns·a·function,·that,·when·invoked,·will·only·be·triggered·at·most·once | ||
3 | //·during·a·given·window·of·time.·Normally,·the·throttled·function·will·run | ||
4 | //·as·much·as·it·can,·without·ever·going·more·than·once·per·`wait`·duration; | ||
5 | //·but·if·you'd·like·to·disable·the·execution·on·the·leading·edge,·pass | ||
6 | //·`{leading:·false}`.·To·disable·execution·on·the·trailing·edge,·ditto. | ||
7 | function·throttle(func,·wait,·options)·{ | ||
8 | ····var·timeout,·context,·args,·result; | ||
9 | ····var·previous·=·0; | ||
10 | ····if·(!options)·options·=·{}; | ||
11 | ····var·later·=·function()·{ | ||
12 | ········previous·=·options.leading·===·false·?·0·:·now(); | ||
13 | ········timeout·=·null; | ||
14 | ········result·=·func.apply(context,·args); | ||
15 | ········if·(!timeout)·context·=·args·=·null; | ||
16 | ····}; | ||
17 | ····var·throttled·=·function()·{ | ||
18 | ········var·_now·=·now(); | ||
19 | ········if·(!previous·&&·options.leading·===·false)·previous·=·_now; | ||
20 | ········var·remaining·=·wait·-·(_now·-·previous); | ||
21 | ········context·=·this; | ||
22 | ········args·=·arguments; | ||
23 | ········if·(remaining·<=·0·||·remaining·>·wait)·{ | ||
24 | ············if·(timeout)·{ | ||
25 | ················clearTimeout(timeout); | ||
26 | ················timeout·=·null; | ||
27 | ············} | ||
28 | ············previous·=·_now; | ||
29 | ············result·=·func.apply(context,·args); | ||
30 | ············if·(!timeout)·context·=·args·=·null; | ||
31 | ········}·else·if·(!timeout·&&·options.trailing·!==·false)·{ | ||
32 | ············timeout·=·setTimeout(later,·remaining); | ||
33 | ········} | ||
34 | ········return·result; | ||
35 | ····}; | ||
36 | ····throttled.cancel·=·function()·{ | ||
37 | ········clearTimeout(timeout); | ||
38 | ········previous·=·0; | ||
39 | ········timeout·=·context·=·args·=·null; | ||
40 | ····}; | ||
41 | ····return·throttled; | ||
42 | } | 4 | } |
43 | module.exports·=· | 5 | module.exports·=·isElement; |
Offset 1, 11 lines modified | Offset 1, 11 lines modified | ||
1 | var· | 1 | var·underscore·=·require('./index147.js'); |
2 | var·isArray·=·require('./index75.js'); | ||
3 | //·Normalize·a·(deep)·property·`path`·to·array. | ||
4 | //·Like·`_.iteratee`,·this·function·can·be·customized. | ||
5 | function·toPath(path)·{ | ||
6 | ····return·isArray(path)·?·path·:·[path]; | ||
2 | //·Run·a·function·**n**·times. | ||
3 | function·times(n,·iteratee,·context)·{ | ||
4 | ····var·accum·=·Array(Math.max(0,·n)); | ||
5 | ····iteratee·=·_optimizeCb(iteratee,·context,·1); | ||
6 | ····for·(var·i·=·0;·i·<·n;·i++)·accum[i]·=·iteratee(i); | ||
7 | ····return·accum; | ||
8 | } | 7 | } |
8 | underscore.toPath·=·toPath; | ||
9 | module.exports·=·t | 9 | module.exports·=·toPath; |
Offset 1, 23 lines modified | Offset 1, 31 lines modified | ||
1 | var·underscore·=·require('./index147.js'); | ||
1 | var· | 2 | var·each·=·require('./index48.js'); |
2 | var·_setup·=·require('./index25.js'); | 3 | var·_setup·=·require('./index25.js'); |
3 | var·isString·=·require('./index97.js'); | ||
4 | var·_isArrayLike·=·require('./index20.js'); | ||
5 | var·map·=·require('./index106.js'); | ||
6 | var·i | 4 | var·_chainResult·=·require('./index6.js'); |
7 | var·values·=·require('./index155.js'); | ||
8 | //·Safely·create·a·real,·live·array·from·anything·iterable. | ||
9 | 5 | //·Add·all·mutator·`Array`·functions·to·the·wrapper. | |
6 | each(['pop',·'push',·'reverse',·'shift',·'sort',·'splice',·'unshift'],·function(name)·{ | ||
7 | ····var·method·=·_setup.ArrayProto[name]; | ||
8 | ····underscore.prototype[name]·=·function()·{ | ||
9 | ········var·obj·=·this._wrapped; | ||
10 | ········if·(obj·!=·null)·{ | ||
11 | ············method.apply(obj,·arguments); | ||
12 | ············if·((name·===·'shift'·||·name·===·'splice')·&&·obj.length·===·0)·{ | ||
13 | ················delete·obj[0]; | ||
14 | ············} | ||
15 | ········} | ||
16 | ········return·_chainResult(this,·obj); | ||
17 | ····}; | ||
18 | }); | ||
10 | function·toArray(obj)·{ | ||
11 | ····if·(!obj)·return·[]; | ||
12 | ····if·(isArray(obj))·return·_setup.slice.call(obj); | ||
13 | ····if·(isString(obj))·{ | ||
14 | ········//·Keep·surrogate·pair·characters·together. | ||
15 | ··· | 19 | //·Add·all·accessor·`Array`·functions·to·the·wrapper. |
20 | each(['concat',·'join',·'slice'],·function(name)·{ | ||
21 | ····var·method·=·_setup.ArrayProto[name]; | ||
22 | ····underscore.prototype[name]·=·function()·{ | ||
23 | ········var·obj·=·this._wrapped; | ||
24 | ········if·(obj·!=·null)·obj·=·method.apply(obj,·arguments); | ||
25 | ········return·_chainResult(this,·obj); | ||
16 | ····} | 26 | ····}; |
27 | }); | ||
17 | ····if·(_isArrayLike(obj))·return·map(obj,·identity); | ||
18 | ····return·values(obj); | ||
19 | } | ||
20 | module.exports·=· | 28 | module.exports·=·underscore; |
Offset 1, 11 lines modified | Offset 1, 27 lines modified | ||
1 | var·underscore·=·require('./index150.js'); | ||
2 | var· | 1 | var·_setup·=·require('./index25.js'); |
3 | //·Normalize·a·(deep)·property·`path`·to·array. | ||
4 | //·Like·`_.iteratee`,·this·function·can·be·customized. | ||
5 | function·toPath(path)·{ | ||
6 | ·· | 2 | //·If·Underscore·is·called·as·a·function,·it·returns·a·wrapped·object·that·can |
3 | //·be·used·OO-style.·This·wrapper·holds·altered·versions·of·all·functions·added | ||
4 | //·through·`_.mixin`.·Wrapped·objects·may·be·chained. | ||
5 | function·_(obj)·{ | ||
6 | ····if·(obj·instanceof·_)·return·obj; | ||
7 | ····if·(!(this·instanceof·_))·return·new·_(obj); | ||
8 | ····this._wrapped·=·obj; | ||
7 | } | 9 | } |
8 | underscore.toPath·=·toPath; | ||
10 | _.VERSION·=·_setup.VERSION; | ||
11 | //·Extracts·the·result·from·a·wrapped·and·chained·object. | ||
12 | _.prototype.value·=·function()·{ | ||
13 | ····return·this._wrapped; | ||
14 | }; | ||
15 | //·Provide·unwrapping·proxies·for·some·methods·used·in·engine·operations | ||
16 | //·such·as·arithmetic·and·JSON·stringification. | ||
17 | _.prototype.valueOf·=·_.prototype.toJSON·=·_.prototype.value; | ||
18 | _.prototype.toString·=·function()·{ | ||
19 | ····return·String(this._wrapped); | ||
20 | }; | ||
9 | module.exports·=· | 21 | module.exports·=·_; |
Offset 1, 31 lines modified | Offset 1, 7 lines modified | ||
1 | var·underscore·=·require('./index150.js'); | ||
2 | var·eac | 1 | var·_createEscaper·=·require('./index5.js'); |
3 | var·_se | 2 | var·_unescapeMap·=·require('./index47.js'); |
4 | var·_chainResult·=·require('./index4.js'); | ||
3 | //·Function·for·unescaping·strings·from·HTML·interpolation. | ||
4 | var·unescape·=·_createEscaper(_unescapeMap); | ||
5 | //·Add·all·mutator·`Array`·functions·to·the·wrapper. | ||
6 | each(['pop',·'push',·'reverse',·'shift',·'sort',·'splice',·'unshift'],·function(name)·{ | ||
7 | ····var·method·=·_setup.ArrayProto[name]; | ||
8 | ····underscore.prototype[name]·=·function()·{ | ||
9 | ········var·obj·=·this._wrapped; | ||
10 | ········if·(obj·!=·null)·{ | ||
11 | ············method.apply(obj,·arguments); | ||
12 | ············if·((name·===·'shift'·||·name·===·'splice')·&&·obj.length·===·0)·{ | ||
13 | ················delete·obj[0]; | ||
14 | ············} | ||
15 | ········} | ||
16 | ········return·_chainResult(this,·obj); | ||
17 | ····}; | ||
18 | }); | ||
19 | //·Add·all·accessor·`Array`·functions·to·the·wrapper. | ||
20 | each(['concat',·'join',·'slice'],·function(name)·{ | ||
21 | ····var·method·=·_setup.ArrayProto[name]; | ||
22 | ····underscore.prototype[name]·=·function()·{ | ||
23 | ········var·obj·=·this._wrapped; | ||
24 | ········if·(obj·!=·null)·obj·=·method.apply(obj,·arguments); | ||
25 | ········return·_chainResult(this,·obj); | ||
26 | ····}; | ||
27 | }); | ||
28 | module.exports·=·un | 5 | module.exports·=·unescape; |
Offset 1, 7 lines modified | Offset 1, 11 lines modified | ||
1 | var· | 1 | var·restArguments·=·require('./index131.js'); |
2 | var· | 2 | var·uniq·=·require('./index150.js'); |
3 | var·_flatten·=·require('./index14.js'); | ||
3 | //·Function·for·unescaping·strings·from·HTML·interpolation. | ||
4 | 4 | //·Produce·an·array·that·contains·the·union:·each·distinct·element·from·all·of | |
5 | //·the·passed-in·arrays. | ||
6 | var·union·=·restArguments(function(arrays)·{ | ||
7 | ····return·uniq(_flatten(arrays,·true,·true)); | ||
8 | }); | ||
5 | module.exports·=·un | 9 | module.exports·=·union; |
Offset 1, 27 lines modified | Offset 1, 38 lines modified | ||
1 | var·isBoolean·=·require('./index77.js'); | ||
1 | var·_ | 2 | var·_cb·=·require('./index2.js'); |
3 | var·_getLength·=·require('./index16.js'); | ||
4 | var·contains·=·require('./index40.js'); | ||
2 | //·If·Underscore·is·called·as·a·function,·it·returns·a·wrapped·object·that·can | ||
3 | //·be·used·OO-style.·This·wrapper·holds·altered·versions·of·all·functions·added | ||
4 | //·through·`_.mixin`.·Wrapped·objects·may·be·chained. | ||
5 | function·_(obj)·{ | ||
6 | ····if·(obj·instanceof·_)·return·obj; | ||
7 | ····if·(!(this·instanceof·_))·return·new·_(obj); | ||
8 | ····th | 5 | //·Produce·a·duplicate-free·version·of·the·array.·If·the·array·has·already |
6 | //·been·sorted,·you·have·the·option·of·using·a·faster·algorithm. | ||
7 | //·The·faster·algorithm·will·not·work·with·an·iteratee·if·the·iteratee | ||
8 | //·is·not·a·one-to-one·function,·so·providing·an·iteratee·will·disable | ||
9 | //·the·faster·algorithm. | ||
10 | function·uniq(array,·isSorted,·iteratee,·context)·{ | ||
11 | ····if·(!isBoolean(isSorted))·{ | ||
12 | ········context·=·iteratee; | ||
13 | ········iteratee·=·isSorted; | ||
14 | ········isSorted·=·false; | ||
15 | ····} | ||
16 | ····if·(iteratee·!=·null)·iteratee·=·_cb(iteratee,·context); | ||
17 | ····var·result·=·[]; | ||
18 | ····var·seen·=·[]; | ||
19 | ····for·(var·i·=·0,·length·=·_getLength(array);·i·<·length;·i++)·{ | ||
20 | ········var·value·=·array[i], | ||
21 | ············computed·=·iteratee·?·iteratee(value,·i,·array)·:·value; | ||
22 | ········if·(isSorted·&&·!iteratee)·{ | ||
23 | ············if·(!i·||·seen·!==·computed)·result.push(value); | ||
24 | ············seen·=·computed; | ||
25 | ········}·else·if·(iteratee)·{ | ||
26 | ············if·(!contains(seen,·computed))·{ | ||
27 | ················seen.push(computed); | ||
28 | ················result.push(value); | ||
29 | ············} | ||
30 | ········}·else·if·(!contains(result,·value))·{ | ||
31 | ············result.push(value); | ||
32 | ········} | ||
33 | ····} | ||
34 | ····return·result; | ||
9 | } | 35 | } |
10 | _.VERSION·=·_setup.VERSION; | ||
11 | //·Extracts·the·result·from·a·wrapped·and·chained·object. | ||
12 | _.prototype.value·=·function()·{ | ||
13 | ····return·this._wrapped; | ||
14 | }; | ||
15 | //·Provide·unwrapping·proxies·for·some·methods·used·in·engine·operations | ||
16 | //·such·as·arithmetic·and·JSON·stringification. | ||
17 | _.prototype.valueOf·=·_.prototype.toJSON·=·_.prototype.value; | ||
18 | _.prototype.toString·=·function()·{ | ||
19 | ····return·String(this._wrapped); | ||
20 | }; | ||
21 | module.exports·=· | 36 | module.exports·=·uniq; |
Offset 1, 11 lines modified | Offset 1, 10 lines modified | ||
1 | var·restArguments·=·require('./index132.js'); | ||
2 | var·uniq·=·require('./index152.js'); | ||
3 | 1 | //·Generate·a·unique·integer·id·(unique·within·the·entire·client·session). | |
2 | //·Useful·for·temporary·DOM·ids. | ||
3 | var·idCounter·=·0; | ||
4 | function·uniqueId(prefix)·{ | ||
5 | ····var·id·=·++idCounter·+·''; | ||
6 | ····return·prefix·?·prefix·+·id·:·id; | ||
7 | } | ||
4 | //·Produce·an·array·that·contains·the·union:·each·distinct·element·from·all·of | ||
5 | //·the·passed-in·arrays. | ||
6 | var·union·=·restArguments(function(arrays)·{ | ||
7 | ····return·uniq(_flatten(arrays,·true,·true)); | ||
8 | }); | ||
9 | module.exports·=·uni | 8 | module.exports·=·uniqueId; |
Offset 1, 38 lines modified | Offset 1, 17 lines modified | ||
1 | var·isBoolean·=·require('./index79.js'); | ||
2 | var· | 1 | var·max·=·require('./index107.js'); |
3 | var·_getLength·=·require('./index16.js'); | 2 | var·_getLength·=·require('./index16.js'); |
4 | var· | 3 | var·pluck·=·require('./index121.js'); |
4 | //·Complement·of·zip.·Unzip·accepts·an·array·of·arrays·and·groups | ||
5 | //·each·array's·elements·on·shared·indices. | ||
6 | function·unzip(array)·{ | ||
7 | ····var·length·=·(array·&&·max(array,·_getLength).length)·||·0; | ||
8 | ····var·result·=·Array(length); | ||
9 | ····for·(var·index·=·0;·index·<·length;·index++)·{ | ||
10 | ········result[index]·=·pluck(array,·index); | ||
5 | //·Produce·a·duplicate-free·version·of·the·array.·If·the·array·has·already | ||
6 | //·been·sorted,·you·have·the·option·of·using·a·faster·algorithm. | ||
7 | //·The·faster·algorithm·will·not·work·with·an·iteratee·if·the·iteratee | ||
8 | //·is·not·a·one-to-one·function,·so·providing·an·iteratee·will·disable | ||
9 | //·the·faster·algorithm. | ||
10 | function·uniq(array,·isSorted,·iteratee,·context)·{ | ||
11 | ····if·(!isBoolean(isSorted))·{ | ||
12 | ········context·=·iteratee; | ||
13 | ········iteratee·=·isSorted; | ||
14 | ········isSorted·=·false; | ||
15 | ····} | ||
16 | ····if·(iteratee·!=·null)·iteratee·=·_cb(iteratee,·context); | ||
17 | ····var·result·=·[]; | ||
18 | ····var·seen·=·[]; | ||
19 | ····for·(var·i·=·0,·length·=·_getLength(array);·i·<·length;·i++)·{ | ||
20 | ········var·value·=·array[i], | ||
21 | ············computed·=·iteratee·?·iteratee(value,·i,·array)·:·value; | ||
22 | ········if·(isSorted·&&·!iteratee)·{ | ||
23 | ············if·(!i·||·seen·!==·computed)·result.push(value); | ||
24 | ············seen·=·computed; | ||
25 | ········}·else·if·(iteratee)·{ | ||
26 | ············if·(!contains(seen,·computed))·{ | ||
27 | ················seen.push(computed); | ||
28 | ················result.push(value); | ||
29 | ············} | ||
30 | ········}·else·if·(!contains(result,·value))·{ | ||
31 | ············result.push(value); | ||
32 | ········} | ||
33 | ····} | 11 | ····} |
34 | ····return·result; | 12 | ····return·result; |
35 | } | 13 | } |
36 | module.exports·=·uni | 14 | module.exports·=·unzip; |
Offset 1, 10 lines modified | Offset 1, 14 lines modified | ||
1 | var·keys·=·require('./index101.js'); | ||
1 | //·Generate·a·unique·integer·id·(unique·within·the·entire·client·session). | ||
2 | //·Useful·for·temporary·DOM·ids. | ||
3 | var·idCounter·=·0; | ||
4 | function·uniqueId(prefix)·{ | ||
5 | ····var·id·=·++idCounter·+·''; | ||
6 | · | 2 | //·Retrieve·the·values·of·an·object's·properties. |
3 | function·values(obj)·{ | ||
4 | ····var·_keys·=·keys(obj); | ||
5 | ····var·length·=·_keys.length; | ||
6 | ····var·values·=·Array(length); | ||
7 | ····for·(var·i·=·0;·i·<·length;·i++)·{ | ||
8 | ········values[i]·=·obj[_keys[i]]; | ||
9 | ····} | ||
10 | ····return·values; | ||
7 | } | 11 | } |
8 | module.exports·=· | 12 | module.exports·=·values; |
Offset 1, 17 lines modified | Offset 1, 10 lines modified | ||
1 | var·filter·=·require('./index54.js'); | ||
1 | var·ma | 2 | var·matcher·=·require('./index106.js'); |
2 | var·_getLength·=·require('./index16.js'); | ||
3 | var·pluck·=·require('./index123.js'); | ||
3 | //·Convenience·version·of·a·common·use·case·of·`_.filter`:·selecting·only | ||
4 | //·objects·containing·specific·`key:value`·pairs. | ||
5 | function·where(obj,·attrs)·{ | ||
6 | ····return·filter(obj,·matcher(attrs)); | ||
4 | //·Complement·of·zip.·Unzip·accepts·an·array·of·arrays·and·groups | ||
5 | //·each·array's·elements·on·shared·indices. | ||
6 | function·unzip(array)·{ | ||
7 | ····var·length·=·(array·&&·max(array,·_getLength).length)·||·0; | ||
8 | ····var·result·=·Array(length); | ||
9 | ····for·(var·index·=·0;·index·<·length;·index++)·{ | ||
10 | ········result[index]·=·pluck(array,·index); | ||
11 | ····} | ||
12 | ····return·result; | ||
13 | } | 7 | } |
14 | module.exports·=· | 8 | module.exports·=·where; |
Offset 1, 14 lines modified | Offset 1, 9 lines modified | ||
1 | var· | 1 | var·restArguments·=·require('./index131.js'); |
2 | var·difference·=·require('./index112.js'); | ||
3 | //·Return·a·version·of·the·array·that·does·not·contain·the·specified·value(s). | ||
4 | var·without·=·restArguments(function(array,·otherArrays)·{ | ||
5 | ····return·difference(array,·otherArrays); | ||
6 | }); | ||
2 | //·Retrieve·the·values·of·an·object's·properties. | ||
3 | function·values(obj)·{ | ||
4 | ····var·_keys·=·keys(obj); | ||
5 | ····var·length·=·_keys.length; | ||
6 | ····var·values·=·Array(length); | ||
7 | ····for·(var·i·=·0;·i·<·length;·i++)·{ | ||
8 | ········values[i]·=·obj[_keys[i]]; | ||
9 | ····} | ||
10 | ····return·values; | ||
11 | } | ||
12 | module.exports·=· | 7 | module.exports·=·without; |
Offset 1, 10 lines modified | Offset 1, 10 lines modified | ||
1 | var·filter·=·require('./index56.js'); | ||
2 | var· | 1 | var·partial·=·require('./index118.js'); |
3 | //·Convenience·version·of·a·common·use·case·of·`_.filter`:·selecting·only | ||
4 | //·objects·containing·specific·`key:value`·pairs. | ||
5 | function·where(obj,·attrs)·{ | ||
6 | 2 | //·Returns·the·first·function·passed·as·an·argument·to·the·second, | |
3 | //·allowing·you·to·adjust·arguments,·run·code·before·and·after,·and | ||
4 | //·conditionally·execute·the·original·function. | ||
5 | function·wrap(func,·wrapper)·{ | ||
6 | ····return·partial(wrapper,·func); | ||
7 | } | 7 | } |
8 | module.exports·=·w | 8 | module.exports·=·wrap; |
Offset 1, 9 lines modified | Offset 1, 8 lines modified | ||
1 | var·restArguments·=·require('./index13 | 1 | var·restArguments·=·require('./index131.js'); |
2 | var· | 2 | var·unzip·=·require('./index152.js'); |
3 | //·Zip·together·multiple·lists·into·a·single·array·--·elements·that·share | ||
4 | //·an·index·go·together. | ||
5 | var·zip·=·restArguments(unzip); | ||
3 | //·Return·a·version·of·the·array·that·does·not·contain·the·specified·value(s). | ||
4 | var·without·=·restArguments(function(array,·otherArrays)·{ | ||
5 | ····return·difference(array,·otherArrays); | ||
6 | }); | ||
7 | module.exports·=· | 6 | module.exports·=·zip; |
Offset 1, 10 lines modified | Offset 1, 4 lines modified | ||
1 | 1 | //·Predicate-generating·function.·Often·useful·outside·of·Underscore. | |
2 | function·noop()·{} | ||
2 | //·Returns·the·first·function·passed·as·an·argument·to·the·second, | ||
3 | //·allowing·you·to·adjust·arguments,·run·code·before·and·after,·and | ||
4 | //·conditionally·execute·the·original·function. | ||
5 | function·wrap(func,·wrapper)·{ | ||
6 | ····return·partial(wrapper,·func); | ||
7 | } | ||
8 | module.exports·=· | 3 | module.exports·=·noop; |
Offset 1, 29 lines modified | Offset 1, 23 lines modified | ||
1 | var·isArray·=·require('./index75.js'); | ||
2 | var·_setup·=·require('./index25.js'); | ||
3 | var·isString·=·require('./index94.js'); | ||
1 | var·_isArrayLike·=·require('./index20.js'); | 4 | var·_isArrayLike·=·require('./index20.js'); |
5 | var·map·=·require('./index104.js'); | ||
6 | var·identity·=·require('./index65.js'); | ||
2 | var·values·=·require('./index15 | 7 | var·values·=·require('./index153.js'); |
3 | var·_getLength·=·require('./index16.js'); | ||
4 | var·random·=·require('./index126.js'); | ||
5 | var·toArray·=·require('./index146.js'); | ||
8 | //·Safely·create·a·real,·live·array·from·anything·iterable. | ||
9 | var·reStrSymbol·=·/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g; | ||
10 | function·toArray(obj)·{ | ||
11 | ····if·(!obj)·return·[]; | ||
12 | ····if·(isArray(obj))·return·_setup.slice.call(obj); | ||
13 | ····if·(isString(obj))·{ | ||
14 | ········//·Keep·surrogate·pair·characters·together. | ||
15 | ········return·obj.match(reStrSymbol); | ||
6 | //·Sample·**n**·random·values·from·a·collection·using·the·modern·version·of·the | ||
7 | //·[Fisher-Yates·shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle). | ||
8 | //·If·**n**·is·not·specified,·returns·a·single·random·element. | ||
9 | //·The·internal·`guard`·argument·allows·it·to·work·with·`_.map`. | ||
10 | function·sample(obj,·n,·guard)·{ | ||
11 | ····if·(n·==·null·||·guard)·{ | ||
12 | ········if·(!_isArrayLike(obj))·obj·=·values(obj); | ||
13 | ········return·obj[random(obj.length·-·1)]; | ||
14 | ····} | ||
15 | ····var·sample·=·toArray(obj); | ||
16 | ····var·length·=·_getLength(sample); | ||
17 | ····n·=·Math.max(Math.min(n,·length),·0); | ||
18 | ····var·last·=·length·-·1; | ||
19 | ····for·(var·index·=·0;·index·<·n;·index++)·{ | ||
20 | ········var·rand·=·random(index,·last); | ||
21 | ········var·temp·=·sample[index]; | ||
22 | ········sample[index]·=·sample[rand]; | ||
23 | ········sample[rand]·=·temp; | ||
24 | ····} | 16 | ····} |
25 | ····return· | 17 | ····if·(_isArrayLike(obj))·return·map(obj,·identity); |
18 | ····return·values(obj); | ||
26 | } | 19 | } |
27 | module.exports·=· | 20 | module.exports·=·toArray; |
Offset 1, 8 lines modified | Offset 1, 10 lines modified | ||
1 | var·restArguments·=·require('./index132.js'); | ||
2 | var· | 1 | var·_setup·=·require('./index25.js'); |
3 | //·Zip·together·multiple·lists·into·a·single·array·--·elements·that·share | ||
4 | //·an·index·go·together. | ||
5 | v | 2 | //·Returns·everything·but·the·first·entry·of·the·`array`.·Especially·useful·on |
3 | //·the·`arguments`·object.·Passing·an·**n**·will·return·the·rest·N·values·in·the | ||
4 | //·`array`. | ||
5 | function·rest(array,·n,·guard)·{ | ||
6 | ····return·_setup.slice.call(array,·n·==·null·||·guard·?·1·:·n); | ||
7 | } | ||
6 | module.exports·=· | 8 | module.exports·=·rest; |
Offset 1, 9 lines modified | Offset 1, 9 lines modified | ||
1 | var·_cb·=·require('./index | 1 | var·_cb·=·require('./index2.js'); |
2 | var·each·=·require('./index | 2 | var·each·=·require('./index48.js'); |
3 | //·An·internal·function·used·for·aggregate·"group·by"·operations. | 3 | //·An·internal·function·used·for·aggregate·"group·by"·operations. |
4 | function·group(behavior,·partition)·{ | 4 | function·group(behavior,·partition)·{ |
5 | ····return·function(obj,·iteratee,·context)·{ | 5 | ····return·function(obj,·iteratee,·context)·{ |
6 | ········var·result·=·partition·?·[ | 6 | ········var·result·=·partition·?·[ |
7 | ············[], | 7 | ············[], |
8 | ············[] | 8 | ············[] |
Offset 1, 5 lines modified | Offset 1, 5 lines modified | ||
1 | var·_tagTester·=·require('./index2 | 1 | var·_tagTester·=·require('./index28.js'); |
2 | var·hasObjectTag·=·_tagTester('Object'); | 2 | var·hasObjectTag·=·_tagTester('Object'); |
3 | module.exports·=·hasObjectTag; | 3 | module.exports·=·hasObjectTag; |
Offset 1, 19 lines modified | Offset 1, 12 lines modified | ||
1 | var·identity·=·require('./index68.js'); | ||
2 | var·isFunction·=·require('./index88.js'); | ||
3 | var·isObject·=·require('./index94.js'); | ||
4 | var· | 1 | var·underscore·=·require('./index147.js'); |
2 | var·_baseIteratee·=·require('./index119.js'); | ||
5 | var· | 3 | var·iteratee·=·require('./index100.js'); |
6 | var·property·=·require('./index124.js'); | ||
7 | var·_optimizeCb·=·require('./index24.js'); | ||
4 | //·The·function·we·call·internally·to·generate·a·callback.·It·invokes | ||
5 | //·`_.iteratee`·if·overridden,·otherwise·`baseIteratee`. | ||
8 | //·An·internal·function·to·generate·callbacks·that·can·be·applied·to·each | ||
9 | //·element·in·a·collection,·returning·the·desired·result·—·either·`_.identity`, | ||
10 | //·an·arbitrary·callback,·a·property·matcher,·or·a·property·accessor. | ||
11 | function· | 6 | function·cb(value,·context,·argCount)·{ |
7 | ····if·(underscore.iteratee·!==·iteratee)·return·underscore.iteratee(value,·context); | ||
8 | ····return·_baseIteratee(value,·context,·argCount); | ||
12 | ····if·(value·==·null)·return·identity; | ||
13 | ····if·(isFunction(value))·return·_optimizeCb(value,·context,·argCount); | ||
14 | ····if·(isObject(value)·&&·!isArray(value))·return·matcher(value); | ||
15 | ····return·property(value); | ||
16 | } | 9 | } |
17 | module.exports·=· | 10 | module.exports·=·cb; |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | var·_createSizePropertyCheck·=·require('./index | 1 | var·_createSizePropertyCheck·=·require('./index10.js'); |
2 | var·_getLength·=·require('./index16.js'); | 2 | var·_getLength·=·require('./index16.js'); |
3 | //·Internal·helper·for·collection·methods·to·determine·whether·a·collection | 3 | //·Internal·helper·for·collection·methods·to·determine·whether·a·collection |
4 | //·should·be·iterated·as·an·array·or·as·an·object. | 4 | //·should·be·iterated·as·an·array·or·as·an·object. |
5 | //·Related:·https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength | 5 | //·Related:·https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength |
6 | //·Avoids·a·very·nasty·iOS·8·JIT·bug·on·ARM-64.·#2094 | 6 | //·Avoids·a·very·nasty·iOS·8·JIT·bug·on·ARM-64.·#2094 |
7 | var·isArrayLike·=·_createSizePropertyCheck(_getLength); | 7 | var·isArrayLike·=·_createSizePropertyCheck(_getLength); |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | var·_createSizePropertyCheck·=·require('./index | 1 | var·_createSizePropertyCheck·=·require('./index10.js'); |
2 | var·_getByteLength·=·require('./index15.js'); | 2 | var·_getByteLength·=·require('./index15.js'); |
3 | //·Internal·helper·to·determine·whether·we·should·spend·extensive·checks·against | 3 | //·Internal·helper·to·determine·whether·we·should·spend·extensive·checks·against |
4 | //·`ArrayBuffer`·et·al. | 4 | //·`ArrayBuffer`·et·al. |
5 | var·isBufferLike·=·_createSizePropertyCheck(_getByteLength); | 5 | var·isBufferLike·=·_createSizePropertyCheck(_getByteLength); |
6 | module.exports·=·isBufferLike; | 6 | module.exports·=·isBufferLike; |
Offset 1, 10 lines modified | Offset 1, 10 lines modified | ||
1 | var·_getLength·=·require('./index16.js'); | 1 | var·_getLength·=·require('./index16.js'); |
2 | var·isFunction·=·require('./index8 | 2 | var·isFunction·=·require('./index85.js'); |
3 | var·allKeys·=·require('./index | 3 | var·allKeys·=·require('./index49.js'); |
4 | //·Since·the·regular·`Object.prototype.toString`·type·tests·don't·work·for | 4 | //·Since·the·regular·`Object.prototype.toString`·type·tests·don't·work·for |
5 | //·some·types·in·IE·11,·we·use·a·fingerprinting·heuristic·instead,·based | 5 | //·some·types·in·IE·11,·we·use·a·fingerprinting·heuristic·instead,·based |
6 | //·on·the·methods.·It's·not·great,·but·it's·the·best·we·got. | 6 | //·on·the·methods.·It's·not·great,·but·it's·the·best·we·got. |
7 | //·The·fingerprint·method·lists·are·defined·below. | 7 | //·The·fingerprint·method·lists·are·defined·below. |
8 | function·ie11fingerprint(methods)·{ | 8 | function·ie11fingerprint(methods)·{ |
9 | ····var·length·=·_getLength(methods); | 9 | ····var·length·=·_getLength(methods); |
Offset 1, 13 lines modified | Offset 1, 11 lines modified | ||
1 | var·_ | 1 | var·_setup·=·require('./index25.js'); |
2 | //·Internal·function·for·creating·a·`toString`-based·type·tester. | ||
3 | function·tagTester(name)·{ | ||
4 | ····var·tag·=·'[object·'·+·name·+·']'; | ||
5 | ····return·function(obj)·{ | ||
6 | ········return·_setup.toString.call(obj)·===·tag; | ||
2 | //·Internal·function·to·wrap·or·shallow-copy·an·ArrayBuffer, | ||
3 | //·typed·array·or·DataView·to·a·new·view,·reusing·the·buffer. | ||
4 | function·toBufferView(bufferSource)·{ | ||
5 | ····return·new·Uint8Array( | ||
6 | ········bufferSource.buffer·||·bufferSource, | ||
7 | ········bufferSource.byteOffset·||·0, | ||
8 | ········_getByteLength(bufferSource) | ||
9 | ···· | 7 | ····}; |
10 | } | 8 | } |
11 | module.exports·=·t | 9 | module.exports·=·tagTester; |
Offset 1, 11 lines modified | Offset 1, 13 lines modified | ||
1 | var·_ | 1 | var·_getByteLength·=·require('./index15.js'); |
2 | //·Internal·function·for·creating·a·`toString`-based·type·tester. | ||
3 | function·tagTester(name)·{ | ||
4 | ····var·tag·=·'[object·'·+·name·+·']'; | ||
5 | ····return·function(obj)·{ | ||
6 | 2 | //·Internal·function·to·wrap·or·shallow-copy·an·ArrayBuffer, | |
3 | //·typed·array·or·DataView·to·a·new·view,·reusing·the·buffer. | ||
4 | function·toBufferView(bufferSource)·{ | ||
5 | ····return·new·Uint8Array( | ||
6 | ········bufferSource.buffer·||·bufferSource, | ||
7 | ········bufferSource.byteOffset·||·0, | ||
8 | ········_getByteLength(bufferSource) | ||
7 | ···· | 9 | ····); |
8 | } | 10 | } |
9 | module.exports·=·t | 11 | module.exports·=·toBufferView; |
Offset 1, 12 lines modified | Offset 1, 44 lines modified | ||
1 | var·underscore·=·require('./index150.js'); | ||
2 | var·_ | 1 | var·_setup·=·require('./index25.js'); |
2 | var·isFunction·=·require('./index85.js'); | ||
3 | var· | 3 | var·_has·=·require('./index18.js'); |
4 | //·The·function·we·call·internally·to·generate·a·callback.·It·invokes | ||
5 | //·`_.iteratee`·if·overridden,·otherwise·`baseIteratee`. | ||
6 | function·cb(value,·context,·argCount)·{ | ||
7 | ····if·(underscore.iteratee·!==·iteratee)·return·underscore.iteratee(value,·context); | ||
8 | 4 | //·Internal·helper·to·create·a·simple·lookup·structure. | |
5 | //·`collectNonEnumProps`·used·to·depend·on·`_.contains`,·but·this·led·to | ||
6 | //·circular·imports.·`emulatedSet`·is·a·one-off·solution·that·only·works·for | ||
7 | //·arrays·of·strings. | ||
8 | function·emulatedSet(keys)·{ | ||
9 | ····var·hash·=·{}; | ||
10 | ····for·(var·l·=·keys.length,·i·=·0;·i·<·l;·++i)·hash[keys[i]]·=·true; | ||
11 | ····return·{ | ||
12 | ········contains:·function(key)·{ | ||
13 | ············return·hash[key]·===·true; | ||
14 | ········}, | ||
15 | ········push:·function(key)·{ | ||
16 | ············hash[key]·=·true; | ||
17 | ············return·keys.push(key); | ||
18 | ········} | ||
19 | ····}; | ||
9 | } | 20 | } |
10 | 21 | //·Internal·helper.·Checks·`keys`·for·the·presence·of·keys·in·IE·<·9·that·won't | |
22 | //·be·iterated·by·`for·key·in·...`·and·thus·missed.·Extends·`keys`·in·place·if | ||
23 | //·needed. | ||
24 | function·collectNonEnumProps(obj,·keys)·{ | ||
25 | ····keys·=·emulatedSet(keys); | ||
26 | ····var·nonEnumIdx·=·_setup.nonEnumerableProps.length; | ||
27 | ····var·constructor·=·obj.constructor; | ||
28 | ····var·proto·=·(isFunction(constructor)·&&·constructor.prototype)·||·_setup.ObjProto; | ||
29 | ····//·Constructor·is·a·special·case. | ||
30 | ····var·prop·=·'constructor'; | ||
31 | ····if·(_has(obj,·prop)·&&·!keys.contains(prop))·keys.push(prop); | ||
32 | ····while·(nonEnumIdx--)·{ | ||
33 | ········prop·=·_setup.nonEnumerableProps[nonEnumIdx]; | ||
34 | ········if·(prop·in·obj·&&·obj[prop]·!==·proto[prop]·&&·!keys.contains(prop))·{ | ||
35 | ············keys.push(prop); | ||
36 | ········} | ||
37 | ····} | ||
38 | } | ||
39 | module.exports·=·collectNonEnumProps; |
Offset 1, 9 lines modified | Offset 1, 9 lines modified | ||
1 | var·underscore·=·require('./index1 | 1 | var·underscore·=·require('./index147.js'); |
2 | require('./index14 | 2 | require('./index145.js'); |
3 | //·Internal·wrapper·for·`_.toPath`·to·enable·minification. | 3 | //·Internal·wrapper·for·`_.toPath`·to·enable·minification. |
4 | //·Similar·to·`cb`·for·`_.iteratee`. | 4 | //·Similar·to·`cb`·for·`_.iteratee`. |
5 | function·toPath(path)·{ | 5 | function·toPath(path)·{ |
6 | ····return·underscore.toPath(path); | 6 | ····return·underscore.toPath(path); |
7 | } | 7 | } |
Offset 1, 7 lines modified | Offset 1, 14 lines modified | ||
1 | var·invert·=·require('./index75.js'); | ||
2 | 1 | //·Returns·a·function·that·will·only·be·executed·up·to·(but·not·including)·the | |
2 | //·Nth·call. | ||
3 | function·before(times,·func)·{ | ||
4 | ····var·memo; | ||
5 | ····return·function()·{ | ||
6 | ········if·(--times·>·0)·{ | ||
7 | ············memo·=·func.apply(this,·arguments); | ||
8 | ········} | ||
9 | ········if·(times·<=·1)·func·=·null; | ||
10 | ········return·memo; | ||
11 | ····}; | ||
12 | } | ||
3 | //·Internal·list·of·HTML·entities·for·unescaping. | ||
4 | var·unescapeMap·=·invert(_escapeMap); | ||
5 | module.exports·=· | 13 | module.exports·=·before; |
Offset 1, 10 lines modified | Offset 1, 15 lines modified | ||
1 | var·restArguments·=·require('./index131.js'); | ||
2 | var·isFunction·=·require('./index85.js'); | ||
3 | var·_executeBound·=·require('./index13.js'); | ||
1 | //·Returns·a·function·that·will·only·be·executed·on·and·after·the·Nth·call. | ||
2 | function·after(times,·func)·{ | ||
3 | ····return·function()·{ | ||
4 | ········if·(--times·<·1)·{ | ||
5 | ············return·func.apply(this,·arguments); | ||
6 | ········} | ||
7 | ····}; | ||
8 | } | ||
4 | //·Create·a·function·bound·to·a·given·object·(assigning·`this`,·and·arguments, | ||
5 | //·optionally). | ||
6 | var·bind·=·restArguments(function(func,·context,·args)·{ | ||
7 | ····if·(!isFunction(func))·throw·new·TypeError('Bind·must·be·called·on·a·function'); | ||
8 | ····var·bound·=·restArguments(function(callArgs)·{ | ||
9 | ········return·_executeBound(func,·bound,·context,·this,·args.concat(callArgs)); | ||
10 | ····}); | ||
11 | ····return·bound; | ||
12 | }); | ||
9 | module.exports·=· | 13 | module.exports·=·bind; |
Offset 1, 15 lines modified | Offset 1, 19 lines modified | ||
1 | var·restArguments·=·require('./index131.js'); | ||
1 | var· | 2 | var·_flatten·=·require('./index14.js'); |
2 | var· | 3 | var·bind·=·require('./index32.js'); |
3 | var·_collectNonEnumProps·=·require('./index5.js'); | ||
4 | //·Retrieve·all·the·enumerable·property·names·of·an·object. | ||
5 | function·allKeys(obj)·{ | ||
6 | ····if·(!isObject(obj))·return·[]; | ||
7 | ····var·keys·=·[]; | ||
8 | ····for·(var·key·in·obj)·keys.push(key); | ||
9 | ····//·Ahem,·IE·<·9. | ||
10 | ···· | 4 | //·Bind·a·number·of·an·object's·methods·to·that·object.·Remaining·arguments |
5 | //·are·the·method·names·to·be·bound.·Useful·for·ensuring·that·all·callbacks | ||
6 | //·defined·on·an·object·belong·to·it. | ||
7 | var·bindAll·=·restArguments(function(obj,·keys)·{ | ||
8 | ····keys·=·_flatten(keys,·false,·false); | ||
9 | ····var·index·=·keys.length; | ||
10 | ····if·(index·<·1)·throw·new·Error('bindAll·must·be·passed·function·names'); | ||
11 | ····while·(index--)·{ | ||
12 | ········var·key·=·keys[index]; | ||
13 | ········obj[key]·=·bind(obj[key],·obj); | ||
14 | ····} | ||
11 | ····return· | 15 | ····return·obj; |
12 | } | 16 | }); |
13 | module.exports·=· | 17 | module.exports·=·bindAll; |
Offset 1, 14 lines modified | Offset 1, 10 lines modified | ||
1 | var·underscore·=·require('./index147.js'); | ||
2 | //·Start·chaining·a·wrapped·Underscore·object. | ||
3 | function·chain(obj)·{ | ||
4 | ····var·instance·=·underscore(obj); | ||
5 | ····instance._chain·=·true; | ||
6 | ····return·instance; | ||
1 | //·Returns·a·function·that·will·only·be·executed·up·to·(but·not·including)·the | ||
2 | //·Nth·call. | ||
3 | function·before(times,·func)·{ | ||
4 | ····var·memo; | ||
5 | ····return·function()·{ | ||
6 | ········if·(--times·>·0)·{ | ||
7 | ············memo·=·func.apply(this,·arguments); | ||
8 | ········} | ||
9 | ········if·(times·<=·1)·func·=·null; | ||
10 | ········return·memo; | ||
11 | ····}; | ||
12 | } | 7 | } |
13 | module.exports·=· | 8 | module.exports·=·chain; |
Offset 1, 15 lines modified | Offset 1, 16 lines modified | ||
1 | var·restArguments·=·require('./index132.js'); | ||
2 | var·isFunction·=·require('./index88.js'); | ||
3 | var·_ | 1 | var·_setup·=·require('./index25.js'); |
4 | //·Create·a·function·bound·to·a·given·object·(assigning·`this`,·and·arguments, | ||
5 | //·optionally). | ||
6 | var·bind·=·restArguments(function(func,·context,·args)·{ | ||
7 | ····if·(!isFunction(func))·throw·new·TypeError('Bind·must·be·called·on·a·function'); | ||
8 | ····var·bound·=·restArguments(function(callArgs)·{ | ||
9 | · | 2 | //·Chunk·a·single·array·into·multiple·arrays,·each·containing·`count`·or·fewer |
3 | //·items. | ||
4 | function·chunk(array,·count)·{ | ||
5 | ····if·(count·==·null·||·count·<·1)·return·[]; | ||
6 | ····var·result·=·[]; | ||
7 | ····var·i·=·0, | ||
8 | ········length·=·array.length; | ||
9 | ····while·(i·<·length)·{ | ||
10 | ········result.push(_setup.slice.call(array,·i,·i·+=·count)); | ||
10 | ····} | 11 | ····} |
11 | ····return·bound; | ||
12 | 12 | ····return·result; | |
13 | } | ||
13 | module.exports·=· | 14 | module.exports·=·chunk; |
Offset 1, 19 lines modified | Offset 1, 11 lines modified | ||
1 | var·restArguments·=·require('./index132.js'); | ||
2 | var· | 1 | var·isObject·=·require('./index91.js'); |
2 | var·isArray·=·require('./index75.js'); | ||
3 | var· | 3 | var·extend·=·require('./index52.js'); |
4 | //·Create·a·(shallow-cloned)·duplicate·of·an·object. | ||
5 | function·clone(obj)·{ | ||
6 | ····if·(!isObject(obj))·return·obj; | ||
7 | ····return·isArray(obj)·?·obj.slice()·:·extend({},·obj); | ||
8 | } | ||
4 | //·Bind·a·number·of·an·object's·methods·to·that·object.·Remaining·arguments | ||
5 | //·are·the·method·names·to·be·bound.·Useful·for·ensuring·that·all·callbacks | ||
6 | //·defined·on·an·object·belong·to·it. | ||
7 | var·bindAll·=·restArguments(function(obj,·keys)·{ | ||
8 | ····keys·=·_flatten(keys,·false,·false); | ||
9 | ····var·index·=·keys.length; | ||
10 | ····if·(index·<·1)·throw·new·Error('bindAll·must·be·passed·function·names'); | ||
11 | ····while·(index--)·{ | ||
12 | ········var·key·=·keys[index]; | ||
13 | ········obj[key]·=·bind(obj[key],·obj); | ||
14 | ····} | ||
15 | ····return·obj; | ||
16 | }); | ||
17 | module.exports·=· | 9 | module.exports·=·clone; |
Offset 1, 10 lines modified | Offset 1, 8 lines modified | ||
1 | var· | 1 | var·filter·=·require('./index54.js'); |
2 | //·Trim·out·all·falsy·values·from·an·array. | ||
3 | function·compact(array)·{ | ||
4 | ····return·filter(array,·Boolean); | ||
2 | //·Start·chaining·a·wrapped·Underscore·object. | ||
3 | function·chain(obj)·{ | ||
4 | ····var·instance·=·underscore(obj); | ||
5 | ····instance._chain·=·true; | ||
6 | ····return·instance; | ||
7 | } | 5 | } |
8 | module.exports·=·c | 6 | module.exports·=·compact; |
Offset 1, 16 lines modified | Offset 1, 14 lines modified | ||
1 | //·Returns·a·function·that·is·the·composition·of·a·list·of·functions,·each | ||
2 | //·consuming·the·return·value·of·the·function·that·follows. | ||
3 | function·compose()·{ | ||
4 | ····var·args·=·arguments; | ||
5 | ····var·start·=·args.length·-·1; | ||
6 | ····return·function()·{ | ||
7 | ········var·i·=·start; | ||
8 | ········var·result·=·args[start].apply(this,·arguments); | ||
9 | ········while·(i--)·result·=·args[i].call(this,·result); | ||
10 | ········return·result; | ||
1 | var·_setup·=·require('./index25.js'); | ||
2 | //·Chunk·a·single·array·into·multiple·arrays,·each·containing·`count`·or·fewer | ||
3 | //·items. | ||
4 | function·chunk(array,·count)·{ | ||
5 | ····if·(count·==·null·||·count·<·1)·return·[]; | ||
6 | ····var·result·=·[]; | ||
7 | ····var·i·=·0, | ||
8 | ········length·=·array.length; | ||
9 | ····while·(i·<·length)·{ | ||
10 | ········result.push(_setup.slice.call(array,·i,·i·+=·count)); | ||
11 | ····} | 11 | ····}; |
12 | ····return·result; | ||
13 | } | 12 | } |
14 | module.exports·=·c | 13 | module.exports·=·compose; |
Offset 1, 11 lines modified | Offset 1, 8 lines modified | ||
1 | //·Predicate-generating·function.·Often·useful·outside·of·Underscore. | ||
2 | function·constant(value)·{ | ||
3 | ····return·function()·{ | ||
4 | ········return·value; | ||
5 | ····}; | ||
1 | var·isObject·=·require('./index94.js'); | ||
2 | var·isArray·=·require('./index78.js'); | ||
3 | var·extend·=·require('./index54.js'); | ||
4 | //·Create·a·(shallow-cloned)·duplicate·of·an·object. | ||
5 | function·clone(obj)·{ | ||
6 | ····if·(!isObject(obj))·return·obj; | ||
7 | ····return·isArray(obj)·?·obj.slice()·:·extend({},·obj); | ||
8 | } | 6 | } |
9 | module.exports·=·c | 7 | module.exports·=·constant; |
Offset 1, 8 lines modified | Offset 1, 20 lines modified | ||
1 | var·underscore·=·require('./index150.js'); | ||
2 | //·Helper·function·to·continue·chaining·intermediate·results. | ||
3 | function·chainResult(instance,·obj)·{ | ||
4 | 1 | //·An·internal·function·for·creating·assigner·functions. | |
2 | function·createAssigner(keysFunc,·defaults)·{ | ||
3 | ····return·function(obj)·{ | ||
4 | ········var·length·=·arguments.length; | ||
5 | ········if·(defaults)·obj·=·Object(obj); | ||
6 | ········if·(length·<·2·||·obj·==·null)·return·obj; | ||
7 | ········for·(var·index·=·1;·index·<·length;·index++)·{ | ||
8 | ············var·source·=·arguments[index], | ||
9 | ················keys·=·keysFunc(source), | ||
10 | ················l·=·keys.length; | ||
11 | ············for·(var·i·=·0;·i·<·l;·i++)·{ | ||
12 | ················var·key·=·keys[i]; | ||
13 | ················if·(!defaults·||·obj[key]·===·void·0)·obj[key]·=·source[key]; | ||
14 | ············} | ||
15 | ········} | ||
16 | ········return·obj; | ||
17 | ····}; | ||
5 | } | 18 | } |
6 | module.exports·=·c | 19 | module.exports·=·createAssigner; |
Offset 1, 8 lines modified | Offset 1, 12 lines modified | ||
1 | var·_isArrayLike·=·require('./index20.js'); | ||
1 | var· | 2 | var·values·=·require('./index153.js'); |
3 | var·indexOf·=·require('./index69.js'); | ||
2 | //·Trim·out·all·falsy·values·from·an·array. | ||
3 | function·compact(array)·{ | ||
4 | 4 | //·Determine·if·the·array·or·object·contains·a·given·item·(using·`===`). | |
5 | function·contains(obj,·item,·fromIndex,·guard)·{ | ||
6 | ····if·(!_isArrayLike(obj))·obj·=·values(obj); | ||
7 | ····if·(typeof·fromIndex·!=·'number'·||·guard)·fromIndex·=·0; | ||
8 | ····return·indexOf(obj,·item,·fromIndex)·>=·0; | ||
5 | } | 9 | } |
6 | module.exports·=·co | 10 | module.exports·=·contains; |
Offset 1, 14 lines modified | Offset 1, 12 lines modified | ||
1 | var·_group·=·require('./index17.js'); | ||
2 | var·_has·=·require('./index18.js'); | ||
1 | //·Returns·a·function·that·is·the·composition·of·a·list·of·functions,·each | ||
2 | //·consuming·the·return·value·of·the·function·that·follows. | ||
3 | function·compose()·{ | ||
4 | ····var·args·=·arguments; | ||
5 | ····var·start·=·args.length·-·1; | ||
6 | ····return·function()·{ | ||
7 | ········var·i·=·start; | ||
8 | ········var·result·=·args[start].apply(this,·arguments); | ||
9 | ········while·(i--)·result·=·args[i].call(this,·result); | ||
10 | ········return·result; | ||
11 | ····}; | ||
12 | } | ||
3 | //·Counts·instances·of·an·object·that·group·by·a·certain·criterion.·Pass | ||
4 | //·either·a·string·attribute·to·count·by,·or·a·function·that·returns·the | ||
5 | //·criterion. | ||
6 | var·countBy·=·_group(function(result,·value,·key)·{ | ||
7 | ····if·(_has(result,·key))·result[key]++; | ||
8 | ····else·result[key]·=·1; | ||
9 | }); | ||
13 | module.exports·=·co | 10 | module.exports·=·countBy; |
Offset 1, 8 lines modified | Offset 1, 13 lines modified | ||
1 | //·Predicate-generating·function.·Often·useful·outside·of·Underscore. | ||
2 | function·constant(value)·{ | ||
3 | ····return·function()·{ | ||
4 | ········return·value; | ||
5 | ··· | 1 | var·_baseCreate·=·require('./index.js'); |
2 | var·extendOwn·=·require('./index53.js'); | ||
3 | //·Creates·an·object·that·inherits·from·the·given·prototype·object. | ||
4 | //·If·additional·properties·are·provided·then·they·will·be·added·to·the | ||
5 | //·created·object. | ||
6 | function·create(prototype,·props)·{ | ||
7 | ····var·result·=·_baseCreate(prototype); | ||
8 | ····if·(props)·extendOwn(result,·props); | ||
9 | ····return·result; | ||
6 | } | 10 | } |
7 | module.exports·=·c | 11 | module.exports·=·create; |
Offset 1, 12 lines modified | Offset 1, 42 lines modified | ||
1 | var·_isArrayLike·=·require('./index20.js'); | ||
2 | var· | 1 | var·restArguments·=·require('./index131.js'); |
3 | var· | 2 | var·now·=·require('./index113.js'); |
4 | //·Determine·if·the·array·or·object·contains·a·given·item·(using·`===`). | ||
5 | function·contains(obj,·item,·fromIndex,·guard)·{ | ||
6 | ····if·(!_isArrayLike(obj))·obj·=·values(obj); | ||
7 | ····if·(typeof·fromIndex·!=·'number'·||·guard)·fromIndex·=·0; | ||
8 | ·· | 3 | //·When·a·sequence·of·calls·of·the·returned·function·ends,·the·argument |
4 | //·function·is·triggered.·The·end·of·a·sequence·is·defined·by·the·`wait` | ||
5 | //·parameter.·If·`immediate`·is·passed,·the·argument·function·will·be | ||
6 | //·triggered·at·the·beginning·of·the·sequence·instead·of·at·the·end. | ||
7 | function·debounce(func,·wait,·immediate)·{ | ||
8 | ····var·timeout,·previous,·args,·result,·context; | ||
9 | ····var·later·=·function()·{ | ||
10 | ········var·passed·=·now()·-·previous; | ||
11 | ········if·(wait·>·passed)·{ | ||
12 | ············timeout·=·setTimeout(later,·wait·-·passed); | ||
13 | ········}·else·{ | ||
14 | ············timeout·=·null; | ||
15 | ············if·(!immediate)·result·=·func.apply(context,·args); | ||
16 | ············//·This·check·is·needed·because·`func`·can·recursively·invoke·`debounced`. | ||
17 | ············if·(!timeout)·args·=·context·=·null; | ||
18 | ········} | ||
19 | ····}; | ||
20 | ····var·debounced·=·restArguments(function(_args)·{ | ||
21 | ········context·=·this; | ||
22 | ········args·=·_args; | ||
23 | ········previous·=·now(); | ||
24 | ········if·(!timeout)·{ | ||
25 | ············timeout·=·setTimeout(later,·wait); | ||
26 | ············if·(immediate)·result·=·func.apply(context,·args); | ||
27 | ········} | ||
28 | ········return·result; | ||
29 | ····}); | ||
30 | ····debounced.cancel·=·function()·{ | ||
31 | ········clearTimeout(timeout); | ||
32 | ········timeout·=·args·=·context·=·null; | ||
33 | ····}; | ||
34 | ····return·debounced; | ||
9 | } | 35 | } |
10 | module.exports·=· | 36 | module.exports·=·debounce; |
Offset 1, 12 lines modified | Offset 1, 7 lines modified | ||
1 | var·_ | 1 | var·_createAssigner·=·require('./index4.js'); |
2 | var· | 2 | var·allKeys·=·require('./index49.js'); |
3 | //·Fill·in·a·given·object·with·default·properties. | ||
4 | var·defaults·=·_createAssigner(allKeys,·true); | ||
3 | //·Counts·instances·of·an·object·that·group·by·a·certain·criterion.·Pass | ||
4 | //·either·a·string·attribute·to·count·by,·or·a·function·that·returns·the | ||
5 | //·criterion. | ||
6 | var·countBy·=·_group(function(result,·value,·key)·{ | ||
7 | ····if·(_has(result,·key))·result[key]++; | ||
8 | ····else·result[key]·=·1; | ||
9 | }); | ||
10 | module.exports·=· | 5 | module.exports·=·defaults; |
Offset 1, 13 lines modified | Offset 1, 9 lines modified | ||
1 | var· | 1 | var·partial·=·require('./index118.js'); |
2 | var· | 2 | var·delay·=·require('./index46.js'); |
3 | var·underscore·=·require('./index147.js'); | ||
4 | //·Defers·a·function,·scheduling·it·to·run·after·the·current·call·stack·has | ||
5 | //·cleared. | ||
6 | var·defer·=·partial(delay,·underscore,·1); | ||
3 | //·Creates·an·object·that·inherits·from·the·given·prototype·object. | ||
4 | //·If·additional·properties·are·provided·then·they·will·be·added·to·the | ||
5 | //·created·object. | ||
6 | function·create(prototype,·props)·{ | ||
7 | ····var·result·=·_baseCreate(prototype); | ||
8 | ····if·(props)·extendOwn(result,·props); | ||
9 | ····return·result; | ||
10 | } | ||
11 | module.exports·=· | 7 | module.exports·=·defer; |
Offset 1, 42 lines modified | Offset 1, 11 lines modified | ||
1 | var·restArguments·=·require('./index13 | 1 | var·restArguments·=·require('./index131.js'); |
2 | var·now·=·require('./index133.js'); | ||
3 | //·When·a·sequence·of·calls·of·the·returned·function·ends,·the·argument | ||
4 | //·function·is·triggered.·The·end·of·a·sequence·is·defined·by·the·`wait` | ||
5 | //·parameter.·If·`immediate`·is·passed,·the·argument·function·will·be | ||
6 | //·triggered·at·the·beginning·of·the·sequence·instead·of·at·the·end. | ||
7 | function·debounce(func,·wait,·immediate)·{ | ||
8 | ·· | 2 | //·Delays·a·function·for·the·given·number·of·milliseconds,·and·then·calls |
3 | //·it·with·the·arguments·supplied. | ||
4 | var·delay·=·restArguments(function(func,·wait,·args)·{ | ||
5 | ····return·setTimeout(function()·{ | ||
6 | ········return·func.apply(null,·args); | ||
7 | ····},·wait); | ||
8 | }); | ||
9 | ····var·later·=·function()·{ | ||
10 | ········var·passed·=·now()·-·previous; | ||
11 | ········if·(wait·>·passed)·{ | ||
12 | ············timeout·=·setTimeout(later,·wait·-·passed); | ||
13 | ········}·else·{ | ||
14 | ············timeout·=·null; | ||
15 | ············if·(!immediate)·result·=·func.apply(context,·args); | ||
16 | ············//·This·check·is·needed·because·`func`·can·recursively·invoke·`debounced`. | ||
17 | ············if·(!timeout)·args·=·context·=·null; | ||
18 | ········} | ||
19 | ····}; | ||
20 | ····var·debounced·=·restArguments(function(_args)·{ | ||
21 | ········context·=·this; | ||
22 | ········args·=·_args; | ||
23 | ········previous·=·now(); | ||
24 | ········if·(!timeout)·{ | ||
25 | ············timeout·=·setTimeout(later,·wait); | ||
26 | ············if·(immediate)·result·=·func.apply(context,·args); | ||
27 | ········} | ||
28 | ········return·result; | ||
29 | ····}); | ||
30 | ····debounced.cancel·=·function()·{ | ||
31 | ········clearTimeout(timeout); | ||
32 | ········timeout·=·args·=·context·=·null; | ||
33 | ····}; | ||
34 | ····return·debounced; | ||
35 | } | ||
36 | module.exports·=·de | 9 | module.exports·=·delay; |
Offset 1, 7 lines modified | Offset 1, 7 lines modified | ||
1 | var· | 1 | var·invert·=·require('./index72.js'); |
2 | var· | 2 | var·_escapeMap·=·require('./index12.js'); |
3 | //·Fill·in·a·given·object·with·default·properties. | ||
4 | 3 | //·Internal·list·of·HTML·entities·for·unescaping. | |
4 | var·unescapeMap·=·invert(_escapeMap); | ||
5 | module.exports·=· | 5 | module.exports·=·unescapeMap; |
Offset 1, 15 lines modified | Offset 1, 25 lines modified | ||
1 | var·_optimizeCb·=·require('./index24.js'); | ||
1 | var· | 2 | var·_isArrayLike·=·require('./index20.js'); |
2 | var· | 3 | var·keys·=·require('./index101.js'); |
3 | var·filter·=·require('./index56.js'); | ||
4 | var·contains·=·require('./index43.js'); | ||
5 | //·Take·the·difference·between·one·array·and·a·number·of·other·arrays. | ||
6 | //·Only·the·elements·present·in·just·the·first·array·will·remain. | ||
7 | var·difference·=·restArguments(function(array,·rest)·{ | ||
8 | ····rest·=·_flatten(rest,·true,·true); | ||
9 | ····return·filter(array,·function(value)·{ | ||
10 | 4 | //·The·cornerstone·for·collection·functions,·an·`each` | |
5 | //·implementation,·aka·`forEach`. | ||
6 | //·Handles·raw·objects·in·addition·to·array-likes.·Treats·all | ||
7 | //·sparse·array-likes·as·if·they·were·dense. | ||
8 | function·each(obj,·iteratee,·context)·{ | ||
9 | ····iteratee·=·_optimizeCb(iteratee,·context); | ||
10 | ····var·i,·length; | ||
11 | ····if·(_isArrayLike(obj))·{ | ||
12 | ········for·(i·=·0,·length·=·obj.length;·i·<·length;·i++)·{ | ||
13 | ············iteratee(obj[i],·i,·obj); | ||
14 | ········} | ||
15 | ····}·else·{ | ||
16 | ········var·_keys·=·keys(obj); | ||
17 | ········for·(i·=·0,·length·=·_keys.length;·i·<·length;·i++)·{ | ||
18 | ············iteratee(obj[_keys[i]],·_keys[i],·obj); | ||
19 | ········} | ||
11 | ····} | 20 | ····} |
12 | 21 | ····return·obj; | |
22 | } | ||
13 | module.exports·=· | 23 | module.exports·=·each; |
Offset 1, 11 lines modified | Offset 1, 15 lines modified | ||
1 | var·isObject·=·require('./index91.js'); | ||
1 | var· | 2 | var·_setup·=·require('./index25.js'); |
3 | var·_collectNonEnumProps·=·require('./index3.js'); | ||
2 | //·Delays·a·function·for·the·given·number·of·milliseconds,·and·then·calls | ||
3 | //·it·with·the·arguments·supplied. | ||
4 | var·delay·=·restArguments(function(func,·wait,·args)·{ | ||
5 | ····return·setTimeout(function()·{ | ||
6 | ········return·func.apply(null,·args); | ||
7 | ····},·wait); | ||
8 | 4 | //·Retrieve·all·the·enumerable·property·names·of·an·object. | |
5 | function·allKeys(obj)·{ | ||
6 | ····if·(!isObject(obj))·return·[]; | ||
7 | ····var·keys·=·[]; | ||
8 | ····for·(var·key·in·obj)·keys.push(key); | ||
9 | ····//·Ahem,·IE·<·9. | ||
10 | ····if·(_setup.hasEnumBug)·_collectNonEnumProps(obj,·keys); | ||
11 | ····return·keys; | ||
12 | } | ||
9 | module.exports·=· | 13 | module.exports·=·allKeys; |
Offset 1, 44 lines modified | Offset 1, 19 lines modified | ||
1 | var·_setup·=·require('./index25.js'); | ||
2 | var·isFunction·=·require('./index88.js'); | ||
3 | var· | 1 | var·keys·=·require('./index101.js'); |
2 | //·Internal·helper·to·generate·functions·for·escaping·and·unescaping·strings | ||
3 | //·to/from·HTML·interpolation. | ||
4 | function·createEscaper(map)·{ | ||
5 | ····var·escaper·=·function(match)·{ | ||
6 | ········return·map[match]; | ||
7 | ····}; | ||
8 | ····//·Regexes·for·identifying·a·key·that·needs·to·be·escaped. | ||
9 | ····var·source·=·'(?:'·+·keys(map).join('|')·+·')'; | ||
10 | ····var·testRegexp·=·RegExp(source); | ||
11 | ····var·replaceRegexp·=·RegExp(source,·'g'); | ||
12 | ····return·function(string)·{ | ||
13 | ········string·=·string·==·null·?·''·:·''·+·string; | ||
14 | ········return·testRegexp.test(string)·?·string.replace(replaceRegexp,·escaper)·:·string; | ||
4 | //·Internal·helper·to·create·a·simple·lookup·structure. | ||
5 | //·`collectNonEnumProps`·used·to·depend·on·`_.contains`,·but·this·led·to | ||
6 | //·circular·imports.·`emulatedSet`·is·a·one-off·solution·that·only·works·for | ||
7 | //·arrays·of·strings. | ||
8 | function·emulatedSet(keys)·{ | ||
9 | ····var·hash·=·{}; | ||
10 | ····for·(var·l·=·keys.length,·i·=·0;·i·<·l;·++i)·hash[keys[i]]·=·true; | ||
11 | ····return·{ | ||
12 | ········contains:·function(key)·{ | ||
13 | ············return·hash[key]·===·true; | ||
14 | ········}, | ||
15 | ········push:·function(key)·{ | ||
16 | ············hash[key]·=·true; | ||
17 | ············return·keys.push(key); | ||
18 | ········} | ||
19 | ····}; | 15 | ····}; |
20 | } | 16 | } |
17 | module.exports·=·createEscaper; | ||
21 | //·Internal·helper.·Checks·`keys`·for·the·presence·of·keys·in·IE·<·9·that·won't | ||
22 | //·be·iterated·by·`for·key·in·...`·and·thus·missed.·Extends·`keys`·in·place·if | ||
23 | //·needed. | ||
24 | function·collectNonEnumProps(obj,·keys)·{ | ||
25 | ····keys·=·emulatedSet(keys); | ||
26 | ····var·nonEnumIdx·=·_setup.nonEnumerableProps.length; | ||
27 | ····var·constructor·=·obj.constructor; | ||
28 | ····var·proto·=·(isFunction(constructor)·&&·constructor.prototype)·||·_setup.ObjProto; | ||
29 | ····//·Constructor·is·a·special·case. | ||
30 | ····var·prop·=·'constructor'; | ||
31 | ····if·(_has(obj,·prop)·&&·!keys.contains(prop))·keys.push(prop); | ||
32 | ····while·(nonEnumIdx--)·{ | ||
33 | ········prop·=·_setup.nonEnumerableProps[nonEnumIdx]; | ||
34 | ········if·(prop·in·obj·&&·obj[prop]·!==·proto[prop]·&&·!keys.contains(prop))·{ | ||
35 | ············keys.push(prop); | ||
36 | ········} | ||
37 | ····} | ||
38 | } | ||
39 | module.exports·=·collectNonEnumProps; |
Offset 1, 7 lines modified | Offset 1, 7 lines modified | ||
1 | var·_createEscaper·=·require('./index | 1 | var·_createEscaper·=·require('./index5.js'); |
2 | var·_escapeMap·=·require('./index1 | 2 | var·_escapeMap·=·require('./index12.js'); |
3 | //·Function·for·escaping·strings·to·HTML·interpolation. | 3 | //·Function·for·escaping·strings·to·HTML·interpolation. |
4 | var·escape·=·_createEscaper(_escapeMap); | 4 | var·escape·=·_createEscaper(_escapeMap); |
5 | module.exports·=·escape; | 5 | module.exports·=·escape; |
Offset 1, 25 lines modified | Offset 1, 17 lines modified | ||
1 | var·_ | 1 | var·_cb·=·require('./index2.js'); |
2 | var·_isArrayLike·=·require('./index20.js'); | 2 | var·_isArrayLike·=·require('./index20.js'); |
3 | var·keys·=·require('./index10 | 3 | var·keys·=·require('./index101.js'); |
4 | //·Determine·whether·all·of·the·elements·pass·a·truth·test. | ||
4 | //·The·cornerstone·for·collection·functions,·an·`each` | ||
5 | //·implementation,·aka·`forEach`. | ||
6 | //·Handles·raw·objects·in·addition·to·array-likes.·Treats·all | ||
7 | //·sparse·array-likes·as·if·they·were·dense. | ||
8 | function·e | 5 | function·every(obj,·predicate,·context)·{ |
6 | ····predicate·=·_cb(predicate,·context); | ||
7 | ····var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
8 | ········length·=·(_keys·||·obj).length; | ||
9 | ····for·(var·index·=·0;·index·<·length;·index++)·{ | ||
10 | ········var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
11 | ········if·(!predicate(obj[currentKey],·currentKey,·obj))·return·false; | ||
9 | ····iteratee·=·_optimizeCb(iteratee,·context); | ||
10 | ····var·i,·length; | ||
11 | ····if·(_isArrayLike(obj))·{ | ||
12 | ········for·(i·=·0,·length·=·obj.length;·i·<·length;·i++)·{ | ||
13 | ············iteratee(obj[i],·i,·obj); | ||
14 | ········} | ||
15 | ····}·else·{ | ||
16 | ········var·_keys·=·keys(obj); | ||
17 | ········for·(i·=·0,·length·=·_keys.length;·i·<·length;·i++)·{ | ||
18 | ············iteratee(obj[_keys[i]],·_keys[i],·obj); | ||
19 | ········} | ||
20 | ····} | 12 | ····} |
21 | ····return· | 13 | ····return·true; |
22 | } | 14 | } |
23 | module.exports·=·e | 15 | module.exports·=·every; |
Offset 1, 11 lines modified | Offset 1, 7 lines modified | ||
1 | var·_createAssigner·=·require('./index4.js'); | ||
1 | var· | 2 | var·allKeys·=·require('./index49.js'); |
3 | //·Extend·a·given·object·with·all·the·properties·in·passed-in·object(s). | ||
4 | var·extend·=·_createAssigner(allKeys); | ||
2 | //·Common·internal·logic·for·`isArrayLike`·and·`isBufferLike`. | ||
3 | function·createSizePropertyCheck(getSizeProperty)·{ | ||
4 | ····return·function(collection)·{ | ||
5 | ········var·sizeProperty·=·getSizeProperty(collection); | ||
6 | ········return·typeof·sizeProperty·==·'number'·&&·sizeProperty·>=·0·&&·sizeProperty·<=·_setup.MAX_ARRAY_INDEX; | ||
7 | ····} | ||
8 | } | ||
9 | module.exports·=· | 5 | module.exports·=·extend; |
Offset 1, 17 lines modified | Offset 1, 9 lines modified | ||
1 | var·_c | 1 | var·_createAssigner·=·require('./index4.js'); |
2 | var·_isArrayLike·=·require('./index20.js'); | ||
3 | var·keys·=·require('./index10 | 2 | var·keys·=·require('./index101.js'); |
3 | //·Assigns·a·given·object·with·all·the·own·properties·in·the·passed-in | ||
4 | //·object(s). | ||
5 | //·(https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) | ||
6 | var·extendOwn·=·_createAssigner(keys); | ||
4 | //·Determine·whether·all·of·the·elements·pass·a·truth·test. | ||
5 | function·every(obj,·predicate,·context)·{ | ||
6 | ····predicate·=·_cb(predicate,·context); | ||
7 | ····var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
8 | ········length·=·(_keys·||·obj).length; | ||
9 | ····for·(var·index·=·0;·index·<·length;·index++)·{ | ||
10 | ········var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
11 | ········if·(!predicate(obj[currentKey],·currentKey,·obj))·return·false; | ||
12 | ····} | ||
13 | ····return·true; | ||
14 | } | ||
15 | module.exports·=·e | 7 | module.exports·=·extendOwn; |
Offset 1, 7 lines modified | Offset 1, 14 lines modified | ||
1 | var·_c | 1 | var·_cb·=·require('./index2.js'); |
2 | var· | 2 | var·each·=·require('./index48.js'); |
3 | //·Extend·a·given·object·with·all·the·properties·in·passed-in·object(s). | ||
4 | 3 | //·Return·all·the·elements·that·pass·a·truth·test. | |
4 | function·filter(obj,·predicate,·context)·{ | ||
5 | ····var·results·=·[]; | ||
6 | ····predicate·=·_cb(predicate,·context); | ||
7 | ····each(obj,·function(value,·index,·list)·{ | ||
8 | ········if·(predicate(value,·index,·list))·results.push(value); | ||
9 | ····}); | ||
10 | ····return·results; | ||
11 | } | ||
5 | module.exports·=· | 12 | module.exports·=·filter; |
Offset 1, 9 lines modified | Offset 1, 12 lines modified | ||
1 | var·_ | 1 | var·_isArrayLike·=·require('./index20.js'); |
2 | var·findIndex·=·require('./index56.js'); | ||
2 | var· | 3 | var·findKey·=·require('./index57.js'); |
3 | //·Assigns·a·given·object·with·all·the·own·properties·in·the·passed-in | ||
4 | //·object(s). | ||
5 | //·(https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) | ||
6 | 4 | //·Return·the·first·value·which·passes·a·truth·test. | |
5 | function·find(obj,·predicate,·context)·{ | ||
6 | ····var·keyFinder·=·_isArrayLike(obj)·?·findIndex·:·findKey; | ||
7 | ····var·key·=·keyFinder(obj,·predicate,·context); | ||
8 | ····if·(key·!==·void·0·&&·key·!==·-1)·return·obj[key]; | ||
9 | } | ||
7 | module.exports·=· | 10 | module.exports·=·find; |
Offset 1, 14 lines modified | Offset 1, 6 lines modified | ||
1 | var·_createPredicateIndexFinder·=·require('./index9.js'); | ||
1 | var·_cb·=·require('./index3.js'); | ||
2 | var·each·=·require('./index51.js'); | ||
2 | //·Returns·the·first·index·on·an·array-like·that·passes·a·truth·test. | ||
3 | var·findIndex·=·_createPredicateIndexFinder(1); | ||
3 | //·Return·all·the·elements·that·pass·a·truth·test. | ||
4 | function·filter(obj,·predicate,·context)·{ | ||
5 | ····var·results·=·[]; | ||
6 | ····predicate·=·_cb(predicate,·context); | ||
7 | ····each(obj,·function(value,·index,·list)·{ | ||
8 | ········if·(predicate(value,·index,·list))·results.push(value); | ||
9 | ····}); | ||
10 | ····return·results; | ||
11 | } | ||
12 | module.exports·=·fi | 4 | module.exports·=·findIndex; |
Offset 1, 12 lines modified | Offset 1, 15 lines modified | ||
1 | var·_ | 1 | var·_cb·=·require('./index2.js'); |
2 | var·findIndex·=·require('./index58.js'); | ||
3 | var· | 2 | var·keys·=·require('./index101.js'); |
4 | //·Return·the·first· | 3 | //·Returns·the·first·key·on·an·object·that·passes·a·truth·test. |
5 | function·find(obj,·predicate,·context)·{ | 4 | function·findKey(obj,·predicate,·context)·{ |
6 | ····var·keyFinder·=·_isArrayLike(obj)·?·findIndex·:·findKey; | ||
7 | ····var·key·=·keyFinder(obj,·predicate,·context); | ||
8 | ···· | 5 | ····predicate·=·_cb(predicate,·context); |
6 | ····var·_keys·=·keys(obj), | ||
7 | ········key; | ||
8 | ····for·(var·i·=·0,·length·=·_keys.length;·i·<·length;·i++)·{ | ||
9 | ········key·=·_keys[i]; | ||
10 | ········if·(predicate(obj[key],·key,·obj))·return·key; | ||
11 | ····} | ||
9 | } | 12 | } |
10 | module.exports·=·find; | 13 | module.exports·=·findKey; |
Offset 1, 6 lines modified | Offset 1, 6 lines modified | ||
1 | var·_createPredicateIndexFinder·=·require('./index9.js'); | 1 | var·_createPredicateIndexFinder·=·require('./index9.js'); |
2 | //·Returns·the· | 2 | //·Returns·the·last·index·on·an·array-like·that·passes·a·truth·test. |
3 | var·findIndex·=·_createPredicateIndexFinder(1); | 3 | var·findLastIndex·=·_createPredicateIndexFinder(-1); |
4 | module.exports·=·findIndex; | 4 | module.exports·=·findLastIndex; |
Offset 1, 15 lines modified | Offset 1, 10 lines modified | ||
1 | var· | 1 | var·find·=·require('./index55.js'); |
2 | var· | 2 | var·matcher·=·require('./index106.js'); |
3 | //·Convenience·version·of·a·common·use·case·of·`_.find`:·getting·the·first | ||
4 | //·object·containing·specific·`key:value`·pairs. | ||
5 | function·findWhere(obj,·attrs)·{ | ||
6 | ····return·find(obj,·matcher(attrs)); | ||
3 | //·Returns·the·first·key·on·an·object·that·passes·a·truth·test. | ||
4 | function·findKey(obj,·predicate,·context)·{ | ||
5 | ····predicate·=·_cb(predicate,·context); | ||
6 | ····var·_keys·=·keys(obj), | ||
7 | ········key; | ||
8 | ····for·(var·i·=·0,·length·=·_keys.length;·i·<·length;·i++)·{ | ||
9 | ········key·=·_keys[i]; | ||
10 | ········if·(predicate(obj[key],·key,·obj))·return·key; | ||
11 | ····} | ||
12 | } | 7 | } |
13 | module.exports·=·find | 8 | module.exports·=·findWhere; |
Offset 1, 20 lines modified | Offset 1, 8 lines modified | ||
1 | var·underscore·=·require('./index147.js'); | ||
2 | //·Helper·function·to·continue·chaining·intermediate·results. | ||
3 | function·chainResult(instance,·obj)·{ | ||
4 | ····return·instance._chain·?·underscore(obj).chain()·:·obj; | ||
1 | //·An·internal·function·for·creating·assigner·functions. | ||
2 | function·createAssigner(keysFunc,·defaults)·{ | ||
3 | ····return·function(obj)·{ | ||
4 | ········var·length·=·arguments.length; | ||
5 | ········if·(defaults)·obj·=·Object(obj); | ||
6 | ········if·(length·<·2·||·obj·==·null)·return·obj; | ||
7 | ········for·(var·index·=·1;·index·<·length;·index++)·{ | ||
8 | ············var·source·=·arguments[index], | ||
9 | ················keys·=·keysFunc(source), | ||
10 | ················l·=·keys.length; | ||
11 | ············for·(var·i·=·0;·i·<·l;·i++)·{ | ||
12 | ················var·key·=·keys[i]; | ||
13 | ················if·(!defaults·||·obj[key]·===·void·0)·obj[key]·=·source[key]; | ||
14 | ············} | ||
15 | ········} | ||
16 | ········return·obj; | ||
17 | ····}; | ||
18 | } | 5 | } |
19 | module.exports·=·c | 6 | module.exports·=·chainResult; |
Offset 1, 6 lines modified | Offset 1, 11 lines modified | ||
1 | var· | 1 | var·initial·=·require('./index70.js'); |
2 | //·Returns·the·last·index·on·an·array-like·that·passes·a·truth·test. | ||
3 | 2 | //·Get·the·first·element·of·an·array.·Passing·**n**·will·return·the·first·N | |
3 | //·values·in·the·array.·The·**guard**·check·allows·it·to·work·with·`_.map`. | ||
4 | function·first(array,·n,·guard)·{ | ||
5 | ····if·(array·==·null·||·array.length·<·1)·return·n·==·null·||·guard·?·void·0·:·[]; | ||
6 | ····if·(n·==·null·||·guard)·return·array[0]; | ||
7 | ····return·initial(array,·array.length·-·n); | ||
8 | } | ||
4 | module.exports·=·fi | 9 | module.exports·=·first; |
Offset 1, 10 lines modified | Offset 1, 9 lines modified | ||
1 | var·find·=·require('./index57.js'); | ||
2 | var· | 1 | var·_flatten·=·require('./index14.js'); |
3 | //·Convenience·version·of·a·common·use·case·of·`_.find`:·getting·the·first | ||
4 | //·object·containing·specific·`key:value`·pairs. | ||
5 | function·findWhere(obj,·attrs)·{ | ||
6 | ····retur | 2 | //·Flatten·out·an·array,·either·recursively·(by·default),·or·up·to·`depth`. |
3 | //·Passing·`true`·or·`false`·as·`depth`·means·`1`·or·`Infinity`,·respectively. | ||
4 | function·flatten(array,·depth)·{ | ||
5 | ····return·_flatten(array,·depth,·false); | ||
7 | } | 6 | } |
8 | module.exports·=·f | 7 | module.exports·=·flatten; |
Offset 1, 11 lines modified | Offset 1, 12 lines modified | ||
1 | var·in | 1 | var·isFunction·=·require('./index85.js'); |
2 | //·Get·the·first·element·of·an·array.·Passing·**n**·will·return·the·first·N | ||
3 | //·values·in·the·array.·The·**guard**·check·allows·it·to·work·with·`_.map`. | ||
4 | function·first(array,·n,·guard)·{ | ||
5 | ····if·(array·==·null·||·array.length·<·1)·return·n·==·null·||·guard·?·void·0·:·[]; | ||
6 | ····if·(n·==·null·||·guard)·return·array[0]; | ||
7 | ··· | 2 | //·Return·a·sorted·list·of·the·function·names·available·on·the·object. |
3 | function·functions(obj)·{ | ||
4 | ····var·names·=·[]; | ||
5 | ····for·(var·key·in·obj)·{ | ||
6 | ········if·(isFunction(obj[key]))·names.push(key); | ||
7 | ····} | ||
8 | ····return·names.sort(); | ||
8 | } | 9 | } |
9 | module.exports·=·fi | 10 | module.exports·=·functions; |
Offset 1, 9 lines modified | Offset 1, 14 lines modified | ||
1 | var·_ | 1 | var·_toPath·=·require('./index30.js'); |
2 | var·_deepGet·=·require('./index11.js'); | ||
3 | var·isUndefined·=·require('./index97.js'); | ||
2 | //·Flatten·out·an·array,·either·recursively·(by·default),·or·up·to·`depth`. | ||
3 | //·Passing·`true`·or·`false`·as·`depth`·means·`1`·or·`Infinity`,·respectively. | ||
4 | function·flatten(array,·depth)·{ | ||
5 | · | 4 | //·Get·the·value·of·the·(deep)·property·on·`path`·from·`object`. |
5 | //·If·any·property·in·`path`·does·not·exist·or·if·the·value·is | ||
6 | //·`undefined`,·return·`defaultValue`·instead. | ||
7 | //·The·`path`·is·normalized·through·`_.toPath`. | ||
8 | function·get(object,·path,·defaultValue)·{ | ||
9 | ····var·value·=·_deepGet(object,·_toPath(path)); | ||
10 | ····return·isUndefined(value)·?·defaultValue·:·value; | ||
6 | } | 11 | } |
7 | module.exports·=· | 12 | module.exports·=·get; |
Offset 1, 12 lines modified | Offset 1, 18 lines modified | ||
1 | var· | 1 | var·_has·=·require('./index18.js'); |
2 | var·_toPath·=·require('./index30.js'); | ||
2 | //·Return·a·sorted·list·of·the·function·names·available·on·the·object. | ||
3 | function·functions(obj)·{ | ||
4 | ····var·names·=·[]; | ||
5 | ····for·(var·key·in·obj)·{ | ||
6 | · | 3 | //·Shortcut·function·for·checking·if·an·object·has·a·given·property·directly·on |
4 | //·itself·(in·other·words,·not·on·a·prototype).·Unlike·the·internal·`has` | ||
5 | //·function,·this·public·version·can·also·traverse·nested·properties. | ||
6 | function·has(obj,·path)·{ | ||
7 | ····path·=·_toPath(path); | ||
8 | ····var·length·=·path.length; | ||
9 | ····for·(var·i·=·0;·i·<·length;·i++)·{ | ||
10 | ········var·key·=·path[i]; | ||
11 | ········if·(!_has(obj,·key))·return·false; | ||
12 | ········obj·=·obj[key]; | ||
7 | ····} | 13 | ····} |
8 | ····return· | 14 | ····return·!!length; |
9 | } | 15 | } |
10 | module.exports·=· | 16 | module.exports·=·has; |
Offset 1, 14 lines modified | Offset 1, 6 lines modified | ||
1 | //·Keep·the·identity·function·around·for·default·iteratees. | ||
2 | function·identity(value)·{ | ||
3 | ····return·value; | ||
1 | var·_toPath·=·require('./index30.js'); | ||
2 | var·_deepGet·=·require('./index11.js'); | ||
3 | var·isUndefined·=·require('./index99.js'); | ||
4 | //·Get·the·value·of·the·(deep)·property·on·`path`·from·`object`. | ||
5 | //·If·any·property·in·`path`·does·not·exist·or·if·the·value·is | ||
6 | //·`undefined`,·return·`defaultValue`·instead. | ||
7 | //·The·`path`·is·normalized·through·`_.toPath`. | ||
8 | function·get(object,·path,·defaultValue)·{ | ||
9 | ····var·value·=·_deepGet(object,·_toPath(path)); | ||
10 | ····return·isUndefined(value)·?·defaultValue·:·value; | ||
11 | } | 4 | } |
12 | module.exports·=· | 5 | module.exports·=·identity; |
Offset 1, 11 lines modified | Offset 1, 28 lines modified | ||
1 | var· | 1 | var·index·=·require('./index67.js'); |
2 | var· | 2 | var·mixin·=·require('./index110.js'); |
3 | //·Groups·the·object's·values·by·a·criterion.·Pass·either·a·string·attribute | ||
4 | //·to·group·by,·or·a·function·that·returns·the·criterion. | ||
5 | var·groupBy·=·_group(function(result,·value,·key)·{ | ||
6 | ····if·(_has(result,·key))·result[key].push(value); | ||
7 | ····else·result[key]·=·[value]; | ||
8 | 3 | //·Default·Export | |
4 | //·============== | ||
5 | //·In·this·module,·we·mix·our·bundled·exports·into·the·`_`·object·and·export | ||
6 | //·the·result.·This·is·analogous·to·setting·`module.exports·=·_`·in·CommonJS. | ||
7 | //·Hence,·this·module·is·also·the·entry·point·of·our·UMD·bundle·and·the·package | ||
8 | //·entry·point·for·CommonJS·and·AMD·users.·In·other·words,·this·is·(the·source | ||
9 | //·of)·the·module·you·are·interfacing·with·when·you·do·any·of·the·following: | ||
10 | // | ||
11 | //·```js | ||
12 | //·//·CommonJS | ||
13 | //·var·_·=·require('underscore'); | ||
14 | // | ||
15 | //·//·AMD | ||
16 | //·define(['underscore'],·function(_)·{...}); | ||
17 | // | ||
18 | //·//·UMD·in·the·browser | ||
19 | //·//·_·is·available·as·a·global·variable | ||
20 | //·``` | ||
21 | //·Add·all·of·the·Underscore·functions·to·the·wrapper·object. | ||
22 | var·_·=·mixin(index); | ||
23 | //·Legacy·Node.js·API. | ||
24 | _._·=·_; | ||
9 | module.exports·=· | 25 | module.exports·=·_; |
Offset 1, 18 lines modified | Offset 1, 281 lines modified | ||
1 | var·_has·=·require('./index18.js'); | ||
2 | 1 | Object.defineProperty(exports,·'__esModule',·{ | |
2 | ····value:·true | ||
3 | }); | ||
3 | //·Shortcut·function·for·checking·if·an·object·has·a·given·property·directly·on | ||
4 | //·itself·(in·other·words,·not·on·a·prototype).·Unlike·the·internal·`has` | ||
5 | //·function,·this·public·version·can·also·traverse·nested·properties. | ||
6 | function·has(obj,·path)·{ | ||
7 | ····path·=·_toPath(path); | ||
8 | ····var·length·=·path.length; | ||
9 | ····for·(var·i·=·0;·i·<·length;·i++)·{ | ||
10 | ········var·key·=·path[i]; | ||
11 | ········if·(!_has(obj,·key))·return·false; | ||
12 | ········obj·=·obj[key]; | ||
13 | ····} | ||
14 | ····return·!!length; | ||
15 | 4 | var·_setup·=·require('./index25.js'); | |
5 | var·restArguments·=·require('./index131.js'); | ||
6 | var·isObject·=·require('./index91.js'); | ||
7 | var·isNull·=·require('./index89.js'); | ||
8 | var·isUndefined·=·require('./index97.js'); | ||
9 | var·isBoolean·=·require('./index77.js'); | ||
10 | var·isElement·=·require('./index144.js'); | ||
11 | var·isString·=·require('./index94.js'); | ||
12 | var·isNumber·=·require('./index90.js'); | ||
13 | var·isDate·=·require('./index79.js'); | ||
14 | var·isRegExp·=·require('./index92.js'); | ||
15 | var·isError·=·require('./index83.js'); | ||
16 | var·isSymbol·=·require('./index95.js'); | ||
17 | var·isArrayBuffer·=·require('./index76.js'); | ||
18 | var·isDataView·=·require('./index78.js'); | ||
19 | var·isArray·=·require('./index75.js'); | ||
20 | var·isFunction·=·require('./index85.js'); | ||
21 | var·isArguments·=·require('./index74.js'); | ||
22 | var·isFinite·=·require('./index84.js'); | ||
23 | var·isNaN·=·require('./index88.js'); | ||
24 | var·isTypedArray·=·require('./index129.js'); | ||
25 | var·isEmpty·=·require('./index81.js'); | ||
26 | var·isMatch·=·require('./index87.js'); | ||
27 | var·isEqual·=·require('./index82.js'); | ||
28 | var·isMap·=·require('./index86.js'); | ||
29 | var·isWeakMap·=·require('./index98.js'); | ||
30 | var·isSet·=·require('./index93.js'); | ||
31 | var·isWeakSet·=·require('./index99.js'); | ||
32 | var·keys·=·require('./index101.js'); | ||
33 | var·allKeys·=·require('./index49.js'); | ||
34 | var·values·=·require('./index153.js'); | ||
35 | var·pairs·=·require('./index117.js'); | ||
36 | var·invert·=·require('./index72.js'); | ||
37 | var·functions·=·require('./index62.js'); | ||
38 | var·extend·=·require('./index52.js'); | ||
39 | var·extendOwn·=·require('./index53.js'); | ||
40 | var·defaults·=·require('./index44.js'); | ||
41 | var·create·=·require('./index42.js'); | ||
42 | var·clone·=·require('./index36.js'); | ||
43 | var·tap·=·require('./index139.js'); | ||
44 | var·get·=·require('./index63.js'); | ||
45 | var·has·=·require('./index64.js'); | ||
46 | var·mapObject·=·require('./index105.js'); | ||
47 | var·identity·=·require('./index65.js'); | ||
48 | var·constant·=·require('./index39.js'); | ||
49 | var·noop·=·require('./index158.js'); | ||
50 | var·toPath·=·require('./index145.js'); | ||
51 | var·property·=·require('./index122.js'); | ||
52 | var·propertyOf·=·require('./index124.js'); | ||
53 | var·matcher·=·require('./index106.js'); | ||
54 | var·times·=·require('./index143.js'); | ||
55 | var·random·=·require('./index125.js'); | ||
56 | var·now·=·require('./index113.js'); | ||
57 | var·escape·=·require('./index50.js'); | ||
58 | var·unescape·=·require('./index148.js'); | ||
59 | var·templateSettings·=·require('./index142.js'); | ||
60 | var·template·=·require('./index140.js'); | ||
61 | var·result·=·require('./index132.js'); | ||
62 | var·uniqueId·=·require('./index151.js'); | ||
63 | var·chain·=·require('./index34.js'); | ||
64 | var·iteratee·=·require('./index100.js'); | ||
65 | var·partial·=·require('./index118.js'); | ||
66 | var·bind·=·require('./index32.js'); | ||
67 | var·bindAll·=·require('./index33.js'); | ||
68 | var·memoize·=·require('./index108.js'); | ||
69 | var·delay·=·require('./index46.js'); | ||
70 | var·defer·=·require('./index45.js'); | ||
71 | var·throttle·=·require('./index141.js'); | ||
72 | var·debounce·=·require('./index43.js'); | ||
73 | var·wrap·=·require('./index156.js'); | ||
74 | var·negate·=·require('./index111.js'); | ||
75 | var·compose·=·require('./index38.js'); | ||
76 | var·after·=·require('./index96.js'); | ||
77 | var·before·=·require('./index31.js'); | ||
78 | var·once·=·require('./index116.js'); | ||
79 | var·findKey·=·require('./index57.js'); | ||
80 | var·findIndex·=·require('./index56.js'); | ||
81 | var·findLastIndex·=·require('./index58.js'); | ||
82 | var·sortedIndex·=·require('./index138.js'); | ||
83 | var·indexOf·=·require('./index69.js'); | ||
84 | var·lastIndexOf·=·require('./index103.js'); | ||
85 | var·find·=·require('./index55.js'); | ||
86 | var·findWhere·=·require('./index59.js'); | ||
87 | var·each·=·require('./index48.js'); | ||
88 | var·map·=·require('./index104.js'); | ||
89 | var·reduce·=·require('./index127.js'); | ||
90 | var·reduceRight·=·require('./index128.js'); | ||
91 | var·filter·=·require('./index54.js'); | ||
92 | var·reject·=·require('./index130.js'); | ||
93 | var·every·=·require('./index51.js'); | ||
94 | var·some·=·require('./index136.js'); | ||
95 | var·contains·=·require('./index40.js'); | ||
96 | var·invoke·=·require('./index73.js'); | ||
97 | var·pluck·=·require('./index121.js'); | ||
98 | var·where·=·require('./index154.js'); | ||
99 | var·max·=·require('./index107.js'); | ||
100 | var·min·=·require('./index109.js'); | ||
101 | var·shuffle·=·require('./index134.js'); | ||
102 | var·sample·=·require('./index133.js'); | ||
103 | var·sortBy·=·require('./index137.js'); | ||
104 | var·groupBy·=·require('./index80.js'); | ||
105 | var·indexBy·=·require('./index68.js'); | ||
106 | var·countBy·=·require('./index41.js'); | ||
107 | var·partition·=·require('./index120.js'); | ||
108 | var·toArray·=·require('./index159.js'); | ||
109 | var·size·=·require('./index135.js'); | ||
110 | var·pick·=·require('./index123.js'); | ||
111 | var·omit·=·require('./index115.js'); | ||
112 | var·first·=·require('./index60.js'); | ||
113 | var·initial·=·require('./index70.js'); | ||
Max diff block lines reached; 4060/9814 bytes (41.37%) of diff not shown. |
Offset 1, 6 lines modified | Offset 1, 9 lines modified | ||
1 | var·_group·=·require('./index17.js'); | ||
1 | //·Keep·the·identity·function·around·for·default·iteratees. | ||
2 | function·identity(value)·{ | ||
3 | ····return·value; | ||
4 | } | ||
2 | //·Indexes·the·object's·values·by·a·criterion,·similar·to·`_.groupBy`,·but·for | ||
3 | //·when·you·know·that·your·index·values·will·be·unique. | ||
4 | var·indexBy·=·_group(function(result,·value,·key)·{ | ||
5 | ····result[key]·=·value; | ||
6 | }); | ||
5 | module.exports·=·ide | 7 | module.exports·=·indexBy; |
Offset 1, 28 lines modified | Offset 1, 11 lines modified | ||
1 | var·sortedIndex·=·require('./index138.js'); | ||
1 | var·index·=·require('./index | 2 | var·findIndex·=·require('./index56.js'); |
2 | var· | 3 | var·_createIndexFinder·=·require('./index7.js'); |
4 | //·Return·the·position·of·the·first·occurrence·of·an·item·in·an·array, | ||
5 | //·or·-1·if·the·item·is·not·included·in·the·array. | ||
6 | //·If·the·array·is·large·and·already·in·sort·order,·pass·`true` | ||
7 | //·for·**isSorted**·to·use·binary·search. | ||
8 | var·indexOf·=·_createIndexFinder(1,·findIndex,·sortedIndex); | ||
3 | //·Default·Export | ||
4 | //·============== | ||
5 | //·In·this·module,·we·mix·our·bundled·exports·into·the·`_`·object·and·export | ||
6 | //·the·result.·This·is·analogous·to·setting·`module.exports·=·_`·in·CommonJS. | ||
7 | //·Hence,·this·module·is·also·the·entry·point·of·our·UMD·bundle·and·the·package | ||
8 | //·entry·point·for·CommonJS·and·AMD·users.·In·other·words,·this·is·(the·source | ||
9 | //·of)·the·module·you·are·interfacing·with·when·you·do·any·of·the·following: | ||
10 | // | ||
11 | //·```js | ||
12 | //·//·CommonJS | ||
13 | //·var·_·=·require('underscore'); | ||
14 | // | ||
15 | //·//·AMD | ||
16 | //·define(['underscore'],·function(_)·{...}); | ||
17 | // | ||
18 | //·//·UMD·in·the·browser | ||
19 | //·//·_·is·available·as·a·global·variable | ||
20 | //·``` | ||
21 | //·Add·all·of·the·Underscore·functions·to·the·wrapper·object. | ||
22 | var·_·=·mixin(index); | ||
23 | //·Legacy·Node.js·API. | ||
24 | _._·=·_; | ||
25 | module.exports·=· | 9 | module.exports·=·indexOf; |
Offset 1, 19 lines modified | Offset 1, 31 lines modified | ||
1 | var·_getLength·=·require('./index16.js'); | ||
2 | var·_setup·=·require('./index25.js'); | ||
1 | var· | 3 | var·isNaN·=·require('./index88.js'); |
2 | //·Internal·helper·to·generate·functions·for·escaping·and·unescaping·strings | ||
3 | //·to/from·HTML·interpolation. | ||
4 | function·createEscaper(map)·{ | ||
5 | ····var·escaper·=·function(match)·{ | ||
6 | ········return·map[match]; | ||
7 | ····}; | ||
8 | ····//·Regexes·for·identifying·a·key·that·needs·to·be·escaped. | ||
9 | ····var·source·=·'(?:'·+·keys(map).join('|')·+·')'; | ||
10 | ····var·testRegexp·=·RegExp(source); | ||
11 | ····var·replaceRegexp·=·RegExp(source,·'g'); | ||
12 | ····return·function(string)·{ | ||
13 | ········string·=·string·==·null·?·''·:·''·+·string; | ||
14 | 4 | //·Internal·function·to·generate·the·`_.indexOf`·and·`_.lastIndexOf`·functions. | |
5 | function·createIndexFinder(dir,·predicateFind,·sortedIndex)·{ | ||
6 | ····return·function(array,·item,·idx)·{ | ||
7 | ········var·i·=·0, | ||
8 | ············length·=·_getLength(array); | ||
9 | ········if·(typeof·idx·==·'number')·{ | ||
10 | ············if·(dir·>·0)·{ | ||
11 | ················i·=·idx·>=·0·?·idx·:·Math.max(idx·+·length,·i); | ||
12 | ············}·else·{ | ||
13 | ················length·=·idx·>=·0·?·Math.min(idx·+·1,·length)·:·idx·+·length·+·1; | ||
14 | ············} | ||
15 | ········}·else·if·(sortedIndex·&&·idx·&&·length)·{ | ||
16 | ············idx·=·sortedIndex(array,·item); | ||
17 | ············return·array[idx]·===·item·?·idx·:·-1; | ||
18 | ········} | ||
19 | ········if·(item·!==·item)·{ | ||
20 | ············idx·=·predicateFind(_setup.slice.call(array,·i,·length),·isNaN); | ||
21 | ············return·idx·>=·0·?·idx·+·i·:·-1; | ||
22 | ········} | ||
23 | ········for·(idx·=·dir·>·0·?·i·:·length·-·1;·idx·>=·0·&&·idx·<·length;·idx·+=·dir)·{ | ||
24 | ············if·(array[idx]·===·item)·return·idx; | ||
25 | ········} | ||
26 | ········return·-1; | ||
15 | ····}; | 27 | ····}; |
16 | } | 28 | } |
17 | module.exports·=·create | 29 | module.exports·=·createIndexFinder; |
Offset 1, 281 lines modified | Offset 1, 10 lines modified | ||
1 | Object.defineProperty(exports,·'__esModule',·{ | ||
2 | ····value:·true | ||
3 | }); | ||
4 | var·_setup·=·require('./index25.js'); | 1 | var·_setup·=·require('./index25.js'); |
5 | var·restArguments·=·require('./index132.js'); | ||
6 | var·isObject·=·require('./index94.js'); | ||
7 | var·isNull·=·require('./index92.js'); | ||
8 | var·isUndefined·=·require('./index99.js'); | ||
9 | var·isBoolean·=·require('./index79.js'); | ||
10 | var·isElement·=·require('./index83.js'); | ||
11 | var·isString·=·require('./index97.js'); | ||
12 | var·isNumber·=·require('./index93.js'); | ||
13 | var·isDate·=·require('./index82.js'); | ||
14 | var·isRegExp·=·require('./index95.js'); | ||
15 | var·isError·=·require('./index86.js'); | ||
16 | var·isSymbol·=·require('./index98.js'); | ||
17 | var·isArrayBuffer·=·require('./index80.js'); | ||
18 | var·isDataView·=·require('./index81.js'); | ||
19 | var·isArray·=·require('./index78.js'); | ||
20 | var·isFunction·=·require('./index88.js'); | ||
21 | var·isArguments·=·require('./index77.js'); | ||
22 | var·isFinite·=·require('./index87.js'); | ||
23 | var·isNaN·=·require('./index91.js'); | ||
24 | var·isTypedArray·=·require('./index135.js'); | ||
25 | var·isEmpty·=·require('./index84.js'); | ||
26 | var·isMatch·=·require('./index90.js'); | ||
27 | var·isEqual·=·require('./index85.js'); | ||
28 | var·isMap·=·require('./index89.js'); | ||
29 | var·isWeakMap·=·require('./index100.js'); | ||
30 | var·isSet·=·require('./index96.js'); | ||
31 | var·isWeakSet·=·require('./index101.js'); | ||
32 | var·keys·=·require('./index103.js'); | ||
33 | var·allKeys·=·require('./index33.js'); | ||
34 | var·values·=·require('./index155.js'); | ||
35 | var·pairs·=·require('./index119.js'); | ||
36 | var·invert·=·require('./index75.js'); | ||
37 | var·functions·=·require('./index64.js'); | ||
38 | var·extend·=·require('./index54.js'); | ||
39 | var·extendOwn·=·require('./index55.js'); | ||
40 | var·defaults·=·require('./index47.js'); | ||
41 | var·create·=·require('./index45.js'); | ||
42 | var·clone·=·require('./index39.js'); | ||
43 | var·tap·=·require('./index141.js'); | ||
44 | var·get·=·require('./index65.js'); | ||
45 | var·has·=·require('./index67.js'); | ||
46 | var·mapObject·=·require('./index107.js'); | ||
47 | var·identity·=·require('./index68.js'); | ||
48 | var·constant·=·require('./index42.js'); | ||
49 | var·noop·=·require('./index114.js'); | ||
50 | var·toPath·=·require('./index147.js'); | ||
51 | var·property·=·require('./index124.js'); | ||
52 | var·propertyOf·=·require('./index125.js'); | ||
53 | var·matcher·=·require('./index108.js'); | ||
54 | var·times·=·require('./index145.js'); | ||
55 | var·random·=·require('./index126.js'); | ||
56 | var·now·=·require('./index133.js'); | ||
57 | var·escape·=·require('./index50.js'); | ||
58 | var·unescape·=·require('./index149.js'); | ||
59 | var·templateSettings·=·require('./index143.js'); | ||
60 | var·template·=·require('./index142.js'); | ||
61 | var·result·=·require('./index134.js'); | ||
62 | var·uniqueId·=·require('./index153.js'); | ||
63 | var·chain·=·require('./index37.js'); | ||
64 | var·iteratee·=·require('./index102.js'); | ||
65 | var·partial·=·require('./index120.js'); | ||
66 | var·bind·=·require('./index35.js'); | ||
67 | var·bindAll·=·require('./index36.js'); | ||
68 | var·memoize·=·require('./index110.js'); | ||
69 | var·delay·=·require('./index49.js'); | ||
70 | var·defer·=·require('./index116.js'); | ||
71 | var·throttle·=·require('./index144.js'); | ||
72 | var·debounce·=·require('./index46.js'); | ||
73 | var·wrap·=·require('./index158.js'); | ||
74 | var·negate·=·require('./index113.js'); | ||
75 | var·compose·=·require('./index41.js'); | ||
76 | var·after·=·require('./index32.js'); | ||
77 | var·before·=·require('./index34.js'); | ||
78 | var·once·=·require('./index118.js'); | ||
79 | var·findKey·=·require('./index59.js'); | ||
80 | var·findIndex·=·require('./index58.js'); | ||
81 | var·findLastIndex·=·require('./index60.js'); | ||
82 | var·sortedIndex·=·require('./index140.js'); | ||
83 | var·indexOf·=·require('./index73.js'); | ||
84 | var·lastIndexOf·=·require('./index105.js'); | ||
85 | var·find·=·require('./index57.js'); | ||
86 | var·findWhere·=·require('./index61.js'); | ||
87 | var·each·=·require('./index51.js'); | ||
88 | var·map·=·require('./index106.js'); | ||
89 | var·reduce·=·require('./index128.js'); | ||
90 | var·reduceRight·=·require('./index129.js'); | ||
91 | var·filter·=·require('./index56.js'); | ||
92 | var·reject·=·require('./index130.js'); | ||
93 | var·every·=·require('./index53.js'); | ||
94 | var·some·=·require('./index138.js'); | ||
95 | var·contains·=·require('./index43.js'); | ||
96 | var·invoke·=·require('./index76.js'); | ||
97 | var·pluck·=·require('./index123.js'); | ||
98 | var·where·=·require('./index156.js'); | ||
99 | var·max·=·require('./index109.js'); | ||
100 | var·min·=·require('./index111.js'); | ||
101 | var·shuffle·=·require('./index136.js'); | ||
102 | var·sample·=·require('./index159.js'); | ||
103 | var·sortBy·=·require('./index139.js'); | ||
104 | var·groupBy·=·require('./index66.js'); | ||
105 | var·indexBy·=·require('./index71.js'); | ||
106 | var·countBy·=·require('./index44.js'); | ||
107 | var·partition·=·require('./index121.js'); | ||
108 | var·toArray·=·require('./index146.js'); | ||
109 | var·size·=·require('./index137.js'); | ||
110 | var·pick·=·require('./index122.js'); | ||
111 | var·omit·=·require('./index117.js'); | ||
112 | var·first·=·require('./index62.js'); | ||
113 | var·initial·=·require('./index72.js'); | ||
114 | var·last·=·require('./index104.js'); | ||
115 | var·rest·=·require('./index131.js'); | ||
116 | var·compact·=·require('./index40.js'); | ||
117 | var·flatten·=·require('./index63.js'); | ||
118 | var·without·=·require('./index157.js'); | ||
119 | var·uniq·=·require('./index152.js'); | ||
120 | var·union·=·require('./index151.js'); | ||
121 | var·intersection·=·require('./index74.js'); | ||
122 | var·difference·=·require('./index48.js'); | ||
123 | var·unzip·=·require('./index154.js'); | ||
124 | var·zip·=·require('./index160.js'); | ||
125 | var·object·=·require('./index115.js'); | ||
126 | var·range·=·require('./index127.js'); | ||
Max diff block lines reached; 4387/9584 bytes (45.77%) of diff not shown. |
Offset 1, 9 lines modified | Offset 1, 21 lines modified | ||
1 | var·_g | 1 | var·_getLength·=·require('./index16.js'); |
2 | var·contains·=·require('./index40.js'); | ||
2 | //·Indexes·the·object's·values·by·a·criterion,·similar·to·`_.groupBy`,·but·for | ||
3 | //·when·you·know·that·your·index·values·will·be·unique. | ||
4 | var·indexBy·=·_group(function(result,·value,·key)·{ | ||
5 | ····result[key]·=·value; | ||
6 | 3 | //·Produce·an·array·that·contains·every·item·shared·between·all·the | |
4 | //·passed-in·arrays. | ||
5 | function·intersection(array)·{ | ||
6 | ····var·result·=·[]; | ||
7 | ····var·argsLength·=·arguments.length; | ||
8 | ····for·(var·i·=·0,·length·=·_getLength(array);·i·<·length;·i++)·{ | ||
9 | ········var·item·=·array[i]; | ||
10 | ········if·(contains(result,·item))·continue; | ||
11 | ········var·j; | ||
12 | ········for·(j·=·1;·j·<·argsLength;·j++)·{ | ||
13 | ············if·(!contains(arguments[j],·item))·break; | ||
14 | ········} | ||
15 | ········if·(j·===·argsLength)·result.push(item); | ||
16 | ····} | ||
17 | ····return·result; | ||
18 | } | ||
7 | module.exports·=·in | 19 | module.exports·=·intersection; |
Offset 1, 10 lines modified | Offset 1, 13 lines modified | ||
1 | var· | 1 | var·keys·=·require('./index101.js'); |
2 | //·Returns·everything·but·the·last·entry·of·the·array.·Especially·useful·on | ||
3 | //·the·arguments·object.·Passing·**n**·will·return·all·the·values·in | ||
4 | //·the·array,·excluding·the·last·N. | ||
5 | function·initial(array,·n,·guard)·{ | ||
6 | 2 | //·Invert·the·keys·and·values·of·an·object.·The·values·must·be·serializable. | |
3 | function·invert(obj)·{ | ||
4 | ····var·result·=·{}; | ||
5 | ····var·_keys·=·keys(obj); | ||
6 | ····for·(var·i·=·0,·length·=·_keys.length;·i·<·length;·i++)·{ | ||
7 | ········result[obj[_keys[i]]]·=·_keys[i]; | ||
8 | ····} | ||
9 | ····return·result; | ||
7 | } | 10 | } |
8 | module.exports·=·in | 11 | module.exports·=·invert; |
Offset 1, 11 lines modified | Offset 1, 30 lines modified | ||
1 | var·s | 1 | var·restArguments·=·require('./index131.js'); |
2 | var· | 2 | var·isFunction·=·require('./index85.js'); |
3 | var·map·=·require('./index104.js'); | ||
3 | var·_ | 4 | var·_deepGet·=·require('./index11.js'); |
5 | var·_toPath·=·require('./index30.js'); | ||
4 | //·Return·the·position·of·the·first·occurrence·of·an·item·in·an·array, | ||
5 | //·or·-1·if·the·item·is·not·included·in·the·array. | ||
6 | //·If·the·array·is·large·and·already·in·sort·order,·pass·`true` | ||
7 | //·for·**isSorted**·to·use·binary·search. | ||
8 | v | 6 | //·Invoke·a·method·(with·arguments)·on·every·item·in·a·collection. |
7 | var·invoke·=·restArguments(function(obj,·path,·args)·{ | ||
8 | ····var·contextPath,·func; | ||
9 | ····if·(isFunction(path))·{ | ||
10 | ········func·=·path; | ||
11 | ····}·else·{ | ||
12 | ········path·=·_toPath(path); | ||
13 | ········contextPath·=·path.slice(0,·-1); | ||
14 | ········path·=·path[path.length·-·1]; | ||
15 | ····} | ||
16 | ····return·map(obj,·function(context)·{ | ||
17 | ········var·method·=·func; | ||
18 | ········if·(!method)·{ | ||
19 | ············if·(contextPath·&&·contextPath.length)·{ | ||
20 | ················context·=·_deepGet(context,·contextPath); | ||
21 | ············} | ||
22 | ············if·(context·==·null)·return·void·0; | ||
23 | ············method·=·context[path]; | ||
24 | ········} | ||
25 | ········return·method·==·null·?·method·:·method.apply(context,·args); | ||
26 | ····}); | ||
27 | }); | ||
9 | module.exports·=·in | 28 | module.exports·=·invoke; |
Offset 1, 21 lines modified | Offset 1, 18 lines modified | ||
1 | var·_tagTester·=·require('./index28.js'); | ||
1 | var·_ | 2 | var·_has·=·require('./index18.js'); |
2 | var·contains·=·require('./index43.js'); | ||
3 | var·isArguments·=·_tagTester('Arguments'); | ||
4 | //·Define·a·fallback·version·of·the·method·in·browsers·(ahem,·IE·<·9),·where | ||
5 | //·there·isn't·any·inspectable·"Arguments"·type. | ||
6 | (function()·{ | ||
7 | ····if·(!isArguments(arguments))·{ | ||
8 | ········isArguments·=·function(obj)·{ | ||
9 | ············return·_has(obj,·'callee'); | ||
3 | //·Produce·an·array·that·contains·every·item·shared·between·all·the | ||
4 | //·passed-in·arrays. | ||
5 | function·intersection(array)·{ | ||
6 | ····var·result·=·[]; | ||
7 | ····var·argsLength·=·arguments.length; | ||
8 | ····for·(var·i·=·0,·length·=·_getLength(array);·i·<·length;·i++)·{ | ||
9 | ········var·item·=·array[i]; | ||
10 | ········if·(contains(result,·item))·continue; | ||
11 | ········var·j; | ||
12 | ········for·(j·=·1;·j·<·argsLength;·j++)·{ | ||
13 | ············if·(!contains(arguments[j],·item))·break; | ||
14 | ········} | 10 | ········}; |
15 | ········if·(j·===·argsLength)·result.push(item); | ||
16 | ····} | 11 | ····} |
17 | ····return·result; | ||
18 | } | 12 | }()); |
13 | var·isArguments$1·=·isArguments; | ||
19 | module.exports·=·i | 14 | module.exports·=·isArguments$1; |
Offset 1, 13 lines modified | Offset 1, 8 lines modified | ||
1 | var· | 1 | var·_setup·=·require('./index25.js'); |
2 | var·_tagTester·=·require('./index28.js'); | ||
3 | //·Is·a·given·value·an·array? | ||
4 | //·Delegates·to·ECMA5's·native·`Array.isArray`. | ||
5 | var·isArray·=·_setup.nativeIsArray·||·_tagTester('Array'); | ||
2 | //·Invert·the·keys·and·values·of·an·object.·The·values·must·be·serializable. | ||
3 | function·invert(obj)·{ | ||
4 | ····var·result·=·{}; | ||
5 | ····var·_keys·=·keys(obj); | ||
6 | ····for·(var·i·=·0,·length·=·_keys.length;·i·<·length;·i++)·{ | ||
7 | ········result[obj[_keys[i]]]·=·_keys[i]; | ||
8 | ····} | ||
9 | ····return·result; | ||
10 | } | ||
11 | module.exports·=·i | 6 | module.exports·=·isArray; |
Offset 1, 30 lines modified | Offset 1, 5 lines modified | ||
1 | var·restArguments·=·require('./index132.js'); | ||
2 | var·isFunction·=·require('./index88.js'); | ||
3 | var·map·=·require('./index106.js'); | ||
4 | var·_deepGet·=·require('./index11.js'); | ||
5 | var·_t | 1 | var·_tagTester·=·require('./index28.js'); |
2 | var·isArrayBuffer·=·_tagTester('ArrayBuffer'); | ||
6 | //·Invoke·a·method·(with·arguments)·on·every·item·in·a·collection. | ||
7 | var·invoke·=·restArguments(function(obj,·path,·args)·{ | ||
8 | ····var·contextPath,·func; | ||
9 | ····if·(isFunction(path))·{ | ||
10 | ········func·=·path; | ||
11 | ····}·else·{ | ||
12 | ········path·=·_toPath(path); | ||
13 | ········contextPath·=·path.slice(0,·-1); | ||
14 | ········path·=·path[path.length·-·1]; | ||
15 | ····} | ||
16 | ····return·map(obj,·function(context)·{ | ||
17 | ········var·method·=·func; | ||
18 | ········if·(!method)·{ | ||
19 | ············if·(contextPath·&&·contextPath.length)·{ | ||
20 | ················context·=·_deepGet(context,·contextPath); | ||
21 | ············} | ||
22 | ············if·(context·==·null)·return·void·0; | ||
23 | ············method·=·context[path]; | ||
24 | ········} | ||
25 | ········return·method·==·null·?·method·:·method.apply(context,·args); | ||
26 | ····}); | ||
27 | }); | ||
28 | module.exports·=·i | 3 | module.exports·=·isArrayBuffer; |
Offset 1, 18 lines modified | Offset 1, 8 lines modified | ||
1 | var·_tagTester·=·require('./index29.js'); | ||
2 | var·_ | 1 | var·_setup·=·require('./index25.js'); |
3 | 2 | //·Is·a·given·value·a·boolean? | |
3 | function·isBoolean(obj)·{ | ||
4 | ····return·obj·===·true·||·obj·===·false·||·_setup.toString.call(obj)·===·'[object·Boolean]'; | ||
5 | } | ||
4 | //·Define·a·fallback·version·of·the·method·in·browsers·(ahem,·IE·<·9),·where | ||
5 | //·there·isn't·any·inspectable·"Arguments"·type. | ||
6 | (function()·{ | ||
7 | ····if·(!isArguments(arguments))·{ | ||
8 | ········isArguments·=·function(obj)·{ | ||
9 | ············return·_has(obj,·'callee'); | ||
10 | ········}; | ||
11 | ····} | ||
12 | }()); | ||
13 | var·isArguments$1·=·isArguments; | ||
14 | module.exports·=·is | 6 | module.exports·=·isBoolean; |
Offset 1, 8 lines modified | Offset 1, 16 lines modified | ||
1 | var·_setup·=·require('./index25.js'); | ||
2 | var·_tagTester·=·require('./index2 | 1 | var·_tagTester·=·require('./index28.js'); |
2 | var·isFunction·=·require('./index85.js'); | ||
3 | var·isArrayBuffer·=·require('./index76.js'); | ||
4 | var·_stringTagBug·=·require('./index27.js'); | ||
5 | var·isDataView·=·_tagTester('DataView'); | ||
3 | //·Is·a·given·value·an·array? | ||
4 | //·Delegates·to·ECMA5's·native·`Array.isArray`. | ||
5 | var·isArray·=·_setup.nativeIsArray·||·_tagTester('Array'); | ||
6 | //·In·IE·10·-·Edge·13,·we·need·a·different·heuristic | ||
7 | //·to·determine·whether·an·object·is·a·`DataView`. | ||
8 | function·ie10IsDataView(obj)·{ | ||
9 | ····return·obj·!=·null·&&·isFunction(obj.getInt8)·&&·isArrayBuffer(obj.buffer); | ||
10 | } | ||
11 | var·isDataView$1·=·(_stringTagBug.hasStringTagBug·?·ie10IsDataView·:·isDataView); | ||
6 | module.exports·=·is | 12 | module.exports·=·isDataView$1; |
Offset 1, 8 lines modified | Offset 1, 5 lines modified | ||
1 | var·_ | 1 | var·_tagTester·=·require('./index28.js'); |
2 | var·isDate·=·_tagTester('Date'); | ||
2 | //·Is·a·given·value·a·boolean? | ||
3 | function·isBoolean(obj)·{ | ||
4 | ····return·obj·===·true·||·obj·===·false·||·_setup.toString.call(obj)·===·'[object·Boolean]'; | ||
5 | } | ||
6 | module.exports·=·is | 3 | module.exports·=·isDate; |
Offset 1, 31 lines modified | Offset 1, 30 lines modified | ||
1 | var·_getLength·=·require('./index16.js'); | ||
2 | var·_s | 1 | var·_isArrayLike·=·require('./index20.js'); |
3 | var· | 2 | var·keys·=·require('./index101.js'); |
3 | var·_optimizeCb·=·require('./index24.js'); | ||
4 | //·Internal·helper·to·create·a·reducing·function,·iterating·left·or·right. | ||
5 | function·createReduce(dir)·{ | ||
6 | ····//·Wrap·code·that·reassigns·argument·variables·in·a·separate·function·than | ||
7 | ····//·the·one·that·accesses·`arguments.length`·to·avoid·a·perf·hit.·(#1991) | ||
8 | ····var·reducer·=·function(obj,·iteratee,·memo,·initial)·{ | ||
9 | ········var·_keys·=·!_isArrayLike(obj)·&&·keys(obj), | ||
10 | ············length·=·(_keys·||·obj).length, | ||
11 | ············index·=·dir·>·0·?·0·:·length·-·1; | ||
12 | ········if·(!initial)·{ | ||
13 | ············memo·=·obj[_keys·?·_keys[index]·:·index]; | ||
14 | ············index·+=·dir; | ||
4 | //·Internal·function·to·generate·the·`_.indexOf`·and·`_.lastIndexOf`·functions. | ||
5 | function·createIndexFinder(dir,·predicateFind,·sortedIndex)·{ | ||
6 | ····return·function(array,·item,·idx)·{ | ||
7 | ········var·i·=·0, | ||
8 | ············length·=·_getLength(array); | ||
9 | ········if·(typeof·idx·==·'number')·{ | ||
10 | ············if·(dir·>·0)·{ | ||
11 | ················i·=·idx·>=·0·?·idx·:·Math.max(idx·+·length,·i); | ||
12 | ············}·else·{ | ||
13 | ················length·=·idx·>=·0·?·Math.min(idx·+·1,·length)·:·idx·+·length·+·1; | ||
14 | ············} | ||
15 | ········}·else·if·(sortedIndex·&&·idx·&&·length)·{ | ||
16 | ············idx·=·sortedIndex(array,·item); | ||
17 | ············return·array[idx]·===·item·?·idx·:·-1; | ||
18 | ········} | 15 | ········} |
19 | ········if·(item·!==·item)·{ | ||
20 | ············idx·=·predicateFind(_setup.slice.call(array,·i,·length),·isNaN); | ||
21 | ········ | 16 | ········for·(;·index·>=·0·&&·index·<·length;·index·+=·dir)·{ |
17 | ············var·currentKey·=·_keys·?·_keys[index]·:·index; | ||
18 | ············memo·=·iteratee(memo,·obj[currentKey],·currentKey,·obj); | ||
22 | ········} | 19 | ········} |
23 | ········for·(idx·=·dir·>·0·?·i·:·length·-·1;·idx·>=·0·&&·idx·<·length;·idx·+=·dir)·{ | ||
24 | ············if·(array[idx]·===·item)·return·idx; | ||
25 | ········} | ||
26 | ········return· | 20 | ········return·memo; |
21 | ····}; | ||
22 | ····return·function(obj,·iteratee,·memo,·context)·{ | ||
23 | ········var·initial·=·arguments.length·>=·3; | ||
24 | ········return·reducer(obj,·_optimizeCb(iteratee,·context,·4),·memo,·initial); | ||
27 | ····}; | 25 | ····}; |
28 | } | 26 | } |
29 | module.exports·=·create | 27 | module.exports·=·createReduce; |
Offset 1, 5 lines modified | Offset 1, 11 lines modified | ||
1 | var·_group·=·require('./index17.js'); | ||
1 | var·_ | 2 | var·_has·=·require('./index18.js'); |
2 | va | 3 | //·Groups·the·object's·values·by·a·criterion.·Pass·either·a·string·attribute |
4 | //·to·group·by,·or·a·function·that·returns·the·criterion. | ||
5 | var·groupBy·=·_group(function(result,·value,·key)·{ | ||
6 | ····if·(_has(result,·key))·result[key].push(value); | ||
7 | ····else·result[key]·=·[value]; | ||
8 | }); | ||
3 | module.exports·=· | 9 | module.exports·=·groupBy; |
Offset 1, 16 lines modified | Offset 1, 20 lines modified | ||
1 | var·_ | 1 | var·_getLength·=·require('./index16.js'); |
2 | var·isFunction·=·require('./index88.js'); | ||
3 | var·isArray | 2 | var·isArray·=·require('./index75.js'); |
4 | var· | 3 | var·isString·=·require('./index94.js'); |
4 | var·isArguments·=·require('./index74.js'); | ||
5 | var·keys·=·require('./index101.js'); | ||
5 | var·isDataView·=·_tagTester('DataView'); | ||
6 | //·In·IE·10·-·Edge·13,·we·need·a·different·heuristic | ||
7 | //·to·determine·whether·an·object·is·a·`DataView`. | ||
8 | function·ie10IsDataView(obj)·{ | ||
9 | 6 | //·Is·a·given·array,·string,·or·object·empty? | |
7 | //·An·"empty"·object·has·no·enumerable·own-properties. | ||
8 | function·isEmpty(obj)·{ | ||
9 | ····if·(obj·==·null)·return·true; | ||
10 | ····//·Skip·the·more·expensive·`toString`-based·type·checks·if·`obj`·has·no | ||
11 | ····//·`.length`. | ||
12 | ····var·length·=·_getLength(obj); | ||
13 | ····if·(typeof·length·==·'number'·&&·( | ||
14 | ············isArray(obj)·||·isString(obj)·||·isArguments(obj) | ||
15 | ········))·return·length·===·0; | ||
16 | ····return·_getLength(keys(obj))·===·0; | ||
10 | } | 17 | } |
11 | var·isDataView$1·=·(_stringTagBug.hasStringTagBug·?·ie10IsDataView·:·isDataView); | ||
12 | module.exports·=·is | 18 | module.exports·=·isEmpty; |
Offset 1, 5 lines modified | Offset 1, 142 lines modified | ||
1 | var·underscore·=·require('./index147.js'); | ||
2 | var·_setup·=·require('./index25.js'); | ||
3 | var·_getByteLength·=·require('./index15.js'); | ||
4 | var·isTypedArray·=·require('./index129.js'); | ||
5 | var·isFunction·=·require('./index85.js'); | ||
6 | var·_stringTagBug·=·require('./index27.js'); | ||
7 | var·isDataView·=·require('./index78.js'); | ||
8 | var·keys·=·require('./index101.js'); | ||
1 | var·_ | 9 | var·_has·=·require('./index18.js'); |
10 | var·_toBufferView·=·require('./index29.js'); | ||
2 | 11 | //·We·use·this·string·twice,·so·give·it·a·name·for·minification. | |
12 | var·tagDataView·=·'[object·DataView]'; | ||
13 | //·Internal·recursive·comparison·function·for·`_.isEqual`. | ||
14 | function·eq(a,·b,·aStack,·bStack)·{ | ||
15 | ····//·Identical·objects·are·equal.·`0·===·-0`,·but·they·aren't·identical. | ||
16 | ····//·See·the·[Harmony·`egal`·proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal). | ||
17 | ····if·(a·===·b)·return·a·!==·0·||·1·/·a·===·1·/·b; | ||
18 | ····//·`null`·or·`undefined`·only·equal·to·itself·(strict·comparison). | ||
19 | ····if·(a·==·null·||·b·==·null)·return·false; | ||
20 | ····//·`NaN`s·are·equivalent,·but·non-reflexive. | ||
21 | ····if·(a·!==·a)·return·b·!==·b; | ||
22 | ····//·Exhaust·primitive·checks | ||
23 | ····var·type·=·typeof·a; | ||
24 | ····if·(type·!==·'function'·&&·type·!==·'object'·&&·typeof·b·!=·'object')·return·false; | ||
25 | ····return·deepEq(a,·b,·aStack,·bStack); | ||
26 | } | ||
27 | //·Internal·recursive·comparison·function·for·`_.isEqual`. | ||
28 | function·deepEq(a,·b,·aStack,·bStack)·{ | ||
29 | ····//·Unwrap·any·wrapped·objects. | ||
30 | ····if·(a·instanceof·underscore)·a·=·a._wrapped; | ||
31 | ····if·(b·instanceof·underscore)·b·=·b._wrapped; | ||
32 | ····//·Compare·`[[Class]]`·names. | ||
33 | ····var·className·=·_setup.toString.call(a); | ||
34 | ····if·(className·!==·_setup.toString.call(b))·return·false; | ||
35 | ····//·Work·around·a·bug·in·IE·10·-·Edge·13. | ||
36 | ····if·(_stringTagBug.hasStringTagBug·&&·className·==·'[object·Object]'·&&·isDataView(a))·{ | ||
37 | ········if·(!isDataView(b))·return·false; | ||
38 | ········className·=·tagDataView; | ||
39 | ····} | ||
40 | ····switch·(className)·{ | ||
41 | ········//·These·types·are·compared·by·value. | ||
42 | ········case·'[object·RegExp]': | ||
43 | ············//·RegExps·are·coerced·to·strings·for·comparison·(Note:·''·+·/a/i·===·'/a/i') | ||
44 | ········case·'[object·String]': | ||
45 | ············//·Primitives·and·their·corresponding·object·wrappers·are·equivalent;·thus,·`"5"`·is | ||
46 | ············//·equivalent·to·`new·String("5")`. | ||
47 | ············return·''·+·a·===·''·+·b; | ||
48 | ········case·'[object·Number]': | ||
49 | ············//·`NaN`s·are·equivalent,·but·non-reflexive. | ||
50 | ············//·Object(NaN)·is·equivalent·to·NaN. | ||
51 | ············if·(+a·!==·+a)·return·+b·!==·+b; | ||
52 | ············//·An·`egal`·comparison·is·performed·for·other·numeric·values. | ||
53 | ············return·+a·===·0·?·1·/·+a·===·1·/·b·:·+a·===·+b; | ||
54 | ········case·'[object·Date]': | ||
55 | ········case·'[object·Boolean]': | ||
56 | ············//·Coerce·dates·and·booleans·to·numeric·primitive·values.·Dates·are·compared·by·their | ||
57 | ············//·millisecond·representations.·Note·that·invalid·dates·with·millisecond·representations | ||
58 | ············//·of·`NaN`·are·not·equivalent. | ||
59 | ············return·+a·===·+b; | ||
60 | ········case·'[object·Symbol]': | ||
61 | ············return·_setup.SymbolProto.valueOf.call(a)·===·_setup.SymbolProto.valueOf.call(b); | ||
62 | ········case·'[object·ArrayBuffer]': | ||
63 | ········case·tagDataView: | ||
64 | ············//·Coerce·to·typed·array·so·we·can·fall·through. | ||
65 | ············return·deepEq(_toBufferView(a),·_toBufferView(b),·aStack,·bStack); | ||
66 | ····} | ||
67 | ····var·areArrays·=·className·===·'[object·Array]'; | ||
68 | ····if·(!areArrays·&&·isTypedArray(a))·{ | ||
69 | ········var·byteLength·=·_getByteLength(a); | ||
70 | ········if·(byteLength·!==·_getByteLength(b))·return·false; | ||
71 | ········if·(a.buffer·===·b.buffer·&&·a.byteOffset·===·b.byteOffset)·return·true; | ||
72 | ········areArrays·=·true; | ||
73 | ····} | ||
74 | ····if·(!areArrays)·{ | ||
75 | ········if·(typeof·a·!=·'object'·||·typeof·b·!=·'object')·return·false; | ||
76 | ········//·Objects·with·different·constructors·are·not·equivalent,·but·`Object`s·or·`Array`s | ||
77 | ········//·from·different·frames·are. | ||
78 | ········var·aCtor·=·a.constructor, | ||
79 | ············bCtor·=·b.constructor; | ||
80 | ········if·(aCtor·!==·bCtor·&&·!(isFunction(aCtor)·&&·aCtor·instanceof·aCtor·&& | ||
81 | ················isFunction(bCtor)·&&·bCtor·instanceof·bCtor)·&& | ||
82 | ············('constructor'·in·a·&&·'constructor'·in·b))·{ | ||
83 | ············return·false; | ||
84 | ········} | ||
85 | ····} | ||
86 | ····//·Assume·equality·for·cyclic·structures.·The·algorithm·for·detecting·cyclic | ||
87 | ····//·structures·is·adapted·from·ES·5.1·section·15.12.3,·abstract·operation·`JO`. | ||
88 | ····//·Initializing·stack·of·traversed·objects. | ||
89 | ····//·It's·done·here·since·we·only·need·them·for·objects·and·arrays·comparison. | ||
90 | ····aStack·=·aStack·||·[]; | ||
91 | ····bStack·=·bStack·||·[]; | ||
92 | ····var·length·=·aStack.length; | ||
93 | ····while·(length--)·{ | ||
94 | ········//·Linear·search.·Performance·is·inversely·proportional·to·the·number·of | ||
95 | ········//·unique·nested·structures. | ||
96 | ········if·(aStack[length]·===·a)·return·bStack[length]·===·b; | ||
97 | ····} | ||
98 | ····//·Add·the·first·object·to·the·stack·of·traversed·objects. | ||
99 | ····aStack.push(a); | ||
100 | ····bStack.push(b); | ||
101 | ····//·Recursively·compare·objects·and·arrays. | ||
102 | ····if·(areArrays)·{ | ||
103 | ········//·Compare·array·lengths·to·determine·if·a·deep·comparison·is·necessary. | ||
104 | ········length·=·a.length; | ||
105 | ········if·(length·!==·b.length)·return·false; | ||
106 | ········//·Deep·compare·the·contents,·ignoring·non-numeric·properties. | ||
107 | ········while·(length--)·{ | ||
108 | ············if·(!eq(a[length],·b[length],·aStack,·bStack))·return·false; | ||
109 | ········} | ||
110 | ····}·else·{ | ||
111 | ········//·Deep·compare·objects. | ||
112 | ········var·_keys·=·keys(a), | ||
113 | ············key; | ||
114 | ········length·=·_keys.length; | ||
115 | ········//·Ensure·that·both·objects·contain·the·same·number·of·properties·before·comparing·deep·equality. | ||
116 | ········if·(keys(b).length·!==·length)·return·false; | ||
117 | ········while·(length--)·{ | ||
118 | ············//·Deep·compare·each·member | ||
119 | ············key·=·_keys[length]; | ||
Max diff block lines reached; -1/6177 bytes (-0.02%) of diff not shown. |
Offset 1, 6 lines modified | Offset 1, 5 lines modified | ||
1 | var·_tagTester·=·require('./index28.js'); | ||
1 | //·Is·a·given·value·a·DOM·element? | ||
2 | function·isElement(obj)·{ | ||
3 | ····return·!!(obj·&&·obj.nodeType·===·1); | ||
4 | } | ||
2 | var·isError·=·_tagTester('Error'); | ||
5 | module.exports·=·isE | 3 | module.exports·=·isError; |
Offset 1, 20 lines modified | Offset 1, 9 lines modified | ||
1 | var·_ | 1 | var·_setup·=·require('./index25.js'); |
2 | var·isArray·=·require('./index78.js'); | ||
3 | var·isS | 2 | var·isSymbol·=·require('./index95.js'); |
4 | var·isArguments·=·require('./index77.js'); | ||
5 | var·keys·=·require('./index103.js'); | ||
3 | //·Is·a·given·object·a·finite·number? | ||
6 | //·Is·a·given·array,·string,·or·object·empty? | ||
7 | //·An·"empty"·object·has·no·enumerable·own-properties. | ||
8 | function·is | 4 | function·isFinite(obj)·{ |
5 | ····return·!isSymbol(obj)·&&·_setup._isFinite(obj)·&&·!isNaN(parseFloat(obj)); | ||
9 | ····if·(obj·==·null)·return·true; | ||
10 | ····//·Skip·the·more·expensive·`toString`-based·type·checks·if·`obj`·has·no | ||
11 | ····//·`.length`. | ||
12 | ····var·length·=·_getLength(obj); | ||
13 | ····if·(typeof·length·==·'number'·&&·( | ||
14 | ············isArray(obj)·||·isString(obj)·||·isArguments(obj) | ||
15 | ········))·return·length·===·0; | ||
16 | ····return·_getLength(keys(obj))·===·0; | ||
17 | } | 6 | } |
18 | module.exports·=·is | 7 | module.exports·=·isFinite; |
Offset 1, 142 lines modified | Offset 1, 17 lines modified | ||
1 | var· | 1 | var·_tagTester·=·require('./index28.js'); |
2 | var·_setup·=·require('./index25.js'); | 2 | var·_setup·=·require('./index25.js'); |
3 | var·_getByteLength·=·require('./index15.js'); | ||
4 | var·isTypedArray·=·require('./index135.js'); | ||
5 | var·isFunction·=·require('./index88.js'); | ||
6 | var·_stringTagBug·=·require('./index27.js'); | ||
7 | var·isDataView·=·require('./index81.js'); | ||
8 | var·keys·=·require('./index103.js'); | ||
9 | var·_has·=·require('./index18.js'); | ||
10 | var·_toBufferView·=·require('./index28.js'); | ||
3 | var·isFunction·=·_tagTester('Function'); | ||
11 | //·We·use·this·string·twice,·so·give·it·a·name·for·minification. | ||
12 | var·tagDataView·=·'[object·DataView]'; | ||
4 | //·Optimize·`isFunction`·if·appropriate.·Work·around·some·`typeof`·bugs·in·old | ||
5 | //·v8,·IE·11·(#1621),·Safari·8·(#1929),·and·PhantomJS·(#2236). | ||
6 | var·nodelist·=·_setup.root.document·&&·_setup.root.document.childNodes; | ||
7 | if·(typeof·/./·!=·'function'·&&·typeof·Int8Array·!=·'object'·&&·typeof·nodelist·!=·'function')·{ | ||
8 | ····isFunction·=·function(obj)·{ | ||
9 | ········return·typeof·obj·==·'function'·||·false; | ||
10 | ····}; | ||
13 | //·Internal·recursive·comparison·function·for·`_.isEqual`. | ||
14 | function·eq(a,·b,·aStack,·bStack)·{ | ||
15 | ····//·Identical·objects·are·equal.·`0·===·-0`,·but·they·aren't·identical. | ||
16 | ····//·See·the·[Harmony·`egal`·proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal). | ||
17 | ····if·(a·===·b)·return·a·!==·0·||·1·/·a·===·1·/·b; | ||
18 | ····//·`null`·or·`undefined`·only·equal·to·itself·(strict·comparison). | ||
19 | ····if·(a·==·null·||·b·==·null)·return·false; | ||
20 | ····//·`NaN`s·are·equivalent,·but·non-reflexive. | ||
21 | ····if·(a·!==·a)·return·b·!==·b; | ||
22 | ····//·Exhaust·primitive·checks | ||
23 | ····var·type·=·typeof·a; | ||
24 | ····if·(type·!==·'function'·&&·type·!==·'object'·&&·typeof·b·!=·'object')·return·false; | ||
25 | ····return·deepEq(a,·b,·aStack,·bStack); | ||
26 | } | 11 | } |
12 | var·isFunction$1·=·isFunction; | ||
27 | //·Internal·recursive·comparison·function·for·`_.isEqual`. | ||
28 | function·deepEq(a,·b,·aStack,·bStack)·{ | ||
29 | ····//·Unwrap·any·wrapped·objects. | ||
30 | ····if·(a·instanceof·underscore)·a·=·a._wrapped; | ||
31 | ····if·(b·instanceof·underscore)·b·=·b._wrapped; | ||
32 | ····//·Compare·`[[Class]]`·names. | ||
33 | ····var·className·=·_setup.toString.call(a); | ||
34 | ····if·(className·!==·_setup.toString.call(b))·return·false; | ||
35 | ····//·Work·around·a·bug·in·IE·10·-·Edge·13. | ||
36 | ····if·(_stringTagBug.hasStringTagBug·&&·className·==·'[object·Object]'·&&·isDataView(a))·{ | ||
37 | ········if·(!isDataView(b))·return·false; | ||
38 | ········className·=·tagDataView; | ||
39 | ····} | ||
40 | ····switch·(className)·{ | ||
41 | ········//·These·types·are·compared·by·value. | ||
42 | ········case·'[object·RegExp]': | ||
43 | ············//·RegExps·are·coerced·to·strings·for·comparison·(Note:·''·+·/a/i·===·'/a/i') | ||
44 | ········case·'[object·String]': | ||
45 | ············//·Primitives·and·their·corresponding·object·wrappers·are·equivalent;·thus,·`"5"`·is | ||
46 | ············//·equivalent·to·`new·String("5")`. | ||
47 | ············return·''·+·a·===·''·+·b; | ||
48 | ········case·'[object·Number]': | ||
49 | ············//·`NaN`s·are·equivalent,·but·non-reflexive. | ||
50 | ············//·Object(NaN)·is·equivalent·to·NaN. | ||
51 | ············if·(+a·!==·+a)·return·+b·!==·+b; | ||
52 | ············//·An·`egal`·comparison·is·performed·for·other·numeric·values. | ||
53 | ············return·+a·===·0·?·1·/·+a·===·1·/·b·:·+a·===·+b; | ||
54 | ········case·'[object·Date]': | ||
55 | ········case·'[object·Boolean]': | ||
56 | ············//·Coerce·dates·and·booleans·to·numeric·primitive·values.·Dates·are·compared·by·their | ||
57 | ············//·millisecond·representations.·Note·that·invalid·dates·with·millisecond·representations | ||
58 | ············//·of·`NaN`·are·not·equivalent. | ||
59 | ············return·+a·===·+b; | ||
60 | ········case·'[object·Symbol]': | ||
61 | ············return·_setup.SymbolProto.valueOf.call(a)·===·_setup.SymbolProto.valueOf.call(b); | ||
62 | ········case·'[object·ArrayBuffer]': | ||
63 | ········case·tagDataView: | ||
64 | ············//·Coerce·to·typed·array·so·we·can·fall·through. | ||
65 | ············return·deepEq(_toBufferView(a),·_toBufferView(b),·aStack,·bStack); | ||
66 | ····} | ||
67 | ····var·areArrays·=·className·===·'[object·Array]'; | ||
68 | ····if·(!areArrays·&&·isTypedArray(a))·{ | ||
69 | ········var·byteLength·=·_getByteLength(a); | ||
70 | ········if·(byteLength·!==·_getByteLength(b))·return·false; | ||
71 | ········if·(a.buffer·===·b.buffer·&&·a.byteOffset·===·b.byteOffset)·return·true; | ||
72 | ········areArrays·=·true; | ||
73 | ····} | ||
74 | ····if·(!areArrays)·{ | ||
75 | ········if·(typeof·a·!=·'object'·||·typeof·b·!=·'object')·return·false; | ||
76 | ········//·Objects·with·different·constructors·are·not·equivalent,·but·`Object`s·or·`Array`s | ||
77 | ········//·from·different·frames·are. | ||
78 | ········var·aCtor·=·a.constructor, | ||
79 | ············bCtor·=·b.constructor; | ||
80 | ········if·(aCtor·!==·bCtor·&&·!(isFunction(aCtor)·&&·aCtor·instanceof·aCtor·&& | ||
81 | ················isFunction(bCtor)·&&·bCtor·instanceof·bCtor)·&& | ||
82 | ············('constructor'·in·a·&&·'constructor'·in·b))·{ | ||
83 | ············return·false; | ||
84 | ········} | ||
85 | ····} | ||
86 | ····//·Assume·equality·for·cyclic·structures.·The·algorithm·for·detecting·cyclic | ||
87 | ····//·structures·is·adapted·from·ES·5.1·section·15.12.3,·abstract·operation·`JO`. | ||
88 | ····//·Initializing·stack·of·traversed·objects. | ||
89 | ····//·It's·done·here·since·we·only·need·them·for·objects·and·arrays·comparison. | ||
90 | ····aStack·=·aStack·||·[]; | ||
91 | ····bStack·=·bStack·||·[]; | ||
92 | ····var·length·=·aStack.length; | ||
93 | ····while·(length--)·{ | ||
94 | ········//·Linear·search.·Performance·is·inversely·proportional·to·the·number·of | ||
95 | ········//·unique·nested·structures. | ||
96 | ········if·(aStack[length]·===·a)·return·bStack[length]·===·b; | ||
97 | ····} | ||
98 | ····//·Add·the·first·object·to·the·stack·of·traversed·objects. | ||
99 | ····aStack.push(a); | ||
100 | ····bStack.push(b); | ||
101 | ····//·Recursively·compare·objects·and·arrays. | ||
102 | ····if·(areArrays)·{ | ||
103 | ········//·Compare·array·lengths·to·determine·if·a·deep·comparison·is·necessary. | ||
104 | ········length·=·a.length; | ||
105 | ········if·(length·!==·b.length)·return·false; | ||
106 | ········//·Deep·compare·the·contents,·ignoring·non-numeric·properties. | ||
107 | ········while·(length--)·{ | ||
108 | ············if·(!eq(a[length],·b[length],·aStack,·bStack))·return·false; | ||
109 | ········} | ||
110 | ····}·else·{ | ||
Max diff block lines reached; -1/6632 bytes (-0.02%) of diff not shown. |
Offset 1, 5 lines modified | Offset 1, 7 lines modified | ||
1 | var·_tagTester·=·require('./index2 | 1 | var·_tagTester·=·require('./index28.js'); |
2 | var·_stringTagBug·=·require('./index27.js'); | ||
3 | var·_methodFingerprint·=·require('./index23.js'); | ||
2 | var·isError· | 4 | var·isMap·=·_stringTagBug.isIE11·?·_methodFingerprint.ie11fingerprint(_methodFingerprint.mapMethods)·:·_tagTester('Map'); |
3 | module.exports·=·is | 5 | module.exports·=·isMap; |
Offset 1, 9 lines modified | Offset 1, 16 lines modified | ||
1 | var· | 1 | var·keys·=·require('./index101.js'); |
2 | var·isSymbol·=·require('./index98.js'); | ||
3 | //·Is·a·given·object·a·finite·number? | ||
4 | function·isFinite(obj)·{ | ||
5 | 2 | //·Returns·whether·an·object·has·a·given·set·of·`key:value`·pairs. | |
3 | function·isMatch(object,·attrs)·{ | ||
4 | ····var·_keys·=·keys(attrs), | ||
5 | ········length·=·_keys.length; | ||
6 | ····if·(object·==·null)·return·!length; | ||
7 | ····var·obj·=·Object(object); | ||
8 | ····for·(var·i·=·0;·i·<·length;·i++)·{ | ||
9 | ········var·key·=·_keys[i]; | ||
10 | ········if·(attrs[key]·!==·obj[key]·||·!(key·in·obj))·return·false; | ||
11 | ····} | ||
12 | ····return·true; | ||
6 | } | 13 | } |
7 | module.exports·=·is | 14 | module.exports·=·isMatch; |
Offset 1, 17 lines modified | Offset 1, 9 lines modified | ||
1 | var·_tagTester·=·require('./index29.js'); | ||
2 | var·_setup·=·require('./index25.js'); | 1 | var·_setup·=·require('./index25.js'); |
2 | var·isNumber·=·require('./index90.js'); | ||
3 | //·Is·the·given·value·`NaN`? | ||
4 | function·isNaN(obj)·{ | ||
5 | ····return·isNumber(obj)·&&·_setup._isNaN(obj); | ||
3 | var·isFunction·=·_tagTester('Function'); | ||
4 | //·Optimize·`isFunction`·if·appropriate.·Work·around·some·`typeof`·bugs·in·old | ||
5 | //·v8,·IE·11·(#1621),·Safari·8·(#1929),·and·PhantomJS·(#2236). | ||
6 | var·nodelist·=·_setup.root.document·&&·_setup.root.document.childNodes; | ||
7 | if·(typeof·/./·!=·'function'·&&·typeof·Int8Array·!=·'object'·&&·typeof·nodelist·!=·'function')·{ | ||
8 | ····isFunction·=·function(obj)·{ | ||
9 | ········return·typeof·obj·==·'function'·||·false; | ||
10 | ····}; | ||
11 | } | 6 | } |
12 | var·isFunction$1·=·isFunction; | ||
13 | module.exports·=·is | 7 | module.exports·=·isNaN; |
Offset 1, 7 lines modified | Offset 1, 6 lines modified | ||
1 | var·_tagTester·=·require('./index29.js'); | ||
2 | var·_stringTagBug·=·require('./index27.js'); | ||
3 | 1 | //·Is·a·given·value·equal·to·null? | |
2 | function·isNull(obj)·{ | ||
3 | ····return·obj·===·null; | ||
4 | } | ||
4 | var·isMap·=·_stringTagBug.isIE11·?·_methodFingerprint.ie11fingerprint(_methodFingerprint.mapMethods)·:·_tagTester('Map'); | ||
5 | module.exports·=·is | 5 | module.exports·=·isNull; |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | var·_cb·=·require('./index | 1 | var·_cb·=·require('./index2.js'); |
2 | var·_getLength·=·require('./index16.js'); | 2 | var·_getLength·=·require('./index16.js'); |
3 | //·Internal·function·to·generate·`_.findIndex`·and·`_.findLastIndex`. | 3 | //·Internal·function·to·generate·`_.findIndex`·and·`_.findLastIndex`. |
4 | function·createPredicateIndexFinder(dir)·{ | 4 | function·createPredicateIndexFinder(dir)·{ |
5 | ····return·function(array,·predicate,·context)·{ | 5 | ····return·function(array,·predicate,·context)·{ |
6 | ········predicate·=·_cb(predicate,·context); | 6 | ········predicate·=·_cb(predicate,·context); |
7 | ········var·length·=·_getLength(array); | 7 | ········var·length·=·_getLength(array); |
Offset 1, 16 lines modified | Offset 1, 5 lines modified | ||
1 | var· | 1 | var·_tagTester·=·require('./index28.js'); |
2 | var·isNumber·=·_tagTester('Number'); | ||
2 | //·Returns·whether·an·object·has·a·given·set·of·`key:value`·pairs. | ||
3 | function·isMatch(object,·attrs)·{ | ||
4 | ····var·_keys·=·keys(attrs), | ||
5 | ········length·=·_keys.length; | ||
6 | ····if·(object·==·null)·return·!length; | ||
7 | ····var·obj·=·Object(object); | ||
8 | ····for·(var·i·=·0;·i·<·length;·i++)·{ | ||
9 | ········var·key·=·_keys[i]; | ||
10 | ········if·(attrs[key]·!==·obj[key]·||·!(key·in·obj))·return·false; | ||
11 | ····} | ||
12 | ····return·true; | ||
13 | } | ||
14 | module.exports·=·is | 3 | module.exports·=·isNumber; |
Offset 1, 9 lines modified | Offset 1, 7 lines modified | ||
1 | //·Is·a·given·variable·an·object? | ||
1 | var·_setup·=·require('./index25.js'); | ||
2 | var·isNumber·=·require('./index93.js'); | ||
3 | //·Is·the·given·value·`NaN`? | ||
4 | function·is | 2 | function·isObject(obj)·{ |
5 | ···· | 3 | ····var·type·=·typeof·obj; |
4 | ····return·type·===·'function'·||·(type·===·'object'·&&·!!obj); | ||
6 | } | 5 | } |
7 | module.exports·=·is | 6 | module.exports·=·isObject; |
Offset 1, 6 lines modified | Offset 1, 5 lines modified | ||
1 | var·_tagTester·=·require('./index28.js'); | ||
1 | //·Is·a·given·value·equal·to·null? | ||
2 | function·isNull(obj)·{ | ||
3 | ····return·obj·===·null; | ||
4 | } | ||
2 | var·isRegExp·=·_tagTester('RegExp'); | ||
5 | module.exports·=·is | 3 | module.exports·=·isRegExp; |
Offset 1, 5 lines modified | Offset 1, 7 lines modified | ||
1 | var·_tagTester·=·require('./index2 | 1 | var·_tagTester·=·require('./index28.js'); |
2 | var·_stringTagBug·=·require('./index27.js'); | ||
3 | var·_methodFingerprint·=·require('./index23.js'); | ||
2 | var·is | 4 | var·isSet·=·_stringTagBug.isIE11·?·_methodFingerprint.ie11fingerprint(_methodFingerprint.setMethods)·:·_tagTester('Set'); |
3 | module.exports·=·is | 5 | module.exports·=·isSet; |
Offset 1, 7 lines modified | Offset 1, 5 lines modified | ||
1 | var·_tagTester·=·require('./index28.js'); | ||
1 | //·Is·a·given·variable·an·object? | ||
2 | function·isObject(obj)·{ | ||
3 | ····var·type·=·typeof·obj; | ||
4 | ····return·type·===·'function'·||·(type·===·'object'·&&·!!obj); | ||
5 | } | ||
2 | var·isString·=·_tagTester('String'); | ||
6 | module.exports·=·is | 3 | module.exports·=·isString; |
Offset 1, 5 lines modified | Offset 1, 5 lines modified | ||
1 | var·_tagTester·=·require('./index2 | 1 | var·_tagTester·=·require('./index28.js'); |
2 | var·is | 2 | var·isSymbol·=·_tagTester('Symbol'); |
3 | module.exports·=·is | 3 | module.exports·=·isSymbol; |
Offset 1, 7 lines modified | Offset 1, 10 lines modified | ||
1 | var·_tagTester·=·require('./index29.js'); | ||
2 | var·_stringTagBug·=·require('./index27.js'); | ||
3 | 1 | //·Returns·a·function·that·will·only·be·executed·on·and·after·the·Nth·call. | |
2 | function·after(times,·func)·{ | ||
3 | ····return·function()·{ | ||
4 | ········if·(--times·<·1)·{ | ||
5 | ············return·func.apply(this,·arguments); | ||
6 | ········} | ||
7 | ····}; | ||
8 | } | ||
4 | var·isSet·=·_stringTagBug.isIE11·?·_methodFingerprint.ie11fingerprint(_methodFingerprint.setMethods)·:·_tagTester('Set'); | ||
5 | module.exports·=· | 9 | module.exports·=·after; |
Offset 1, 5 lines modified | Offset 1, 6 lines modified | ||
1 | 1 | //·Is·a·given·variable·undefined? | |
2 | function·isUndefined(obj)·{ | ||
3 | ····return·obj·===·void·0; | ||
4 | } | ||
2 | var·isString·=·_tagTester('String'); | ||
3 | module.exports·=·is | 5 | module.exports·=·isUndefined; |
Offset 1, 5 lines modified | Offset 1, 7 lines modified | ||
1 | var·_tagTester·=·require('./index2 | 1 | var·_tagTester·=·require('./index28.js'); |
2 | var·_stringTagBug·=·require('./index27.js'); | ||
3 | var·_methodFingerprint·=·require('./index23.js'); | ||
2 | var·is | 4 | var·isWeakMap·=·_stringTagBug.isIE11·?·_methodFingerprint.ie11fingerprint(_methodFingerprint.weakMapMethods)·:·_tagTester('WeakMap'); |
3 | module.exports·=·is | 5 | module.exports·=·isWeakMap; |
Offset 1, 6 lines modified | Offset 1, 5 lines modified | ||
1 | var·_tagTester·=·require('./index28.js'); | ||
1 | //·Is·a·given·variable·undefined? | ||
2 | function·isUndefined(obj)·{ | ||
3 | ····return·obj·===·void·0; | ||
4 | } | ||
2 | var·isWeakSet·=·_tagTester('WeakSet'); | ||
5 | module.exports·=·is | 3 | module.exports·=·isWeakSet; |