Compare commits

...

5912 Commits

Author SHA1 Message Date
John-David Dalton
43fffe3200 Bump to v4.12.0. 2016-05-07 22:02:47 -07:00
John-David Dalton
1123e13072 Rebuild lodash and docs. 2016-05-07 22:02:40 -07:00
John-David Dalton
996636d25b Update lodash dep. 2016-05-07 19:31:52 -07:00
John-David Dalton
8864095bab Update firefox version in sauce. 2016-05-07 19:31:52 -07:00
John-David Dalton
def9f5d84a Fix doc typo for _.toPairsIn. [closes #2314] 2016-05-07 10:07:10 -07:00
John-David Dalton
47d024ae7b Use "index" instead of "nth". [closes #2313] [ci skip] 2016-05-07 06:55:24 -07:00
John-David Dalton
05135ca171 Update chrome version in sauce. 2016-05-06 22:58:22 -07:00
John-David Dalton
ca1f22a7c6 Ensure trailing function sources aren't skipping for _.assign, _.assignIn, _.defaults, & _.merge. [closes #2311] 2016-05-06 21:24:57 -07:00
John-David Dalton
9a461a5e48 Add _.toFinite. 2016-05-04 21:09:28 -07:00
John-David Dalton
73e7bab839 Add tooling section. [ci skip] 2016-05-04 17:17:14 -07:00
John-David Dalton
572060aedc Update fp description. [ci skip] 2016-05-04 17:17:01 -07:00
John-David Dalton
f1b63d41f8 Fix test fails for npm package builds. 2016-05-02 21:34:19 -07:00
John-David Dalton
9ee423edcf Add _.toPairs test for sets. 2016-05-02 21:04:00 -07:00
John-David Dalton
70c8651182 Use consistent b values. 2016-05-02 21:03:13 -07:00
John-David Dalton
2b54f23dad Add more stack tests. 2016-05-02 20:17:41 -07:00
John-David Dalton
67ef2bb008 Cleanup customizer test labels. 2016-05-02 20:17:13 -07:00
John-David Dalton
f2b5e58500 Minor hyphen nit. 2016-05-02 19:42:33 -07:00
John-David Dalton
b8fa0d9b29 Add large stack test to other cache tests. 2016-05-02 19:42:23 -07:00
John-David Dalton
264d68dec9 Add support for sets to _.toPairs methods. 2016-05-02 16:53:17 -07:00
John-David Dalton
71f5264ee1 Cleanup returns tags. [ci skip] 2016-05-02 16:51:59 -07:00
John-David Dalton
ce8a1feb94 Avoid paving modified lodash for coverage runs in travis. 2016-05-02 13:31:03 -07:00
John-David Dalton
05c32044e9 Remove extraneous isArrayLikeObject check from isFlattenable. 2016-05-02 13:08:51 -07:00
John-David Dalton
44927be6e2 Drop version from license header. [ci skip] 2016-05-02 10:52:53 -07:00
John-David Dalton
d1779d6cdd Fix phantomjs test fails. 2016-05-02 10:01:17 -07:00
John-David Dalton
a13d640bcc Test internal caches instead of cache modules. 2016-05-02 08:51:44 -07:00
John-David Dalton
c7d4106f66 Add private tags back to map methods. [ci skip] 2016-05-02 07:15:32 -07:00
John-David Dalton
2e59faad8f Fix module paths. 2016-05-02 00:34:58 -07:00
John-David Dalton
6d70b64b2e Ensure module tests ran for coverage. 2016-05-02 00:00:19 -07:00
John-David Dalton
767f9c6bce Simplify module assignment. 2016-05-01 23:37:13 -07:00
John-David Dalton
edd7c2f0b1 Cleanup travis tests. 2016-05-01 23:24:30 -07:00
John-David Dalton
b9cfd31bd5 Add modular build to coverage tests. 2016-05-01 21:00:58 -07:00
John-David Dalton
6883f99141 Add tests for map caches. 2016-05-01 19:12:03 -07:00
John-David Dalton
c2aee218d2 Add promise case to code removal for coverage run. 2016-05-01 19:11:49 -07:00
Greenkeeper
8e44d73705 Update markdown-doctest to 0.4.0. 2016-05-01 19:10:44 -07:00
Anders D. Johnson
9e30cc4542 Fix docs typo space after sentence in _.merge. 2016-05-01 19:09:18 -07:00
John-David Dalton
963e2c23b0 Upgrade to qunit-extras 2.0. 2016-04-30 11:59:06 -07:00
Jeroen Engels
7ee4bf8d02 Remove duplicate method from FP mapping. 2016-04-30 10:43:42 -07:00
John-David Dalton
c3c6bc9666 Cleanup markdown-doctest-setup. 2016-04-29 11:57:41 -07:00
Nick Johnstone
ef1024bb60 Test documentation with markdown-doctest. 2016-04-29 10:32:43 -07:00
John-David Dalton
6c6e1c2be3 Use array and iteratee. [ci skip] 2016-04-28 22:08:28 -07:00
John-David Dalton
e9a08ba9a9 Use https for Alex's blog. [ci skip] 2016-04-28 21:30:22 -07:00
John-David Dalton
59546b9989 Update conduct link in contributing text. [ci skip] 2016-04-28 21:26:46 -07:00
John-David Dalton
816edcce2e Rename getPlaceholder to getHolder. 2016-04-28 14:55:25 -07:00
Greenkeeper
8accfb3372 Update fs-extra to 0.30.0. 2016-04-28 10:56:16 -07:00
John-David Dalton
da146a9afd Add map doc note to _.toPairs and _.toPairsIn. [ci skip] 2016-04-28 10:56:15 -07:00
John-David Dalton
cbcd5ffdc4 Add node_js v6 to travis. 2016-04-27 08:04:33 -07:00
Clinton Montague
6f600ebeac Add _.flip bitmask value to createWrapper documentation. [ci skip] 2016-04-26 16:58:50 -07:00
John-David Dalton
9aa456f26f Use lodashStable.toArray in more places. 2016-04-25 00:04:33 -07:00
John-David Dalton
dc77d7605d Add _.toArray tests for maps. 2016-04-24 23:56:22 -07:00
John-David Dalton
f7c4410f41 Add support for converting maps to _.toPairs and _.toPairsIn. 2016-04-24 23:56:00 -07:00
John-David Dalton
9fa0ec00b8 Remove unneeded var assignment. 2016-04-23 11:43:15 -07:00
John-David Dalton
0125ff7303 Cleanup fp test labels and args tests. 2016-04-23 11:31:14 -07:00
John-David Dalton
fbc91cf7ae Add iteratee arity hints to forEach methods. [closes #2277] 2016-04-23 11:29:52 -07:00
John-David Dalton
43c26b5d6f Ensure matches methods match arrays with duplicate values. [closes #2270] 2016-04-22 23:02:54 -07:00
John-David Dalton
4e38f70e0e Update cache implementations. 2016-04-22 23:02:46 -07:00
John-David Dalton
e2c86dac63 Ensure fp.update does not convert end of path to an object. [closes #2271] 2016-04-22 08:46:35 -07:00
John-David Dalton
aebc0650f8 Simplify _.concat. 2016-04-22 08:32:19 -07:00
John-David Dalton
44cf971405 Bump to v4.11.2. 2016-04-21 08:29:44 -07:00
John-David Dalton
c0d7418054 Rebuild lodash and docs. 2016-04-21 08:29:44 -07:00
John-David Dalton
a0db54b53f Add tests for _.sortedIndex with nulls and symbols. 2016-04-21 08:29:44 -07:00
John-David Dalton
32b813e42b Ensure sortedIndex methods align with sortBy for symbols. 2016-04-21 06:56:07 -07:00
John-David Dalton
3c144b8601 Ensure _.sortBy moves symbols to the end. 2016-04-21 01:01:00 -07:00
John-David Dalton
076e4e6db5 Add math operator method tests for objects. 2016-04-21 01:00:59 -07:00
John-David Dalton
2ea08ccd36 Add math operator method tests for symbols. 2016-04-21 00:44:56 -07:00
John-David Dalton
fc48518f2b Move toKey from baseProperty to property. 2016-04-20 18:12:16 -07:00
John-David Dalton
594c3b3406 Update @see tags. [ci skip] 2016-04-20 17:25:04 -07:00
John-David Dalton
38edd713e4 Ensure punctuation is not treated as words. [closes #2268] 2016-04-20 16:23:46 -07:00
John-David Dalton
6987d70dc2 Only avoid converting -0 to 0 if comparator is provided. 2016-04-20 16:05:21 -07:00
John-David Dalton
0e4b307585 Update full build kb. [ci skip] 2016-04-20 07:49:45 -07:00
John-David Dalton
c81bbe95c6 Use an anchor title. [ci skip] 2016-04-20 07:49:44 -07:00
John-David Dalton
b21a87b50f Fix createSet feature test for Safari 8. 2016-04-20 07:49:44 -07:00
John-David Dalton
e3566eb1ce Use Set only if it coerces -0 correctly. 2016-04-20 01:24:00 -07:00
John-David Dalton
0429434dbb Ensure -0 is treated as 0. 2016-04-20 00:51:25 -07:00
John-David Dalton
80f35ee713 Add _.uniq tests for -0. 2016-04-20 00:25:31 -07:00
John-David Dalton
224595c837 Move links to the top of the readme. 2016-04-19 23:59:20 -07:00
John-David Dalton
61ace9a24b Remove code of conduct doc. 2016-04-19 23:59:14 -07:00
John-David Dalton
8c630ede7e Cleanup package.json. 2016-04-19 23:07:06 -07:00
John-David Dalton
ca3b583695 Add wrapped values tests. 2016-04-19 17:42:46 -07:00
John-David Dalton
c2cbb06d57 Add _.difference and _.intersection tests for -0. 2016-04-19 16:57:41 -07:00
John-David Dalton
f6bf8d2e6d Cleanup -0 tests. 2016-04-19 12:38:00 -07:00
John-David Dalton
60c89b2754 Add _.invoke test for -0 key. 2016-04-19 12:37:47 -07:00
John-David Dalton
b72fba911d Cleanup wrapper resets and add assert for returning function object values. 2016-04-19 11:26:55 -07:00
John-David Dalton
3930c388e4 Fix Safari 9.0 flaky test fail. 2016-04-19 10:23:03 -07:00
John-David Dalton
ddf5ef0839 Add even more -0 tests. 2016-04-19 08:24:33 -07:00
John-David Dalton
c66947405b Add omit and pick tests for -0 keys. 2016-04-19 00:24:09 -07:00
John-David Dalton
ad27b62343 Add tests for -0 keys. 2016-04-19 00:23:16 -07:00
John-David Dalton
5283b0f407 Use _.startCase. 2016-04-18 22:30:24 -07:00
John-David Dalton
af41f9267a Add test for combining enclosing circle backslash. 2016-04-18 22:03:56 -07:00
John-David Dalton
6e8c984250 Use toKey in more functions. 2016-04-18 21:33:32 -07:00
John-David Dalton
c2e018b2ac Avoid rate limiting by Sauce. 2016-04-18 21:23:09 -07:00
John-David Dalton
a47ce3cf13 Simplify building lodash. 2016-04-18 20:56:58 -07:00
John-David Dalton
ba58f35f37 Add arguments object test for values methods. 2016-04-18 17:48:26 -07:00
Greenkeeper
30fd1693ee Update fs-extra to 0.28.0. 2016-04-18 08:30:33 -07:00
John-David Dalton
161c17ce7f Consolidate returns in trim methods. 2016-04-17 21:55:43 -07:00
John-David Dalton
27dfe542bd Use baseToString in _.truncate. 2016-04-17 07:18:39 -07:00
John-David Dalton
353113f17f Start to add @see tags. [ci skip] 2016-04-16 21:48:22 -07:00
John-David Dalton
762e858c48 Use isSymbol instead of baseToNumber to fix _.toNumber test fails. 2016-04-16 20:45:10 -07:00
John-David Dalton
db49702046 Remove unsafe_comps uglify option to fix minified builds. 2016-04-16 20:16:38 -07:00
John-David Dalton
7239bf791f Comma nit in _.inRange doc. [ci skip] 2016-04-16 18:16:27 -07:00
John-David Dalton
9cb75cae1d Add jsdocs for baseToNumber and baseToString. 2016-04-16 18:00:31 -07:00
John-David Dalton
fdb4cf1208 Use baseToString in more places and refactor isIndex and isKeyable. 2016-04-16 07:32:06 -07:00
John-David Dalton
714cf7b18c Add baseGt, baseLt, baseToNumber, baseToString, and createRelationalOperation. 2016-04-15 07:17:48 -07:00
John-David Dalton
1a1e0e1a6b Ensure _.pullAt sorts indexes greater than 9 correctly. [closes #2254] 2016-04-15 07:17:48 -07:00
John-David Dalton
f6c14ec31f Add jscs "disallowUnusedVariables" rule. 2016-04-15 07:17:48 -07:00
John-David Dalton
da7f413f6f Update jscs to 3.0.1 and fs-extra to 0.27.0. 2016-04-15 07:17:34 -07:00
John-David Dalton
3cf28953a7 Update code of conduct to point to the jQuery Foundation's policy. [ci skip] 2016-04-14 11:11:08 -07:00
John-David Dalton
080b761f7f Update export doc note. [ci skip] 2016-04-14 08:37:19 -07:00
John-David Dalton
7f6ad484ec Bump to v4.11.1. 2016-04-13 22:09:00 -07:00
John-David Dalton
391a930d49 Rebuild lodash and docs. 2016-04-13 22:09:00 -07:00
John-David Dalton
a532773703 Cleanup debounce and throttle tests. 2016-04-13 22:08:55 -07:00
John-David Dalton
49f8aa4289 Fix failing debounce test. 2016-04-13 18:17:07 -07:00
ben robbins
44b9b085c0 Add test for _.debounce with a wait of 0. 2016-04-13 18:16:50 -07:00
John-David Dalton
a447353977 Add pluck fp alias of map. 2016-04-13 14:22:40 -07:00
John-David Dalton
dea6ccbf43 Bump to v4.11.0. 2016-04-13 09:57:13 -07:00
John-David Dalton
0c4d8836e7 Rebuild lodash and docs. 2016-04-13 09:57:03 -07:00
Jeroen Engels
ef67e07732 Fix doc nits for _.nth. [ci skip] 2016-04-13 09:52:37 -07:00
John-David Dalton
7e885a4ddd Add _.words unit test for contractions. 2016-04-13 08:21:17 -07:00
John-David Dalton
a3c1f42708 Add _.nth and _.nthArg tests. 2016-04-13 01:09:12 -07:00
John-David Dalton
d3ef5a3acb Use noop instead of alwaysUndefined. 2016-04-13 01:09:12 -07:00
John-David Dalton
5098d63a22 Update qunit to 1.23.1. 2016-04-12 22:38:49 -07:00
John-David Dalton
4275a73170 Add support for contractions to case methods. 2016-04-12 21:48:52 -07:00
John-David Dalton
78a157d675 Move _.map test order around. 2016-04-12 21:48:52 -07:00
John-David Dalton
97a437e8e6 Return implicit undefined. 2016-04-12 10:02:24 -07:00
John-David Dalton
3c37f290a8 Add unwrapped chain test for nth. 2016-04-12 09:38:22 -07:00
John-David Dalton
dcd5d470e0 Use baseUnary to avoid passing incorrect arity hints to baseIteratee. 2016-04-12 08:27:41 -07:00
John-David Dalton
b424f3b60f Ensure fp.over doesn't cap its iteratee args. 2016-04-12 08:14:04 -07:00
John-David Dalton
201ea9a9f0 Add shorthand tests for sortBy and over methods. 2016-04-11 22:46:38 -07:00
John-David Dalton
2469af6c3f Add _.nth. 2016-04-11 22:46:33 -07:00
John-David Dalton
bfe6e06b5a Ensure _.sortBy works with the matchesProperty shorthand. 2016-04-11 17:38:03 -07:00
John-David Dalton
091b5fbe30 Make _.head avoid accessing array when its length is 0. 2016-04-11 17:34:49 -07:00
John-David Dalton
93168e6018 Use references to String#replace and String#split. 2016-04-11 17:29:22 -07:00
John-David Dalton
16ed081818 Absorb copyObjectWith into copyObject. 2016-04-11 17:28:19 -07:00
John-David Dalton
c38b4b29cf Avoid unnecessary array cloning in createRecurryWrapper and mergeData. 2016-04-11 17:27:04 -07:00
John-David Dalton
a20b88d114 Bump to v4.10.0. 2016-04-10 22:44:04 -07:00
John-David Dalton
87912a3b3f Rebuild lodash and docs. 2016-04-10 22:42:52 -07:00
John-David Dalton
53bde1238c Replace "invoking" with "and invokes". [ci skip] 2016-04-10 22:40:38 -07:00
John-David Dalton
fd365c27e2 Add doc comments to the minify file util. [ci skip] 2016-04-10 22:40:38 -07:00
John-David Dalton
4f43841699 Add doc comments to the common file util. [ci skip] 2016-04-10 22:40:38 -07:00
John-David Dalton
e60e97c03f Ensure _.debounce queues a trailing call after maxWait. [closes #2229] 2016-04-10 20:50:51 -07:00
Greenkeeper
e619f8ca83 Update webpack to 1.12.15. 2016-04-10 20:02:01 -07:00
John-David Dalton
cf2f538167 Add castSlice and rename cast related helpers. 2016-04-09 13:57:45 -07:00
John-David Dalton
17e1a6dbe8 Ensure _.slice handles a limit of 0 in Node 0.10. 2016-04-09 00:53:07 -07:00
John-David Dalton
74f6af8686 Update fp aliases. 2016-04-08 17:59:18 -07:00
John-David Dalton
351236f526 Rearrange regexp vars. 2016-04-08 16:32:15 -07:00
John-David Dalton
51ad056710 Remove redundant param descriptions. [ci skip] 2016-04-08 15:04:07 -07:00
John-David Dalton
6512b7f925 Update "over" method iteratee descriptions. [ci skip] 2016-04-08 15:03:06 -07:00
John-David Dalton
c7264e3f1f Add isIterateeCall check to _.split. 2016-04-08 11:03:18 -07:00
John-David Dalton
349ec35c48 Add flow test for handling an empty array. 2016-04-08 11:03:18 -07:00
John-David Dalton
057dd5b0a8 Minor escapeRegExp test nit. 2016-04-08 11:03:18 -07:00
John-David Dalton
f6ac7cb1a1 Shorten chars string coersion. 2016-04-08 11:03:18 -07:00
John-David Dalton
c1958daf65 Update handling of limit to the current es6 draft. 2016-04-08 11:03:10 -07:00
John-David Dalton
ee73c9b436 Bump to v4.9.0. 2016-04-08 02:07:13 -07:00
John-David Dalton
fac5e727e6 Rebuild lodash and docs. 2016-04-08 02:07:13 -07:00
John-David Dalton
977264f55b Fix split test fails across enviros. 2016-04-08 02:07:13 -07:00
John-David Dalton
e776e679af Ensure _.split works with emojis. 2016-04-08 01:20:49 -07:00
John-David Dalton
23901dfd45 Update docdown. 2016-04-07 21:43:33 -07:00
John-David Dalton
87444e1a45 Add sumBy tests. 2016-04-07 21:43:33 -07:00
John-David Dalton
dc63bc2bd9 Fix dynamic test labels for groups of methods. 2016-04-07 21:43:33 -07:00
John-David Dalton
f4ff4f29b1 Simplify toSource. 2016-04-07 21:43:32 -07:00
John-David Dalton
06412d5f12 Remove Hash use from Uglify options because it breaks it. 2016-04-07 21:43:32 -07:00
John-David Dalton
bbc84903a7 Update istanbul to 0.4.3. 2016-04-07 21:43:32 -07:00
John-David Dalton
e014592ea0 Fix typo in Hash descripton. [ci skip] 2016-04-07 21:43:32 -07:00
John-David Dalton
4305ffde18 Add commas. [ci skip] 2016-04-07 21:43:32 -07:00
John-David Dalton
0588dcb3e9 Add Hash util and split out file helper. 2016-04-07 21:43:27 -07:00
John-David Dalton
58afd8c364 Update debounce article links. [ci skip] 2016-04-06 14:10:56 -07:00
John-David Dalton
e120d63ee2 Add doc note about group ordering of _.groupBy. [ci skip] [closes #2212] 2016-04-06 07:59:05 -07:00
John-David Dalton
d7f43eba6a Make exceptions to fp argument ordering stand out. [ci skip] 2016-04-05 23:53:05 -07:00
John-David Dalton
786a92669e Update chaining note. [ci skip] 2016-04-05 23:53:05 -07:00
John-David Dalton
504aead673 Add placeholders section. [ci skip] 2016-04-05 23:52:49 -07:00
John-David Dalton
8c72ffc583 Add more fp browser usage examples. [ci skip] 2016-04-05 23:50:18 -07:00
John-David Dalton
27d3311b6a Don't spell out two hundred. [ci skip] 2016-04-05 23:50:18 -07:00
John-David Dalton
5e2f113d50 Update vendor/backbone to v1.3.3. 2016-04-05 23:50:18 -07:00
Greenkeeper
55e7b8764e Update jquery to 2.2.3. 2016-04-05 23:50:18 -07:00
John-David Dalton
513c0ae64d Update list of fp methods with spread arguments. [ci skip] 2016-04-05 23:50:17 -07:00
John-David Dalton
f0f6a1e382 Simplify deep path doc examples. [ci skip] 2016-04-05 08:44:14 -07:00
John-David Dalton
6f3fb587e2 Simplify deep property tests. 2016-04-05 08:39:09 -07:00
John-David Dalton
083c5b703a Add _.matchesProperty test for matching undefined values of nested objects. 2016-04-05 08:23:34 -07:00
John-David Dalton
3583c56067 Replace double quotes with ticks. [ci skip] 2016-04-05 08:08:31 -07:00
John-David Dalton
9999199d2b Enable over methods to accept matchesProperty shorthands. 2016-04-05 08:06:44 -07:00
John-David Dalton
c084e358bd Bump to v4.8.2. 2016-04-04 15:48:17 -07:00
John-David Dalton
238d45a2cb Rebuild lodash and docs. 2016-04-04 15:48:17 -07:00
John-David Dalton
21d056c470 Break code comments up to display better in the wiki. [ci skip] 2016-04-04 15:48:16 -07:00
John-David Dalton
0308d4de62 Remove skipFixed methods from fixed arity listings. [ci skip] 2016-04-04 11:47:52 -07:00
John-David Dalton
f2a6f6ce6a Update lodash dev dep. 2016-04-04 11:47:52 -07:00
John-David Dalton
cf5d6b5bc8 Revert #2193. 2016-04-04 11:47:46 -07:00
John-David Dalton
7a6b64b2f6 Bump to v4.8.1. 2016-04-04 11:43:03 -07:00
John-David Dalton
bca11bd21e Rebuild lodash and docs. 2016-04-04 11:42:50 -07:00
John-David Dalton
bf39a31907 Fix typo in _falseOptions.jst. 2016-04-04 08:51:04 -07:00
John-David Dalton
792bfbb604 Bump to v4.8.0. 2016-04-03 23:47:26 -07:00
John-David Dalton
1ef96896d5 Rebuild lodash and docs. 2016-04-03 23:47:26 -07:00
John-David Dalton
2293de07a7 Add _falseOptions module. 2016-04-03 23:47:26 -07:00
John-David Dalton
804ad3d805 Move private key higher. [ci skip] 2016-04-03 22:44:28 -07:00
John-David Dalton
c797f83ca5 Add fp convert test for unconverted methods. 2016-04-03 21:55:30 -07:00
John-David Dalton
a71ac53fa7 Add jsdoc comments to fp/_baseConvert. [ci skip] 2016-04-03 21:55:30 -07:00
John-David Dalton
7165ef6f5e Minor doc tweak to _.rearg. [ci skip] 2016-04-03 21:55:30 -07:00
John-David Dalton
c01e0cd7d1 Simplify references to partial or provided arguments. [ci skip] 2016-04-03 21:55:30 -07:00
John-David Dalton
a5990a4c4e Use thru instead of through in docs. [ci skip] 2016-04-03 21:55:30 -07:00
John-David Dalton
75d196b01b Allow convert to work on methods that aren't converted by default. 2016-04-03 21:55:08 -07:00
John-David Dalton
69ce7cde7d Convert methods not found in aryMethod mapping. 2016-04-02 22:49:17 -07:00
John-David Dalton
6861734010 Add matchesStrictComparable helper. 2016-04-02 14:49:25 -07:00
John-David Dalton
0f75d967d0 Add convert method to modules that pass thru. 2016-04-02 14:19:19 -07:00
John-David Dalton
012bff97e0 Add fp/placeholder module. 2016-04-02 14:19:13 -07:00
John-David Dalton
2b58525816 Update many es5 spec links to es6. [ci skip] 2016-04-02 10:33:13 -07:00
John-David Dalton
579cf00d10 Update _.isNaN doc note with a reference to Number.isNaN. [ci skip] 2016-04-02 08:02:36 -07:00
John-David Dalton
cfd25cec75 Minor Lodash letter case nit in readme. [ci skip] 2016-04-02 08:01:35 -07:00
John-David Dalton
c267c4e06b Excuse Underscore _.chunk test. 2016-04-01 20:56:19 -07:00
John-David Dalton
c4a78445b3 Add _.isNative test for Promise. 2016-04-01 19:17:52 -07:00
John-David Dalton
4c8836a24a Cleanup _.isNative. 2016-04-01 19:06:36 -07:00
John-David Dalton
972624297b Add variation to falsey _.slice test. 2016-04-01 18:18:37 -07:00
John-David Dalton
ebf9904e8a Add toSource helper. 2016-04-01 18:18:37 -07:00
John-David Dalton
64652c263f Update _.map doc note on guarded methods. [ci skip] 2016-04-01 18:18:37 -07:00
John-David Dalton
58f93567fc Make _.sampleSize default n to 1 instead of 0. 2016-04-01 18:18:37 -07:00
John-David Dalton
f599c4817a Make _.chunk default size to 1 instead of 0. 2016-04-01 18:18:36 -07:00
John-David Dalton
930b034da5 Make _.repeat default n to 1 instead of 0. 2016-04-01 18:18:36 -07:00
John-David Dalton
c21174f7f9 Add bizarro test for _.isEmpty. 2016-04-01 18:18:36 -07:00
John-David Dalton
e22be612e2 Remove dataViewCtorString branch of getTag for coverage tests. 2016-04-01 18:18:36 -07:00
Craig Martin
669bc1520e Run scripts synchronous in foreground. 2016-04-01 18:18:27 -07:00
John-David Dalton
b257bb9c9e Allow over, overEvery, and overSome to accept matchesProperty shorthands. [closes #2193] 2016-04-01 09:14:13 -07:00
John-David Dalton
b8096df6d8 Fix leaked var. 2016-04-01 09:13:54 -07:00
greenkeeperio-bot
43d530ead9 Update dojo to 1.11.1. 2016-04-01 09:10:36 -07:00
John-David Dalton
9dbd665d05 Space nit in _.toNumber. [ci skip] 2016-04-01 09:10:36 -07:00
John-David Dalton
3902fd1a67 Ensure has treats nested sparse arrays consistently. 2016-04-01 09:10:35 -07:00
John-David Dalton
642d248f99 Cleanup deep property tests of has methods. 2016-04-01 09:10:35 -07:00
John-David Dalton
8bd9a4d2c3 Ensure _.has returns false for nullish objects. [closes #2190] 2016-04-01 09:10:24 -07:00
John-David Dalton
e96ee69f1c Remove rogue comment delimiter from fp wiki template. [ci skip] 2016-04-01 09:10:24 -07:00
John-David Dalton
5bb899a700 Add array path examples to _.set and _.unset docs. [ci skip] 2016-04-01 09:10:24 -07:00
John-David Dalton
431e0fa2f6 Add line number to error message in web worker. 2016-04-01 09:10:24 -07:00
John-David Dalton
ec92292c38 Wrap funcToString call in _.isNative in a try-catch. 2016-04-01 09:10:24 -07:00
Oskar Segersvärd
45953b2ac1 Set the jsdoc type of apply's args parameter to Array. [ci skip] 2016-04-01 09:10:24 -07:00
John-David Dalton
d9f93d0895 Increment package version to enable ci tests. 2016-04-01 09:10:24 -07:00
John-David Dalton
252ea445ca Bump to v4.7.0. 2016-03-31 00:51:19 -07:00
John-David Dalton
9826d9bd46 Rebuild lodash and docs. 2016-03-31 00:51:19 -07:00
John-David Dalton
b53f178c46 Sort reargs and aliases in fp wiki template. 2016-03-31 00:51:19 -07:00
John-David Dalton
5ad5eb8f5d Add divide and multiply to lodash doc block. [ci skip] 2016-03-31 00:28:04 -07:00
John-David Dalton
7add87739a Add _.concat test for shallow cloning array. 2016-03-30 23:32:21 -07:00
John-David Dalton
2cd12c38e3 Temporarily remove ghooks. 2016-03-30 21:27:19 -07:00
Jordan Eldredge
ad72b5b565 Simplify _.result. 2016-03-30 19:52:46 -07:00
Craig Martin
608e74a111 Ensure all background jobs finish before continuing. 2016-03-30 19:50:23 -07:00
John-David Dalton
c36d0af5cd Avoid a JIT bug in Safari 9 for baseIteratee. 2016-03-30 19:50:13 -07:00
John-David Dalton
55c3299d5c Use getIteratee in more places. 2016-03-30 12:17:28 -07:00
greenkeeperio-bot
7a3dda6105 Update ghooks to 1.1.1. 2016-03-30 08:43:30 -07:00
John-David Dalton
171d9eab78 Use copyArray in concat. 2016-03-30 08:43:30 -07:00
John-David Dalton
ab9d2056da Add bindKey to fp aryMethod mapping. 2016-03-30 08:43:30 -07:00
John-David Dalton
4310329971 Add bind and bindKey to fp skipRearg mapping. 2016-03-30 08:43:30 -07:00
John-David Dalton
d038315f61 Add link to github reactions. [ci skip] 2016-03-30 00:54:28 -07:00
John-David Dalton
c0f91c9169 Minor newline nits. 2016-03-29 22:51:25 -07:00
John-David Dalton
519a02ff34 Update fred ages in doc examples. [ci skip] 2016-03-29 22:33:43 -07:00
John-David Dalton
643ce1da74 Revert createPadding behavior for chars that coerce to empty strings. 2016-03-29 22:23:00 -07:00
greenkeeperio-bot
4c789197f9 Update chalk to 1.1.3 and opt-cli to 1.4.0. 2016-03-29 22:22:12 -07:00
John-David Dalton
277c9bdc7c Make shouldInvoke explicitly return true if it's the first call. 2016-03-29 09:53:35 -07:00
John-David Dalton
455eace9c5 Cleanup _.debounce tests. 2016-03-29 00:28:43 -07:00
John-David Dalton
f263a87983 Update excused Underscore tests. 2016-03-28 22:11:56 -07:00
John-David Dalton
4f92fb7007 Ensure cancel resets lastCallTime and lastInvokeTime. 2016-03-28 21:06:11 -07:00
John-David Dalton
4fd43f7fe7 Minor value consistency nits. 2016-03-28 19:27:55 -07:00
John-David Dalton
3fe2efa311 Ensure _.concat cases wraps nullish array values in an array. 2016-03-28 17:44:13 -07:00
John-David Dalton
a7bf3352df Ensure _.concat casts non-array array values to arrays. 2016-03-28 12:34:09 -07:00
John-David Dalton
2ddd893ca2 Update vendor/underscore. 2016-03-28 09:35:41 -07:00
John-David Dalton
5d92b37550 Add updateWith to lodash sequence doc note. [ci skip] 2016-03-28 09:26:03 -07:00
John-David Dalton
dcec882262 Ensure _.words detects compound words where an all caps word is next to a capitalized word. [closes #2163] 2016-03-28 07:57:37 -07:00
John-David Dalton
de53132692 Add args param doc for _.attempt. [closes #2164] [ci skip] 2016-03-28 07:05:08 -07:00
greenkeeperio-bot
23a7871e2d Update docdown to 0.5.0. 2016-03-27 16:32:20 -07:00
John-David Dalton
792347978a Add shim path back to _.isEmpty. 2016-03-27 13:35:14 -07:00
John-David Dalton
61c740a4eb Move isObjectLike condition up in _.isEmpty. 2016-03-27 13:07:28 -07:00
John-David Dalton
c3a614858b Add support for maps and sets to _.isEmpty. [closes #2159] 2016-03-27 13:04:51 -07:00
John-David Dalton
75727d073b More pad optimizations. 2016-03-27 12:37:09 -07:00
John-David Dalton
b1d7450052 Fix typo in pad test label. 2016-03-27 12:31:14 -07:00
John-David Dalton
60e557b059 Reduce lines creeping over 80 characters in length. 2016-03-27 11:43:44 -07:00
John-David Dalton
071e13363c Add "Array" to predicate types. [ci skip] [closes #2157] 2016-03-27 09:59:48 -07:00
John-David Dalton
acf4651c0e Minor newline nit. [ci skip] 2016-03-27 09:59:37 -07:00
John-David Dalton
9b15dc2017 Fix fail in PhantomJS. 2016-03-27 01:23:58 -07:00
John-David Dalton
f4f0791e0c Fix fail in Node 0.10. 2016-03-27 01:23:58 -07:00
John-David Dalton
654976c826 Add DataView support to getTag. 2016-03-27 01:23:58 -07:00
John-David Dalton
50e86c70bd Add other realm tests for comparing array views with _.isEqual. 2016-03-27 01:23:58 -07:00
Dan Levy
d135b846db Adding support for cloning and comparing DataView. 2016-03-27 01:23:58 -07:00
John-David Dalton
ee2153364d Add bizarro Promise test. 2016-03-27 01:23:58 -07:00
John-David Dalton
6d76cdc1b7 Update snippet removals for coverage runs. 2016-03-27 01:23:52 -07:00
John-David Dalton
259bdb6151 Add realm tests for maps, promises, and sets. 2016-03-26 14:09:36 -07:00
John-David Dalton
12438fa0d7 Ensure _.isEqual compares promises by reference. 2016-03-26 13:59:53 -07:00
John-David Dalton
654df6f7f8 Optimize createPadding for the common case. 2016-03-26 13:21:54 -07:00
John-David Dalton
0dfe176fe6 Make pad methods default to a chars of " " if chars is an empty string. 2016-03-26 12:14:02 -07:00
John-David Dalton
0f3338013e Update sauce browsers. 2016-03-25 19:03:47 -07:00
John-David Dalton
dcc239b070 Add falsey iteratee tests. 2016-03-25 16:36:47 -07:00
John-David Dalton
613488eaf8 Use in instead of relying on behavior. 2016-03-25 15:50:49 -07:00
John-David Dalton
97193b9680 Update vendor/backbone. 2016-03-25 14:14:52 -07:00
greenkeeperio-bot
71c0861675 Update opt-cli to 1.3.0, coveralls to 2.11.9, & qunitjs to 1.23.0. 2016-03-25 14:13:42 -07:00
John-David Dalton
f3b35919ef Add baseMean helper. 2016-03-25 14:13:42 -07:00
Tucker Whitehouse
06316f1d47 Add _.meanBy. 2016-03-24 21:41:41 -07:00
Federico De Giuli
271f64ee3f Make _.isEmpty work as expected on buffers. 2016-03-24 21:41:41 -07:00
Kent C. Dodds
583b03ba5f Add git hook instructions to CONTRIBUTING.md. [ci skip] 2016-03-24 21:41:35 -07:00
John-David Dalton
16e2c06ab4 Remove dead code from baseClone. 2016-03-24 10:54:23 -07:00
John-David Dalton
016de80ce7 Add debounce/throttle test for calling cancel and flush without anything queued. 2016-03-24 10:54:23 -07:00
John-David Dalton
577226bbd0 Add number object tests to number coercion methods. 2016-03-24 10:54:23 -07:00
John-David Dalton
1670800df3 Add test for crawling functions with _.result. 2016-03-24 10:54:23 -07:00
Kent C. Dodds
9674d67693 add opt-in githook to config 2016-03-23 10:18:57 -06:00
John-David Dalton
f65d36b3c1 Make _.result resolve values of functions as it deep crawls over them. 2016-03-23 00:44:36 -07:00
John-David Dalton
8d93455076 Add more options docs. [ci skip] 2016-03-22 22:26:34 -07:00
John-David Dalton
cfe5ea264d Remove parens from default options value doc of _.truncate. [ci skip] 2016-03-22 08:44:23 -07:00
John-David Dalton
9a4e11f6f7 Add chars param fix to postprocess. [ci skip] 2016-03-21 22:11:40 -07:00
John-David Dalton
24cef1a919 Add other realm maps/sets tests for _.size. 2016-03-21 21:00:29 -07:00
John-David Dalton
5fe373f7aa Add support for deep cloning maps and sets. 2016-03-21 21:00:19 -07:00
John-David Dalton
25eb4df563 Add support for maps and sets to _.size. 2016-03-21 20:16:15 -07:00
John-David Dalton
6d587bdf34 Add -0 test for math operator methods. 2016-03-21 20:04:46 -07:00
John-David Dalton
03dd9df78e Remove unneeded assert in indexOf test. 2016-03-21 08:46:23 -07:00
greenkeeperio-bot
96c60bab46 Update dojo to 1.11.0. 2016-03-21 00:44:32 -07:00
John-David Dalton
811341efa1 Add code examples to fp wiki. [ci skip] 2016-03-20 14:18:24 -07:00
John-David Dalton
5f94723d7f Add always fp alias. 2016-03-20 11:53:38 -07:00
John-David Dalton
9d1536799b Add complement fp alias. 2016-03-20 11:43:32 -07:00
John-David Dalton
85057d588c Move "Chaining" section lower. [ci skip] 2016-03-20 11:40:34 -07:00
John-David Dalton
234e693d92 Flip priority of "object" and "collection" in _.isEmpty doc description. [ci skip] 2016-03-20 11:29:22 -07:00
John-David Dalton
51833b91d0 Add invertObj and juxt fp aliases. 2016-03-20 11:23:12 -07:00
John-David Dalton
dfb7a4c078 Don't make without an alias so it can be reverted with convert. 2016-03-20 11:16:18 -07:00
John-David Dalton
04ddaf49f5 Organize aliases. 2016-03-20 11:13:24 -07:00
John-David Dalton
b7a6560d90 Add identical fp alias. 2016-03-20 11:13:06 -07:00
John-David Dalton
7d8531d6ed Add _.divide and _.multiply tests. 2016-03-20 11:03:29 -07:00
John-David Dalton
ab77d9d83a Add more math operation method tests. 2016-03-20 10:16:03 -07:00
John-David Dalton
37454b8f42 Add eq and isEqual to fp skipRearg mapping. 2016-03-20 10:02:46 -07:00
John-David Dalton
ef95f165ff Fix npm build tests. 2016-03-20 01:10:23 -07:00
John-David Dalton
6494a072d2 Fix test fails in Safari. 2016-03-20 01:02:53 -07:00
John-David Dalton
984bcc556e Add fp.isMatchWith test. 2016-03-20 00:26:58 -07:00
John-David Dalton
be77e7366c Remove "with" methods from iterateeAry mapping. 2016-03-19 23:43:11 -07:00
John-David Dalton
01d961bad8 Ensure fp.isEqualWith rearg is (c,a,b). [closes #2131] 2016-03-19 23:40:14 -07:00
John-David Dalton
6eb0cb1565 Add _.divide and _.multiply. 2016-03-19 23:01:40 -07:00
John-David Dalton
b2bff1ad45 Ensure array sequence methods don't error for falsey values. 2016-03-19 22:51:32 -07:00
John-David Dalton
6ed9c005d7 Make fp.invokeArgs and fp.invokeArgsMap arg signature (b,c,a). 2016-03-18 08:29:41 -07:00
John-David Dalton
6ef8693bf0 Update case examples. 2016-03-17 21:11:32 -07:00
John-David Dalton
8c5025f935 Move upperFirst definition lower. 2016-03-17 21:11:32 -07:00
John-David Dalton
9735961090 Ensure _.startCase only uppercases the first character of each word. 2016-03-17 21:11:32 -07:00
greenkeeperio-bot
8d7058e6ad Update fs-extra to 0.26.7, jquery to 2.2.2, & requirejs to 2.2.0. 2016-03-17 21:10:36 -07:00
John-David Dalton
4d89d9a1b7 Add fp.convert to "Convert" section. 2016-03-17 21:10:36 -07:00
John-David Dalton
594f414b1a Move the "Convert" section to the bottom. 2016-03-17 21:10:36 -07:00
John-David Dalton
b61d30da1a Make fp.without an alias of fp.difference. [closes #2122] 2016-03-17 21:10:36 -07:00
John-David Dalton
412e19006b Fix fp aliases for all, any, and anyPass. 2016-03-17 21:10:36 -07:00
Jeroen Engels
b8ebceadaf Add missing param for _.reverse. [ci skip] 2016-03-17 21:10:36 -07:00
John-David Dalton
2b4f271899 Add fp.invokeArgsMap. 2016-03-17 21:10:36 -07:00
John-David Dalton
c83857c42a Minor non- nits. [ci skip] 2016-03-15 08:38:55 -07:00
John-David Dalton
b95d1d6123 Ensure _.mergeWith sources are cloned when customizer returns undefiend. [closes #2111] 2016-03-15 08:32:23 -07:00
John-David Dalton
7d1d7d909a Add fp padChars methods. 2016-03-14 22:17:46 -07:00
John-David Dalton
c89a80357c Cleanup fp convert tests. 2016-03-14 22:16:20 -07:00
John-David Dalton
1bbb24fa0c Add fp.convert. 2016-03-14 10:53:40 -07:00
John-David Dalton
dd0aa991ff Add since tag to _.isArray. [ci skip] 2016-03-13 19:59:50 -07:00
John-David Dalton
6f9b1b1822 Simplify _.method example. [ci skip] 2016-03-13 16:35:52 -07:00
John-David Dalton
65fd579ed2 Add fp.invokeArgs. 2016-03-13 16:34:07 -07:00
John-David Dalton
f3279b7ee1 Wrap fp.getOr test in an IIFE. 2016-03-13 15:30:32 -07:00
John-David Dalton
4d185ae7b5 Add fp.restFrom and fp.spreadFrom. 2016-03-13 15:30:01 -07:00
John-David Dalton
81ee5d76b8 Use "sequence" to descript chaining in more places. [ci skip] 2016-03-13 14:49:28 -07:00
John-David Dalton
8bed7137c7 Add chaining note to fp wiki template. [ci skip] 2016-03-13 14:44:58 -07:00
libreninja
f8bcc5b917 Break before unnecessary string concats in _.repeat. 2016-03-13 12:39:05 -07:00
John-David Dalton
81f8518d15 Simplify assocIndexOf description. [ci skip] 2016-03-12 09:01:06 -08:00
John-David Dalton
f88d27ccda Fix param descriptions for assocDelete, mapSet, and stackSet. [ci skip] 2016-03-11 20:00:08 -08:00
John-David Dalton
40ed92d2af More _.debounce cleanup. 2016-03-11 08:04:39 -08:00
John-David Dalton
c7319d004d Add non-function constructor tests for _.isMap, _.isSet, and _.isWeakMap. 2016-03-10 16:33:29 -08:00
John-David Dalton
51a3c5d4e8 Cleanup _.debounce. 2016-03-10 07:59:31 -08:00
John-David Dalton
ecfa002a05 Update Edge testing in Sauce. 2016-03-09 16:55:34 -08:00
John-David Dalton
62962791b3 Rename debounce helper to invokeFunc to fix builds. 2016-03-08 06:58:39 -08:00
Brandon Wallace
864e14cb20 Refactor debounce to simplify, reduce timers, fix bugs. 2016-03-07 22:24:04 -08:00
John-David Dalton
092f90d2fc Cleanup sorting test results. 2016-03-07 08:11:59 -08:00
John-David Dalton
49b33d667d Add toPairs test for inherited string keyed properties. 2016-03-07 08:04:11 -08:00
John-David Dalton
63b097329c Minor curried label nits. [ci skip] 2016-03-07 07:41:18 -08:00
John-David Dalton
2c3ab276ea Add _.entries and _.entriesIn aliases. 2016-03-06 22:56:48 -08:00
John-David Dalton
c30c43d69e Add more since tags. [ci skip] 2016-03-06 22:12:42 -08:00
John-David Dalton
230c18d5d6 Add fp.flatMapDepth test. 2016-03-06 19:13:43 -08:00
John-David Dalton
c16e64cd36 Remove unneeded flatMap lazy chaining tests. 2016-03-06 19:12:47 -08:00
John-David Dalton
64704e16c1 Add _.flatMapDeep and _.flatMapDepth. 2016-03-06 11:15:04 -08:00
greenkeeperio-bot
b41103ee6b Update glob to 7.0.3. 2016-03-05 18:35:22 -08:00
John-David Dalton
8ac1d54858 Add fast path for numbers in _.toNumber. 2016-03-05 16:56:59 -08:00
John-David Dalton
0a9af2968e Add primitives tests. 2016-03-05 16:54:37 -08:00
John-David Dalton
7eba5a2221 Ensure _.toNumber works with symbol objects without a valueOf method. 2016-03-05 16:16:49 -08:00
John-David Dalton
19a8b3886e Flip assignment order for consistency. [ci skip] 2016-03-05 08:43:42 -08:00
John-David Dalton
03716f62e8 Remove runInContext call in convert. 2016-03-05 08:39:00 -08:00
John-David Dalton
d38000bc33 Minor format nit for baseCastPath. [ci skip] 2016-03-05 08:38:34 -08:00
John-David Dalton
a6c88a173b Ensure _.toPath returns a new array. 2016-03-04 18:02:28 -08:00
John-David Dalton
0bad210dec Add tests for number coercion methods. 2016-03-04 18:00:05 -08:00
John-David Dalton
62cc7574fc Remove dead code branch from baseCastPath. 2016-03-04 10:41:09 -08:00
John-David Dalton
f5a134bcbd Remove unused baseForIn. 2016-03-04 10:37:29 -08:00
John-David Dalton
a7bb6b5383 Add getPrototype helper. 2016-03-04 09:17:00 -08:00
John-David Dalton
e02ce1ea8b Ensure _.toPath works with symbols. 2016-03-04 08:09:39 -08:00
John-David Dalton
760a00b82f Make a distinction between property names and identifiers. [ci skip] 2016-03-04 07:51:12 -08:00
John-David Dalton
e6929e801b Add getAllKeysIn helper. 2016-03-04 07:50:40 -08:00
John-David Dalton
8682da4962 Update V8 bug links. [ci skip] 2016-03-04 07:33:32 -08:00
John-David Dalton
8e6f3e48d0 Ensure getOwnPropertySymbols is passed an object to avoid errors in V8. 2016-03-04 07:33:16 -08:00
John-David Dalton
0589dd6909 Ensure _.omit works with symbols. 2016-03-04 02:03:23 -08:00
John-David Dalton
1b8071d2c4 Replace Dojo Foundation references with jQuery Foundation in contributing.md. [ci skip] 2016-03-04 01:24:43 -08:00
John-David Dalton
4debf155d7 Update and add tests for fp convert method. 2016-03-04 00:55:59 -08:00
John-David Dalton
f6df126c43 Cleanup license urls. 2016-03-03 22:58:41 -08:00
Esa-Matti Suuronen
c406e33fcc Add reconvert method to fp functions. 2016-03-03 22:47:30 -08:00
John-David Dalton
9e11ebb62a Ensure _.isPlainObject returns false for objects with a custom [[Prototype]]. [closes #2085] 2016-03-03 22:46:23 -08:00
John-David Dalton
16ed42b188 Add tests for symbol paths. 2016-03-03 22:42:58 -08:00
John-David Dalton
a19890469e Minor format nit. 2016-03-03 22:42:29 -08:00
John-David Dalton
cc1c1c127e Cleanup path test labels. 2016-03-03 22:41:56 -08:00
John-David Dalton
3c1e95a3c2 Cleanup foo references. 2016-03-03 22:41:22 -08:00
John-David Dalton
d4c0777d2c Minor format nits for Foo test functions. 2016-03-03 20:40:20 -08:00
John-David Dalton
8f00000676 Minor format nit of isIterateeCall. 2016-03-03 20:07:10 -08:00
John-David Dalton
4240f737d1 Add symbol support to baseCastPath, isKey, and toNumber. 2016-03-03 20:04:37 -08:00
John-David Dalton
25121a86bb Specify string keyed properties. [closes #2081] [ci skip] 2016-03-03 18:02:47 -08:00
John-David Dalton
e4b3cde0a4 Memoize stringToPath. 2016-03-03 15:58:23 -08:00
Dave Methvin
cf74ebeb71 Update license to the jQuery Foundation. [ci skip] 2016-03-03 12:03:26 -08:00
Jeroen Engels
d682357189 Add @since to the method jsdocs. [ci skip] 2016-03-03 07:47:26 -08:00
John-David Dalton
ddd4c391a1 Add _.updateWith test for a customizer. 2016-03-02 22:25:51 -08:00
greenkeeperio-bot
930ee1d650 Update jscs to 2.11.0. 2016-03-02 14:15:50 -08:00
John-David Dalton
c5344d5336 Ensure _.has returns false for nested inherited properties. [closes #2073] 2016-03-02 07:54:27 -08:00
John-David Dalton
d59c644a10 Use baseGet in parent and _.result. 2016-03-02 07:47:37 -08:00
John-David Dalton
28171945e9 Use smaller objects for _.assign bench. 2016-03-02 07:39:08 -08:00
John-David Dalton
ddf9354d26 Bump to v4.6.1. 2016-03-01 21:55:32 -08:00
John-David Dalton
5f58b65c04 Rebuild lodash and docs. 2016-03-01 21:55:09 -08:00
John-David Dalton
1ec20c5281 Use propertyIsEnumerable var. 2016-03-01 20:33:17 -08:00
John-David Dalton
3421fab58a Update lodash dev dep. 2016-03-01 19:40:05 -08:00
John-David Dalton
deeaf27b54 Avoid cloning symbols internally. 2016-03-01 19:37:44 -08:00
John-David Dalton
429be57b8a Bump to v4.6.0. 2016-03-01 10:58:13 -08:00
John-David Dalton
7f00e8f2f1 Rebuild lodash and docs. 2016-03-01 10:58:13 -08:00
John-David Dalton
89f891ac86 Ensure placeholder uses func when its a lib. 2016-03-01 10:58:13 -08:00
John-David Dalton
63147cd145 Update our code of conduct. [ci skip] 2016-02-29 22:04:07 -08:00
John-David Dalton
2c5f026d3c Add doc note to associate _.merge with _.assign. [ci skip] 2016-02-29 08:17:10 -08:00
John-David Dalton
c10146e2f0 Set constructor of lodash.prototype. 2016-02-29 00:02:13 -08:00
John-David Dalton
548fe881d6 Add _.pullAllWith comparator test. 2016-02-28 20:05:54 -08:00
John-David Dalton
b560b7047b Cleanup "With" tests. 2016-02-28 20:05:27 -08:00
John-David Dalton
6f470abdff Add _.pullAllWith test. 2016-02-28 12:23:32 -08:00
John-David Dalton
eabe95c4e3 Add _.updateWith fp support. 2016-02-28 12:16:21 -08:00
John-David Dalton
fab50ec384 Add _.updateWith tests. 2016-02-28 11:55:09 -08:00
John-David Dalton
0f298de36a Add _.updateWith. 2016-02-28 11:30:16 -08:00
John-David Dalton
f8132e3be4 Add more _.update tests. 2016-02-28 10:54:40 -08:00
John-David Dalton
dfd865dadc Only use SetCache in baseIntersection only when arrays[0] is large. 2016-02-27 21:26:51 -08:00
John-David Dalton
98bdd67cf2 Simplify array mapping in basePullAll and baseOrderBy. 2016-02-27 18:42:24 -08:00
John-David Dalton
e842bec025 Optimize _.intersection to stop search once it matches the size of its smallest array. 2016-02-27 18:35:18 -08:00
John-David Dalton
8278d38a8e Add update to lodash doc note. [ci skip] 2016-02-27 17:03:23 -08:00
John-David Dalton
0699d4cf3d Simplify regexp test. 2016-02-27 17:00:56 -08:00
John-David Dalton
8865633ccd Move baseUpdate and update definitions. 2016-02-27 17:00:46 -08:00
John-David Dalton
7066b9a5c7 Rearrange tests. 2016-02-27 17:00:11 -08:00
John-David Dalton
63f8b1dcec Ensure _.defaultsDeep does not overwrite regexp values. 2016-02-27 14:35:20 -08:00
John-David Dalton
2e790fb865 Add IE 11 doc note to addMapEntry. [ci skip] 2016-02-27 11:13:51 -08:00
John-David Dalton
ac62c24c4a Cleanup passing stack around since Stac#set returns the stack. 2016-02-27 11:06:01 -08:00
John-David Dalton
629de594d5 Avoid deep cloning source values if a customizer is provided. 2016-02-27 10:20:51 -08:00
John-David Dalton
7a69a45ccc Add template sentence tweaks from the wiki. 2016-02-27 10:20:51 -08:00
greenkeeperio-bot
916431118e Update coveralls to 2.11.8. 2016-02-27 10:20:50 -08:00
John-David Dalton
83e584d579 Split circular reference tests up. 2016-02-26 22:08:03 -08:00
Danny Fallon
bbd536fc04 Add test for mergeWith with multi-ref source object. 2016-02-26 22:07:24 -08:00
John-David Dalton
0b76654b71 Ensure stack is popped after recursive merge so that it doesn't affect sibling properties. [closes #2060] 2016-02-26 09:42:42 -08:00
Jeroen Engels
ff7d79d5fc Remove custom rearg for update. 2016-02-26 09:31:58 -08:00
Hassan Zamani
b40b555386 Add _.update. 2016-02-26 01:55:47 -08:00
John-David Dalton
efa1ebff16 Clarify result value order of _.xor. [ci skip] 2016-02-26 00:04:20 -08:00
John-David Dalton
8f0dcde98f Clarify result value origin and order of difference methods. [ci skip] 2016-02-26 00:01:52 -08:00
John-David Dalton
3b1efb635b Clarify result value origin and order of intersection methods. [ci skip] 2016-02-25 23:59:41 -08:00
John-David Dalton
055fdfa0b4 Add _.pullAllWith. 2016-02-25 23:24:13 -08:00
John-David Dalton
a5a21235dc Add mdn references to _.toLower and _.toUpper. [ci skip] 2016-02-25 08:34:43 -08:00
Francis De Brabandere
dfbcfdb0ae Clarify intersection docs on what is returned. [ci skip] 2016-02-24 10:24:40 -08:00
John-David Dalton
a1e917bac2 Remove the word "Added" from alias list. [ci skip] 2016-02-24 01:02:11 -08:00
John-David Dalton
62a9208944 Include aliases in lodash chain doc note. [ci skip] [closes #2044] 2016-02-24 00:48:57 -08:00
John-David Dalton
1bf8eb8cac Update qunit and qunit-extras. 2016-02-23 23:13:34 -08:00
John-David Dalton
893573485c Escape bang in pattern. 2016-02-23 21:22:07 -08:00
John-David Dalton
d5231ad94b Add source tests for _.assign and _.assignIn. 2016-02-23 21:16:32 -08:00
John-David Dalton
a578935621 Remove unhit condition in getNative. 2016-02-23 20:13:08 -08:00
Jeroen Engels
c88c7ff6bb Fix order of arguments in FP docs. [ci skip] 2016-02-23 14:19:48 -08:00
John-David Dalton
21f9cfa6d3 Remove unneeded Ctor variables. 2016-02-23 10:58:27 -08:00
John-David Dalton
45d2fb8a30 Fix _.transform test fail in Safari 8. 2016-02-23 10:58:27 -08:00
John-David Dalton
9c162624fe Cleanup symbolTag case in equalByTag. 2016-02-23 10:58:27 -08:00
John-David Dalton
80b5731709 Leak msWDfn in test/test-fp.js to prevent false fails in Edge on sauce. 2016-02-23 10:58:27 -08:00
John-David Dalton
bab4ffff62 Remove unstable test from local testing. 2016-02-23 08:31:04 -08:00
John-David Dalton
f644c82da4 Replace Symbol checks with Symbol methods as checks instead. [closes #2039] 2016-02-23 08:30:48 -08:00
John-David Dalton
54294f15ef Update _.assign and _.assignIn fast paths. 2016-02-23 08:23:13 -08:00
John-David Dalton
dfe77571fb Remove _.keys fast path. 2016-02-23 08:23:05 -08:00
John-David Dalton
f40f66d29b Remove a isTypedArray check and unnecessary stack creation from baseIsEqualDeep. 2016-02-22 23:38:19 -08:00
John-David Dalton
af06529283 Ensure _.isEqual works with maps and sets with circular references. 2016-02-22 23:38:18 -08:00
John-David Dalton
d8da7a2142 Use isFunction check without the typeof check. 2016-02-22 23:38:18 -08:00
John-David Dalton
c1f8e31775 Use typeof for function checks instead of isFunction. 2016-02-22 23:38:18 -08:00
John-David Dalton
cc4b49226b Use postfix increment operators. 2016-02-22 23:38:18 -08:00
John-David Dalton
f9a2f74716 Optimize _.assign, _.assignIn, & _.keys. 2016-02-22 23:38:18 -08:00
John-David Dalton
a326a6badf Update contributing text with 👍's. [ci skip] 2016-02-22 23:38:18 -08:00
John-David Dalton
e21f4862e1 Update contributing link to tagged release. [ci skip] 2016-02-22 23:38:18 -08:00
greenkeeperio-bot
f0c3ac1789 Update jquery to 2.2.1, uglify-js to 2.6.2, and webpack to 1.12.14. 2016-02-22 23:37:38 -08:00
John-David Dalton
e24513e6e2 Clarify _.isEmpty docs. [ci skip] 2016-02-22 12:19:08 -08:00
John-David Dalton
a224b6f1b0 Add core.min.js and lodash.min.js to the fp module ignored list. 2016-02-22 10:28:34 -08:00
John-David Dalton
26299eb364 Update _.isEmpty doc param type for value. [ci skip] 2016-02-22 10:24:20 -08:00
John-David Dalton
772c461a33 Bump to v4.5.1. 2016-02-21 22:58:49 -08:00
John-David Dalton
110ca4d1b5 Rebuild lodash and docs. 2016-02-21 22:58:49 -08:00
John-David Dalton
aafb05b675 Update for lodash v4 api. 2016-02-21 22:58:49 -08:00
John-David Dalton
ff6fc56a15 Use _baseConvert in fp module. 2016-02-21 21:07:21 -08:00
John-David Dalton
2dfbe9fe77 Use minified lodash in fp module. 2016-02-21 21:07:09 -08:00
John-David Dalton
4a0fe2c17b Use lodash in test/remove.js. 2016-02-21 19:35:08 -08:00
John-David Dalton
9f7e626b9a Make build-module create core.min.js and lodash.min.js. 2016-02-21 19:35:08 -08:00
John-David Dalton
f2985bda5f Add copyFile, minFile, and writeFile to lib/common/util.js. 2016-02-21 19:35:01 -08:00
John-David Dalton
1517745a6a Update placeholder param description of createRecurryWrapper. [ci skip] 2016-02-21 16:57:06 -08:00
John-David Dalton
887cb55919 Add _.placeholder tests. 2016-02-21 13:48:46 -08:00
John-David Dalton
5c42d0ef31 Add intersection tests for two arrays. 2016-02-21 09:59:51 -08:00
John-David Dalton
837d47a309 Update lodash paths travis.yml, test/test.js, and test/index.html. 2016-02-20 23:53:35 -08:00
John-David Dalton
f3766cf889 Add getPlaceholder helper. 2016-02-20 18:07:11 -08:00
John-David Dalton
2b8b63e59f Allow placeholders to persist through more than 1 curried call. 2016-02-20 18:07:05 -08:00
John-David Dalton
d64583b743 Cleanup bitmask groupings in mergeData. 2016-02-20 16:40:59 -08:00
John-David Dalton
9ec65d5ed5 Fix newHolders typo. 2016-02-20 11:28:11 -08:00
John-David Dalton
9fe6afcdcc Use lodashStable.bind in unzip/zip test. 2016-02-20 11:28:11 -08:00
Benjamim Sonntag
6a4e0fb41b Links _.remove and _.pull in the docs. [ci skip] 2016-02-20 11:28:00 -08:00
John-David Dalton
b570884bb3 Remove npm "prepublish" script to avoid running on npm i. 2016-02-19 10:51:48 -08:00
John-David Dalton
8f8f8e288c Update internal module references in tests. 2016-02-19 10:39:38 -08:00
John-David Dalton
8698a5e0e8 Add tests for setting the [[Prototype]] of clones for values where constructor is incorrect. 2016-02-19 08:18:56 -08:00
John-David Dalton
ad5e30e189 Move _.merge test for augmenting objects. 2016-02-19 08:17:44 -08:00
Benjamin Tan
19ee0c74f8 Update link to CONTRIBUTING.md in readme. [ci skip] 2016-02-19 08:02:57 -08:00
John-David Dalton
007e5aa27a Increment package version to enable ci tests. 2016-02-19 01:23:07 -08:00
John-David Dalton
2509f562b5 Update fp wiki template. 2016-02-19 01:23:02 -08:00
John-David Dalton
a58a276ffd Replace "iteratee function" with "iteratee". [ci skip] 2016-02-19 01:04:36 -08:00
John-David Dalton
1a5b9dcce1 Add iteratee signature to _.mapKeys. [ci skip] 2016-02-19 01:04:19 -08:00
John-David Dalton
1240a0dfdd Move contributing text to .github. [ci skip] 2016-02-19 00:46:06 -08:00
Henrik Hjelte
0194169e79 Clarify docs on omitBy predicate params. [ci skip] 2016-02-19 00:11:33 -08:00
John-David Dalton
a71c19e1b5 Avoid unnecessary cloning in fp set methods. [closes #2017] 2016-02-19 00:11:20 -08:00
John-David Dalton
bfbfa719ff Ensure assignValue assigns values if they aren't the same own value. [closes #2022] 2016-02-19 00:01:33 -08:00
John-David Dalton
49389d0a2f Ducktype in _.isError for ES6 support. 2016-02-18 21:52:53 -08:00
John-David Dalton
e380062403 Use getPrototypeOf to set inheritance when constructor is a function. [closes #2018] 2016-02-18 21:52:19 -08:00
John-David Dalton
b83abfa9c1 Make fp arity for orderBy three instead of two. [closes #2019] 2016-02-18 13:37:16 -08:00
John-David Dalton
48dbf203a5 Ensure fp pickBy and omitBy provide value and key arguments. 2016-02-18 01:08:19 -08:00
John-David Dalton
23768398c5 Add iterateeRearg fp mapping back for mapKeys. 2016-02-17 22:21:48 -08:00
John-David Dalton
ab73503859 Bump to v4.5.0. 2016-02-17 22:21:48 -08:00
John-David Dalton
a4f7d4cc2a Rebuild lodash and docs. 2016-02-17 22:21:47 -08:00
Myles Borins
cca5ac60d6 Fix npm-test by removing the call to test-docs. 2016-02-17 22:21:47 -08:00
John-David Dalton
9f7f9fc3c5 Adjust heading order. [ci skip] 2016-02-17 01:26:28 -08:00
John-David Dalton
6e2fb92e9a Remove unused baseArity. 2016-02-16 22:29:41 -08:00
John-David Dalton
4f702e2381 Specify utf8 encoding. 2016-02-16 22:04:47 -08:00
John-David Dalton
b188f903ce Add fp tests for iteratee shorthands. 2016-02-16 21:27:08 -08:00
John-David Dalton
7b93dc9c32 Ensure clone methods clone expando properties of boolean, number, & string objects. [closes #2008] 2016-02-16 21:27:03 -08:00
John-David Dalton
664d66a89e Make string tests more consistent. 2016-02-16 20:44:55 -08:00
John-David Dalton
d9dc0e6fd1 Add _.invertBy tests. 2016-02-16 19:30:23 -08:00
John-David Dalton
53168e4cfd Remove dup _.invertBy test. 2016-02-16 18:49:43 -08:00
John-David Dalton
7998632685 Add castArray chaining test. 2016-02-16 18:48:57 -08:00
John-David Dalton
86f2a1061c Simplify readme. [ci skip] 2016-02-16 18:48:11 -08:00
John-David Dalton
9ca02a448e Update cdn links. [ci skip] 2016-02-16 08:52:49 -08:00
John-David Dalton
17091d3a0e Simplify shorthand test labels. 2016-02-16 08:42:29 -08:00
John-David Dalton
c94b1488e9 Make iteraeeAry pass thru non-functions. [closes #2007] 2016-02-16 07:46:54 -08:00
John-David Dalton
7b2274cb44 Add methods to lodash doc notes. [ci skip] 2016-02-16 01:29:25 -08:00
John-David Dalton
7c27a6f51e Make wording of entries align closer to their titles. [ci skip] 2016-02-16 01:29:25 -08:00
John-David Dalton
e91371d406 Increment package version to enable ci tests. 2016-02-16 01:29:25 -08:00
John-David Dalton
e878559fb9 Bump to v4.4.0. 2016-02-15 23:08:19 -08:00
John-David Dalton
36af8de116 Rebuild lodash and docs. 2016-02-15 23:07:07 -08:00
John-David Dalton
09dd3a8fea Remove noConflict call from the node fp module template. 2016-02-15 23:07:07 -08:00
John-David Dalton
5dd6b90692 Minor comma nit from contributing.md. [ci skip] 2016-02-15 21:30:16 -08:00
John-David Dalton
97fd94744e Add mapping section to fp wiki template. [ci skip] 2016-02-15 17:38:30 -08:00
John-David Dalton
0da3674d5e Update fp doc template. 2016-02-15 17:00:01 -08:00
John-David Dalton
01d530d65e Cleanup fp/build-modules. 2016-02-15 16:59:43 -08:00
John-David Dalton
10dd42b6e4 Restore bizarro tests for Object.create. 2016-02-15 16:47:31 -08:00
John-David Dalton
ba2d3f7704 Use != instead of !== when value is guaranteed to be a string. 2016-02-15 16:36:20 -08:00
Graeme Yeates
607fe2a5f6 Use Object.create in baseCreate (even if shimmed). 2016-02-15 16:35:20 -08:00
John-David Dalton
4643679d79 Remove fp caps mapping. 2016-02-15 13:51:20 -08:00
greenkeeperio-bot
04180c7c96 Update jscs to 2.10.1. 2016-02-15 11:12:14 -08:00
John-David Dalton
3846348f8a Clarify how undefined source values are handled in _.merge. [ci skip] 2016-02-15 10:22:25 -08:00
John-David Dalton
dc2fc9428d Cross reference _.matches and _.isMatch in docs. [ci skip] 2016-02-15 10:22:04 -08:00
John-David Dalton
6e399ce311 Cleanup long lines in isEqualWith docs. [ci skip] 2016-02-15 10:21:19 -08:00
John-David Dalton
641b544801 Add castArray to lodash chaining doc note. [ci skip] 2016-02-15 10:20:40 -08:00
John-David Dalton
761a100397 Ensure _.valuesIn returns results. [closes #2000] 2016-02-15 09:14:10 -08:00
John-David Dalton
cf1a4f893f Update fp doc generation. 2016-02-15 00:18:12 -08:00
John-David Dalton
19613be861 Add isArray to _util.jst. 2016-02-14 23:47:45 -08:00
John-David Dalton
c163659713 Rename fp mapping rename to remap. 2016-02-14 23:47:45 -08:00
John-David Dalton
aae02af265 Cleanup Date shims. 2016-02-14 19:20:17 -08:00
John-David Dalton
cb96bf15b7 Reduce the length of some lines. 2016-02-14 19:14:17 -08:00
John-David Dalton
c006c28f55 Add lib/common/util. 2016-02-14 12:57:34 -08:00
John-David Dalton
d358d00531 Ensure fp castArray shallow clones arrays. 2016-02-14 12:09:17 -08:00
John-David Dalton
abcebb4f48 Remove exposed castFunction and castPath. 2016-02-14 11:02:11 -08:00
John-David Dalton
6e74724c0f Add _.compat test for lazy sequence with a custom _.iteratee. 2016-02-14 09:21:07 -08:00
John-David Dalton
c5f6c43326 Add default wrapper value to jsdoc of _.wrap. [ci skip] 2016-02-14 08:57:28 -08:00
John-David Dalton
a9e8c0ba76 Add changelog mention to the wiki link in readme. [ci skip] 2016-02-14 08:41:43 -08:00
John-David Dalton
5388d8a7b0 Rename _.asArray to _.castArray and add _.castFunction and _.castPath. 2016-02-13 13:40:04 -08:00
Graeme Yeates
ee499b36ea Add _.asArray method. 2016-02-13 09:04:19 -08:00
John-David Dalton
13e4b959a4 Rename skipTest to skipAssert. 2016-02-13 08:32:47 -08:00
John-David Dalton
5a336403f9 Fix fp browser test fails. 2016-02-13 08:31:04 -08:00
John-David Dalton
26265c011a Fix failing _.isError test in phantomjs. 2016-02-13 02:18:37 -08:00
John-David Dalton
4a390bca1c Update tests for es6. 2016-02-13 02:18:15 -08:00
John-David Dalton
af46ead30d Fix caller access in strict mode es6 modules. 2016-02-13 02:01:46 -08:00
John-David Dalton
de0f936e92 Ensure fp convert works with category modules. 2016-02-13 01:23:07 -08:00
John-David Dalton
bf9dcfe89c Add jsdoc constructor tags. [ci skip] 2016-02-12 22:51:26 -08:00
John-David Dalton
df0ecd2a93 Ensure _.isError works with subclasses values. [closes #1994] 2016-02-12 22:51:26 -08:00
John-David Dalton
b3ebb3c3d3 Add _.fromPairs to mention to _.toPairs and _.toPairsIn. [ci skip] 2016-02-12 22:51:26 -08:00
Jeroen Engels
0bead0c69a Update closed issue link in contributing.md to link to enhancement issues. [ci skip] 2016-02-12 22:51:26 -08:00
John-David Dalton
a055b0a04f Fix fp rearg order for zipWith. 2016-02-12 22:51:26 -08:00
John-David Dalton
d6f6007692 Add wiki link to "Further Reading" section of readme. [ci skip] 2016-02-12 22:51:26 -08:00
John-David Dalton
8ee7ffb2ab Add more currying to fp tests. 2016-02-12 22:51:26 -08:00
John-David Dalton
40ff04911e Remove unneeded copyArray from baseMergeDeep. 2016-02-12 22:51:25 -08:00
John-David Dalton
a3676618af Reorg templates. 2016-02-12 22:51:19 -08:00
John-David Dalton
b1ed66c6f5 Add another fp.inRange test. 2016-02-11 22:57:25 -08:00
John-David Dalton
53b3f81abe Ensure _.merge deep clones array/typed-array/plain-object sources. [closes #1987] 2016-02-11 22:56:33 -08:00
John-David Dalton
bd2428dde5 Remove fp doc to be simplified in a later commit. 2016-02-11 21:02:44 -08:00
Jeroen Engels
b7ae5f0885 Add paragraph about making feature requests in docs [ci skip] 2016-02-11 19:57:04 -08:00
John-David Dalton
8c5b64c7d7 Have browser fp convert auto wrap lodash if found. 2016-02-11 15:49:32 -08:00
John-David Dalton
641112dd4d Attempt two to fix bizarro buffer test in Node v0.12. 2016-02-11 10:55:26 -08:00
John-David Dalton
1c47acd040 Ensure maxWait isn't processed on a leading invocation ifleading is false and there isn't an max delay queued. [closes #1964] 2016-02-11 00:18:08 -08:00
greenkeeperio-bot
d58d6f45cc Update glob to 7.0.0. 2016-02-11 00:18:07 -08:00
Artur Baybulatov
7efa921bab Add a note about browser usage of lodash-fp. [ci skip] 2016-02-10 10:54:40 -08:00
John-David Dalton
feafdb3c6a Fix jsdoc type tags. [closes #1976] [ci skip] 2016-02-10 08:26:43 -08:00
John-David Dalton
784ee6a086 Remove fp iterateeRearg mapping. [closes #1971] 2016-02-10 08:19:59 -08:00
John-David Dalton
3014f20b6c Remove copyArray dep from _.flattenDepth. 2016-02-10 00:43:03 -08:00
John-David Dalton
40bb035b09 Minor label cleanup. 2016-02-10 00:15:08 -08:00
John-David Dalton
ba32bf3b8d Cleanup flatten methods and add more flattenDepth tests. 2016-02-10 00:14:10 -08:00
John-David Dalton
e9edc06aaf Enable convert to work when given lodash and options. 2016-02-09 21:56:49 -08:00
Jordan Eldredge
c91196d240 Run style checks before publishing. 2016-02-09 19:39:32 -08:00
Jeroen Engels
08c7bf3c85 Fix code style error and doc nit. [ci skip] 2016-02-09 19:39:32 -08:00
Michael Morgan
046470a8db Added _.flattenDepth for variable-depth flatten. 2016-02-09 19:39:32 -08:00
Billy Janitsch
2b1eedb036 Fix FP rearg for _.zipWith and _.inRange. 2016-02-09 19:39:31 -08:00
Jeroen Engels
02bea6534c fp docs - Remove notes about mutation in description. 2016-02-09 19:36:37 -08:00
Jeroen Engels
6f4099c20b fp docs - Split lib/doc/apply-fp-mapping into multiples files. 2016-02-09 19:36:37 -08:00
Jeroen Engels
39735df82f fp docs - Inject default values and cap args. 2016-02-09 19:36:37 -08:00
Jeroen Engels
5062f22839 fp docs - Remove console.log() from examples. 2016-02-09 19:36:36 -08:00
Jeroen Engels
e397707dc9 fp docs - translate ...args to args[] in example and params. 2016-02-09 19:36:36 -08:00
Jeroen Engels
66d6e226a9 Add scripts to generate the docs for lodash/fp. 2016-02-09 19:36:36 -08:00
Benjamin Tan
fbfa578c11 Write fp docs to a different file. 2016-02-09 19:36:36 -08:00
John-David Dalton
5cd7208ef3 Fix test fail in phantomjs. 2016-02-09 17:11:02 -08:00
John-David Dalton
e5bc6a0315 Fix bizarro buffer test in Node v0.12. 2016-02-09 17:11:02 -08:00
John-David Dalton
495c890aac Add bizarro test for _.isBuffer. 2016-02-09 17:11:02 -08:00
John-David Dalton
5fe4a1b05d Add fp placeholder test for converted partial. 2016-02-09 17:11:02 -08:00
John-David Dalton
d8bf62995b Ensure fp options works when applied individually. 2016-02-09 17:11:02 -08:00
John-David Dalton
e36f7e7161 Enable testing fp/convert in the browser. 2016-02-09 17:11:02 -08:00
John-David Dalton
285b667c3e Update "Why Lodash" section of readme. [ci skip] 2016-02-09 17:11:02 -08:00
John-David Dalton
aefbdbb6d5 Increment package version to enable ci tests. 2016-02-08 00:31:19 -08:00
John-David Dalton
8debfc6e6c Bump to v4.3.0. 2016-02-08 00:31:19 -08:00
John-David Dalton
c9ca772a32 Rebuild lodash and docs. 2016-02-08 00:31:19 -08:00
John-David Dalton
dc65792776 Add fp tests for add, subtract, gt, gte, lt, & lte. 2016-02-08 00:31:19 -08:00
John-David Dalton
18ae1d7c18 Ensure _.add and _.subtract return 0 when no arguments are given. 2016-02-08 00:31:19 -08:00
John-David Dalton
d790a1b3c6 Adjust "provided"/"given" use. [ci skip] 2016-02-08 00:31:18 -08:00
John-David Dalton
349c627110 Add options to baseConvert. 2016-02-08 00:31:13 -08:00
John-David Dalton
db23fcfe9f Rename num params to n. 2016-02-07 22:47:15 -08:00
John-David Dalton
d5a6a75639 Clarify pull request notes in contributing.md. [ci skip] 2016-02-07 22:47:15 -08:00
Robert T. Stewart
404a7181a8 Add 'What is Lodash' section to README.md. [ci skip] 2016-02-07 22:47:15 -08:00
Corbacho
e392b8e240 Improve accuracy of _.throttle. 2016-02-07 22:47:14 -08:00
John-David Dalton
6752d75ad0 Add _.isMap, _.isSet, _.isWeakMap, & _.isWeakSet. 2016-02-07 22:47:14 -08:00
John-David Dalton
e00d9821a8 Add gt, gte, lt, lte to fp skipRearg mapping. 2016-02-07 22:47:14 -08:00
John-David Dalton
1cf7093f46 Allow undefined realm values. 2016-02-07 22:47:14 -08:00
John-David Dalton
88708ec00f Minor test order nit. 2016-02-07 22:47:14 -08:00
John-David Dalton
984b0af883 Add deep clone test for buffers. 2016-02-07 22:47:14 -08:00
John-David Dalton
8810754ada Add _.isArrayBuffer test. 2016-02-07 22:47:14 -08:00
John-David Dalton
0d340b378b Add _.isBuffer test. 2016-02-07 22:47:14 -08:00
John-David Dalton
e30dc968ef Move _.isNull test. 2016-02-07 22:47:13 -08:00
John-David Dalton
ea942b0642 Upgrade sauce tested versions of Chrome and Firefox. 2016-02-07 22:47:13 -08:00
Tyler Garrett
7e9d49b300 Fix DevDoc link in readme. [ci skip] 2016-02-07 22:47:13 -08:00
John-David Dalton
ce60ac4274 Add isDeep flag to cloneBuffer. 2016-02-07 22:47:13 -08:00
John-David Dalton
a04fc310b4 Fix buffer test fails. 2016-02-07 22:47:13 -08:00
John-David Dalton
4a805ea666 Add _.isArrayBuffer and _.isBuffer. 2016-02-07 22:47:13 -08:00
John-David Dalton
1595651780 Add support for cloning buffers. [closes #1940] 2016-02-07 22:47:13 -08:00
John-David Dalton
fc85cac91d Update sauce-tunnel and webpack deps. 2016-02-07 22:47:13 -08:00
John-David Dalton
73134f9dcc Update the readme. 2016-02-07 22:47:13 -08:00
John-David Dalton
eb72bbe6f7 Update license to github formatting. 2016-02-07 22:47:12 -08:00
John-David Dalton
a5ae078f8f Increment package version to enable ci tests. 2016-02-05 00:24:51 -08:00
John-David Dalton
1cd9dc49a9 Bump to v4.2.1. 2016-02-03 01:31:34 -08:00
John-David Dalton
d64a97195b Rebuild lodash and docs. 2016-02-03 01:16:58 -08:00
John-David Dalton
c6a3ace553 Skip pseudo-private aliases. 2016-02-03 01:16:58 -08:00
John-David Dalton
497d57ca95 Ensure fp add and subtract don't have rearg applied. 2016-02-03 00:16:07 -08:00
John-David Dalton
3a07b411fb Add fp tests for placeholders. 2016-02-03 00:16:07 -08:00
John-David Dalton
b0c2a8d5fd Add fp _.partial tests for convert by name. 2016-02-03 00:16:06 -08:00
John-David Dalton
e404d214aa Add _.placeholder support so wrapped functions may support placeholders. 2016-02-03 00:16:06 -08:00
Nathan Tran
7f295dc6e8 Make _baseConvert use spread and not rest. 2016-02-03 00:16:06 -08:00
Prayag Verma
d2a8203efb Remove duplicate to and the words from docs. [ci skip] 2016-02-03 00:16:06 -08:00
John-David Dalton
33bfa8f961 Add trimChars fp mapping. 2016-02-03 00:16:06 -08:00
John-David Dalton
f944254cb8 Cleanup fp.curryN test label. 2016-02-03 00:16:06 -08:00
John-David Dalton
30339cfd86 Add fp.getOr test. 2016-02-03 00:16:06 -08:00
John-David Dalton
7dd5549b05 Increment lodash package version to enable ci tests. 2016-02-03 00:16:06 -08:00
John-David Dalton
b6b59d93d7 Bump to 4.2.0. 2016-02-02 00:33:16 -08:00
John-David Dalton
5af68bbf94 Rebuild lodash and docs. 2016-02-02 00:33:16 -08:00
John-David Dalton
db7debd3da Move benchmark.js to a dev dep. 2016-02-02 00:33:16 -08:00
laispace
29bc8d965b Fix _.sortedUniqBy doc example. [ci skip] 2016-02-01 23:55:34 -08:00
John-David Dalton
daeb55e99d Rename mapping rekey to rename. 2016-02-01 23:53:19 -08:00
John-David Dalton
fa4d85897c Add mutation notes to _.mergeWith, _.set, _.setWith, and _.unset. [ci skip] 2016-02-01 22:53:05 -08:00
John-David Dalton
983363e0cd Cleanup readme. [ci skip] 2016-02-01 22:37:56 -08:00
John-David Dalton
d95dad76b8 Remove dead code. 2016-02-01 22:37:56 -08:00
John-David Dalton
18f74aa5b2 Rename spreadArgs to otherArgs. 2016-02-01 22:37:56 -08:00
John-David Dalton
e96a8f7bc6 Cleanup map tests. 2016-02-01 22:37:56 -08:00
John-David Dalton
29f39be6ad Add _.flapMap tests for collections. 2016-02-01 22:37:56 -08:00
John-David Dalton
7a17967d79 Add _.spread tests for the start param. 2016-02-01 22:37:56 -08:00
John-David Dalton
de5bd32aba Rename rp vars to rest. 2016-02-01 22:37:56 -08:00
Jason Trill
199b2e1a3a Reword docs for _.tap and _.thru. [ci skip] 2016-02-01 22:37:56 -08:00
John-David Dalton
a43e4f10ef Update vendors. 2016-02-01 22:37:55 -08:00
Trevor Hudson
5522e4641d Update _.pickBy docs to include value as an iteratee param. [ci skip] 2016-02-01 22:37:55 -08:00
greenkeeperio-bot
6c82ea8fc3 Update qunitjs to 1.21.0. 2016-02-01 22:37:55 -08:00
John-David Dalton
b4b45b7139 Update docdown. 2016-02-01 22:37:55 -08:00
John-David Dalton
7ebb033016 Add _.at chaining test for objects with index keys. 2016-02-01 22:37:55 -08:00
John-David Dalton
163fdb46f0 Ensure fp _.partial and _.partialRight accept an args param. 2016-02-01 22:37:55 -08:00
John-David Dalton
b38cf204f7 Add start param to _.spread. 2016-02-01 22:37:55 -08:00
John-David Dalton
fe5381b0f4 Cleanup fp mapping. 2016-02-01 22:37:55 -08:00
John-David Dalton
c99e7f1337 Make _.flatMap a "Collection" method. 2016-02-01 22:37:55 -08:00
Mohammed Nauage
b61b674fec Remove sorted behavior from _.indexOf docs. [ci skip] 2016-02-01 22:37:55 -08:00
John-David Dalton
3bdaf99cfa Ensure _.iteratee clones sources for "_.matchesProperty" shorthand. 2016-02-01 22:37:54 -08:00
John-David Dalton
6c85e7015a Add assocPath and dissocPath fp aliases. 2016-02-01 22:37:54 -08:00
John-David Dalton
9788f7101b Ensure fp unset is immutable. [closes #1913] 2016-02-01 22:37:54 -08:00
Billy Janitsch
d0d5a3802d Alias set to assoc in FP. 2016-02-01 22:37:54 -08:00
John-David Dalton
1f160b31ff Make doc code sample comments match source comment style. [ci skip] 2016-01-30 01:02:49 -08:00
Ivan Tanev
13659e87cb Ensure _.attempt preserves custom errors. 2016-01-30 01:02:49 -08:00
John-David Dalton
ac9b0bfc1b Increment package version to enable ci tests. 2016-01-30 01:02:48 -08:00
John-David Dalton
07f7a3f3c5 Bump to 4.1.0. 2016-01-29 14:22:08 -08:00
John-David Dalton
22984f4eb2 Rebuild lodash and docs. 2016-01-29 14:21:44 -08:00
John-David Dalton
2286283f98 Add babel-plugin-lodash mention to readme. [ci skip] 2016-01-29 14:21:37 -08:00
Florent Cailhol
5ca26e6ae0 Remove V8 JIT bug fix for _.isObject. 2016-01-29 01:09:23 -08:00
John-David Dalton
e7c3afc1e5 Add index.js and lodash.js to the list of ignored files when generating fp modules. 2016-01-28 23:58:16 -08:00
John-David Dalton
82e9b4197b Add more fp mutation tests for deep objects. 2016-01-28 23:01:28 -08:00
John-David Dalton
820939f014 Update docdown. 2016-01-28 22:11:48 -08:00
John-David Dalton
e4c9916e17 Add default accumulator values to doc examples. [ci skip] 2016-01-28 22:11:43 -08:00
John-David Dalton
ce88b120eb Use npm config shorthand. 2016-01-28 18:11:53 -08:00
John-David Dalton
23c5101227 Make doc postprocess fix for symbol identifers more generic. 2016-01-28 14:45:15 -08:00
Craig Martin
de3eeb2d47 Use npm pretest hook. 2016-01-28 12:36:13 -08:00
John-David Dalton
03f7205e6d Ensure _.clone and _.cloneDeep work on prototype objects. 2016-01-28 01:05:25 -08:00
John-David Dalton
7bf7ab954b Update vendors and dev deps. 2016-01-28 01:05:25 -08:00
John-David Dalton
97612f3b31 Disable npm progress bar in travis for quicker installs. 2016-01-27 07:38:08 -08:00
John-David Dalton
71702d058c Ignore more files. 2016-01-27 01:19:03 -08:00
John-David Dalton
6a4164d9f3 Ensure remapped fp method modules are created. 2016-01-27 00:47:31 -08:00
John-David Dalton
d3b0eae84c Use mapping for aliasToReal. 2016-01-27 00:47:31 -08:00
John-David Dalton
0105b93f38 Ensure fp convert can work with aliases as name. 2016-01-27 00:19:06 -08:00
John-David Dalton
cae0d2c707 Add aliasToReal fp mapping. 2016-01-27 00:19:06 -08:00
John-David Dalton
dcb1572240 Reorg fp tests. 2016-01-27 00:19:06 -08:00
John-David Dalton
e20f43018b Separate fp _mapping into individual exports. 2016-01-27 00:19:06 -08:00
John-David Dalton
01e176694f Correct fp arg order of assignWith, assignInWith, merge, mergeWith, defaults, and defaultsDeep. 2016-01-27 00:19:06 -08:00
John-David Dalton
a239ccaa9a Add main:modules npm run script. 2016-01-26 21:32:22 -08:00
Jeroen Engels
b97a05b7f2 Add npm scripts to build docs. 2016-01-26 21:32:16 -08:00
John-David Dalton
c86754afde Cleanup hasPath and indexKeys. 2016-01-26 18:20:51 -08:00
John-David Dalton
95da9c0dd4 Optimize _.isEmpty. [closes #1888] 2016-01-26 18:20:50 -08:00
John-David Dalton
567171993b Define trim_trailing_whitespace rule for all files. 2016-01-26 18:20:50 -08:00
Kent C. Dodds
60a0d554a0 Run scripts in parallel. 2016-01-26 10:10:16 -08:00
John-David Dalton
f87af6c642 Add more npm run-scripts. 2016-01-26 08:41:38 -08:00
John-David Dalton
df849e8698 Fix style nits. 2016-01-26 08:41:38 -08:00
John-David Dalton
7a8ef7aeb7 Ensure _.sum and _.sumBy return 0 for empty arrays. [closes #1883] 2016-01-26 01:29:59 -08:00
John-David Dalton
25c7c8b153 Update dev deps. 2016-01-26 00:29:41 -08:00
John-David Dalton
8048f015e5 Ensure _.mergeWith overwrites primitives with source object clones. [closes #1880] 2016-01-26 00:28:38 -08:00
John-David Dalton
8a7fce41bb Add invokeMap to the excused methods in Backbone tests. 2016-01-26 00:28:38 -08:00
John-David Dalton
094a272443 Add _.invertBy. 2016-01-26 00:28:37 -08:00
John-David Dalton
552be2f5fb Remove multiVal param from _.invert. 2016-01-26 00:28:37 -08:00
John-David Dalton
d99954133c Add _.zipObjectDeep. 2016-01-26 00:28:37 -08:00
John-David Dalton
c49ace5587 Add back fp build-modules files. 2016-01-26 00:28:30 -08:00
John-David Dalton
258ad020ed Bump to 4.0.1. 2016-01-25 00:33:25 -08:00
John-David Dalton
59de939c1d Rebuild lodash and docs. 2016-01-25 00:33:25 -08:00
John-David Dalton
9d2d4f39bc Reorg build, fp, and lib files. 2016-01-25 00:32:37 -08:00
John-David Dalton
f555cd2303 Update map references in precompile.js. 2016-01-25 00:24:36 -08:00
Esa-Matti Suuronen
fcb80e926d Add precompile script for fp modules. 2016-01-25 00:24:36 -08:00
John-David Dalton
3f1fd98bef Doc cleanup of aggregator methods. [ci skip] 2016-01-25 00:24:36 -08:00
John-David Dalton
e2280db917 Fix documented iteratee arg count of _.partition. [ci skip] 2016-01-25 00:24:36 -08:00
John-David Dalton
627e92e7e0 Remove empty line in baseInvoke jsdoc. [ci skip] 2016-01-25 00:24:36 -08:00
John-David Dalton
5a9ca34a92 Rename initFromArray and initFromCollection vars to initAccum. 2016-01-25 00:24:36 -08:00
John-David Dalton
880ffcb1f6 Add more fp tests for key methods. 2016-01-25 00:24:36 -08:00
John-David Dalton
4e35d970af Avoid setting ary twice. 2016-01-25 00:24:36 -08:00
John-David Dalton
42a4e09f91 Minor capitalization nit in readme. [ci skip] 2016-01-25 00:24:36 -08:00
John-David Dalton
b13b17e801 Ensure fp key methods provide the key argument to their iteratees. [closes #1842] 2016-01-25 00:24:36 -08:00
John-David Dalton
68d0238044 Remove omitBy and pickBy from funcMethods. 2016-01-25 00:24:35 -08:00
John-David Dalton
82b4f4147e Add fp customizer test for _.setWith. 2016-01-25 00:24:35 -08:00
John-David Dalton
6cbd2c4188 Ensure _.concat treats nullish values as empty arrays. 2016-01-25 00:24:35 -08:00
John-David Dalton
78982f3074 Ensure _.concat returns an empty array for nullish array values. [closes #1856] 2016-01-25 00:24:35 -08:00
John-David Dalton
345746f7ab Add another test to help catch incorrect fp mapping. 2016-01-25 00:24:35 -08:00
John-David Dalton
741a7b9caa Remove mean from fp aryMethod map. 2016-01-25 00:24:35 -08:00
John-David Dalton
7544c8fac8 Add propOr fp alias. 2016-01-25 00:24:35 -08:00
John-David Dalton
a46169329d Fix fp test fails. 2016-01-25 00:24:35 -08:00
John-David Dalton
9aa56630ab Ensure _.noConflict only restores _ if lodash is the current _ value. 2016-01-25 00:24:35 -08:00
Billy Janitsch
01819e7a5a Disable fp concat rearg. 2016-01-25 00:24:34 -08:00
Billy Janitsch
bae497ec5a Update fp property and get aliases. 2016-01-25 00:24:34 -08:00
John-David Dalton
68e0c78602 Remove baseClone use from mergeDefaults. 2016-01-25 00:24:34 -08:00
John-David Dalton
6296afd279 Ensure _.words treats all-lower and all-upper postfixs as separate words. 2016-01-25 00:24:34 -08:00
John-David Dalton
6d58fe912d Ensure _.words captures all caped words. [closes #1833] 2016-01-25 00:24:34 -08:00
Nacho Martín
0c45957096 Fix iteratee arg count in _.partition docs. [ci skip]
If I am not mistaken, the docs for `partition` are wrong. It is only invoked with an argument, not three. See this fiddle https://jsfiddle.net/y8fcwa6m/
2016-01-25 00:24:34 -08:00
John-David Dalton
aa311bd792 Move unset to aryMethod[2] mapping. 2016-01-25 00:24:34 -08:00
John-David Dalton
8858cdbe8c Move position of _.keyBy doc example. [ci skip] 2016-01-25 00:24:34 -08:00
John-David Dalton
9d033247e9 Correct arg count in _.isEqualWit doc note. [ci skip] 2016-01-25 00:24:34 -08:00
Benjamin Tan
cacae31af3 Minor documentation fixes for stringSize, _.cond, _.intersection, and _.reverse. [ci skip] 2016-01-25 00:24:33 -08:00
John-David Dalton
759a44e2b8 Move omitBy and pickBy to aryMethod[2] mapping. [closes #1819] 2016-01-25 00:24:33 -08:00
think2011
2fb778413b Fix returns tag typo in _.toLength docs. [ci skip] 2016-01-25 00:24:33 -08:00
Ismaël Mejía
473d059efd Fix _.map doc example. [ci skip] 2016-01-25 00:24:33 -08:00
John-David Dalton
67cd43d97a Reduce description mentions of eachFunc. [ci skip] 2016-01-25 00:24:33 -08:00
John-David Dalton
b77248c975 Minor cleanup of contributing.md. [ci skip] 2016-01-25 00:24:33 -08:00
John-David Dalton
6bc58a16f6 Remove conditional exposure. 2016-01-25 00:24:33 -08:00
John-David Dalton
0edbd96bb5 Ensure mixinPrereqs is called before Backbone is loaded. 2016-01-25 00:24:33 -08:00
John-David Dalton
6ecc675670 Ensure Backbone test only adds missing methods. 2016-01-25 00:24:33 -08:00
John-David Dalton
c0a6f051fc Move getFuncName test. 2016-01-25 00:24:33 -08:00
John-David Dalton
6bc0aba800 Avoid chatty console.log. 2016-01-25 00:24:32 -08:00
Steven Sojka
6949f71516 Ensure getFuncName works when checking methods that shadow Object.prototype. 2016-01-25 00:24:32 -08:00
John-David Dalton
f6c6de40f1 Update fp mapping with a test to catch potentially missed wrappers. 2016-01-25 00:24:32 -08:00
John-David Dalton
fdea9a447f Revert_Symbol rename. 2016-01-25 00:24:32 -08:00
John-David Dalton
2e02636fc1 Revert lodash path in test/index.html. 2016-01-25 00:24:32 -08:00
John-David Dalton
17b9646c0b Add test warning about the lodash dependency. 2016-01-25 00:24:32 -08:00
John-David Dalton
0a3d7e7cbc Revert lodash dev dep bump. 2016-01-25 00:24:32 -08:00
John-David Dalton
a62d70e80c Add jsdoc name tag for flatMap. [closes #1811] 2016-01-25 00:24:32 -08:00
John-David Dalton
96bbf74207 Add has and hasIn to fp mapping. [closes #1805] 2016-01-25 00:24:32 -08:00
John-David Dalton
6cfe7fa5ea Move forEach and friends to the non-chaining section of the lodash doc note. [ci skip] 2016-01-25 00:24:32 -08:00
John-David Dalton
efc61ea70d Correct arg count typo in _.cloneWith docs. [ci skip] 2016-01-25 00:24:32 -08:00
John-David Dalton
e752b26f9e Clarify max size of _.sampleSize. [ci skp] [closes #1802] 2016-01-25 00:24:31 -08:00
Jeroen Engels
6b19ca1c11 Update contributing.md about how to launch tests. [ci skip] 2016-01-25 00:24:31 -08:00
John-David Dalton
42e01fd37b Add fp tests to npm test. 2016-01-25 00:24:31 -08:00
John-David Dalton
1df18a3e10 Make _.omitBy and _.pickBy pass a key param to iteratees. 2016-01-25 00:24:31 -08:00
John-David Dalton
f31fb8bd34 Add _.isEqual test for unordered object comparisons. 2016-01-25 00:24:31 -08:00
John-David Dalton
1d54d868e3 Fix merging functions and avoid augmenting sources. [closes #1794, #1801] 2016-01-25 00:24:31 -08:00
John-David Dalton
4b801f423b Update fp mapping to include uniqWith. [closes #1800] 2016-01-25 00:24:31 -08:00
John-David Dalton
96ef2110ce Add support for combining diacritical marks for symbols. 2016-01-25 00:24:31 -08:00
Beau Gunderson
84763cab26 Add failing test for Fitzpatrick modifiers. 2016-01-25 00:24:30 -08:00
Beau Gunderson
fc2ce9a021 Add test fails for keycap emoji (#1796). 2016-01-25 00:24:30 -08:00
John-David Dalton
a5c1421c6b Ensure _.fromPairs can consume results of _.toPairs. [closes #1790] 2016-01-25 00:24:30 -08:00
John-David Dalton
1a54e43a24 Add chunk to fp mapping. 2016-01-25 00:24:30 -08:00
John-David Dalton
1ab5a20784 Fix phantomjs test fails. 2016-01-25 00:24:30 -08:00
John-David Dalton
1634388534 Update fallback lodash module path. 2016-01-25 00:24:30 -08:00
Alon Niv
455afb0019 Fix ES5 parseInt link. [ci skip] 2016-01-14 07:46:29 -08:00
John-David Dalton
349dfbf182 Ensure core build slice has default start and end params. [closes #1789] 2016-01-14 01:34:34 -08:00
John-David Dalton
b081b3ae2d Cleanup intentation in baseIsMatch. 2016-01-13 23:09:46 -08:00
John-David Dalton
110f86f803 Fix lodash doc ticks. [ci skip] [closes #1787] 2016-01-13 23:08:56 -08:00
John-David Dalton
ace771d4e9 Add matches to core build. [closes #1784] 2016-01-13 22:41:48 -08:00
John-David Dalton
7544166d11 Add placeholders to fp wrapper. [closes #1780] 2016-01-13 22:07:50 -08:00
mori_9tarou
ff5f06b9f0 Fix _.pullAll doc example typo. [ci skip] 2016-01-13 22:07:12 -08:00
John-David Dalton
06395f8436 Simplify fp map. 2016-01-13 22:03:41 -08:00
John-David Dalton
fe3d86bf13 Ensure _.defaultsDeep doesn't convert function properties to objects. [closes #1783] 2016-01-13 21:20:05 -08:00
John-David Dalton
f92dc95c58 Add fp mapping for _.gt, _.gte, _.lt, and _.lte. [closes #1776] 2016-01-13 14:44:52 -08:00
John-David Dalton
9058c00cfe Add isEqual to fp mapping. [closes #1764] 2016-01-13 08:11:58 -08:00
think2011
8b6bd8442e Fix _.isMatchWith doc typo. [ci skip] 2016-01-13 08:11:37 -08:00
Strider
1ef22e976d Fix _.clone/_.cloneDeep doc typo. [ci skip] 2016-01-13 08:10:23 -08:00
Abhas Tandon
d0d86aecf8 Fix _.maxBy/_.minBy doc example. [ci skip] 2016-01-13 08:08:57 -08:00
John-David Dalton
1ef4807a8e Ensure object are compared unordered. [closes #1758] 2016-01-13 03:56:55 -08:00
John-David Dalton
846e813c99 Ensure each and eachRight have the correct chain behavior. 2016-01-13 03:45:15 -08:00
John-David Dalton
73405cf042 Update fp property alias mapping. [closes #1755] 2016-01-13 00:09:29 -08:00
John-David Dalton
79c873f3f8 Update fp map for assignment methods and set methods. [closes #1754] 2016-01-13 00:06:59 -08:00
greenkeeperio-bot
0fc6929dd4 Update lodash dev dep. 2016-01-13 00:06:59 -08:00
John-David Dalton
753a32bed7 Remove legacy doc note from _.range. [closes #1753] [ci skip] 2016-01-13 00:06:59 -08:00
John-David Dalton
027c572758 Add replace to fp map. 2016-01-13 00:06:59 -08:00
John-David Dalton
afb7d3e351 Add split to fp map. [closes #1752] 2016-01-13 00:06:59 -08:00
John-David Dalton
a5c3ae0a7e Remove run from jsdoc alias tag. [ci skip] 2016-01-13 00:06:59 -08:00
John-David Dalton
9477e46fb3 Fix typos in lodash doc note. [ci skip] 2016-01-13 00:06:58 -08:00
John-David Dalton
bf06df4475 Bump to v4.0.0. 2016-01-13 00:06:58 -08:00
John-David Dalton
e775a58496 Rebuild lodash and docs. 2016-01-13 00:06:58 -08:00
John-David Dalton
ad15e47d4d Update dev deps. 2016-01-13 00:06:58 -08:00
John-David Dalton
45f7a91780 Update fp modules. 2016-01-13 00:06:47 -08:00
John-David Dalton
b1401d03a1 Update fp/util module paths. 2016-01-12 08:00:35 -08:00
John-David Dalton
8b264e5c11 Add eq to fp mapping. 2016-01-11 23:33:44 -08:00
John-David Dalton
2fb4ec0d5f Rename conj and disj to overEvery and overSome in fp mapping. 2016-01-11 23:33:44 -08:00
John-David Dalton
ddd5318bb0 Change category names of "Utility" to "Util" and "Chain" to "Seq". 2016-01-11 22:55:14 -08:00
John-David Dalton
3d44135df5 Remove run alias. 2016-01-11 21:21:21 -08:00
John-David Dalton
a98fc802fc Cleanup _.maxBy and _.minBy doc example. [ci skip] 2016-01-11 16:14:26 -08:00
John-David Dalton
ed364ecfee Cleanup _.iteratee doc example. [ci skip] 2016-01-11 16:14:26 -08:00
John-David Dalton
434d217bfa Cleanup omit and pick doc examples. [ci skip] 2016-01-11 16:14:26 -08:00
John-David Dalton
2386557b5e Add more _.toArray doc examples. [ci skip] 2016-01-11 16:14:26 -08:00
John-David Dalton
f619a6666a Cleanup clone doc examples. [ci skip] 2016-01-11 16:14:26 -08:00
John-David Dalton
359ef9715e Cleanup resolve doc examples. [ci skip] 2016-01-11 16:14:25 -08:00
John-David Dalton
9211bc6329 Remove toInteger from baseSlice. 2016-01-11 08:17:00 -08:00
John-David Dalton
a26ef1a997 Remove unused variables. 2016-01-10 15:35:44 -08:00
John-David Dalton
c9f53b9a1c Remove .sauce.yml. 2016-01-10 13:44:54 -08:00
John-David Dalton
f9a3e66716 Update _.unzipWith and _.zipWith iteratee docs. [ci skip] 2016-01-10 12:38:02 -08:00
John-David Dalton
e5464fa199 Change "callback shorthand" to "iteratee shorthand". [ci skip] 2016-01-10 12:37:40 -08:00
John-David Dalton
9dc2f1ee29 Fix test for es build. 2016-01-09 13:56:56 -08:00
John-David Dalton
b27143aa15 Add missing bizarro labels. 2016-01-09 01:24:56 -08:00
John-David Dalton
07c38311ca Add _.clone test for objects without a constructor function. 2016-01-09 01:17:23 -08:00
John-David Dalton
4a0415a6bd Increase test coverage of symbols. 2016-01-09 01:17:16 -08:00
John-David Dalton
5d97cdbcfe Minor formatting nit. 2016-01-09 01:02:47 -08:00
John-David Dalton
7cce658fc4 Leak to avoid sporadic noglobals fails on Edge in Sauce Labs. 2016-01-08 23:46:48 -08:00
John-David Dalton
84879453b1 Add _.cond test for provided arguments. 2016-01-08 23:01:07 -08:00
John-David Dalton
9cc79db819 Add _.toLength test for -0. 2016-01-08 21:35:16 -08:00
John-David Dalton
17a1663513 Add default wait test for _.delay. 2016-01-08 21:35:16 -08:00
John-David Dalton
11538ccf90 Cleanup test labels. [ci skip] 2016-01-08 21:35:16 -08:00
John-David Dalton
5c51b1c4d1 Simplify baseInRange and baseRange description. [ci skip] 2016-01-08 21:35:16 -08:00
John-David Dalton
5a13fe28c9 Rename _.random params start and end to lower and upper. 2016-01-08 21:35:10 -08:00
John-David Dalton
946560c998 Add baseClamp. 2016-01-08 20:11:59 -08:00
John-David Dalton
7c5e032853 Simplify isNumber. 2016-01-08 11:47:17 -08:00
John-David Dalton
54ae91b2d9 Use freeParseFloat and freeParseInt. 2016-01-08 08:34:37 -08:00
John-David Dalton
8bd8aa3037 Assign methods should create an object when object is nullish. 2016-01-07 21:53:35 -08:00
John-David Dalton
6fa9490a13 Ensure uglify options are set correctly. 2016-01-07 21:20:22 -08:00
John-David Dalton
5dc48d1a83 Sync uglify options with lodash-cli. 2016-01-07 21:20:03 -08:00
John-David Dalton
9e56a92c8a Drop Node 0.8 testing. 2016-01-07 20:41:19 -08:00
John-David Dalton
ac98d81b85 Update deps. 2016-01-07 20:41:19 -08:00
John-David Dalton
05e80e32f7 Simplify trim methods. 2016-01-07 20:41:18 -08:00
John-David Dalton
7435058859 Rename Symbol var to _Symbol to avoid problems with Babel v6.4.0. 2016-01-07 20:41:18 -08:00
John-David Dalton
81b1d6e451 Change arguments passed to _.zipWith and _.unzipWith. 2016-01-07 20:41:18 -08:00
John-David Dalton
52754415e0 Remove support for flattening arrays with circular references. 2016-01-07 20:41:18 -08:00
John-David Dalton
d51d67a5c2 Add sauce.yml. 2016-01-07 20:40:57 -08:00
John-David Dalton
c62fbd811b Enable equalArrays and equalObjects to exit early before checking the stack. 2016-01-05 08:23:08 -08:00
John-David Dalton
1df780abba Add comment to createRange to avoid refactoring the way start is resolved. [ci skip] 2016-01-05 08:11:02 -08:00
John-David Dalton
150511b263 Add createRange. 2016-01-05 07:59:28 -08:00
John-David Dalton
7fefa954c8 Add baseInRange. 2016-01-05 07:40:57 -08:00
Christopher Hiller
030472cee4 Remove references to Bower, Component, and Volo. [ci skip] 2016-01-05 07:34:13 -08:00
John-David Dalton
00c0dc233e Move toNumber use out of baseRange. 2016-01-05 07:31:47 -08:00
greenkeeperio-bot
1013bccb9c Update async and platform dev deps. 2016-01-04 09:19:01 -06:00
John-David Dalton
0911e77c32 Fix _.transform test fail due to _.cloneDeep behavior change. 2016-01-04 09:18:32 -06:00
John-David Dalton
4cdd33b2aa Update tested browsers in sauce. 2016-01-04 09:18:32 -06:00
John-David Dalton
638f081390 Fix fp test fails due to _.cloneDeep behavior change. 2016-01-04 09:18:32 -06:00
John-David Dalton
21f28bfd0d Add missing semicolon. 2016-01-04 09:18:32 -06:00
John-David Dalton
941745cd06 Add _.cond test for this binding. 2016-01-04 09:18:32 -06:00
John-David Dalton
8bf6bcb8a7 Cleanup this binding tests. 2016-01-04 09:18:32 -06:00
John-David Dalton
e7b8fd8281 Add basic _.cond test and test for undefined return values. 2016-01-04 09:18:31 -06:00
John-David Dalton
b1ba01e85a Simplify _.once test. 2016-01-04 09:18:31 -06:00
John-David Dalton
a74c71e423 Add constant function helpers. 2016-01-04 09:18:31 -06:00
John-David Dalton
dba1bcf973 Simplify [[Prototype]] test labels. 2016-01-04 09:18:31 -06:00
John-David Dalton
ed3f8cc39d Add support for creating clones with the same [[Prototype]] as value. 2016-01-04 09:18:31 -06:00
John-David Dalton
f39fdc42f6 Remove legacy options param signature from _.template. 2016-01-04 09:18:31 -06:00
John-David Dalton
9ef191db33 Cleanup _.template tests. 2016-01-04 09:18:31 -06:00
John-David Dalton
9582f25835 Simplify source test labels. 2016-01-04 09:18:31 -06:00
John-David Dalton
4463975ace Add _.templateSettings.imports._.templateSettings tests. 2016-01-04 09:18:31 -06:00
John-David Dalton
33cf509822 Add _.cond test for shorthands. 2016-01-04 09:18:30 -06:00
John-David Dalton
34f44e8f25 Add parentheses to tests. 2016-01-03 10:08:10 -06:00
John-David Dalton
7fb738ab91 Add _.cond test for function checks. 2016-01-03 10:07:48 -06:00
John-David Dalton
973e0812ad Add TypeError check for methods that reject falsey params. 2016-01-02 13:53:30 -06:00
John-David Dalton
cd8218541a Tweak truthy test for memoize resolve. 2016-01-02 13:49:04 -06:00
John-David Dalton
2316dff1e0 Use lodashStable in more places. 2016-01-02 13:48:12 -06:00
John-David Dalton
15ce24db25 Add _.isSymbol tests. 2016-01-02 12:30:13 -06:00
John-David Dalton
b0e0a20e96 Fix realm assignments. 2016-01-02 11:41:18 -06:00
John-David Dalton
849f8e77ec Ensure _.toString does not throw on symbols. 2016-01-02 11:41:11 -06:00
John-David Dalton
f7c7dee8b0 Add _.isSymbol. 2016-01-02 11:04:41 -06:00
John-David Dalton
167fad9649 Cleanup doc note on lazy evaluation. [ci skip] 2016-01-02 10:32:36 -06:00
John-David Dalton
9d3a298895 Cleanup symbol tests. 2016-01-02 10:32:35 -06:00
John-David Dalton
19b5ef7c6f Cleanup _.transform realm test. 2016-01-02 10:32:35 -06:00
John-David Dalton
9b09caa463 Add symbol tests for isType methods. 2016-01-02 10:32:35 -06:00
John-David Dalton
f08b6e2690 Add _.cond doc example. [ci skip] 2016-01-02 10:32:26 -06:00
John-David Dalton
fa13cb5544 Add getIteratee to _.cond. 2016-01-01 23:50:13 -06:00
John-David Dalton
1427c99169 Add _.cond. 2016-01-01 23:18:40 -06:00
John-David Dalton
3e155bdbb9 Move _.bindAll to the utility category. 2016-01-01 16:18:02 -06:00
John-David Dalton
f830612f17 Update tab/spacing rules for html files. 2016-01-01 14:49:47 -06:00
John-David Dalton
3b86574b4d Remove bower.json. 2016-01-01 12:09:06 -06:00
John-David Dalton
30d9cb9a4a Move flow and flowRight to checkFuncs. 2016-01-01 11:15:54 -06:00
John-David Dalton
cfe05b7d34 Bump copyright year. [ci skip] 2016-01-01 10:04:36 -06:00
John-David Dalton
60a016ae39 Remove Rhino mention from comment. [ci skip] 2015-12-31 20:54:47 -06:00
John-David Dalton
6229e02806 Excuse root._ export from coverage. 2015-12-30 17:18:03 -06:00
John-David Dalton
5202294ae2 Add more excused coverage gaps. 2015-12-30 14:50:16 -06:00
John-David Dalton
5bc50c2ef0 Simplify CommonJS UMD. 2015-12-30 14:50:03 -06:00
John-David Dalton
22b0b942ae Simplify assocSet pattern. 2015-12-29 22:18:12 -06:00
John-David Dalton
41f86399f0 Remove coverage check for break in createBaseEach. 2015-12-29 22:15:13 -06:00
John-David Dalton
bc7f2af2ce Add _.orderBy test for string objects. 2015-12-29 21:26:00 -06:00
John-David Dalton
db04398e49 Add support for removing the last capture group. 2015-12-29 09:15:01 -06:00
John-David Dalton
56929e9725 Use == for the 'desc' check in compareMultiple. 2015-12-29 08:52:50 -06:00
John-David Dalton
6798259b84 Use eq in assignInDefaults. 2015-12-29 01:29:18 -06:00
John-David Dalton
20906c7bf7 Update vendors. 2015-12-29 00:25:14 -06:00
John-David Dalton
560ddac75a Simplify Stack test. 2015-12-28 22:33:45 -06:00
John-David Dalton
daecf5cf01 Simplify setProperty. 2015-12-28 22:33:40 -06:00
John-David Dalton
505f8d5cda Fix phantomjs test fails. 2015-12-28 21:54:50 -06:00
John-David Dalton
1d7fd0638d Add more Stack tests. 2015-12-28 20:34:44 -06:00
John-David Dalton
67ca691334 Use eq in assocIndexOf. 2015-12-28 20:34:32 -06:00
John-David Dalton
85da55d917 Add Stack#clear. 2015-12-28 20:34:17 -06:00
John-David Dalton
ee8567ab38 Cleanup MapCache tests. 2015-12-28 20:33:39 -06:00
John-David Dalton
4ca2740628 Add _.transform test to check that object constructor is a function before using its [[Prototype]]. 2015-12-28 16:40:29 -06:00
John-David Dalton
23e6302329 Cleanup tests. 2015-12-28 16:28:05 -06:00
John-David Dalton
95c6dd8992 Add tests for MapCache values. 2015-12-28 15:18:45 -06:00
John-David Dalton
a5b733998d Remove "Opera" from test labels. 2015-12-28 14:54:01 -06:00
John-David Dalton
68b7749a0f Add more MapCache tests. 2015-12-28 14:53:13 -06:00
John-David Dalton
fb37e0767a Add tests for skipping value assignments. 2015-12-28 13:16:05 -06:00
John-David Dalton
43469b9877 Simplify Object.defineProperty use. 2015-12-28 13:15:43 -06:00
John-David Dalton
5a53215506 Rename assignSymbols to copySymbols and implement by way of copyObject. 2015-12-28 11:36:53 -06:00
John-David Dalton
51ce9edcf3 Rearrange _.has and _.hasIn tests. 2015-12-28 11:12:14 -06:00
John-David Dalton
18481a40b2 Add _.has and _.hasIn tests for arguments objects and strings. 2015-12-28 11:11:20 -06:00
John-David Dalton
24c0221ec5 Expand common case check in mergeData. 2015-12-28 10:37:49 -06:00
John-David Dalton
0f928233ce Add _.ary test case for multiple applied arys. 2015-12-28 10:11:17 -06:00
John-David Dalton
e5730af949 Add _.zipObject test for extra keys. 2015-12-28 00:08:26 -06:00
John-David Dalton
ed23b6b89d Rearrange tests for consistency. 2015-12-27 23:59:04 -06:00
John-David Dalton
28420ac1fc Add _.conforms test for missing object properties. 2015-12-27 23:58:51 -06:00
John-David Dalton
6da255f786 Add more MapCache tests. 2015-12-27 23:29:15 -06:00
John-David Dalton
2396932846 Remove dead code from stringToArray. 2015-12-27 23:10:59 -06:00
John-David Dalton
89b9f46ad8 Increase coverage of _.random, _.template, and _.truncate. 2015-12-27 20:23:01 -06:00
John-David Dalton
7dd0bb5005 Use 'utf8', which Node uses, instead of 'utf-8'. 2015-12-27 18:41:21 -06:00
John-David Dalton
44ecbc944b Move _#reverse tests into _.reverse tests. 2015-12-27 18:40:37 -06:00
John-David Dalton
223460bbd2 Remove unneeded assertion from a _.xor chaining test. 2015-12-27 16:22:12 -06:00
John-David Dalton
1a0a9709f2 Add tests for chaining _.invokeMap. 2015-12-27 16:21:21 -06:00
John-David Dalton
a16c282f99 Add more test coverage to _.add, _.subtract, and _.transform. 2015-12-27 15:08:48 -06:00
John-David Dalton
aeac5b0203 Increase code coverage of partial lines. 2015-12-27 14:41:57 -06:00
John-David Dalton
afdc4b746a Remove dead code in createRecurryWrapper. 2015-12-27 14:41:34 -06:00
John-David Dalton
6c84ccd5c5 Remove dead code from baseIntersection and cloneSymbol. 2015-12-27 13:27:47 -06:00
John-David Dalton
916bfed84b Add bizarro tests for Object.getOwnPropertySymbols. 2015-12-27 11:19:36 -06:00
John-David Dalton
35bb3ac128 Remove dead code from baseClone. 2015-12-27 11:19:36 -06:00
John-David Dalton
4f1c3887f7 Remove 'utf-8' option because it's the default. 2015-12-27 11:19:30 -06:00
John-David Dalton
ce19067cfd Cleanup PATTERN use in travis.yml. 2015-12-27 10:10:05 -06:00
John-David Dalton
00f4ebe6aa Remove legacy filePath resolving code. 2015-12-27 00:12:06 -06:00
John-David Dalton
5add1cfd25 Add test/remove.js to remove snippets while preserving new lines. 2015-12-27 00:06:15 -06:00
John-David Dalton
c67092d72b Report coverage from lodash.js instead of dist/lodash.js. 2015-12-26 22:15:50 -06:00
John-David Dalton
4bb5402cca Try codecov. 2015-12-26 22:08:38 -06:00
John-David Dalton
837acf1394 Add "use strict" directive to strict mode test. 2015-12-26 22:08:24 -06:00
John-David Dalton
0d8779734d Cleanup comment. [ci skip] 2015-12-26 22:07:15 -06:00
John-David Dalton
d8213454c2 Use assignValue in assignSymbols. 2015-12-26 21:31:26 -06:00
John-David Dalton
e05c8677bf Search for srcValue in stack before objValue. 2015-12-26 21:31:02 -06:00
John-David Dalton
a5b9063088 Use objValue instead of oldValue. 2015-12-26 21:26:36 -06:00
John-David Dalton
83ea7ac136 Make eq comparisons new value vs. old value. 2015-12-26 21:24:45 -06:00
John-David Dalton
f3075d685e Only copy symbols on objects and nested objects. 2015-12-26 19:24:59 -06:00
John-David Dalton
a811476c1b Add tests for cloning properties that shadow those on Object.prototype. 2015-12-26 12:26:49 -06:00
John-David Dalton
64fe626fa6 Simplify supported comparision doc notes for _.isMatch, _.matches, and _.matchesProperty. [ci skip] 2015-12-26 11:04:17 -06:00
John-David Dalton
f8236c711f Use eq in more places. 2015-12-25 22:01:52 -06:00
Benjamin Tan
b1f6bc72f4 Fix minor doc typo in _.chunk. [ci skip] 2015-12-25 22:01:51 -06:00
John-David Dalton
300dee34bd Test cloning date objects. 2015-12-25 22:01:51 -06:00
John-David Dalton
1eaa112f7d Add tests for cloning symbol properties. 2015-12-25 22:01:51 -06:00
John-David Dalton
8228376160 Use assignValue in baseClone to avoid strict mode errors. 2015-12-25 22:01:45 -06:00
John-David Dalton
a58cd65db8 Add support for cloning symbol properties to _.clone and _.cloneDeep. 2015-12-24 13:35:15 -06:00
John-David Dalton
2df689524e Simplify _.times doc example. [ci skip] 2015-12-24 00:16:25 -06:00
John-David Dalton
a20ad60f13 Add "requireEarlyReturn" rule. 2015-12-23 18:36:13 -06:00
John-David Dalton
1c781389d2 Add support for comparing array buffers to _.isEqual. 2015-12-23 18:18:12 -06:00
flyyang
5e639d1704 Fix doc and test label typos. [ci skip] 2015-12-23 09:22:41 -06:00
John-David Dalton
8e64432e2c Add docs to clarify what values are supported by _.clone and _.isEqual. [ci skip] 2015-12-23 00:56:41 -06:00
John-David Dalton
a8de2ca410 Indent nit. [ci skip] 2015-12-23 00:54:59 -06:00
John-David Dalton
6343518bca Simplify instanbul invocation in travis.yml. 2015-12-22 23:27:16 -06:00
John-David Dalton
351e259174 Add coverage to the .gitignore. 2015-12-22 18:17:07 -06:00
greenkeeperio-bot
1d77e29c3c Update dev deps. 2015-12-22 18:16:45 -06:00
John-David Dalton
eba9b3d22a Avoid test fail in Edge. 2015-12-22 01:22:09 -06:00
John-David Dalton
844fe1d979 Make var name changes for consistency. 2015-12-22 01:04:26 -06:00
John-David Dalton
0971a7820f Add support for symbols to _.clone, _.cloneDeep, and _.isEqual. 2015-12-22 01:04:26 -06:00
John-David Dalton
06c6f180dc Simplify test descriptions. 2015-12-22 01:04:26 -06:00
John-David Dalton
33da30266c Ensure min and max of _.random are swapped if min > max. 2015-12-22 01:04:19 -06:00
John-David Dalton
ad8628f8e7 Avoid isIterateeCall check if step is a number. 2015-12-20 14:03:04 -06:00
John-David Dalton
f42446d22f Avoid isIterateeCall check if floating is a boolean. 2015-12-20 12:39:00 -06:00
John-David Dalton
4b77b7a8b3 Make _.add, _.subtract, and _.sum not skip NaN values. 2015-12-19 10:37:49 -06:00
John-David Dalton
9e99a57615 Make "asc" the default order of _.orderBy. 2015-12-18 23:32:43 -06:00
John-David Dalton
7e648741ad Remove unneeded _.memoize.Cache test. 2015-12-17 20:43:56 -08:00
John-David Dalton
b1d396bbbb Cleanup mapClear. 2015-12-17 20:43:32 -08:00
Aaron Hamid
380435d020 Add clear method to MapCache. 2015-12-17 20:01:17 -08:00
John-David Dalton
71fb66dc37 Rename _.sortByOrder to _.orderBy. 2015-12-16 20:14:52 -08:00
John-David Dalton
a53280f047 Remove volo from package.json. 2015-12-16 17:56:35 -08:00
John-David Dalton
ccfb968b8a Clarify arity param of _.curry. [ci skip] 2015-12-16 01:15:43 -08:00
John-David Dalton
db731e0c91 Cleanup fp mapping and tests. 2015-12-15 22:25:52 -08:00
Benjamin Tan
a4b86f8368 Limit sample to one argument. 2015-12-15 22:25:52 -08:00
Benjamin Tan
44c697908b Ensure curryN, curryRightN, curryRight, and sampleSize are defined. 2015-12-15 22:25:35 -08:00
John-David Dalton
e3c79bd24a Refine Object.prototype check in _.defaults. 2015-12-15 21:04:39 -08:00
John-David Dalton
fb1ed531e4 Cleanup param docs. [ci skip] 2015-12-15 20:55:44 -08:00
John-David Dalton
a6cb6d26a4 Add _.split test for limit. 2015-12-15 20:37:43 -08:00
John-David Dalton
003a5981d6 Cleanup jQuery doc references. [ci skip] 2015-12-15 00:28:47 -08:00
John-David Dalton
0bf38b826e Update dev deps. 2015-12-14 22:53:40 -08:00
John-David Dalton
4038d12f1b Move replace and split tests from chained to non-chained forms. 2015-12-14 21:44:36 -08:00
John-David Dalton
9d60e28aad Reset args to undefined. 2015-12-14 20:37:44 -08:00
John-David Dalton
ae92aa200f Add fp tests for cherry-picked reduce and reduce iterating an object. 2015-12-14 20:37:05 -08:00
John-David Dalton
4584b857ca Update vendor/underscore. 2015-12-14 11:54:17 -08:00
John-David Dalton
46bdf5d79d Simplify _.reduce and _.reduceRight. 2015-12-14 08:25:28 -08:00
John-David Dalton
83720f457e Remove custom lodash option from perf and test ui. 2015-12-14 08:25:10 -08:00
John-David Dalton
0706af1543 Ensure the fp iteratee wrapper enforces arity for functions with a length of 0. 2015-12-14 08:06:29 -08:00
John-David Dalton
41985d8c1a Ensure reduce and reduceRight use getIteratee for the array path. 2015-12-13 23:29:52 -08:00
John-David Dalton
440eb0876c Dry up lib/fp/base.js 2015-12-12 14:10:45 -08:00
John-David Dalton
ac0a0ea07e Add delete to Map interface note. [ci skip] 2015-12-12 11:03:34 -08:00
John-David Dalton
4a534da00a Use MDN for built-in method references. [ci skip] 2015-12-12 11:03:18 -08:00
John-David Dalton
ff4143b482 Expose _.replace and _.split. 2015-12-12 10:54:11 -08:00
John-David Dalton
f132c0024f Make fp versions of set and setWith immutable. 2015-12-11 01:39:33 -08:00
John-David Dalton
82a1010f64 Fix fp test fail when run from Node. 2015-12-11 01:29:14 -08:00
greenkeeperio-bot
d885a9afd0 Update coveralls to 2.11.6. 2015-12-10 22:40:19 -08:00
John-David Dalton
08568fcc8f Update vendor/backbone and vendor/underscore. 2015-12-10 18:32:57 -08:00
John-David Dalton
2192b7748e Remove test/asset/test-ui.js use from test/fp.html. 2015-12-09 23:36:40 -08:00
John-David Dalton
c96a579291 Simplify _.overArgs. 2015-12-09 01:37:34 -08:00
greenkeeperio-bot
095cf94c45 Update jscs to 2.7.0. 2015-12-09 01:28:10 -08:00
John-David Dalton
f7a49778ea Rename _.modArgs to _.overArgs and remove _.modArgsSet. 2015-12-08 23:23:34 -08:00
John-David Dalton
58b235b435 Fix fp test fails in IE10 and Firefox. 2015-12-07 00:58:03 -08:00
John-David Dalton
a7f1c3c883 Fix test fails in IE11. 2015-12-07 00:37:37 -08:00
John-David Dalton
268d411bb4 Update lodash builds in travis.yml. 2015-12-06 22:48:39 -08:00
John-David Dalton
7cdf708e3c Prevent false minified method name test fail. 2015-12-06 22:13:39 -08:00
John-David Dalton
42c077de02 Make fp tests browser runnable. 2015-12-05 23:44:09 -08:00
John-David Dalton
769f78a2b7 Rename test/test.fp.js to test/test-fp.js. 2015-12-05 22:01:05 -08:00
John-David Dalton
b69ba06db9 Add a doc on path creation for _.set. [ci skip] 2015-12-05 12:55:16 -08:00
John-David Dalton
42d5cc584e Simplify iteration in createBaseFor . 2015-12-05 12:55:15 -08:00
John-David Dalton
f3d54d0975 Add _.rangeRight tests. 2015-12-05 12:55:15 -08:00
John-David Dalton
39192ad388 Shorten flag vars. 2015-12-05 12:55:15 -08:00
John-David Dalton
19500d36c7 Avoid fails in flowRight setup. 2015-12-05 12:55:15 -08:00
John-David Dalton
229f0b48cd Update perf/perf.js to correctly load libs when running from the command line. 2015-12-05 12:55:15 -08:00
John-David Dalton
58736f743e Add rangeRight to fp mapping. 2015-12-05 12:55:10 -08:00
John-David Dalton
dc136cbf31 Remove perf/run-perf.sh. 2015-12-03 18:00:00 -08:00
John-David Dalton
81e39f7c4b Add _.rangeRight docs. [ci skip] 2015-12-03 17:59:46 -08:00
John-David Dalton
1cbb6f1405 Add doc note to _.includes about string values. [ci skip] 2015-12-03 11:54:27 -08:00
John-David Dalton
1ae6e67cdc Add _.rangeRight. 2015-12-03 08:41:55 -08:00
John-David Dalton
3d43cc1029 Use "IE" instead of "Internet Explorer" in comment. [ci skip] 2015-12-01 10:10:29 -08:00
John-David Dalton
230e8d0787 Make build expose fp mapping in the dist. 2015-11-30 20:19:56 -08:00
John-David Dalton
8154e5e521 Fix argument juggling. 2015-11-30 20:18:08 -08:00
greenkeeperio-bot
f4467f6033 Update sauce-tunnel to 2.3.0. 2015-11-30 10:34:46 -08:00
Brian Mock
562b04a763 Update email address in CoC. [ci skip] 2015-11-29 15:18:12 -08:00
John-David Dalton
9bcbcc5293 Ensure _.clone handles generators correctly. 2015-11-29 17:00:45 -06:00
John-David Dalton
fdc15df3b3 Remove rhino testing. 2015-11-29 12:00:53 -06:00
John-David Dalton
e778458f78 Minor style tweak to _.overEvery test. 2015-11-29 00:09:13 -06:00
John-David Dalton
0a55eff5d5 Fix spread test fail. 2015-11-29 00:07:43 -06:00
John-David Dalton
3874b5bf84 Add semicolons. 2015-11-29 00:01:28 -06:00
John-David Dalton
d07343a1aa Use apply in more places. 2015-11-28 23:13:55 -06:00
John-David Dalton
a37c6db377 Use apply in _.invokeMap. 2015-11-28 10:02:42 -06:00
John-David Dalton
1f991a7cdc Rename binaryIndex and binaryIndexBy to baseSortedIndex and baseSortedIndexBy. 2015-11-28 00:42:05 -06:00
John-David Dalton
e99a31c2fa Update call and invocation use. [ci skip] 2015-11-27 20:18:09 -06:00
John-David Dalton
876fe52efc Describe HOT vars a bit more. [ci skip] 2015-11-27 20:16:11 -06:00
John-David Dalton
8f190b1fb1 Update Firefox in test/saucelabs.js. 2015-11-27 18:33:56 -06:00
John-David Dalton
411f3ecb3e Update benchmarks. 2015-11-27 18:33:50 -06:00
John-David Dalton
3d31423eef Remove thisArg param benchmarks. 2015-11-27 16:24:13 -06:00
John-David Dalton
68c0eb5216 Remove java scaffolding from benchmarks. 2015-11-27 16:23:51 -06:00
John-David Dalton
39dae19974 Update vendor/benchmark.js. 2015-11-27 16:19:39 -06:00
John-David Dalton
2dd6f0124e Infer sign of range's step when only start and end are provided. 2015-11-27 01:01:44 -06:00
John-David Dalton
826af968c8 Add baseTrim. 2015-11-26 23:17:44 -06:00
John-David Dalton
70c3d325a0 Infer sign of range's step when only end is provided. 2015-11-26 23:17:30 -06:00
John-David Dalton
6289211910 Update test.fp with over methods. 2015-11-25 12:48:38 -08:00
John-David Dalton
86346291a7 Update fp mapping for invoke. 2015-11-25 12:25:45 -08:00
John-David Dalton
05d57b90a9 Rename _.invokePath to _.invoke. 2015-11-25 12:07:13 -08:00
John-David Dalton
dd64f5eac4 Ensure _.flattenDeep works on arrays with circular references. [closes #1664] 2015-11-25 09:20:05 -08:00
John-David Dalton
e6de183651 Update jsdoc params for stack. [ci skip] 2015-11-25 09:20:05 -08:00
John-David Dalton
7bd986337a Add lazy invokeMap. 2015-11-24 23:20:18 -08:00
John-David Dalton
6dc92df880 Add implicit chaining test for _.invokePath. 2015-11-24 16:22:44 -08:00
John-David Dalton
44abe46da4 Rename _.invoke to _.invokeMap. 2015-11-24 16:22:40 -08:00
greenkeeperio-bot
9e334b5ece Update webpack to 1.12.9 & istanbul to 0.4.1. 2015-11-24 12:02:57 -08:00
John-David Dalton
ee8a248086 Add large array test for _.uniqBy and _.sortedUniqBy. 2015-11-24 12:02:57 -08:00
John-David Dalton
8f1f98b003 Add _.invokePath tests. 2015-11-24 12:02:57 -08:00
John-David Dalton
a6bc1fa316 Avoid set optimization if iteratee is provided to baseUniq. 2015-11-24 00:33:28 -08:00
John-David Dalton
ce6c0f3082 Add array path test for _.zipObject. 2015-11-23 21:48:10 -08:00
John-David Dalton
393849384b Update _.result doc example. [ci skip] 2015-11-23 00:00:49 -08:00
John-David Dalton
618280340f Cleanup function doc descriptions and params. [ci skip] 2015-11-23 00:00:24 -08:00
John-David Dalton
6b77af4e5a Add baseInvokePath. 2015-11-22 23:53:13 -08:00
John-David Dalton
aa8524b8ad Add _.flatMap chain sequence test. 2015-11-22 20:31:02 -08:00
John-David Dalton
87a813566a Expose _.invokePath. 2015-11-21 21:57:54 -08:00
John-David Dalton
73a97d5762 Reword chain sequence to sequence. 2015-11-21 12:20:55 -08:00
John-David Dalton
ce4c6ec755 Add _.flatMap test. 2015-11-21 00:16:23 -08:00
John-David Dalton
21b5139d98 Update fp mapping. 2015-11-21 00:12:23 -08:00
John-David Dalton
7745c91c69 Split _.fromPairs into _.zipObject. 2015-11-21 00:02:08 -08:00
John-David Dalton
bce8f498b4 Update _.map doc note on guarded methods. [ci skip] 2015-11-20 21:58:03 -08:00
John-David Dalton
7eaacc3997 Simplify wrapperReverse docs. [ci skip] 2015-11-20 21:57:40 -08:00
John-David Dalton
c699ff7574 Cleanup wrapperAt. 2015-11-20 21:57:17 -08:00
John-David Dalton
11d8867d7a Add _.flatMap. 2015-11-20 21:56:56 -08:00
greenkeeperio-bot
d4eeb8d186 Update dep packages. 2015-11-20 18:01:06 -08:00
John-David Dalton
a562a20b4e Ensure _.bindKey funcs call object[key] when called with the new operator. 2015-11-20 08:13:58 -08:00
John-David Dalton
3ecf626ad0 Update fp mapping. 2015-11-20 08:13:58 -08:00
John-David Dalton
766c4315e6 Rename _.pairs and _.zipObject to _.toPairs and _.fromPairs. 2015-11-20 08:13:51 -08:00
John-David Dalton
b9f2855034 Rename _.conj, _.disj, and _.juxt to _.overEvery, _.overSome, and _.over. 2015-11-19 08:18:32 -08:00
John-David Dalton
44397f79a6 Rename padLeft, padRight, trimLeft, and trimRight to padStart, padEnd, trimStart, and trimEnd. 2015-11-18 15:52:17 -08:00
John-David Dalton
dcca9b82b1 Add doc note to debounce and throttle about the arguments provided to the invoked func. [ci skip] 2015-11-18 15:52:17 -08:00
John-David Dalton
ecef32a101 Minor travis.yml nit. 2015-11-18 15:52:17 -08:00
John-David Dalton
41d425319c Fix core builds and test them. 2015-11-18 15:52:17 -08:00
John-David Dalton
6a49f227b4 Move sauce enviro var higher in travis.yml. 2015-11-18 15:52:16 -08:00
John-David Dalton
a3ced39b12 Use caret for platform.js dep range. 2015-11-18 15:52:16 -08:00
John-David Dalton
b89045b20f Remove unused case in apply. 2015-11-18 15:52:16 -08:00
John-David Dalton
4e3f3899c4 Add at to the lodash shortcut fusion doc note. [ci skip] 2015-11-18 15:52:16 -08:00
John-David Dalton
a8d865a246 Expose _.join. 2015-11-16 08:13:48 -08:00
John-David Dalton
cad0fbfc4d Ensure _.at works with an out of range index when chaining. 2015-11-15 23:44:46 -08:00
John-David Dalton
45f07d5014 Ensure shortcut fusion works for _.at with no indexes specified. 2015-11-15 23:44:45 -08:00
John-David Dalton
64a7503196 Add lazy at tests to ensure it works with string index values. 2015-11-15 23:44:45 -08:00
John-David Dalton
783c23cbfb Make _.at support shortcut fusion in a chain sequence when operating on an array and selecting a single index. [closes #1636] 2015-11-15 23:44:45 -08:00
John-David Dalton
1c04dfe083 Minor wording nit in test description. [ci skip] 2015-11-15 23:44:45 -08:00
John-David Dalton
59ec97f59f Ensure _.keys and _.keysIn skip "length" keys for strict mode arguments objects in Safari 9. 2015-11-14 13:00:12 -08:00
John-David Dalton
c71d26c7e8 Update lodash paths in test-ui.js and perf-ui.js. 2015-11-14 13:00:12 -08:00
John-David Dalton
88e58aa8f9 Update our CoC. [ci skip] 2015-11-14 13:00:12 -08:00
John-David Dalton
40850f9cda Update core builds. 2015-11-14 13:00:12 -08:00
John-David Dalton
be3afcf668 Ensure correct param order in fp.zip. 2015-11-12 09:56:24 -08:00
John-David Dalton
c1b7679cac Make _.times implicitly end a chain sequence. 2015-11-11 23:37:18 -08:00
John-David Dalton
a370c48d9c Rename wrapper param to wrapFunc. 2015-11-11 23:37:18 -08:00
John-David Dalton
6c0e456a5e Description cleanup for Math methods. [ci skip] 2015-11-11 23:37:18 -08:00
John-David Dalton
ebb993b862 Fix code style nits. 2015-11-10 23:58:50 -08:00
Agus Pina
3408db91b6 Add _.mean. 2015-11-10 23:56:07 -08:00
John-David Dalton
f0e8371997 Simplify function descriptions. [ci skip] 2015-11-10 23:34:53 -08:00
John-David Dalton
55383b9de4 Add apply doc block. [ci skip] 2015-11-10 23:34:20 -08:00
John-David Dalton
5551a8365a Cleanup wrapper functions. 2015-11-10 23:33:27 -08:00
John-David Dalton
87fc16af19 Cleanup createPartialWrapper. 2015-11-10 07:40:16 -08:00
John-David Dalton
80d91b693a Optimize createPartialWrapper. 2015-11-09 23:16:22 -08:00
John-David Dalton
977438309b Remove partials cleanup in createWrapper and move it to bind and bindKey. 2015-11-09 23:15:31 -08:00
John-David Dalton
28b426f19d Move createRecurryWrapper lower in source. 2015-11-09 20:09:30 -08:00
John-David Dalton
d40c5d3de8 Add createSet. 2015-11-09 20:09:25 -08:00
Jason Karns
53702774d0 upport deep paths as keys in _.zipObject. 2015-11-09 08:41:21 -08:00
John-David Dalton
b36e659c56 Avoid a circular dependency in createHybridWrapper. 2015-11-09 07:13:41 -08:00
John-David Dalton
0dcf028592 Split createHybridWrapper into createCurryWrapper and createRecurryWrapper. 2015-11-08 23:22:14 -08:00
John-David Dalton
549918d7f9 Update fp test for zipObject. 2015-11-08 21:04:40 -08:00
John-David Dalton
dcb23f46a4 Add concat to fp mapping. 2015-11-08 21:00:52 -08:00
John-David Dalton
c152ae71e2 Add add and subtract to fp mapping. 2015-11-08 20:56:19 -08:00
John-David Dalton
32cd726bd0 Move _#concat to _.concat. 2015-11-08 20:50:21 -08:00
John-David Dalton
4f104d74ca Rename baseIncludes to arrayIncludes and includesWith to arrayIncludesWith. 2015-11-08 19:43:36 -08:00
John-David Dalton
9c44430975 Rename _.includes param target to value. 2015-11-08 19:42:54 -08:00
John-David Dalton
1309f37a7e Cleanup comparator and iteratee param descriptions. [ci skip] 2015-11-08 19:41:05 -08:00
John-David Dalton
3ed0cc14ea Add subtract to lodash doc block. [ci skip] 2015-11-08 13:35:16 -08:00
John-David Dalton
73a698151f Cleanup _.sortedIndexBy and _.sortedLastIndexBy test. 2015-11-08 12:23:18 -08:00
John-David Dalton
8a3842b788 Ensure _.defaults assigns properties that shadow those on Object.prototype. 2015-11-08 12:16:47 -08:00
John-David Dalton
73d68c9609 Simplify NaN checks in tests. 2015-11-08 12:13:37 -08:00
DARCHY Jeremy
f6d81e1bd8 Add _.subtract. 2015-11-07 22:05:34 -08:00
John-David Dalton
98e607e610 Update ecstatic to 1.2.0, webpack to 1.12.3, & jscs to 2.5.1. 2015-11-06 10:54:22 -08:00
John-David Dalton
a7ec0c2e93 Fix fp alias assignments. 2015-11-05 15:10:28 -06:00
John-David Dalton
0b3e19f56e Use argument in place of parameter for test descriptions. [ci skip] 2015-11-05 15:10:11 -06:00
John-David Dalton
60ac7cfe74 Add conj, disj, and juxt to aryMethodMap. 2015-11-05 15:09:23 -06:00
John-David Dalton
491102f221 Correct arity mapping for _.uniqueId. 2015-11-05 09:09:34 -06:00
Xotic750
9db252e55d Cleanup baseFill. 2015-11-04 23:59:42 -06:00
Xotic750
b9b94609f5 Enhance _.debounce to use toNumber. 2015-11-04 23:19:59 -06:00
Xotic750
fe910d01f6 The_.throttle method uses _.debounce so no coersion of wait required. 2015-11-04 23:13:36 -06:00
Xotic750
ea71539b7a Enhance delay with toNumber to use binary and octal strings. 2015-11-04 14:30:36 -06:00
John-David Dalton
3d9fd1d374 Add fast path for falsey values in _.toInteger, _.toLength, _.toNumber, and _.toSafeInteger. 2015-11-03 07:22:00 -06:00
Xotic750
3eda8e64f3 Enhance createRound by using toNumber to allow binary and octal strings. 2015-11-03 06:22:26 -06:00
Xotic750
ec8ccbcc55 Enhance clamp with toNumber to allow binary and octal strings. 2015-11-03 06:13:10 -06:00
Xotic750
1d58823405 Enhance inRange with toNumber to allow binary and octal strings. 2015-11-03 06:13:10 -06:00
Xotic750
19e0650c4f Enhance random with toNumber to allow binary and octal strings. 2015-11-03 06:13:10 -06:00
Xotic750
f45fc10cb1 Enhance range with toNumber to allow binary and octal strings. 2015-11-03 11:35:33 +01:00
greenkeeperio-bot
42dff0e5fb Update fs-extra to 0.26.2. 2015-11-02 22:03:55 -06:00
John-David Dalton
ee9339e73b Add shortcut fusion heuristic note to lodash docs. [ci skip] 2015-11-02 13:12:44 -06:00
John-David Dalton
611aaa5385 Update doc examples of isInteger, isLength, isNumber, isSafeInteger, toInteger, toLength, toNumber, toSafeInteger, and toString. [ci skip] 2015-11-02 13:12:17 -06:00
Xotic750
e25369a306 Improve documents for _.toString by including examples. [ci skip] 2015-11-02 08:38:15 -08:00
Xotic750
67701944f1 Improve toNumber documentation by including examples. [ci skip] 2015-11-02 08:37:47 -08:00
Xotic750
ecaee16d23 Improve documentation of toLength by including examples. [ci skip] 2015-11-02 08:32:43 -08:00
John-David Dalton
b84c336855 Add _.unary tests. 2015-11-01 17:30:06 -08:00
John-David Dalton
447bafaa5b Add _.differenceWith, _.intersectionWith, _.unionWith, _.uniqWith, and _.xorWith` tests. 2015-11-01 17:15:45 -08:00
John-David Dalton
2f93e0a499 Fix failing test in Node < 0.12. 2015-11-01 15:41:19 -08:00
John-David Dalton
6c2ada9ffc Expose _.unary. 2015-11-01 15:21:50 -08:00
John-David Dalton
982b9d2b0a Use hexadecimal instead of hex for consistency. [ci skip] 2015-11-01 15:01:59 -08:00
John-David Dalton
1fe87d0348 Simplify reIsBinary. 2015-11-01 14:56:55 -08:00
John-David Dalton
8d8d4fa3b1 Use MAX_INTEGER instead of Number.MAX_VALUE. 2015-11-01 14:51:44 -08:00
John-David Dalton
94fb8c6f92 Add toNumber use to _.toInteger. 2015-11-01 14:51:25 -08:00
John-David Dalton
04c7b33f90 Cleanup tests. 2015-11-01 14:03:09 -08:00
John-David Dalton
ae76c3ee71 Cleanup _.toNumber test. 2015-11-01 13:43:38 -08:00
John-David Dalton
7d1e24d07f Update to Node 5 in travis tests. 2015-10-31 14:30:42 -07:00
Xotic750
37955345ef Add _.toNumber. 2015-10-31 14:30:10 -07:00
John-David Dalton
4bc35e9ed4 Remove internal isLength test since it's exposed now. 2015-10-31 12:23:03 -07:00
John-David Dalton
c142cfc81d Add "loosely" qualify to the _.isLength spec note. [ci skip] 2015-10-31 11:01:13 -07:00
John-David Dalton
39a22bf15b Cleanup _.toInteger and max MAX_INTEGER equal to Number.MAX_VALUE. 2015-10-31 10:49:40 -07:00
John-David Dalton
eb636f9538 Cleanup _.toLength tests. 2015-10-31 10:46:48 -07:00
John-David Dalton
8a838633d1 Cleanup lodash, isLength, and toLength docs. [ci skip] 2015-10-31 10:46:32 -07:00
John-David Dalton
963e297c74 Cleanup _.isLengh tests. 2015-10-30 23:01:25 -07:00
John-David Dalton
d95dbf6ba8 Simplify reIsUint. 2015-10-30 22:27:21 -07:00
John-David Dalton
ae032c8523 Cleanup isIndex tests. 2015-10-30 21:57:46 -07:00
Xotic750
2b4a10c159 Expose _.toLength. 2015-10-30 21:41:17 -07:00
Xotic750
c7ef030ef5 Improve reIsUint to filter strings like '0001' and add tests. 2015-10-30 21:41:16 -07:00
Xotic750
7e726735ba Expose _.isLength. 2015-10-30 21:40:53 -07:00
John-David Dalton
3d25b2fd9b Add _.differenceWith, _.intersectionWith, _.unionWith, _.uniqWith, and _.xorWith. 2015-10-30 10:04:10 -07:00
John-David Dalton
96a22aaec0 Make fp convert call noConflict. 2015-10-30 01:01:10 -07:00
greenkeeperio-bot
ccef887f88 Update jscs to 2.5.0. 2015-10-29 11:06:49 -07:00
John-David Dalton
7d9c6527a4 Add and update mutation notes for _.assign and _.assignIn. [ci skip] 2015-10-28 07:43:48 -07:00
John-David Dalton
ef7191dbc1 Move assignIn and assignInWith closer to assign. 2015-10-28 07:40:16 -07:00
John-David Dalton
bc2adb208c Ensure _.toString produces the correct result for Object(-0). 2015-10-28 07:29:20 -07:00
Xotic750
cd371ac66f Preserve sign of 0 in _.toString. 2015-10-28 00:04:15 -07:00
John-David Dalton
9c342eb432 Move _.extend and _.extendWith to alias and add _.assignIn and _.assignInWith. 2015-10-27 16:59:44 -07:00
greenkeeperio-bot
95f5b39aed Update qunitjs to 1.20.0. 2015-10-27 16:35:19 -07:00
John-David Dalton
9ce38cb43c Space nit in test catch block. 2015-10-27 08:37:28 -07:00
John-David Dalton
8b57b3086e Newline nit in _.valuesIn description. [ci skip] 2015-10-27 06:50:38 -07:00
John-David Dalton
3fdec6d25e Add missing comma to baseFind description. [ci skip] 2015-10-27 06:50:37 -07:00
John-David Dalton
557af10067 Add _.functionsIn and _.pairsIn. 2015-10-27 06:50:30 -07:00
John-David Dalton
6b2645b310 Add ramda aliases to fp mapping. 2015-10-27 00:55:01 -07:00
John-David Dalton
c360ee0fa4 Use number values for fp cap mapping. 2015-10-26 21:22:29 -07:00
John-David Dalton
3ac5870530 Run travis in its faster container-based infrastructure. 2015-10-26 15:31:58 -07:00
Xotic750
5218fd2c24 Rename _.trunc to _.truncate. 2015-10-26 15:19:10 -07:00
fdegiuli
accb8e9b07 Fix typo in _.sumBy examples. [ci skip] 2015-10-26 15:18:53 -07:00
greenkeeperio-bot
e331ea5d82 Update async to 1.5.0. 2015-10-25 19:03:25 -07:00
John-David Dalton
ae804b8cc7 Cleanup labels for modified sources tests. 2015-10-25 12:43:28 -07:00
John-David Dalton
66d72345f2 Ensure _.conforms functions return true when comparing an empty source. 2015-10-25 12:42:58 -07:00
John-David Dalton
436d64f881 Update fs-extra to version 0.26.0. 2015-10-25 11:42:19 -07:00
John-David Dalton
c3ec32cc16 Add empty invocation test to string methods test. 2015-10-25 11:42:03 -07:00
John-David Dalton
4b86df4966 Add _.template test for empty strings. 2015-10-25 11:42:03 -07:00
John-David Dalton
9fbf1955f2 Add more _.conforms tests. 2015-10-25 11:42:03 -07:00
John-David Dalton
2008a82017 Add _.conforms test. 2015-10-25 11:42:03 -07:00
John-David Dalton
8c04a00177 Newline nit. 2015-10-25 11:42:02 -07:00
John-David Dalton
8370277352 Move flow tests. 2015-10-25 11:42:02 -07:00
John-David Dalton
89279009d8 Ensure _.defaultsDeep doesn't attempt a merge of a string into an array. [closes #1560] 2015-10-25 11:42:02 -07:00
John-David Dalton
182b29662d Cleanup n to integer tests. 2015-10-24 11:26:50 -07:00
John-David Dalton
8119bcdc61 Add _.nthArg tests. 2015-10-24 11:24:46 -07:00
John-David Dalton
b6d40f75c9 Remove slower ipad run from sauce testing. 2015-10-24 11:11:41 -07:00
John-David Dalton
d9570e8223 Simplify lib/fp/fp.js. 2015-10-24 09:58:01 -07:00
John-David Dalton
3a0fc24a6a Allow _.flow and _.flowRight to accept an array of functions. 2015-10-24 09:08:19 -07:00
John-David Dalton
04879d0fe5 Update fp mapping for nthArg, modArgs, and modArgsSet. 2015-10-24 09:08:11 -07:00
John-David Dalton
0d9b03ced2 Move juxt, flow, and flowRight to the Utility category mapping. 2015-10-24 08:05:27 -07:00
John-David Dalton
7be7acfe30 Add _.nthArg. 2015-10-24 00:38:29 -07:00
John-David Dalton
655f7918ea Add _.conj, _.disj, and _.conforms to the lodash doc block. [ci skip] 2015-10-23 23:52:43 -07:00
John-David Dalton
67e799ccb2 Correct jsdoc param indicators for _.omit and _.pick. [ci skip] 2015-10-23 23:05:22 -07:00
John-David Dalton
4c12319d19 Reclassify _.conj and _.disj to the Utility category. 2015-10-23 23:04:12 -07:00
John-David Dalton
3769719816 Use undefined instead of nullish checks in baseConvert. 2015-10-23 22:13:21 -07:00
John-David Dalton
cc8e4956f5 Clarify docs of _.matches and _.modArgs methods. [ci skip] 2015-10-23 22:12:17 -07:00
John-David Dalton
3ad67c754f Add _.conforms. 2015-10-23 22:08:47 -07:00
John-David Dalton
cabd4198b0 Remove nativeMax and nativeMin use from _.clamp. 2015-10-23 16:25:22 -07:00
John-David Dalton
2bf80673ae Cleanup customizer doc examples. [ci skip] 2015-10-23 16:21:29 -07:00
John-David Dalton
2182e0696d Remove unmatched PATTERN3 in travis.yml. 2015-10-23 10:16:53 -07:00
John-David Dalton
9c44b5c384 Remove commented-out tests from travis.yml. 2015-10-23 10:07:08 -07:00
John-David Dalton
d5f51f2881 Rebuild dist. 2015-10-22 22:58:31 -07:00
John-David Dalton
176e17c45d Cleanup lib/fp/fp.js. 2015-10-22 22:57:33 -07:00
John-David Dalton
7912b08c41 Rename restParam to rest in aryMethodMap. 2015-10-22 22:50:56 -07:00
John-David Dalton
643ffce289 Fix aliasMap typo. 2015-10-22 22:49:56 -07:00
John-David Dalton
0d4d740961 Add fp tests. 2015-10-22 22:49:29 -07:00
John-David Dalton
68473f08d6 Add ./lib files to the jscs style check. 2015-10-22 21:17:59 -07:00
John-David Dalton
6c09a69991 Add clamp to fp mapping. 2015-10-22 21:11:07 -07:00
John-David Dalton
ac16bc0e15 Update build scripts. 2015-10-22 21:06:08 -07:00
John-David Dalton
99287a89eb Update bower.json. 2015-10-22 18:37:01 -07:00
John-David Dalton
e0aaf876c2 Combine _.toInteger and _.toSafeInteger tests. 2015-10-22 17:39:57 -07:00
John-David Dalton
022f79beed Add lodash chaining doc notes for _.clamp and _.toSafeInteger. [ci skip] 2015-10-22 17:35:41 -07:00
John-David Dalton
a6aac88561 Cleanup IEEE-754 doc references. [ci skip] 2015-10-22 17:35:41 -07:00
John-David Dalton
87057095bc Cleanup _.isSafeInteger description. [ci skip] 2015-10-22 17:35:40 -07:00
Xotic750
5afa75ce51 Add _.toSafeInteger. 2015-10-22 17:35:36 -07:00
John-David Dalton
c525598fd9 Add _.clamp test for just passing the max param. 2015-10-22 17:08:45 -07:00
John-David Dalton
f54cfb0ea2 Simplify resolving start in _.range. 2015-10-22 17:08:22 -07:00
John-David Dalton
91fcf837f7 Use strict equality undefined checks instead of nullish param checks in _.random. 2015-10-22 17:07:50 -07:00
John-David Dalton
64e98d897f Update tested browsers in test/saucelabs.js. 2015-10-22 06:24:21 -07:00
John-David Dalton
99a5fcc665 Fix typos in _.clamp test labels. 2015-10-21 22:15:17 -07:00
John-David Dalton
f0c38a6419 Use _.clamp in _.sampleSize, _.endsWith, and _.startsWith. 2015-10-21 22:11:41 -07:00
John-David Dalton
14c2747e80 Make min optional for _.clamp. 2015-10-21 22:10:05 -07:00
John-David Dalton
3ee2a15cde Cleanup test labels for -0. 2015-10-21 22:07:19 -07:00
John-David Dalton
8982578edd Ensure a _.range result can start with -0. 2015-10-21 22:05:29 -07:00
John-David Dalton
5ec6f1085a Ensure _.toInteger can return -0. 2015-10-21 22:04:14 -07:00
John-David Dalton
1513e46605 Use strict undefined comparisons where nullish aren't required. 2015-10-21 20:25:50 -07:00
Xotic750
b95ed73e1d Add _.clamp and tests. 2015-10-21 18:21:36 -07:00
Xotic750
ff22efb3e2 Add doc notes on IEEE 754-2008 and floating-point oddness. [ci skip] 2015-10-21 17:48:21 -07:00
John-David Dalton
35c6db1289 Add flush to debounced methods. 2015-10-21 17:48:01 -07:00
John-David Dalton
602e5d2766 Use 'a' for string tests instead of 'x'. 2015-10-20 22:37:27 -07:00
John-David Dalton
247c4f1068 Add identity helper to tests. 2015-10-20 22:10:33 -07:00
John-David Dalton
bdb5e4642f Add fp files. 2015-10-20 21:43:42 -07:00
John-David Dalton
661e9b08b6 Update jscs to version 2.3.5 and update istanbul to version 0.4.0. 2015-10-19 21:04:17 -07:00
John-David Dalton
fdf6478bc9 Use helper methods from the stable lodash release to test unstable bits. 2015-10-19 20:59:12 -07:00
John-David Dalton
10229cd332 Rename npm script from lint to style. 2015-10-19 20:57:12 -07:00
Kris Borchers
33e2499006 Fix JSCS name typo in CONTRIBUTING.md. 2015-10-19 20:57:12 -07:00
sfinktah
6ae58e74c7 Changed references to _.include to _.includes. 2015-10-16 13:10:44 -04:00
Mathias Bynens
689b292c24 Add _.lowerCase, _.lowerFirst, _.toLower, _.toUpper, _.upperCase, _.upperFirst tests. 2015-10-16 13:10:00 -04:00
John-David Dalton
f6a4ab62b8 Add _.toPath test for consecutive brackets and dots. 2015-10-15 06:08:30 -07:00
John-David Dalton
e197884e07 Add _.upperFirst and _.lowerFirst. 2015-10-15 04:09:01 -07:00
John-David Dalton
ba095d11cc Use an MDN url shortener. [ci skip] 2015-10-14 23:24:41 -07:00
John-David Dalton
e22cb5f3b3 Rename _.first to _.head, _.rest to _.tail, & _.restParam to _.rest. 2015-10-14 17:55:01 -07:00
greenkeeperio-bot
da993ee48d Update requirejs to version 2.1.20 and jscs to version 2.3.1. 2015-10-14 17:25:02 -07:00
John-David Dalton
9458759810 Change n params to number where appropriate. 2015-10-13 22:48:46 -07:00
Tejo Kumar Reddy Chenchu
dd27a0adc7 Fix rounding issue with the precision param of _.floor. 2015-10-13 22:42:36 -07:00
John-David Dalton
3fd276f8a6 Change version to 4.0.0-pre. 2015-10-13 09:43:11 -07:00
John-David Dalton
33f454bb75 Correct the jsdoc @name tag of the chain wrapper Symbol.iterator function. [ci skip] 2015-10-13 06:20:19 -07:00
John-David Dalton
1fd5d501b0 Ensure dummy exports and module are reset. 2015-10-13 00:38:16 -07:00
John-David Dalton
e4220282c8 Add _.conj and _.disj test for early exits. 2015-10-12 23:23:51 -07:00
Miro Mannino
6dec9cb831 Clarify exit early behavior in _.every doc and refine related test. 2015-10-12 23:23:03 -07:00
greenkeeperio-bot
1ad55ec263 Update coveralls to version 2.11.4. 2015-10-12 09:30:20 -07:00
John-David Dalton
96f5dbfccf Add bizarro _.memoize.Cache test. 2015-10-12 06:57:33 -07:00
John-David Dalton
fd2aa1f51c Add docdown dev dep. 2015-10-12 06:57:33 -07:00
John-David Dalton
74137d4eab Fix _.differenceBy doc example. [ci skip] 2015-10-12 06:57:33 -07:00
John-David Dalton
02398e319d Update lodash chaining doc notes. [ci skip] 2015-10-12 06:57:27 -07:00
John-David Dalton
32d6a04107 Use array.pop() instead of array.length-- in _.zipWith. 2015-10-11 23:31:04 -07:00
John-David Dalton
6bff374e91 Ensure _.intersectionBy doesn't treat iteratee as an empty array. 2015-10-11 23:31:04 -07:00
John-David Dalton
18b5cb24c2 Ensure baseIntersection doesn't transform array. 2015-10-11 23:31:04 -07:00
John-David Dalton
04e8ca771b Add _.differenceBy, _.intersectionBy, _.pullAllBy, _.unionBy, and _.xorBy tests. 2015-10-11 23:31:04 -07:00
John-David Dalton
174f771612 Add _.reverse test. 2015-10-11 21:34:50 -07:00
John-David Dalton
4f0a5e937b Add _.juxt tests. 2015-10-11 21:22:50 -07:00
John-David Dalton
505f02fd72 Expose _.reverse. 2015-10-11 17:05:25 -07:00
John-David Dalton
a6c7ffd664 Update istanbul to version 0.3.22 and request to version 2.65.0. 2015-10-11 17:03:55 -07:00
John-David Dalton
a08d52eb48 Ensure _.defaultsDeep doesn't modify sources. 2015-10-11 01:39:30 -07:00
John-David Dalton
414ad602f2 Add more tests for _.differenceBy, _.intersectionBy, _.unionBy, and _.xorBy. 2015-10-10 17:50:05 -07:00
greenkeeperio-bot
e961505e0a Update chalk to version 1.1.1 and ecstatic to v1.1.3. 2015-10-10 13:49:13 -07:00
John-David Dalton
59278a7a85 Reduce baseExtremum. 2015-10-09 12:59:14 -07:00
John-David Dalton
adaf6d7955 Tighten reBasicWord and reHasComplexWord. 2015-10-09 08:44:31 -07:00
greenkeeperio-bot
f6624bf270 Update request to version 2.64.0. 2015-10-09 08:03:57 -07:00
John-David Dalton
cdf03228c2 Minor test label nit of param to argument. 2015-10-08 23:41:49 -07:00
John-David Dalton
1fd710e88d Add _.word tests. 2015-10-08 23:41:43 -07:00
John-David Dalton
dc2e760b5a Add reHasComplexWord checks. 2015-10-08 23:31:52 -07:00
John-David Dalton
150bd32f97 Add _.toLower and _.toUpper. 2015-10-08 21:50:30 -07:00
John-David Dalton
d9fc0f1e37 Move dev deps in travis.yml to package.json. 2015-10-08 16:22:26 -07:00
John-David Dalton
e2c7e3a107 Avoid require in comments. [ci skip] 2015-10-08 10:45:46 -07:00
John-David Dalton
4995aa0298 Add a couple more math op chars in the latin-1 block for completeness. 2015-10-08 09:14:48 -07:00
John-David Dalton
54b774e481 Update _.lowerCase and _.upperCase doc examples. [ci skip] 2015-10-08 00:00:00 -07:00
John-David Dalton
c85095d53f Remove unused functions, vars, and params. 2015-10-07 23:54:33 -07:00
John-David Dalton
8132ed52fd Rename var rsJoiner to rsOptJoin to align with others. 2015-10-07 23:22:41 -07:00
John-David Dalton
eb723422c1 Update reWords detection. 2015-10-07 23:09:51 -07:00
John-David Dalton
051e5a6308 Clear args and thisArg in debounce cancel. 2015-10-07 13:21:52 -07:00
John-David Dalton
2d3e64b51a Correct _.pullAllBy doc example. [ci skip] 2015-10-07 00:23:02 -07:00
John-David Dalton
a21b25f751 Add _.differenceBy, _.intersectionBy, _.pickAllBy, _.unionBy, and _.xorBy tests. 2015-10-07 00:18:42 -07:00
John-David Dalton
1d425b1731 Make MapCache, SetCache, and Stack add values left to right. 2015-10-06 23:16:56 -07:00
John-David Dalton
141630f557 Add more MapCache and Stack tests. 2015-10-06 23:16:02 -07:00
John-David Dalton
9fd48bab69 Add bizarro Map tests. 2015-10-06 22:29:24 -07:00
John-David Dalton
f880e39838 Clarify bug comment of baseHas. [ci skip] 2015-10-06 20:11:31 -07:00
John-David Dalton
afb66f4b8a Remove unnecessary Map tests. 2015-10-06 19:53:01 -07:00
John-David Dalton
7e09802565 Reorganize clone tests. 2015-10-06 19:52:25 -07:00
John-David Dalton
a8b3833580 Add Stack test. 2015-10-06 19:51:25 -07:00
John-David Dalton
bf1bcaf394 Add _.cloneDeep test for objects with lots of circular references. 2015-10-06 08:16:22 -07:00
John-David Dalton
7b61569d32 Add bizarro tests for Object.create. 2015-10-06 08:15:07 -07:00
John-David Dalton
9c27ed8bda Remove nullish checks from baseHas and baseHasIn. 2015-10-06 07:07:49 -07:00
John-David Dalton
c9cb64ac10 Remove shim script tag in test/backbone.html. 2015-10-05 23:34:36 -07:00
John-David Dalton
4bd5122462 Update excused Underscore tests. 2015-10-05 23:34:16 -07:00
John-David Dalton
4dac4328e6 Minor whitespace nit in toPath doc example. 2015-10-05 21:57:04 -07:00
John-David Dalton
f7a857744f No longer coerce values to integers in add, max, min, or sum methods. 2015-10-05 21:56:32 -07:00
Droogans
6725e7dc49 Add _.upperCase and _.lowerCase. 2015-10-05 21:32:25 -07:00
John-David Dalton
7da4ea5ecb Simplify _.isFunction. 2015-10-05 11:06:49 -07:00
John-David Dalton
6d5c6b2de7 Optimize _.intersection and _.intersectionBy for empty arrays. 2015-10-05 10:53:41 -07:00
John-David Dalton
ed462747bf Minor ternary formatting. 2015-10-05 10:52:58 -07:00
John-David Dalton
53b37ca98f Use isObjectLike insteadof isObject in isArrayLikeObject. 2015-10-05 07:18:32 -07:00
John-David Dalton
423320f235 Remove unused variable push. 2015-10-05 07:18:13 -07:00
John-David Dalton
020a8c864f Adjust docs param descriptions and examples for xyzBy methods. [ci skip] 2015-10-04 23:00:50 -07:00
John-David Dalton
69e6389369 Add _.differenceBy, _.intersectionBy, _.isArrayLikeObject, _.pullAllBy, _.unionBy, and _.xorBy. 2015-10-04 23:00:30 -07:00
John-David Dalton
0eaa10f578 Adjust stackSet array length check to be consistent with others like it. 2015-10-04 21:39:43 -07:00
John-David Dalton
2740dc5efa Move assocIndexOf closer to other assoc functions. 2015-10-04 14:40:00 -07:00
John-David Dalton
592824781c Make isArrayLike use isFunction. 2015-10-04 14:09:25 -07:00
John-David Dalton
4bef0e21e7 Create getTag helper. 2015-10-04 14:04:49 -07:00
John-David Dalton
7d7ce728ff Fix npm builds. 2015-10-04 00:17:05 -07:00
John-David Dalton
27159cfa00 Move Hash definition above MapCache. 2015-10-03 22:51:56 -07:00
John-David Dalton
d236e37652 Add Stack helpers. 2015-10-03 22:41:06 -07:00
John-David Dalton
940559fc76 Optimize cacheIndexOf, cachePush, and isKeyable. 2015-10-03 16:27:21 -07:00
John-David Dalton
5746169aec Replace createHash with a Hash constructor. 2015-10-03 11:42:30 -07:00
John-David Dalton
4aa6fdeb2a Move assoc and hash functions closer together. 2015-10-01 23:20:32 -07:00
John-David Dalton
77ab121c30 Cleanup bizarro scaffolding in test/test.js. 2015-10-01 22:34:33 -07:00
John-David Dalton
9558048906 Avoid a hasOwnProperty bug in IE 10-11 where objects with a [[Prototype]] of null incorrectly report false for own index properties. 2015-10-01 22:22:05 -07:00
John-David Dalton
b3f6426d36 Add assoc and hash helpers. 2015-10-01 22:21:58 -07:00
John-David Dalton
d407d8aa08 Ensure _.isFunction returns true for generator functions. [closes #1498] 2015-10-01 09:00:00 -07:00
John-David Dalton
8842fa209d Swap createWrapper with alternatives in _.bindAll and _.wrap. 2015-10-01 08:22:12 -07:00
John-David Dalton
bc252228e1 Add bizarro Map. 2015-09-30 23:08:11 -07:00
John-David Dalton
1b3cb0f184 Combine MemCache and Stack into MapCache. 2015-09-30 23:07:03 -07:00
John-David Dalton
f607c671f8 Add a Stack cache helper to avoid linear search of stacks in modern environments. 2015-09-30 20:46:18 -07:00
John-David Dalton
8f431cff52 Cleanup _.every and _.some tests. 2015-09-29 08:16:36 -07:00
John-David Dalton
6a81a7ba8e Add _.conj and _.disj tests. 2015-09-29 08:16:23 -07:00
John-David Dalton
1f713ed9d1 Add more wrapper tests. 2015-09-27 23:01:46 -07:00
John-David Dalton
2cb4829536 Make _.words chainable by default. 2015-09-27 23:01:46 -07:00
John-David Dalton
48d5110b5d Remove wrapperToString. 2015-09-27 23:01:46 -07:00
John-David Dalton
68a5e2017e Make _.drop, _.dropRight, _.take, _.takeRight coerce n of undefined to 0. 2015-09-27 23:01:46 -07:00
John-David Dalton
63c46a9aca Minor space nit in test/test.js. [ci skip] 2015-09-27 23:01:45 -07:00
John-David Dalton
528bec0bb1 Add _.sampleSize. 2015-09-27 23:01:40 -07:00
John-David Dalton
9c79cb7766 Add _.pullAll. 2015-09-27 16:33:10 -07:00
John-David Dalton
38ac518095 Add _#toString test for nullish values. 2015-09-27 10:03:43 -07:00
John-David Dalton
7488068d50 Add support for combining diacritical marks to _.toArray. 2015-09-25 22:27:31 -07:00
John-David Dalton
8e207196d3 Expose _.toString. 2015-09-25 19:51:41 -07:00
John-David Dalton
9c35db38a0 Exit early in baseToString if value is already a string. 2015-09-25 16:28:13 -07:00
John-David Dalton
2087736649 Add support for unicode modifiers. 2015-09-25 01:26:15 -07:00
Tim Ruffles
dd75deb27f Clarify the order in which sources are applied in docs of _.assign, _.defaults, and _.merge. [ci skip] 2015-09-24 08:21:57 -07:00
John-David Dalton
5f42a3d4db Minor createInvoker param description nit. [ci skip] 2015-09-24 00:56:17 -07:00
John-David Dalton
a569b723c5 Use getIteratee in createModArgs. 2015-09-23 23:53:50 -07:00
John-David Dalton
ee2078f3ea Add _.conj, _.disj, & _.juxt. 2015-09-23 22:45:55 -07:00
John-David Dalton
12af298e33 Cleanup doc descriptions for _.modArgs and _.modArgsSet. [ci skip] 2015-09-23 22:45:35 -07:00
John-David Dalton
0429f27c54 Cleanup doc examples for lodash and _.map. [ci skip] 2015-09-23 22:44:53 -07:00
John-David Dalton
5026f51dfd Add accumulator doc note to _.unzipWith and _.zipWith. [closes #1484] [ci skip] 2015-09-23 19:34:07 -07:00
Thomas Reggi
80abaafcae Fix typo "occurence" to "occurrence". [ci skip] 2015-09-23 19:05:19 -07:00
Anderson Aguiar
bc651e886d Fix typo in comment 2015-09-22 22:06:00 -03:00
John-David Dalton
ba9cfc3b26 Clarify baseToString and other converter method docs. [ci skip] 2015-09-22 00:35:24 -07:00
John-David Dalton
b5bbc18c89 Add _#next test for _.toArray results. 2015-09-20 17:09:48 -07:00
John-David Dalton
e35088f9e3 Add dingbat support to _.words. 2015-09-20 12:58:17 -07:00
John-David Dalton
1c3b325633 Cleanup astral tests. 2015-09-20 12:57:40 -07:00
John-David Dalton
0415701e50 Add tests for variation selectors. 2015-09-20 11:59:29 -07:00
John-David Dalton
cfe813fa08 Add regional indicator tests. 2015-09-20 11:59:23 -07:00
John-David Dalton
f4ff336636 Add _.trunc tests for astrals as separators. 2015-09-20 11:58:24 -07:00
John-David Dalton
a4b333ceb8 Use _.toArray in wrapperNext. 2015-09-19 10:34:14 -07:00
John-David Dalton
f029d7c943 Add support for variation selectors. 2015-09-19 10:34:14 -07:00
John-David Dalton
53bf94ce78 Expand existing support for zero-width-joiners. 2015-09-18 15:30:12 -07:00
John-David Dalton
406e36977e Add support for regional indicator symbols and zero-width-joiners. 2015-09-18 01:28:31 -07:00
John-David Dalton
98ee746ada Move _.isArguments checks further down. 2015-09-16 19:11:52 -07:00
John-David Dalton
9e0a22f771 Cleanup and formatting pass. 2015-09-16 19:10:19 -07:00
John-David Dalton
14e62ae8d2 Make _.isString use _.isArray to reduce usage patterns. 2015-09-16 19:09:16 -07:00
John-David Dalton
1162d2edd5 Update _.toInteger test to ensure proper rounding. 2015-09-16 08:33:56 -07:00
John-David Dalton
a84e44b2a3 Use MAX_ARRAY_LENGTH instead of INFINITY for the default __takeCount__ value. 2015-09-15 23:48:36 -07:00
John-David Dalton
cd4f278a16 Add _.toInteger test for negative floats. 2015-09-15 23:45:25 -07:00
John-David Dalton
c7f34e74ac Add _.isInteger and _.isSafeInteger tests. 2015-09-15 23:42:15 -07:00
John-David Dalton
00d26a6419 Attempt again to ensure again _.toInteger converts Infinity to an integer. 2015-09-15 23:41:53 -07:00
John-David Dalton
eb57e522aa Cleanup isXyz tests. 2015-09-15 23:38:36 -07:00
John-David Dalton
e9230463e8 Fix host object tests for _.isInteger and _.isSafeInteger. 2015-09-15 22:08:51 -07:00
John-David Dalton
d652f144b2 Continue astral symbol support in _.trunc. 2015-09-15 20:40:49 -07:00
John-David Dalton
e04a512c4c Update _.isFinite doc examples. [ci skip] 2015-09-15 20:39:51 -07:00
John-David Dalton
c276278767 Use stringToArray more in _.trimLeft and _.trimRight. 2015-09-15 20:39:31 -07:00
John-David Dalton
2e248d1ca8 Ensure _.toInteger converts Infinity to an integer. 2015-09-15 20:37:53 -07:00
John-David Dalton
a5df55a6e7 Update constant references. 2015-09-15 20:36:35 -07:00
John-David Dalton
f7e05e438e Avoid creating an array in stringSize. 2015-09-15 20:34:11 -07:00
John-David Dalton
49266dce89 Add _.isInteger and _.isSafeInteger. 2015-09-15 20:33:36 -07:00
John-David Dalton
3a81738455 Collapse ranges. 2015-09-15 01:09:47 -07:00
John-David Dalton
a4ff501bb1 Add _.toArray test for empty strings. 2015-09-15 00:41:03 -07:00
John-David Dalton
351c131764 Use more stringToArray. 2015-09-15 00:34:42 -07:00
John-David Dalton
799fcb354b Pass style linting. 2015-09-15 00:23:54 -07:00
John-David Dalton
16a29659b3 Add tests for lone surrogates. 2015-09-15 00:02:45 -07:00
John-David Dalton
55ef0f12cc Rework charsLeftIndex and charsRightIndex to pass tests. 2015-09-14 23:45:18 -07:00
John-David Dalton
925c489cf9 Add more astral symbol tests. 2015-09-14 22:47:06 -07:00
John-David Dalton
3f57236c19 Cleanup charsLeftIndex, charsRightIndex, capitalize, and trim methods. 2015-09-14 21:06:28 -07:00
John-David Dalton
b4dd21fc64 First pass at astral symbols tests. 2015-09-14 18:10:11 -07:00
John-David Dalton
8278b1e79f Make _.startCase use _.capitalize. 2015-09-14 18:03:32 -07:00
John-David Dalton
c313f0c135 Minor cleanup to reWords. 2015-09-14 13:24:06 -07:00
John-David Dalton
e9bfaa7d51 Add support for astral symbols to _.camelCase, _.capitalize, _.startCase, and _.words. 2015-09-14 10:38:00 -07:00
John-David Dalton
0ae254d6b4 Add stringToArray helper. 2015-09-14 08:21:48 -07:00
John-David Dalton
bbc7b0b59b Move _.repeat empty string check to the left. 2015-09-14 01:09:54 -07:00
John-David Dalton
7f284d6ed5 Reduce _.forEach iteration note. [ci skip] 2015-09-14 01:09:04 -07:00
John-David Dalton
4744f93a47 Remove unneeded _.runInContext comment block. [ci skip] 2015-09-14 01:07:51 -07:00
John-David Dalton
a2fe87a63a Make regexp var name singular. 2015-09-14 01:07:12 -07:00
John-David Dalton
fa61e30dd5 Add support for astral symbols in string methods. [closes #1463] 2015-09-14 01:06:40 -07:00
John-David Dalton
0fb94ad3c6 Minor formatting nit. 2015-09-13 22:08:14 -07:00
John-David Dalton
33a73fb0c4 Cleanup other realm tests. 2015-09-13 22:08:08 -07:00
John-David Dalton
a61eeeaa03 Minor formatting cleanup in travis.yml. 2015-09-13 10:19:49 -07:00
John-David Dalton
80f6990a43 Remove value guards in baseDifference and baseSortedUniqBy. 2015-09-12 22:29:19 -07:00
John-David Dalton
0d5f8437f5 Indentation nit in baseTimes. 2015-09-12 22:28:46 -07:00
John-David Dalton
5e968deb4e Add more source replacements to travis.yml. 2015-09-12 20:52:40 -07:00
John-David Dalton
ac1ffa2efe Cleanup _.merge tests. 2015-09-12 09:53:30 -07:00
John-David Dalton
ed2e6d16c8 Add more _.merge tests for arguments. 2015-09-12 09:53:30 -07:00
John-David Dalton
dafe807888 Ensure _.merge doesn't modify array/typed-array/plain-object source values. 2015-09-12 09:53:25 -07:00
John-David Dalton
1320706172 Make _.merge source object assignments align with source array assignments. 2015-09-12 00:00:13 -07:00
John-David Dalton
fb4cf9e78f Cleanup _.assign and _.extend docs. [ci skip] 2015-09-11 23:47:32 -07:00
Rhys van der Waerden
8cbb8befd4 Clarify _.merge description. [ci skip]
Mention behaviour difference between merging plain objects and objects with non-Object prototypes. As discussed in #1455.
2015-09-11 23:46:27 -07:00
John-David Dalton
aa303df387 Update core builds. 2015-09-11 18:25:03 -07:00
John-David Dalton
e42d29611c Ensure wrapper actions are copied in wrapperClone. 2015-09-11 18:22:34 -07:00
John-David Dalton
a5213f1291 Add strict equal fast path for object comparisons in equalObjects. 2015-09-11 18:03:20 -07:00
John-David Dalton
875dfec570 Add tag checks back to baseIsEqualDeep. 2015-09-11 18:02:49 -07:00
John-David Dalton
6edde288ee Add requireDotNotation rule to jscsrc. 2015-09-11 18:02:19 -07:00
John-David Dalton
a6ead18121 Avoid deep crawl if object and source are strict equal. 2015-09-11 12:57:34 -07:00
John-David Dalton
7245570405 Cleanup, organize, and group jscs rules. 2015-09-11 00:26:05 -07:00
John-David Dalton
38a37f1b18 Use === in _.isEqual doc example. [ci skip] 2015-09-10 19:08:07 -07:00
John-David Dalton
5c98ab4b8f Simplify doc examples that use Math methods. [ci skip] 2015-09-10 19:07:37 -07:00
John-David Dalton
5ddb1ef76d Remove duplicate jsdoc param from equalObjects docs. [ci skip] 2015-09-10 19:06:56 -07:00
John-David Dalton
8b320f913d Remove unneeded type check from createRound. 2015-09-10 19:06:08 -07:00
John-David Dalton
8e0011d07a Ensure clone methods create maps and sets from other realms. 2015-09-10 19:05:25 -07:00
John-David Dalton
e50734a6fb Update jscs rules. 2015-09-10 19:03:53 -07:00
John-David Dalton
307dae4fac Adjust _.omit and _.pickBy doc examples to show more of a difference between them. [ci skip] 2015-09-10 07:38:56 -07:00
John-David Dalton
d8c5f85cd2 Add _.modArgsSet tests. 2015-09-09 23:45:37 -07:00
John-David Dalton
94c95469e1 Minor test cleanup. 2015-09-09 22:59:37 -07:00
John-David Dalton
e8244f7f07 Adjust property descriptors in tests. 2015-09-09 22:59:37 -07:00
John-David Dalton
a48f48ca95 Ensure _.merge skips merging when object and source are the same value. 2015-09-09 22:59:29 -07:00
John-David Dalton
4a4e54479a Ensure _.merge assigns typed arrays directly. [closes #1453] 2015-09-09 22:10:23 -07:00
John-David Dalton
86d06e0a4c Cleanup _.merge tests. 2015-09-09 22:09:10 -07:00
John-David Dalton
9b41ae847b Consolidate this binding tests. 2015-09-09 20:44:58 -07:00
Ilya Mochalov
012cc521f5 Minor _.plant doc fix. [ci skip] 2015-09-09 18:11:40 -07:00
John-David Dalton
20695548f1 Use more pre-QUnit 2.0 APIs. 2015-09-09 18:05:48 -07:00
John-David Dalton
d77c5123c1 Add _.flip and _.modArgsSet to lodash doc note. [ci skip] 2015-09-09 10:34:50 -07:00
John-David Dalton
c32a6837e6 Update _.flip doc example and test to better show effect. 2015-09-09 10:29:43 -07:00
John-David Dalton
c604be31e0 Add _.flip test. 2015-09-09 08:31:28 -07:00
John-David Dalton
0a08edb6d7 Remove second _.rearg example. [ci skip] 2015-09-09 08:31:19 -07:00
John-David Dalton
4d7aeb8b96 Don't flip if there's less than 2 arguments. 2015-09-09 08:31:03 -07:00
John-David Dalton
6b09f1f233 Remove iojs from travis-yml tests. 2015-09-08 22:51:46 -07:00
Phillip Alexander
7364c84b6b Add Node.js v4 stable to Travis config.
NodeJS v4 was just released [NodeJS v4 announcement](https://nodejs.org/en/blog/release/v4.0.0/). This updates the CI build script to accommodate the release. Note: It should be "4", not "4.0" since Node will surely get a lot of minor updates before it goes LTS and reveal.js should test on the latest of them.
2015-09-08 22:49:16 -07:00
John-David Dalton
02a28d565b Add _.flip. [closes #1449] 2015-09-08 22:48:37 -07:00
John-David Dalton
2ac6e31cc3 Update QUnit to 1.19.0. 2015-09-08 22:34:19 -07:00
John-David Dalton
8bad4ae636 Rename multiValue param to multiVal. [ci skip] 2015-09-07 23:35:06 -07:00
John-David Dalton
f0010ea3a8 Add additional guard to isCombo check in mergeData. 2015-09-07 23:32:16 -07:00
John-David Dalton
f86bff3bf7 Minor _.modArgsSet doc example tweak. [ci skip] 2015-09-07 22:29:13 -07:00
John-David Dalton
99b0094dcd Minor code style nit in tests. [ci skip] 2015-09-07 22:14:20 -07:00
John-David Dalton
db86a6ff1c Simplify _.isMatch set test. 2015-09-07 22:05:44 -07:00
John-David Dalton
cbc188916d Fix typo and fail in _.isMatch test. 2015-09-07 21:59:57 -07:00
John-David Dalton
2f411230c5 Add _.isEqualWith and _.isMatchWith tests for maps and sets. 2015-09-07 21:36:49 -07:00
John-David Dalton
b9c8c877b7 Minor contributing text nit, new methods to functions. [ci skip] 2015-09-07 20:37:07 -07:00
John-David Dalton
13e4ba622e Add code of conduct doc. [ci skip] 2015-09-07 20:33:15 -07:00
John-David Dalton
7863256de5 Add map and set guards to tests to fix travis runs. 2015-09-06 22:41:07 -07:00
John-David Dalton
d81e029ec0 Add _.isMatchWith tests. 2015-09-06 22:32:09 -07:00
John-David Dalton
f6500eafb6 Cleanup _.isMatch tests. 2015-09-06 22:31:39 -07:00
John-David Dalton
9da03f529f Ensure equalByTag passing customizer to equalFunc. 2015-09-06 21:05:05 -07:00
John-David Dalton
1e1e4fd557 Add _.matches and _.matchesProperty tests for partial matching maps and sets. 2015-09-06 20:42:15 -07:00
John-David Dalton
08f8e659fd Cleanup _.matches and _.matchesProperty tests. 2015-09-06 20:35:43 -07:00
John-David Dalton
fc69fe1f21 Use map.size and set.size in mapToArray and setToArray. 2015-09-06 18:00:28 -07:00
John-David Dalton
38a16805ed Optimize map and set comparisons in _.isEqual. 2015-09-06 17:01:17 -07:00
John-David Dalton
dfd4ae9ea4 Add _.modArgsSet. 2015-09-05 22:29:38 -07:00
John-David Dalton
5c9585b2b0 Ensure correct execution order of _.modArgs transforms. 2015-09-05 22:29:11 -07:00
John-David Dalton
dc2e769d9a Ensure _.toPath converts array values to strings. 2015-09-05 11:25:06 -07:00
John-David Dalton
15a4fb7adf Add _.toPath tests. 2015-09-05 10:00:21 -07:00
John-David Dalton
7bb10d56f8 Add _.toPath doc examples. [ci skip] 2015-09-05 10:00:08 -07:00
John-David Dalton
650282b186 Add console.logs to doc examples. [ci skip] 2015-09-05 09:59:38 -07:00
John-David Dalton
ded3cfc251 Add _.toInteger tests. 2015-09-05 09:31:37 -07:00
John-David Dalton
a4fee3a3ad Add _.isObjectLike tests. 2015-09-05 09:26:09 -07:00
John-David Dalton
58d7404ee4 Add a _.memoize test for the this binding of resolver. 2015-09-05 09:14:38 -07:00
John-David Dalton
556eee8563 Use a create function helper for modArgs. 2015-09-05 09:04:46 -07:00
John-David Dalton
1422f50ee9 Remove isStrict guards from tests. 2015-09-05 01:05:39 -07:00
Philippe Lhoste
1be4adf365 Improve documentation for method chaining. [ci skip] 2015-09-05 01:05:39 -07:00
John-David Dalton
4510ada21e Update lodash doc block. [ci skip] 2015-09-05 01:05:39 -07:00
John-David Dalton
e516d99b2d Expose _.toInteger. 2015-09-04 08:35:36 -07:00
John-David Dalton
b534b83756 Fix failing tests in strict mode. 2015-09-04 01:02:47 -07:00
John-David Dalton
41b537249b Expose _.isObjectLike and _.toPath. 2015-09-04 00:55:34 -07:00
John-David Dalton
4a87acf1ac Remove "Number" and "String" from contextProps. 2015-09-04 00:55:16 -07:00
John-David Dalton
41d3b66867 Move NEGATIVE_INFINITY and POSITIVE_INFINITY out of runInContext. 2015-09-04 00:36:34 -07:00
John-David Dalton
3ef7ae24e5 Expose _.isArrayLike. 2015-09-03 22:08:02 -07:00
John-David Dalton
824d3b75f9 Add Safari 8.1 note to _.isArguments. [ci skip] 2015-09-03 20:05:39 -07:00
John-David Dalton
38a802fed3 Fix _.isArguments in Safari 8.1. 2015-09-03 19:53:11 -07:00
John-David Dalton
ee776fd0de Add IE11 note to noMapSetTag definition. [ci skip] 2015-09-03 19:53:11 -07:00
John-David Dalton
a1f29d8f4a Cleanup get/set/unset tests. 2015-09-03 18:28:57 -07:00
John-David Dalton
3e42a817a1 Fix failing map/set tests in IE11. 2015-09-03 15:22:21 -07:00
John-David Dalton
617dd703e1 Soften language on isXyz methods that use duck typing. [ci skip] 2015-09-03 15:22:21 -07:00
John-David Dalton
e63d7ff9d5 Rename var initFromArray to initFromCollection in _.reduce and _.reduceRight. 2015-09-03 15:21:12 -07:00
Ray Hammond
7e73b27edf Updated contributing text to include code style linter details. [ci skip] 2015-09-03 12:54:47 -07:00
Michał Lipiński
6898b896d1 Add _.unset. 2015-09-03 09:28:06 -07:00
John-David Dalton
085e2c24d3 Remove weakmap and set shims. 2015-09-03 09:18:10 -07:00
John-David Dalton
cc77eb7855 Change augment to modify. [ci skip] 2015-09-03 09:06:16 -07:00
John-David Dalton
8e9f9f6f2f Detect maps and sets in IE11. 2015-09-03 09:02:33 -07:00
John-David Dalton
51006e8304 Tweak test try-catch style to be consistent with lodash. 2015-09-03 08:22:33 -07:00
Ray Hammond
fce2bd89c7 Added jscs code style checker. 2015-09-03 08:19:41 -07:00
John-David Dalton
830be3d918 Add strict mode test for _.isArguments. 2015-09-02 22:56:25 -07:00
John-David Dalton
0926e5a986 Fix test errors in IE9. 2015-09-02 16:59:42 -07:00
Ray Hammond
b61411956c Missing semicolon linting fixes to test.js. 2015-09-02 11:44:23 -07:00
John-David Dalton
5648fe940c Add MS Edge testing with saucelabs. 2015-09-02 08:45:44 -07:00
Ray Hammond
57ad32448f Added missing semicolon. 2015-09-02 08:45:34 -07:00
John-David Dalton
b4db3c050d Ensure _.isEqual performs unordered comparisons of maps and sets. 2015-09-01 21:50:28 -07:00
John-David Dalton
3f954ca790 Add _.isEqual tests for maps and sets. 2015-09-01 01:17:15 -07:00
John-David Dalton
6e0174e879 Cleanup _.isEqual tests. 2015-09-01 00:46:55 -07:00
John-David Dalton
e4873f1982 Add map and set tests for clone methods. 2015-09-01 00:37:37 -07:00
John-David Dalton
3d35817a2f Add _.toArray tests for ES6 iterables. 2015-09-01 00:23:08 -07:00
John-David Dalton
8c6aef3edb Cleanup newlines and semicolons. 2015-08-31 23:32:07 -07:00
John-David Dalton
5fd8939b7d Add Symbol.iterator guards to tests. 2015-08-31 19:40:32 -07:00
John-David Dalton
4c1b578b80 Add _#plant test for cloned chainAll settings. 2015-08-31 19:16:00 -07:00
John-David Dalton
f6bf81d16f More test cleanup. 2015-08-31 19:11:29 -07:00
John-David Dalton
2d8cc57642 Ensure _#plant resets iterator data of the cloned sequence. 2015-08-31 18:47:37 -07:00
John-David Dalton
3b131f0231 Add coverage for wrapped[Symbol.iterator]. 2015-08-31 18:04:07 -07:00
John-David Dalton
202ce472bb Cleanup tests. 2015-08-31 17:54:06 -07:00
John-David Dalton
7206edec2e Cleanup .next tests. 2015-08-31 17:52:32 -07:00
John-David Dalton
9e86efadbc Make the chain wrapper iterable. 2015-08-30 23:40:34 -07:00
Graeme Yeates
433331adac Add ES6 compliant lodash(...).next() iterator. 2015-08-30 22:47:32 -07:00
John-David Dalton
a0cd024b39 Add checks to iteratorSymbol assignment. 2015-08-30 10:09:28 -07:00
John-David Dalton
4fbb31b4dc Adjust Set references to fix the build. 2015-08-30 09:59:19 -07:00
John-David Dalton
09bcc5aaec Move more functions out of runInContext. 2015-08-30 09:37:23 -07:00
John-David Dalton
c921c9bd12 Add support for ES6 Set/Map to _.clone/_.isEqual/_.toArray and iterator support to _.toArray. 2015-08-30 08:58:12 -07:00
John-David Dalton
8f621b38bf Update builds. 2015-08-30 05:12:06 -07:00
John-David Dalton
257d957dfb Add baseSortedUniqBy. 2015-08-30 05:12:06 -07:00
John-David Dalton
a0a6f0ae87 Correct arity hints for baseSortByOrder and createAggregator. 2015-08-30 04:55:05 -07:00
John-David Dalton
c396b60612 Cleanup _.pairs and _.invert. 2015-08-30 04:45:49 -07:00
John-David Dalton
98a97b1eaf Use arrayReduce in baseWrapperValue and _.invert, arrayEach in _.bindAll, and baseTimes in _.unzip. 2015-08-30 04:27:52 -07:00
John-David Dalton
7d6fcc75da Use arrayReduce in basePick. 2015-08-30 03:56:14 -07:00
Nathan Bellowe
ecd8b7f614 Update _.modArgs doc example to better show the method's affect. [ci skip] 2015-08-30 03:56:07 -07:00
John-David Dalton
cc1bcc25b9 Enable phantomjs tests in travis.yml. 2015-08-29 14:31:08 -07:00
John-David Dalton
b792276a00 Update PATTERN2 in travis.yml. 2015-08-29 13:33:08 -07:00
John-David Dalton
b1d52ccd82 Rename _.indexBy to _.keyBy to avoid confusion with _.sortedIndexBy forms. 2015-08-29 13:33:08 -07:00
John-David Dalton
cc0e91ac2f Remove duplicated tests. 2015-08-29 10:52:23 -07:00
John-David Dalton
dfac7b4261 Make _.xyzBy methods provide just a single param to their callbacks. 2015-08-29 10:52:02 -07:00
John-David Dalton
1258eef213 Use toInteger in _.repeat. 2015-08-29 09:18:33 -07:00
John-David Dalton
f79148fa62 Rename arraySum to baseSum. 2015-08-29 09:16:48 -07:00
John-David Dalton
4d2aa29926 Simplify baseValues, createCompounder, initKeys, _.after, _.pairs, _.range, & _.times. 2015-08-29 09:15:47 -07:00
John-David Dalton
f016840c53 Correct baseSortedUniqBy. 2015-08-29 09:10:29 -07:00
John-David Dalton
cffeec4713 Cleanup baseSortedUniq and add more uniq related tests. 2015-08-28 08:53:05 -07:00
John-David Dalton
fcbe4620cd Simplify baseFunctions. 2015-08-28 08:15:50 -07:00
John-David Dalton
5a5e0363c2 Remove Chakra check as they've resolve their 'vm' issue. 2015-08-27 10:39:23 -07:00
John-David Dalton
64512ee2ae Fix skipTest count for _.isNil other realm test. 2015-08-27 10:23:57 -07:00
John-David Dalton
ce4f2f1326 Ensure _.merge merges plain-objects onto non plain-objects. [closes #1413] 2015-08-27 09:21:37 -07:00
John-David Dalton
dfebb83c35 Update excused Underscore tests. 2015-08-26 22:43:02 -07:00
John-David Dalton
0ba226e3c2 Fix test fails and _.uniqBy use baseUniqBy. 2015-08-26 22:21:18 -07:00
John-David Dalton
e0f59eccf0 Formatting nit in baseWhile. 2015-08-26 21:43:52 -07:00
John-David Dalton
820e720b0a Cleanup various method descriptions. [ci skip] 2015-08-26 21:43:37 -07:00
John-David Dalton
936c5f5d3d Add baseUniqBy. 2015-08-26 21:43:12 -07:00
John-David Dalton
d0b3b8de44 Minor test cleanup. 2015-08-26 08:30:22 -07:00
John-David Dalton
89d53306f3 Use toInteger in pad methods and make nullish chars checks in pad and trim methods undefined checks. 2015-08-26 08:30:06 -07:00
John-David Dalton
e30a20120c Split out _.sortedIndexOf, _.sortedLastIndexOf, _.sortedUniq, and _.sortedUniqBy. 2015-08-26 08:27:16 -07:00
John-David Dalton
790d6331f8 Remove fromIndex type check from _.includes. 2015-08-25 23:12:12 -07:00
John-David Dalton
9121ab95ea Bump package for easier testing. 2015-08-24 18:09:42 -07:00
John-David Dalton
b09e5cf5a7 Minor shortcut fusion test cleanup. 2015-08-24 08:22:51 -07:00
John-David Dalton
b53a8e873d Rename the baseIteratee param func to value. 2015-08-23 23:36:55 -07:00
John-David Dalton
4c38963c6f Add iteratee arity hints back. 2015-08-23 23:36:05 -07:00
John-David Dalton
b0d6c34565 Add isIterateeCall checks back to _.every and _.some. 2015-08-23 18:41:11 -07:00
John-David Dalton
0a9c9411f0 Update core builds. 2015-08-22 20:37:02 -07:00
John-David Dalton
e253f58aac Fix _.keysIn test fails in IE9. 2015-08-22 20:35:33 -07:00
John-David Dalton
0aa8ad202a Implement copyObject by way of copyObjectWith. 2015-08-22 18:41:48 -07:00
John-David Dalton
7bc5a501c4 Remove explicit Object coercion in _.keysIn. 2015-08-21 18:35:31 -07:00
John-David Dalton
4691a38d21 Add baseKeys. 2015-08-21 13:56:59 -07:00
MaxPRafferty
00bae752d0 Add item to _.fill example. [ci skip]
While not the minimum example required to show the fill functionality, having the fill write more than one value better fits the purpose of the function in practice.
2015-08-21 12:15:29 -07:00
John-David Dalton
e253fe0547 Use nullish to describe _.isNil. [ci skip] 2015-08-21 08:28:49 -07:00
John-David Dalton
e35d73be8f Add isNative chaining test. 2015-08-20 08:16:41 -07:00
John-David Dalton
f9f7af2430 Cleanup _.isNil doc examples and tests. 2015-08-20 08:11:17 -07:00
John-David Dalton
7aef780b14 Add hasIn to lodash chaining doc note. [ci skip] 2015-08-20 08:02:44 -07:00
xixilive
5644a20eec Add _.isNil function. 2015-08-20 00:16:17 -07:00
John-David Dalton
b135431542 Remove unused escapeRegExpChar function. 2015-08-19 22:07:50 -07:00
John-David Dalton
efdb254b12 Fix _.isMatchWith test fail. 2015-08-19 21:56:08 -07:00
John-David Dalton
8fd2f0ae11 Add _.hasIn tests. 2015-08-19 17:26:53 -07:00
John-David Dalton
3f7ee9bd2e Remove unneeded Object use. 2015-08-19 16:42:24 -07:00
John-David Dalton
a049c1189e Consistent use of of instead of on in path related docs. [ci skip] 2015-08-19 16:42:14 -07:00
John-David Dalton
9859b1555f Add _.hasIn and more path helper functions. 2015-08-18 23:29:27 -07:00
John-David Dalton
356e47a6a3 Remove double declared length var in sample. 2015-08-18 14:03:04 -07:00
John-David Dalton
2c1c8fc8df Remove unneeded _.escapeRegExp test. 2015-08-18 13:46:55 -07:00
John-David Dalton
e7bdd4a624 Ensure paths with newlines are walkable. 2015-08-17 23:56:27 -07:00
John-David Dalton
1a9069e80a Remove rogue console.log debug. 2015-08-17 00:24:05 -07:00
John-David Dalton
484861e3ee Change objectValue and sourceValue params to objValue and srcValue. 2015-08-16 23:29:58 -07:00
John-David Dalton
99ba0a4927 Ensure isMatchWith invokes customizer callbacks with object and source params. 2015-08-16 23:28:06 -07:00
John-David Dalton
ba3ede584e Add stack params to several customizer callback calls. 2015-08-14 07:36:09 -07:00
John-David Dalton
dd472f489b Avoid stack overflow with _.defaultsDeep. 2015-08-13 08:56:43 -07:00
John-David Dalton
9f0dd40b3b Remove component.json reference from bower.json. 2015-08-12 08:14:40 -07:00
John-David Dalton
edc03287aa Ensure _.defaultsDeep works on circular references. 2015-08-10 23:08:34 -07:00
John-David Dalton
d6dc7627b9 Start making Underscore tests work with the core build. 2015-08-09 21:49:30 -07:00
John-David Dalton
59773ca284 Update Backbone tests for core build runs. 2015-08-09 21:38:16 -07:00
John-David Dalton
6aa01ffe05 Remove old android platforms from sauce tests. 2015-08-09 21:36:02 -07:00
John-David Dalton
5b3de94fee Add core build to test dropdowns. 2015-08-09 21:34:24 -07:00
John-David Dalton
b4edf122f6 Update _.reduce and _.transform object iteration doc example. [ci skip] 2015-08-09 00:09:17 -07:00
John-David Dalton
1647c4deab Update test/saucelabs.js for lodash v4. 2015-08-08 17:46:32 -07:00
John-David Dalton
3efb91e86d Enable most sauce labs runs. 2015-08-08 17:35:28 -07:00
John-David Dalton
d6f73054a5 Update tested sauce browsers. 2015-08-08 17:35:15 -07:00
John-David Dalton
bd9b38665d Update Underscore/Backbone tests and make them passable. 2015-08-08 16:52:47 -07:00
John-David Dalton
de5c2b906e Add core builds. 2015-08-04 22:54:50 -07:00
John-David Dalton
4a4badcdc1 Reduce _.mixin with arrayEach. 2015-08-04 22:29:58 -07:00
John-David Dalton
fa7ebb36dc Add _.isNaN test for a Number object. 2015-08-04 22:29:58 -07:00
John-David Dalton
447440776b Remove component.json. 2015-08-01 11:12:22 -07:00
John-David Dalton
f5714f2eb0 Reduce _.isEmpty. 2015-08-01 11:03:49 -07:00
John-David Dalton
a3b76f9259 Minor plural nit in _.sortBy docs. [ci skip] 2015-07-31 16:49:04 -07:00
John-David Dalton
ba71421a23 Test label nits. 2015-07-31 14:03:32 -07:00
John-David Dalton
61251b305d Simplify _.escapeRegExp to align with the defunct ES7 proposal. 2015-07-31 14:03:32 -07:00
John-David Dalton
73464d6bb6 Ensure many n like params are coerced to integers. [closes #1377] 2015-07-31 10:41:45 -07:00
John-David Dalton
7f7ebed4ea Drop the __chain__ check from lodash. 2015-07-30 17:46:28 -07:00
John-David Dalton
5c53809269 Use isObject comboed with isArrayLike. 2015-07-30 09:09:11 -07:00
John-David Dalton
3935d5f2f7 Ensure _.merge doesn't convert strings to arrays. [closes #1375] 2015-07-30 09:09:11 -07:00
John-David Dalton
693704a832 Remove argument juggling from _.before. 2015-07-29 23:22:34 -07:00
John-David Dalton
b17f6eee6a Remove unneeded isIterateeCall checks. 2015-07-29 12:20:25 -07:00
John-David Dalton
ccb90f46e6 Remove overloaded options param support for _.trunc. 2015-07-29 12:19:49 -07:00
John-David Dalton
dfa4cd921e Add test for _.escapeRegExp escaping string containing only chars that require leading escaping. 2015-07-29 08:22:10 -07:00
John-David Dalton
32e0afd19c Have _.chunk exit early for empty arrays too. 2015-07-28 22:41:58 -07:00
John-David Dalton
5fb732c0e6 Change default size of _.chunk to 0. 2015-07-28 13:49:55 -07:00
John-David Dalton
48a6c4f2bf Add _.setWith tests. 2015-07-26 10:32:32 -07:00
John-David Dalton
f1597386ef Ensure _.set and _.setWith don't assign a value if it's the same as the destination value. 2015-07-26 09:58:33 -07:00
John-David Dalton
731d5b6872 Add assignValue and assignMergeValue helpers to make value assignments more consistent across methods. 2015-07-26 09:42:21 -07:00
James M Snell
ce569e4bc4 Add npm test. 2015-07-25 20:26:34 -07:00
John-David Dalton
f48b8d6d91 Cleanup _.some docs. [ci skip] 2015-07-24 17:39:56 -07:00
John-David Dalton
4fc94a4383 Use extendWith instead of defaults in _.template to reduce deps. 2015-07-24 17:12:36 -07:00
John-David Dalton
c5057905b6 Cleanup doc examples of _.isEqualWith, _.isMatchWith, & _.setWith. [ci skip] 2015-07-24 17:10:25 -07:00
John-David Dalton
3c388c76c6 Add to docs of _.assignWith and _.setWith. [ci skip] 2015-07-24 08:36:42 -07:00
John-David Dalton
a730fe13c7 Make baseGet align with baseSet. 2015-07-24 08:36:00 -07:00
John-David Dalton
4520e0710d Add _.setWith. 2015-07-23 09:18:09 -07:00
John-David Dalton
7e42892e6a Update vendor. 2015-07-23 09:18:09 -07:00
John-David Dalton
a0c580298e Cleanup comments. [ci skip] 2015-07-23 09:05:50 -07:00
John-David Dalton
e7ad50d243 Remove unneeded var bit from _.omit. 2015-07-20 20:08:53 -07:00
John-David Dalton
1394d42f58 Simplify createXYZ function descriptions. [ci skip] 2015-07-20 17:22:57 -07:00
Graeme Yeates
a8e95e25ad Add string to valid _.includes parameters. [ci skip] 2015-07-20 17:03:57 -07:00
John-David Dalton
87cb4db263 Simplify isHostObject. 2015-07-20 11:34:58 -07:00
John-David Dalton
2ccda44c44 Add isObjectLike and isHostObject checks to _.isPlainObject. 2015-07-20 11:34:58 -07:00
John-David Dalton
0253c7bcf1 Add license field to bower.json. [closes #1355] [ci skip] 2015-07-20 11:34:58 -07:00
John-David Dalton
9c7b39b7a7 Remove _.clone test for strings. 2015-07-20 11:34:58 -07:00
John-David Dalton
5f4611fce2 Minor nit to move objCtorString above objToString. 2015-07-20 11:34:58 -07:00
John-David Dalton
c4fa2e70bf Remove old JScript tests. 2015-07-20 11:34:58 -07:00
John-David Dalton
15b1a22501 Remove non-enumerable prototype property tests. 2015-07-20 11:34:58 -07:00
John-David Dalton
51425788d8 Cleanup _.isEqual test for non-index properties on arrays. 2015-07-20 11:34:58 -07:00
John-David Dalton
a17d5eea47 Remove splice objects tests. 2015-07-20 11:34:58 -07:00
John-David Dalton
ef909e8a54 Remove _.support tests. 2015-07-20 11:34:57 -07:00
John-David Dalton
0a24e9854b Add bizarro test for Object#propertyIsEnumerable. 2015-07-20 11:34:57 -07:00
John-David Dalton
4eb2eea809 Remove unneeded sort calls from keys tests. 2015-07-20 11:34:57 -07:00
John-David Dalton
8a6705617f Consistent Foo style in tests. 2015-07-20 11:34:57 -07:00
John-David Dalton
bbe122aba5 Improve test coverage. 2015-07-20 11:34:57 -07:00
John-David Dalton
40409df885 Ensure basePullAt works with deep paths. 2015-07-20 11:34:57 -07:00
John-David Dalton
7fdbdae6b9 Use arraySum in _.sum. 2015-07-20 11:34:57 -07:00
John-David Dalton
b87a18bd80 Remove toFunction from _.unzipWith. 2015-07-20 11:34:57 -07:00
John-David Dalton
6d650a48db Remove some older browser notes in test labels. [ci skip] 2015-07-20 11:34:56 -07:00
John-David Dalton
54ea0eac8e Remove string tests for "Collection" methods. 2015-07-20 11:34:56 -07:00
John-David Dalton
4054898170 Cleanup lazy method wrapper. 2015-07-20 11:34:56 -07:00
John-David Dalton
8a205e1e32 Add lazy chaining tests for _.find and _.findLast. 2015-07-20 11:34:56 -07:00
Graeme Yeates
39068730e2 Enable shortcut fusion for _.find and _.findLast. 2015-07-20 11:34:56 -07:00
John-David Dalton
1e344455b8 Make eq its own method. 2015-07-20 11:34:56 -07:00
John-David Dalton
9a01f3a337 Move the false example for _.isEqual below the true one. [ci skip] 2015-07-20 11:34:56 -07:00
John-David Dalton
f6ea758b85 Make array length checks more uniform. 2015-07-20 11:34:56 -07:00
John-David Dalton
51fb82902b Make max and min use arrayExtremum instead of their xyzBy counterparts. 2015-07-20 11:34:55 -07:00
John-David Dalton
3c342adb67 Move Reflect assignment. 2015-07-20 11:34:55 -07:00
John-David Dalton
24d592f94f Remove rogue semicolon. 2015-07-20 11:34:55 -07:00
John-David Dalton
181ebf024c Remove compat and modern modifiers from build commands in travis.yml. 2015-07-20 11:34:55 -07:00
John-David Dalton
ecf693ac75 Change file references from lodash.src.js to lodash.js. 2015-07-20 11:34:55 -07:00
John-David Dalton
8266266639 Update vendor/benchmark.js. 2015-07-20 11:34:55 -07:00
John-David Dalton
0f2419357c Move lodash.src.js to lodash.js. 2015-07-20 11:34:30 -07:00
John-David Dalton
2e57123aa2 Remove lodash.js 2015-07-20 11:32:11 -07:00
John-David Dalton
881733e099 Temporarily disable a few more runs in travis.yml. 2015-07-20 11:26:01 -07:00
John-David Dalton
18f778ce11 Remove var use for the baseKeysIn fork assignment. 2015-07-20 11:26:01 -07:00
John-David Dalton
b8060a5bcc Add more methods to the lodash doc note. [ci skip] 2015-07-20 11:26:01 -07:00
Michael Kearns
7a34b2982f Reword _.merge docs for clarity. [ci skip] 2015-07-20 11:26:01 -07:00
John-David Dalton
f695af587a Remove createExtremum. 2015-07-20 11:26:00 -07:00
John-David Dalton
7759615775 Ensure "Collection" methods treat functions as objects. 2015-07-20 11:26:00 -07:00
John-David Dalton
bbad03547d Make _.at an "Object" method. 2015-07-20 11:26:00 -07:00
John-David Dalton
b638f86b75 Use a heavier function check in isArrayLike. 2015-07-20 11:26:00 -07:00
John-David Dalton
ab6210dc30 Avoid es-sham getPrototypeOf when constructor is not a function. 2015-07-20 11:26:00 -07:00
John-David Dalton
9ca16e3933 Rename baseCompareAscending to compareAscending. 2015-07-20 11:26:00 -07:00
John-David Dalton
76ab41a742 Add _.matches and _.matchesProperty tests for primitive object and a source with undefined values. 2015-07-20 11:26:00 -07:00
John-David Dalton
c6f6eb294b Use numberProto more in test/test.js. 2015-07-20 11:26:00 -07:00
John-David Dalton
19836a55a3 Remove an isArray check from baseMatchesProperty. 2015-07-20 11:25:59 -07:00
John-David Dalton
862c7fde6d Docs cleanup pass. [ci skip] 2015-07-20 11:25:59 -07:00
John-David Dalton
5d842273d9 Remove accidental trailing comma. 2015-07-20 11:25:59 -07:00
John-David Dalton
33a9ebaba1 Fix _.matches and _.matchesProperty doc notes on inherited properties. [ci skip] [closes #1344] 2015-07-20 11:25:59 -07:00
John-David Dalton
192e35882a Remove toIterable and toObject. 2015-07-20 11:25:59 -07:00
John-David Dalton
e6b9aaf499 Temporarily reduce scope of automated testing until things are more stable. 2015-07-20 11:25:59 -07:00
John-David Dalton
b821660e79 Remove irrelevant comments. [ci skip] 2015-07-20 11:25:59 -07:00
John-David Dalton
0beaf47a64 Extract common components of _.keys and _.keysIn and make _.keysIn use the Reflect.enumerate shim as a compat path for older enviros. 2015-07-20 11:25:59 -07:00
John-David Dalton
8a9e9e9a11 Remove support for pre-es5 environments. 2015-07-20 11:25:59 -07:00
Oliver Hoffmann
df17244353 Update root assignment to work in Firefox extensions. [closes #1340] 2015-07-20 11:25:58 -07:00
Graeme Yeates
ffd3e17364 Add _.isFunction test for NodeList instances. 2015-07-20 11:25:58 -07:00
John-David Dalton
211a6cc4f1 Doc cleanup to turn "accepts an iteratee" to "accepts iteratee". [ci skip] 2015-07-20 11:25:58 -07:00
John-David Dalton
4c09879aab Add _.assignWith, _.cloneDeepWith, _.cloneWith, _.extendWith, _.isEqualWith, _.isMatchWith, and _.mergeWith. 2015-07-20 11:25:58 -07:00
John-David Dalton
fd526e8754 Split _.omit and _.pick into _.omitBy and _.pickBy. 2015-07-20 11:25:58 -07:00
John-David Dalton
974306d4f0 Generalize the unwrapped value path in lazy method wrappers a bit. 2015-07-20 11:25:58 -07:00
John-David Dalton
56452d9fd8 Document start and end swap for _.inRange. [ci skip] [closes #1332] 2015-07-20 11:25:58 -07:00
John-David Dalton
6d231fecd1 Update html indent style in .editorconfig. 2015-07-20 11:25:58 -07:00
John-David Dalton
2e91cf727a Simplify checkGlobal. 2015-07-20 11:25:58 -07:00
John-David Dalton
64b9402e12 Strict equal nit in _.uniq. 2015-07-20 11:25:57 -07:00
John-David Dalton
4bae0c0139 Minor formatting nit for _.without. 2015-07-20 11:25:57 -07:00
John-David Dalton
06bc4aa50b Make isArayLike return false for functions. 2015-07-20 11:25:57 -07:00
John-David Dalton
31a7ac1e81 Ensure _.assign, _.extend, _.defaults, and _.merge coerce values to objects. 2015-07-20 11:25:57 -07:00
John-David Dalton
c75ac3ac64 Simplify nullish and falsey checks. 2015-07-20 11:25:57 -07:00
John-David Dalton
3e14d8f4dd Minor doc formatting nits for pickByArray and pickByPredicate. [ci skip] 2015-07-20 11:25:57 -07:00
John-David Dalton
6cde31f843 Remove doc references to this bindings and other dropped features. [ci skip] 2015-07-20 11:25:57 -07:00
John-David Dalton
a7b70008ba Drop boolean options param support in _.mixin. 2015-07-20 11:25:57 -07:00
John-David Dalton
8cc19d908e Drop boolean options param support in _.debounce and _.throttle. 2015-07-20 11:25:57 -07:00
John-David Dalton
d58cda122d Remove _.bindAll support for binding all methods when no method names are provided. 2015-07-20 11:25:56 -07:00
John-David Dalton
ab26945eca Add _.extend and make it and _.defaults, _.defaultsDeep, and _.merge iterate over inherited properties. 2015-07-20 11:25:56 -07:00
John-David Dalton
2da1b2af1a Drop boolean orders param support in _.sortByOrder. 2015-07-20 11:25:56 -07:00
John-David Dalton
2586129dcd Replace arrayCopy and baseCopy with copyArray, copyObject, and copyObjectWith. 2015-07-20 11:25:56 -07:00
John-David Dalton
13e5d77041 Remove iOS 4.3 in sauce because they're eoling it. 2015-07-20 11:25:56 -07:00
John-David Dalton
d036ff6c4f Drop IE 6/7 testing. 2015-07-20 11:25:56 -07:00
jdalton
1f1bc393d3 Cleanup docs for deep methods and those that accept customizer functions. [ci skip] 2015-07-20 11:25:56 -07:00
jdalton
9aa34e2487 Remove isDeep params from _.clone and _.flatten. 2015-07-20 11:25:56 -07:00
jdalton
0b7bffe3b5 Use more descriptive var names when mapping falsey values. 2015-07-20 11:25:56 -07:00
jdalton
41f248f54d Split out _.sortedIndex and _.sortedLastIndex into _.sortedIndexBy and _.sortedLastIndexBy. 2015-07-20 11:25:55 -07:00
jdalton
bc7cabde4e Cleanup forEach and friends doc examples. [ci skip] 2015-07-20 11:25:55 -07:00
jdalton
65d5bba7df Make _.maxBy, _.minBy, _.sumBy, & _.uniqBy support only arrays and provide only 1 argument to iteratees. 2015-07-20 11:25:55 -07:00
jdalton
340a6d195f Add _.sumBy. 2015-07-20 11:25:55 -07:00
jdalton
83ac168664 Simplify getIteratee assignments in methods. 2015-07-20 11:25:55 -07:00
jdalton
8ac1a67b7d Split _.uniq out into _.uniqBy. 2015-07-20 11:25:55 -07:00
jdalton
abd67d0786 Remove alias jsdoc tags for those no longer supported. [ci skip] 2015-07-20 11:25:55 -07:00
jdalton
9a9e4cddd7 Rename baseExtremumBy and createExtremumBy helpers. 2015-07-20 11:25:55 -07:00
jdalton
10c44b08c9 Reduce the number of function creator helpers to improve readabilty. 2015-07-20 11:25:54 -07:00
jdalton
86b19f742c Split _.max and _.min out into _.maxBy and _.minBy. 2015-07-20 11:25:54 -07:00
jdalton
cb94b03e3e Document more default params. [ci skip] 2015-07-20 11:25:54 -07:00
jdalton
a898c3d7bc Absorb _.sortByAll into _.sortBy. 2015-07-20 11:25:54 -07:00
jdalton
86be6d7897 Move resolve doc helpers higher in their example blocks. [ci skip] 2015-07-20 11:25:54 -07:00
jdalton
d3d4de12be Rename pickByCallback to pickByPredicate. 2015-07-20 11:25:54 -07:00
jdalton
04bac321d1 Cleanup doc examples. [ci skip] 2015-07-20 11:25:54 -07:00
jdalton
1011353729 Adjust guard doc notes. [ci skip] 2015-07-20 11:25:54 -07:00
jdalton
5651993d93 Use var toIteratee instead of callback. 2015-07-20 11:25:54 -07:00
jdalton
c51466935c Rename bindCallback to toFunction. 2015-07-20 11:25:54 -07:00
John-David Dalton
454aca7003 Remove thisArg params from most methods. 2015-07-20 11:25:53 -07:00
jdalton
5ff9f01aba Remove _.findWhere, _.pluck, & _.where. 2015-07-20 11:25:53 -07:00
jdalton
b5dd2e605d Make _.forEach and friends implicitly end a chain sequence. 2015-07-20 11:25:53 -07:00
jdalton
1bfe25f1a5 Remove aliases and rename _.callback to _.iteratee. 2015-07-20 11:25:53 -07:00
jdalton
bd98779b3c Fix test fails related to root._. 2015-07-20 11:25:53 -07:00
jdalton
7862ae6d36 Adjust UMD to export to window or self when available regardless of other exports. 2015-07-20 11:25:53 -07:00
John-David Dalton
dfbd78f71d Bump to v3.10.1. 2015-07-20 11:25:53 -07:00
John-David Dalton
e132e878d6 Rebuild lodash and docs. 2015-07-20 11:25:39 -07:00
John-David Dalton
bb78c0ea6d Provide correct argsCount hint to customizer functions of clone methods. 2015-07-20 11:23:13 -07:00
Thomas Wienecke
1a772023d5 Documentation (includes): value -> target. [ci skip] 2015-07-20 11:23:13 -07:00
John-David Dalton
230f90173c Use strict equality checks for baseIndexOf comparisons. 2015-07-20 11:23:12 -07:00
jdalton
fbc7c28188 Cleanup Safari 8 bug note in isFunction. [ci skip] 2015-07-20 11:23:12 -07:00
jdalton
5d88cb7099 Code formatting nit for coercing to strings. 2015-07-20 11:23:12 -07:00
jdalton
caae7a5879 Ensure getFuncName returns a string. 2015-07-20 11:23:12 -07:00
jdalton
816f37bdc5 Move getData function guard to `isLaziable. 2015-07-20 11:23:12 -07:00
Graeme Yeates
a2dd7171a5 Let mozilla manage their i18n. [ci skip] 2015-07-20 11:23:12 -07:00
John-David Dalton
a80d0bc2ca Ensure _#reverse doesn't augment the original array if it was sliced before. [closes #1323] 2015-07-20 11:23:12 -07:00
jdalton
2e50d11be5 Ensure func is a function before querying the weakmap. [closes #1319] 2015-07-20 11:23:12 -07:00
jdalton
a5e2caf40b Add small array lazy chain tests for _.first and _.last. 2015-07-20 11:23:11 -07:00
jdalton
82f693a2bc Replace it is in docs with the contraction it's. [ci skip] 2015-07-20 11:23:11 -07:00
jdalton
349baa3550 Bump to v3.10.0. 2015-07-20 11:23:11 -07:00
jdalton
712761ab0a Rebuild lodash and docs. 2015-07-20 11:23:02 -07:00
jdalton
e620d19422 Disable JIT for ringo runs in travis.yml. 2015-06-29 23:19:08 -07:00
jdalton
8ba161463b Clarify implicit chaining in the lodash docs. [ci skip] 2015-06-29 22:45:20 -07:00
jdalton
d93aa183f3 Ensure _.flow and _.flowRight works with _.first. [closes #1308] 2015-06-29 21:38:12 -07:00
jdalton
29ceed91f0 Add more shortcut fusion tests for _.flow and _.flowRight. 2015-06-29 21:38:12 -07:00
jdalton
7f7c7f360e Update instanbul in travis.yml. 2015-06-28 17:19:46 -07:00
jdalton
c77ffa0f6a Simplify baseToString. 2015-06-28 15:03:35 -07:00
jdalton
5acf5f6ee3 Simplify _.isNative deps. 2015-06-28 15:03:19 -07:00
jdalton
10c2232c39 Make _.escapeRegExp escape characters that could cause problems for escape sequences and other edge cases. 2015-06-28 02:00:09 -07:00
jdalton
116dbfd123 Remove unneeded maxWait guard from maxDelayed. 2015-06-26 08:27:23 -07:00
jdalton
ec7dce7d5b Rename _.debounce helper executeBoundFunction to complete. 2015-06-26 08:27:23 -07:00
jdalton
a8c8bd8113 Adjust timeouts on async tests. 2015-06-26 07:00:17 -07:00
jdalton
f57dadc362 Adjust recursive test for older VMs. 2015-06-26 06:59:16 -07:00
jdalton
6b7c1ad6cf Ensure _.indexOf and _.lastIndexOf return -1 when performing a binary search for undefined and it's not found. [closes #1303] 2015-06-25 14:35:02 -07:00
jdalton
67359c22d5 Remove duplicate _.debounce and _.throttle test. 2015-06-25 11:16:52 -07:00
jdalton
1881f5cb39 Ensure _.noConflict operates on root and not context. 2015-06-25 11:15:39 -07:00
jdalton
9f3d284c68 Remove isExposed check from test.js. 2015-06-25 08:05:25 -07:00
jdalton
6921fb66d5 Add _.noConflict test. 2015-06-25 08:05:24 -07:00
Graeme Yeates
91849e4cd1 Test coverage for re-entrant debounced functions 2015-06-23 17:37:45 -07:00
Graeme Yeates
1fcaa481be Reduce debounce redundancy for executing bound function 2015-06-23 17:37:45 -07:00
jdalton
04701cd69e Add defaultsDeep references to lodash and _.reduce doc notes. [ci skip] 2015-06-23 17:37:45 -07:00
Mathias Bynens
f59551b89e Link to the final ES6 spec. [ci skip] 2015-06-23 17:37:45 -07:00
Graeme Yeates
bc34d80949 Clarify shortcut fusion docs. [ci skip] 2015-06-23 17:37:45 -07:00
jdalton
7480e481fc Add _.defaultsDeep tests. 2015-06-22 12:55:29 -07:00
jdalton
71ed48bb76 Ensure leading and trailing debounce options are coerced to booleans. 2015-06-22 12:55:29 -07:00
jdalton
134bf61205 Add _.defaultsDeep. 2015-06-22 12:55:29 -07:00
jdalton
85ddabd763 Cleanup docs for baseMerge, baseMergeDeep, createAggregator, & createAssigner. [ci skip] 2015-06-22 12:55:29 -07:00
Graeme Yeates
889c184ba3 Ensure _.debounce and _.throttle reset lastCall after cancelling. 2015-06-22 12:55:28 -07:00
jdalton
660bc2eb21 Use escapeStringChar in _.escapeRegExp. 2015-06-22 12:55:28 -07:00
jdalton
192667d65f Ensure _.escapeRegExp escapes line terminators. 2015-06-22 12:55:28 -07:00
jdalton
4896c725b6 Ensure _.escapeRegExp handles empty strings in a way to work with compilation. 2015-06-22 12:55:28 -07:00
jdalton
4bcb99a6b9 Simplify _.sum. 2015-06-18 08:41:53 -07:00
jdalton
535eec5366 Add _.sum benchmark. 2015-06-18 08:41:53 -07:00
jdalton
56cd679bcd Improve perf of max and min common case with arrays. 2015-06-18 08:41:53 -07:00
jdalton
e95ae66af0 Update instanbul in travis.yml. 2015-06-14 22:48:50 -07:00
jdalton
dbb342da81 Minor comment tweak in baseClone. [ci skip] 2015-06-14 18:03:54 -07:00
jdalton
958381d3dd Tweak _.modArgs docs. [ci skip] 2015-06-14 18:03:54 -07:00
jdalton
0a165675ce Allow coveralls service to fail. 2015-06-14 07:41:29 -07:00
jdalton
ce13b6abfd Make test labels more consistent. 2015-06-13 18:29:05 -07:00
jdalton
804e00cc26 Ensure bound Date can be instantiated with all 7 params. 2015-06-12 22:12:15 -07:00
jdalton
f79de23be5 Remove unneeded pattern sub in travis.yml. 2015-06-12 18:03:26 -07:00
jdalton
3404dc0b75 Update tested browsers for saucelabs. 2015-06-12 00:24:35 -07:00
jdalton
51c9f4f988 Cleanup _.omit, _.modArgs, & _.pick tests. 2015-06-12 00:23:50 -07:00
jdalton
028ecf5561 Allow _.modArgs to accept an array of transforms. 2015-06-11 08:30:18 -07:00
jdalton
419fb08266 Simplify createCache. 2015-06-11 07:31:36 -07:00
jdalton
1a28ef3244 Ensure _.includes matches an empty string on empty strings. [closes #1275] 2015-06-10 21:10:00 -07:00
Kevin Kirsche
6b8ffb2a85 Remove moot version property from bower.json
Per bower/bower.json-spec@a325da3
2015-06-10 18:32:48 -04:00
jdalton
9121b14009 Cleanup _.mixin test. 2015-06-10 08:17:39 -07:00
jdalton
9b54891474 Add ceil, floor, and round to lodash doc block. [ci skip] 2015-06-10 07:57:39 -07:00
jdalton
058196e42a Rename vendor/benchmark.js license. [ci skip] 2015-06-10 07:22:44 -07:00
jdalton
22743e06d5 Add round test for NaN precision params. 2015-06-08 08:33:03 -07:00
jdalton
c8b818f011 Cleanup _.ceil, _.floor, & _.round. 2015-06-07 21:41:50 -07:00
James Kyle
df838c98e9 Add _.ceil/_.floor/_.round. 2015-06-07 21:27:29 -07:00
jdalton
595eab2614 Rename license file to align with GitHub defaults. [ci skip] 2015-06-07 16:48:48 -07:00
jdalton
288b6ea692 Remove unnecessary lodash binding. 2015-06-07 15:24:53 -07:00
jdalton
7db606857d Adjust tabs to two spaces for html files. 2015-06-07 14:33:28 -07:00
jdalton
746034a4fc Simplified bufferClone. 2015-06-07 13:51:06 -07:00
jdalton
f8ec95d872 Switch null use for clearing vars to undefined. 2015-06-07 13:40:07 -07:00
jdalton
ba082b74a7 Adjust lazy heuristic to punt if not using shortcut fusion. 2015-06-06 15:30:56 -07:00
jdalton
ab981ce15a Update lazy tests using larger arrays. 2015-06-06 15:06:17 -07:00
jdalton
e143936a82 Simplify lazy chaining by removing support for dropWhile and dropRightWhile. 2015-06-06 15:06:12 -07:00
jdalton
497cde7e92 Add LARGE_ARRAY_SIZE to more easily track what's considered a large array. 2015-06-06 14:56:31 -07:00
jdalton
948faf6cf9 Fix object doc param typo for equalByTag. [ci skip] 2015-06-05 07:56:06 -07:00
jdalton
56f199bd69 Make _.sortByOrder support orders of "asc" and "desc". 2015-06-05 07:56:06 -07:00
jdalton
9e1f68d9eb Update vendor/backbone to 1.2.1. 2015-06-05 07:56:06 -07:00
jdalton
7a9011c7e1 Add modArgs to lodash doc block. [ci skip] 2015-06-05 07:56:05 -07:00
jdalton
224a6c1e7c Adjust lazy eval heuristic. 2015-06-05 07:56:00 -07:00
jdalton
c89fe8bdbc Simplify array properties of LazyWrapper. 2015-06-03 23:20:03 -07:00
jdalton
cce9c2225e Ensure bailouts of lazy chaining will fallback appropriately. 2015-06-03 22:54:47 -07:00
jdalton
bdbc157c30 Whitespace nits. [ci skip] 2015-06-03 22:51:04 -07:00
jdalton
11eebfb78d Cleanup fn declaration style in tests. 2015-06-02 21:40:25 -07:00
jdalton
4beadcc4f3 Add this binding test for _.modArgs. 2015-06-02 21:04:18 -07:00
jdalton
e062c8c6f2 Tweak test label. 2015-06-02 21:03:58 -07:00
jdalton
f4709ce1f0 Move this binding tests around. 2015-06-02 21:03:37 -07:00
jdalton
50e129bd8f Add function checks to _.modArgs. 2015-06-02 20:18:13 -07:00
jdalton
f402dbd1e3 Use _.isFunction in _.isNative. 2015-06-02 20:14:13 -07:00
jdalton
55af8b4cb4 Remove _.isFunction fallback test. 2015-06-02 20:13:47 -07:00
jdalton
005b587588 Cleanup _.modArgs. 2015-06-02 08:41:01 -07:00
jdalton
de4463d9a8 Add basic _#concat test. 2015-06-02 08:16:47 -07:00
jdalton
b3d577c937 Replace wrapper with wrapped in docs/tests. 2015-06-02 08:10:10 -07:00
jdalton
51576018fd Cleanup arrayConcat and wrapperConcat docs. [ci skip] 2015-06-02 08:07:22 -07:00
jdalton
1b4f210d82 Add sparse array test for _#concat. 2015-06-02 07:47:18 -07:00
Steven Sojka
612bfd3acc Add _.modArgs. 2015-06-02 07:34:30 -07:00
jdalton
4972c94aed Remove the dot from the iojs identifier in travis.yml. 2015-06-01 23:05:53 -07:00
jdalton
642d77bb91 Add arrayConcat and arrayPush helpers. 2015-06-01 17:51:52 -07:00
jdalton
88270a7b66 Add built-in Date.now fork back. 2015-05-31 13:27:35 -07:00
Justin Ridgewell
29e0d37009 Reset resIndex after recursive baseFlatten. 2015-05-30 16:15:26 -05:00
jdalton
9c339367ad Optimize baseFlatten. 2015-05-29 11:26:14 -04:00
jdalton
f69715d999 Increase coverage of isLaziable. 2015-05-29 07:16:10 -04:00
jdalton
79990cbb27 Remove baseIsFunction. 2015-05-29 06:24:02 -04:00
jdalton
a02be54421 Increase max duration allowed for sauce to run tests. 2015-05-28 22:18:39 -04:00
jdalton
20127f6a2a Re-fix _.isFunction in old Safari. 2015-05-28 16:32:19 -04:00
jdalton
02a132a9d7 Ensure _.chunk floors size values. [closes #1243] 2015-05-28 14:29:26 -04:00
jdalton
7c95c5e80a Remove wild semicolon. 2015-05-28 11:33:03 -04:00
jdalton
c0bc5657ea Remove unnecessary tests. 2015-05-27 17:49:07 -04:00
jdalton
dfec166704 Remove dual environment _.isElement test. 2015-05-27 15:21:52 -04:00
jdalton
32f223c683 New line nit. 2015-05-27 15:20:22 -04:00
jdalton
722eac1681 Simplify _.isFunction. 2015-05-26 11:59:43 -07:00
jdalton
6bcbb6f7bb Simplify _.now and _.isFinite. 2015-05-26 11:39:29 -07:00
jdalton
d266a0c0ce Simplify _.parseInt. 2015-05-26 11:36:42 -07:00
jdalton
acf82af0bf Simplify _.isElement. 2015-05-26 11:35:35 -07:00
jdalton
98956056e3 Simplify bufferClone. 2015-05-26 11:26:48 -07:00
jdalton
ae0bb54b2d Remove bufferClone fork. 2015-05-26 11:22:06 -07:00
jdalton
255da0a0d7 Remove _.isPlainObject fallback. 2015-05-26 11:17:36 -07:00
jdalton
c0e8cc0254 Remove _.isArguments fallback and _.support.argsTag. 2015-05-26 11:14:25 -07:00
jdalton
41cec24644 Remove debounceOptions var. 2015-05-26 10:50:08 -07:00
jdalton
2ecdedd5b4 Bump to v3.9.3. 2015-05-25 16:25:57 -07:00
jdalton
358477c31b Rebuild lodash and docs. 2015-05-25 15:58:57 -07:00
jdalton
c1948f10a2 Avoid NaN use in isIndex. 2015-05-25 12:19:00 -07:00
jdalton
d33c487b29 Add parseFloat to contextProps. 2015-05-25 10:03:30 -07:00
Chris Hiestand
b309b507eb Add tests for parseFloat issues with isIndex and _.set. 2015-05-25 09:56:16 -07:00
jdalton
daa8428b32 Drop parseFloat in isIndex in favor of a more strict regex. [closes #1229] 2015-05-25 09:39:36 -07:00
jdalton
0529df7632 Bump to v3.9.2. 2015-05-24 00:45:38 -07:00
jdalton
fc31fb9eba Rebuild lodash and docs. 2015-05-24 00:45:37 -07:00
jdalton
54436e341a Update travis deps. 2015-05-24 00:45:31 -07:00
jdalton
fc35ac4d67 Cleanup shortcut fusion test. 2015-05-23 21:43:01 -07:00
jdalton
28a0b6f901 Fix test for removal of _.support.funcNames. 2015-05-23 20:12:50 -07:00
jdalton
1b8f2c2adb Make isLaziable work with wrapped lodash methods. 2015-05-23 20:12:20 -07:00
jdalton
6c8988ab69 Use POSITIVE_INFINITY and NEGATIVE_INFINITY more. 2015-05-23 16:15:12 -07:00
jdalton
e3c600a681 Remove rogue new line. 2015-05-23 16:14:37 -07:00
jdalton
979e0de659 Remove unused function charAtCallback. 2015-05-23 16:14:15 -07:00
jdalton
a76c10416d Tweak docs for _.difference, _.intersection, _.union, & _.xor. [ci skip] 2015-05-23 12:37:36 -07:00
jdalton
1276bf8c72 Correct _.sample to avoid favoring putting the second half of the array into the front and the first half in the back. 2015-05-23 00:05:34 -07:00
jdalton
9ef5c5d639 Change var endIndex to lastIndex for source consistency. 2015-05-22 22:38:46 -07:00
jdalton
69f51896c9 Optimize _.sample. 2015-05-22 22:38:39 -07:00
jdalton
5f845aa6f8 Optimize baseIsEqual. 2015-05-22 22:08:29 -07:00
jdalton
87c610beaa Fix doc typos for arrayExtremum and baseMatchesProperty. [ci skip] 2015-05-22 00:44:08 -07:00
jdalton
3a331ec156 More which/that switching in docs. [ci skip] 2015-05-22 00:36:57 -07:00
jdalton
6c5ac490ab Document partial args of _.method and _.methodOf. [ci skip] [closes #1223] 2015-05-22 00:36:51 -07:00
jdalton
50b9840db1 Change dep version in lodash-cli npm-shrinkwrap.json for travis tests. 2015-05-20 08:00:25 -07:00
jdalton
41e884a1d2 Poison the free variable root in Node.js. 2015-05-20 07:59:52 -07:00
jdalton
15841b191d Bump to v3.9.0. 2015-05-19 08:19:55 -07:00
jdalton
65514d89ad Rebuild lodash and docs. 2015-05-19 08:19:42 -07:00
jdalton
c6f8896826 Ensure _.get can return null values. [closes #1216] 2015-05-19 08:18:46 -07:00
jdalton
882d84f1e6 Ensure _.merge skips undefined values if a destination value exists. 2015-05-18 07:30:25 -07:00
jdalton
0eba3a3678 Update ecstatic and istanbul travis deps. 2015-05-18 07:30:24 -07:00
jdalton
756b28c3ab Rename value param to srcValue. 2015-05-17 16:13:54 -07:00
jdalton
d78ebc40ae Fix isEqual tests on older Safari. 2015-05-17 09:14:50 -07:00
jdalton
58aea21b82 Use 'xo' instead of 'hi' for string tests. 2015-05-17 00:55:30 -07:00
jdalton
c2b1d61dd1 Add toObject to _.pairs. 2015-05-17 00:55:30 -07:00
jdalton
f4d72dba06 Adjust test labels for consistency. 2015-05-17 00:55:30 -07:00
jdalton
31e81d7be2 Add string tests for _.isMatch, _.matches, & _.matchesProperty. 2015-05-17 00:55:30 -07:00
jdalton
6c9123beee Add toObject use to baseIsMatch. 2015-05-16 18:53:33 -07:00
jdalton
0fa0397da2 Add checks back to isEqual and simplify checks in baseIsEqual. 2015-05-16 18:53:33 -07:00
jdalton
b652fc7e1a Reduce baseIsMatch and isMatch by adding getMatchData. 2015-05-16 15:24:59 -07:00
jdalton
c42fea0d3d Remove isStrictComparable use from _.isEqual. 2015-05-16 13:29:41 -07:00
jdalton
48a56a848a Add test for modularized flow and flowRight. 2015-05-16 11:30:57 -07:00
jdalton
d6937baa8e Simplify getFuncName. 2015-05-16 11:30:43 -07:00
jdalton
3490f8acb5 Ensure LodashWrapper.prototype.thru exists before creating a wrapper in flow. 2015-05-16 07:01:15 -07:00
jdalton
46ace7e8e8 Simplify getNative. 2015-05-15 11:30:57 -07:00
jdalton
698956e130 Move parseFloat into isIndex. [closes #1209] 2015-05-15 08:55:47 -07:00
jdalton
b25cd39953 Add isObject check to getNative. 2015-05-15 01:29:17 -07:00
jdalton
de4f5eb2ca Allow for getNative to accept a nullish object value. 2015-05-15 00:30:20 -07:00
jdalton
ccc5fa3981 Add getNative helper. 2015-05-15 00:23:27 -07:00
jdalton
b899a19184 Change "it is" to "it's". [ci skip] 2015-05-15 00:22:14 -07:00
jdalton
6af7fac344 Minor style nit in _.isObject. 2015-05-14 21:27:11 -07:00
jdalton
49ef2b4d54 Clarify _.debounce and _.throttle docs. [ci skip] 2015-05-14 09:13:00 -07:00
jdalton
fcc09a7375 Use strict equality check since its type isn't guaranteed. 2015-05-13 23:39:06 -07:00
jdalton
8e9ad4df97 Avoid testing Backbone in IE6 in sauce. 2015-05-13 23:25:47 -07:00
jdalton
4dfcfd2542 Cleanup test/backbone.html and test/underscore.html. 2015-05-13 23:25:31 -07:00
jdalton
12081c9bd6 Bypass vm module use for ChakraNode. 2015-05-13 21:04:51 -07:00
jdalton
abee7fdfa2 Update vendors. 2015-05-13 21:03:09 -07:00
jdalton
ca0bc0632b Reduce _.has. 2015-05-13 08:57:03 -07:00
jdalton
e465750cd2 Fix failing _.has tests in Rhino. 2015-05-13 00:51:58 -07:00
jdalton
934b08f720 Avoid mixing boolean and object types in variable assignments. 2015-05-12 23:41:14 -07:00
jdalton
78cc98840b Remove fast path from _.isMatch. 2015-05-12 21:19:12 -07:00
jdalton
d4cd7a120f Remove support.funcDecomp and support.nonEnumStrings. 2015-05-12 21:18:35 -07:00
jdalton
4b6c91bbf1 Remove support.nonEnumArgs. 2015-05-12 09:23:07 -07:00
jdalton
e3be2b4451 Ensure _.has treats sparse arrays as dense. 2015-05-12 08:58:37 -07:00
jdalton
c6ff845ecb Ensure _.intersection works with a single array. [closes #1199] 2015-05-11 23:52:56 -07:00
jdalton
846bde35ff Use hasOwnProperty instead of objToString for the creation of reIsNative to avoid issues with core-js. [closes #1197] 2015-05-11 10:31:38 -07:00
jdalton
69990ae226 Fix test error in Rhino with CommonJS support. 2015-05-10 23:13:18 -07:00
jdalton
415fc81577 Remove Narwhal reference from source. 2015-05-10 20:20:18 -07:00
jdalton
b675566e23 Cleanup bizarro values, vm values, iframe values, worker addition, & module additions. 2015-05-10 20:17:57 -07:00
jdalton
190da0dcd4 Capitalize comments in test/index.html. [ci skip] 2015-05-10 20:09:14 -07:00
jdalton
5c40f93ca3 Fix AMD tests in PhantomJS. 2015-05-10 17:05:46 -07:00
jdalton
879c1e4992 Increase test coverage. 2015-05-09 18:02:09 -07:00
jdalton
311334c9e1 Add doc examples to _.gt, _.gte, _.lt, & _.lte. [ci skip] 2015-05-09 15:25:32 -07:00
jdalton
dc5268b0c0 Add _.gt, _.gte, _.lt, _.lte, & _.eq unit tests. 2015-05-09 12:25:31 -07:00
jdalton
d77ace6dc3 Upate tested Chrome version in sauce.js. 2015-05-08 18:56:20 -07:00
jdalton
f0b3c1a9ab Cleanup createFlow. 2015-05-08 18:55:57 -07:00
jdalton
9efb73f592 Remove nativeAssign and getOwnPropertySymbols use. 2015-05-08 11:36:44 -07:00
jdalton
569b4b29aa Add case of 5 to createCtorWrapper to align with bindCallback. 2015-05-08 11:36:23 -07:00
jdalton
a61bde5b78 Ensure _.bind works with ES6 class constructors. [closes #1193] 2015-05-08 09:49:54 -07:00
jdalton
542dd67892 Update param docs for createExtremum. [ci skip] 2015-05-08 00:17:48 -07:00
jdalton
172eca6081 Avoid using require in source because browserify does a quick regexp match for \brequire\b before deciding whether to build an AST to get require calls. 2015-05-07 23:59:51 -07:00
jdalton
004aaed783 Remove odd string support from createExtremum. 2015-05-07 23:53:50 -07:00
jdalton
a1b15df648 Update tested Rhino to 1.7.6. 2015-05-07 01:05:16 -07:00
jdalton
b5d5bef678 Avoid undefined length variable use in createExtremum. 2015-05-07 00:38:22 -07:00
Len Smith
421df0dff3 Make null sorted right behind undefined and NaN. 2015-05-07 00:34:12 -07:00
Armaan Ahluwalia
5b5e29cb7b Fixed iteratees doc typos. [ci skip] 2015-05-06 14:58:03 -07:00
jdalton
db67ae12ec Optimize _.max and _.min when invoked with iteratees and add _.gt, _.gte, _.lt, _.lte, & _.eq. 2015-05-06 08:56:50 -07:00
jdalton
7dfd7ad5b9 Minor adjustments to param docs for baseCompareAscending and matchesProperty. [ci skip] 2015-05-06 01:37:56 -07:00
jdalton
ca5fa9e84d Add support for an immutable Map to _.memoize.Cache. 2015-05-05 23:13:00 -07:00
jdalton
1afcfa4406 Use precomputed values for MAX_ARRAY_LENGTH and MAX_SAFE_INTEGER. 2015-05-04 21:53:12 -07:00
jdalton
95b1455b62 Consistently use callback as the variable to store getCallback() results. 2015-05-04 09:06:06 -07:00
jdalton
d825937411 Ensure customizer results are respected by _.isEqual. 2015-05-03 22:57:45 -07:00
jdalton
ee182df533 Optimize object comparisons in _.isEqual. 2015-05-03 19:38:58 -07:00
jdalton
14651d8ea8 Remove customizer assignment from clone and cloneDeep. 2015-05-03 17:20:51 -07:00
jdalton
7e4ed7c1a9 Ensure baseCreate works in ExtendScript. 2015-05-03 13:47:40 -07:00
jdalton
13fe88c03f Cleanup baseIsMatch and equalArrays. 2015-05-02 23:00:57 -07:00
jdalton
7b80a780c7 Remove old Opera from Sauce tests. 2015-05-01 22:16:59 -07:00
jdalton
2b465bdf82 Update QUnit dev dep. 2015-05-01 21:00:50 -07:00
jdalton
6d52119597 Bump to v3.8.0. 2015-05-01 00:45:06 -07:00
jdalton
b75041173c Rebuild lodash and docs. 2015-05-01 00:45:06 -07:00
jdalton
23eba0a029 Avoid isArrayLike in createBaseEach to bail out early when nullish. 2015-05-01 00:45:06 -07:00
jdalton
566781cab2 Loosen -0 and 0 checks. 2015-05-01 00:44:55 -07:00
jdalton
0ea1fc5602 Avoid var name pad in composeArgsRight. 2015-04-30 09:09:47 -07:00
jdalton
2ce9e09e8b Ensure _.padLeft and _.padRight handle empty strings correctly. 2015-04-30 09:09:46 -07:00
Tim D
6cab7ceb0f Removing length assignment in baseFlatten for a perf win. 2015-04-29 19:57:39 -07:00
jdalton
8ae7d8aa07 Simplify SameValueZero doc notes. [ci skip] 2015-04-29 00:25:36 -07:00
jdalton
ce6ccef2d0 Ensure baseAt, basePullAt, and pullAt handle nullish values correctly. 2015-04-29 00:25:36 -07:00
jdalton
2c6d880542 Loosen restrictions of _.intersection and others to accept array-like objects and add isArrayLike helper. [closes #1163] 2015-04-29 00:25:36 -07:00
jdalton
bf89287c56 Optimize lazy slice for start of 0 and an end value. 2015-04-29 00:25:36 -07:00
jdalton
df176dfe8a Fix modularized npm build tests. 2015-04-26 14:22:46 -07:00
jdalton
141a32d388 Add _.callback test for augmenting source objects. 2015-04-26 10:59:29 -07:00
jdalton
37786b76ed Minor whitespace nits. [ci skip] 2015-04-26 00:46:33 -07:00
jdalton
02b920f259 Add _.flow and _.flowRight tests for curried functions with placeholders. 2015-04-23 08:38:58 -07:00
jdalton
31e25f88a0 Narrow bitmask check in createFlow. 2015-04-23 08:06:51 -07:00
jdalton
231c8a468e Replace "that" with "which" in pickByArray and pickByCallback docs. [ci skip] 2015-04-22 23:10:17 -07:00
jdalton
ae346f564f Avoid lazy eval optimization in createFlow if metadata has placeholder arguments. [closes #1160] 2015-04-22 20:44:56 -07:00
jdalton
fcc0608cf2 Only use built-in Object.assign when in strict mode. 2015-04-22 20:23:30 -07:00
jdalton
641cd63462 Fix old V8 JIT bug that has cropped up again. 2015-04-22 20:17:39 -07:00
jdalton
0b907a3efa Make tests work in Phantom 2. 2015-04-22 20:16:43 -07:00
jdalton
ce180cf2bf Excuse Underscore _.now test to avoid occasional false fail in sauce andrioid. 2015-04-22 07:18:14 -07:00
jdalton
d97276404c Update excused Underscore tests. 2015-04-22 07:09:52 -07:00
Ray Hammond
d5a9b4344b Removed unused variables identified by JSHint. 2015-04-21 16:58:10 -07:00
jdalton
e317fdfa3d Cleanup deep path tests. 2015-04-21 08:07:49 -07:00
jdalton
150ea2639a Add complex tests for unquoted bracketed property names. 2015-04-21 08:03:14 -07:00
jdalton
a551348b40 Fix preventExtensions definition typo. [closes #1153] 2015-04-21 07:59:02 -07:00
jdalton
3429b5d661 Ensure empty brackets are ignored by _.get and _.set. 2015-04-21 00:02:28 -07:00
jdalton
c8314b215b Doc and var name tweaks to _.unzip, _.unzipWith, and _.zipWith. 2015-04-20 08:59:53 -07:00
jdalton
5929f7d23b Newline nit in _.assign doc. [ci skip] 2015-04-20 00:35:41 -07:00
jdalton
85a7df3d27 Add _.unzipWith. 2015-04-20 00:10:12 -07:00
jdalton
e6c5a0e848 Update iOS comment on getLength. [ci skip] 2015-04-19 20:04:13 -07:00
Ray Hammond
92dee72b10 Added two missing semicolons. 2015-04-19 17:51:14 -07:00
jdalton
4d6e57a5e6 Make _.zipWith act like _.zip when no iteratee is provided and make _.unzip ignore non array or arguments object values. 2015-04-19 10:32:27 -07:00
jdalton
936a1c2764 Add support for thisArg in zipWith. 2015-04-19 08:02:43 -07:00
jdalton
a08a3c6096 Cleanup tests. 2015-04-18 22:31:46 -07:00
thirdcreed
82be40eace Add _.zipWith. 2015-04-18 11:13:03 -07:00
jdalton
20ba0bd1dc Fix _.uniqueId test to properly compare values. 2015-04-18 11:10:55 -07:00
jdalton
75ce6b82e8 Add sum to guarded doc note in _.map. [ci skip] 2015-04-17 09:04:22 -07:00
jdalton
9749ac56ba Remove extraneous docs for methods that reference others. [ci skip] 2015-04-17 08:37:55 -07:00
jdalton
746f9bb778 Add _.mapKeys. [closes #169] 2015-04-17 08:36:37 -07:00
jdalton
f2dae588aa Add test labels to help track down odd false fail. 2015-04-17 08:27:14 -07:00
jdalton
9f3f0a76aa Ensure baseGet returns undefined and not null. [closes #1136] 2015-04-16 20:07:48 -07:00
jdalton
30f28a51ca Bump v3.7.0. 2015-04-15 20:08:34 -07:00
jdalton
3e22344782 Rebuild lodash and docs. 2015-04-15 19:32:58 -07:00
jdalton
0b20d89d62 Ensure _.times floors n float values. 2015-04-15 19:21:13 -07:00
jdalton
80d892c744 Update Firefox versions in saucelabs.js. 2015-04-15 09:04:28 -07:00
jdalton
53326bef33 Update vendors. 2015-04-15 08:44:18 -07:00
jdalton
f05a5a3abb Fix failing strict mode _.set tests. 2015-04-15 00:00:40 -07:00
jdalton
8581be4977 Ensure baseGet and result work with strings on nested objects. 2015-04-14 22:34:46 -07:00
jdalton
0e8277ba9e Cleanup path methods. 2015-04-14 21:19:31 -07:00
jdalton
3cc2f83912 Add more string character access tests and adjust array path tests. 2015-04-14 21:18:50 -07:00
jdalton
177034a498 Move _.filter benchmark and cleanup labels. 2015-04-14 21:15:18 -07:00
jdalton
f4d06e5183 Remove unneeded "use strict" directive. 2015-04-14 12:54:30 -07:00
jdalton
637a6b5f7e Optimize _.invoke. 2015-04-14 12:29:41 -07:00
jdalton
75445b8b98 Update ecstatic travis dep. 2015-04-14 12:14:12 -07:00
jdalton
f96de55ac7 Optimize isKey. 2015-04-14 12:13:54 -07:00
jdalton
c4d4af3b5a Make freeGlobal detect align with freeSelf and freeWindow checks. 2015-04-13 20:29:58 -07:00
jdalton
5dfee44340 Cleanup doc blocks. [ci skip] 2015-04-13 20:29:26 -07:00
jdalton
99f5857d84 Add stable sort tests for objects. 2015-04-13 20:28:25 -07:00
jdalton
520f7c6812 Ensure index in baseSortByOrder is an integer. 2015-04-13 09:30:01 -07:00
jdalton
63d493aa1f Cleanup _.sortBy, _.sortByAll, _.sortByOrder, & baseSortByOrder. 2015-04-13 08:58:10 -07:00
jdalton
38ab42f855 Add Object.assign reference to _.assign docs. [ci skip] 2015-04-13 07:43:35 -07:00
Graeme Yeates
bc3771f3af Support iteratee use cases for _.sortByAll and _.sortByOrder. 2015-04-12 18:29:26 -07:00
jdalton
9d90af409b Add bizarro test for Object.getOwnPropertySymbols. 2015-04-12 18:28:50 -07:00
jdalton
20183bbd57 Have baseMap use getLength and isLength. 2015-04-12 10:33:34 -07:00
jdalton
1d8efe1cf8 Cleanup deep property tests. 2015-04-11 23:08:59 -07:00
jdalton
23354d413f Add an _.invoke test for deep paths. 2015-04-11 23:08:11 -07:00
jdalton
715f03f5f1 Change call to invoke in _.debounce and _.throttle test. 2015-04-11 23:08:11 -07:00
jdalton
ff6bbaed19 Add more tests for _.sortByAll and _.sortByOrder used as iteratees of _.reduce. 2015-04-11 20:58:31 -07:00
Graeme Yeates
f82cbbab1c Use _.restParam in _.sortByAll. 2015-04-11 20:18:29 -07:00
jdalton
5a1b526b6c Add and adjust deep path examples to _.method, _.methodOf, _.property and _.propertyOf docs. [ci skip] 2015-04-11 18:40:05 -07:00
jdalton
1ef92c87fb Use query instead of inspect in various docs. [ci skip] 2015-04-11 16:33:24 -07:00
jdalton
0aef515522 Rename baseMethod to invokePath and make use of it in _.invoke. 2015-04-11 16:32:27 -07:00
jdalton
9b5c97666a Ensure symbols work for _.assign, _.defaults, & _.merge. 2015-04-11 11:42:36 -07:00
jdalton
a55d822f9a Add more comments to nativeAssign definition. [ci skip] 2015-04-10 21:24:32 -07:00
jdalton
5b2bde6e0d Simplify getSymbols. 2015-04-10 19:56:38 -07:00
jdalton
020c5b27dc Add assert labels to _.tempalte test. 2015-04-10 15:42:03 -07:00
jdalton
65457208e5 Fix feature test for IE tech preview. 2015-04-10 15:41:48 -07:00
jdalton
6eb1b98975 Fix test fails in Node 0.12. 2015-04-10 15:40:26 -07:00
jdalton
a927bab6b3 Use built-in Object.assign if available. 2015-04-10 09:19:39 -07:00
jdalton
48e3e3e8cb Add _.method and _.methodOf docs. [ci skip] 2015-04-09 09:29:23 -07:00
jdalton
b5d095401d Make _.result and _.set docs more consistent with _.get. [ci skip] 2015-04-09 08:42:05 -07:00
jdalton
b3e58d4794 Cleanup createAssigner. 2015-04-09 07:35:32 -07:00
jdalton
79b064320e Update _.assign benchmarks for newer Underscore versions. 2015-04-09 07:30:17 -07:00
Sankar Gorthi
335b8326ee Fix broken link in _.bindKey docs. [ci skip] 2015-04-08 15:22:06 -07:00
jdalton
e777020e44 Update propertyIsEnumerable mock for support.nonEnumArgs feature test changes. 2015-04-08 13:42:48 -07:00
jdalton
745d97ebe1 Replace typeof checks for undefined with === checks. 2015-04-08 09:37:35 -07:00
jdalton
bb06d98a43 Add _.has doc examples of deep paths. [ci skip] 2015-04-08 09:27:37 -07:00
jdalton
3500b0016c Store last(path) in a var. 2015-04-08 08:41:57 -07:00
jdalton
7ec916b777 Add additional backtick reference to _.escape docs. [ci skip] 2015-04-08 08:24:44 -07:00
jdalton
3c71f79929 Fix string indexes with _.has in older enviros. 2015-04-08 00:39:39 -07:00
jdalton
a83e70104c Ensure complex paths work with _.get, _.result, & _.set. 2015-04-07 19:47:31 -07:00
jdalton
85af554bac Replace work with expected value in test labels of _.get, _.isMatch, _.matches, _.matchesProperty, _.method, _.property, _.propertyOf, & _.result. 2015-04-07 18:45:39 -07:00
jdalton
885722afde Add _.has and _.methodOf tests. 2015-04-07 18:41:51 -07:00
jdalton
b2f094da01 Add another path test to a deep property test of _.result. 2015-04-07 09:29:44 -07:00
jdalton
1e85ec6758 Add more _.method tests. 2015-04-07 09:29:09 -07:00
jdalton
c8974aac3e Ensure nullish values aren't treated as empty objects in _.get, _.has, _.matchesProperty, _.property, _.propertyOf, & _.result. 2015-04-07 08:33:19 -07:00
jdalton
ad318c04e5 Use nullish more in test labels. 2015-04-07 08:19:24 -07:00
jdalton
db73e48206 Add mutation notes to docs of _.assign and _.defaults. [ci skip] 2015-04-07 08:07:00 -07:00
jdalton
d13972e0b8 Fix string test fails for _.matchesProperty, _.property, & _.result in IE 6 & 7. 2015-04-07 07:28:58 -07:00
Graeme Yeates
df74b2bfcb Remove _.noop from chainable list. [ci skip] 2015-04-07 00:31:38 -07:00
jdalton
b94b75726d Cleanup _.property and _.propertyOf tests. 2015-04-07 00:24:50 -07:00
jdalton
9a2d38acff Cleanup _.method tests. 2015-04-07 00:24:22 -07:00
jdalton
537f8f401e Cleanup _.matchesProperty tests. 2015-04-07 00:24:01 -07:00
jdalton
04f1a799dc Cleanup _.matches tests. 2015-04-07 00:23:16 -07:00
jdalton
74adb2f540 Consolidate _.get and _.result tests. 2015-04-07 00:22:11 -07:00
jdalton
a129a2509f Ensure _.method aligns with _.invoke. 2015-04-07 00:20:35 -07:00
jdalton
cc0b8e9d10 Ensure methods like _.get, _.has, _.matchesProperty, _.property, & _.propertyOf can get characters of string indexes. 2015-04-07 00:16:33 -07:00
jdalton
af8fcf234f Add _.set test for non-deep paths. 2015-04-06 13:01:27 -06:00
jdalton
e0dc2daf54 Simplify _.set for plain keys. 2015-04-06 12:59:39 -06:00
jdalton
c066e655dc Add empty path and array path coercing _.set test. 2015-04-06 12:04:07 -05:00
jdalton
2698e6f0ea Add more array path tests to _.get. 2015-04-06 11:54:09 -05:00
jdalton
63902bde9c Add array path tests to _.set. 2015-04-06 11:34:33 -05:00
jdalton
c876004fb2 Ensure _.set passes strict mode tests. 2015-04-06 09:57:26 -05:00
jdalton
633f37bfb6 Add array path tests to _.get. 2015-04-06 09:29:36 -05:00
jdalton
d70bc74dc8 Adjust baseGet and isKey to reduce code in other methods. 2015-04-05 21:41:10 -05:00
Justin Ridgewell
d7a4524e70 Add _.method and _.methodOf. 2015-04-05 13:53:54 -05:00
jdalton
fe1e27fd40 Add tests for _.add coercing params to numbers. 2015-04-05 13:45:56 -05:00
jdalton
8a7a099073 Use x even more in support definition. 2015-04-05 13:25:45 -05:00
jdalton
1b53b5f9eb Cleanup doc block for _.support.nonEnumArgs. [ci skip] 2015-04-05 13:25:29 -05:00
James
8b758ee25a Make _.add coerce augend and addend params to numbers. 2015-04-05 11:59:56 -05:00
jdalton
81c24a8478 Add _.get test for empty paths. 2015-04-05 08:38:51 -05:00
jdalton
a6f3e0b6af Remove "correctly" from test labels. 2015-04-05 08:38:14 -05:00
jdalton
6e9e8127b6 Rename variable sum in doc examples to total. [ci skip] 2015-04-05 08:15:36 -05:00
jdalton
63d43275d3 Remove unnecessary parseFloat from baseAt. 2015-04-05 08:13:32 -05:00
jdalton
cb2bf7f8fa Add tests for missing path parts for _.matchesProperty. 2015-04-05 01:39:51 -05:00
jdalton
1fae760ccd Use perl instead of sed in travis.yml. 2015-04-05 01:39:16 -05:00
jdalton
4195c4c4bf Add tests for missing path parts for _.property and _.propertyOf. 2015-04-04 14:35:50 -05:00
jdalton
13e7a1ed93 Add _.isMatch and _.matchesProperty tests for nullish object params. 2015-04-04 00:29:04 -05:00
jdalton
ea4357ca98 Add _.callback tests for deep paths. 2015-04-03 17:44:59 -05:00
jdalton
5e8255d24d Tweak path related test labels. 2015-04-03 17:08:59 -05:00
jdalton
003d6ec43f Add _.has tests for deep paths. 2015-04-03 17:08:30 -05:00
jdalton
9749ff7c67 Add a non-deep property test for _.get. 2015-04-03 12:56:12 -05:00
jdalton
c88589e0e5 Add _.result tests for deep paths. 2015-04-03 12:55:42 -05:00
jdalton
32ef1bb7a5 Add deep props to key tests to make it more interesting. 2015-04-03 12:47:26 -05:00
jdalton
206c65904f Add _.matchesProperty test for deep props. 2015-04-03 12:47:08 -05:00
jdalton
219d4688e4 Ensure path a property name is teated as a key before a path in _.get and _.set. 2015-04-03 12:36:31 -05:00
jdalton
adc687f0a0 Add _.property and _.propertyOf tests for deep paths. 2015-04-03 12:22:38 -05:00
jdalton
88e59c9a5a Cleanup tests. 2015-04-03 11:46:55 -05:00
jdalton
71a89a575f Add _.get and _.set tests. 2015-04-03 11:46:37 -05:00
jdalton
e3dc8dfcf4 Remove rogue newline in initCloneByTag doc block. [ci skip] 2015-04-03 02:12:14 -05:00
jdalton
2dd77d5bc7 Change "method" to "function". [ci skip] 2015-04-03 02:11:42 -05:00
jdalton
0192226bb3 Use "length" when referring to a property name. [ci skip] 2015-04-03 02:11:16 -05:00
jdalton
faf2658da2 Move getLength closer to like functions and give it a proper jsdoc block. 2015-04-03 02:10:21 -05:00
jdalton
9a1c00d2dc Use x a bit more in support definition to prevent aggressive minifier modifications. 2015-04-01 21:42:57 -07:00
jdalton
4a8695caff Use getLength to avoid an iOS JIT bug. 2015-04-01 21:39:37 -07:00
jdalton
b28016bfeb Simplify isLength check in _.keys. 2015-04-01 12:07:12 -07:00
jdalton
4758a9e66d Ensure _.inRange swaps start with end when start is greater than end. [closes #1099] 2015-04-01 08:43:42 -07:00
Trevor Adams
97bd1ef4ec Minor change to _.once to avoid an extra var swap. 2015-04-01 08:38:02 -07:00
jdalton
2adac8bdae Use _.restParam in createAssigner. 2015-04-01 01:57:19 -07:00
jdalton
3c56914822 Simplify isLoose check in baseIsEqualDeep. 2015-04-01 00:08:31 -07:00
jdalton
c5cc907838 Ensure _.match and _.matchesProperty compares functions by reference. [closes #1101] 2015-03-31 23:41:15 -07:00
jdalton
0907aabacd Avoid bug in older browsers where an unmatched capture group returns an empty string. 2015-03-31 09:09:17 -07:00
jdalton
f4290bda7f Update test deps. 2015-03-31 01:06:09 -07:00
jdalton
4bdb82a7a2 Ensure toPath works with a nullish value. 2015-03-31 00:50:47 -07:00
jdalton
6a696dde3a Add _.set tests. 2015-03-31 00:15:46 -07:00
jdalton
8481684a82 Fix start and end typo mix up in _.range docs. [closes #1095] [ci skip] 2015-03-30 21:05:48 -07:00
Benjamin Tan
03aa8b3356 Minor documentation and test name nits. [ci skip] 2015-03-30 20:58:20 -07:00
jdalton
64bfed2640 Clarify _.uniq docs. [ci skip] 2015-03-30 00:55:30 -07:00
jdalton
2edcc89303 Add _.get and _.set. 2015-03-29 20:59:48 -07:00
jdalton
18313f2e90 Minor word nit for mapSet doc. [ci skip] 2015-03-29 20:57:19 -07:00
jdalton
0ff96418bd Simplify reIsDeepProp and rePropName. 2015-03-29 20:32:25 -07:00
Justin Ridgewell
1480abf0e8 Fix Worker tests in Chrome. See https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers#Browser_notes. 2015-03-29 18:34:48 -07:00
jdalton
e7ba75d533 Make toPath more robust and add support for deep properties to _.has and _.matchesProperty. 2015-03-29 15:43:53 -07:00
jdalton
044291d940 Add deep property support to _.has. 2015-03-29 08:59:42 -07:00
jdalton
ad62efcb9e Make reComboMarks singular for naming consistency. 2015-03-29 08:08:46 -07:00
jdalton
0dc59d9481 Add support for brackets to toPath. 2015-03-29 08:08:23 -07:00
Justin Ridgewell
11ab3034b1 Ensure _.result calls deep function with correct context. 2015-03-29 08:07:36 -07:00
Justin Ridgewell
c594bda77f Simplify getProperty and friends. 2015-03-29 00:07:13 -07:00
jdalton
8218b74fb3 Remove propertyDeep, propertyDeepOf, and resultDeep in favor of deep property path support in existing methods. 2015-03-28 13:16:16 -07:00
Joshua Piccari
3d0beb1a2e Add _.propertyDeep and _.propertyDeepOf. 2015-03-28 09:54:40 -07:00
Joshua Piccari
515cfd48d8 Add _.resultDeep. 2015-03-28 09:48:55 -07:00
jdalton
1448bab5b3 Clear func in function created by _.before without requiring an additional call. [closes #1088] 2015-03-28 00:39:04 -07:00
jdalton
2884f8acb8 Ensure _.intersection of a single array returns an empty array. [closes #1085] 2015-03-26 13:17:41 -07:00
jdalton
075cae4efb Use basePullAt in _.remove. 2015-03-26 09:03:29 -07:00
Justin Ridgewell
d2b98323dd Don't mutate array during #remove. [closes #1079] 2015-03-26 09:02:55 -07:00
jdalton
b1a81a85b1 Add a test for _.remove and index params. 2015-03-26 07:29:36 -07:00
jdalton
668384649a Change "Iterator" typo to "Iteratee" in docs. [ci skip] 2015-03-26 07:29:36 -07:00
jdalton
a7252b1a7f Bump to v3.6.0. 2015-03-24 22:41:59 -07:00
jdalton
a4e58e4d55 Rebuild lodash and docs. 2015-03-24 22:41:53 -07:00
jdalton
4241e01364 Cleanup comment links. [ci skip] 2015-03-24 22:34:57 -07:00
jdalton
d7d7952138 Increase test coverage by modifying the source to hit the branch of getFuncName used for minified builds. 2015-03-24 20:15:33 -07:00
jdalton
9cc2253339 Add npm i step to contributing.md. [ci skip] 2015-03-24 08:15:32 -07:00
jdalton
6831802590 Rename predicate to iteratee in _.uniq, _.countBy, _.groupBy, _.indexBy, & _.map docs. [closes #1071] [ci skip] 2015-03-23 23:34:33 -07:00
jdalton
9d79cc7e87 Make _.deburr handle combining diacritical marks. [closes #1070] 2015-03-23 20:50:04 -07:00
jdalton
763b003a11 Add note about _.runInContext to _.mixin docs. [ci skip] 2015-03-23 20:04:13 -07:00
jdalton
d560e2a558 Remove unused bar reFuncName. 2015-03-23 19:58:25 -07:00
jdalton
f914f080b1 Simplify ctor check flag in equalObjects. 2015-03-23 09:24:55 -07:00
jdalton
600a4e86e1 Ensure _.matches and _.matchesProperty work with function value params. 2015-03-23 09:24:05 -07:00
jdalton
e7b4ada65f Add _.restParam test for functions with more than 3 params. 2015-03-23 09:06:45 -07:00
jdalton
95f31be096 Add doc blocks for getFuncName and isLaziable. [ci skip] 2015-03-23 09:01:19 -07:00
jdalton
ad6db7eaae Adjust object checks in baseIsMatch, baseMatches, baseMatchesProperty, & isMatch. 2015-03-22 23:44:11 -07:00
jdalton
d7a99c6618 Add _.matches and _.matchesProperty tests for inherited properties. 2015-03-22 00:45:36 -07:00
jdalton
f20d8f5cc0 Loosen _.matches to match objects with inherited properties. [closes #1067] 2015-03-21 23:33:19 -07:00
jdalton
8930e6b393 Add baseWhile and createBaseEach. 2015-03-21 22:07:19 -07:00
jdalton
f26886acb0 Add createSortedIndex. 2015-03-21 18:08:35 -07:00
jdalton
820ab8d486 Add test for _.escapeRegExp with eval and Function. 2015-03-21 11:43:18 -07:00
jdalton
8e425fb358 Tweak _.at and _.matchesProperty doc examples. [ci skip] 2015-03-21 10:01:46 -07:00
jdalton
6006f499ac Fix doc bugs in _.runInContext, _.thru, _.forEachRight, & _.escapeRegExp. [closes #1065] [ci skip] 2015-03-21 10:01:17 -07:00
Christopher Venning
3caa740fc4 Fixed errors in documentation examples for _.trim, _.matchesProperty, & _.property. [ci skip] 2015-03-21 08:53:49 -07:00
jdalton
007ea9ea20 Add length check test to _.flow & _.flowRight. 2015-03-20 23:49:31 -07:00
jdalton
5d248d261d Expand part of shortcut fusion test. 2015-03-20 23:22:36 -07:00
jdalton
26908cba64 Don't assume a lodash method will exist. 2015-03-20 15:15:06 -07:00
jdalton
18d118746e Add _.fill doc example. [ci skip] 2015-03-20 12:37:49 -07:00
jdalton
9a633f5f2e Update root detection in WeakMap and Set shims. 2015-03-20 12:01:37 -07:00
jdalton
5aa44e98d5 Fix rhino and other old environment test fail. 2015-03-20 12:00:29 -07:00
jdalton
33916fa975 No need to redeclare funcName in createFlow. 2015-03-20 11:49:18 -07:00
jdalton
eab18df403 Cleanup isLaziable and getFuncNames. 2015-03-20 09:24:56 -07:00
jdalton
002caceb05 Cleanup isXyz methods. 2015-03-20 09:24:13 -07:00
jdalton
c250aa804a Ensure _.merge correctly coerces objects to arrays. [closes #1061] 2015-03-19 08:58:56 -07:00
jdalton
94ca50883f Drop funcDecomp optimization in baseCallback and ensure shortcut fusion for _.flow and _.flowRight works in minified builds. 2015-03-19 08:40:45 -07:00
jdalton
462c482873 Add support for shortcut fusion to _.flow and _.flowRight. 2015-03-18 10:27:45 -07:00
jdalton
e28e04a990 Add freeSelf as a fallback for when freeWindow is unavailable. 2015-03-17 20:13:10 -07:00
Rocco Nicosia
6438385d64 Fix _.zipObject docs to more clearly demonstrate it as _.pairs inverse. [ci skip] 2015-03-17 16:50:00 -07:00
jdalton
bfb08ce003 Use opposite instead of inverse to describe _.propertyOf. [ci skip] 2015-03-17 16:49:30 -07:00
jdalton
3590a06f40 Update _.zipObject docs to tie into _.pairs. [ci skip] 2015-03-17 16:45:01 -07:00
jdalton
23ca6c5e10 Rename createPad to createPadding and cleanup docs of pad methods. 2015-03-17 15:57:12 -07:00
jdalton
1aea5bcd50 Finish adding comment blocks to creator function. [ci skip] 2015-03-17 13:54:33 -07:00
jdalton
82c5d8ed28 Rename createComposer to createFlow. 2015-03-17 10:27:52 -07:00
jdalton
5dcd58a75f Tweak _.findIndex docs and correct _.findKey docs. [ci skip] 2015-03-17 10:23:59 -07:00
jdalton
dc605a4ee1 More more docs for creator functions. [ci skip] 2015-03-17 10:23:26 -07:00
Justin Ridgewell
fec940ab8b Allocate proper size in in _.restParam.
Since we're putting `rest` at `start` index, `array.length; // => {start + 1}`
2015-03-17 08:50:41 -07:00
jdalton
05fd7cecf4 Add docs for baseSum and arraySum. [ci skip] 2015-03-17 08:48:21 -07:00
jdalton
2f52730b48 Use and consistently. [ci skip] 2015-03-17 08:44:51 -07:00
jdalton
4c1819c7dd Ensure _.sum provides the correct arguments when iterating an object. 2015-03-15 19:49:14 -07:00
jdalton
c58c0df30e Cleanup creator functions. 2015-03-15 17:12:33 -07:00
jdalton
c5902b3144 Cleanup _.sum. 2015-03-15 17:01:40 -07:00
qsona
519eb424e7 Documentation nits. [ci skip] 2015-03-15 14:57:53 -07:00
qsona
03478afea4 Add support for _.sum to take iteratee. 2015-03-15 14:57:13 -07:00
jdalton
306ef8addf Add creator functions. 2015-03-15 14:48:32 -07:00
jdalton
d4659b261d Add baseFindIndex. 2015-03-15 11:22:25 -07:00
jdalton
69ce41807a Add _.restParam. 2015-03-15 10:57:21 -07:00
jdalton
cc81da5aa4 Update Chrome version in saucelabs.js. 2015-03-14 00:14:21 -07:00
jdalton
eee714f52b Add iteratee guard to _.includes. 2015-03-13 13:39:14 -07:00
jdalton
c976b637d8 Adjust test descriptions to be more generic. 2015-03-13 12:33:19 -07:00
jdalton
ea93515d53 Add well-known symbols test for _.uniq. 2015-03-13 09:03:09 -07:00
jdalton
652499bdcf Cleanup sortedIndex test. 2015-03-13 08:51:56 -07:00
Benjamin Tan
819862199a Documentation: Rename predicate to iteratee.
Closes #1049.
[ci skip]
2015-03-13 08:43:05 -07:00
jdalton
6c1bc1d7bb Semicolons out colons in. [ci skip] 2015-03-13 08:43:00 -07:00
octref
36ebe76e0a Fix _.reduce doc 2015-03-13 08:39:10 -07:00
Benjamin Tan
8f8d35dec7 Simplify test/saucelabs.js.
Remove repeated assignment operations.
2015-03-13 19:29:39 +08:00
jdalton
ac1e436339 Simplify isCommon and isCombo checks in mergeData. 2015-03-13 00:12:51 -07:00
jdalton
78d4812b0e Whitespace nits. [ci skip] 2015-03-12 23:02:23 -07:00
jdalton
6a1b7626e3 Add NaN tests for _.indexOf and _.lastIndexOf with a fromIndex. 2015-03-12 22:42:02 -07:00
bryce-gibson
b6ccb4c96f Add example of alternative _.zipObject syntax. [ci skip] 2015-03-12 07:41:15 -07:00
jdalton
9712ac550c Set metadata for curried lazy lodash methods. 2015-03-11 23:41:41 -07:00
jdalton
5b173766c6 Add symbol tests for _.isObject and _.uniq. 2015-03-11 20:52:34 -07:00
jdalton
b535c4f321 Optimize _.reduce and _.reduceRight. 2015-03-11 11:40:51 -07:00
jdalton
56c5ebcb71 Ensure the result of _.difference is based on the values of the first param only. [#1038] 2015-03-10 21:31:46 -07:00
jdalton
028234ba86 Update guard info in _.reduce docs. [ci skip] 2015-03-10 09:21:38 -07:00
jdalton
f063b4d231 Add isIterateeCall guards to _.every and _.some. [closes #1035] 2015-03-10 09:21:01 -07:00
Teoman Soygul
508f27cc32 Fix _.property documentation typo. [ci skip] 2015-03-10 08:44:54 -07:00
jdalton
d4783170e5 Minor cleanup of setting __actions__ in _.mixin. 2015-03-09 08:33:19 -07:00
jdalton
51e459b386 Bump to v3.5.0. 2015-03-08 17:57:42 -07:00
jdalton
1253d254af Rebuild lodash and docs. 2015-03-08 17:57:22 -07:00
jdalton
5e70574396 Add parentheses and cleanup more complex code snippets. 2015-03-08 17:45:53 -07:00
jdalton
b5dce2f74b Optimize createBindWrapper, createPartialWrapper, and createHybridWrapper. 2015-03-08 01:00:04 -08:00
jdalton
6113da3e68 Remove unneeded tests. 2015-03-07 23:27:21 -08:00
jdalton
faf6406289 Ensure lazy drop when applied after filter works correctly. [closes #1026] 2015-03-07 23:20:26 -08:00
jdalton
7c443431d9 Add private guard param doc to _.sortByOrder. [ci skip] 2015-03-07 11:11:24 -08:00
jdalton
0f201e3fd8 Add more chaining tests join, replace, & split. 2015-03-07 00:30:42 -08:00
jdalton
bf96c30187 Cleanup string methods added to LodashWrapper. 2015-03-07 00:23:17 -08:00
octref
eb1b7b914a Add split and replace to LodashWrapper. [closes #1016] 2015-03-06 23:11:52 -08:00
octref
135bc2de52 Adjust _.sortByOrder doc example to better show effect. [ci skip] 2015-03-06 12:02:30 -08:00
jdalton
ab2269717d Bump to v3.4.0. 2015-03-06 00:55:11 -08:00
jdalton
b5a42cfa75 Rebuild lodash and docs. 2015-03-05 23:01:16 -08:00
jdalton
6693416d0a Tweak _.isEmpty and _.size docs. [ci skip] 2015-03-05 22:59:18 -08:00
jdalton
9cdf013933 Ensure length hit of for lazy eval is checked on initial lazy call. [closes #997] 2015-03-05 22:50:16 -08:00
jdalton
1dfaa30520 Add inRange and sortByOrder to lodash doc notes. [ci skip] 2015-03-05 08:27:51 -08:00
jdalton
d898fcee75 Simplify the root assignment. 2015-03-05 07:41:22 -08:00
jdalton
1e647a2058 Rename test module for consistency. 2015-03-04 08:43:37 -08:00
jdalton
10e379d862 Add _.sortByOrder tests. 2015-03-04 08:43:37 -08:00
jdalton
ee456493c4 Remove argument unrolling in LazyWrapper assignments. 2015-03-04 08:43:37 -08:00
jdalton
69e9c7d0be Expand _.defaults test for working with _.reduce. 2015-03-04 08:43:37 -08:00
jdalton
adce718d63 Another cleanup pass on createAssigner. 2015-03-04 08:43:37 -08:00
jdalton
3a94a65f12 Tweak root assignment to work with webpack in a web worker. [closes ##313] 2015-03-04 08:43:37 -08:00
jdalton
bbe30db1b7 Avoid test fails for npm builds. 2015-03-03 12:13:48 -08:00
jdalton
68f3c43805 Add createComposer to reduce the definition of _.flow and _.flowRight. 2015-03-03 11:40:24 -08:00
jdalton
3c99ecda60 Move more code out of the try-block in _.attempt. 2015-03-03 11:40:24 -08:00
jdalton
b1366696c4 Simplify guard check in _.sortByAll. 2015-03-03 11:40:24 -08:00
jdalton
534aeb4065 Use args alias of arguments in _.difference, _.pull, & _.memoize. 2015-03-03 11:40:24 -08:00
jdalton
cc77a36dd9 Cleanup createAssigner. 2015-03-03 11:40:17 -08:00
jdalton
5991068fdf Add more lazy chaining tests. 2015-03-03 09:22:59 -08:00
octref
913778d5ab Let createAssigner get correct customizer
When `_.defaults` is invoked using `_.reduce` / `_.reduceRight`
`createAssigner` discards the customizer, so the effect is
`_.assign` but not `_.defaults`

```
_.reduce([{ 'user': 'barney' }, { 'user': 'fred' }], _.defaults)
// -> {user: "fred"}
_.reduceRight([{ 'user': 'barney' }, { 'user': 'fred' }], _.defaults)
// -> {user: "barney"}

// Fixed
_.reduce([{ 'user': 'barney' }, { 'user': 'fred' }], _.defaults)
// -> {user: "barney"}
_.reduceRight([{ 'user': 'barney' }, { 'user': 'fred' }], _.defaults)
// -> {user: "fred"}
```
2015-03-02 21:19:11 -08:00
h7lin
9a8345d4f9 Fix doc example in _.partition. [ci skip] 2015-03-02 20:25:29 -08:00
jdalton
ba9bd3bc76 Better match words with one character. [closes #1012] 2015-03-02 20:23:14 -08:00
jdalton
aad0070b77 Narrow new LodashWrapper to dropWhile. 2015-03-02 20:23:14 -08:00
jdalton
d192e69811 Break lazy chains before or . [closes #1011] 2015-03-02 09:19:05 -08:00
jdalton
ec8d919b93 Cleanup . 2015-03-02 09:17:16 -08:00
octref
4ce4f1d758 Add _.sortByOrder. 2015-03-01 14:04:00 -08:00
jdalton
3aa40d4df6 Simplify baseFlatten and always provide a fromIndex. 2015-03-01 01:22:38 -08:00
jdalton
ec1be41b62 Correct _.flatten benchmark. 2015-03-01 01:22:38 -08:00
jdalton
c15d81545a Update chalk in travis. 2015-03-01 01:22:38 -08:00
jdalton
1af8b9d16a Cleanup docs of _.flow, _.flowRight, _.defaults, _.range, _.inRange, & _.sum. [ci skip] 2015-02-28 21:12:10 -08:00
jdalton
d860cf834d Avoid testing the minified build on PRs in travis. 2015-02-28 19:18:38 -08:00
jdalton
63d5a3acbc Optimize baseIndexOf more consistently. 2015-02-28 12:42:14 -08:00
jdalton
132aacee89 Optimize lazy evaluation for 1 param. 2015-02-28 10:11:26 -08:00
jdalton
973038da6a Optimize baseIndexOf, indexOfNaN, and baseFlatten. 2015-02-27 21:43:30 -08:00
h7lin
584da3c39b Fix doc example in _.findLastIndex. [ci skip] 2015-02-27 19:56:12 -08:00
Mohsen Azimi
73c4829255 Escape the backtick in _.escape docs. [ci skip] 2015-02-27 19:56:06 -08:00
jdalton
68942f7ec4 Move _.max & _.min to Math category & make _.sum work on collections. 2015-02-27 09:20:57 -08:00
jdalton
e914b83a1b Add gitter badge to readme. [ci skip] [closes #983] 2015-02-27 08:26:09 -08:00
jdalton
2268376360 Update tested Firefox in saucelabs.js. 2015-02-26 19:41:22 -08:00
jdalton
6bb3b9a684 Disable lazy optimizations if the iteratee has more than one param. [closes #997] 2015-02-26 19:40:15 -08:00
jdalton
9f213c119c Add more chaining tests. 2015-02-25 23:35:16 -08:00
jdalton
f081e2b799 Cleanup _.sum tests. 2015-02-25 23:03:01 -08:00
jdalton
a024152c12 Add add and sum to lodash doc notes. [ci skip] 2015-02-25 23:01:50 -08:00
jdalton
42d23dbc70 Simplify _.sum. 2015-02-25 23:01:32 -08:00
John-David Dalton
74786e8a25 Merge pull request #987 from thejameskyle/math
Add math methods.
2015-02-25 19:00:06 -08:00
James Kyle
eeb4ede60d Add _.add/_.sum methods 2015-02-25 10:37:42 -08:00
Juliano Castilho
f2eee8896c Fix code example typo in _.dropRightWhile. [ci skip] 2015-02-25 00:19:53 -08:00
jdalton
bf4a70d91c Bump to v3.3.1. 2015-02-23 23:49:50 -08:00
jdalton
a35ab3937a Rebuild lodash and docs. 2015-02-23 23:49:40 -08:00
jdalton
5ef9a4be8a Ensure isIterateeCall doesn't error if index is an object without a toString method. [closes #994] 2015-02-23 23:48:49 -08:00
jdalton
d76d7582fe Simplify lazy filter, map, & takeWhile assignment. 2015-02-23 21:25:24 -08:00
jdalton
44006142c7 Ensure wait of _.debounce and _.throttle defaults to 0. [closes #991] 2015-02-23 08:28:20 -08:00
jdalton
6840b2cfe5 Consistent use of callCount variable. 2015-02-23 08:28:20 -08:00
jdalton
5613f60403 Ensure lazy takeWhile works with reverse and last`. [closes #990] 2015-02-23 02:05:09 -08:00
jdalton
76d3959f1a Use square in more places. 2015-02-23 01:26:07 -08:00
jdalton
b681759000 Remove unnecessary excused tests. 2015-02-23 00:35:24 -08:00
jdalton
d6336c4302 Fix code styling in _.template doc example. [ci skip] 2015-02-23 00:35:24 -08:00
jdalton
35b161450a Update benchmark and underscore vendor files. 2015-02-23 00:35:24 -08:00
jdalton
861aaf06c6 Optimize _.uniq and others in Firefox. 2015-02-23 00:35:23 -08:00
jdalton
a910884e7d Fix _.indexOf doc example typo. [closes #986] [ci skip] 2015-02-23 00:35:23 -08:00
Jarrett Meyer
0e7bef9014 Fixes missing single quotes in docs. [ci skip] 2015-02-23 00:35:23 -08:00
jdalton
d942189bc6 Bump to v3.3.0. 2015-02-23 00:35:23 -08:00
jdalton
eb16051b1e Rebuild lodash and docs. 2015-02-23 00:35:11 -08:00
jdalton
7749a7e41d Add gitter webhook to travis.yml. 2015-02-20 22:35:41 -08:00
jdalton
dc4cef17d4 Update ecstatic, istanbul, & sauce-tunnel in travis.yml. 2015-02-19 09:11:48 -08:00
jdalton
89ed40e4a4 Add _.merge. tests. 2015-02-19 00:14:59 -08:00
jdalton
10ee74d872 Cleanup clone tests. 2015-02-18 23:48:32 -08:00
jdalton
474ae1e91c Allow isDeep of _.clone to work with more truthy values. 2015-02-18 23:35:43 -08:00
jdalton
0dc70ca5f3 Semicolon nits. 2015-02-18 23:35:09 -08:00
jdalton
633b1663ca Tweak iteration methods test. 2015-02-18 23:22:03 -08:00
jdalton
153fe61b4b Avoid iterating strings in _.merge. [closes #978] 2015-02-18 21:05:39 -08:00
jdalton
9734fd0353 Increase _.merge test coverage. 2015-02-18 01:05:39 -08:00
jdalton
6209c120c0 Non-nits. 2015-02-18 01:03:53 -08:00
jdalton
3516881e7a Update tested Chrome in saucelabs.js. 2015-02-18 00:46:02 -08:00
jdalton
15398555b3 Ensure isIterateeCall works with NaN values. 2015-02-18 00:33:51 -08:00
jdalton
cb132fcbf4 Add more iteration method tests. 2015-02-18 00:03:50 -08:00
jdalton
f42f46c7d6 Adjust doc examples for smaller screens. [ci skip] 2015-02-17 10:08:38 -08:00
jdalton
f1046f1cf1 Consistent use of lodash when referencing a lodash wrapper. [ci skip] 2015-02-15 23:05:30 -08:00
jdalton
4a62287139 Cleanup baseLodash description. [ci skip] 2015-02-15 23:04:50 -08:00
jdalton
69cd56357f Tweak _.propertyOf usage example. [ci skip] 2015-02-15 22:42:16 -08:00
jdalton
b66a886682 Clarify _.noop docs. [ci skip] 2015-02-15 22:41:37 -08:00
jdalton
249504b7d6 Whitespace nits in docs. [ci skip] 2015-02-15 22:40:42 -08:00
jdalton
fa0086404d Add baseLodash. 2015-02-15 21:54:12 -08:00
Milos Zivadinovic
f243ebba91 Add _.inRange. 2015-02-15 18:01:05 -08:00
Austin Pray
540afb193b Fix type in _.some doc example. [closes #969] [ci skip] 2015-02-15 15:46:43 -08:00
jdalton
8294acdf1c Tweak null check tests of _.difference, _.intersection, _.union, & _.xor. 2015-02-15 00:37:18 -08:00
jdalton
7733d02938 Remove baseSlice from _.attempt. 2015-02-15 00:22:55 -08:00
jdalton
9b6342e7fa Add baseIsFunction. 2015-02-12 23:09:49 -08:00
jdalton
22c09cb31b Bump to v3.2.0. 2015-02-12 21:24:55 -08:00
jdalton
21e79cb54a Rebuild lodash and docs. 2015-02-12 21:24:48 -08:00
jdalton
b8cc829f4a Cleanup docs. [ci skip] 2015-02-12 21:13:45 -08:00
jdalton
ace0dacf15 Make baseMatches style consistent with baseMatchesProperty. 2015-02-12 20:18:26 -08:00
Graeme
5ca13098e3 Use predicate instead of iteratee. 2015-02-12 20:18:25 -08:00
jdalton
07b13eedec Cleanup _#plant and _.spread doc examples. [ci skip] 2015-02-12 12:47:54 -08:00
jdalton
d9168ed9ec Add proper jsdoc tags to _.fill. [ci skip] 2015-02-12 12:47:54 -08:00
jdalton
fb4e2c167c Add matchesProperty to lodash doc note. [ci skip] 2015-02-12 12:47:53 -08:00
jdalton
10ee3585f6 Fix spread doc and remove unused thisArg. 2015-02-12 01:59:16 -08:00
jdalton
5d4ba820dd Add _.matchesProperty shorthand tests. 2015-02-12 01:36:08 -08:00
jdalton
a51e00e69f Add _.matchesProperty tests. 2015-02-12 01:30:52 -08:00
jdalton
4dfa963851 Document "_.matchesProperty" shorthands. [ci skip] 2015-02-12 00:27:08 -08:00
jdalton
f2d4f6ccf6 Add _.matchesProperty. 2015-02-11 22:50:39 -08:00
jdalton
182cb8ab25 Simplify lazy pluck and where. 2015-02-11 22:50:22 -08:00
jdalton
ece341d868 Update android testing in saucelabs.js. 2015-02-11 20:25:25 -08:00
jdalton
d72e8c2687 Source cleanup from eslinting. 2015-02-11 20:25:13 -08:00
jdalton
b0ff6f4c7b Remove extraneous description from createAggregator docs. [ci skip] 2015-02-11 08:30:46 -08:00
jdalton
6ec5249492 Change intuitively to implicitly. 2015-02-11 08:29:41 -08:00
jdalton
c44cd76c5a Ensure commit and reverse track __chain__` settings. [closes #958] 2015-02-11 08:29:01 -08:00
jdalton
37f711d72a Adjust dep versions to better suite their range in package.json. 2015-02-11 00:15:11 -08:00
jdalton
fcf18fb965 Remove thisArg from _.spread. [closes #957] 2015-02-11 00:15:11 -08:00
jdalton
2efd6250fb Minor commit nit in test.js. [ci skip] 2015-02-11 00:15:11 -08:00
jdalton
1b4bd8523d Add _.slice assert. 2015-02-11 00:15:11 -08:00
jdalton
60c44910df Fix lazy slice when used after filter. [closes #955] 2015-02-11 00:15:03 -08:00
jdalton
faf67fae03 Update qunit to 1.17.1. 2015-02-10 20:16:27 -08:00
jdalton
e95f547950 Add doc notes on guarded methods. [ci skip] 2015-02-10 09:44:48 -08:00
jdalton
96b663b783 Ensure lazy slice handles floating-point start and end params. 2015-02-10 00:33:10 -08:00
jdalton
ce44f7e4b0 Add lazy compact and toArray. 2015-02-10 00:08:09 -08:00
jdalton
16a9c7d492 Improve label of unstable test. 2015-02-09 08:58:08 -08:00
jdalton
fc369c3448 Add _.fill and _.slice tests for default start and end params. 2015-02-09 08:39:09 -08:00
jdalton
b1a33edf0f Cleanup io.js testing in travis.yml. 2015-02-09 01:24:40 -08:00
jdalton
3b805f1a24 Rebuild lodash. 2015-02-09 01:14:55 -08:00
jdalton
954b4d8075 Add mutation note to _.fill docs. [ci skip] 2015-02-09 00:45:38 -08:00
jdalton
d073e2a881 Add _.fill to lodash docs. [ci skip] 2015-02-09 00:45:37 -08:00
jdalton
044dd2af94 Remove unneeded jsdoc Function type tags. [ci skip] 2015-02-09 00:45:37 -08:00
jdalton
ee489fa8c0 Cleanup tests. 2015-02-09 00:45:37 -08:00
jdalton
035ed5f49b Add _.fill. 2015-02-09 00:45:37 -08:00
jdalton
7dcd690f61 Add object test for _.max and _.min being used as an iteratee for _.map. 2015-02-09 00:45:37 -08:00
jdalton
1c9290aded Add _.includes, _.indexOf, _.lastIndexOf, _.map, _.mapValues, & a few other tests. 2015-02-09 00:45:37 -08:00
jdalton
0b922b1ed1 Move _.support tests to be in alphebetic API order. 2015-02-09 00:45:37 -08:00
jdalton
34eec362e5 Add methods to lodash docs. [ci skip] 2015-02-09 00:45:37 -08:00
jdalton
b829383864 Cleanup docs for _.callback. [ci skip] 2015-02-09 00:45:36 -08:00
jdalton
3960235428 Cleanup _.spread docs & tests. 2015-02-09 00:45:36 -08:00
Nicolas Chambrier
e91a662491 Add _.spread. 2015-02-09 00:45:36 -08:00
jdalton
ba4da24984 Add tests for arguments provided to callbacks of _.takeWhile and friends when in a lazy chain sequence. [closes #944] 2015-02-09 00:45:36 -08:00
jdalton
70378432b7 Minor cleanup of istanbul command in travis.yml. 2015-02-09 00:45:36 -08:00
jdalton
6b63009b14 Expand _.takeWhile, _.takeRightWhile, _.dropWhile, & _.dropRightWhile tests. 2015-02-09 00:45:36 -08:00
jdalton
dd45fea732 Add _#commit, _#plant, & _#run. 2015-02-09 00:45:36 -08:00
jdalton
ee09425cfb Simplify travis.yml. 2015-02-09 00:45:36 -08:00
jdalton
af02a1e024 Replace some _.isFunction checks with simple typeof checks and replace some typeof checks with _.isFunction checks based on likelihood of a problem value older enviros being passed. 2015-02-07 09:45:11 -08:00
jdalton
2a86f0776c Fix travis run. 2015-02-06 23:44:14 -08:00
jdalton
c6f73d9df8 Consistent apply(undefined, ...) use. 2015-02-06 23:14:03 -08:00
jdalton
5ab79f292b Allow _.attempt to provide additional arguments to func. [closes #929] 2015-02-06 23:09:52 -08:00
jdalton
82c7a22d27 Ensure _.flow and _.flowRight return an identity function when no arguments are provided. [closes #938] 2015-02-06 22:45:58 -08:00
jdalton
35fa977981 Update to Node.js 0.12 and simplify io.js install in travis.yml. 2015-02-06 21:57:08 -08:00
jdalton
ecbc46a91d Remove unused unshift variable. 2015-02-06 21:56:37 -08:00
jdalton
d2f6416e45 Add _.runInContext usage example to _.mixin docs. [ci skip] 2015-02-05 09:47:47 -08:00
jdalton
97a885a05c Use sauce-tunnel v2.1.1 to avoid hangs when closing tunnels. 2015-02-04 22:51:25 -08:00
jdalton
aa1edd6b94 Update tested io.js version in travis.yml. 2015-02-04 21:20:11 -08:00
jdalton
083e401717 Fix param doc typos in baseIsMatch, _.chunk, & _.isMatch. [ci skip] [closes #923] 2015-02-04 21:14:42 -08:00
jdalton
bdeca2edce Update .gitignore to ignore lodash.compat.min.js. [ci skip] 2015-02-04 21:14:42 -08:00
jdalton
c84e14db46 Bump to v3.1.0. 2015-02-04 21:14:42 -08:00
jdalton
919c5bd0b3 Rebuild lodash and docs. 2015-02-04 21:14:42 -08:00
jdalton
af8a8f1e3f Add spec note to isLength and update spec link for MAX_SAFE_INTEGER. [ci skip] 2015-02-04 21:14:42 -08:00
jdalton
41d08e123f Ensure isIterateeCall works correctly with objects. [closes #917] 2015-02-04 21:14:42 -08:00
jdalton
67d9656e35 Use baseProperty instead of _.property in more places. 2015-02-04 21:14:42 -08:00
jdalton
1a58a70494 Reduce deps on matches in favor of baseMatches. 2015-02-04 21:14:42 -08:00
jdalton
a477b2efd1 Add startCase to lodash docs. [ci skip] 2015-02-04 21:14:42 -08:00
jdalton
59c4546b8c Move _.startCase definition. 2015-02-04 21:14:42 -08:00
jdalton
ed1a75ef4c Add _.trunc test for floating-point lengths. 2015-02-04 21:14:42 -08:00
jdalton
0cd942f152 Cleanup case tests. 2015-02-04 21:14:41 -08:00
jdalton
fe7f082083 Cleanup case methods. 2015-02-04 21:14:41 -08:00
James Kyle
849fd71f76 Add _.startCase. 2015-02-04 21:14:41 -08:00
jdalton
4e3a72388d Add more lazy tests. 2015-02-04 21:14:41 -08:00
jdalton
29e3d9eff5 Bump to v3.0.1. 2015-02-04 21:14:31 -08:00
jdalton
64280f4285 Rebuild lodash and docs. 2015-02-04 21:14:02 -08:00
jdalton
98c6eaac3b Remove unneeded baseToString use. 2015-02-04 21:14:02 -08:00
jdalton
22d965c66c Add _.merge test for DOMExceptions for #895. 2015-02-04 21:14:01 -08:00
jdalton
2eb932ebc1 Add _.assign and _.merge test to ensure object isn't treated as source. 2015-02-04 21:14:01 -08:00
jdalton
2ee0634db3 Should coerce float start and end params of _.slice to integers. 2015-02-04 21:14:01 -08:00
jdalton
db3b6a1252 Add _.random tests. 2015-02-04 21:14:01 -08:00
jdalton
24810aeca3 Fix DOMException in _.merge. [closes #895] 2015-02-04 21:14:01 -08:00
jdalton
c888319f22 Fix lazy reverse and rest. [closes #890] 2015-02-04 21:14:01 -08:00
jdalton
13ee78a9c9 Remove baseToString use in baseCallback. 2015-02-04 21:14:01 -08:00
jdalton
acaa07cf7c Update docs. [ci skip] 2015-02-04 21:13:26 -08:00
Bjørn Madsen
1a3c9939e8 Fix Wikipedia link for kebabCase. 2015-02-04 21:13:26 -08:00
jdalton
56afe21022 Fix doc typo in _.memoize. [ci skip] 2015-02-04 21:13:26 -08:00
jdalton
b58bfa82e6 Fix doc example for _.forEach. [ci skip] 2015-02-04 21:13:26 -08:00
jdalton
a6257b5901 Bump to v3.0.0. 2015-02-04 21:13:20 -08:00
John-David Dalton
16ad7e53ff Update docs. [ci skip] 2015-02-02 23:05:17 -08:00
jdalton
3e4e4f2664 Rebuild lodash. 2015-02-02 23:05:17 -08:00
jdalton
dc0c4fe8fb Add tests for methods that check for functions and throw. 2015-02-02 23:05:17 -08:00
jdalton
0c050bb266 Add _.uniq test for arguments provided to iteratee. 2015-02-02 23:05:16 -08:00
jdalton
47a5b227cc Ensure _.ary treats negative n values as 0. 2015-02-02 23:05:16 -08:00
jdalton
ed61d0c591 Cleanup tests. 2015-02-02 23:05:16 -08:00
jdalton
8ff856ecf8 Use https in links where supported. [ci skip] 2015-02-02 23:05:16 -08:00
jdalton
93a607bea0 Reduce test hint for stable sort to match the commented issue. 2015-02-02 23:05:16 -08:00
jdalton
7bec7ba49d Rename Lo-Dash references to lodash. [ci skip] 2015-02-02 23:05:16 -08:00
jdalton
4c8f3bd392 Update travis.yml. 2015-02-02 23:05:16 -08:00
John-David Dalton
74ba9eb159 Update tested version of Firefox in saucelabs.js. 2015-02-02 23:05:16 -08:00
jdalton
d28ca4eda7 Rename ES6 to ES in tests. 2015-02-02 23:05:16 -08:00
jdalton
9563b5a7df Change ES6 references to ES. [ci skip] 2015-02-02 23:05:16 -08:00
John-David Dalton
d3a049c6e0 Update readme.md. 2015-02-02 23:05:16 -08:00
John-David Dalton
a52a3eb42f Update tested io.js version in travis.yml. 2015-02-02 23:05:15 -08:00
John-David Dalton
c54b21a754 Cleanup contributing.md. [ci skip] 2015-02-02 23:05:15 -08:00
John-David Dalton
cc8995cd5c Remove Underscore build from readme. [ci skip] 2015-02-02 23:05:15 -08:00
John-David Dalton
2e222fbae2 Minor doc whitespace nits. [ci skip] 2015-02-02 23:05:15 -08:00
John-David Dalton
cdf3b15336 Use baseToString in more places. 2015-02-02 23:05:15 -08:00
John-David Dalton
a9a95de02d Use baseToString in _.repeat. 2015-02-02 23:05:15 -08:00
John-David Dalton
d4bcd4ab0c Rename toString helper to baseToString to avoid conflict with aliases. 2015-02-02 23:05:15 -08:00
John-David Dalton
3b2ed06864 Update bower.json and component.json. 2015-02-02 23:05:15 -08:00
John-David Dalton
ab210b3988 Use install shorthand consistently in readme. [ci skip] 2015-02-02 23:05:15 -08:00
John-David Dalton
70617be903 Use Object.create(null) in SetCache. 2015-02-02 23:05:15 -08:00
John-David Dalton
f039d5bbcb Update lodash script reference in perf/index.html. 2015-02-02 23:05:15 -08:00
John-David Dalton
e0adb3cf9a Update tested enviros. [ci skip] 2015-02-02 23:05:15 -08:00
John-David Dalton
4dd6e07b8d Change description. [ci skip] 2015-02-02 23:05:15 -08:00
John-David Dalton
d69b7951e0 Remove author & contributors notes from readme. [ci skip] 2015-02-02 23:05:15 -08:00
John-David Dalton
d915ece2e7 Use baseClone & keys instead of baseAssign. 2015-02-02 23:05:14 -08:00
John-David Dalton
f1be3df112 Rename params of arrayCopy and baseCopy. 2015-02-02 23:05:14 -08:00
John-David Dalton
29b7ca4c25 Switch condition order. 2015-02-02 23:05:14 -08:00
John-David Dalton
f478d916aa Doc cleanup. [ci skip] 2015-02-02 23:05:14 -08:00
John-David Dalton
d2e50b09db Rename toString to objToString. 2015-02-02 23:05:14 -08:00
John-David Dalton
23c2dd33f2 Remove unnecessary _.toPlainObject test. 2015-02-02 23:05:14 -08:00
John-David Dalton
ce0c3c935c Remove unnecessary phantomjs guards. 2015-02-02 23:05:14 -08:00
John-David Dalton
bdbafb7a2a Treat arguments objects like plain objects. 2015-02-02 23:05:14 -08:00
John-David Dalton
edffe2a6fc Fix tests in phantomjs. 2015-02-02 23:05:14 -08:00
John-David Dalton
cd69a53406 Guard against nullish value being passed to arrayCopy in baseMergeDeep. 2015-02-02 23:05:14 -08:00
John-David Dalton
439ffa5849 Updated tested version of io.js. 2015-02-02 23:05:14 -08:00
John-David Dalton
4518c30cbe Fix test fails. 2015-02-02 23:05:13 -08:00
John-David Dalton
6683809447 Adjust handling of typed arrays and arguments objects in baseMergeDeep. 2015-02-02 23:05:13 -08:00
John-David Dalton
cccd43a16b Add _.merge tests for arguments objectd and typed arrays. 2015-02-02 23:05:13 -08:00
John-David Dalton
91d44147bb Allow io.js to build files for tests in travis.yml. 2015-02-02 23:05:13 -08:00
John-David Dalton
777311bbf5 Update falsey arguments assert count. 2015-02-02 23:05:13 -08:00
John-David Dalton
9ded5dc78d Minor stye nit in _.isEqual test. 2015-02-02 23:05:13 -08:00
John-David Dalton
5b81c4573c Cleanup test titles. 2015-02-02 23:05:13 -08:00
John-David Dalton
32b2e9f6cf Add _.isTypedArray tests. 2015-02-02 23:05:13 -08:00
John-David Dalton
a6dba44561 Add tests for _.toPlainObject. 2015-02-02 23:05:13 -08:00
John-David Dalton
03fc317a3f Tweak _.findLastKey doc. [ci skip] 2015-02-02 23:05:13 -08:00
John-David Dalton
00a8130201 Fix typo in baseMergeDeep. 2015-02-02 23:05:13 -08:00
John-David Dalton
74fc15cccd Move isIndex into runInContext. 2015-02-02 23:05:13 -08:00
John-David Dalton
1d4d919f6d Move tag references higher in source. 2015-02-02 23:05:12 -08:00
John-David Dalton
1826cc8870 Cleanup _.isPlainObject docs. [ci skip] 2015-02-02 23:05:12 -08:00
John-David Dalton
8a6dab03c4 Tighten isIndex and isIterateeCall. 2015-02-02 23:05:12 -08:00
John-David Dalton
dffad444c3 Rearange key and mergeFunc param. 2015-02-02 23:05:12 -08:00
John-David Dalton
d6f1b164f7 Optimize object path in baseMergeDeep. 2015-02-02 23:05:12 -08:00
John-David Dalton
4011f054d6 Use isLength in baseIsEqualDeep. 2015-02-02 23:05:12 -08:00
John-David Dalton
14e9978359 Correct _.toPlainObject docs & add examples. [ci skip] 2015-02-02 23:05:12 -08:00
John-David Dalton
98535638a2 Update doc examples of _.isPlainObject, _.toArray, _.forIn, _.forInRight, _.keys, _.keysIn, _.values, & _.valuesIn. [ci skip] 2015-02-02 23:05:12 -08:00
John-David Dalton
8861c04e77 Update lodash docs. [ci skip] 2015-02-02 23:05:12 -08:00
John-David Dalton
42b6f320d8 Fix _.isTypedArray docs. [ci skip] 2015-02-02 23:05:12 -08:00
John-David Dalton
31b4a9197f Simplify arrayToObject. 2015-02-02 23:05:12 -08:00
John-David Dalton
f06c9d5b9b Move _.toArray and _.toPlainObject to the Lang category. 2015-02-02 23:05:12 -08:00
John-David Dalton
130fafd7c2 Add baseMergeDeep. 2015-02-02 23:05:11 -08:00
John-David Dalton
e76f79cd56 Doc tweaks to baseIsEqualDeep, equalArrays, & equalObjects. 2015-02-02 23:05:11 -08:00
John-David Dalton
ba21718cb9 Whitespace nits and cleanup. 2015-02-02 23:05:11 -08:00
John-David Dalton
6dfb2997cb Cleanup baseMerge. 2015-02-02 23:05:11 -08:00
John-David Dalton
ae9ac3b439 Add _.toPlainObject. 2015-02-02 23:05:11 -08:00
John-David Dalton
d70b5a9886 Add baseCopy. 2015-02-02 23:05:11 -08:00
John-David Dalton
fb2a20201c Remove isArrayLike helper. 2015-02-02 23:05:11 -08:00
John-David Dalton
d1761558b4 Rename argsToObject to arrayToObject and cleanup arrayCopy. 2015-02-02 23:05:11 -08:00
John-David Dalton
5bd0a53edd Doc cleanup. [ci skip] 2015-02-02 23:05:11 -08:00
John-David Dalton
53ea73238a Cleanup baseIsEqualDeep. 2015-02-02 23:05:11 -08:00
John-David Dalton
28560cb887 Add _.isTypedArray. 2015-02-02 23:05:11 -08:00
John-David Dalton
0bcd12aa4e Add iojs to travis.yml. 2015-02-02 23:05:11 -08:00
John-David Dalton
a7dfdebed6 Rebuild lodash. 2015-02-02 23:05:10 -08:00
John-David Dalton
aca07530aa Ensure _.sortByAll iteratee call guard works when _.partialRight is applied. 2015-02-02 23:05:10 -08:00
John-David Dalton
c0110c6bab Reduce doc example for _.assign and _.defaults. [ci skip] 2015-02-02 23:05:10 -08:00
John-David Dalton
0ef9e0fa75 Reduce keywords in component.json. [ci skip] 2015-02-02 23:05:10 -08:00
John-David Dalton
ba0751917d Update urls in contributing.md. [ci skip] 2015-02-02 23:05:10 -08:00
John-David Dalton
e3c1bfbcba Update build detection in saucelabs.js. 2015-02-02 23:05:10 -08:00
John-David Dalton
5aaa0a7b5f Update isModularize and isStrict detection. 2015-02-02 23:05:10 -08:00
John-David Dalton
2ca75970c0 Don't require building for run-test.sh. 2015-02-02 23:05:10 -08:00
John-David Dalton
d9c92288be Update contributing.md. [ci skip] 2015-02-02 23:05:10 -08:00
jdalton
e4f231502a Move _lodash.js to lodash.js. 2015-02-02 23:05:10 -08:00
jdalton
04a61e6fd6 Move lodash.js to lodash.src.js. 2015-02-02 23:04:56 -08:00
jdalton
dc5c7d2ee8 Move lodash.src.js to _lodash.js. 2015-02-02 23:02:47 -08:00
John-David Dalton
87ac6812a3 Update repo structure. 2015-01-10 11:08:20 -08:00
John-David Dalton
8d4d2d62c1 Remove clonePassthru. 2015-01-10 11:08:08 -08:00
John-David Dalton
68fc036b7a Fix test fail in non-browsers. 2015-01-09 19:11:45 -08:00
John-David Dalton
f053c4d532 Update lodash-compat-dev path. 2015-01-09 09:43:54 -08:00
John-David Dalton
06e4a2dbde Add initCloneByTag and adjust how unclonables are handled. 2015-01-09 09:43:54 -08:00
John-David Dalton
9e0ecab0c1 Move like functions closer together. 2015-01-08 00:11:33 -08:00
John-David Dalton
996e61a383 Make bower.json main reference lodash.compat.js. [ci skip] 2015-01-08 00:10:47 -08:00
John-David Dalton
309aa4a3f3 Minor perf/index.html tweak. 2015-01-07 21:16:49 -08:00
John-David Dalton
0906fbf995 Correct benchmark titles for _.includes. 2015-01-07 21:16:49 -08:00
John-David Dalton
2348ec40ee Add arrayCopy and use baseSlice in more functions. 2015-01-07 21:16:41 -08:00
John-David Dalton
c6852f4b96 Remove index.js. 2015-01-07 16:49:57 -08:00
John-David Dalton
8b01139738 Change project structure. 2015-01-07 09:33:46 -08:00
John-David Dalton
5ea3717152 Rebuild dist. 2015-01-06 09:06:41 -08:00
John-David Dalton
d01a673adb Update copyright year. [ci skip] 2015-01-06 09:03:07 -08:00
John-David Dalton
571ec44c33 Cleanup tests. 2015-01-05 23:04:20 -08:00
John-David Dalton
e5a3c12026 Add _.invoke test for missing properties. 2015-01-05 23:04:20 -08:00
John-David Dalton
bb2f1aa4be Expand _.runInContext doc examples. 2015-01-05 23:04:20 -08:00
John-David Dalton
59070bcd5b Simplify falsey string checks. 2015-01-05 23:04:20 -08:00
John-David Dalton
2f52dd88a9 Fix doc typo in arrayEvery and baseEvery. [ci skip] 2015-01-05 23:04:20 -08:00
John-David Dalton
79fec3ac40 Cleanup doc "returns" for _.assign, _.size, _.defaults, & _.merge. [ci skip] 2015-01-05 23:04:19 -08:00
John-David Dalton
6247bbf4b1 Cleanup customizer callback & callback shorthand docs. [ci skip] 2015-01-05 23:04:19 -08:00
John-David Dalton
11de155432 Chain methods by reference instead of property. 2015-01-04 16:55:09 -06:00
John-David Dalton
bfe833c132 Tweak _.drop, _.dropRight, _.take, & _.takeRight doc examples. [ci skip] 2015-01-04 16:55:09 -06:00
John-David Dalton
1fd1da72f4 Cleanup bower.json. 2015-01-04 16:55:09 -06:00
John-David Dalton
f4c994d182 Simplify package.json for non-npm use. 2015-01-04 16:55:09 -06:00
John-David Dalton
d81a6e6e89 Add more tested strings to the case methods. 2015-01-03 01:22:54 -06:00
John-David Dalton
fab5daacf8 Tweak string method doc examples. [ci skip] 2015-01-03 01:22:54 -06:00
John-David Dalton
b714c6b746 Update _.template sourceURLs to display better in Firefox. 2015-01-03 01:22:53 -06:00
John-David Dalton
af1355a94e Clarify customizer args in docs for _.clone, _.cloneDeep, _.isEqual, & _.isMatch. [ci skip] 2015-01-03 01:22:53 -06:00
John-David Dalton
ebc08fd6f5 Add _.parseInt used with _.map doc example. [ci skip] 2015-01-03 01:22:53 -06:00
John-David Dalton
30b1445195 Add ES6 notes to _.keys, _.keysIn, _.values, & _.valuesIn. [ci skip] 2015-01-03 01:22:43 -06:00
John-David Dalton
0d1c7a1414 Add _.memoize.Cache doc example. [ci skip] 2015-01-02 16:50:26 -06:00
John-David Dalton
7e8e7757f4 Update features and support sections of readme. [ci skip] 2015-01-02 16:50:26 -06:00
John-David Dalton
42eb180b6c Avoid unnecessary coercion of radix in _.parseInt. 2015-01-02 10:58:17 -06:00
John-David Dalton
dff35bc9b7 Cleanup _.mixin. 2015-01-02 10:58:17 -06:00
John-David Dalton
6a87ed2853 Tweak options detection in _.trunc. 2015-01-02 10:58:16 -06:00
John-David Dalton
1266d49c65 Minor tweak to condition in _.zipObject. 2015-01-02 10:58:16 -06:00
John-David Dalton
c8b130b232 Cleanup createWrapper. 2015-01-01 19:46:59 -06:00
John-David Dalton
67a6b0f383 Cleanup .gitignore. [ci skip] 2015-01-01 19:46:59 -06:00
John-David Dalton
e7c176f904 Fix typo in toString docs. [ci skip] 2014-12-31 18:35:14 -06:00
John-David Dalton
4cc8363b5f Replace [[Class]] with tag references in tests. 2014-12-31 11:34:44 -06:00
John-David Dalton
93193d7e76 Comment cleanup. [ci skip] 2014-12-31 11:34:13 -06:00
John-David Dalton
d68321ac27 Change [[Class]] references to ES6 tag and add toString helper. 2014-12-31 11:13:33 -06:00
John-David Dalton
b2e8359d31 Add more isLength tests. 2014-12-31 09:11:12 -06:00
John-David Dalton
a302ca3d6c Use a nullish check in _.startsWith instead of typeof. 2014-12-31 00:43:18 -06:00
John-David Dalton
670358f235 Make isLength return false for floats. 2014-12-31 00:42:45 -06:00
John-David Dalton
10e329f762 Add _.sortedIndex benchmark. [ci skip] 2014-12-30 21:16:07 -06:00
John-David Dalton
6a3c1bdb99 Fix strict mode test fail for es6 builds. 2014-12-30 21:06:35 -06:00
John-David Dalton
90923c965b Various doc cleanup. [ci skip] 2014-12-30 18:39:25 -06:00
John-David Dalton
d555241d03 Cleanup createExtremum. 2014-12-30 18:37:45 -06:00
John-David Dalton
3d2b6b7620 Rename baseBinaryIndex to binaryIndexBy. 2014-12-30 18:21:44 -06:00
John-David Dalton
0b943b418c Add createExtremum and extremumBy to reduce _.max and _.min. 2014-12-30 18:20:22 -06:00
John-David Dalton
db12aaad11 Adjust getCallback use in _.max, _.min, _.sortedIndex, & _.sortedLastIndex. 2014-12-30 11:03:47 -06:00
John-David Dalton
860aa65d10 Merge pull request #842 from bezoerb/debounce-doc-fix
Fixed documentation for debounce. [ci skip]
2014-12-29 08:24:56 -06:00
John-David Dalton
2e5e279a14 Minor _.where test cleanup. 2014-12-29 01:33:00 -06:00
John-David Dalton
df87b9ff56 Add _.transform tests. 2014-12-29 01:33:00 -06:00
John-David Dalton
6c06ff3ca0 Fix skipTest typos. 2014-12-29 01:32:48 -06:00
John-David Dalton
40d6e9c841 Add tests for custom _.callback implementations. 2014-12-28 17:23:27 -06:00
John-David Dalton
6a4f06f325 Make _.omit and _.pick use bindCallback. 2014-12-28 17:21:32 -06:00
John-David Dalton
f7d306cb02 Let the nullish check be handled by baseCallback. 2014-12-28 17:21:13 -06:00
Ben Zörb
34bc182c22 Fixed documentation for debounce 2014-12-28 22:42:28 +01:00
John-David Dalton
3f8dd7e658 Add test for customizer results of NaN. 2014-12-27 23:09:56 -06:00
John-David Dalton
46341fea96 Ensure _.merge handles source arrays with undefined values correctly with a customizer. 2014-12-27 22:11:47 -06:00
John-David Dalton
4319cdbba1 Fix failing Backbone test and ensure _.assign works properly with a customizer that returns undefined. 2014-12-27 21:14:12 -06:00
John-David Dalton
3453236830 Adjust how tests are skipped in loops so values may be added without adjusting the skip counts. 2014-12-27 20:27:17 -06:00
John-David Dalton
fa2058ec77 Ensure _.assign and _.merge don't assign the customizer result if it is the same as the destination value. 2014-12-27 19:42:10 -06:00
John-David Dalton
7f823fe2a8 Minor comment format nit. [ci skip] 2014-12-27 00:39:39 -06:00
John-David Dalton
58e14705b5 Rebuild dist. 2014-12-26 22:17:59 -06:00
John-David Dalton
99b7613206 Clarify _.isEmpty doc. [ci skip] 2014-12-26 22:15:57 -06:00
John-David Dalton
545e614c04 Cleanup isBindable. 2014-12-26 21:39:37 -06:00
John-David Dalton
5ea04a388d Change setCallbackData to isBindable and use bindCallback more. 2014-12-26 21:39:37 -06:00
John-David Dalton
8922372f4b Make _.unzip use baseProperty. 2014-12-26 21:39:37 -06:00
John-David Dalton
ceaa2c1619 Add bindCallback and setCallbackData. 2014-12-26 21:39:36 -06:00
John-David Dalton
4e73daab79 Add getLength, baseProperty, and baseMatches. 2014-12-26 21:39:36 -06:00
John-David Dalton
5b29d987c8 Use arrayMax and arrayMap instead of _.max and _.pluck in _.unzip. 2014-12-23 18:25:26 -06:00
John-David Dalton
1cd53c051d Update tested version of RingoJS. 2014-12-23 17:44:53 -06:00
John-David Dalton
5460d0030f Remove php from .editorconfig. [ci skip] 2014-12-23 17:44:53 -06:00
John-David Dalton
d14a0ce592 Use isLength in _.keys, _.keysIn, and shimKeys. 2014-12-22 12:26:16 -06:00
Benjamin Tan
a4000a3286 README.md: Update links to npm and minor cleanup. [ci skip] 2014-12-22 11:46:03 -06:00
Benjamin Tan
85fd650f5c More comment updates
[ci skip]
2014-12-22 11:46:03 -06:00
John-David Dalton
b19033a375 Add _.runInContext test for _.uniqueId counter. 2014-12-22 11:46:03 -06:00
John-David Dalton
33e19ce9f6 Reduce deps of _.template. 2014-12-21 23:17:34 -06:00
John-David Dalton
d21218fd57 Make use of changed baseValues signature. 2014-12-21 23:17:34 -06:00
John-David Dalton
9f2279c675 Make baseValues accept props instead of a keysFunc. 2014-12-21 23:17:34 -06:00
John-David Dalton
06bfbfaff4 Rename isWhitespace to isSpace. 2014-12-21 23:17:34 -06:00
John-David Dalton
562834e0d0 Use https for Benjamin's site url. [ci skip] 2014-12-21 23:17:34 -06:00
John-David Dalton
bdf2285f14 Remove Object.create use. 2014-12-21 21:31:56 -06:00
Benjamin Tan
1780682a8d Minor comment updates
[ci skip]
2014-12-21 21:03:55 -06:00
John-David Dalton
9b48bd27dd Ajust tests for npm build modifications. 2014-12-21 21:03:55 -06:00
John-David Dalton
0b1e2a6107 Add test for _.noConflict. 2014-12-21 21:03:55 -06:00
John-David Dalton
c78edf3fff Remove "always" from test titles. 2014-12-21 21:03:55 -06:00
John-David Dalton
6fcd99c6da Adjust test for builds without noConflict. 2014-12-21 21:03:55 -06:00
John-David Dalton
b42f3a5400 Ensure _.isMatch handle customizer functions correctly. 2014-12-20 20:00:58 -06:00
John-David Dalton
bb543920a6 Update Underscore version in LICENSE.txt. [ci skip] 2014-12-20 20:00:58 -06:00
John-David Dalton
0845758023 Add isMatch to lodash doc. [ci skip] 2014-12-20 17:42:45 -06:00
John-David Dalton
816f81260a Tweak _.matches docs. [ci skip] 2014-12-20 16:59:50 -06:00
John-David Dalton
a9583f4440 Cleanup tests. 2014-12-20 16:56:43 -06:00
John-David Dalton
4e52c9cc65 Add _.isMatch tests. 2014-12-20 16:56:43 -06:00
John-David Dalton
8299dded0b Remove default false from param docs. [ci skip] 2014-12-20 16:56:42 -06:00
John-David Dalton
5d83cafc50 Add baseIsMatch and _.isMatch. 2014-12-20 16:56:42 -06:00
John-David Dalton
9819e60aae Update Chrome extension doc link. [ci skip] 2014-12-20 16:56:42 -06:00
John-David Dalton
1182eb4a9f Remove unneeded partial use to reduce deps. 2014-12-20 16:56:42 -06:00
John-David Dalton
48a0986c14 Move idCounter into runInContext. 2014-12-20 16:56:42 -06:00
John-David Dalton
6c2f7046d1 Consolidate sortedIndex method tests and add one for array of undefined. 2014-12-20 16:56:42 -06:00
John-David Dalton
9735bffae5 Cleanup length checks. 2014-12-20 16:56:42 -06:00
John-David Dalton
56a11910db Remove _.identity from binaryIndex. 2014-12-17 23:57:06 -08:00
John-David Dalton
70b00dc4e3 Cleanup doc formatting. [ci skip] 2014-12-17 23:39:51 -08:00
John-David Dalton
56c1bf01a4 Ensure trim methods and _.words work as an iteratee for _.map with string objects. 2014-12-17 20:35:54 -08:00
John-David Dalton
022b295aaa Make _.indexOf and _.lastIndexOf used binaryIndex instead of _.sortedIndex and _.sortedLastIndex. 2014-12-17 20:35:54 -08:00
John-David Dalton
fd977895ab Tweak docs for _.after. [ci skip] 2014-12-17 20:35:54 -08:00
John-David Dalton
ad1f3ddbad Update Chrome and Firefox versions tested by Sauce. 2014-12-17 20:35:53 -08:00
John-David Dalton
c8b159e38c Reorg method categories. 2014-12-17 00:42:16 -08:00
John-David Dalton
7405e3c12a Simplify methods like _.defer and _.once. 2014-12-15 19:28:10 -08:00
John-David Dalton
1b8ca164c9 Increase code coverage. 2014-12-15 17:42:55 -08:00
John-David Dalton
74cdaa9fcb Clarify _.pick and _.omit docs. [ci skip] [closes #826] 2014-12-15 17:42:55 -08:00
John-David Dalton
0ba331485a Cleanup _.isEqual benchmarks. 2014-12-15 17:42:54 -08:00
John-David Dalton
f5b3c0affc Fix QUnit hidepass display. 2014-12-15 17:42:54 -08:00
John-David Dalton
316ae0c785 Update qunit-extras and backbone test to work with QUnit 1.16.0. 2014-12-15 17:42:54 -08:00
John-David Dalton
c2d2fa2579 Add more large array tests for sortedIndex methods. 2014-12-15 17:42:54 -08:00
John-David Dalton
d683eb2dd1 Reorg data merged by mergeData and remove dead code. 2014-12-14 19:30:53 -08:00
John-David Dalton
470d35e96c Simplify equalObjects. 2014-12-14 19:30:53 -08:00
John-David Dalton
7464d82243 Fix test fails in old IE. 2014-12-14 13:03:56 -08:00
John-David Dalton
c61fed32db Fix failing Rhino and Ringo tests. 2014-12-14 11:03:29 -08:00
John-David Dalton
c4cdec5531 Fix circular dep reference of baseIsEqual. 2014-12-14 10:40:10 -08:00
John-David Dalton
3ad9d38063 Add argsToObject, baseIsEqualDeep, equalArrays, equalByClass, and equalObjects helpers. 2014-12-14 10:31:48 -08:00
John-David Dalton
f8b95abf0c Add @d10 to the contributors list. 2014-12-13 23:33:06 -08:00
John-David Dalton
579794666a Update QUnit to 1.16.0. 2014-12-13 23:32:58 -08:00
John-David Dalton
2ef25b6338 Cleanup baseBinaryIndex and _.pull. [ci skip] 2014-12-12 22:49:30 -08:00
John-David Dalton
faddd94518 Add more large array tests for sortedIndex methods. 2014-12-11 09:03:24 -08:00
John-David Dalton
cd5f9b8bd4 Update _.result to execute default values if they're functions. 2014-12-11 07:05:09 -08:00
John-David Dalton
94fd20e864 Minor lodash doc nit. [ci skip] 2014-12-11 07:05:09 -08:00
John-David Dalton
3558eef66b Cleanup tests. 2014-12-11 07:05:03 -08:00
John-David Dalton
ee66e2154d Allow sourceURL option of _.template to be falsey. 2014-12-10 23:10:24 -08:00
John-David Dalton
5500a86f0b Add _.pluck test for undefined properties. 2014-12-09 23:39:08 -08:00
John-David Dalton
9b1c1774cd Expand _.assign doc example. [closes #819] [ci skip] 2014-12-09 23:33:41 -08:00
John-David Dalton
a8e31469c5 Optimize baseIsEqual for arrays. 2014-12-09 23:33:33 -08:00
John-David Dalton
b70bafaf51 Rename baseSortedIndex and edgeSortedIndex to binaryIndex and baseBinaryIndex respectively. 2014-12-09 21:32:17 -08:00
John-David Dalton
d393349b4d Add _.invoke tests. 2014-12-09 09:19:41 -08:00
John-David Dalton
0904724694 Tweak _.includes test. 2014-12-09 08:56:13 -08:00
John-David Dalton
eff4825000 Optimize _.escape, _.escapeRegExp, and _.unescape. 2014-12-09 08:55:48 -08:00
John-David Dalton
091c00229a Add edgeSortedIndex. 2014-12-09 08:34:13 -08:00
John-David Dalton
126f0d6036 Add more chaining docs. [ci skip] 2014-12-07 22:45:11 -08:00
John-David Dalton
f99bc6d8f9 Remove doc note for deep defaults. [ci skip] 2014-12-07 22:44:48 -08:00
John-David Dalton
3da0117838 Rebuild dist. 2014-12-07 09:31:47 -08:00
John-David Dalton
3d8cf6a90b Update vendors. 2014-12-07 00:00:12 -08:00
John-David Dalton
ac44663f04 Update lodash urls in source to use https. [ci skip] 2014-12-06 23:50:32 -08:00
John-David Dalton
57113b21ed Update readme with new entries and examples. [ci skip] 2014-12-06 15:09:32 -08:00
John-David Dalton
57d5ace61c Add _.ary tests. 2014-12-06 15:06:03 -08:00
John-David Dalton
f4da80e7c6 No need to assign the rusult of mergeData. 2014-12-06 14:40:47 -08:00
John-David Dalton
df3ca5c7c8 Fix _.ary unit test fail in old IE. 2014-12-06 14:36:23 -08:00
John-David Dalton
4b676df37f Move merge logic to mergeData. 2014-12-06 14:23:49 -08:00
John-David Dalton
5dc04266ea Update chaining docs. [ci skip] 2014-12-06 13:23:39 -08:00
John-David Dalton
dbcfe3f5d2 Add internal isObjectLike. 2014-12-06 13:12:03 -08:00
John-David Dalton
fdbec5b0d2 Allow metadata to be used for curried functions that have _.ary and or _.rearg applied. 2014-12-06 10:48:48 -08:00
John-David Dalton
3ea129b4f8 Add icon field to package.json and update Mathias' website url. 2014-12-05 00:15:18 -08:00
John-David Dalton
48a7e40520 Add _.ary. [closes #814] 2014-12-05 00:13:30 -08:00
John-David Dalton
08b956cf88 Adust code example in readme. [ci skip] [closes #811] 2014-12-02 23:43:28 -08:00
John-David Dalton
93b1e1f5ac Add placeholder docs. [ci skip] 2014-12-02 23:41:41 -08:00
John-David Dalton
bdecf6baf5 Cleanup test titles. 2014-12-01 22:21:47 -08:00
John-David Dalton
4528311d77 Add _.create and _.includes tests. 2014-12-01 22:20:41 -08:00
John-David Dalton
0bc1761dae Update ecstatic in travis.yml. 2014-12-01 01:09:04 -08:00
John-David Dalton
f690b0edf6 Update dev deps. 2014-11-30 22:20:29 -08:00
John-David Dalton
10851772af Fix paths in test.js. 2014-11-30 19:45:35 -08:00
John-David Dalton
66e7b28195 Use _.include instead of _.includes in perf.js for Underscore compat. 2014-11-30 19:42:23 -08:00
John-David Dalton
76021fb582 Move some vendors to devDependencies. 2014-11-30 19:41:52 -08:00
John-David Dalton
db50adbd9f Cleanup and add "Mobile" note to Safari 8 JIT bug test. [ci skip] 2014-11-29 10:08:53 -08:00
John-David Dalton
5c7cc146a1 Rebuild dist. 2014-11-28 15:43:43 -08:00
John-David Dalton
fa3b384c6f Add MapCache tests. 2014-11-28 15:38:54 -08:00
John-David Dalton
3f9a878b03 Correct name jsdoc entries. [ci skip] 2014-11-28 14:23:56 -08:00
John-David Dalton
ab3b972185 Add mapDelete. 2014-11-28 14:00:42 -08:00
John-David Dalton
fb9118a044 Ensure objects work in a lazy chain sequence. [closes #796] 2014-11-28 14:00:41 -08:00
Evgeny Boxer
5cce5b6707 Add a spec to catch a Safari JIT bug. [closes #798] 2014-11-28 14:00:41 -08:00
John-David Dalton
3256c9b3f5 Add _.parseInt test for its bizarro form. 2014-11-28 14:00:41 -08:00
John-David Dalton
8b43b2b69d Make more methods use isIterateeCall. 2014-11-27 00:22:17 -08:00
John-David Dalton
02a862684d Rename _.sortByMultiple to _.sortByAll. 2014-11-25 00:36:27 -08:00
John-David Dalton
c15f5b5106 Cleanup tests. 2014-11-25 00:35:33 -08:00
John-David Dalton
0f06d51065 Add more "hot" method tests. 2014-11-24 23:57:35 -08:00
John-David Dalton
8abfa419e8 Use _.includes instead of _.contains in saucelabs.js. 2014-11-24 23:57:35 -08:00
John-David Dalton
c3c90ab78b Fix typo in saucelabs.js. 2014-11-24 23:57:35 -08:00
John-David Dalton
666be21f59 Update vendors. 2014-11-24 23:57:34 -08:00
John-David Dalton
0fe8197100 Add _.sortByMultiple. 2014-11-23 23:26:11 -08:00
John-David Dalton
d8a7a7792a Comment cleanup. [ci skip] 2014-11-23 23:25:34 -08:00
John-David Dalton
82b9a0c949 Rename _.contains to _.includes. 2014-11-23 18:38:32 -08:00
John-David Dalton
a3083d2990 Add V8 bug note to setData. 2014-11-23 15:36:10 -08:00
John-David Dalton
3c62914304 Cleanup createWrapper and mergeData. 2014-11-23 15:35:49 -08:00
John-David Dalton
a094768469 Move sourceURL to the beginning of the function body to avoid errors in narwhal. 2014-11-23 14:53:57 -08:00
John-David Dalton
3965f063d3 Rename wrapper vars to wrapped. 2014-11-22 14:34:44 -08:00
John-David Dalton
2b7c295bf1 Use slice() instead of map() in tests. 2014-11-22 14:31:52 -08:00
John-David Dalton
2fd297c1e1 Ensure reverse returns a LodashWrapper instance when chaining. 2014-11-22 14:31:32 -08:00
John-David Dalton
263c04aeb2 Merge pull request #793 from FilipZawada/reverse
Fix broken lazy reverse.
2014-11-22 13:10:50 -08:00
Filip Zawada
8f2b5e195e Fix broken lazy reverse 2014-11-22 17:27:46 +01:00
John-David Dalton
7e3dd2b8cc Cleanup previous commit. 2014-11-22 00:09:01 -08:00
John-David Dalton
49c027537e Merge pull request #790 from FilipZawada/lazy-first-last
Fix non-lazy calls not executed before `first` & `last`.
2014-11-21 14:02:42 -08:00
Filip Zawada
a1a6095295 Fix non-lazy methods not executed when used with lazy .first() or .last() 2014-11-21 22:45:04 +01:00
John-David Dalton
5f7dcc9b78 Add lazy _.compact test and cleanup previous fix. 2014-11-21 01:33:38 -08:00
John-David Dalton
1705bf4f3c Rename shadowedProps to shadowProps. 2014-11-21 00:39:59 -08:00
Filip Zawada
8612946bf5 Fix lazy methods to execute non-lazy methods performed in between. 2014-11-20 21:05:53 -08:00
John-David Dalton
7cf40576dd Uncomment Android now that Sauce has fixed their issue. 2014-11-20 21:04:03 -08:00
John-David Dalton
239f35d830 Add mergeData helper. 2014-11-20 21:03:52 -08:00
John-David Dalton
05ff42b767 Use collection more in place of "the collection" in docs. [ci skip] 2014-11-18 06:11:40 +01:00
John-David Dalton
7bab4817f2 Tweak lazy _.pluck and _.where methods. 2014-11-17 07:17:13 +01:00
John-David Dalton
0d87b7d720 More comment cleanup. [ci skip] 2014-11-16 08:45:36 +01:00
John-David Dalton
6b72adbeee Don't use metadata for rearg'ed functions if previously partially applied. 2014-11-15 23:57:56 +01:00
John-David Dalton
db97ae46e5 Cleanup lazy _.pluck and _.where. 2014-11-15 23:52:50 +01:00
John-David Dalton
fc6c084693 Simulate Safari 8's typed array constructor issue better. 2014-11-14 19:19:28 -08:00
John-David Dalton
9e01cc5705 Clarify _.isFunction fallback note. [ci skip] 2014-11-14 19:16:14 -08:00
John-David Dalton
f9ce45c058 Avoid errors in modularized build runs. 2014-11-14 11:52:18 -08:00
John-David Dalton
056ff4b6ea Tweak _.isFunction fallback check. 2014-11-14 11:35:23 -08:00
John-David Dalton
52653f73b9 Fix failing phantomjs test. 2014-11-14 09:19:57 -08:00
Filip Zawada
a06207b814 Add lazy _.pluck and _.where. [closes #776] 2014-11-14 07:36:11 -08:00
Benjamin Tan
3b3ef411a4 Minor cleanup in _.invoke, _.sortBy, and lazy wrapper for _.filter. 2014-11-14 07:34:19 -08:00
John-David Dalton
6418f78fdb Add a test for _.rearg used on already rearged functions. 2014-11-13 23:12:57 -08:00
John-David Dalton
5d4187bf03 Add _.isFunction test for its fallback. 2014-11-13 23:12:27 -08:00
John-David Dalton
cfffad73eb Make cloneBuffer use _.constant instead of _.identity. 2014-11-13 23:10:27 -08:00
John-David Dalton
ef7db87b82 Capitalize and punctuate comments. [ci skip] 2014-11-13 00:46:03 -08:00
John-David Dalton
212eea9cf5 Avoid JIT bug in Safari 8. 2014-11-12 21:56:44 -08:00
John-David Dalton
da792cc272 Cleanup baseDifference. 2014-11-12 21:56:26 -08:00
John-David Dalton
2ae2142b35 Rebuild dist. 2014-11-12 00:00:10 -08:00
John-David Dalton
a00f5f308a Rename MemCache to MapCache. 2014-11-11 23:12:53 -08:00
John-David Dalton
81cfde12f3 Remove Android 4.0 from Sauce until their issue is resolved. 2014-11-11 18:16:17 -08:00
John-David Dalton
1a53d38dae Fix failing tests in Node. 2014-11-11 01:36:39 -08:00
John-David Dalton
b834fdbc5e Reorganize wrappers, adding SetCache as a hybrid cache combining ES6 Set and object lookups, 2014-11-11 01:13:15 -08:00
John-David Dalton
1cb2db03ed Add isIndex helper. 2014-11-10 14:24:47 -08:00
John-David Dalton
57bca50ed0 Fix _.template benchmarks. 2014-11-09 22:48:23 -08:00
John-David Dalton
94386583e2 Remove less useful benchmarks from perf.js. 2014-11-09 22:48:09 -08:00
John-David Dalton
b1ab63d549 Use available value var in _.difference. 2014-11-09 22:45:47 -08:00
John-David Dalton
ad56bdd354 Move isArray check higher up in lodash function. 2014-11-09 22:43:50 -08:00
John-David Dalton
65e30c13e2 Clarify comments on _.support.spliceObjects and _.isFunction. [ci skip] 2014-11-09 09:52:24 -08:00
John-David Dalton
0c54fac651 Whitespace nit in _.propertyOf doc example. [ci skip] 2014-11-09 01:38:43 -08:00
John-David Dalton
9660c22a9f Make unicode chars lower case. 2014-11-09 01:34:24 -08:00
John-David Dalton
31e8df4a59 Tweak _.parseInt doc note. [ci skip] 2014-11-09 00:07:11 -08:00
John-David Dalton
8e6ecaf8d4 Remove period from comment to conform to style. [ci skip] 2014-11-09 00:05:40 -08:00
John-David Dalton
4d69a0ce29 Add comments to _.isFunction. [ci skip] 2014-11-09 00:02:00 -08:00
John-David Dalton
1b842f86ca Optimize _.chunk. 2014-11-08 19:34:37 -08:00
John-David Dalton
a2330fb630 Fix test fails on old Android & Safari. 2014-11-08 09:28:47 -08:00
John-David Dalton
30f0232d71 Tweak docs for _.property and _.propertyOf. [ci skip] 2014-11-08 08:54:43 -08:00
John-David Dalton
404e658a5d Fix _.isFunction and _.isNative for Safari 8. 2014-11-08 02:47:17 -08:00
John-David Dalton
f5682397c2 Remove Rhino guards from curry tests and add a partial test. 2014-11-07 22:57:16 -08:00
John-David Dalton
4896810258 Add Safari 8 to Sauce tests. 2014-11-07 21:50:30 -08:00
John-David Dalton
dd0de8b6e1 Doc cleanup. [ci skip]
Conflicts:
	lodash.js
2014-11-07 21:44:56 -08:00
John-David Dalton
2a9f9f7ebd Don't set data on functions created by a curried function. 2014-11-07 21:44:56 -08:00
John-David Dalton
2f3afd3637 Add _.propertyOf. 2014-11-07 21:44:56 -08:00
John-David Dalton
f0a2c88fdc Add more _.identity for nullish args tests. 2014-11-07 21:44:56 -08:00
John-David Dalton
c3a5b12cd3 Make _.wrap use _.identity when wrapper is nullish. [closes #767] 2014-11-07 21:44:56 -08:00
John-David Dalton
d7b0e66270 Comment out Android 4.3 test in Sauce until they resolve their issue. 2014-11-07 21:44:17 -08:00
John-David Dalton
1871ed5441 Avoid modularized test fails for Rhino. 2014-11-06 22:23:54 -08:00
John-David Dalton
5ea6948127 Add _.rearg tests. 2014-11-06 20:46:27 -08:00
John-David Dalton
9bd77d36f1 Add _.pullAt tests. 2014-11-06 20:46:03 -08:00
John-David Dalton
3ffa6cd1ac Add test for _.at and non-index keys on array-like values. 2014-11-06 20:45:18 -08:00
John-David Dalton
ad87df3168 Make shimKeys style more consistent with keysIn. 2014-11-06 20:44:40 -08:00
John-David Dalton
8bd0d32fd2 Remove isArrayLike and isPlainObject guards from baseMerge. 2014-11-06 20:44:16 -08:00
John-David Dalton
f182675a6e Ensure baseAt uses undefined for non-index values for array-like collections. 2014-11-06 20:43:34 -08:00
John-David Dalton
56ce89e04f Tweak _.curry and _.curryRight docs. [ci skip] 2014-11-06 20:42:33 -08:00
John-David Dalton
062ec036f8 Cleanup _.rearg docs and simplify reorder. 2014-11-06 20:41:50 -08:00
John-David Dalton
8089242b2f Add Firefox 33 to sauce tests. 2014-11-05 23:51:16 -08:00
John-David Dalton
8efa1a0032 Experiment with _.defer in createHybridWrapper. 2014-11-05 01:59:41 -08:00
John-David Dalton
7ce8304ce6 Make _.defer and _.delay slice arguments in the timeout callback. 2014-11-05 01:59:17 -08:00
John-David Dalton
233adab647 Add _.rearg. 2014-11-05 01:09:05 -08:00
John-David Dalton
475c86d100 Tweak code comments. [ci skip] 2014-11-02 23:43:10 -08:00
John-David Dalton
f754654dae Rebuild dist. 2014-11-02 14:33:24 -08:00
John-David Dalton
53ce20c0df Comma nit in getView doc. [ci skip] 2014-11-02 14:33:09 -08:00
John-David Dalton
ad91e3a344 Make lazy chaining tests a bit more complex. 2014-11-02 14:19:38 -08:00
John-David Dalton
4f2b33f80f Cleanup docs for _.slice and _.range. [ci skip] 2014-11-02 11:30:32 -08:00
John-David Dalton
2b24d42f8d Add getView and cleanup Lazy chaining. 2014-11-02 11:30:06 -08:00
John-David Dalton
ab70f306cd Make iteration fix in _.keysIn less constructor specific. 2014-11-01 01:24:10 -07:00
John-David Dalton
4fb83fe0a5 Assorted doc cleanup. [ci skip] 2014-10-31 21:36:28 -07:00
John-David Dalton
9c6ef34270 Remove dropdown menu entries for unsupported builds. 2014-10-31 00:19:34 -07:00
John-David Dalton
481eb8e5dc Cleanup test/asset/worker.js. 2014-10-31 00:17:08 -07:00
John-David Dalton
7cf65b899b Add another [[DontEnum]] test. 2014-10-30 23:54:43 -07:00
John-David Dalton
dd70fcb9bc Cleanup _.dropRightWhile and _.takeRightWhile. 2014-10-30 23:53:39 -07:00
John-David Dalton
6dd8c05533 Cleanup _.keysIn. 2014-10-30 23:53:28 -07:00
John-David Dalton
0b900d94f7 Ensure root is set correctly when required by a greasemonkey userscript. [closes #759] 2014-10-30 22:01:00 -07:00
John-David Dalton
cf724c43cb Simplify lazy chaining. 2014-10-30 20:57:24 -07:00
John-David Dalton
cdf5ac4fc4 Ensure _.keysIn skips inheritedconstructor properties. 2014-10-29 22:41:51 -07:00
John-David Dalton
b768ce4ca4 Add test for inherited shadowed props. 2014-10-29 22:40:49 -07:00
John-David Dalton
0115503af9 Fix _.keysIn for inherited non-enumerable props. 2014-10-28 23:19:08 -07:00
John-David Dalton
08dd30c5bf Make lazy _.drop test more complex. 2014-10-26 21:38:53 -07:00
John-David Dalton
72270013c8 Cleanup assignment method tests. 2014-10-25 00:30:56 -07:00
John-David Dalton
a2a59cbeae Add find method tests. 2014-10-24 23:30:12 -07:00
John-David Dalton
20a38d2dbe Test order nits. 2014-10-24 23:29:43 -07:00
John-David Dalton
9aade0a2da Remove backbone build from .gitignore. 2014-10-24 22:32:51 -07:00
John-David Dalton
9af1d1af52 Remove underscore build test runs from travis.yml. 2014-10-24 22:06:10 -07:00
John-David Dalton
8bb69cd6da Rebuild dist. 2014-10-24 22:01:39 -07:00
John-David Dalton
84a84a1687 Remove underscore build config from Underscore tests. 2014-10-24 21:53:57 -07:00
John-David Dalton
462c43434b Add _.callback test. 2014-10-23 23:46:05 -07:00
John-David Dalton
b830691611 Add more _.assign, _.defaults, _.merge, and _.transform tests. 2014-10-23 23:21:26 -07:00
John-David Dalton
204f1747cf Ensure old Opera avoids a false positive for support of isHostObject. 2014-10-23 21:46:46 -07:00
John-David Dalton
13c9d80a3b Use the new operator to ensure constructors of other realms produce objects of those realms. 2014-10-23 20:43:49 -07:00
John-David Dalton
64f45b061b Avoid testing arguments object constructor which may be Array in some old browsers. 2014-10-23 20:42:32 -07:00
John-David Dalton
c1202fd127 Fix isArrayLike in older IE. 2014-10-23 17:04:13 -07:00
John-David Dalton
2060f3f59a Ensure _.at and _.pullAt work with falsey array and collection values when keys are provided. 2014-10-23 17:04:13 -07:00
John-David Dalton
1fb92df2e7 Fix test fails. 2014-10-23 17:04:06 -07:00
John-David Dalton
848301bf70 Add tests for clone methods and objects from other realms. 2014-10-22 22:58:25 -07:00
John-David Dalton
08b5b71fcb Cleanup test titles. 2014-10-22 22:29:04 -07:00
John-David Dalton
5414d4a9e4 Add tests for _.transform and objects from other realms. 2014-10-22 22:28:47 -07:00
John-David Dalton
b930bd7326 Add isLength helper. 2014-10-22 22:28:24 -07:00
John-David Dalton
d1d1be49ba Reduce lazy wrapper for lazy first and last. 2014-10-21 08:04:29 -07:00
John-David Dalton
6ad7963347 Fix _.merge doc typo. [ci skip] [closes #754] 2014-10-21 07:41:34 -07:00
John-David Dalton
2dcda2487a Cleanup test titles. 2014-10-20 22:18:10 -07:00
John-David Dalton
55911eac7a Add lazy tests for _.first and _.last. 2014-10-20 22:17:48 -07:00
John-David Dalton
176b109ae7 Rebuild dist. 2014-10-20 20:10:25 -07:00
Benjamin Tan
0f12d43a59 Simplify _.keys and _.keysIn. 2014-10-20 19:58:05 -07:00
John-David Dalton
6dfc2aca4b Add LazyWrapper#slice. 2014-10-20 11:33:03 -07:00
John-David Dalton
f5a34d5191 Add indexOf method test for empty arrays. 2014-10-20 11:33:02 -07:00
John-David Dalton
bc3a7f70e4 Test title cleanup. 2014-10-20 11:33:02 -07:00
John-David Dalton
dcabee8d5e Expand function test for _.matches. 2014-10-20 11:33:02 -07:00
John-David Dalton
d7e290dc68 Add more isIterateeCall guards. 2014-10-20 11:33:02 -07:00
John-David Dalton
2e2341c8b2 Add arrayMin and arrayMax helpers. 2014-10-19 03:25:26 -07:00
John-David Dalton
0ee717342b Minor format nit in travis.yml. 2014-10-19 03:25:26 -07:00
John-David Dalton
9f372b3146 Update tested version of Opera in readme. [ci skip] 2014-10-19 03:25:26 -07:00
John-David Dalton
dd92e36feb Ensure Node 0.8 runs modern build tests in travis. 2014-10-18 11:31:45 -07:00
John-David Dalton
c25738c62c Avoid logging npm warnings to travis. 2014-10-18 11:31:45 -07:00
John-David Dalton
c264e98e6e Fix travis run. 2014-10-18 11:31:45 -07:00
John-David Dalton
f2780bcbc2 Add isCloneable and clonePassthru. 2014-10-18 11:31:44 -07:00
John-David Dalton
050b703fc0 Update npm used in travis.yml. 2014-10-18 11:31:44 -07:00
John-David Dalton
eed09f64f7 Cleanup _.matches. 2014-10-18 11:31:44 -07:00
John-David Dalton
28c4ad1501 Cleanup _.zipObject. 2014-10-18 11:31:44 -07:00
John-David Dalton
28d1dad629 Cleanup _.template tests. 2014-10-18 11:31:44 -07:00
John-David Dalton
b5f0672888 Fix failing clone tests. 2014-10-18 11:31:44 -07:00
John-David Dalton
71fc4faae7 Update vendor/benchmark.js. 2014-10-18 11:31:44 -07:00
John-David Dalton
8bff1e8bc4 Ensure a customer function works on deep cloned objects. 2014-10-18 11:31:44 -07:00
John-David Dalton
af67dd6610 Tweak _.clone and _.cloneDeep docs. [ci skip] 2014-10-18 11:31:44 -07:00
John-David Dalton
c46c700f7c Change source order of arrayFilter and arrayMap. 2014-10-18 11:31:44 -07:00
John-David Dalton
2a2de2efdc Make _.clone and _.cloneDeep return an empty object for unsupported types. 2014-10-18 11:31:44 -07:00
John-David Dalton
f384c42de5 Updated tested Chrome version in Sauce Labs. 2014-10-18 11:31:44 -07:00
John-David Dalton
bf1c54e5a3 Add lazy _.filter and _.reject tests. 2014-10-18 11:31:43 -07:00
John-David Dalton
d8f2cc50df Add getUnwrappedValue test helper to fix npm modularized builds. 2014-10-18 11:31:43 -07:00
John-David Dalton
06c25ba998 Use https protocol for downloading travis resources from lodash.com. 2014-10-18 11:31:43 -07:00
John-David Dalton
58654a3f3a Use https for lodash.com references in readme. [ci skip] 2014-10-18 11:31:43 -07:00
John-David Dalton
32521cd1b6 Add comment to lazy flags. [ci skip] 2014-10-12 12:56:33 -07:00
John-David Dalton
e072fe6ea9 Move LodashWrapper.prototype and MemCache assignments out of the method assignments block. 2014-10-12 12:38:59 -07:00
John-David Dalton
b5897fdb62 Add more lazy_.drop, _.dropRight, _.take, _.takeRight tests. 2014-10-10 09:48:27 -07:00
John-David Dalton
55df525f1b Update tested Chrome version in readme. [ci skip] 2014-10-09 09:50:48 -07:00
John-David Dalton
e6dde68924 Excuse Underscore _.memoize test. 2014-10-09 09:50:27 -07:00
John-David Dalton
b3e2305dea Fix typo and add lazy tests. 2014-10-09 09:50:08 -07:00
John-David Dalton
ec3e3ed1fd Simplify lazyValue. 2014-10-09 00:16:56 -07:00
John-David Dalton
30fc97eef6 Fix shortcut fusion. 2014-10-08 23:44:45 -07:00
John-David Dalton
5939692616 Remove multi-line comment wrap from _.template sourceURLs. [closes #738] 2014-10-08 09:17:15 -07:00
Tiago Ribeiro
9ce3176b59 Rename stop to end in _.range docs. [ci skip] 2014-10-06 09:38:46 -07:00
John-David Dalton
497d35b03b Continued chaining cleanup. 2014-10-06 09:38:46 -07:00
John-David Dalton
6a1191de31 Add docs to MemCache and LazyWrapper methods and reduce LazyWrapper scaffolding. 2014-10-05 18:51:57 -07:00
John-David Dalton
6c3a17de71 Add lazy chaining benchmark. 2014-10-04 11:13:28 -07:00
John-David Dalton
22cf82e44b Add note to whitespace test and add back non-character BOM test. 2014-10-04 11:11:52 -07:00
John-David Dalton
10c7e49273 Qualify listed contributors in readme. [ci skip] [closes #732] 2014-10-03 14:28:55 -07:00
John-David Dalton
4900eae751 Correct result of methods that should not return a wrapped value. 2014-10-03 00:14:10 -07:00
John-David Dalton
5334c599f0 Cleanup lazyValue. 2014-10-03 00:13:19 -07:00
John-David Dalton
ad10a1eba5 Rename var chain to chainAll in _.mixin. 2014-10-02 09:47:11 -07:00
John-David Dalton
3ca626f2a9 Add lazy drop, dropRight, initial, last, rest, reverse, and takeRight. 2014-10-02 09:46:37 -07:00
John-David Dalton
e7ad40d8f4 Make _.initial use _.dropRight and _.rest use _.drop. 2014-10-02 09:45:11 -07:00
Benjamin Tan
d38ab1145a createCompounder: Remove unused words argument 2014-10-02 00:38:41 -07:00
Benjamin Tan
f31360e1a4 _.once: Use basePartial instead of partial 2014-10-02 00:36:29 -07:00
Benjamin Tan
059fead736 Minor doc updates. [ci skip] 2014-10-02 00:34:48 -07:00
John-David Dalton
4e8360c030 Remove BOM from _.trim test. 2014-10-02 00:21:09 -07:00
John-David Dalton
fbd80746a5 Refactor lazy evaluation. 2014-10-02 00:21:04 -07:00
John-David Dalton
072a5de1c5 Cleanup _.memoize.Cache. 2014-09-29 20:41:18 -07:00
John-David Dalton
5c3c5a5521 Cleanup _.memoize tests. 2014-09-28 15:14:45 -07:00
Filip Zawada
461b294bc7 Add support for lazy evaluation to chaining syntax. [closes #247, #678] 2014-09-28 08:51:59 -07:00
John-David Dalton
71de0f2d08 Make support references align with templateSetting references. 2014-09-26 09:43:33 -07:00
John-David Dalton
2ffdc4f2ef Minor style nit. [ci skip] 2014-09-25 09:42:47 -07:00
John-David Dalton
dc9b320c4a Ensure _.indexOf and _.lastIndexOf match NaN when performing a binary search. 2014-09-25 09:42:27 -07:00
John-David Dalton
a6a93148b4 Clarify documented default params of identity as _.identity. [ci skip] 2014-09-24 22:46:06 -07:00
jabclab
f7dc3b9ce4 Add _.memoize.Cache to allow using ES6 Map/WeakMap. 2014-09-24 13:40:00 -07:00
John-David Dalton
12ad5d53c9 Rebuild dist. 2014-09-24 11:14:32 -07:00
John-David Dalton
54dc1e2e15 Exit early from _.contains if length is 0 to avoid potentially mucking up getIndexOf by passing it an undefined collection. 2014-09-24 11:13:16 -07:00
John-David Dalton
073f715f17 Qualify isIterateeCall use. 2014-09-24 09:48:59 -07:00
John-David Dalton
7ff50893dc Doc cleanup. [ci skip] 2014-09-24 09:32:51 -07:00
John-David Dalton
d128082b23 Add indexOfNaN and remove checks from baseIndexOf. 2014-09-24 09:32:51 -07:00
John-David Dalton
1b8f89c3f1 Update sauce browser versions. 2014-09-24 09:32:51 -07:00
John-David Dalton
8eb138e0b3 Add more tests for methods used as an iteratee for _.map. 2014-09-24 09:32:51 -07:00
John-David Dalton
8256579310 Add _.words tests and tweak reWords regexp. 2014-09-24 09:32:51 -07:00
John-David Dalton
41f1fb8d95 Minor source tweak of _.template. 2014-09-22 10:53:33 -07:00
John-David Dalton
277d91afce Minor code format tweak for _.isBoolean, _.isElement, _.isNumber, and _.isString. 2014-09-22 09:44:54 -07:00
John-David Dalton
aaa840ebef Add isIterateeCall and make more methods support being used as a callback for methods like _.map. 2014-09-22 09:44:13 -07:00
John-David Dalton
29ffdadabb Ensure _.trunc and _.words work as a callback for methods like _.map 2014-09-22 09:43:03 -07:00
John-David Dalton
e5f19fe037 Minor whitespace nit. [ci skip] 2014-09-21 23:26:01 -07:00
John-David Dalton
5791d71e9f Add _.deburr and _.words tests. 2014-09-21 23:25:39 -07:00
John-David Dalton
104a7022fb Remove es6 scaffolding from html test files. 2014-09-21 23:24:28 -07:00
John-David Dalton
6210b613be Since we're using the caret no need for minor version in travis.yml. 2014-09-20 18:55:59 -07:00
John-David Dalton
2ba9380616 Avoid carrot use in travis.yml deps for pre 1.0 deps. [ci skip] 2014-09-20 16:47:14 -07:00
John-David Dalton
59042bc2e2 Update request dep in travis.yml. [ci skip] 2014-09-20 12:11:57 -07:00
John-David Dalton
ccfd8e51ea Rebuild dist. 2014-09-20 12:05:52 -07:00
John-David Dalton
1aafb6c2c1 Use type checks when checking for a prototype property. 2014-09-20 12:04:53 -07:00
John-David Dalton
7976aa4b28 Cleanup _.template doc examples. [ci skip] 2014-09-20 12:04:53 -07:00
John-David Dalton
1b4e175c0c Adjust the docs of _.forEach, _.after, _.before, _.debounce, & _.throttle. [closes #710] [ci skip] 2014-09-20 12:04:53 -07:00
John-David Dalton
3ef955c139 Fix failing npm test. 2014-09-18 19:55:49 -07:00
John-David Dalton
51990ed0e5 Fix failing IE9 test. 2014-09-18 19:55:49 -07:00
John-David Dalton
138523bab3 Add _.deburr, _.thru, and _.words to the features section of the readme. [closes #709] [ci skip] 2014-09-18 19:55:49 -07:00
John-David Dalton
995ec2b104 Add array chaining tests and fix _#unshift. 2014-09-18 09:43:42 -07:00
John-David Dalton
d13f8749d4 Minor cleanup of baseIsEqual. 2014-09-17 21:28:38 -07:00
John-David Dalton
0350443810 Reduce deps in baseIsEqual, shimIsPlainObject, omit, & pick. 2014-09-17 20:52:06 -07:00
John-David Dalton
c5841dccbb Remove toObject use from _.keysIn. 2014-09-17 12:50:22 -07:00
John-David Dalton
a0c50f9ef5 Remove type check in _.transform. 2014-09-17 12:34:46 -07:00
John-David Dalton
120020b4db Avoid toObject in the shimKeys path of _.keys. 2014-09-17 12:34:19 -07:00
John-David Dalton
676747467a Make the support checks in shimKeys consistent with keysIn. 2014-09-17 12:33:34 -07:00
John-David Dalton
e2d13541dc Update tested node version in readme. [ci skip] 2014-09-17 00:52:54 -07:00
John-David Dalton
057cbc76b3 Add toObject to baseFor and baseForRight. 2014-09-17 00:47:18 -07:00
John-David Dalton
48035187d2 Comment test. [ci skip] 2014-09-17 00:47:18 -07:00
John-David Dalton
f05f60f929 Ensure _.sample chains correctly. 2014-09-16 09:17:08 -07:00
John-David Dalton
3ab19e81ac Cleanup _.transform and make baseEach and baseEachRight use toObject. 2014-09-16 01:51:46 -07:00
John-David Dalton
532be6cd87 Minor _.transform test title nits. [ci skip] 2014-09-16 01:51:45 -07:00
John-David Dalton
21a492fa43 Simplify _.mixin. 2014-09-15 01:29:18 -07:00
John-David Dalton
edf83823f1 Fix baseSortedIndex on large arrays by avoiding >>> use. 2014-09-15 01:29:12 -07:00
John-David Dalton
8d6f7de046 Increase _.sample and _.sortedIndex coverage. 2014-09-15 01:15:03 -07:00
John-David Dalton
a7de4f3663 Fix _.sample test. 2014-09-15 01:15:02 -07:00
John-David Dalton
e538f16315 Use var wrapped for wrapped values instead of actual. 2014-09-15 01:15:02 -07:00
John-David Dalton
3f8b3e2baa Fix failing npm tests. 2014-09-14 18:57:59 -07:00
John-David Dalton
a90ecde389 Wrapper doc tweaks. [ci skip] 2014-09-14 18:57:59 -07:00
John-David Dalton
1ad65bb66b Add trailing slash to _.escapeRegExp doc example. [ci skip] 2014-09-14 16:21:48 -07:00
John-David Dalton
d85bb3bce1 Remove unused descriptor var. 2014-09-13 15:20:42 -07:00
John-David Dalton
8cd4732321 Reduce code related to array method chaining. 2014-09-13 01:36:07 -07:00
John-David Dalton
6957b02c27 Remove handling of function queue values from wrapperValueOf. 2014-09-12 12:07:33 -07:00
John-David Dalton
adcadf08d1 Add iteration order note to _.pluck doc and adjust similar notes. [closes #703] [ci skip] 2014-09-12 09:43:32 -07:00
John-David Dalton
3b36145257 More cleanup of chaining code. 2014-09-12 09:16:23 -07:00
John-David Dalton
c3e5eaf8da Cleanup join, pop, shift chaining setup code. 2014-09-12 00:24:53 -07:00
John-David Dalton
fd176107ae Simplify mixin use. 2014-09-12 00:03:07 -07:00
John-David Dalton
ad203e1461 Fix deferred chaining test fails. 2014-09-11 23:36:12 -07:00
John-David Dalton
1fe9ba5879 Make string methods work with latin-1 characters by default. 2014-09-10 23:47:49 -07:00
John-David Dalton
678321bb2f Make _.unescape doc example align with _.escape. [ci skip] 2014-09-09 23:33:05 -07:00
John-David Dalton
967ce824f7 Add _.thru doc example and add pattern param to _.words. [ci skip] 2014-09-09 23:32:14 -07:00
John-David Dalton
336e5e0ff7 Excuse additional underscore test. 2014-09-09 00:17:30 -07:00
John-David Dalton
7a94f472c7 Add _.deburr, _.thru, & _.words. 2014-09-09 00:17:01 -07:00
John-David Dalton
70b41a2a6e Adjust how words are deburred. 2014-09-08 00:54:19 -07:00
John-David Dalton
216e7f3b10 Tweak docs for array params. [ci skip] 2014-09-08 00:09:18 -07:00
John-David Dalton
0717da6e37 Make chaining actions deferred until value is called. 2014-09-08 00:09:14 -07:00
John-David Dalton
3f64316e00 Make _.camelCase process words as lower cased. 2014-09-07 01:20:18 -07:00
John-David Dalton
172eaf84b5 Ensure string case methods work with words in all caps. 2014-09-06 10:14:03 -07:00
John-David Dalton
0c20889a17 Minor comment nit. [ci skip] 2014-09-06 00:30:25 -07:00
John-David Dalton
62523d537b Change default sauce param values. 2014-09-06 00:23:45 -07:00
John-David Dalton
6643252019 Fix qunit-extras sauce reporter. 2014-09-06 00:23:24 -07:00
John-David Dalton
13022a6bb0 Realign baseSortedIndex with _.sortBy. 2014-09-05 09:25:48 -07:00
John-David Dalton
fc018691e5 Change name to user in docs and tests to avoid this.name. 2014-09-05 09:01:51 -07:00
John-David Dalton
56666c4bf4 Use a string of keywords in package.json. 2014-09-04 23:57:36 -07:00
John-David Dalton
379da81f85 Add support for Sauce reports to qunit-extras. 2014-09-04 23:57:07 -07:00
John-David Dalton
9ce6d4b72a Add test for _.sortBy sorting undefined and NaN values. 2014-09-03 23:43:32 -07:00
John-David Dalton
be46c31c74 Update tested version of Firefox in readme. [ci skip] 2014-09-03 23:21:11 -07:00
John-David Dalton
cd4029dc61 Make _.sortBy moveundefined and NaN to the end of the array. 2014-09-03 09:32:09 -07:00
John-David Dalton
d2aa55a3bd Rebuild dist. 2014-09-02 09:25:42 -07:00
John-David Dalton
838be0846d Update tested Opera version in readme. [ci skip] 2014-09-02 09:25:36 -07:00
John-David Dalton
9414cb97b5 Add _.isNative doc example. 2014-09-02 09:21:43 -07:00
John-David Dalton
d6883a077a Add Lang category. 2014-09-02 09:21:43 -07:00
John-David Dalton
aa60b8399b Fix tests for the npm build. 2014-09-02 09:21:43 -07:00
John-David Dalton
cbe504df77 Fix test in IE. 2014-09-02 09:21:43 -07:00
John-David Dalton
e0efcc1f25 Fix test fails when using a non-requirejs loader. 2014-09-02 09:21:43 -07:00
John-David Dalton
c6e536a768 Use metaMap inference instead of WeakMap. 2014-09-01 23:44:37 -07:00
John-David Dalton
77ba53bda7 Remove defineProperty forks of baseSetData and getData. 2014-09-01 20:39:39 -07:00
John-David Dalton
c2c6f1493a Add tests for pop, shift, and slice. 2014-09-01 20:39:39 -07:00
John-David Dalton
debaed6e5e Allow _.before and _.after to accept func as the first argument 2014-09-01 17:13:07 -07:00
John-David Dalton
0d6279617b Add _.isEqual tests for arrays and objects from different documents. 2014-09-01 17:13:07 -07:00
John-David Dalton
3435314400 Remove unneeded "bugs" entry in package.json. [ci skip] 2014-09-01 13:26:09 -07:00
John-David Dalton
f248a8383b Add tests to ensure length is computed before iteration. 2014-09-01 13:25:51 -07:00
John-David Dalton
5458b007d1 Cleanup default assignment of placeholders. 2014-08-28 00:09:16 -07:00
John-David Dalton
6735291c99 Try to avoid an inconsistent false fail on ipad simulator. 2014-08-27 08:58:49 -07:00
John-David Dalton
6ad7a20c07 Update Underscore build compat to 1.7.0. 2014-08-27 07:30:39 -07:00
John-David Dalton
3191825ecc Cleanup features list and update tested Chrome version in readme. [ci skip] 2014-08-27 00:53:55 -07:00
John-David Dalton
baee6b9738 Update deps. 2014-08-26 23:55:39 -07:00
John-David Dalton
c4a7f899db Fix tests for rhino -require. 2014-08-26 21:36:04 -07:00
John-David Dalton
c01623ba56 Avoid false fail in environments that add an enumerable constructor property to Date objects. 2014-08-26 09:33:46 -07:00
John-David Dalton
81d0d5c59f Adjust mocking to ensure coverage in modularized builds. 2014-08-26 09:33:03 -07:00
John-David Dalton
cc4fdfd852 Ensure arity is not less than 0. 2014-08-25 23:14:28 -07:00
John-David Dalton
ba7be29153 Remove defineProperty mock. 2014-08-25 23:03:10 -07:00
John-David Dalton
4eae95b88d Ensure node version is consistent with its shorthand alias travis.yml. 2014-08-25 20:32:57 -07:00
John-David Dalton
06d8281f16 Add more bizarro support changes. 2014-08-25 10:25:01 -07:00
John-David Dalton
87c21ba75e Add coverage for WeakMap usage. 2014-08-25 09:32:26 -07:00
John-David Dalton
7f88a7c9bb Add more hot method tests. 2014-08-25 09:02:02 -07:00
John-David Dalton
38c57a662c Rebuild dist. 2014-08-24 21:34:59 -07:00
John-David Dalton
36f5ddc543 Add test for hot methods. 2014-08-24 21:33:44 -07:00
John-David Dalton
8b873b6b1b Make breaker trip when greater than or equal to HOT_COUNT. 2014-08-24 21:33:44 -07:00
John-David Dalton
68bd881ca8 Cleanup test names. [ci skip] 2014-08-24 18:02:19 -07:00
John-David Dalton
c3e717a3ef Rename _.consume to _.flow. 2014-08-24 18:02:06 -07:00
John-David Dalton
d9be6f8a9a Add _.consume and _.isNative to the features section of readme. [ci skip] 2014-08-24 13:54:09 -07:00
John-David Dalton
3bfb9d65f4 Prevent fails in older browsers due to timer drift. 2014-08-24 12:39:35 -07:00
John-David Dalton
9ad26f943f Minor doc nit and update lodash chaining doc to include _.consume and _.consumeRight. [ci skip] 2014-08-24 12:31:22 -07:00
John-David Dalton
c5112cb24e Add _.consume and _.consumeRight and make _.compose an alias of _.consumeRight. [closes #667] 2014-08-24 12:17:50 -07:00
John-David Dalton
c17e1f9e75 Doc tweak standardizing on "invoke" and "call". [ci skip] 2014-08-24 12:08:46 -07:00
John-David Dalton
b48b454909 Track down inconsistent sauce fail. 2014-08-24 00:02:01 -07:00
John-David Dalton
6b59a924e8 Avoid false fails on Sauce mocked alert/prompt functions. 2014-08-23 13:36:29 -07:00
John-David Dalton
87879a6784 Make _.isArguments length check consistent with its fallback. 2014-08-23 12:13:10 -07:00
John-David Dalton
fca5fda9da Avoid circular dep with isHostObject. 2014-08-23 12:12:24 -07:00
John-David Dalton
691d566482 Add test for string as object when passed as the third param to _.forEach callbacks. 2014-08-22 22:27:13 -07:00
John-David Dalton
61578f4dca Add missing semicolon. [ci skip] 2014-08-21 20:24:09 -07:00
John-David Dalton
9f4a7fc0da Ensure wrapped arrays are compared correctly in _.isEqual. [closes #676] 2014-08-21 09:29:27 -07:00
Benjamin Tan
200a5d84c7 Update docs. [closes #674] [ci skip] 2014-08-20 23:52:18 -07:00
John-David Dalton
309a2ad0a3 Rebuild dist. 2014-08-20 23:11:04 -07:00
John-David Dalton
e696331e2a Tweak property order note in method docs. [ci skip] 2014-08-20 23:08:04 -07:00
John-David Dalton
c3126e24ce Add _.support.hostObject and rename isNode to isHostObject. 2014-08-20 23:08:04 -07:00
John-David Dalton
bde931f2f5 Avoid testing constructors which may be shimmed. 2014-08-20 23:08:03 -07:00
John-David Dalton
58b3e9f201 Avoid test issues with error objects across environments. 2014-08-20 23:08:03 -07:00
John-David Dalton
1423dcb619 _.sortBy should not error on nullish elements when sorting by multiple properties. 2014-08-20 23:08:03 -07:00
John-David Dalton
df3540b0f9 Expose _.isNative. 2014-08-19 23:57:54 -07:00
John-David Dalton
921209580a Add DOM node check to _.isFunction test. 2014-08-19 23:57:54 -07:00
John-David Dalton
d4e058a844 Add _.negate unit test. 2014-08-19 23:57:53 -07:00
John-David Dalton
8f9eed154e Cleanup setData. 2014-08-18 09:31:30 -07:00
John-David Dalton
1416655d53 Minor whitespace nit. 2014-08-18 09:31:30 -07:00
John-David Dalton
9a147218ce Add console.log shim to avoid errors while deving. 2014-08-18 09:31:30 -07:00
John-David Dalton
34b575da03 Minor var nit in createPartialWrapper. 2014-08-18 09:31:30 -07:00
John-David Dalton
54d22a23b5 Avoid metadata cache for perf tests of slow paths of _.bind and _.partial. 2014-08-18 09:31:30 -07:00
John-David Dalton
ee10e17ce7 Fix perf regression of _.zip. 2014-08-18 09:31:30 -07:00
John-David Dalton
8ff97468cc Minor style nits. 2014-08-18 09:31:30 -07:00
John-David Dalton
6f898c6c97 Fix perf regression in _.omit & _.reject. 2014-08-18 09:31:30 -07:00
John-David Dalton
cfeb8d053f Attempt to throttle seData. 2014-08-18 09:31:29 -07:00
John-David Dalton
d317171a45 Remove sauce testing of older Firefox. 2014-08-18 09:31:29 -07:00
John-David Dalton
9b0aadccf8 Fix accidental leaked var. 2014-08-14 23:55:24 -07:00
John-David Dalton
d6850ab358 Use WeakMaps if available to store function metadata. 2014-08-14 23:55:23 -07:00
John-David Dalton
c139a0d9ed Avoid internally passing around metadata arrays. 2014-08-14 23:55:23 -07:00
John-David Dalton
67b0c4cddd Use _.createCallback if _.matches is unavailable for the perf test. 2014-08-14 23:55:23 -07:00
John-David Dalton
ce36bf6134 Update tested Firefox versions. 2014-08-14 23:55:23 -07:00
Benjamin Tan
e2dd65a403 Add more emphasis on the Note sections 2014-08-12 09:26:25 -07:00
John-David Dalton
a2595d5107 Remove native String#contains use in _.contains. 2014-08-12 09:26:25 -07:00
John-David Dalton
6dc0cf0c44 Typo nit in _.uniq tests. 2014-08-11 09:25:35 -07:00
John-David Dalton
faac630001 Update tested version of Node in readme. [ci skip] 2014-08-11 09:25:35 -07:00
John-David Dalton
0deacc7229 Add tests for large arrays and NaN values. 2014-08-11 09:25:35 -07:00
John-David Dalton
c849fe1496 Cleanup _.pull. 2014-08-09 09:43:31 -07:00
John-David Dalton
4238e84ec4 Add tests for matching NaN. 2014-08-09 09:43:31 -07:00
John-David Dalton
df4e306c64 Add length check to avoid extra work in initArrayClone. 2014-08-08 10:43:39 -07:00
John-David Dalton
916c728d70 Remove unneeded flag from baseClone call in _.matches. 2014-08-08 10:28:18 -07:00
John-David Dalton
476d85915b Revert rename of baseSlice and add initArrayClone and initObjectClone. 2014-08-08 10:27:11 -07:00
John-David Dalton
e54b8ead72 Rename cloneBuffer to bufferClone, split basePick into pickByArray and pickByCallback, and add arrayClone. 2014-08-07 00:23:32 -07:00
John-David Dalton
d2444d2992 Remove !source check from _.mixin. 2014-08-04 00:05:19 -07:00
John-David Dalton
48acda2c3c Add _.iteratee alias of _.callback. 2014-08-03 22:40:31 -07:00
John-David Dalton
264f7b1d30 Fix tests in old IE. 2014-08-03 14:03:36 -07:00
John-David Dalton
fc44d54607 Fix test fail. 2014-08-02 23:25:20 -07:00
John-David Dalton
afc3698578 Minor whitespace nits in test.js. [ci skip] 2014-08-02 22:08:37 -07:00
John-David Dalton
c3cd94b695 Fix coercing arity in baseCurry. 2014-08-02 22:08:17 -07:00
John-David Dalton
ea219f683e Rename noIterator to noIteratee. [ci skip] 2014-08-02 13:05:55 -07:00
John-David Dalton
faf6584652 Ensure _.mixin does not extend lodash when an object is provided with an empty options object. [closes #650] 2014-08-01 16:36:44 -07:00
John-David Dalton
4dc41749fb Cleanup NaN handling in baseIndexOf and _.lastINdexOf. 2014-08-01 11:27:37 -07:00
John-David Dalton
2aa94301a8 Rename iterator to iteratee. 2014-08-01 11:13:58 -07:00
John-David Dalton
d2870b6df7 Change strict equality matches to SameValueZero matches. 2014-07-31 17:25:58 -07:00
John-David Dalton
5cbc44610c Simplify support property detection. 2014-07-30 09:21:25 -07:00
John-David Dalton
9032cc0ecc Updated tested Chrome versions in Sauce. 2014-07-29 22:21:22 -07:00
John-David Dalton
e48b314ad0 Avoid type coercion of size in _.chunk unless needed. 2014-07-29 09:37:25 -07:00
John-David Dalton
6fdaf905c4 Update "features" section of readme. [ci skip] 2014-07-29 09:36:39 -07:00
John-David Dalton
79b706fb5c Add parentheses to clarify things. 2014-07-29 08:48:04 -07:00
John-David Dalton
eaee188244 Use resIndex where applied easily. 2014-07-29 08:47:23 -07:00
John-David Dalton
a6ac62d628 Update tested versions of Opera and PhantomJS. [ci skip] 2014-07-28 23:23:43 -07:00
John-David Dalton
7a7f12504b Consistent empty bracket style. 2014-07-28 09:33:24 -07:00
John-David Dalton
55c83d17e1 Fix sortedIndex method tests for phantomjs. 2014-07-28 01:26:01 -07:00
John-David Dalton
8009c1b7eb Rebuild dist. 2014-07-28 00:57:56 -07:00
John-David Dalton
1580453f4b Ensure _.sortedIndex and _.sortedLastIndex align with _.sortBy. 2014-07-27 19:40:10 -07:00
John-David Dalton
9cc8f5dd07 Add bizarro tests for _.parseInt. 2014-07-27 17:42:56 -07:00
John-David Dalton
7e326b8431 Simplify support.nonEnumArgs and increase code coverage. 2014-07-27 17:42:56 -07:00
John-David Dalton
8bddb47fab Add test for _.slice where start >= end. 2014-07-27 17:42:56 -07:00
John-David Dalton
b1b462d22b Add/cleanup tests for using methods as a callback for _.map and _.reduce. 2014-07-27 17:42:56 -07:00
John-David Dalton
d5847faaba Add toObject and optimize use of toIterable in _.sample. 2014-07-27 17:42:55 -07:00
John-David Dalton
4c9f3aee74 Make baseSortedIndex handle NaN correctly when comparing numbers. 2014-07-27 17:42:55 -07:00
John-David Dalton
ff4e0cb1c2 Use prefix increment operator where easily done. 2014-07-27 17:42:55 -07:00
John-David Dalton
c159da1fbc Ensure _.toIterable converts primitives to objects for easier detection of callback signatures. 2014-07-25 07:46:08 -07:00
John-David Dalton
d5e55f9dbd Copy ./dist/lodash.$BUILD.js to ./dist/lodash.js for coverage run. 2014-07-24 22:17:21 -07:00
John-David Dalton
642ed4061a Ensure EXPANDO doesn't disable fast properties in v8. 2014-07-24 22:17:21 -07:00
John-David Dalton
5178c3e67f Comma and whitespace nits. [ci skip] 2014-07-24 22:17:21 -07:00
John-David Dalton
e402347d73 Fix placeholder support without metadata. 2014-07-24 22:17:21 -07:00
John-David Dalton
3004c58798 Add guard param doc to _.parseInt. [ci skip] 2014-07-24 22:17:21 -07:00
John-David Dalton
15a44fe650 Make _.random and _.range work as callbacks to _.map. 2014-07-24 22:17:21 -07:00
John-David Dalton
e37a96a94a Make _.parseInt work as a callback to _.map. 2014-07-24 22:17:21 -07:00
John-David Dalton
e475a3b64c Remove unneeded branch of _.slice. 2014-07-24 22:17:21 -07:00
John-David Dalton
663ebd25ea Add more placeholder tests. 2014-07-23 19:52:32 -07:00
John-David Dalton
e6bec0de72 Simplify _.slice. 2014-07-23 19:52:26 -07:00
John-David Dalton
f513effd47 Make Float64Array mock more accurately handle its arg signature. 2014-07-22 22:53:38 -07:00
John-David Dalton
dd05e898cc Fix errors in Android 4.3 tests. 2014-07-22 22:52:44 -07:00
John-David Dalton
49a88e75e6 Fix test fails in Safari 5. 2014-07-22 09:42:34 -07:00
John-David Dalton
14a99471f4 Use a better Float64Array mock. 2014-07-22 09:16:09 -07:00
John-David Dalton
bdbc181e38 Ensure testing array buffers hits all parts of cloneBuffer. 2014-07-22 07:15:38 -07:00
John-David Dalton
133b1151bd Add Float64Array even in the non-bizarro test case. 2014-07-22 00:52:16 -07:00
John-David Dalton
653aab2358 Fix typo in the ArrayBuffer#slice mock for node. 2014-07-22 00:18:40 -07:00
John-David Dalton
13669313d4 Fix ArrayBuffer#slice test mock. 2014-07-21 22:13:27 -07:00
John-David Dalton
e84d79ccf3 Increase typed array coverage for node test runs. 2014-07-21 20:35:39 -07:00
John-David Dalton
34077f9624 Fix html test runner errors. 2014-07-21 20:34:58 -07:00
John-David Dalton
28ba64a4db Another attempt at fixing _.isElement bizarro tests. 2014-07-21 11:54:16 -07:00
John-David Dalton
0eefd3e140 Fix typed array tests in Safari. 2014-07-21 11:53:46 -07:00
John-David Dalton
20bbfc5917 Use the dist/lodash.js build for coveralls so it can map correctly to it. 2014-07-21 09:36:15 -07:00
John-David Dalton
9d6832224e Rebuild dist. 2014-07-21 09:27:30 -07:00
John-David Dalton
2cf17b19dc Cleanup appendHolders. 2014-07-21 08:50:35 -07:00
John-David Dalton
390cf2114a Fix bizarro _.isElement test. 2014-07-21 08:33:49 -07:00
John-David Dalton
8bff019b5d Allow placeholders to be customizable. 2014-07-21 00:36:19 -07:00
John-David Dalton
7d221f3be9 Add doc reference to David Corbacho's post for _.debounce and _.throttle. [ci skip] 2014-07-20 13:26:31 -07:00
John-David Dalton
b8628b9772 Add _.flattenDeep and allow _.template to be called with its legacy options param signature. 2014-07-20 12:38:32 -07:00
John-David Dalton
cda4d9e1b2 Correct isWhitespace docs. [ci skip] 2014-07-20 10:39:53 -07:00
John-David Dalton
f5d7a4d41e Remove unneeded checks in arrayXyz functions. 2014-07-20 10:38:54 -07:00
John-David Dalton
94486302f5 Correct ArrayBuffer bizarro shims. 2014-07-20 10:38:08 -07:00
John-David Dalton
4f4a7409f6 Cleanup isWhitespace use. 2014-07-19 21:42:38 -07:00
John-David Dalton
60f57f9e4b Cleanup prototype references of built-ins and the _.isElement bizarro tests. 2014-07-18 23:59:32 -07:00
Breck Yunits
2f98cd9eb0 Fixed comment typo and refactored duplicate code. 2014-07-18 23:59:18 -07:00
John-David Dalton
f77586f13d Add second part of the bizarro ArrayBuffer#slice tests. 2014-07-18 08:57:21 -07:00
Benjamin Tan
fa82091989 Update test descriptions 2014-07-18 08:49:22 -07:00
John-David Dalton
66e9c68da4 Add bizarro tests for shimmed ArrayBuffer#slice. 2014-07-18 08:49:14 -07:00
John-David Dalton
c97c2fee37 Ensure shallow clones of typed arrays don't clone the buffer. 2014-07-17 06:57:05 -07:00
John-David Dalton
fd03500786 Update tested version of Chrome in readme. [ci skip] 2014-07-17 06:39:39 -07:00
John-David Dalton
83d5c31a0c Update deps in travis.yml. 2014-07-17 06:34:28 -07:00
John-David Dalton
7f19c10da9 Use the correct _.isRegExp for the underscore build. 2014-07-16 11:30:34 -07:00
John-David Dalton
c10ea527a0 Minor doc nit. [ci skip] 2014-07-16 08:57:36 -07:00
John-David Dalton
5a54c1520a Remove nativeIsNaN use from the underscore build of _.isFinite. [closes #633] 2014-07-16 08:49:07 -07:00
Benjamin Tan
3f2732be7b Fix documentation for toIterable
[ci skip]
2014-07-16 20:55:37 +08:00
John-David Dalton
d504b1f90f Add tests for overwriting native Number.isFinite. 2014-07-16 00:19:21 -07:00
John-David Dalton
210dac058d Rebuild dist. 2014-07-15 23:54:00 -07:00
John-David Dalton
ccb3012e5a Remove unused native isNaN reference. 2014-07-15 23:51:18 -07:00
John-David Dalton
c94f2e6f07 Doc tweaks. [ci skip] 2014-07-15 23:51:18 -07:00
John-David Dalton
e31d7178b4 Add tests for "_.pluck" style callbacks to _.max, _.min, and _.uniq. 2014-07-15 23:51:18 -07:00
jrajav
b3a4b8085c Add example to docs for nested template delimiters. [closes #628] [ci skip] 2014-07-15 23:51:18 -07:00
John-David Dalton
b56d7ab9c3 Cleanup test titles for "_.pluck" and "_.where" style callbacks. 2014-07-15 23:51:18 -07:00
John-David Dalton
c63e270921 Remove old docs until new can be generated. [ci skip] 2014-07-15 23:51:17 -07:00
John-David Dalton
cffbae3a13 Minor test cleanup. 2014-07-15 23:51:17 -07:00
John-David Dalton
d2d03228ee Consistent use of wrapped values in test titles. 2014-07-15 23:51:17 -07:00
John-David Dalton
30458fa536 Expand test coverage. 2014-07-15 23:51:17 -07:00
John-David Dalton
0e60831f46 Remove sliceBuffer, add typed array tests, and ensure typed array clones have the correct byteOffset and length. 2014-07-14 08:59:28 -07:00
John-David Dalton
69238bf8e8 Cleanup _.max and _.min. 2014-07-14 07:57:46 -07:00
Benjamin Tan
db483df9a6 Fix issue with cloning typed arrays
Closes #624
2014-07-14 07:52:11 -07:00
Benjamin Tan
1dc95f5d3a Improve tests for ArrayBuffers 2014-07-14 07:52:11 -07:00
John-David Dalton
37caef10b1 Optimize non-array iteration of _.max and _.min when no iterator is provided. 2014-07-14 01:02:11 -07:00
John-David Dalton
381ecd8f70 Fix skipTest count for a _.uniq test. 2014-07-14 00:14:17 -07:00
John-David Dalton
f2a829362b Use == instead of === when comparing functions. 2014-07-13 22:24:33 -07:00
John-David Dalton
fe2e994f2d Cleanup previous commit. 2014-07-13 16:09:49 -07:00
megawac
95ba6bf040 Separate _.uniq isSorted logic to a helper 2014-07-13 16:09:48 -07:00
John-David Dalton
6f937e8958 Simplify coveralls command in travis.yml. 2014-07-13 12:17:46 -07:00
John-David Dalton
12f04650de Ignore isSorted if _.indexOf is customized. 2014-07-13 09:57:58 -07:00
John-David Dalton
f7330cce14 Ensure _.escape, _.escapeRegExp, & _.unescape can replacing multiple characters. 2014-07-12 07:08:49 -07:00
John-David Dalton
ba56f95da8 Use TRAVIS_SECURE_ENV_VARS instead of TRAVIS_PULL_REQUEST. 2014-07-11 09:18:35 -07:00
John-David Dalton
46704724e3 Add comments to _.escape and _.repeat. [ci skip] 2014-07-11 08:57:58 -07:00
John-David Dalton
caadd5bb32 Optimize _.escape, _.escapeRegExp, and _.unescape. 2014-07-11 08:42:52 -07:00
John-David Dalton
faa221f162 Make _.isArguments fallback align with other array-like checks. 2014-07-10 23:54:04 -07:00
John-David Dalton
a814d5438a Tweak _.isXyz method docs. [ci skip] 2014-07-10 23:53:24 -07:00
John-David Dalton
ab43c4cf2a Merge branch 'master' of github.com:lodash/lodash 2014-07-10 21:23:27 -07:00
John-David Dalton
d781e2dfb8 Merge pull request #613 from d10/docs
Fix typos [ci skip]
2014-07-10 20:41:21 -07:00
Benjamin Tan
968ef1560f Fix typos [ci skip] 2014-07-11 11:29:48 +08:00
John-David Dalton
1631ceedb3 Add fast path for objects with a single primitive value back to _.matches and add isStrictComparable helper to reduce _.matches and _.isEqual. 2014-07-10 09:26:20 -07:00
John-David Dalton
884c2af17d Add _.matches benchmark. 2014-07-10 09:05:43 -07:00
John-David Dalton
51ab030541 Remove argCount from _.callback and add getCallback helper. 2014-07-09 13:02:28 -07:00
John-David Dalton
2a1e063641 Cleanup tests and add a _.callback test for argCount. 2014-07-09 08:24:30 -07:00
John-David Dalton
62b3120ffd Merge branch 'master' of github.com:lodash/lodash 2014-07-09 08:07:42 -07:00
John-David Dalton
ea17b3d7c9 Use provide instead of pass to avoid confusing test wording. 2014-07-09 08:06:29 -07:00
John-David Dalton
f3e98fc71c Merge pull request #611 from megawac/patch-1
Test coverage: explicitly setting curry arity.
2014-07-09 08:01:15 -07:00
John-David Dalton
5034e11f22 Merge branch 'master' of github.com:lodash/lodash 2014-07-09 07:56:06 -07:00
John-David Dalton
560473d70b Clarify _.runInContext docs and usage example. [ci skip] 2014-07-09 07:54:51 -07:00
Graeme Yeates
10e53509bd Test coverage: explicitly setting curry arity 2014-07-09 10:46:08 -04:00
John-David Dalton
27afb02482 Merge pull request #610 from megawac/patch-1
Variadic curry test coverage.
2014-07-09 07:38:09 -07:00
Graeme Yeates
07fd0989ea Variadic curry test coverage 2014-07-09 10:28:31 -04:00
John-David Dalton
d7c38aea50 Rebuild dist. 2014-07-09 00:52:09 -07:00
John-David Dalton
20d57e27c9 Minor doc nit. [ci skip] 2014-07-09 00:51:17 -07:00
John-David Dalton
4606c8092f Ensure _.match deep comparison isn't affected by changes to source objects. 2014-07-09 00:51:16 -07:00
John-David Dalton
30f256aad2 Reuse length var in _.compose. 2014-07-09 00:51:16 -07:00
John-David Dalton
1b9dbd0e62 Tweak docs and var names of at, baseAt, and zipObject. 2014-07-09 00:51:16 -07:00
John-David Dalton
225c8871f9 Avoid changes to object affecting the result of a match function. 2014-07-08 09:45:31 -07:00
John-David Dalton
d0333134d5 Add more _.uniq and _.matches tests. 2014-07-08 09:11:14 -07:00
John-David Dalton
b24b8315d3 Fix _.shuffle on small collections. [closes #609] 2014-07-08 08:28:50 -07:00
John-David Dalton
4ddc3b518b Optimize _.shuffle. 2014-07-08 00:40:00 -07:00
John-David Dalton
479a7e441d Use _.isError in _.attempt docs and _.template. 2014-07-07 20:09:30 -07:00
John-David Dalton
af5ae8d656 Move some _.where tests to _.matches. 2014-07-07 12:15:44 -07:00
John-David Dalton
1365882de4 Simplify test condition. 2014-07-07 07:53:33 -07:00
John-David Dalton
7854cd1f94 Avoid fails for workers when testing in Sauce Labs. 2014-07-07 07:53:06 -07:00
John-David Dalton
12a1a14527 Fix tests in old IE. 2014-07-07 07:48:40 -07:00
John-David Dalton
a71cc552c9 Avoid test path for non node/phantom. 2014-07-07 01:51:48 -07:00
John-David Dalton
e42d091502 Change case of constants in test/test.js. 2014-07-07 01:40:55 -07:00
John-David Dalton
d89d5befa0 Add lodashBizarro tests for cloning typed arrays. 2014-07-06 17:05:37 -07:00
John-David Dalton
92e5ae29c9 Add FLOAT64_BYTES_PER_ELEMENT for easier test mocking. 2014-07-06 08:24:58 -05:00
John-David Dalton
65aeb97e3e Increate code coverage for AMD build of the root module. 2014-07-06 08:08:08 -05:00
John-David Dalton
08a9ef1072 Fix test fail in older Firefoxes. 2014-07-05 13:44:07 -05:00
John-David Dalton
9c3f297e97 Rebuild dist. 2014-07-05 11:51:51 -05:00
John-David Dalton
2554871c64 Move _.template comment on .source. [ci skip] 2014-07-05 11:51:05 -05:00
John-David Dalton
404edebdff Cleanup unwrapped chaining tests and add a chaining test for _.attempt. 2014-07-05 07:39:31 -05:00
John-David Dalton
2f2030babf Add _.attempt. 2014-07-05 07:23:54 -05:00
John-David Dalton
b560b35175 Remove test which will now lock up _.times. 2014-07-04 23:12:50 -05:00
John-David Dalton
3063b19e1d Replace "shortcut" with "reference" in code comments. [ci skip] 2014-07-04 15:38:34 -05:00
John-David Dalton
a17fb54c37 Avoid >>> use. 2014-07-04 15:36:32 -05:00
John-David Dalton
c1b8a8594d Bump tested browser versions in test/saucelabs.js. 2014-07-03 12:33:02 -07:00
John-David Dalton
0a7fc6c48c Cleanup error object fork in baseIsEqual. 2014-07-03 12:26:47 -07:00
John-David Dalton
79d59ff9ca Add more docs for metadata. 2014-07-03 09:50:46 -07:00
John-David Dalton
c7d3c78e72 Make _.unzip its own method. 2014-07-03 09:46:39 -07:00
John-David Dalton
d56322a032 Consistent use of undefined with .apply instead of null. 2014-07-02 22:26:09 -07:00
John-David Dalton
aac3c4d5c7 Minor style nits. 2014-07-02 18:20:36 -07:00
John-David Dalton
9ba1ddc2dd Cleanup _.isEqual and make _.where of an empty array match all arrays similar to empty objects matching all objects. 2014-07-02 10:36:42 -07:00
John-David Dalton
61eeaa0496 Minor cleanup. 2014-07-02 09:12:05 -07:00
John-David Dalton
d3b6f9975c Add @type to help the Underscore build method alternatives. [ci skip] 2014-07-01 21:22:52 -07:00
John-David Dalton
5200c8d659 Remove unneeded n validation from _.before. 2014-07-01 12:21:11 -07:00
John-David Dalton
e2c6f57859 Minor test cleanup. 2014-07-01 11:58:09 -07:00
John-David Dalton
b084210705 Add _.before. 2014-07-01 11:57:45 -07:00
John-David Dalton
6622922468 Optimize _.clone. 2014-07-01 09:11:06 -07:00
John-David Dalton
caf31eb6d3 Doc tweaks. [ci skip] 2014-06-30 23:54:50 -07:00
John-David Dalton
464691f129 Optimize _.reduce and _.reduceRight. 2014-06-30 21:24:07 -07:00
Mariano Desanze
afcf539e6e Fix doc typo as _.support.ownLast is false in all but IE < 9. [ci skip] 2014-06-30 14:19:11 -07:00
John-David Dalton
bf2c1a2df2 Fix binary search benchmarks. [ci skip] 2014-06-30 12:59:18 -07:00
John-David Dalton
7400064cd5 Added _.sortedLastIndex and allow _.lastIndexOf to work with sorted arrays and _.sortedLastIndex. 2014-06-30 09:40:55 -07:00
John-David Dalton
7eb3754807 Doc and source cleanup. 2014-06-29 18:13:47 -07:00
John-David Dalton
a9cc2fdb54 Add toIterable to reduce support.unindexedChars use and optimize/simplify methods. [closes #601] 2014-06-29 14:14:16 -07:00
John-David Dalton
212282e77c Rebuild dist. 2014-06-29 01:25:31 -07:00
John-David Dalton
1e8a820108 Split _.every, _.filter, _.map, _.reduce, & _.some into arrayXYZ and baseXYZ forms as well as specialize for _.bind and _.partial. 2014-06-28 23:33:15 -07:00
John-David Dalton
0117341b7e Fix _.template and _.flatten use in perf/perf.js. 2014-06-28 23:33:15 -07:00
John-David Dalton
d21eac8b18 Cleanup _.forEach docs. [ci skip] 2014-06-28 23:33:15 -07:00
Steve Heffernan
af4edc3b76 Updated forEach object example to include the keys. [ci skip] [closes #596]
The forEach object example is a little ambiguous where it says "logs each number", since both the key and value of the object are technically numbers. I've read it a few times now (skipping over the function description of course) and wanted it to be a little more obvious.
2014-06-28 23:33:15 -07:00
John-David Dalton
8a959896bf Reduce code inbaseBind and baseCreateWrapper and optimize _.bind by adding createCtorWrapper. 2014-06-26 09:02:31 -07:00
John-David Dalton
ba5107e801 Add unit tests for _.curryRight. 2014-06-26 09:00:56 -07:00
John-David Dalton
d7de4a3579 Doc tweaks for _.curryRight and basePartial. [ci skip] 2014-06-26 09:00:56 -07:00
John-David Dalton
175b14860e Update Benchmark.js to be compatible with v3.0.0-pre. 2014-06-26 09:00:56 -07:00
John-David Dalton
72fcb4ebda Simplify baseCallback. 2014-06-26 09:00:56 -07:00
John-David Dalton
3a221f9b6e Cleanup _.compose. 2014-06-26 09:00:55 -07:00
Graeme Yeates
1241fb54f3 Simplify _.*RightWhile loops 2014-06-26 09:00:55 -07:00
John-David Dalton
b291dcadc6 Add _.curryRight. 2014-06-26 09:00:55 -07:00
John-David Dalton
4105b19f75 Drop Narwhal from test/run-test.sh and contributing text. [ci skip] 2014-06-26 09:00:55 -07:00
John-David Dalton
b7b8ad7760 Updated tested Node version in readme. [ci skip] 2014-06-26 09:00:55 -07:00
John-David Dalton
8465e3061a Cleanup error messages for jobs that fail to start . 2014-06-26 09:00:55 -07:00
John-David Dalton
6b09cd61d2 Ensure _.keysIn treats primitives like objects and both _.keys and _.keysIn return empty arrays for null and undefined values. 2014-06-22 18:54:19 -07:00
John-David Dalton
aac609cc38 Avoid test fails in IE 9. 2014-06-22 18:54:19 -07:00
John-David Dalton
0b1d16f9db Excuse _.isFinite tests in test/underscore.html. 2014-06-22 16:56:18 -07:00
John-David Dalton
7374f6dc4f Simplify charsLeftIndex and charsRightIndex. 2014-06-22 16:38:23 -07:00
John-David Dalton
9577d80fc2 Simplify _.dropRightWhile, _.dropWhile, _.takeRightWhile, and _.takeWhile. 2014-06-22 16:38:23 -07:00
John-David Dalton
c550e27d21 Ensure _.omit and _.pick work with primitives. 2014-06-22 16:38:23 -07:00
John-David Dalton
423730da76 Make _.isFinite use ES6 Number.isFinite when available. 2014-06-22 16:38:23 -07:00
John-David Dalton
78a4c6f525 Minor whitespace nits. [ci skip] 2014-06-22 16:38:23 -07:00
John-David Dalton
0d3ac21ae0 Fix test in IE. 2014-06-22 16:38:23 -07:00
John-David Dalton
2cae3245aa Make make nullish check consistent in _.isEmpty. 2014-06-22 16:38:22 -07:00
John-David Dalton
e143a0ec6b Make _.isFinite follow ES6 Number.isFinite. 2014-06-22 16:38:22 -07:00
John-David Dalton
35ce087f3b Use Object(...) instead of new String, new Boolean, and new Number. 2014-06-22 16:38:22 -07:00
John-David Dalton
e787bc8ae4 Add semicolons. 2014-06-22 16:38:22 -07:00
John-David Dalton
4937052475 Minor test cleanup. 2014-06-22 00:28:58 -07:00
John-David Dalton
739eb67bec Add _.isError to host object test. 2014-06-22 00:28:58 -07:00
John-David Dalton
a3049b6f94 Ensure _.compose returns a noop function when no arguments are provided. 2014-06-22 00:28:26 -07:00
John-David Dalton
2f1346fefa Add more _.noop use in test.js. 2014-06-22 00:27:47 -07:00
John-David Dalton
f116db3108 Make categories singular. 2014-06-21 21:25:17 -07:00
John-David Dalton
87a8780cca Fix failing tests in older IE related to iteration order. 2014-06-21 15:12:49 -07:00
John-David Dalton
d2de62283b Rename callback params to iterator or customizer where appropriate. 2014-06-21 15:12:49 -07:00
John-David Dalton
11c16139c2 Avoid nullish being treated as plain objects in _.keysIn. 2014-06-21 15:12:49 -07:00
John-David Dalton
1c91ec69ba Simplify _.isObject check in _.trunc. 2014-06-21 15:12:49 -07:00
John-David Dalton
73429e7779 Remove _.isObject use from _.omit and _.pick. 2014-06-21 15:12:48 -07:00
John-David Dalton
fe5aff0c72 More lodash cleanup. 2014-06-21 15:12:48 -07:00
John-David Dalton
c36d29a896 Minor nit in readme. [ci skip] 2014-06-21 15:12:48 -07:00
John-David Dalton
e3b5395905 Remove falsey array check in baseFlatten. 2014-06-21 15:12:48 -07:00
John-David Dalton
3a25ecbbc9 Rework lodash. 2014-06-21 15:12:48 -07:00
John-David Dalton
7d63970293 Remove sorting from _.functions. 2014-06-21 15:12:48 -07:00
John-David Dalton
ee267d23ba Correct _.template use in saucelabs.js. 2014-06-21 15:12:48 -07:00
John-David Dalton
e0e4eed26b Adjust unit tests. 2014-06-19 09:32:13 -07:00
John-David Dalton
5b280bd60d Add excused tests for _.first, _.initial, _.last, _.rest, and _.template. 2014-06-19 09:32:13 -07:00
John-David Dalton
2f9cc91b64 Simplify _.initial. 2014-06-19 09:32:13 -07:00
John-David Dalton
36bcced355 Avoid sort() use in baseFunctions. 2014-06-19 09:32:12 -07:00
John-David Dalton
9a9b17d38d Make _.chain use lodash instead of lodashWrapper. 2014-06-19 09:32:12 -07:00
John-David Dalton
e2cd275ac5 Remove the data param from _.template. 2014-06-19 09:32:12 -07:00
John-David Dalton
61eb5d906c Doc tweaks to _.flatten and other methods. [ci skip] 2014-06-19 09:32:12 -07:00
John-David Dalton
a113dc0861 Remove overloading from _.first, _.last, _.initial, & _.rest. 2014-06-19 09:32:12 -07:00
John-David Dalton
6a164a235d Add methods to the lodash wrapped/unwrapped chaining docs. [ci skip] 2014-06-19 09:32:12 -07:00
John-David Dalton
c1eaa90c2b Move callback above constant. 2014-06-17 10:31:06 -07:00
John-David Dalton
00e00eb7b5 Doc tweaks for boolean params. [ci skip] 2014-06-17 09:16:09 -07:00
John-David Dalton
0d2db28908 Rename _.createCallback to _.callback. 2014-06-17 01:07:04 -07:00
John-David Dalton
20202b793b Remove callback support from _.flatten and make it shallow by default. 2014-06-17 00:59:19 -07:00
John-David Dalton
62e84e73ae Add _.clone and _.flatten tests. 2014-06-17 00:08:33 -07:00
John-David Dalton
73f6fd49d0 Align _.keys with ES6 and coerce primitives to objects. 2014-06-16 12:27:21 -07:00
John-David Dalton
4f9da35b76 Make _.max and _.min return unwrapped values when chaining. 2014-06-16 09:07:47 -07:00
John-David Dalton
cc7b413a2a Update request in travis.yml. 2014-06-16 00:31:14 -07:00
John-David Dalton
fcf29f357d Minor readme nit. [ci skip] 2014-06-16 00:31:08 -07:00
John-David Dalton
4fd1eae84f Fix typo to fix AMD tests. 2014-06-15 18:32:16 -07:00
John-David Dalton
1c770a3c66 Drop testing Node 0.6. and bump in name only to v3.0.0-pre. 2014-06-15 17:07:51 -07:00
John-David Dalton
e152f54903 Make tests work with es6 transpiled code. 2014-06-15 16:18:07 -07:00
John-David Dalton
5d3a9d817a make ui.isModularize set to true if coming from lodash-es6. 2014-06-15 14:24:37 -07:00
John-David Dalton
e884916275 Rebuild dist. 2014-06-15 13:46:51 -07:00
John-David Dalton
5b7b16416b Fix _.zip use with arguments objects. 2014-06-15 13:46:08 -07:00
John-David Dalton
04b93aeaf2 Make object check style consistent. 2014-06-15 11:45:04 -07:00
John-David Dalton
39bdd37615 Correct the resolution of length in _.zip. 2014-06-15 11:45:04 -07:00
John-David Dalton
4ccb3810c2 Make nullish check consistent in variations of _.matches returned function. 2014-06-14 23:21:58 -07:00
John-David Dalton
1065ebb0aa Simplify baseFlatten. 2014-06-14 10:23:26 -07:00
John-David Dalton
74c08de530 Cleanup nonEnumProps assignment. 2014-06-14 10:19:16 -07:00
John-David Dalton
b195fdbf60 Optimize _.matches. 2014-06-13 23:54:33 -07:00
John-David Dalton
f68efe6674 Make _.partial and _.partialRight docs complement each other. [ci skip] [closes #586] 2014-06-13 09:33:33 -07:00
John-David Dalton
ed309182bf Add _.chunk to the features section of the readme. [ci skip] 2014-06-12 23:42:46 -07:00
John-David Dalton
50c6b276f9 Remove _.pluck use from _.zip. 2014-06-12 20:50:47 -07:00
John-David Dalton
4c1a8f358a Add more _.chunk tests. 2014-06-12 09:29:05 -07:00
John-David Dalton
05ff79f347 Avoid using passing in test descriptions. 2014-06-12 09:17:59 -07:00
John-David Dalton
3ae328898d Reduce _.omit. 2014-06-12 09:11:47 -07:00
John-David Dalton
7d35c43def Minor doc / source cleanup. 2014-06-12 08:48:33 -07:00
John-David Dalton
d4f857b739 Move _.chunk to the Arrays category and make it use a default chunkSize of 1. 2014-06-12 08:39:30 -07:00
John-David Dalton
b6bc844b4d Remove support for cloning arrays and make _.isEqual more robust when comparing errors. 2014-06-12 08:38:35 -07:00
John-David Dalton
d06a477371 Add "enumerable" to _.isEmpty doc. [ci skip] 2014-06-11 22:59:30 -07:00
John-David Dalton
c128c029f3 Merge pull request #585 from phated/master
Initial implementation of _.chunk - close #465
2014-06-11 19:00:45 -07:00
Blaine Bublitz
a58ad5006f Initial implementation of _.chunk - close #465 2014-06-11 17:37:06 -07:00
John-David Dalton
3c5655fc3d Rebuild dist. 2014-06-11 12:29:06 -07:00
John-David Dalton
6ab04866ec Fix failing tests. 2014-06-11 12:24:18 -07:00
John-David Dalton
1f07f9d127 Fix _.isEqual test in environment w/o typed arrays. 2014-06-11 12:24:17 -07:00
John-David Dalton
e5ccfc4446 Ensure _.where returns elements that contain all source array values. [closes #583] 2014-06-11 12:24:17 -07:00
John-David Dalton
ec89382e35 Add error object tests to _.isEqual. 2014-06-11 12:24:17 -07:00
John-David Dalton
4a7873ef77 Update tested Firefox in the readme. [ci skip] 2014-06-11 12:24:17 -07:00
John-David Dalton
ff2fd45ff0 Only use ctorByClass if typed array constructor is incorrect. 2014-06-10 20:28:02 -07:00
John-David Dalton
e8cfeec0cf Cleanup tests and ensure the Worker test waits no more than 30 seconds (including retries). 2014-06-10 20:28:02 -07:00
John-David Dalton
c72171d1da Add _.once tests for memorized return values. 2014-06-10 09:50:10 -07:00
John-David Dalton
885b56000b Make less stable tests leverage the retry count of asyncTest. 2014-06-10 09:40:53 -07:00
John-David Dalton
3d1ee9dcf0 Clarify AMD exports comment. [ci skip] 2014-06-09 23:00:32 -07:00
John-David Dalton
5d2133a483 Fix unit test for rhino/ringo. 2014-06-09 09:37:14 -07:00
John-David Dalton
52bb56ba43 Remove support.argsObject. 2014-06-09 02:05:54 -07:00
John-David Dalton
d2edf11726 Ensure _.callback supports binding built-in methods. [closes #576] 2014-06-09 01:40:02 -07:00
John-David Dalton
9a152c23bb Minor _.sortBy doc nit. [ci skip] 2014-06-09 00:17:25 -07:00
John-David Dalton
8572445f57 Optimize _.isEqual by using _.keys and ensure arguments objects are compared correctly. 2014-06-08 19:42:11 -07:00
John-David Dalton
9940d73167 Update requires. 2014-06-07 06:53:02 -07:00
John-David Dalton
8b8a9ae854 Attempt to fix Safari 4. 2014-06-06 15:00:36 -07:00
John-David Dalton
036bf92223 Ensure a byte length is passed. 2014-06-05 07:13:07 -07:00
John-David Dalton
410969743f Avoid subarray for mobile Safari. 2014-06-05 00:47:37 -07:00
John-David Dalton
14da67121c Add Safari 4 to saucelabs.js. 2014-06-05 00:47:25 -07:00
John-David Dalton
681d3e09ba Rebuild dist. 2014-06-04 08:57:01 -07:00
John-David Dalton
0ce130efa7 Cleanup readme and update Opera versions. [ci skip] 2014-06-04 08:56:13 -07:00
John-David Dalton
d14d7ade85 Fix baseIsEqual doc param typo. [ci skip] 2014-06-04 08:56:13 -07:00
John-David Dalton
7b4fd28ef1 Ensure _.merge ignores undefined values of source object properties. [closes #573] 2014-06-04 08:56:13 -07:00
John-David Dalton
b2280b2d72 Fixed _.keys in Safari 5.0.5. 2014-06-02 09:29:40 -07:00
John-David Dalton
b41826c332 Fixed cloneBuffer in PhantomJS. 2014-06-02 09:29:40 -07:00
John-David Dalton
3d93ed9059 Fix failing tests in Safari > 5. 2014-06-02 08:15:19 -07:00
John-David Dalton
35a0756e5a Add fallback for ArrayBuffer#slice. 2014-06-01 23:02:39 -07:00
John-David Dalton
10419366f9 Rename num to n in doc examples. [ci skip] 2014-06-01 23:02:39 -07:00
John-David Dalton
8373d31013 Cleanup readme. [ci skip] 2014-06-01 23:02:39 -07:00
John-David Dalton
0c89a8f145 Remove narwhal from travis.yml testing. 2014-06-01 23:02:39 -07:00
John-David Dalton
257ac4d37e Remove unused vendor files. 2014-05-31 19:38:27 -05:00
John-David Dalton
653aee8b07 Update to version info to 2.5.0-pre. 2014-05-31 19:38:27 -05:00
John-David Dalton
88726aff8c Update readme. [ ci skip] 2014-05-31 19:38:27 -05:00
Alex Elder
baabdb4ac2 Updated README.md
This commit adds links to Lo-Dash documentation under a specific "Documentation" heading, hopefully improving usability for users searching for the API docs.
2014-05-31 19:38:26 -05:00
Benjamin Tan
6277510557 Use Markdown links formatting. [ci skip] 2014-05-31 19:38:26 -05:00
John-David Dalton
e9ab17fcb1 Fix failing test. 2014-05-31 19:38:26 -05:00
John-David Dalton
2f9ba719d4 Add clone tests for array buffers. 2014-05-30 15:27:32 -04:00
John-David Dalton
e259f300b1 Remove unused fork in baseAssign and baseMerge. 2014-05-30 14:58:47 -04:00
John-David Dalton
fcc357ddd1 Source cleanup of onJobStart. 2014-05-30 14:58:36 -04:00
John-David Dalton
e613198af7 Detect sauce error message in result. 2014-05-30 14:58:08 -04:00
John-David Dalton
e3c1214971 Fix test stability. 2014-05-30 13:15:32 -04:00
John-David Dalton
1c3f9f7fbf Ensure tests that timeout are marked as errors. 2014-05-30 13:06:06 -04:00
John-David Dalton
f4a1573586 Rename _.truncate to _.trunc to align with ES6. 2014-05-30 13:04:56 -04:00
John-David Dalton
95db668c3c Make reError more robust and leverage console.log sugar more. 2014-05-30 10:03:06 -04:00
John-David Dalton
691e21fa78 Delay status completion until there is a valid job ID. 2014-05-28 16:38:27 -04:00
John-David Dalton
c555681c8b Add extra object in doc examples of _.assign and _.defaults. [ci skip] 2014-05-28 15:35:00 -04:00
John-David Dalton
ae7ef24196 Minor source nit in test/test.js. 2014-05-28 15:23:40 -04:00
John-David Dalton
f935b141f1 Fix test typo. 2014-05-28 15:23:40 -04:00
John-David Dalton
a893d43d16 Move test error catching code before any other script files. 2014-05-28 15:23:40 -04:00
John-David Dalton
7cb47c8494 Add chaining tests to string methods. 2014-05-27 23:21:03 -04:00
John-David Dalton
5ef4c763b6 Add chaining tests. 2014-05-26 16:56:15 -06:00
John-David Dalton
459b5bd89c Adjust callback arg counts and fast paths. 2014-05-26 07:17:35 -07:00
John-David Dalton
c5237a926d Update vendor. 2014-05-25 23:55:59 -07:00
John-David Dalton
2e5052a7fa Bump the tested Opera version in readme. [ci skip] 2014-05-25 23:10:39 -07:00
John-David Dalton
cd8d9bf07c Ensure _.isEqual works on error objects and add tests for cloning and comparing errors and typed arrays. 2014-05-25 23:10:08 -07:00
John-David Dalton
7da022ebb4 Consistent test order. 2014-05-25 15:39:54 -07:00
John-David Dalton
67f9c7e0f0 Code cleanup and removal of ctorByClass. 2014-05-25 13:18:13 -07:00
John-David Dalton
1812d557b6 Minor doc nit. [ci skip] 2014-05-25 12:32:15 -07:00
John-David Dalton
34cde430a5 Add private isArrayLike helper and add object classifications for typed arrays with support for cloning and comparing them. 2014-05-25 12:24:32 -07:00
John-David Dalton
12a6b58614 Fix _.throttle doc typo. [ci skip] 2014-05-25 09:14:02 -07:00
John-David Dalton
cb81fccfaf Lots of doc tweak removing heavy will use. [ci skip] 2014-05-24 18:33:05 -07:00
John-David Dalton
1ce0fffd25 Add a cancel function to debounced functions. [closes #567] 2014-05-24 14:39:53 -07:00
John-David Dalton
0c1c4b08c7 Fix doc typo. [ci skip] 2014-05-23 23:45:45 -07:00
Mathias Bynens
c875b61003 Make _.escape escape backticks as well
In Internet Explorer ≤ 8, the backtick character can be used to break out of unquoted attribute values or HTML comments. See http://html5sec.org/#102, http://html5sec.org/#108, and http://html5sec.org/#133.
2014-05-23 10:38:05 +02:00
John-David Dalton
f4b34c8ca5 Make _.isEqual callback test circular. 2014-05-22 23:28:05 -07:00
John-David Dalton
a6b4b5e30c Update tested Chrome version in readme. [ci skip] 2014-05-22 23:08:32 -07:00
John-David Dalton
64fb8f0c53 Remove trailing comma to fix test fails in old IE. 2014-05-21 16:43:13 -07:00
John-David Dalton
78a312f61c Rebuild dist. 2014-05-21 16:07:19 -07:00
John-David Dalton
2c6c4426e8 Fix jashkenas/underscore#1621. 2014-05-21 16:06:06 -07:00
John-David Dalton
a9df0601a6 Enhance callback args tests for _.clone, _.cloneDeep, and _.isEqual. 2014-05-21 00:20:05 -07:00
John-David Dalton
4345f353a0 Fix callback use with _.isEqual. 2014-05-21 00:20:05 -07:00
John-David Dalton
96b525658e Cleanup optionToValue. 2014-05-21 00:20:05 -07:00
John-David Dalton
9525952573 Avoid variable assignments in return statements. 2014-05-21 00:20:05 -07:00
John-David Dalton
76828a87ee Optimize _.every and _.some and cleanup _.callback, _.forEach, and _.forEachRight. 2014-05-21 00:20:05 -07:00
John-David Dalton
789eb59904 Correct .npm folder permissions in travis.yml. 2014-05-21 00:20:05 -07:00
John-David Dalton
c0265f8fd9 Add _.runInContext doc example. 2014-05-21 00:20:05 -07:00
John-David Dalton
891ebb8ff6 Attempt to detect more false test errors. 2014-05-21 00:20:05 -07:00
John-David Dalton
1111c20d54 Simplify reWords. 2014-05-19 08:51:33 -07:00
John-David Dalton
387176e83d Add baseAssign, baseBindAll, baseInvoke, basePick, basePullAt, and createAssigner. 2014-05-19 01:03:22 -07:00
John-David Dalton
80a38b285d Punt on AMD testing for Android because of stability issues. 2014-05-19 01:03:22 -07:00
John-David Dalton
aa0c02a243 Avoid retrying the tunnel more times than allowed. 2014-05-19 01:03:22 -07:00
John-David Dalton
3c5932af75 Update Underscore tests and excuse tests for edge features from the Underscore build. 2014-05-19 01:03:22 -07:00
John-David Dalton
f40a7d47f5 Simplify .gitattributes. [ci skip] 2014-05-19 01:03:22 -07:00
John-David Dalton
f85543c7ff Only retry a test if it errors not because of unit test fails. 2014-05-19 01:03:21 -07:00
John-David Dalton
36d2ff7c3b Update qunit-extras assert expected count appropriately and fix typo. 2014-05-19 01:03:21 -07:00
John-David Dalton
7ba673ed89 Rename arrayRef to arrayProto for consistency. 2014-05-16 02:18:14 -07:00
John-David Dalton
a0cba79df2 Excuse assert count expected error in Backbone and add support for excusing them qunit-extras. 2014-05-16 02:18:14 -07:00
John-David Dalton
c91e8d7aa7 Avoid a false fail in slower Ringo (and other slower environments). 2014-05-16 02:18:14 -07:00
John-David Dalton
e85b0a81ba Minor style nit in test.js. 2014-05-16 02:18:13 -07:00
John-David Dalton
bfc40498bd Update vendors. 2014-05-16 02:18:13 -07:00
Benjamin Tan
41ac7062f8 Minor comment and code style fixes 2014-05-15 19:04:06 -07:00
John-David Dalton
71c19b566b Tweak escaping sourceURL in docs. [ci skip] 2014-05-15 19:04:06 -07:00
John-David Dalton
0de72f3abb Add compileFunction. 2014-05-15 19:04:06 -07:00
John-David Dalton
ce3c78d30b Ensure tunnel stops when jobs are completed. 2014-05-15 19:04:06 -07:00
John-David Dalton
7152308c25 Use result job_id instead of parsing the url and ensure tunnel can restart if the tunnel failed to start. 2014-05-15 19:04:06 -07:00
John-David Dalton
cd838d4902 Add tunnel timeout support. 2014-05-15 19:04:06 -07:00
John-David Dalton
f7799eee59 Avoid unneeded index var in baseBind. 2014-05-15 19:04:06 -07:00
John-David Dalton
247718bc6c Update sauce-tunnel. 2014-05-15 19:04:06 -07:00
John-David Dalton
6b5521fbf7 Rename testId to taskId. 2014-05-15 19:04:06 -07:00
John-David Dalton
13e00379ae Cleanup baseIsEqual and baseMerge. 2014-05-13 08:58:01 -07:00
John-David Dalton
347663716c Null _timerId in Job#status. 2014-05-13 08:58:01 -07:00
John-David Dalton
69415ea966 Update tested Firefox version on Sauce. 2014-05-13 08:58:01 -07:00
John-David Dalton
6c71e3c583 Pass more callback args to custom callbacks of _.clone, _.cloneDeep, and _.isEqual. 2014-05-13 08:58:01 -07:00
John-David Dalton
06861ceb55 Add Job#resetting flag. 2014-05-13 08:58:01 -07:00
John-David Dalton
6e286473ab Add more logInline calls and move state flag assignment higher in methods. 2014-05-13 08:58:00 -07:00
John-David Dalton
6091219aaf Split out stop and reset events in Tunnel#restart. 2014-05-13 08:58:00 -07:00
John-David Dalton
76cee1287a Ensure jobs are reset before the tunnel is closed. 2014-05-13 08:58:00 -07:00
John-David Dalton
ff138c6d47 Null out the descriptor.value after using it in setData. 2014-05-12 07:49:20 -07:00
Benjamin Tan
a89f8b8098 Add $ signs to bash prompts 2014-05-12 07:49:20 -07:00
John-David Dalton
f4009a9944 Make recursive test expand to _.debounce too. 2014-05-12 07:49:20 -07:00
John-David Dalton
16b479d21e Fix jobUrl typo in saucelabs.js. 2014-05-12 07:49:20 -07:00
John-David Dalton
0f8c20c3ab Add ui.isForeign, add guards for Worker tests, and remove Dojo loader filter from test. 2014-05-12 07:49:20 -07:00
John-David Dalton
d5c3b258f3 Rename assignDefaultsOwn to assignOwnDefaults and remove createAssigner and defaultsOwn. 2014-05-11 03:49:41 -07:00
John-David Dalton
ee4a703407 Add createAssigner, defaultsOwn, and expand the callback args of _.assign and _.merge. 2014-05-11 02:35:46 -07:00
John-David Dalton
e901208721 Fix typo in _.times docs. [ci skip] [closes #549] 2014-05-09 08:46:56 -07:00
John-David Dalton
5deb7371ab Rebuild dist. 2014-05-09 02:32:14 -07:00
John-David Dalton
f999195f47 Style nit on the IIFE used with mixin. 2014-05-09 02:31:25 -07:00
John-David Dalton
9b920cf813 Add baseFunctions to ensure _.mixin only iterates over own keys of source objects. 2014-05-09 02:31:25 -07:00
John-David Dalton
4155e8e0ce Add a doc note for iterating inherited properties to _.bindAll and _.functions. [ci skip] 2014-05-09 02:31:25 -07:00
John-David Dalton
b583530c66 Simplify memoize doc example. [ci skip] 2014-05-07 01:32:21 -07:00
John-David Dalton
43c13c22a8 Make _.memoize skip the __proto__ key. 2014-05-07 00:40:27 -07:00
John-David Dalton
32167b45ce Ensure _.pullAt ignores non-index values. 2014-05-07 00:12:12 -07:00
John-David Dalton
f09ae1e2e3 Fix url parsing. 2014-05-06 23:03:22 -07:00
John-David Dalton
086e1e1a74 Fix resolving job ids. 2014-05-06 21:49:33 -07:00
John-David Dalton
1020637d79 Merge pull request #541 from danallison/master
Fix old `pullAt` doc example. [ci skip]
2014-05-06 10:56:43 -07:00
Dan Allison
9c30d69d55 Fix old pullAt example 2014-05-06 10:16:51 -07:00
John-David Dalton
ff673f053b Use String instead of +'' for consistent style. 2014-05-06 09:20:44 -07:00
John-David Dalton
2514987d3e Comment nit. [ci skip] 2014-05-06 08:44:35 -07:00
John-David Dalton
e332a916b0 Add debug. 2014-05-06 08:14:19 -07:00
John-David Dalton
5eb7faec29 Specify Node 0.11.11 to avoid 0.11.13 which isn't compatible with istanbul. 2014-05-06 06:08:34 -07:00
John-David Dalton
8cfebee922 Remove id check from Job#stop. 2014-05-06 05:21:11 -07:00
John-David Dalton
f4a22f8aef Add Job#remove to remove old jobs when restarting. 2014-05-06 05:13:45 -07:00
John-David Dalton
5fd641e8c7 Add _.pullAt to features section of readme. [ci skip] 2014-05-04 19:24:43 -07:00
John-David Dalton
4cde537a7f Cleanup initialization of Job and Tunnel instances. 2014-05-04 16:13:07 -07:00
John-David Dalton
56ee4c1ae5 Remove unnecessary this binding and emit register restart callbacks so they execute sooner. 2014-05-04 16:04:24 -07:00
John-David Dalton
1874ad2ff2 Correct typo in Job#reset. 2014-05-04 15:39:50 -07:00
John-David Dalton
907ed641bf Use the chrome sauce browser identifier in place of googlechrome. 2014-05-04 13:49:54 -07:00
John-David Dalton
a23ccd863d Message format nit for logging retries. [ci skip] 2014-05-04 13:10:50 -07:00
John-David Dalton
8d145d7a32 Make threshold account for job batch sizes smaller than the throttled amount. 2014-05-04 12:28:49 -07:00
John-David Dalton
4a0419e554 Rebuild dist. 2014-05-04 10:44:25 -07:00
John-David Dalton
f23a458319 Fix typo in _.pullAt. 2014-05-04 10:43:43 -07:00
John-David Dalton
1e324103cc Tweak docs for _.at, _.omit, and _.pick. [ci skip] 2014-05-04 10:43:43 -07:00
John-David Dalton
85d8ced299 Add baseAt to reduce _.at and _.pullAt. 2014-05-04 10:43:43 -07:00
John-David Dalton
0631b8f052 Whitespace nit. 2014-05-04 02:57:22 -07:00
John-David Dalton
649994464c Tweak docs for _.pull, _.pullAt, and _.remove. [ci skip] 2014-05-04 02:57:22 -07:00
John-David Dalton
8c618780b7 Rename _.removeAt to _.pullAt. [closes #490] 2014-05-04 02:57:07 -07:00
Dan Allison
0dc2e8994b use else instead of continue 2014-05-04 02:51:55 -07:00
Dan Allison
d25ab4f204 use more descriptive variable name 2014-05-04 02:51:54 -07:00
Dan Allison
ff26080c5c fix _.removeAt with repeated indexes 2014-05-04 02:51:54 -07:00
Dan Allison
95bd2dde19 add removeAt function
(cherry picked from commit 06b3eae373484618b58f70f3cd6ecda319bfd977)
2014-05-04 02:50:23 -07:00
John-David Dalton
6ad31a5441 Restart tunnel if all *active* jobs have restarted. 2014-05-03 23:35:18 -07:00
John-David Dalton
702a82bb38 Remove args var from _.at. 2014-05-03 22:05:26 -07:00
John-David Dalton
a5e91385b0 Expand the excuse window of load errors to 3 seconds or more. 2014-05-03 21:55:18 -07:00
John-David Dalton
4c690b9d4c Make documented args names of methods that accept more than one plural. [ci skip] 2014-05-03 21:44:43 -07:00
John-David Dalton
695d6e14d4 Remove _.at guard for _.map use. 2014-05-03 21:42:19 -07:00
John-David Dalton
c19f87134e Restart tunnel if all jobs have restarted. 2014-05-03 21:41:02 -07:00
John-David Dalton
3de50e8dd4 Emit restart events for Job and Tunnel. 2014-05-03 21:28:19 -07:00
John-David Dalton
fb20dae0a8 Whitespace nits. [ci skip] 2014-05-03 21:27:32 -07:00
John-David Dalton
0f8db11f53 Restrict script load error excusal a bit. 2014-05-03 07:55:11 -07:00
John-David Dalton
e3f94156f1 Update tested version of Firefox in readme. [ci skip] 2014-05-03 06:30:30 -07:00
John-David Dalton
cf468fc4d1 Update tested version of Node in readme. [ci skip] 2014-05-03 00:27:59 -07:00
John-David Dalton
849cf30b95 Rebuild dist. 2014-05-03 00:27:41 -07:00
John-David Dalton
d08febc711 Avoid reporting tests to Sauce Labs when errors occur to force a retry. 2014-05-03 00:16:15 -07:00
John-David Dalton
53bfafb84c Add doc note to _.defaults for a deep version. [ci skip] [closes #154] 2014-05-02 22:49:36 -07:00
John-David Dalton
40809e40c2 Fix _.partialRight doc example. [ci skip] [closes #540] 2014-05-02 22:33:17 -07:00
John-David Dalton
925197ae09 Add doc note on Firefox OS certified apps. [ci skip] 2014-05-02 21:41:25 -07:00
John-David Dalton
07f72de63d Use _.partial where applicable. 2014-05-02 20:55:59 -07:00
John-David Dalton
f17f62b532 Move SauceTunnel callbacks out of Tunnel#start and Tunnel#stop and use util.inherits. 2014-05-02 20:50:32 -07:00
John-David Dalton
b97bbe0572 Add Jobs#reset. 2014-05-02 19:38:10 -07:00
John-David Dalton
9e4cc7fdbc Reduce flag checking. 2014-05-02 19:37:48 -07:00
John-David Dalton
7dcb56ea5c Reset jobs when tunnel restarts. 2014-05-02 11:24:53 -07:00
John-David Dalton
a814c6d152 Fix restarting tunnels. 2014-05-02 09:35:09 -07:00
John-David Dalton
cbe3a0fde7 Add running flag to Job and Tunnel. 2014-05-02 08:48:32 -07:00
John-David Dalton
7e375370fa Fix Tunnel#stop. 2014-05-02 07:42:41 -07:00
John-David Dalton
1d149b100b Add state checks to test/saucelabs.js. 2014-05-02 01:44:18 -07:00
John-David Dalton
1bce75ed53 Add the ability to retry sauce tunnel connections. 2014-05-02 01:22:03 -07:00
John-David Dalton
d8a72fe797 Update travis deps to use ^ version indicator instead of ~. 2014-05-01 09:29:01 -07:00
John-David Dalton
5bd8319f99 Add retry limit to sauce retry message. 2014-05-01 08:52:20 -07:00
John-David Dalton
d8221b880b Remove unused color from ansiCodes. 2014-05-01 08:51:35 -07:00
John-David Dalton
1316ce5ca8 Fix dequeue. 2014-05-01 02:55:11 -07:00
John-David Dalton
d5562767a2 Cleanup test titles. 2014-05-01 01:33:02 -07:00
John-David Dalton
1a03ee8b9b Ensure _.callback doesn't error if provided a nullish func argument and a thisArg. 2014-05-01 01:32:47 -07:00
John-David Dalton
d07e53e9a0 Add Job#restart and Job#stop to test/saucelabs.js. 2014-05-01 00:47:26 -07:00
John-David Dalton
04160e6acc Make logInline treat nullish values as an empty string. 2014-05-01 00:22:03 -07:00
John-David Dalton
6f4c7ca171 Add job throttle to test/saucelabs.js. 2014-04-30 21:07:51 -07:00
John-David Dalton
2d397efcf5 Add placeholders note to the features section of the readme. [ci skip] 2014-04-30 09:24:58 -07:00
John-David Dalton
ba8e59e1bd Keep skipping placeholder tests for modularized builds. 2014-04-30 09:11:31 -07:00
John-David Dalton
568faa526f Rebuild dist. 2014-04-30 08:48:37 -07:00
John-David Dalton
b761fbaabe Fix _.mixin doc typo. 2014-04-30 08:46:25 -07:00
John-David Dalton
4a493a96d7 Remove isPreBuild checks from test/test.js. 2014-04-30 08:46:25 -07:00
John-David Dalton
601244ba74 Update formatting for tested browsers in readme. [ci skip] 2014-04-30 08:20:07 -07:00
John-David Dalton
d606197264 Try to use the tunnel-identifier key. 2014-04-30 08:20:07 -07:00
John-David Dalton
1fee10e167 Only apply idleTimeout to queued jobs. 2014-04-30 08:20:07 -07:00
John-David Dalton
674802abe4 Make _.mixin chainable and make it assign to this instead of hard coding assignment to lodash. 2014-04-30 00:11:45 -07:00
John-David Dalton
179422a84b Add more _.where tests. 2014-04-29 19:15:09 -07:00
John-David Dalton
5c9e4685db _.where should perform a partial comparison of *all* objects within arrays of source. [closes #536] 2014-04-29 09:28:56 -07:00
John-David Dalton
c59f8c734a Apply idle-timeout to queued jobs too. 2014-04-29 08:18:36 -07:00
John-David Dalton
d2fa2be5af Fix doc typos fourty to forty. [ci skip] 2014-04-29 08:18:36 -07:00
Max Bucknell
2d3d66e9d1 Fix spelling mistake 2014-04-29 08:18:36 -07:00
John-David Dalton
21713801ad Add some debug. 2014-04-29 01:51:49 -07:00
John-David Dalton
598e2adebe Adjust modern build testing for older Android. 2014-04-29 00:38:56 -07:00
John-David Dalton
8bbb84fdc7 Try to stabilize sauce results. 2014-04-29 00:17:51 -07:00
John-David Dalton
59b7bc7b98 Correct browserName output. 2014-04-28 23:35:51 -07:00
John-David Dalton
55d52be3c2 Add missing comma in test/saucelabs.js. 2014-04-28 10:21:36 -07:00
John-David Dalton
3aa4e45bdb Rebuild dist. 2014-04-28 09:03:21 -07:00
John-David Dalton
534976e64f Cleanup platforms in test/saucelabs.js. 2014-04-28 08:43:43 -07:00
John-David Dalton
3efa9d2030 Remove IIFE in test/saucelabs.js. 2014-04-28 08:41:24 -07:00
John-David Dalton
2c4657355f Ensure that _.transform checks that object is an object before using it as the accumulator [[Prototype]]. 2014-04-28 08:39:35 -07:00
John-David Dalton
68702ca43f More _.isObject cleanup. 2014-04-28 08:34:54 -07:00
John-David Dalton
54a0de9b52 Make _.merge align with _.assign exit early snippet. 2014-04-28 08:31:54 -07:00
John-David Dalton
94832f3f81 Simplify _.defaults. 2014-04-28 08:31:06 -07:00
John-David Dalton
fb00ba9efd Cleanup _.isObject and _.isRegExp. 2014-04-28 08:30:32 -07:00
John-David Dalton
96736cf1de Tweak _.max, _.min, and trim helper comments. [ci skip] 2014-04-28 08:29:43 -07:00
John-David Dalton
834c55ec6f Add _.escapeRegExp, pad, & trim tests. 2014-04-28 08:28:13 -07:00
John-David Dalton
6528a434ce Add / to characters escaped by _.escapeRegExp 2014-04-28 08:27:47 -07:00
John-David Dalton
a24ee0a331 Update vendor/qunit-extras. 2014-04-28 00:47:21 -07:00
John-David Dalton
e86144bb06 Try mobile browsers with sauce rest api. 2014-04-27 12:01:05 -07:00
John-David Dalton
ce7cb16cfe Rebuild dist. 2014-04-27 11:44:11 -07:00
John-David Dalton
754bafc069 Add doc examples for _.max and _.min for +/-Infinity. [ci skip] 2014-04-27 11:41:09 -07:00
John-David Dalton
7eff6fde7c Avoid RegExp#teat error in older Opera. 2014-04-27 11:41:09 -07:00
John-David Dalton
626dac600a Add more DOM element tests. 2014-04-27 11:41:08 -07:00
John-David Dalton
f1b2d4340d Move the dom/function check up in baseIsEqual. 2014-04-26 08:02:16 -07:00
John-David Dalton
aea4d73e61 Cleanup throbber interval in vendor/qunit-extras. 2014-04-26 08:02:10 -07:00
John-David Dalton
3d6c74ead1 Add list of modern browser version ranges to readme. [ci skip] 2014-04-25 10:06:22 -07:00
John-David Dalton
c606f80fe3 Clarify _.uniq docs on callback. [ci skip] 2014-04-25 10:06:04 -07:00
John-David Dalton
250ca36f05 Ensure _.max and _.min return the correct value when callback computes +/-Infinity. 2014-04-25 07:21:10 -07:00
John-David Dalton
4c63be066f Change wording to retry. 2014-04-24 09:55:17 -07:00
John-David Dalton
b559eeb7e6 Try documented tunnel identifier key over undocumented one. 2014-04-23 23:24:44 -07:00
John-David Dalton
a9742dbdc6 Update ecstatic sauce test dep. 2014-04-23 23:24:38 -07:00
John-David Dalton
5feaade1c7 Correct attempt count in test/saucelabs.js. 2014-04-21 21:49:43 -07:00
John-David Dalton
31747dfecd Rebuild dist. 2014-04-20 13:41:36 -07:00
John-David Dalton
eda9484413 Allow getIndexOf to work when there is no external _.indexOf defined. 2014-04-20 13:40:05 -07:00
John-David Dalton
7e904c1d15 Update tested browsers in sauce. 2014-04-20 13:40:05 -07:00
John-David Dalton
5f8527ba04 Ensure error objects from iframes are tested. 2014-04-20 13:40:05 -07:00
John-David Dalton
082e95b700 Increase test coverage. 2014-04-20 13:40:05 -07:00
John-David Dalton
aef5c61415 Fix missing comma in test/test.js. 2014-04-20 13:40:05 -07:00
John-David Dalton
68fdac532f Liberal use of parentheses. 2014-04-19 12:18:14 -07:00
John-David Dalton
f718284538 Ensure _.keys and _.keysIn always skip the constructor property on prototype objects. 2014-04-19 11:55:07 -07:00
John-David Dalton
966283dd6d Minor test cleanup. [ci skip] 2014-04-19 11:55:07 -07:00
John-David Dalton
0f3ec9ad73 Newline nits. [ci skip] 2014-04-19 11:55:07 -07:00
John-David Dalton
cb685904ef Add _.isError to the features section of the readme. [ci skip] 2014-04-19 11:55:06 -07:00
John-David Dalton
5bf545ee90 Cleanup _.isError and add more tests. 2014-04-19 09:48:51 -07:00
Mike Pennisi
b018ada5c8 Implement _.isError 2014-04-19 09:48:51 -07:00
John-David Dalton
976e81be43 Update vendor/qunit-extras. 2014-04-18 09:24:47 -07:00
John-David Dalton
694cb18256 Add an error message to each TypeError. 2014-04-18 09:12:52 -07:00
John-David Dalton
a715a5fa37 Don't designate \x85 as whitespace. 2014-04-17 21:42:43 -07:00
John-David Dalton
1e10c9d508 Remove more native trim test scaffolding . 2014-04-17 21:42:43 -07:00
John-David Dalton
2aacfea8ea Update tested Chrome version in readme. [ci skip] 2014-04-17 21:42:43 -07:00
John-David Dalton
43c2cb4ba8 Remove unneeded lodashBizarro tests. 2014-04-17 07:33:14 -07:00
John-David Dalton
c93f708bc8 Add whitespace tests. 2014-04-17 07:33:14 -07:00
John-David Dalton
353416a088 Treat \x85 as whitespace. 2014-04-17 07:33:14 -07:00
John-David Dalton
93b98abb8d Remove native trim, trimLeft, & trimRight use. 2014-04-17 07:33:14 -07:00
John-David Dalton
5e28e38c98 Fix assert count. 2014-04-17 07:33:14 -07:00
John-David Dalton
0e828e5b3b Ensure _.difference works with arrays regardless of arg position. 2014-04-16 08:50:16 -07:00
John-David Dalton
c331d12678 Add _.difference, _.intersection, and _.xor tests. 2014-04-16 08:34:11 -07:00
John-David Dalton
f0817b2461 Whitespace nits in test/test.js. [ci skip] 2014-04-16 08:33:16 -07:00
John-David Dalton
d3f2cd5321 Add _.intersection and _.union tests. 2014-04-16 00:25:36 -07:00
John-David Dalton
7017766591 Rebuild dist. 2014-04-15 23:21:37 -07:00
John-David Dalton
841890c178 Add tests for _.pluck, _.findWhere, and _.where for their key or source arguments. 2014-04-15 23:19:39 -07:00
John-David Dalton
4f5189b0dd Use _.noop more in test/test.js. 2014-04-15 23:04:24 -07:00
John-David Dalton
250ecd13bd Avoid != in createCallback. 2014-04-15 22:41:01 -07:00
John-David Dalton
34133b094b Ensure pluck always used property and findWhere and where always use matches. 2014-04-15 22:40:26 -07:00
John-David Dalton
75c3939c88 Simplify _.isEmpty. 2014-04-15 22:13:28 -07:00
John-David Dalton
cb44430a3f Update underscore tests and vendor again. 2014-04-15 17:51:30 -07:00
John-David Dalton
be88b5aba2 Fix error in Firefox < 4. 2014-04-15 17:39:27 -07:00
John-David Dalton
3d0f7b8e7e Make more underscore tests pass. 2014-04-15 09:24:16 -07:00
John-David Dalton
a53d5dc791 Prevent test fails for the npm build. 2014-04-15 02:17:07 -07:00
John-David Dalton
7f1164b6a6 Remove _.isObject use from _.findWhere and _.where. 2014-04-15 01:36:01 -07:00
John-David Dalton
2174f10db5 Excuse invalid underscore _.intersection tests. 2014-04-15 01:21:55 -07:00
John-David Dalton
e3c218092c Add _.findWhere as its own method. 2014-04-15 01:17:55 -07:00
John-David Dalton
cf73ba2905 Update other vendors. 2014-04-15 01:02:14 -07:00
John-David Dalton
d653b951e3 Update vendor/underscore and underscore tests. 2014-04-15 01:01:18 -07:00
John-David Dalton
900c0eafac Use matched instead of found in docs. [ci skip] 2014-04-15 00:56:58 -07:00
John-David Dalton
bf6eaaf625 Make _.where work with empty sources. 2014-04-14 23:11:11 -07:00
John-David Dalton
32f3d214cb Rebuild dist. 2014-04-14 21:39:55 -07:00
John-David Dalton
cd62b2a209 Add more tests for null thisArg arguments. 2014-04-14 21:35:10 -07:00
John-David Dalton
ff25b4cb46 Ensure resolver provided to _.memoize is a function if it's truthy. 2014-04-14 21:33:45 -07:00
John-David Dalton
5c07dd995e Use arrayEach for baseClone, baseMerge, and transform. 2014-04-14 19:53:30 -07:00
John-David Dalton
f54cc28a43 Move doc node from shimIsPlainObject to _.isPlainObject. [ci skip] 2014-04-14 09:01:42 -07:00
John-David Dalton
9b1c7bb1e3 More doc tweaks. [ci skip] 2014-04-13 23:06:17 -07:00
John-David Dalton
ffe8a729b7 Add doc note to _.isPlainObject for objects created by Object.create(null). [closes #526] [ci skip] 2014-04-13 19:03:56 -07:00
John-David Dalton
a47f356021 Cleanup tests. 2014-04-13 19:03:09 -07:00
John-David Dalton
7d7a34c733 Increase code coverage when testing AMD modules. 2014-04-13 16:12:08 -07:00
John-David Dalton
e306959ebe Ensure _.matches is tested against sources with more than one property too. 2014-04-13 00:36:40 -07:00
John-David Dalton
ce16c4d37f Update narwhal, rhino, and ringo source links in travis.yml. 2014-04-12 23:53:18 -07:00
John-David Dalton
565cc05b48 Avoid strict comparison to function reference in _.callback test. 2014-04-12 23:51:55 -07:00
John-David Dalton
287839e498 Add test for custom _.indexOf methods, _.contains, and objects. 2014-04-12 18:57:39 -07:00
John-David Dalton
4be0969098 Rebuild dist. 2014-04-12 17:35:18 -07:00
John-David Dalton
f1008b1abf Simplify _.contains. Thanks @phated. 2014-04-12 17:35:04 -07:00
John-David Dalton
8d8b3c2194 Inline partitionInitializer. 2014-04-12 17:15:17 -07:00
John-David Dalton
6631b57fc0 Case nit in test/saucelabs.js. 2014-04-12 16:51:31 -07:00
John-David Dalton
88b4bc3753 Add comment blocks and browserName helper to test/saucelabs.js. 2014-04-12 01:59:10 -07:00
John-David Dalton
23a4dde10f Update sauce-tunnel require call. 2014-04-12 01:33:00 -07:00
John-David Dalton
5a47eb8559 Rebuild dist. 2014-04-12 01:03:27 -07:00
John-David Dalton
81cd990052 Remove source initialization from matches. 2014-04-12 01:02:58 -07:00
John-David Dalton
dd9e7cf665 Update sauce-tunnel in travis.yml. 2014-04-12 00:57:24 -07:00
John-David Dalton
b2f50b5327 Add mutation notes to _.pull and _.remove. [ci skip] 2014-04-12 00:22:14 -07:00
John-David Dalton
b21fe4b2fc Fix semicolon/comma typo. 2014-04-12 00:00:11 -07:00
John-David Dalton
5f23a3143c Whitespace nits. 2014-04-11 23:48:56 -07:00
John-David Dalton
ef136c9d00 Doc nit for _.pairs. [ci skip] 2014-04-11 23:24:45 -07:00
John-David Dalton
c7e8b724c7 Add arrayEach, arrayEachRight and arrayMap helpers. 2014-04-11 23:24:09 -07:00
John-David Dalton
0243e7ba8b Add partitionInitializer helper. 2014-04-11 23:23:20 -07:00
John-David Dalton
b3f5375283 Ensure functions created by _.matches don't error when comparing falsey object values. [closes #523] 2014-04-10 03:05:08 -07:00
John-David Dalton
f90f683be5 Add doc note to _.isEqual about not supporting comparing DOM nodes or functions. [ci skip] 2014-04-10 01:20:23 -07:00
John-David Dalton
bd23666b45 Ensure _.contains works with a fromIndex for objects. 2014-04-10 00:54:27 -07:00
John-David Dalton
a620c2ec1a Add more falsey value tests. 2014-04-09 09:27:35 -07:00
John-David Dalton
a723612141 Add null and undefined values tests for thisArg. 2014-04-08 08:57:26 -07:00
John-David Dalton
2d7d4212c1 Minor comment nit. [ci skip] 2014-04-08 01:29:55 -07:00
John-David Dalton
52cca034cf Add more _.callback tests. 2014-04-08 01:21:21 -07:00
John-David Dalton
79ec1f5a02 Add JSON.stringify test. 2014-04-08 00:44:20 -07:00
John-David Dalton
68729a9696 Test format cleanup. 2014-04-08 00:43:38 -07:00
John-David Dalton
93383204b3 Rebuild dist. 2014-04-07 09:24:36 -07:00
John-David Dalton
78f17bd083 Add toJSON alias of valueOf. [closes #521] 2014-04-07 09:23:40 -07:00
John-David Dalton
ea87006150 Remove unneeded @type tag from the underscore build. [ci skip] 2014-04-07 00:33:45 -07:00
John-David Dalton
c0027c377b Avoid var conflicts in the support IIFE in minified builds. 2014-04-06 17:39:41 -07:00
John-David Dalton
77b84c1de0 Use ok when appropriate in test/test.js. 2014-04-06 16:16:39 -07:00
John-David Dalton
a14e2fedcf More doc tweaks. [ci skip] 2014-04-06 11:30:47 -07:00
John-David Dalton
0341399e54 Merge pull request #520 from d10/docs
Fix doc typos. [ci skip]
2014-04-06 11:19:05 -07:00
Benjamin Tan
1dcf3585fb Fix typos [ci skip] 2014-04-06 21:47:01 +08:00
John-David Dalton
dbb48cf086 Newline nit fixed by lodash-cli patch. [ci skip] 2014-04-05 23:12:42 -07:00
John-David Dalton
064c8adcf2 Add more _.endsWith and _.startsWith tests. 2014-04-05 00:36:32 -07:00
John-David Dalton
cff83e095a Make _.where return all elements when the props object is empty. 2014-04-05 00:35:43 -07:00
John-David Dalton
ff9aecca48 Add _.startsWith and _.endsWith tests. 2014-04-04 09:07:39 -07:00
John-David Dalton
53c529a12c Cleanup tests. 2014-04-04 09:07:11 -07:00
John-David Dalton
78454ba876 Add more -Infinity, NaN, and Infinity tests. 2014-04-04 00:37:12 -07:00
John-David Dalton
c3c1702d2b Change _.forEach to _.each in tests. 2014-04-04 00:27:43 -07:00
John-David Dalton
bffc777b58 Tweak support property comments and nonEnumArgs test. 2014-04-03 01:31:55 -07:00
John-David Dalton
fcec6a8fdf Replace equal with strictEqual and fix ok test typo. 2014-04-02 19:01:36 -07:00
John-David Dalton
a842f25f89 Rebuild dist. 2014-04-02 02:48:10 -07:00
John-David Dalton
9f2bea8ac1 Wrap support.nonEnumArgs assignment in a try-catch to avoid errors in Ringo, Rhino, and Narwhal. 2014-04-02 02:46:34 -07:00
John-David Dalton
7f9a2a2d34 Ensure _.initial and _.last work with NaN values for n. 2014-04-02 00:40:23 -07:00
John-David Dalton
3225f17f5a Comment and cleanup support properties. 2014-04-01 23:28:56 -07:00
John-David Dalton
2f8b1dff27 Add noglobals=true to some sauce test runs in travis.yml. 2014-04-01 23:28:56 -07:00
John-David Dalton
7884f972ea Remove unused index var and prevent leaking keyIndex var. 2014-04-01 23:28:56 -07:00
John-David Dalton
bfce264537 Cover nonEnumArgs in modern builds too. 2014-04-01 02:04:58 -07:00
John-David Dalton
dee5f4c96a Rebuild dist. 2014-03-31 23:56:37 -07:00
John-David Dalton
6bd83137fb Only check indexes for arrays in _.keysIn dense array support. 2014-03-31 20:57:38 -07:00
John-David Dalton
6c6c38679a Add _.keys and _.keysIn tests. 2014-03-31 20:57:38 -07:00
John-David Dalton
ca0c700afa More adjustments to coerced values. 2014-03-29 19:15:21 -07:00
John-David Dalton
cc2e434f3d Avoid unnecessarily coercing start to a number. 2014-03-29 19:15:21 -07:00
John-David Dalton
4d337f0bee Fix typo in _.once test. 2014-03-29 19:15:21 -07:00
John-David Dalton
539c10883b Add placeholder tests to for _.bindKey. 2014-03-29 19:15:21 -07:00
John-David Dalton
ae8796a570 Tweak var names in _.once tests. 2014-03-29 19:15:20 -07:00
John-David Dalton
141227d846 Add placeholder support to _.curry. 2014-03-29 02:14:27 -07:00
John-David Dalton
bb42b87f4e Make nativeMax style consistent. 2014-03-29 02:14:27 -07:00
John-David Dalton
866d9dacb6 Add isPreBuild flag and cleanup tests. 2014-03-29 02:14:27 -07:00
John-David Dalton
006e32077c Add _.support.nonEnumStrings and coerce key to a number in _.keysIn and shimKeys. 2014-03-28 02:06:40 -07:00
John-David Dalton
0aca1c6c7c Cleanup fromIndex coercions. 2014-03-28 00:24:17 -07:00
John-David Dalton
d906d56505 Add _.keys test for string objects. 2014-03-27 22:17:16 -07:00
John-David Dalton
3b9ebf358c Simplify _.camelCase and add tests. 2014-03-27 22:17:16 -07:00
John-David Dalton
1c643cda5b Remove unused vars. 2014-03-27 13:13:56 -07:00
John-David Dalton
e5697a8070 Ensure _.camelCase handles acronyms and numbers. 2014-03-27 09:22:17 -07:00
John-David Dalton
07f1a13cbf Remove Bitdeli badge. [ci skip] 2014-03-26 19:10:31 -07:00
John-David Dalton
4c88f3ad64 Remove tab as a character to escape in template strings. 2014-03-26 09:02:17 -07:00
John-David Dalton
c099d60393 Fix test title typos. [ci skip] 2014-03-26 02:49:11 -07:00
John-David Dalton
5e0d48b40f Tweak _.union tests. 2014-03-26 02:26:32 -07:00
John-David Dalton
c4f8e83d02 Cleanup test wording. 2014-03-26 02:26:06 -07:00
John-David Dalton
a768c1e6c0 Add _.intersection test for working with only secondary arguments. 2014-03-26 02:24:52 -07:00
John-David Dalton
540325dc20 Rebuild dist. 2014-03-26 02:07:08 -07:00
John-David Dalton
2e57f76c12 Fix perf regression in _.intersection. 2014-03-26 02:03:54 -07:00
John-David Dalton
e71fd6f8b4 Avoid formal param use in _.difference. 2014-03-26 02:03:54 -07:00
John-David Dalton
c721721fc5 Ensure sparse arrays are treated as dense by _.keys and _.keysIn and ensure support for string objects in _.keys and _.keysIn. 2014-03-25 09:26:20 -07:00
John-David Dalton
0ab5d6a7b8 Merge branch 'master' of github.com:lodash/lodash 2014-03-25 07:30:07 -07:00
John-David Dalton
66599e5770 Merge pull request #510 from d10/docs
More doc cleanup. [ci skip]
2014-03-25 07:27:12 -07:00
Benjamin Tan
d7c7463380 Improve docs [ci skip] 2014-03-25 22:13:15 +08:00
Benjamin Tan
491a4468dc Formalize all instances of meta data as metadata [ci skip] 2014-03-25 22:11:57 +08:00
John-David Dalton
c85150aaea Merge branch 'master' of github.com:lodash/lodash 2014-03-24 22:22:20 -07:00
John-David Dalton
c7ba6d2a82 Update link to curry post in readme. [ci skip] 2014-03-24 22:11:54 -07:00
John-David Dalton
ace64cf50f Merge pull request #509 from d10/chain
Simplify `_.chain`.
2014-03-24 21:57:14 -07:00
John-David Dalton
cd6d4f6f47 Merge pull request #508 from d10/docs
Docs improvements. [ci skip]
2014-03-24 21:48:17 -07:00
Benjamin Tan
1bdf74951a Simplify _.chain 2014-03-25 11:30:06 +08:00
Benjamin Tan
eda2b38f46 Update Underscore license year [ci skip] 2014-03-25 11:26:12 +08:00
Benjamin Tan
f14e85d6c4 Update docs [ci skip] 2014-03-25 11:25:10 +08:00
John-David Dalton
76f668dddd Add tests for _.map, _.invoke, _.shuffle, and _.sortBy for treating numbers as empty. 2014-03-24 09:14:28 -07:00
John-David Dalton
ce01d696a0 Add _.isEqual test for arguments objects and tweak phantom detection. 2014-03-23 16:31:35 -07:00
John-David Dalton
8179a3a349 Rebuild dist. 2014-03-23 15:00:02 -07:00
John-David Dalton
e5c397203e Fix baseIsEqual in Rhino, Ringo, Narwhal. 2014-03-23 14:59:46 -07:00
John-David Dalton
60aeba732d Adjust _.camelCase, _.kebabCase and _.snakeCase doc examples and tests. 2014-03-23 14:38:39 -07:00
John-David Dalton
de70ef1ef6 Remove a and b use from baseIsEqual. 2014-03-23 14:20:05 -07:00
John-David Dalton
1d02c288b3 Avoid a, b variable names and cleanup _.isEqual docs. 2014-03-22 23:18:54 -07:00
John-David Dalton
3776920807 Update vendor/jquery 2014-03-21 21:22:00 -07:00
John-David Dalton
7d54cde8eb Add chalk to test/saucelabs.js. 2014-03-21 01:01:37 -07:00
John-David Dalton
1bab2061bd Avoid ^ caret use in travis until they update npm. 2014-03-20 20:56:24 -07:00
John-David Dalton
34e30cba0d More cleanup in test/saucelabs.js. 2014-03-20 19:32:31 -07:00
John-David Dalton
ed600c9077 Comment nit. [ci skip] 2014-03-19 23:46:52 -07:00
John-David Dalton
30dc6d2b19 Rewrite test/saucelabs.js. 2014-03-19 19:31:45 -07:00
John-David Dalton
77c3b4636e Update supported Firefox version in readme. [ci skip] 2014-03-18 22:43:53 -07:00
John-David Dalton
25edcbaff9 Rebuild dist. [ci skip] 2014-03-18 22:43:19 -07:00
John-David Dalton
553b8fb2e0 Add Underscore _.now test to the excused list. 2014-03-17 07:51:21 -07:00
John-David Dalton
461b401e28 Remove unneeded parenthesis from .travis.yml. 2014-03-17 01:21:46 -07:00
John-David Dalton
d2a4611d1e Update vendor/backbone and vendor/requirejs. 2014-03-17 00:43:13 -07:00
John-David Dalton
65c3dbba2c Update .travis.yml dependencies. 2014-03-17 00:20:51 -07:00
John-David Dalton
7ef0b5b428 Remove legacy and mobile from .gitignore. [ci skip] 2014-03-16 23:41:03 -07:00
John-David Dalton
89589d7ef5 Add doc notes for deprecated arguments of _.first, _.initial, _.last, and _.rest. [ci skip] 2014-03-16 20:56:00 -07:00
John-David Dalton
70b782c7e7 Use the argument predicate instead of func for _.negate. 2014-03-16 18:20:42 -07:00
John-David Dalton
9732b0a636 Add more methods to the features section of the README. [ci skip] 2014-03-16 18:01:35 -07:00
John-David Dalton
00acaa56b9 Update tested Chrome version range in README. [ci skip] 2014-03-16 17:15:47 -07:00
John-David Dalton
1cea2be9c1 Rebuild dist. 2014-03-16 14:51:21 -07:00
John-David Dalton
94381bd899 Clarify _.isEmpty and add tests for array-like objects for _.isEmpty and _.size. 2014-03-16 14:48:02 -07:00
John-David Dalton
23d935d7ec Add maxSafeInteger to tests and rename LARGE_ARRAY_SIZE to largeArraySize. 2014-03-16 14:48:02 -07:00
John-David Dalton
69da13b261 Simplify _.find by having it use _.findIndex. 2014-03-16 14:48:02 -07:00
John-David Dalton
a6519e0ff7 Whitespace nit. [ci skip] 2014-03-16 14:48:02 -07:00
John-David Dalton
b701a36e21 Comment nits. [ci skip] 2014-03-16 11:08:17 -07:00
John-David Dalton
24a34088d8 Add baseFind to simplify _.find, _.findLast, _.findKey, _.findLastKey. 2014-03-16 11:07:20 -07:00
John-David Dalton
0eeb092aad Add large array test for _.intersection that tests large arrays combined with missing arguments. 2014-03-16 01:27:05 -07:00
John-David Dalton
7d4726d12e Cleanup large array tests. 2014-03-16 01:01:09 -07:00
John-David Dalton
e13bf164ea Rebuild dist. 2014-03-15 04:02:03 -07:00
John-David Dalton
07434b19ae Ensure find methods work with strings. 2014-03-15 04:00:14 -07:00
John-David Dalton
819fa88eb7 Ensure _.find and _.findLast pass "Collections" tests for the compat build. 2014-03-15 02:41:37 -07:00
John-David Dalton
95976814f5 Add array-like tests for "Collections" methods. 2014-03-15 02:40:55 -07:00
John-David Dalton
0a2dd2a330 Avoid returning assignDefaults if no object is provided to _.defaults. 2014-03-15 01:21:43 -07:00
John-David Dalton
65f125d998 Allow null or undefined elements in _.pluck, _.property, and _.invoke. 2014-03-15 01:21:43 -07:00
John-David Dalton
7a2f6ebfd5 Remove toLength. 2014-03-14 09:43:22 -07:00
John-David Dalton
5d89fa3f07 Rebuild dist. 2014-03-14 01:32:19 -07:00
John-David Dalton
4a66e28584 Tweak support.nonEnumArgs assignment. 2014-03-14 01:30:30 -07:00
John-David Dalton
85990bbeb3 Add toLength helper. 2014-03-14 01:25:57 -07:00
John-David Dalton
e0311e1530 Cleanup ticks in method docs. [ci skip] 2014-03-14 01:12:34 -07:00
John-David Dalton
6eb4dbf9cd Add slow path note to _.times with thisArg benchmark. [ci skip] 2014-03-14 00:48:33 -07:00
John-David Dalton
a90453461e Adjust fromIndex and length coercions. 2014-03-13 09:28:38 -07:00
John-David Dalton
7e04c9a909 Fix the Underscore build of _.random. 2014-03-13 01:27:22 -07:00
John-David Dalton
e51602ccfa Update vendor/qunit-extras. 2014-03-13 00:33:33 -07:00
John-David Dalton
ca7adb59db Rebuild dist. 2014-03-13 00:18:13 -07:00
John-David Dalton
3a12802a4b Use shorthand for package.json "repository" field. [ci skip] 2014-03-13 00:10:11 -07:00
John-David Dalton
c770eab3e3 Move _.range to the Utilities category. 2014-03-13 00:03:45 -07:00
John-David Dalton
079b8e7337 Reduce _.find, _.findLast, and _.defaults. 2014-03-12 23:50:55 -07:00
John-David Dalton
2e4593eee7 Update vendors benchmark.js and qunit-extras. 2014-03-12 09:27:51 -07:00
John-David Dalton
3ca80a7bf3 Ensure _.slice coerces start and end arguments appropriately. 2014-03-12 09:11:29 -07:00
John-David Dalton
a4c15e5fa5 Add doc examples for isXyz methods. [ci skip] 2014-03-12 00:37:39 -07:00
John-David Dalton
a40748e3aa Add _.range tests for NaN values for start and end arguments. 2014-03-12 00:30:01 -07:00
John-David Dalton
029aac8059 Cleanup type coercions. 2014-03-12 00:29:31 -07:00
John-David Dalton
2970f66218 Add chars test for pad methods. 2014-03-11 01:04:42 -07:00
John-David Dalton
ef238de7a7 Rebuild dist. 2014-03-11 00:57:48 -07:00
John-David Dalton
af05313dc5 Add unit tests for _.camelCase, _.kebabCase, and _.snakeCase. 2014-03-10 23:57:32 -07:00
John-David Dalton
df0d1b57a0 Fix _.camelCase with consecutive capitalized words. 2014-03-10 23:57:24 -07:00
John-David Dalton
23cff25ed5 Make the code style in test.js consistent. 2014-03-10 23:55:28 -07:00
John-David Dalton
c70b13a650 Clamp indexes and lengths where appropriate. 2014-03-10 21:59:09 -07:00
John-David Dalton
a51c6a7670 Fix minified compat/modern builds. 2014-03-10 09:34:13 -07:00
John-David Dalton
0bdb643e14 Close _.difference test coverage gap. 2014-03-10 01:14:11 -07:00
John-David Dalton
0cbbbf1287 Tweak wording on tests for options objects. [ci skip] 2014-03-10 01:13:34 -07:00
John-David Dalton
9a00b62d28 Add _.pad, _.padLeft, _.padRight, _.repeat, and _.truncate tests. 2014-03-10 01:12:27 -07:00
John-David Dalton
05dce760d6 Ensure _.truncate doesn't truncate strings if they are equal to the given length. 2014-03-10 01:11:08 -07:00
John-David Dalton
4eaf91c3dc Optimize _.without in IE. 2014-03-09 20:58:46 -07:00
John-David Dalton
818c3d6140 Add the development underscore build to the test-ui dropdown list. 2014-03-09 20:28:04 -07:00
John-David Dalton
5e19cd0084 Remove legacy/mobile tests. 2014-03-09 20:23:59 -07:00
John-David Dalton
7b06257955 Remove legacy and mobile builds from travis.yml tests. 2014-03-09 18:23:00 -07:00
John-David Dalton
2af21c8003 Remove duplicate isArguments method and movenegate to the "Functions" category. 2014-03-09 12:56:17 -07:00
John-David Dalton
db6f907946 Correct underscore builds. 2014-03-09 12:25:33 -07:00
John-David Dalton
125ed8bff2 Add object values to secondary arguments tests for _.difference, _.intersection, _.union, and _.xor. 2014-03-09 12:25:19 -07:00
John-David Dalton
1d0f2e9d31 Rebuild dist. 2014-03-08 19:59:39 -08:00
John-David Dalton
43efc930f4 Use args in _.merge where possible. 2014-03-08 19:51:17 -08:00
John-David Dalton
737e18d2de Ensure _.intersection handles non-array secondary values correctly. 2014-03-08 16:36:05 -08:00
John-David Dalton
445445603f Remove _.isObject dep from _.merge and ensure _.assign and _.defaults don't error when object is null or undefined and source objects are provided. 2014-03-08 13:16:47 -08:00
John-David Dalton
5957c94958 Use _.constant where possible to cleanup tests. 2014-03-08 12:59:11 -08:00
John-David Dalton
1c41661712 Add npm package.json scripts entry to echo testing instructions. [ci skip] 2014-03-08 01:08:45 -08:00
John-David Dalton
1b2909605e Further reduce browser ranges to test in readme. [ci skip] 2014-03-07 23:50:21 -08:00
John-David Dalton
c6a13f970f Remove iteratorTemplate and compiled methods. 2014-03-07 23:28:55 -08:00
John-David Dalton
f2f57dc5a5 Deopt _.invoke. 2014-03-06 00:45:01 -08:00
John-David Dalton
c6de1ab56c Add _.negate, _.keysIn and _.valuesIn. 2014-03-06 00:42:51 -08:00
John-David Dalton
0392e37eed Lots of doc tweaks. [ci skip] 2014-03-06 00:22:21 -08:00
John-David Dalton
f630c4ec6c Reduce browser ranges to test in readme. [ci skip] 2014-03-05 08:35:00 -08:00
John-David Dalton
e668642b23 Fix newly added string methods/docs. 2014-03-05 01:23:20 -08:00
John-David Dalton
c4c0c050af Make_.dropRight, _.dropRightWhile, _.takeRight, and _.takeRightWhile their own methods. 2014-03-04 09:40:48 -08:00
John-David Dalton
b4ff8360ba Add more string methods to the features note in readme. [ci skip] 2014-03-04 01:21:54 -08:00
John-David Dalton
708a2ec703 Minor whitespace nits. [ci skip] 2014-03-04 01:17:20 -08:00
John-David Dalton
407cb2f7e6 Rebuild dist. 2014-03-04 01:03:23 -08:00
John-David Dalton
0b22e76b85 Separate out _.drop, _.dropWhile, _.take, and _.takeWhile and modify docs to use "predicate" where appropriate. 2014-03-04 01:03:23 -08:00
John-David Dalton
7671187160 Change truey to truthy in docs. [ci skip] 2014-03-04 01:03:00 -08:00
John-David Dalton
5695e0e6b6 Escape a few more characters for in _.escapeRegExp for better narwhal/ringo/rhino support. 2014-03-03 09:18:49 -08:00
John-David Dalton
e22b2f00dc Rebuild dist files. [ci skip] 2014-03-03 01:49:30 -08:00
John-David Dalton
2a017c3a7c Add support for _.camelCase, _.endsWith, _.escapeRegExp, _.kebabCase, _.pad, _.padLeft, _.padRight, _.repeat, _.snakeCase, _.startsWith, and _.truncate. [closes #425] 2014-03-02 23:48:48 -08:00
John-David Dalton
ce65c3113a Simplify component.json. 2014-03-02 13:47:07 -08:00
John-David Dalton
65a2ebb8ad Don't send test coverage results to coveralls for pull requests. 2014-03-01 00:46:44 -08:00
John-David Dalton
f0a542b154 Add to lodash chaining doc note. [ci skip] 2014-02-28 19:45:54 -08:00
John-David Dalton
dfe1c940bc Add partial application in _.bind to _.curry partial combo test. 2014-02-27 00:18:50 -08:00
John-David Dalton
3cd8708368 Build docs & dist including whitespace adjustments. 2014-02-26 00:30:27 -08:00
John-David Dalton
e677161e49 Remove more code from the Underscore build. 2014-02-25 08:44:33 -08:00
John-David Dalton
818c6711d8 Cleanup _.first, _.initial, _.last, and _.rest. 2014-02-24 22:40:26 -08:00
John-David Dalton
f60cc76f3e Reduce the Underscore build. 2014-02-24 22:39:56 -08:00
John-David Dalton
685321fdc5 Rebuild docs and dist. 2014-02-24 08:55:49 -08:00
John-David Dalton
303215d42f Add common case paths to _.difference and _.uniq. 2014-02-24 08:52:11 -08:00
John-David Dalton
f313752888 Update large array benchmarks in perf.js. [ci skip] 2014-02-23 21:59:16 -08:00
John-David Dalton
28b83a486e Add placeholder support tests for _.bind. 2014-02-22 20:59:02 -08:00
John-David Dalton
80289bd452 Update the tested node version in readme. [ci ckip] 2014-02-22 19:20:31 -08:00
John-David Dalton
054be39feb Add a test for _.uniq with isSorted. 2014-02-22 19:20:14 -08:00
John-David Dalton
6448e049d1 Tweak ticks around "callback" in test titles. [ci skip] 2014-02-22 19:16:00 -08:00
John-David Dalton
8e1f7c8d6f Rebuild docs and dist. 2014-02-22 18:12:34 -08:00
John-David Dalton
c4e31e7a58 Minor comment nits for -0 and +0. [ci skip] 2014-02-22 18:04:26 -08:00
John-David Dalton
0860d9712e Add test to ensure _.flatten returns empty arrays for non array-like objects. 2014-02-22 17:19:20 -08:00
John-David Dalton
1a17cbd26b Cleanup the callback assignment in _.clone and _.cloneDeep. 2014-02-22 17:11:22 -08:00
John-David Dalton
c2b1d3b551 Add falsey value optimizations for baseDifference, baseFlatten, baseUniq, _.flatten, and _.uniq. 2014-02-22 17:10:34 -08:00
John-David Dalton
d4fac798fc Optimize _.isEqual for primitives. 2014-02-22 17:08:28 -08:00
John-David Dalton
b009b23245 Merge pull request #486 from rexxars/indexby-thisarg-docfix
Fixed `_.indexBy` `thisArg` example in documentation. [ci skip]
2014-02-22 10:03:19 -08:00
Espen Hovlandsdal
f276f1e2f5 Fixed _.indexBy() thisArg example in documentation 2014-02-22 11:43:21 +01:00
John-David Dalton
154e57748f Cleanup low and high assignment in _.sortedIndex. [ci skip] 2014-02-21 23:42:40 -08:00
John-David Dalton
6854fee73e Remove array and object pools. 2014-02-21 22:26:17 -08:00
John-David Dalton
24240bfba4 Simplify baseUniq. 2014-02-21 18:01:49 -08:00
John-David Dalton
40e32daabe Fix _.template doc typo. [closes #484] [ci skip] 2014-02-21 08:32:15 -08:00
John-David Dalton
008cbc8972 Add the version of Underscore our underscore build aligns to in readme. [ci skip] 2014-02-20 22:46:42 -08:00
John-David Dalton
8a1d2b614a Templates should not reference _.escape if "escape" delimiters are not used. [closes #484] 2014-02-20 22:31:42 -08:00
John-David Dalton
b79d03d9a4 Reorganize _.template tests. 2014-02-20 22:08:29 -08:00
John-David Dalton
83fb9f84ed Rebuild docs & dist. 2014-02-18 23:10:31 -08:00
John-David Dalton
c634830b9f Reduce passing arguments to helper functions by converting them to arrays. 2014-02-18 22:49:37 -08:00
John-David Dalton
24edd68833 Fix compseArgs and composeArgsRight and cleanup and correct partial placeholder tests. 2014-02-16 16:06:16 -08:00
John-David Dalton
6913798250 Fix doc typos in _.template. [ci skip] 2014-02-16 01:06:27 -08:00
John-David Dalton
131bd2c2cd Cleanup tests. 2014-02-15 22:03:33 -08:00
John-David Dalton
55ae55c803 Add more details to the _.template docs. [ci skip] [closes #472] 2014-02-15 19:28:19 -08:00
John-David Dalton
63f0eea70c Fix AMD test fails for Underscore builds. [ci skip] 2014-02-15 18:29:01 -08:00
John-David Dalton
38aeef0760 Update Backbone tests. 2014-02-15 15:22:41 -08:00
John-David Dalton
88d5f5d76c Update Backbone tests to 1.1.1. 2014-02-15 14:32:56 -08:00
John-David Dalton
486ba5fe0a Avoid packages config for monolithic modules in tests. 2014-02-15 14:22:09 -08:00
John-David Dalton
76f85389ae Update underscore builds. 2014-02-15 13:39:28 -08:00
John-David Dalton
3d311496e0 Remove placeholder support from non-underscore builds. 2014-02-15 13:39:03 -08:00
John-David Dalton
fdbfe0f84b Update vendor/curl. 2014-02-15 01:17:11 -08:00
John-David Dalton
8a25592904 Update test files to work with underscore builds defined as named amd modules. 2014-02-15 01:17:00 -08:00
John-David Dalton
7edf024c71 Fix test fails in Rhino. 2014-02-14 01:36:25 -08:00
John-David Dalton
ee4d9890e7 Add placeholder support to _.bind, _.partial, and _.partialRight. 2014-02-14 01:36:15 -08:00
John-David Dalton
9cc06a94ec Add a module id of "underscore" to the Underscore build. 2014-02-14 00:06:08 -08:00
John-David Dalton
dd6dc1d334 Test cleanup. 2014-02-13 22:29:25 -08:00
John-David Dalton
fb2bafb49e Ensure _.throttle & _.debounce work if the system time is set backwards. 2014-02-13 22:26:26 -08:00
Benjamin Tan
bc3b8e73fe Fix minor typo [ci skip] 2014-02-13 00:16:53 -08:00
John-David Dalton
4d48441102 Tweak features bullets in readme. [ci skip] 2014-02-12 19:51:14 -08:00
John-David Dalton
c0fa980f70 Add new feature notes to its section in readme. [ci skip] 2014-02-12 09:15:58 -08:00
John-David Dalton
bb3bac9933 Remove extra var from createWrapper. 2014-02-11 23:52:34 -08:00
John-David Dalton
1ac5fa544b Update qunit-extras to respect QUnit.config.hidepassed. 2014-02-11 23:35:29 -08:00
John-David Dalton
91bb4d4b00 Remove node 0.6 fix from travis.yml as travis-ci now does it for us. 2014-02-11 21:20:04 -08:00
John-David Dalton
aecdd0fdd5 Add _.matches test and cleanup _.property and _.constant tests. 2014-02-11 21:07:28 -08:00
John-David Dalton
2e5f3cd25c Cleanup docs in _.matches and _.where. [ci skip] 2014-02-11 21:06:58 -08:00
John-David Dalton
8558c55284 Add v8 issue note to parseInt and make other v8 issue use the same protocol. [ci skip] 2014-02-11 19:00:01 -08:00
John-David Dalton
b16b49aea4 Fix copyright header in lodash.compat.js and lodash.min.js files. [ci skip] 2014-02-11 18:23:06 -08:00
John-David Dalton
09678eeef4 Update Underscore version in doc header. [ci skip] 2014-02-11 17:53:17 -08:00
John-David Dalton
fad43842a4 Rebuild docs and dist. 2014-02-11 00:39:05 -08:00
John-David Dalton
4b448a877c Update vendor/underscore to v1.6.0. 2014-02-11 00:38:32 -08:00
John-David Dalton
f090af2292 Rename _.match to _.matches. 2014-02-11 00:35:05 -08:00
John-David Dalton
7faaac94dd Update vendor/bechmark.js. [ci skip] 2014-02-11 00:35:05 -08:00
John-David Dalton
dae0b25717 Revert allowing _.omit and _.pick to work as a callback for _.map when combined with _.partialRight to be solved with _.partial placeholders in v3. 2014-02-10 00:32:10 -08:00
John-David Dalton
de3d9dca72 Minor doc tweaks to _.partition and _.zip. [ci skip] 2014-02-09 00:32:58 -08:00
John-David Dalton
a91abb3e8d Add _.partition. 2014-02-08 23:27:04 -08:00
John-David Dalton
dabea8b972 Update vendors. 2014-02-08 19:00:37 -08:00
John-David Dalton
dedffb3560 Reduce code in doc code examples. [ci skip] 2014-02-08 18:51:08 -08:00
John-David Dalton
5eb2306e9a Remove sauce labs hook, global_test_results, to add it to QUnit Extras. 2014-02-07 21:26:28 -08:00
John-David Dalton
8a2e06a713 Simplify _.every and _.some. 2014-02-06 09:06:35 -08:00
John-David Dalton
23b495aee8 Fix _.every test in perf/perf.js. 2014-02-06 09:05:41 -08:00
John-David Dalton
b9d314e64c Rebuild dist/docs. 2014-02-05 22:21:47 -08:00
John-David Dalton
5a4826e660 Optimize _.callback. 2014-02-05 22:05:03 -08:00
John-David Dalton
20bf67d352 Cleanup _.result. 2014-02-05 21:31:56 -08:00
John-David Dalton
8b4f1e1383 Fix basename in perf/perf.js. [ci skip] 2014-02-05 09:03:31 -08:00
John-David Dalton
20297e359d Rebuild docs/dists and update tested browsers in readme. 2014-02-05 00:05:05 -08:00
John-David Dalton
de7409fd07 Ensure functions can be used as default values for _.result. 2014-02-04 23:50:37 -08:00
John-David Dalton
8498f12a9d Avoid setting arity/processing args if func is not passed to methods like _.bind. 2014-02-04 23:02:32 -08:00
John-David Dalton
e949eb8623 Minor nit, add default greeting to bind benchmark. [ci skip] 2014-02-04 22:59:05 -08:00
John-David Dalton
201d17bc31 Allow _.omit and _.pick to work as a callback for _.map when combined with _.partialRight. 2014-02-04 00:57:26 -08:00
John-David Dalton
143e9bd210 Reduce code samples for _.assign and _.defaults. [ci skip] 2014-02-03 21:32:41 -08:00
John-David Dalton
9ec874d8a6 Add _.isEqual test for being used as a callback for _.every. 2014-02-03 21:32:02 -08:00
John-David Dalton
2543afebf1 Optimize _.invoke for arrays. 2014-02-02 19:45:39 -08:00
John-David Dalton
81a859604c Update vendors and the tested Node version in the readme. [ci skip] 2014-02-02 17:54:27 -08:00
John-David Dalton
d3be4bba37 Add _.isEqual test to ensure regexes are compared regardless of flag order. 2014-02-02 00:01:27 -08:00
John-David Dalton
6779c9eb36 Reduce the complexity of a minor Underscore build optimization. 2014-01-31 09:12:50 -08:00
John-David Dalton
733da570c8 Revert the backtick escape/unescape patch but keep the docs. 2014-01-31 02:05:43 -08:00
John-David Dalton
65258d5b6a Add doc note about escaping backticks. [ci skip] 2014-01-31 01:52:38 -08:00
John-David Dalton
618c8bb5ad Add ` as a character to escape/unescape and a doc note on unquoted html attribute values. 2014-01-30 09:38:01 -08:00
John-David Dalton
ba8684dfc7 Rebuild /dist files. 2014-01-30 08:46:51 -08:00
John-David Dalton
36a1bd9e0f Move browser field in package.json. [ci skip] 2014-01-30 08:46:34 -08:00
John-David Dalton
fe56c1c6f2 Make default BUILD="compat" in travis.yml. [ci skip] 2014-01-30 08:43:35 -08:00
John-David Dalton
86a37e6f8d Minor whitespace nits. [ci skip] 2014-01-30 01:37:17 -08:00
John-David Dalton
da1aad7b92 Add baseEachRight and baseForOwnRight. 2014-01-30 01:36:30 -08:00
John-David Dalton
876621f8af Merge pull request #466 from aearly/patch-1
Add "browser" field in package.json for Browserify. [ci kip]
2014-01-29 13:50:46 -08:00
Alexander Early
8a908b720f Add "browser" field for Browserify
Browserify and other CJS builders will look for a "browser" field to use as an alternate "main" when targeting the browser environment.

https://github.com/substack/node-browserify#packagejson

Pointing it to the compat build would prevent issues like #288 happening out of the box, without any extra configuration.
2014-01-29 13:33:50 -08:00
John-David Dalton
dadde52c40 More perf.js cleanup and add _.compose benchmarks. [ci skip] 2014-01-29 09:33:46 -08:00
John-David Dalton
369dd98cbe Avoid installing coveralls in travis runs when not needed. 2014-01-29 08:57:14 -08:00
John-David Dalton
8cdd6cd131 Fix test/test.js in lodash-node and carry fixes over to perf/perf.js. 2014-01-29 08:57:14 -08:00
John-David Dalton
973bc21f37 Add note to contributing.md to not worry about regenerating docs or dist files. [ci skip] 2014-01-29 08:56:55 -08:00
John-David Dalton
2ba327345d Fix underscore build modifications to match. 2014-01-29 01:44:09 -08:00
John-David Dalton
138ecc4ee1 Simplify resolving filePath in perf/perf.js. [ci skip] 2014-01-29 00:29:57 -08:00
John-David Dalton
5b9a8e9bf9 Fix tests for lodash-amd. 2014-01-29 00:29:50 -08:00
John-David Dalton
e520486892 Rebuild dist/ and docs. 2014-01-28 23:41:44 -08:00
John-David Dalton
ecb91613e8 Minor whitespace nits in _.compose and _.pull. [ci skip] 2014-01-28 23:38:29 -08:00
John-David Dalton
d4ac76081e Correct _.compose unit test. 2014-01-28 23:38:29 -08:00
John-David Dalton
63727b67ee Cleanup _.compose. 2014-01-28 22:14:10 -08:00
John-David Dalton
d969dcecbf Set LARGE_ARRAY_SIZE to 40. 2014-01-28 22:05:50 -08:00
John-David Dalton
49c9a202e0 Cleanup perf tests and adjust for LARGE_ARRAY_SIZE of 40. 2014-01-28 22:05:50 -08:00
Stephen Solka
512c8de526 Use .apply for initial function call in _.compose then use .call in loop. [closes #463, #464] 2014-01-28 22:05:19 -08:00
John-David Dalton
012a929067 Add _.cloneDeep doc note to _.clone too. [ci skip] 2014-01-27 21:59:26 -08:00
John-David Dalton
bec4e8d8e4 Fix lodash-node unit tests. 2014-01-27 21:50:50 -08:00
John-David Dalton
9f0993f29b Fix setting the selectedIndex of dropdown lists in test-ui.js and perf-ui.js. 2014-01-27 21:49:38 -08:00
John-David Dalton
1b79448ac2 Add _.zipObject test for extra values. 2014-01-27 20:00:47 -08:00
John-David Dalton
6cef7d5060 Ensure _.where handles properties with undefined properties. [closes #461] 2014-01-27 17:53:10 -08:00
John-David Dalton
752545ec0e Minor doc nit for _.runInContext. [ci skip] 2014-01-26 14:44:11 -08:00
John-David Dalton
adbebf7ecc Avoid detecting the global function in Java based environments like Rhino as the freeGlobal. 2014-01-26 13:37:31 -08:00
John-David Dalton
4d57ac0ce1 Avoid detecting the global function in Java based environments like Rhino as the freeGlobal. 2014-01-26 13:27:39 -08:00
John-David Dalton
24b77d9dcb Minor code format nit in test.js. [ci skip] 2014-01-26 13:27:01 -08:00
John-David Dalton
cc0f431c35 Minor comment nit for consistency across projects. [ci ckip] 2014-01-25 22:48:12 -08:00
John-David Dalton
1e7927fbff Consistent use of getConfig in test/index.html and test/underscore.html. 2014-01-25 19:52:49 -08:00
John-David Dalton
129e56e570 Avoid accessing body.completed if body isn't truey in saucelabs.js. 2014-01-25 18:12:00 -08:00
John-David Dalton
5beef690ad Fix loading baseEach for commonjs modularize tests. 2014-01-25 18:11:25 -08:00
John-David Dalton
b0383b0978 Update freeGlobal assignment in lodash builds, benchmark.js, and qunit-extras to work in node-webkit. [closes #419] 2014-01-25 17:02:27 -08:00
John-David Dalton
16c6a11b77 Replace _.createCallback reference in readme with _.callback. [ci skip] 2014-01-25 11:00:30 -08:00
John-David Dalton
9117b13576 Rebuild dist & docs. [ci skip] 2014-01-25 11:00:18 -08:00
John-David Dalton
af55978918 Minor test cleanup. [ci skip] 2014-01-25 10:25:50 -08:00
John-David Dalton
0446a1b3a8 Tweak documented arg name key for _.pluck. [ci skip] 2014-01-25 02:52:14 -08:00
John-David Dalton
3986dd4c32 Add baseEach tests. 2014-01-25 02:48:41 -08:00
John-David Dalton
79afa16a7f Fix test fails in older Safari and cleanup setProperty in test.js. 2014-01-24 23:16:07 -08:00
John-David Dalton
087ed0aa6a Update vendor/qunit-extras and simplify its load/install. 2014-01-24 09:42:45 -08:00
John-David Dalton
44fa3d2d07 Fix typo in throttle test. 2014-01-24 00:52:38 -08:00
John-David Dalton
8654d83a33 Drop 'use strict' in the unit tests and make its IIFE more closely resemble lodash's. 2014-01-23 23:19:13 -08:00
John-David Dalton
efb78c823c Add _.memoize test and normalize on using properties of a and b instead of x and y. 2014-01-23 23:00:49 -08:00
John-David Dalton
3bb7f0c291 Fix regression in test-ui.js. [ci skip] 2014-01-23 09:17:53 -08:00
John-David Dalton
62e0db7c9b Fix Function.prototype.toString mock in test/ to avoid errors in Firefox. 2014-01-23 00:30:59 -08:00
John-David Dalton
130695fcb3 Remove trailing slash in locationPath of test/underscore.html. 2014-01-23 00:30:24 -08:00
John-David Dalton
05fa301ecb Add freeGlobal.self checks to benchmark.js and quinit-extras to support browserified code running in a web worker. 2014-01-22 23:48:29 -08:00
Michael "Z" Goddard
ee90f730b5 Add freeGlobal.self check to support browserified code running in a web worker.
`self` is the global context name in web workers. So
`freeGlobal.self === freeGlobal` is `true` in that environment when
lodash is packaged in a library/site for use in web workers.
2014-01-22 23:38:36 -08:00
John-David Dalton
7b8a23453f Cleanup lodashBizarro code to get coverage up in AMD modules. 2014-01-22 23:09:42 -08:00
John-David Dalton
cb44479420 Add freeGlobal.self check to test/asset/set.js. 2014-01-22 23:07:50 -08:00
John-David Dalton
afb3806326 Cleanup the perf and test ui files. 2014-01-22 23:04:10 -08:00
John-David Dalton
d96bfd21b7 Comment nit in the underscore build. [ci skip] 2014-01-22 11:40:43 -08:00
John-David Dalton
bbc3100bb3 Add _.callback as an alias of _.createCallback. 2014-01-22 08:54:25 -08:00
John-David Dalton
ac1bb2a6bd Rebuild docs and updated tested Chrome version in readme. [ci skip] 2014-01-22 00:27:50 -08:00
John-David Dalton
41ef391d15 Avoid leaking a data var in compat/legacy builds and remove dead code from the underscore build. 2014-01-22 00:26:45 -08:00
John-David Dalton
e51aa5899a Dumb _.curry down for consistent feature support for old environments. 2014-01-21 22:25:08 -08:00
John-David Dalton
38bb975abd Allow legacy build tests to pass. 2014-01-21 20:49:44 -08:00
John-David Dalton
a249b315ca Make breakIndicator use expando in underscore builds. 2014-01-21 19:59:59 -08:00
John-David Dalton
eba85e1ec3 Update vendor/qunit-extras. [ci skip] 2014-01-21 19:59:31 -08:00
John-David Dalton
c1c92256ea Track arity of functions created by _.bind, _.bindKey, _.bindAll, _.partial, _.partialRight, _.curry, and _.wrap. 2014-01-21 19:59:13 -08:00
John-David Dalton
58ce97c0b4 Ensure _.flatten works with _.map in underscore builds. 2014-01-20 11:33:31 -08:00
John-David Dalton
ca58bab1f0 Cleanup assign/defaults/merge unit test. [ci skip] 2014-01-20 09:31:55 -08:00
John-David Dalton
052c484abd Update .travis.yml dep versions and make coveralls reporting optional so we don't fail when their service is down. 2014-01-20 08:46:53 -08:00
John-David Dalton
7a213c9d6f Fix test typo in test/index.html. 2014-01-20 00:39:40 -08:00
John-David Dalton
f4de7422b3 Fix large array optimization in baseDifference. 2014-01-20 00:39:20 -08:00
John-David Dalton
a3d18d0429 Add coverage for Set for environments w/o native support. 2014-01-19 23:52:27 -08:00
John-David Dalton
77fbffdc4b Use baseEach in underscore build of _.sortBy. 2014-01-19 13:41:15 -08:00
John-David Dalton
63ea01104b Conditionally define createCache base on feature inference. 2014-01-19 13:27:23 -08:00
John-David Dalton
cad0f1f396 Ensure we use an underscore build of _.result. 2014-01-19 12:28:25 -08:00
John-David Dalton
677fb93494 Use baseEach, baseForOwn and baseForIn to reduce dependencies on baseCreateCallback. 2014-01-19 12:10:09 -08:00
John-David Dalton
55cbb12701 Use ES6 Set to optimize for large arrays in _.uniq, _.difference, & _.intersection. 2014-01-18 22:51:43 -08:00
John-David Dalton
14099813f0 Fix typo in travis.yml. 2014-01-17 20:11:25 -08:00
John-David Dalton
b1fd4e853c Rebuild dist files. 2014-01-17 09:27:27 -08:00
John-David Dalton
c1d3fc1b78 Cleanup _.result default value patch. [closes #455] 2014-01-17 09:27:11 -08:00
John-David Dalton
829980a941 Ensure sauce tests run against builds created by travis-ci. 2014-01-16 23:45:06 -08:00
John-David Dalton
d1e1a90d08 Merge pull request #454 from pistacchio/master
Added default value to `_.result`.
2014-01-16 21:16:12 -08:00
John-David Dalton
d56de091f6 Missed a BIND_FLAG use in baseCreateCallback. 2014-01-16 20:18:21 -08:00
John-David Dalton
87bb926fef Make the coverage run in .travis.yml use the generated modern build. 2014-01-16 19:54:33 -08:00
pistacchio
e983f93859 Added default value to _.result 2014-01-16 18:54:20 +01:00
John-David Dalton
c721acc2fa Make each build in travis.yml so users don't have to include them in pull requests for tests to pass. 2014-01-16 08:37:57 -08:00
John-David Dalton
16fd4c83ac Indicate slow path in lodash wrapper perf test. [ci skip] [closes #452] 2014-01-16 07:34:04 -08:00
John-David Dalton
999dfb84ee Use vars to store bitmask flags to improve readability. 2014-01-15 23:52:56 -08:00
John-David Dalton
c6557e5078 Add more _.indexOf tests. 2014-01-14 22:11:10 -08:00
Johann Steinbrecher
f7aab02978 Fixing indexOf([], undefined, true) to return -1 insead 0 2014-01-14 12:55:06 -08:00
John-David Dalton
fdcd67dd6b Make stable multi prop sort unit test more complex. 2014-01-13 19:39:02 -08:00
John-David Dalton
6c611d71dd Qualify coverage claim in readme. [ci skip] 2014-01-13 09:02:49 -08:00
John-David Dalton
b7e2396269 Increase test coverage of trim methods and _.sortBy. 2014-01-13 08:59:41 -08:00
John-David Dalton
ab62875ab1 Use a more preferred command to enable npm on Node 0.6 in travis.yml. 2014-01-12 22:02:11 -08:00
John-David Dalton
a499fdbb13 Reduce objectTypes and indexTypes deps. 2014-01-12 13:31:37 -08:00
John-David Dalton
bf2f0c38ed Update _.template docs to mark data as optional. [ci skip] 2014-01-11 23:57:17 -08:00
John-David Dalton
b14c05ccae Fix the underscore build of _.memoize. 2014-01-11 23:54:55 -08:00
John-David Dalton
66e7cd41b7 Rebuild dist/lodash.underscore.js with breakIndicator and reverted _.invert. 2014-01-11 21:53:12 -08:00
John-David Dalton
e9a15d9189 Remove keyPrefix for using a simple _ prefix. 2014-01-11 21:50:36 -08:00
John-David Dalton
e4aee13e9e Merge branch 'master' of github.com:lodash/lodash 2014-01-10 22:22:45 -08:00
John-David Dalton
551f9fcdf9 Make checks for _.map and _.reduce use consistent with indexTypes. 2014-01-09 23:27:32 -08:00
John-David Dalton
2ec5e948b4 Make _.isEqual work with plain objects containing constructor properties with like object values and make _.invert assign arrays when using the multiValue flag. [closes #420] 2014-01-09 20:13:37 -08:00
John-David Dalton
60b7f504e6 Make the guard checks in _.assign and _.defaults more thorough. 2014-01-09 08:43:52 -08:00
John-David Dalton
f99668f551 Add doc note to _.bind, _.bindAll, _.partial, _.partialRight, and _.curry about not setting the resulting functions .length. [closes #444] 2014-01-09 08:41:21 -08:00
John-David Dalton
8ade41b270 Update vendors. 2014-01-09 08:10:51 -08:00
John-David Dalton
a36a5363b4 Avoid using a unique key for keyPrefix as it causes issues when lodash is modularized into individual npm packages. [closes #446] 2014-01-09 01:31:28 -08:00
John-David Dalton
cb22fb54e8 Allow _.trim, _.trimLeft, and _.trimRight to remove specified chars. 2014-01-08 23:39:52 -08:00
John-David Dalton
1dcfdfdb65 Remove test until v3.0 when we'll enforce uniform skipping of the constructor property of prototype objects. 2014-01-07 08:30:55 -08:00
John-David Dalton
d309eb8fa1 Expose _.slice. 2014-01-06 22:26:50 -08:00
John-David Dalton
16dfdbe314 Ensure shimIsPlainObject returns true for plain objects with a constructor property that has a function value. 2014-01-05 13:49:18 -06:00
John-David Dalton
b926ed7b00 Rebuild diet and docs. 2014-01-04 23:10:22 -06:00
John-David Dalton
67a6b88104 Add tests for _.capitalize. 2014-01-04 21:51:23 -06:00
John-David Dalton
631699bf80 Doc cleanup. [ci skip] 2014-01-04 21:32:01 -06:00
John-David Dalton
80801bf7d0 Add _.capitalize. 2014-01-04 20:16:19 -06:00
John-David Dalton
4850a033fa Avoid ternary operations that aren't part of an assignment. 2014-01-03 11:50:29 -06:00
John-David Dalton
0b4029f7a1 Fix lodashBizarro tests for trim, trimLeft, and trimRight. 2014-01-03 11:05:09 -06:00
John-David Dalton
c07ef0d92a Add doc note for options.init to createIterator. [ci skip] 2014-01-03 00:55:59 -06:00
John-David Dalton
ca48c5ddff Expose trim, trimLeft, and trimRight. 2014-01-03 00:37:49 -06:00
John-David Dalton
a20c362983 Rearrange source to better match the doc order. 2014-01-02 19:06:40 -06:00
John-David Dalton
7beb204b9d Remove forEach dep from mixin. 2014-01-01 23:10:27 -06:00
John-David Dalton
3e4f9451a0 Update year to 2014. [ci skip] 2014-01-01 12:08:02 -06:00
John-David Dalton
6e5846d206 Replace isWhitespaceAt with trimmedLeftIndex and trimmedRightIndex. 2014-01-01 10:57:42 -06:00
John-David Dalton
5965591934 Optimize trim. 2013-12-31 20:23:25 -06:00
John-David Dalton
78f8a03da5 Ensure the trim fallback is tested and counted for code coverage. 2013-12-31 02:01:19 -06:00
John-David Dalton
4d10584233 Beef up _.parseInt support and add trim internally. 2013-12-30 23:58:56 -06:00
John-David Dalton
106fa64060 Cleanup arrayReg and splice references. 2013-12-29 15:49:26 -06:00
John-David Dalton
95be8b2cf3 Optimize _.sortBy by adding baseCompareAscending and compareMultipleAscending. 2013-12-28 21:39:33 -06:00
John-David Dalton
53d7c6c085 Fix node 0.6 tests with npm registry's new cert. 2013-12-27 11:21:20 -06:00
John-David Dalton
e4df75519c Ensure _.random() returns 1 or 0. 2013-12-26 10:09:53 -06:00
John-David Dalton
0438fa6816 Ensure _.reduce doesn't assign accumulator a collection value if its length is 0. 2013-12-25 02:36:02 -06:00
John-David Dalton
2dab4ccf85 Fix _.reduce for modern and underscore builds. 2013-12-24 12:47:22 -06:00
John-David Dalton
b338e76649 Cleanup lodash and lodash.underscore builds. 2013-12-23 17:45:05 -06:00
John-David Dalton
c737ab764e Minor doc tweaks to _.pluck and _.match. [ci skip] 2013-12-23 11:06:54 -06:00
John-David Dalton
990e73fce6 Add _.match. 2013-12-22 23:56:28 -06:00
John-David Dalton
99fac3ae1c Go back to a version range in travis.yml now that sauce-tunnel has fixed its npm issues. 2013-12-22 23:00:54 -06:00
John-David Dalton
ad0bcc7de9 Add another _.constant test for falsey values. 2013-12-22 01:25:24 -06:00
John-David Dalton
8069853dda Fix reEscapedHtml for underscore builds. 2013-12-21 10:39:02 -06:00
John-David Dalton
14ed669eba Use a fixed version, 1.1.0, until sauce-tunnel fixes their corrupt 1.1.1 npm package. 2013-12-21 10:05:07 -06:00
John-David Dalton
9ff5fa4acf Remove trailing newlines in .html files and add .php to .editorconfig. [ci skip] 2013-12-21 10:03:40 -06:00
John-David Dalton
d026024e8c Merge branch 'master' of github.com:lodash/lodash 2013-12-21 09:45:58 -06:00
John-David Dalton
25d1491e6b Merge pull request #435 from d10/master
Add .editorconfig. [ci skip]
2013-12-21 07:41:32 -08:00
Benjamin Tan
4e1415faf2 Add .editorconfig 2013-12-21 21:15:12 +08:00
John-David Dalton
692f64a78a Reduce _.escape and _.unescape dependencies 2013-12-21 03:45:56 -06:00
John-David Dalton
b20b8af5a6 Simplify nvm use in travis.yml. 2013-12-20 03:15:19 -08:00
John-David Dalton
d34cf636d8 Use Boolean to fake out the isNative check and allow environments to test the native String#contains fork of _.contains 2013-12-20 02:38:18 -08:00
John-David Dalton
3c72ea40b4 Use node --harmony for code coverage tests. 2013-12-20 01:22:15 -08:00
John-David Dalton
f87c7833a3 Update the tested version of node in readme. [ci skip] 2013-12-19 23:04:18 -08:00
John-David Dalton
f3931140fe Add bad shim tests for String#contains and remove those for Function#bind as we don't use native bind. 2013-12-19 02:20:54 -08:00
John-David Dalton
8459117c23 Minor tweaking, moving var order. 2013-12-19 00:57:58 -08:00
John-David Dalton
bbc0c97329 Update docdown to fix doc bugs related to params that are properties of other params. [ci skip] 2013-12-19 00:00:00 -08:00
John-David Dalton
1d8b152758 Merge pull request #432 from d10/master
Fix _.template docs typo. [ci skip]
2013-12-18 23:09:01 -08:00
John-David Dalton
1c4652448c Optimize _.contains by using native String#contains when available. 2013-12-18 23:05:16 -08:00
Benjamin Tan
3a34e606b8 Fix _.template docs typo [ci skip] 2013-12-19 12:02:04 +08:00
John-David Dalton
ca55748103 Ensure AMD tests it all of the debounce coverage. 2013-12-16 23:49:13 -08:00
John-David Dalton
43fa199cfa Remove opera 9 from sauce too. 2013-12-16 22:26:31 -08:00
John-David Dalton
f288ca23ae Correct typo in iteratorTemplate code comment. [ci skip] 2013-12-16 22:10:36 -08:00
John-David Dalton
4026714461 Relax reNative as it's limited in scope. 2013-12-16 21:53:01 -08:00
John-David Dalton
39a8652708 Simplify the _.support.dom check. 2013-12-16 21:22:46 -08:00
John-David Dalton
fb432465ea Disable testing Opera 10 in sauce until they fix it. 2013-12-16 20:17:15 -08:00
John-David Dalton
42bccfe1ec Improve regexp for reNative. 2013-12-16 20:15:37 -08:00
John-David Dalton
98566150d2 Avoid chance fails by noConflict race conditions. 2013-12-16 08:47:16 -08:00
John-David Dalton
676e1705c1 Rebuild docs and dist. 2013-12-16 02:34:46 -08:00
John-David Dalton
172cc1ffea Add thisArg to _.tap. 2013-12-16 02:34:20 -08:00
John-David Dalton
6845a52e92 Avoid sparatic fails with Firefox 26 and amd tests. 2013-12-16 01:44:51 -08:00
John-David Dalton
b5dc89f0e6 Add opera 9 and 10 to sauce tests. 2013-12-16 00:28:06 -08:00
John-David Dalton
ecaea51fe0 Update Firefox version in sauce and try Opera again. 2013-12-15 23:56:12 -08:00
John-David Dalton
77baf08092 Update tested browsers in the readme. [ci skip] 2013-12-15 23:55:43 -08:00
John-David Dalton
63ff5a2fe3 Update node version to 0.10 for sauce in travis.yml since they've upgraded their node 0.10 version. 2013-12-15 23:53:46 -08:00
John-David Dalton
97662f4b3e Fix comment typo in test/index.html. [ci skip] 2013-12-15 23:34:28 -08:00
John-David Dalton
38869d5035 Add tests for _.support.funcDecomp and WinRTError. 2013-12-15 23:17:33 -08:00
John-David Dalton
08047d4ab7 Cleanup iteratorTemplate code comments. [ci skip] 2013-12-15 23:15:19 -08:00
John-David Dalton
cf33853e68 Add result of array tests. 2013-12-15 22:50:43 -08:00
John-David Dalton
768e618ed9 Fix doc typos for _.mapValues and _.sample. 2013-12-15 22:50:10 -08:00
John-David Dalton
025ed51f11 Reduce the chance of a slow script warning in some browsers in test.js. 2013-12-15 21:24:13 -08:00
John-David Dalton
ab9dae3bf3 Fix IE compat mode bug with clearTimeout and setTimeout in test/index.html. 2013-12-15 20:28:03 -08:00
John-David Dalton
74da5dfd4b Keep code coverage up for _.isElement. 2013-12-15 19:15:01 -08:00
John-David Dalton
aaaf452fdc Move "escape" and "evaluate" delimiters to their own regexes. Cleanup the _ docs and iteratorTemplate. 2013-12-15 15:47:09 -08:00
John-David Dalton
d2b97d8aea Cleanup and rebuild docs and diet. 2013-12-14 03:05:30 -08:00
John-David Dalton
8b95216493 Merge pull request #429 from d10/master
Improve links formatting for docs. [ci skip]
2013-12-14 03:01:29 -08:00
Benjamin Tan
f933fa8c78 Improve links formatting for docs 2013-12-14 18:49:01 +08:00
John-David Dalton
f955309139 Switch from chrome to googlechrome browser name in saucelabs.js. 2013-12-14 02:34:05 -08:00
John-David Dalton
9c65a82430 Avoid issues with variable window. 2013-12-14 02:19:42 -08:00
John-David Dalton
7b4dda9c73 Fix readme typo in build differences wiki link. [ci skip] [closes #428] 2013-12-14 01:59:31 -08:00
John-David Dalton
9ad7d2d977 Fix bizarro setTimeout and clearTimeout for requirejs test runs. 2013-12-14 01:53:21 -08:00
John-David Dalton
e3b4b2f667 Simplify iteratorTemplate. 2013-12-14 01:29:17 -08:00
John-David Dalton
60a1374fb4 No longer compile _.assign, _.defaults, or _.forOwn. 2013-12-13 09:11:58 -08:00
John-David Dalton
7fcbc3c003 Fix failing test in node. 2013-12-13 08:34:16 -08:00
John-David Dalton
40421f4321 Make _.isElement more robust. [closes #427] 2013-12-12 22:22:47 -08:00
John-David Dalton
ad2683b610 Add more semicolons to the docs. \ht @mathias [ci skip] 2013-12-11 19:51:07 -08:00
John-David Dalton
7d49699e5f Merge branch 'master' of github.com:lodash/lodash 2013-12-11 09:24:58 -08:00
John-David Dalton
b34a239096 Add more to the "features" section of the readme and use the github url for lodash-amd references. [ci skip] 2013-12-11 09:24:47 -08:00
John-David Dalton
02d1251fe4 Merge pull request #426 from lodash/docs
Tweak documentation for `{un,}escape`. [ci skip]
2013-12-11 09:00:51 -08:00
Mathias Bynens
95e58ebb9f Tweak documentation for {un,}escape [ci skip] 2013-12-11 17:54:08 +01:00
John-David Dalton
1cb2704f1b Add files to bower and volo ignore lists. [ci skip] 2013-12-08 18:15:56 -08:00
John-David Dalton
dea71f1aa9 Update dojo to 1.9.2. 2013-12-08 17:56:11 -08:00
John-David Dalton
aee975b7d8 Add .log files to volo's ignore list. [ci skip] 2013-12-08 17:54:24 -08:00
John-David Dalton
18b6d51644 Reduce the amount of phantomjs runs in travis.yml and tweak for 100% coverage in amd tests. 2013-12-08 14:29:03 -08:00
John-David Dalton
3a5ff851af Avoid swallowing errors in the test setup in .travis.yml. 2013-12-08 12:12:05 -08:00
John-David Dalton
cd929345e6 Ignore all log files in .gitignore. [ci skip] 2013-12-08 11:01:35 -08:00
John-David Dalton
de232dd726 Allow amd builds to test for bizarro methods. 2013-12-08 10:44:07 -08:00
John-David Dalton
8ebe99d4f5 Add support for writing the coverage.json file for phantomjs runs in test/test.js. [ci skip] 2013-12-07 23:46:39 -08:00
John-David Dalton
32f760a461 Add semantic versioning note to readme. [ci skip] 2013-12-07 23:28:02 -08:00
John-David Dalton
65eaab5cf4 Update .gitignore to ignore npm-debug.log and coverage folders. [ci skip] 2013-12-07 23:05:39 -08:00
John-David Dalton
51698944e0 Cleanup _.xor patch and add a unit test. 2013-12-06 20:34:59 -08:00
Ryan Van Etten
64fc924357 Ensure _.xor() returns new unique array. 2013-12-06 19:38:43 -08:00
John-David Dalton
c61a0cdd22 Cleanup _.compact optimization. 2013-12-06 19:34:30 -08:00
robertmesserle
9a1de81fc5 Optimized compact method by using a counter in place of Array.prototype.push() 2013-12-06 19:34:30 -08:00
John-David Dalton
3633d3cd73 Optimize _.unescape. 2013-12-06 09:13:38 -08:00
John-David Dalton
9a0465eb05 Reduce sauce timeouts. 2013-12-05 21:25:03 -08:00
John-David Dalton
088e199aa2 Cleanup docs. [ci skip] 2013-12-05 21:24:47 -08:00
John-David Dalton
bc4c043d7e Cleanup previous commit, add a _.invert unit test, and rebuild docs. 2013-12-05 09:38:42 -08:00
John-David Dalton
764299ea8a Merge pull request #420 from dr-skot/master
Add oneToMany support in _.invert.
2013-12-05 08:35:14 -08:00
Scott Shepherd
2abc87a1f2 regenerated README.md after adding oneToMany support to _.invert 2013-12-05 11:28:06 -05:00
Scott Shepherd
75fa116c88 built dist files after adding oneToMany support to _.invert 2013-12-05 11:24:46 -05:00
Scott Shepherd
cc7575adab added oneToMany option to _.invert() 2013-12-05 09:14:58 -05:00
Scott Shepherd
efb1a2c8e0 added oneToMany option to _.invert() 2013-12-05 09:12:38 -05:00
John-David Dalton
c2972fcaa0 Avoid adding Function.prototype additions to _. 2013-12-04 22:50:51 -08:00
John-David Dalton
250fd71e16 Tweak readme layout of downloads and add not about 100% code coverage. [ci skip] 2013-12-03 22:38:02 -08:00
John-David Dalton
783c165201 Add doc note to _.zip about unzipping values. [ci skip] [closes #418] 2013-12-03 20:40:15 -08:00
John-David Dalton
326a3c5932 Fix typo in test description and reduce sauce test timeouts. 2013-12-03 20:37:26 -08:00
John-David Dalton
0af1a85442 Bump to v2.4.1. 2013-12-02 23:21:16 -08:00
John-David Dalton
10e7bb97ee Add comments to baseBind use of arguments. [ci skip] [closes #416] 2013-12-02 23:11:19 -08:00
John-David Dalton
c319bbc5f3 Ensure _.isEqual performs comparisons between objects with shared property values correctly. [closes #415] 2013-12-02 21:15:00 -08:00
John-David Dalton
9e42f70e5f Add more lodashBadShim tests. 2013-12-02 01:40:20 -08:00
John-David Dalton
ff47152187 Add max-duration option to sauce config. 2013-12-01 21:40:48 -08:00
John-David Dalton
94b6ce5ca0 Excuse some underscore _.debounce and _.throttle tests in sauce. 2013-12-01 21:40:48 -08:00
John-David Dalton
8e1020f134 Tweak _.now unit test. 2013-12-01 21:40:48 -08:00
John-David Dalton
be7a0fef41 Increase sauce idle-timeout from the default of 90 to 300. 2013-12-01 21:40:48 -08:00
Bitdeli Chef
9fe7bb7362 Add a Bitdeli badge to README 2013-12-01 17:55:22 +00:00
John-David Dalton
5d4b121ac1 Remove extra props added for lodashBadShim. 2013-12-01 11:29:41 -06:00
John-David Dalton
cb424a5f78 Better error messages for sauce issues. [ci skip] 2013-11-30 23:11:16 -06:00
John-David Dalton
88ab9d0756 Fix phantomjs browser tests. 2013-11-30 19:57:42 -06:00
John-David Dalton
29f4fd40ed Try a different secure string in travis.yml. 2013-11-30 17:10:53 -06:00
John-David Dalton
b7f7ba06b9 Merge qunit clib and extras. 2013-11-30 16:02:18 -06:00
John-David Dalton
94f8ac8d1d Get test coverage to 100%. 2013-11-30 11:51:11 -06:00
John-David Dalton
72ab38bd2f Remove fork in baseUniq that is never reached and increase test coverage. 2013-11-30 00:29:50 -06:00
John-David Dalton
b3d5466131 Fix tests for commonjs module builds. [ci skip] 2013-11-29 22:11:30 -06:00
John-David Dalton
bafbd8f1b6 Add COVERALLS_REPO_TOKEN to travis.yml. 2013-11-29 21:57:21 -06:00
John-David Dalton
8c1ce03183 Ignore .coveralls.yml. 2013-11-29 21:01:12 -06:00
John-David Dalton
97490b272f Add more unit tests to increase coverage. 2013-11-29 20:54:18 -06:00
John-David Dalton
2afbe9514b Rebuild files and docs. 2013-11-29 20:37:56 -06:00
John-David Dalton
603be609a1 Add sudo to the istanbul command in travis.yml. 2013-11-29 18:48:01 -06:00
John-David Dalton
4590be7b65 Add isNative. 2013-11-29 18:47:25 -06:00
John-David Dalton
097a2f6582 Optimize _.partial and _.partialRight. 2013-11-29 11:21:48 -06:00
John-David Dalton
f818e5bc51 Whitespace nit in test.js. [ci skip] 2013-11-29 08:40:13 -06:00
John-David Dalton
34cf8fc43c Ensure _.partialRight args are applied to __bindData__ in the correct order. [closes #408] 2013-11-29 07:09:21 -06:00
John-David Dalton
7712765c3a Ensure __bindData__ is properly cloned. [closes #408] 2013-11-29 06:31:37 -06:00
John-David Dalton
eaf1304eda Rebuild with xor doc typo fixed and docs with lodash.com link. [ci skip] 2013-11-27 23:46:27 -06:00
John-David Dalton
f97f32df0f Merge pull request #406 from Delapouite/doc
Add home link in docs. [ci skip]
2013-11-27 03:45:22 -06:00
John-David Dalton
79eecd6db4 Remove extraneous test. [ci skip] 2013-11-27 03:42:59 -06:00
Delapouite
5a75d8e788 Add home link in docs. [ci skip] 2013-11-27 10:12:17 +01:00
John-David Dalton
42e58fb73a Add unit test for _.sortBy to ensure arrays returned from callbacks are coerced. 2013-11-26 15:10:55 -06:00
John-David Dalton
dba996b2c4 Fix doc typos. [ci skip] 2013-11-26 15:10:45 -06:00
John-David Dalton
647f0dd34b Bump to v2.4.0. 2013-11-25 23:14:32 -06:00
John-David Dalton
a691a519e8 Add options object to _.mixin. [closes #404] 2013-11-25 13:26:08 -06:00
John-David Dalton
86075973b5 Remove setImmediate use from _.defer. 2013-11-24 15:31:34 -06:00
John-David Dalton
97ea15300c Added unit tests for clearing the timer id of _.delay and _.defer and tests for array chaining methods. 2013-11-24 15:11:45 -06:00
John-David Dalton
a150a8fd52 Update sauce labs excused list in test/underscore.html. [ci skip] 2013-11-24 11:25:12 -06:00
John-David Dalton
ad4e20da52 Fix async test in node when testing modules. [ci skip] 2013-11-24 00:30:13 -06:00
John-David Dalton
e43ab1e46f Add missing semicolon in _#chain doc. [ci skip] 2013-11-22 22:18:53 -08:00
John-David Dalton
e32e280cf1 Update async _.throttle test. 2013-11-22 22:08:51 -08:00
John-David Dalton
c1a07e0943 Cleanup _.xor. 2013-11-22 18:43:51 -08:00
John-David Dalton
93fe641dbf Change sauce detect in test/underscore.html. [ci skip] 2013-11-22 12:42:39 -08:00
John-David Dalton
d8194c0886 Allow _.sortBy to accept an array for callback. 2013-11-22 09:35:39 -08:00
John-David Dalton
75ce4766d3 Fix _.mixin doc typo. [ci skip] 2013-11-21 22:04:59 -08:00
John-David Dalton
7eff3bf854 Add opera to sauce labs and shorten ie-compat tag. 2013-11-21 22:04:38 -08:00
John-David Dalton
af143ae7dc Update alias output in doc TOC. [ci skip] 2013-11-21 10:53:56 -08:00
John-David Dalton
a0e9140dde Use non-minified file for istanbul coverage checks. 2013-11-21 10:52:59 -08:00
John-David Dalton
33e5d46c87 Add _.constant, _.mapValues, and _.xor. 2013-11-21 09:31:55 -08:00
John-David Dalton
f74b206864 Move asyncRetries config to test/test.js. 2013-11-20 19:13:06 -08:00
John-David Dalton
f334ebe577 Revert istanbul change in travis.yml. 2013-11-20 19:11:46 -08:00
John-David Dalton
9c39394d7f Load QUnit extras for cli tests too. 2013-11-20 09:15:39 -08:00
John-David Dalton
8ea0e6977a Move _.createCallback and _.property to the "Utilities" category. 2013-11-20 08:44:53 -08:00
John-David Dalton
bf006473c0 Add _.debounce and _.throttle test for the this binding of func. 2013-11-19 23:33:43 -08:00
John-David Dalton
568af27be4 Change istanbul test file in travis.yml. 2013-11-19 22:34:18 -08:00
John-David Dalton
bd55f86203 Indicate aliases with -> in docs. 2013-11-19 21:26:06 -08:00
John-David Dalton
d95e577639 Expose lodash in the amd fork of the UMD in case it's being loaded with a shim config. [closes #400] 2013-11-19 09:24:12 -08:00
John-David Dalton
a904e54122 Fix _.throttle and _.now tests. 2013-11-19 00:06:20 -08:00
John-David Dalton
2a97655a8d Expose _.now. 2013-11-18 22:34:04 -08:00
John-David Dalton
d878718510 Update sauce platforms with newer chrome versions and more safari versions. 2013-11-18 08:41:41 -08:00
John-David Dalton
416227a2a2 Add build data to sauce. 2013-11-17 22:57:23 -08:00
John-David Dalton
7d1baa8798 Update vendor/benchmark.js. [ci skip] 2013-11-17 18:58:08 -08:00
John-David Dalton
fe2ee64ec9 Expose _.property. 2013-11-16 20:31:18 -08:00
John-David Dalton
96819628d6 Minor doc nit in saucelabs.js. [ci skip] 2013-11-16 12:09:22 -08:00
John-David Dalton
1b30d7909c Minor nit on require path in saucelabs.js. 2013-11-16 09:18:50 -08:00
John-David Dalton
baf253d44e Reduce timer waits because we've fixed the issue with asyncRetries. 2013-11-16 09:18:08 -08:00
John-David Dalton
b7a4d50007 Add coveralls to travis.yml. 2013-11-16 01:14:14 -08:00
John-David Dalton
625b4befb5 Rebuild docs and add links to sauce labs and travis-ci to readme. [ci skip] 2013-11-16 01:14:14 -08:00
John-David Dalton
30678f51bd Fix var _ assignment in index.html. 2013-11-16 01:14:14 -08:00
John-David Dalton
7a4103dd48 Make use of the wait throbber in quint and cleanup the throbber in saucelabs.js. 2013-11-15 22:18:03 -08:00
John-David Dalton
bca3ff2eac Avoid loading lodash when not needed in unit tests. 2013-11-15 22:09:30 -08:00
John-David Dalton
28e2934a89 Allow _.zipObject to accept an array of keys without assuming its an array of key/value pairs. [closes #397] 2013-11-15 00:18:29 -08:00
John-David Dalton
0563af682d Update docdown to avoid escaping characters in code snippets. [ci skip] 2013-11-14 22:40:48 -08:00
John-David Dalton
5ccd63250b Move qunit extras to qunit-extras.js. 2013-11-14 21:02:46 -08:00
John-David Dalton
f262a0745d Avoid require('vm') if testing AMD. 2013-11-14 11:37:15 -08:00
John-David Dalton
c42b63b008 Move compat mode testing to an argument instead of a query param. 2013-11-14 08:47:34 -08:00
John-David Dalton
e7ffb80877 Enable other realm tests for Node too. 2013-11-14 08:30:34 -08:00
John-David Dalton
919166212f Fix istanbul report in travis.yml and tweak async tests. 2013-11-14 01:03:20 -08:00
John-David Dalton
deb124f645 Update ES6 spec link in lodash source too. [ci skip] 2013-11-13 23:28:14 -08:00
John-David Dalton
86b1ff5125 Merge pull request #396 from Delapouite/doc
Update README link to literals string spec. [ci skip]
2013-11-13 09:46:53 -08:00
John-David Dalton
2c8c96149f Fix how sauce runner and tags are parsed. 2013-11-13 08:13:18 -08:00
Delapouite
82e4cc9951 Update README link to literals string spec [ci skip] 2013-11-13 17:06:58 +01:00
John-David Dalton
04df06404f Bump tested Chrome version in readme. [ci skip] 2013-11-13 01:11:50 -08:00
John-David Dalton
f6fcf5fce4 Attempt to make sauce tests public with names, tags, and customized options. 2013-11-13 00:24:08 -08:00
John-David Dalton
ac5e92c879 Update doc whitespace and _.template doc example. [ci skip] 2013-11-13 00:20:17 -08:00
John-David Dalton
37ccc80ba4 Fix _.size doc typo. [ci skip] [closes #394] 2013-11-12 08:59:40 -08:00
John-David Dalton
8153f97899 Update docdown to correctly detect _.noop as a function. [ci skip] 2013-11-12 00:21:45 -08:00
John-David Dalton
8dedc6d3dc Make use of _.noop more in test/test.js. 2013-11-12 00:20:42 -08:00
John-David Dalton
807d75e13a Remove exposing root._ in the AMD fork of the UMD because Lo-Dash is defined as an anonymous module and the issue it solves isn't applicable to it. 2013-11-11 22:07:56 -08:00
John-David Dalton
feac1786e1 Move min tested Node.js version up to match travis-ci to avoid local testing on top of travis-ci. [ci skip] 2013-11-11 19:37:09 -08:00
John-David Dalton
09e0f4e36c Move ui.isModularize lower in test-ui.js, tweak timing tests, and update lodash-es6 link in readme. 2013-11-11 09:27:49 -08:00
John-David Dalton
9999332107 Bump to v2.3.0. 2013-11-10 20:54:17 -08:00
John-David Dalton
d4ec7e5357 Adjust _.throttle timing in test/test.js. 2013-11-10 19:54:37 -08:00
John-David Dalton
064b3caf08 Fix test in newer opera. 2013-11-10 19:32:53 -08:00
John-David Dalton
c83d2e9513 Fix failing tests in old Opera. 2013-11-10 18:10:34 -08:00
John-David Dalton
48ff516215 Move support note to lodash-cli. [ci skip] 2013-11-10 15:33:43 -08:00
John-David Dalton
cdccbb59ab Avoid the use of _.times in timed tests. 2013-11-10 13:52:24 -08:00
John-David Dalton
2fe5a863ac Avoid _.noop use in test/underscore.html and test/backbone.html. 2013-11-10 13:22:47 -08:00
John-David Dalton
7d1fccf474 Ensure _.noop isn't exposed for underscore builds. 2013-11-10 12:03:13 -08:00
John-David Dalton
0a8dbc8831 Minor readme style tweaks. [ci skip] 2013-11-10 11:11:00 -08:00
John-David Dalton
177a3c2cbd Simplify baseCreateWrapper. 2013-11-09 08:38:04 -08:00
John-David Dalton
9f22e634f5 Simplify a _.debounce and a_.throttle test. 2013-11-09 01:06:44 -08:00
John-David Dalton
55a8c7b540 Correct underscore builds & temporarily disable opera testing in sauce until they resolve their issues. 2013-11-08 09:23:40 -08:00
John-David Dalton
76c11fe65a Try opera in saucelabs.js. 2013-11-07 22:24:26 -08:00
John-David Dalton
b15ed00feb Reduce wait times to speed up unit tests. 2013-11-07 20:51:48 -08:00
John-David Dalton
fc3ff34c2d Fix builds. 2013-11-07 20:48:11 -08:00
John-David Dalton
5faa0f55bc Add baseDifference to optimize _.omit & _.without. 2013-11-07 20:43:23 -08:00
John-David Dalton
77f0731c3e Push back timer in _.delay tests. 2013-11-07 20:42:48 -08:00
John-David Dalton
ffff623852 Tweak var names in _.clone and baseFlatten. [ci skip] 2013-11-07 19:27:19 -08:00
John-David Dalton
a6bc40b506 Fix typo in _.contains docs. [ci skip] [closes #393] 2013-11-07 19:04:56 -08:00
John-David Dalton
a034515019 Add DevDocs to the readme. [ci skip] 2013-11-07 09:52:20 -08:00
John-David Dalton
49c8f23bf7 Adjust timing test to avoid false fails in sauce. 2013-11-07 09:19:25 -08:00
John-David Dalton
29b7a71812 Ensure there is a response object before accessing its statusCode. 2013-11-07 09:05:44 -08:00
John-David Dalton
8de3283dd1 Add special thanks to Sauce Labs to readme. [ci skip] 2013-11-06 23:15:07 -08:00
John-David Dalton
4bbe5b3358 Fix minified builds. 2013-11-06 22:10:55 -08:00
John-David Dalton
3dd3af4a73 Optimize _.omit for large arrays by leveraging _.difference which has optimizations for large arrays. 2013-11-06 21:09:58 -08:00
John-David Dalton
7e7b129822 Move the QUnit.config.hidepassed setting up. 2013-11-06 20:05:28 -08:00
John-David Dalton
8bcc1d81d2 Set loader to none by default in test.html and add default values to perf.html too. 2013-11-06 09:27:19 -08:00
John-David Dalton
aa8e92e9a5 Update qunit-clib to avoid issues with non-writable context.clearTimeout. 2013-11-06 08:51:16 -08:00
John-David Dalton
a8196ec99e Update builds & docs. 2013-11-05 23:54:03 -08:00
John-David Dalton
bd3034819e Ensure recursive _.throttle calls still work. 2013-11-05 23:48:07 -08:00
John-David Dalton
7bb86c4e2a Fix typos and rebuild docs & builds. 2013-11-05 21:53:28 -08:00
John-David Dalton
94ed21d1cf Add count check now that we clear timeoutId properly. 2013-11-05 21:44:59 -08:00
John-David Dalton
1bb7c31ee4 Clear timeoutId if func is called in _.debounce. 2013-11-05 21:41:13 -08:00
John-David Dalton
06d12b376c Tweak pull_request detection in saucelabs.js. 2013-11-05 21:17:42 -08:00
John-David Dalton
e9c8137fd8 Add a mix of arguments to _.throttle tests. 2013-11-05 21:14:47 -08:00
John-David Dalton
eaaddf40d2 Fix failing _.debounce test. 2013-11-05 21:14:29 -08:00
John-David Dalton
3e0c565019 Add failing test case for current _.debounce patch. 2013-11-05 21:12:43 -08:00
John-David Dalton
984603112f Push delay back to see if it helps timing tests in travis/sauce. 2013-11-05 19:49:46 -08:00
John-David Dalton
fe29246256 Merge pull request #389 from jayphelps/leaky-pipes
Fixed memory leak with debounce/throttle arguments and context.
2013-11-05 19:04:13 -08:00
Jay Phelps
84d0664112 Fixed memory leak with debounce/throttle arguments and context 2013-11-05 18:50:39 -08:00
John-David Dalton
3d3c59cea6 Minor style tweaks and simplify travis.yml. 2013-11-05 09:28:11 -08:00
John-David Dalton
7940428b9b Add _.bind, _.partial, _.partialRight, & _.curry tests for function length. 2013-11-05 08:36:32 -08:00
John-David Dalton
2e485b9ac5 Tweak test filters for backbone and underscore. 2013-11-05 08:36:02 -08:00
John-David Dalton
b76aa926f6 Add underscore build tests to sauce. 2013-11-05 08:35:31 -08:00
John-David Dalton
58d81546da Minor cleanup in saucelabs.js. 2013-11-05 00:22:50 -08:00
John-David Dalton
7a480990c6 Avoid underscore timing tests in sauce. 2013-11-04 23:18:39 -08:00
John-David Dalton
afb10efd83 Avoid false fail on _.debounce test. 2013-11-04 22:15:29 -08:00
John-David Dalton
e2f05e137f Ensure only 4 sauce runs at once. 2013-11-04 21:38:35 -08:00
John-David Dalton
d72ade9c70 Leverage tunnels in sauce now that sauce-tunnel is updated. 2013-11-04 20:35:29 -08:00
John-David Dalton
64650fcdee Allow sauce to test IE6/7 for Backbone. 2013-11-04 19:31:56 -08:00
John-David Dalton
e1acb7df13 Fix typo. 2013-11-04 09:09:01 -08:00
John-David Dalton
319a30cf3a Tweak wording in readme. [ci skip] 2013-11-04 09:07:32 -08:00
John-David Dalton
e631f1b313 Avoid lodash use in test setups. 2013-11-04 09:07:07 -08:00
John-David Dalton
617f31b47f Make _.reduce, _.reduceRight, & _.transform to use lodash.createCallback. [closes #388] 2013-11-04 08:01:32 -08:00
John-David Dalton
61e9aac92d Avoid buggy tests in safari in sauce. 2013-11-03 22:38:15 -08:00
John-David Dalton
75812804f4 Rebuild minified builds after uglifyjs update. 2013-11-03 20:56:27 -08:00
John-David Dalton
b60f36f211 Tweak timing tests. 2013-11-03 20:38:17 -08:00
John-David Dalton
e342c878d0 Reduce tests so travis-ci won't timeout. 2013-11-03 15:42:02 -08:00
John-David Dalton
c6b3cadf55 Adjust sauce underscore/backbone settings. 2013-11-03 14:38:16 -08:00
John-David Dalton
869a361d09 Add underscore tests to sauce. 2013-11-03 12:49:15 -08:00
John-David Dalton
f83119e188 Avoiding timing issue with _.debounce test and enable sauce support for backbone tests. 2013-11-03 08:07:44 -08:00
John-David Dalton
578c4b444c Add backbone tests to sauce. 2013-11-03 01:08:21 -08:00
John-David Dalton
d63f9be03f Fix legacy and mobile paths in sauce. 2013-11-03 01:14:25 -07:00
John-David Dalton
62fe02415a Fix compat minified build. 2013-11-03 00:20:55 -07:00
John-David Dalton
481970c763 Add quotes to urls in .travis.yml. 2013-11-02 23:35:56 -07:00
John-David Dalton
7c8dc66ba1 Continue tweaking timing based tests. 2013-11-02 23:35:36 -07:00
John-David Dalton
20ffbf5a82 Use the process.cwd() in sauce labs and unroll sauce tests in travis.yml. 2013-11-02 22:52:38 -07:00
John-David Dalton
2b6f26b214 Run sauce labs in node v0.8 until travis-ci updates their 0.10 version. 2013-11-02 21:38:41 -07:00
John-David Dalton
d743ec2d2b Cleanup travis.yml, tweak how pull requests are handled in saucelabs.js, and tweak timing tests in test/test.js. 2013-11-02 20:53:51 -07:00
John-David Dalton
dfab332285 Auto create platforms list based on test url params. 2013-11-02 14:57:58 -07:00
John-David Dalton
bbbce8a981 Change commit depth to 10 in .travis.yml. [ci skip] 2013-11-02 14:35:48 -07:00
John-David Dalton
0dc4ccb42f Add the partial tunnel support back but don't run parallel jobs until sauce fixes their support. 2013-11-02 14:27:38 -07:00
John-David Dalton
b46c2c2527 Remove tunnelId support as it's not fully supported by sauce labs atm. 2013-11-02 14:07:17 -07:00
John-David Dalton
3b128f844b Experiment with a different tunnel id. 2013-11-02 13:44:31 -07:00
John-David Dalton
d38b3d09ba Tweak sauce labs test completion wait time. 2013-11-02 13:26:30 -07:00
John-David Dalton
d35c5ffa04 Update builds and add tunnelId to saucelabs.js. 2013-11-02 13:07:42 -07:00
John-David Dalton
eb7243233e Add IE compat mode testing to travis-ci. 2013-11-02 10:56:00 -07:00
John-David Dalton
21bf629505 Fix typo in saucelabs.js. 2013-11-02 10:13:28 -07:00
John-David Dalton
702022001d Try to avoid more false fails w/ time related tests. 2013-11-02 09:50:19 -07:00
John-David Dalton
d9549ad634 Make saucelabs.js skip running for pull requests, avoid errors when no result object is returned, and add IE 11 to the list of tested browsers. 2013-11-02 09:32:35 -07:00
Blaine Bublitz
daf91dbf95 switch from connect to ecstatic for sauce tests, parse URL for compat in querystring and set header 2013-11-02 00:59:52 -07:00
John-David Dalton
2bc19120d9 Avoid false fail for a _.throttle test in some VMs. 2013-11-01 23:28:20 -07:00
John-David Dalton
8ddfa8cd68 Add _.isEqual tests for wrapped and unwrapped values. 2013-11-01 19:13:36 -07:00
John-David Dalton
076d10358e Add the last of the underscore _.isEqual unit tests. 2013-10-31 22:59:23 -07:00
John-David Dalton
5930983641 Update link to custom builds documentation. [ci skip] 2013-10-31 09:31:08 -07:00
John-David Dalton
a0c5cb51aa Add more _.isEqual tests and ensure _.isEqual(_(false), _(false)) will compare correctly. 2013-10-31 09:01:40 -07:00
John-David Dalton
8e659745fd Update readme. 2013-10-31 00:06:11 -07:00
John-David Dalton
87297d2a07 Cleanup saucelabs.js round two. 2013-10-31 00:02:47 -07:00
John-David Dalton
8f23611f1a Rename window to root. 2013-10-31 00:02:19 -07:00
John-David Dalton
e2affb0f38 See what process.env logs in saucelabs.js. 2013-10-30 20:15:19 -07:00
John-David Dalton
26e6041b7a Reduce false fails at the expense of explicitness. 2013-10-30 19:34:48 -07:00
John-David Dalton
81707a45d5 Fix typo in builds. 2013-10-30 19:34:21 -07:00
John-David Dalton
805f2b28a9 Update builds & docs. 2013-10-30 09:46:58 -07:00
John-David Dalton
22aa02895e Add propertyIsEnumerable check to the _.isArguments fallback. [closes #382] 2013-10-30 09:24:25 -07:00
John-David Dalton
6bb89778b2 Expose _.noop. [closes #380] 2013-10-30 09:20:56 -07:00
John-David Dalton
6631b9e78f Hide passing tests by default. 2013-10-30 01:09:10 -07:00
John-David Dalton
7f7d5b32da Remove debug from perf.js. 2013-10-30 01:04:36 -07:00
John-David Dalton
52def444ab Update builds after cleanup. 2013-10-30 01:04:01 -07:00
John-David Dalton
7d52ab7c54 Add _.partial perf tests. 2013-10-29 23:58:40 -07:00
John-David Dalton
852b324819 Rename createBound to createWrapper and break createWrapper apart. 2013-10-29 23:58:16 -07:00
John-David Dalton
e019441ede Remove opera from sauce labs as they are unable to launch on their end. 2013-10-29 09:33:54 -07:00
John-David Dalton
ac8f8d0dd6 Ensure _.min and _.max can be used as the callback of _.map. [closes #379] 2013-10-29 09:32:40 -07:00
John-David Dalton
3fa2e7e12e Avoid false fail in older firefox. 2013-10-29 08:56:24 -07:00
John-David Dalton
5d099491df Tweak platforms in saucelabs.js. 2013-10-29 01:22:50 -07:00
John-David Dalton
d7ca0f7734 Remove trailing comma. 2013-10-29 01:17:32 -07:00
John-David Dalton
5d31338b02 Move isV8 and setImmediate assignment after nativeCreate is assigned. 2013-10-29 01:14:12 -07:00
John-David Dalton
a44b81d240 Add browsers to saucelabs.js. 2013-10-29 00:45:02 -07:00
John-David Dalton
742e499de0 Remove native Function#bind use. 2013-10-29 00:00:07 -07:00
John-David Dalton
eb395d6d2d Cleanup perf.js. 2013-10-28 23:25:51 -07:00
John-David Dalton
a1383c34b5 First round of sauce support cleanup. 2013-10-28 09:29:57 -07:00
John-David Dalton
e538da3959 Merge branch 'master' of github.com:lodash/lodash 2013-10-28 09:10:37 -07:00
John-David Dalton
687a072dc8 Cleanup tests and add more _.isEqual tests. 2013-10-28 09:10:26 -07:00
John-David Dalton
5dc9881241 Merge pull request #376 from pimterry/saucelabs
Automatic browser tests with SauceLabs in Travis. [ci skip]
2013-10-28 08:22:40 -07:00
pimterry
0b3a7e2f0f Move saucelabs test config into /test 2013-10-28 10:55:34 +00:00
pimterry
123455a5bb Move saucelabs to an explicit travis case, out of the build matrix
This avoids us rebuilding it with every other combination (saucelabs + node .6/8/.10), as that's not really useful
2013-10-28 00:15:10 +00:00
pimterry
34c8d8dd2e Improve console logging output for saucelabs tests, and explicitly close sauce connect 2013-10-28 00:14:59 +00:00
pimterry
3f4c92d739 Add test listener to QUnit to report results for saucelabs 2013-10-28 00:09:45 +00:00
pimterry
eb10245df1 Moved sauce connect management to saucelabs.js, for manual control 2013-10-28 00:09:40 +00:00
Tim Perry
2dbfcbb378 Updated travis config to run the saucelabs tests for various browsers 2013-10-28 00:07:22 +00:00
Tim Perry
a717f5c030 Initial working saucelabs test result recording 2013-10-28 00:07:16 +00:00
Tim Perry
3a711790c5 PoC saucelabs test runner 2013-10-27 22:55:11 +00:00
John-David Dalton
5d77cb0396 Update underscore build with _.difference patch from lodash-cli. [closes #373] 2013-10-26 00:26:23 -07:00
John-David Dalton
9972ea578b Update builds. 2013-10-26 00:25:42 -07:00
John-David Dalton
0bb3762397 Simplify environment detections. 2013-10-26 00:25:09 -07:00
John-David Dalton
fbd6e21152 Add more "Objects" tests to test/test.js. 2013-10-25 09:36:27 -07:00
John-David Dalton
bea62537df Fix asyncTest with rhino -require. 2013-10-25 00:38:19 -07:00
John-David Dalton
fdbe4c5bd5 Avoid broken Function#bind in Narwhal. 2013-10-24 22:45:33 -07:00
John-David Dalton
91e779a52c Remove secure sauce access key since @pimterry is on the case. 2013-10-24 22:25:21 -07:00
John-David Dalton
e2c5e92cd3 Fix failing tests for rhino -require. 2013-10-24 09:09:18 -07:00
John-David Dalton
5929676ea2 Add more "Objects" test and fix tests for node. 2013-10-24 00:18:02 -07:00
John-David Dalton
36e180ab91 Add more "Objects" tests and fix failing tests. 2013-10-23 23:54:03 -07:00
John-David Dalton
1e8fe22553 Use internal slice instead of nativeSlice.call when converting arguments to arrays. 2013-10-23 21:55:05 -07:00
John-David Dalton
8e1bd2d8f3 Add more of Underscore's "Objects" tests to test/test.js. 2013-10-23 21:38:16 -07:00
John-David Dalton
239ce262ef Add sauce secure key in the hope that someone will complete the work required to get sauce testing working. 2013-10-22 22:16:27 -07:00
John-David Dalton
5be66e98c2 Fix flakey _.throttle unit test. 2013-10-22 21:54:47 -07:00
John-David Dalton
cacd072c15 Add "Objects" tests from Underscore to test/test.js. 2013-10-22 09:28:23 -07:00
John-David Dalton
14c6a1bf23 Add docs to an advanced section of createBound. [ci skip] 2013-10-22 09:27:33 -07:00
John-David Dalton
b27dfd4c77 Escape asterisks and other characters in generated docs. [ci skip] 2013-10-21 22:45:37 -07:00
John-David Dalton
4622e9658d Fix doc link hashes for github. [ci skip] 2013-10-21 21:31:08 -07:00
John-David Dalton
f8bda517c3 Add the rest of the underscore "Functions" tests to test/test.js. 2013-10-21 09:21:02 -07:00
John-David Dalton
de3d9fdb8b Fix more doc typos and add more underscore "Functions" tests to test/test.js. 2013-10-21 00:35:01 -07:00
John-David Dalton
c6291bea52 Fix various doc typos and update builds. 2013-10-20 23:48:33 -07:00
John-David Dalton
a266e3c898 Ensure functions are rebound correctly by shallow cloning the __bindData__ before passing it to createBound. [closes #371] 2013-10-20 23:45:53 -07:00
John-David Dalton
f9c34d6808 Add more underscore "functions" tests to test/test.js. 2013-10-20 23:35:42 -07:00
John-David Dalton
10a91cac2f Add more underscore _.template tests to test/test.js. 2013-10-20 17:38:57 -07:00
John-David Dalton
f7e25e9c63 Add note about _.create and update support section of readme. [ci skip] 2013-10-20 17:02:32 -07:00
Kevin Ji
5f821a58a3 Update contributor links. [ci skip] 2013-10-20 17:01:46 -07:00
Kevin Ji
4a2ad4e6f9 Use https for all Twitter contributor links 2013-10-20 13:17:30 -07:00
John-David Dalton
4a2bbb52c1 Fix remove circular dependency in _.create by adding baseCreate. 2013-10-19 16:20:15 -07:00
John-David Dalton
ed401199bd Allow _.create to accept a properties object and rebuild docs and other builds. 2013-10-19 14:57:12 -07:00
John-David Dalton
eee3a263f5 Add _.create to chaining docs. [ci skip] 2013-10-19 13:15:39 -07:00
John-David Dalton
eca1d9aabd Don't expose _.create for underscore build. 2013-10-19 08:38:57 -07:00
John-David Dalton
33ff9cfbb6 Add _.create and alias tests. 2013-10-19 01:08:32 -07:00
John-David Dalton
de8e6d7174 Add _.create. 2013-10-19 01:08:09 -07:00
John-David Dalton
cd9332cddf Add comment to _.parseInt. [ci skip] 2013-10-18 22:18:15 -07:00
John-David Dalton
fb4a861c0d Reduce _.wrap by taking advantage of createBound. 2013-10-18 08:21:30 -07:00
John-David Dalton
c30460df4c Optimize _.isBoolean, _.isNumber, and _.isString for the false case. 2013-10-17 23:59:02 -07:00
John-David Dalton
31e86a36f8 Ensure _.isEqual works with objects created by Object.create(null). 2013-10-17 22:53:40 -07:00
John-David Dalton
0b4fe85b33 Update vendor/curl to 0.8.4. 2013-10-17 09:05:46 -07:00
John-David Dalton
99e7a1705a Update vendor/requirejs to 2.1.9. 2013-10-16 23:28:34 -07:00
John-David Dalton
27c6259b53 Add more underscore "utilities" methods tests. 2013-10-15 22:28:01 -07:00
John-David Dalton
1ecae14bae Move Underscore's chaining tests to test/test.js. 2013-10-15 09:08:45 -07:00
John-David Dalton
c56a09f318 Add doc note to _.forEach about array-like objects. [closes #339] [ci skip] 2013-10-14 23:48:24 -07:00
John-David Dalton
ffec2699ea Add wiki resources page to the readme. [ci skip] 2013-10-14 22:52:00 -07:00
John-David Dalton
46faf0280c Add the rest of the underscore "Collections" tests to test/test.js. 2013-10-14 09:14:54 -07:00
John-David Dalton
3b774ed507 Add JavaScript Jabber podcast to readme. [ci skip] 2013-10-13 21:57:32 -07:00
John-David Dalton
9c62bbbc05 Use npm i shorthand in .travis.yml. [ci skip] 2013-10-13 19:19:08 -07:00
John-David Dalton
dc6b1ef47b More doc tweaks/cleanup. [ci skip]. 2013-10-13 18:06:23 -07:00
John-David Dalton
1f8e1d2a29 Fix typo in baseRandom doc. [ci skip] 2013-10-13 15:55:30 -07:00
John-David Dalton
b30a948601 Update builds, docs, and add a unit test for the _.findWhere alias. 2013-10-13 15:28:51 -07:00
John-David Dalton
e90568e044 Ensure .travis.yml builds the modern build, even though it's available under a different name. 2013-10-13 12:13:31 -07:00
John-David Dalton
c74b5ba3a2 Update vendor/qunit-clib to throw errors for failed tests in ringo, rhino, & narwhal. 2013-10-13 11:26:22 -07:00
John-David Dalton
2085d6afad Ensure minified builds don't mung eachRight. 2013-10-13 11:01:03 -07:00
John-David Dalton
8bfdbd0fed Ensure test fails are reported correctly via .travis.yml. 2013-10-13 10:44:08 -07:00
John-David Dalton
cc3dc6aff0 Fix doc typos. 2013-10-12 21:00:53 -07:00
John-David Dalton
d01284d147 Changes stooges to flintstones and add doc examples to _.findIndex, _.findLastIndex, _.findKey, and _.findLastKey for "_.pluck" and "_.where" shorthands. [closes #362] 2013-10-11 23:47:44 -07:00
John-David Dalton
7b7d5118d6 Add more Underscore "Collections" unit tests to test/test.js. 2013-10-11 23:39:27 -07:00
John-David Dalton
a03a7dcb4a Update vendor/backbone to v1.1.0. 2013-10-10 22:27:32 -07:00
John-David Dalton
dfae413afc Move more Underscore tests into test/test.js. 2013-10-09 21:52:04 -07:00
John-David Dalton
253642a85e Cleanup _.throttle return statement. 2013-10-08 19:33:59 -07:00
John-David Dalton
ce64c8e7d1 Update tested Chrome version in readme. [ci skip] 2013-10-08 00:37:45 -07:00
John-David Dalton
d7ae0105c3 Fix typo in _.range test. 2013-10-07 23:52:15 -07:00
John-David Dalton
e7320e7bd3 Fix typo in _.range doc example. 2013-10-07 23:49:58 -07:00
John-David Dalton
a214565803 Add Underscore's "Array" method category tests to test/test.js. 2013-10-07 23:49:03 -07:00
John-David Dalton
61f1290bea Update vendor/curl.js to v0.8.2. 2013-10-06 23:57:58 -07:00
John-David Dalton
ba5e512d10 Ensure _.template supports single line comments in "evaluate" delimiters in minified builds. [closes #361] 2013-10-05 23:21:47 -07:00
John-David Dalton
624e4bca40 Tweak __bindData__ detection in createBound. 2013-10-04 23:17:06 -07:00
John-David Dalton
613237727d Update path to perf-ui.js in perf/index.html. [ci skip] 2013-10-04 22:36:43 -07:00
John-David Dalton
fd2ddca6f2 Extend baseCreateCallback to functions bound with native Function#bind and those with __bindData__ of false. 2013-10-04 22:35:45 -07:00
John-David Dalton
e114c18031 Ensure _.template coerces the text argument to a string. 2013-10-03 23:30:49 -07:00
John-David Dalton
49e22742de Add test for incorrectly shimmed Object.create. 2013-10-03 09:42:32 -07:00
John-David Dalton
422d7942ef Bump to v2.2.1. 2013-10-03 00:30:29 -07:00
John-David Dalton
a63e7162bc Make doc/parse.php read the version from package.json. [ci skip] 2013-10-02 23:21:41 -07:00
John-David Dalton
1f973b72b8 Keep createObject fallback for modern builds. 2013-10-02 19:47:15 -07:00
John-David Dalton
d3dd97f167 Fix _.mixin creates functions that respect __chain__. 2013-10-02 19:30:49 -07:00
John-David Dalton
f0f17e0041 Updated the tested version of Node.js to 0.10.20 in readme. [ci skip] 2013-10-01 22:20:26 -07:00
John-David Dalton
d6fa8bf233 Add _.pluck to backbone.html in anticipation of Backbone's version bump. [ci skip] 2013-10-01 22:04:43 -07:00
John-David Dalton
ec5e685a1c Remove unneeded keywords from component.json. [ci skip] 2013-10-01 08:39:03 -07:00
John-David Dalton
c88b95751c Reduce setting MAKE in .travis.yml. 2013-09-30 20:21:59 -07:00
John-David Dalton
72ae25bc53 Log the params passed to test.js to the console. 2013-09-30 19:33:18 -07:00
John-David Dalton
02e5cc1da8 Add asset folders and cache busting to worker.js. 2013-09-30 18:53:04 -07:00
John-David Dalton
3d092df56d Tweak isModularize detection. [ci skip] 2013-09-29 20:33:13 -07:00
John-David Dalton
912d5c700c Change before_script to the more appropriate before_install in .travis.yml. 2013-09-29 20:21:45 -07:00
John-David Dalton
6d3c492518 Extend test/test.js to support testing generated npm packages. 2013-09-29 19:19:02 -07:00
John-David Dalton
5e29e3f1cb Tweak wording on _.clone feature note in readme & tweak unit test handling missing _.runInContext. 2013-09-29 14:46:52 -07:00
John-David Dalton
0558495760 Update _.clone unit test for older Safari. 2013-09-29 12:30:34 -07:00
John-David Dalton
0471dfa2f8 Update vendor/qunit-clib to avoid logInline when running on Windows. 2013-09-29 09:53:05 -07:00
John-David Dalton
7883e6544e Remove modularize entry in test-ui.js, update isModularize detection, and avoid a false fail in old Opera. 2013-09-28 22:14:05 -07:00
John-David Dalton
6da87e4a79 Bump to v2.2.0. 2013-09-28 20:29:54 -07:00
John-David Dalton
bafe4fff93 Update vendor/qunit-clib and validate assert counts in each unit test. 2013-09-28 18:27:07 -07:00
John-David Dalton
da782398a2 Allow test.'s to support rhino -require with modularized builds. 2013-09-28 17:13:24 -07:00
John-David Dalton
4b26b46f6a Remove unneeded code from the underscore build of the support object. 2013-09-28 14:02:12 -07:00
John-David Dalton
0f1e69a2df Tweak how isModularize is detected in test/test.js. 2013-09-28 00:25:56 -07:00
John-David Dalton
85f2bd464c Remove "performance" & "speed" keywords from package.json. [ci skip] 2013-09-26 23:47:26 -07:00
John-David Dalton
8a4956b736 Remove openjdk6 from .travis.yml. 2013-09-26 21:55:14 -07:00
John-David Dalton
4a369af4c7 Cleanup baseClone. 2013-09-26 21:05:10 -07:00
John-David Dalton
9749305ecd Make _.clone shallow clone dates, regexps, and boolean/number/string objects. [closes #358] 2013-09-26 20:07:07 -07:00
John-David Dalton
639178dbdc Make qunit-clib less chatty for passed tests. 2013-09-26 08:12:33 -07:00
John-David Dalton
62d038b547 Fix typo in .travis.yml. 2013-09-26 01:10:22 -07:00
John-David Dalton
9b80e3a33b When floating in _.random avoid getting 0 too many times when using arguments like min of -3 and max of 3. 2013-09-25 23:24:58 -07:00
John-David Dalton
0ea54f0458 Optimize .travis.yml narwhal, ringo, and rhino use. 2013-09-25 22:56:51 -07:00
John-David Dalton
374c52f71f Use ln as shorthand for link in the "Notes" section of the readme . [ci skip] 2013-09-25 09:09:04 -07:00
John-David Dalton
60f63e125a Experiment with downloading rhino, ringo, narwhal via .travis.yml. 2013-09-25 07:52:48 -07:00
John-David Dalton
7cfa7f3de4 Use now() in the compat and underscore builds too. 2013-09-24 19:10:09 -07:00
John-David Dalton
92409831c2 Reduce dependency on getObject. 2013-09-24 00:10:16 -07:00
John-David Dalton
e04790a628 Update docs to make the list of aliases more descriptive. [ci skip] 2013-09-23 09:12:50 -07:00
John-David Dalton
cd7bf40508 Have the npm packages link in the readme use the "lodash-modularized" keyword. [ci skip] 2013-09-23 08:38:52 -07:00
John-David Dalton
dc378e9ce7 Bump to v2.1.0. 2013-09-22 22:55:14 -07:00
John-David Dalton
5fcdcec1a8 Tweak test-ui.js for changes in the modularize build option. [ci skip] 2013-09-22 01:15:50 -07:00
John-David Dalton
8773704c8b Strengthen the UMD. 2013-09-20 23:01:53 -07:00
John-David Dalton
291fd1857e Reduce our readme and update docdown. [ci skip] 2013-09-20 21:18:26 -07:00
John-David Dalton
0aa4aeaddc Change directory in .travis.yml before running unit tests. 2013-09-20 19:52:49 -07:00
John-David Dalton
ca81f1b2e8 Add floating argument to _.random. [closes #354] 2013-09-20 00:21:42 -07:00
John-David Dalton
fca3a14410 Update readme with download descriptions. 2013-09-19 23:49:44 -07:00
John-David Dalton
d105e80ed8 Add "include" to .travis.yml. 2013-09-19 22:23:27 -07:00
John-David Dalton
ce63faa597 Add "matrix" to .travis.yml. 2013-09-19 21:12:17 -07:00
John-David Dalton
25c1b63a00 Fix doc typo in _.where. [ci skip] [closes #353, #355] 2013-09-19 18:40:58 -07:00
John-David Dalton
548728abba Avoid PhantomJS 1.9.2 bug in .travis.yml. 2013-09-19 09:33:33 -07:00
John-David Dalton
2ebdbd565a Add tests to check that _.support properties aren't minified. 2013-09-19 09:20:42 -07:00
John-David Dalton
86376616ff Remove testing modern builds by phantomjs in .travis.yml. 2013-09-19 08:53:55 -07:00
John-David Dalton
7c6865f948 Ensure reThis isn't used in Windows 8 apps. 2013-09-19 08:53:19 -07:00
John-David Dalton
c2da0070f5 Add legacy and mobile builds to .travis.yml. 2013-09-18 23:27:11 -07:00
John-David Dalton
bf2a2aed66 Fix typo in _.template docs. 2013-09-18 21:13:34 -07:00
John-David Dalton
403ea0a0e1 Fix _.compose unit test. 2013-09-18 01:20:08 -07:00
John-David Dalton
27976cbe1a Add notes about Infinity and -Infinity to _.min and _.max docs. 2013-09-17 22:54:42 -07:00
John-David Dalton
70147396a4 Add mid check to createCache bailout. 2013-09-17 22:53:10 -07:00
John-David Dalton
d6aed16e7c Allow _.compose to be called without arguments. [closes #352] 2013-09-17 19:40:48 -07:00
John-David Dalton
0414bae820 Avoid creating an enumerable Function#bind in test/index.html. 2013-09-17 19:30:01 -07:00
John-David Dalton
620866bc39 Ensure _.flatten handles empty arrays. 2013-09-17 19:29:09 -07:00
John-David Dalton
55f080e33f Optimize _.isArray fallback, baseFlatten, & _.isArguments for plain objects. 2013-09-17 08:58:18 -07:00
John-David Dalton
9f2b1b03d7 Don't restore undefined native methods in test/index.html. 2013-09-17 00:16:40 -07:00
John-David Dalton
c0a0f3aaf5 Minor whitespace nits in test and perf ui. [ci skip] 2013-09-17 00:05:21 -07:00
John-David Dalton
7726b5c56b Add more bad shim tests. 2013-09-16 23:57:01 -07:00
John-David Dalton
3daff8ab8a Decode custom test/perf build urls. 2013-09-16 23:56:26 -07:00
John-David Dalton
428c2097c7 Cleanup baseFlatten. 2013-09-16 21:20:14 -07:00
John-David Dalton
7786583ecf Avoid long fail message in _.flatten unit test. 2013-09-16 07:25:32 -07:00
John-David Dalton
9b79ea7d30 Minor doc tweaks. [ci skip] 2013-09-15 23:12:04 -07:00
John-David Dalton
3dc8436362 Ensure _.flatten works with extremely large arrays. [closes #349] 2013-09-15 18:37:09 -07:00
John-David Dalton
9f1f2a4845 Keep the defineProperty fallback in place so it can be used in phantom.js without throwing an error. 2013-09-15 17:29:18 -07:00
John-David Dalton
40204e8133 Cleanup docs. 2013-09-15 17:17:57 -07:00
John-David Dalton
133b1067c5 Add Node 0.8 to .travis.yml. 2013-09-14 00:09:56 -07:00
John-David Dalton
5c8287203e Adjust .gitignore to only ignore .min files in the root. 2013-09-13 21:39:12 -07:00
John-David Dalton
061bbb1914 Add lodash source to "files" in package.json. 2013-09-13 21:18:41 -07:00
John-David Dalton
572168ef20 Update Underscore version in license. [ci skip] 2013-09-13 21:18:04 -07:00
John-David Dalton
1aa27f2da3 Change link to npm lodash packages in readme. [ci skip] 2013-09-13 21:16:12 -07:00
John-David Dalton
be76614c90 Update various package configs. 2013-09-13 20:22:09 -07:00
John-David Dalton
e26d355fb7 Minor readme cleanup. 2013-09-13 09:24:55 -07:00
John-David Dalton
d8dbcef5dd Bump to v2.0.0. 2013-09-13 00:10:59 -07:00
John-David Dalton
5d6a6590bf Make worker unit test runnable in older Firefoxes. 2013-09-12 21:11:10 -07:00
John-David Dalton
7dfdfe5b50 Simplify _.bind benchmark. 2013-09-12 20:09:35 -07:00
John-David Dalton
36fcc460f4 Avoid issues with engines that can't manipulate arguments objects with array methods. 2013-09-12 20:09:28 -07:00
John-David Dalton
24b03d42d6 Fix dojo loader in IE < 9. [ci skip] 2013-09-11 22:16:22 -07:00
John-David Dalton
60275d3637 Add "amd" keyword to package.json. [ci skip] 2013-09-11 08:18:47 -07:00
John-David Dalton
9b5b471802 Update Underscore version in copyright header. [ci skip] 2013-09-11 00:18:23 -07:00
John-David Dalton
1edb96f526 Update vole and jam ignore entries. 2013-09-09 21:25:09 -07:00
John-David Dalton
f949bdcfe4 Update builds and docs. 2013-09-09 08:54:39 -07:00
John-David Dalton
21a45a940e Ensure _.first, _.last, and _.sample return the undefined if called with a falsey argument or an empty array if called with a falsey argument and an n value. 2013-09-09 08:21:24 -07:00
John-David Dalton
fb61dfd39d Reduce use of undefined literal. 2013-09-09 07:26:57 -07:00
John-David Dalton
9b5940505b Add _.sample benchmark. 2013-09-08 18:14:48 -06:00
John-David Dalton
8c07a67fe9 Ensure _.sample handles falsey collection arguments. 2013-09-08 15:09:09 -06:00
John-David Dalton
0f9687ce62 Revert part of the PhantomJS cleanup. 2013-09-08 15:07:59 -06:00
John-David Dalton
1460e46d1f Optimize _.sample. 2013-09-08 01:14:42 -05:00
John-David Dalton
692521c49d Update docs and dist. 2013-09-08 00:28:54 -05:00
John-David Dalton
2f1d8cc196 Ensure _.debounce passes vendor/underscore unit tests. 2013-09-07 16:49:10 -05:00
John-David Dalton
eeabb47fb6 Update vendor/underscore to 1.5.2. 2013-09-07 14:38:53 -05:00
John-David Dalton
e078f584eb Cleanup _.debounce. 2013-09-07 08:55:32 -05:00
John-David Dalton
f86322545a Tweak paths in package.json. 2013-09-06 01:21:26 -05:00
John-David Dalton
720e19a01f Cleanup phantomjs support in test.js. 2013-09-05 20:33:52 -05:00
John-David Dalton
3560fed86e Fix test runner with phantomjs and dojo loader. 2013-09-05 00:19:58 -05:00
John-David Dalton
5f8f5a9f85 Add a console.log in test.js when PhantomJS fails to load a given page. 2013-09-04 20:58:10 -05:00
John-David Dalton
1aae24b831 Cleanup _.template docs. [ci skip] 2013-09-04 18:37:50 -05:00
John-David Dalton
b544b1c3d4 Replace var window with root in test.js. 2013-09-04 18:36:14 -05:00
John-David Dalton
f462f87183 Finish making tests runnable for lodash-amd. 2013-09-04 00:07:00 -05:00
John-David Dalton
6ed7ef25b2 Simplify package.json. 2013-09-03 23:12:22 -05:00
John-David Dalton
bc79d09f2d Update vendors, builds, and docs. 2013-09-03 23:11:34 -05:00
John-David Dalton
5b2becb87f Extend phantomjs to work with lodash-amd. 2013-09-03 23:10:49 -05:00
John-David Dalton
cd808fb5a5 Change how lodash-modularie build path is resolved. 2013-09-02 01:01:59 -05:00
John-David Dalton
c8a4e40bcf Use dev branch version of curl-kitchen-sink. 2013-09-02 00:46:22 -05:00
John-David Dalton
911b6c9679 Adjust .travis.yml for consistency. 2013-09-01 19:25:46 -05:00
John-David Dalton
03041f87c3 Tweak how filePath is resolved to work with lodash-node. 2013-09-01 19:25:19 -05:00
John-David Dalton
360c53d6ca Add license to package.json. 2013-09-01 01:34:10 -05:00
John-David Dalton
3f1d555c71 Detect paths containing lodash-amd and lodash-node as modularized. 2013-08-31 13:10:13 -07:00
John-David Dalton
ae1d72265c Make "ignore" entries consistent across package configs. [ci skip] 2013-08-31 12:54:40 -07:00
John-David Dalton
9570c65d88 Tweak Blaine's gravatar src in readme. 2013-08-30 08:59:36 -07:00
John-David Dalton
3e0b04509a Remove mobile builds from /dist/ as their in cons. 2013-08-30 08:51:29 -07:00
John-David Dalton
0884379e0b Correct repo links in contributing.md. 2013-08-30 08:51:29 -07:00
John-David Dalton
ec16532028 Cleanup dot (.) files. 2013-08-30 08:51:29 -07:00
John-David Dalton
c8f13544a8 Remove legacy and backbone builds from dist/. 2013-08-30 08:51:29 -07:00
John-David Dalton
44bfe55413 Move curl.js. 2013-08-30 08:51:29 -07:00
John-David Dalton
b95c1adc86 Use truey instead of truthy, /ht @brucelawson. [ci skip] 2013-08-30 08:51:29 -07:00
John-David Dalton
b3a94c26d9 Remove lesser used backbone and legacy builds from the npm package. 2013-08-30 08:51:28 -07:00
John-David Dalton
159c7238a8 Update repo links in readme. [ci skip] 2013-08-30 08:51:28 -07:00
John-David Dalton
70f40bab1d Add @phated to the contributors in package.json. [ci skip] 2013-08-30 08:51:28 -07:00
John-David Dalton
6c1a9dc14b Rework the doc example for _.after. 2013-08-30 08:51:28 -07:00
John-David Dalton
816381a6a8 Use location.host in test/index.html and test/underscore.html.
Former-commit-id: 34dd4860b7b83ec9b96b3f9062654bdf960ff75f
2013-08-30 08:50:43 -07:00
Blaine Bublitz
dd84bca638 curl legacy loader
Former-commit-id: 08c7c76abe03823e3cdb0e25f76c969fa073226e
2013-08-30 08:50:43 -07:00
John-David Dalton
a5d2019a39 Tweak _.template docs.
Former-commit-id: 7c8842f046bcb1a736c1dddca5871cc78d8a5ceb
2013-08-28 19:57:49 -07:00
John-David Dalton
26cee564c9 Add @phated under the Contributors section of the read me.
Former-commit-id: 9666cfd0e46a307466497e864b142e97771a0215
2013-08-28 19:53:00 -07:00
Blaine Bublitz
316b8a1375 remove old curl, update to curl 0.8.1 kitchen sink dist and use curl legacy config for test instead of js! plugin
Former-commit-id: 9cba27cb9e0e7644a8a824b30fe5e85e85fc165e
2013-08-28 19:06:29 -07:00
John-David Dalton
618b25df08 Update repo paths in component.json and package.json.
Former-commit-id: 4c2b2498786c11d100cd82d006d0a98feba4586e
2013-08-28 11:14:55 -07:00
John-David Dalton
8f9c4cd217 Remove build from this repo to move to lodash-cli.
Former-commit-id: 0f9e802dd744a97494a10537442a28aae40dc72a
2013-08-28 11:14:38 -07:00
John-David Dalton
c6e2e33e87 Add IE fallback for lack of Function#name.
Former-commit-id: 42047271fe596ed064ce2b1a58b70e6c6cd8a4af
2013-08-27 22:34:23 -07:00
John-David Dalton
db605ea7ca Fix basePath in IE.
Former-commit-id: 3c78a042183ffbb52c22a6979f71f842d6a1ea38
2013-08-27 21:54:03 -07:00
John-David Dalton
a1507d4844 Sync underscore build with Underscore v1.5.1.
Former-commit-id: 333f720645f5ffec079bfe11558ed72a3956ed18
2013-08-27 09:12:50 -07:00
John-David Dalton
c6340a64fe Add _.createCallback unit test for calling without an argCount.
Former-commit-id: 1d9e14163a77564c9fecdba56590131e8cfcebe0
2013-08-27 08:22:04 -07:00
John-David Dalton
265b440c37 Tweak _.contains optimization.
Former-commit-id: 4c8040972806b2b18958379fde765858d22ceda8
2013-08-27 08:21:37 -07:00
John-David Dalton
ea8e6d978d Optimize _.contains for arrays.
Former-commit-id: 050743f77e7047f86d5b14b97d35846c9d2e749c
2013-08-26 22:32:20 -07:00
John-David Dalton
c3f5bc6bfb More JSDoc cleanup. [closes #334]
Former-commit-id: dcb55079320e3bcd35c3bf4f36d18f393f16e426
2013-08-26 22:01:44 -07:00
John-David Dalton
e322f6dbe2 Make backbone unit tests pass in IE6.
Former-commit-id: e709e017441d7902d5f09e6901cf4f586953723b
2013-08-26 00:05:00 -07:00
John-David Dalton
83059a013c Update vendor/underscore.
Former-commit-id: 833a6ca3e5a7f9d4a8b22e535d849c106526171e
2013-08-25 22:42:33 -07:00
John-David Dalton
e374392450 Rebuild dist/ files.
Former-commit-id: 3e9c51b17797b9a1ba702c4f38f24c3bc592c1d5
2013-08-25 20:43:30 -07:00
John-David Dalton
72d505b2f1 Update other vendors jsdoc comment blocks.
Former-commit-id: 3dcc92abe376d4c83baf6d2307c0a4343d5dce31
2013-08-25 20:40:24 -07:00
John-David Dalton
a11bff0c7b Make test.'s match var name usage in lodash.js.
Former-commit-id: 680581a0138315def67c213605140c74f7d6ee6a
2013-08-25 20:39:43 -07:00
John-David Dalton
a820ee4c82 Update vendor/docdown to parse more compliant jsdoc syntax.
Former-commit-id: cfd5d1a5eae3a2608ed49ea388c389fb1ea0e489
2013-08-25 20:39:12 -07:00
John-David Dalton
a18be78bd3 Allow defineProperty to be used in the lodash.compat build too.
Former-commit-id: c610fd24ca8cfefab4c355099a034a8b2542aa77
2013-08-25 16:49:42 -07:00
John-David Dalton
83b5806cec Improve jsdoc syntax. [closes #334]
Former-commit-id: a6ab2e8ac7c5b8abd0e63ee025552d6452a3e0a2
2013-08-25 13:01:41 -07:00
John-David Dalton
4d7a1199ea Track the dependents of root in build.js.
Former-commit-id: be19143f8741be40419f83b2919c44c2d19bc9ac
2013-08-25 10:20:53 -07:00
John-David Dalton
d47cac563a Ensure cacheIndexOf works correctly with boolean values.
Former-commit-id: 21f65952b14ddfff892a8c151545ad807a8ec9ef
2013-08-25 01:39:18 -07:00
John-David Dalton
2969290c63 Update contributing, package.json test entry, and add lodash-grunt to the readme. [ci skip]
Former-commit-id: d59c8db9593eb8893d728588f88ce8b2685f3594
2013-08-25 00:50:30 -07:00
John-David Dalton
277557cd99 Fix perf regressions in _.bind, _.groupBy, _.countBy, _.indexBy, and _.reduceRight.
Former-commit-id: 0972dd65af64b7cd1d7f2800a8a59c28183b8aba
2013-08-24 23:32:04 -07:00
John-David Dalton
21db7d438b Reduce the number of times clearTimeout is called in _.debounce.
Former-commit-id: 5b07b6660be4ff6783a8348fc8a122cfab5d10c4
2013-08-24 00:29:56 -07:00
John-David Dalton
61ff2da15c Replace window var with root to better grab the global when using custom IIFEs.
Former-commit-id: f79834c6b53d692e85801d6258cd8beb35c776c2
2013-08-23 08:44:33 -07:00
John-David Dalton
ad8296a535 Correct exportsOptions in build.js.
Former-commit-id: 35c8977e27bea40431392e02c300625ce6459cca
2013-08-22 09:22:31 -07:00
John-David Dalton
aec3318f4c Update vendors.
Former-commit-id: a2830d4097d13884391abe792c319bf1e699df08
2013-08-21 22:03:31 -07:00
John-David Dalton
3297c3a2e2 Round three of modularize exports=node support.
Former-commit-id: ac21e547a6717ddf362e06c031657c9fb18b8c85
2013-08-20 22:31:04 -07:00
John-David Dalton
84759de36f Round two of modularize exports=node support.
Former-commit-id: 8a764774804f194f3fa344219cc8464190c4405f
2013-08-20 09:23:02 -07:00
John-David Dalton
a562126f2f Make _.memoize avoid using keyPrefix if passed a resolver function. [closes #330]
Former-commit-id: 97e3bb353d988c92eea394dfb496ebf7594ae25f
2013-08-19 22:42:32 -07:00
John-David Dalton
1901134601 Add exports=npm and first round of modularize node.js support.
Former-commit-id: fd0ae2328312d5e28dd5d866dc56f613aff54817
2013-08-18 23:46:16 -07:00
John-David Dalton
eecb6986ee Cleanup _.sample and add missing dependency.
Former-commit-id: 428bbdb266bd1d66119007ed6121c3f810bd2cd1
2013-08-18 07:23:38 -07:00
John-David Dalton
508cada017 Add string test for _.shuffle.
Former-commit-id: 420789264a287b5431322b9871a3c1c219ff2722
2013-08-17 08:15:42 -07:00
John-David Dalton
2abae2f21a Add string test for _.sample.
Former-commit-id: 81836be99bc0439d24eb5e6b73a7e6c2803c9516
2013-08-16 23:33:13 -07:00
John-David Dalton
82c17dbde2 Update vendor/docdown.
Former-commit-id: 98cda48e4b63e2cd471c927ba36afbe2bb80938e
2013-08-16 00:31:10 -07:00
John-David Dalton
425499b3aa Add _.sample.
Former-commit-id: 00e27cca2a65e1310b26904173ffec18aa484e48
2013-08-16 00:26:41 -07:00
John-David Dalton
96605766bb Add _.memoize note to readme. [ci skip]
Former-commit-id: 769b9a03b0e2873e86acefcbc31c43f7179a9d54
2013-08-15 22:49:16 -07:00
John-David Dalton
161012b0a7 Ensure _.at can work as a callback for _.map and add similar unit tests for _.assign, _.defaults, _.merge, _.first, _.initial, _.last, and _.rest.
Former-commit-id: 92e71c6bae084029df3cc0e7af78af7ce7566be0
2013-08-15 00:34:09 -07:00
John-David Dalton
0669a053db Clarify a bit more the order is not guaranteed notes on object iteration.
Former-commit-id: bfe3033325bc941a03948fe41056634663a10989
2013-08-14 23:30:29 -07:00
John-David Dalton
ab66e77740 More consistent use of num argument in unit tests.
Former-commit-id: c835a0f19bae4a48572fee39d6db41fc7f34e2dc
2013-08-14 23:29:24 -07:00
John-David Dalton
381cd53551 Add sparse array tests for _.remove.
Former-commit-id: 0c21484ae459fbb1554c73348a566703523ff297
2013-08-13 23:42:29 -07:00
John-David Dalton
1f0e92a752 Add spare array test for _.pull.
Former-commit-id: 38d677a4f2693db0591a6b43fe5a66a7dae39883
2013-08-13 23:36:36 -07:00
John-David Dalton
98b3496717 Fix typo in perf.js.
Former-commit-id: d9572081f88cf96d50b868201eaf9d0b5bc4d63f
2013-08-12 00:04:43 -07:00
John-David Dalton
4200e2e4e4 Simplify delayed function in _.debounce.
Former-commit-id: 1f996fc3b6a8954053332739fdc0c2185fb1fd80
2013-08-10 21:24:49 -07:00
John-David Dalton
e239ae1aba Remove _.debounce from lodash/underscore build test as it's not replaced for the underscore build.
Former-commit-id: 64648d1cc1636bf76748d4396c1a2606fbca1e32
2013-08-10 01:19:55 -07:00
John-David Dalton
2acfc307b7 Use a state object for buildTemplate like buildModule.
Former-commit-id: 850fe162a0a80b5547622f6cc267e66cad3ae4ce
2013-08-10 00:25:47 -07:00
John-David Dalton
186f1cf714 Add _.eachRight alias of _.forEachRight.
Former-commit-id: ff42b599dd22707fe20ab60a7aff47945b5cef73
2013-08-09 23:58:38 -07:00
John-David Dalton
a5cf42b7c8 Ensure modularize underscore exports=amd works without errors in template.js.
Former-commit-id: ae137c924d26b2614ed1ebdb7abb33e4b76124f4
2013-08-09 23:46:20 -07:00
John-David Dalton
fd7dba8860 Fix missing comma.
Former-commit-id: 7c1745b9f3993613ff0e32f574d43c9d78b33c80
2013-08-09 23:12:43 -07:00
John-David Dalton
32d7e365d2 Ensure _.curry test runs with strict builds.
Former-commit-id: 7bb7d8bdb88b49ec1b35fbf9933f43e2fcd61a53
2013-08-09 23:11:50 -07:00
John-David Dalton
1078cc1c91 Add _.debounce var dependency and remove Adobe JS engine cleanup in build.
Former-commit-id: 330e19ecf1a1d33e6207291aa05b103f68541e81
2013-08-09 22:48:44 -07:00
John-David Dalton
c97fc370cd Cleanup compareAscending and createBound.
Former-commit-id: e783a68666aaea16d917fa1db74d2092e5dcaa9a
2013-08-09 22:47:55 -07:00
John-David Dalton
fca8da118e Ensure createBound works with ES5 features removed.
Former-commit-id: 30fd5e615b473c9c9d3c013a4a5d7e1759872ede
2013-08-09 21:23:03 -07:00
John-David Dalton
dda56405e6 Add fallback for Date.now and keep Array#isArray fallback in modern builds.
Former-commit-id: 4c5ca88d73b8624fdebf50b40c0384219008cb7c
2013-08-09 09:26:07 -07:00
John-David Dalton
f0f23d491c Cleanup _.curry.
Former-commit-id: edcc8b2b4c67fa04d8c67e7b7fcdd071c4155e89
2013-08-09 09:08:23 -07:00
John-David Dalton
44c10d720a Use Date.now in modern builds.
Former-commit-id: de4329c5f4eaa92da8447e1232ce28e00a0f885d
2013-08-09 09:01:32 -07:00
John-David Dalton
690e5a7f9c Tweak video link titles in readme. [ci skip]
Former-commit-id: 53330adf487980642cf6fe8c1a8213594731d270
2013-08-09 00:35:27 -07:00
John-David Dalton
e4fdbc3cb4 Add Underscore license url to non-minified copyright header. [ci skip]
Former-commit-id: 32e6b24f284c9492bd81d680818a829eabe9954c
2013-08-09 00:35:04 -07:00
John-David Dalton
fe2b86ba83 Correct removing ES5 features from createBound for non modern builds.
Former-commit-id: 35aacb52d1bfbd18630460f0c8e21e4fd5d716ea
2013-08-09 00:14:39 -07:00
John-David Dalton
8fb9557520 Ensure "Functions" methods throw if not provided a function and remove Adobe JS engine fix from compareAscending for modern builds.
Former-commit-id: 85f2c3579c33440d3f7351f5a0dfb1c09cd0cc7a
2013-08-08 23:39:35 -07:00
John-David Dalton
25c91b398a Fix InDesign bug with _.sortBy.
Former-commit-id: 3ed2c5fcb02885a9b3563cf9081f6e2af8826c6d
2013-08-08 22:23:17 -07:00
John-David Dalton
8a524dd98f Add _.curry.
Former-commit-id: 33282039186323ad4f58d7d7ec19e3c3974dc9b3
2013-08-08 22:11:03 -07:00
John-David Dalton
7371f8927c Have build remove trailing spaces in lines.
Former-commit-id: 580650186c9661b900ebbe846e13ba194fd2c0bc
2013-08-07 22:04:18 -07:00
John-David Dalton
3d4f58d564 Tweak _.remove and _.pull test for phantomjs.
Former-commit-id: ae404a0da2e03636edf0760322330a996b71fc70
2013-08-07 19:28:25 -07:00
John-David Dalton
f0e32c88ec Add _.throttle test.
Former-commit-id: f50fe31ee221d1a3c2835b037b58b13c8afdd70f
2013-08-07 09:19:05 -07:00
John-David Dalton
5ae3eccaf1 Move _.remove to the "Arrays" category and add unit tests.
Former-commit-id: b0542496b45582b8ca59de19e950dc2368deee0a
2013-08-07 08:43:41 -07:00
John-David Dalton
093f12254f Tweak comments and docs. [ci skip]
Former-commit-id: 0aa090919d1566081c90bf7a25c1f6f579a8eec2
2013-08-07 07:58:36 -07:00
John-David Dalton
3a8afe2969 Shorten doc snippet in readme. [ci skip]
Former-commit-id: 1c50d1e818a4765eddfcf51750a7c70a96ac871f
2013-08-06 09:08:13 -07:00
John-David Dalton
fff5ae97f2 Cleanup fix for modularize underscore and _.mixin and add tests for correct indicatorObject use in underscore builds.
Former-commit-id: 7700fb4df90cdc3eca47af037677d71a70908616
2013-08-06 09:07:45 -07:00
John-David Dalton
3c626e3ea5 Cleanup README.md. [ci skip]
Former-commit-id: e63291595bcc925470aa7d4f4889fcfc5c8daf6f
2013-08-06 00:29:54 -07:00
John-David Dalton
26f57141a1 Simplify package.json description.
Former-commit-id: 43470293d97b86435fd897edd34f910f7a435a8d
2013-08-05 22:12:52 -07:00
John-David Dalton
419aa9dcba Add find unit tests.
Former-commit-id: 1dff5e55c73f91b4b877ee8e0cd4ad38655c49fb
2013-08-05 22:11:38 -07:00
John-David Dalton
3f15456b9c Add build tests for findIndex, findKey, findLast, findLastIndex, findLastKey. forEachRight, forInRight, and forOwnRight.
Former-commit-id: c82a2f327efb180ab849794e777da18a4033045e
2013-08-04 13:50:25 -07:00
John-David Dalton
f67a2fa865 Simplify iteratorObject use for underscore builds and make _.mixin and _.template work better for modularize underscore builds.
Former-commit-id: f9fb33faacbcb3e1bc2ece0a3c70496b3fb3f251
2013-08-04 12:47:27 -07:00
John-David Dalton
0f6de542bf Fix _.forEachRight, _.forInRight, and _.findLastIndex and add related unit tests.
Former-commit-id: 5131ae4559cd71d8016745f85158bb6f96426d01
2013-08-04 12:46:27 -07:00
John-David Dalton
1a529841e0 Fix modularize mobile builds.
Former-commit-id: 5ffb5bd761c8e25c2a3bb9643cfa22b8c08bf2b1
2013-08-03 22:23:22 -07:00
John-David Dalton
a9bf6a0e3b Update vendor/benchmark.js and vendor/underscore tests.
Former-commit-id: 28d47ac7efb1af2d23a749ea50178c09edfe62bd
2013-08-03 21:33:58 -07:00
John-David Dalton
76dcd7d96e Fix modularize legacy builds.
Former-commit-id: 17b09cce67bdf0ec2fd7373beb5b58240b08877b
2013-08-03 21:33:29 -07:00
John-David Dalton
6aa1361b1a Add minified modern and underscore builds back to the package.json. [ci skip]
Former-commit-id: f814323f06bdcf8a3043699a1e9b607c81410c9f
2013-08-03 19:39:14 -07:00
John-David Dalton
f623a4ecef Update docs, dist builds, and fix build.
Former-commit-id: 95a2ae15735b2c98f24c20b8dc894c2832ac107b
2013-08-03 19:26:05 -07:00
John-David Dalton
aa465a12aa Cleanup support for a step of 0 in _.range and add unit tests.
Former-commit-id: 383719999d8f4a7e153784aea3b6f4174684dd9a
2013-08-03 15:59:36 -07:00
John-David Dalton
81ba623423 Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: cd661a7d7fe08ec324a7dd7b2325e6e58a35b752
2013-08-03 13:32:40 -07:00
John-David Dalton
4f6f6cca0f Replace passed with provided in docs and test descriptions.
Former-commit-id: b47302b804a7e4f89a0dbacfb85d24d80dae81a9
2013-08-03 13:32:32 -07:00
John-David Dalton
56346f2a52 Make tests pass for modularized build and create a working lodash module.
Former-commit-id: 44cbac15f62e4f727ae0eec963cefd2498ee62ca
2013-08-03 13:31:54 -07:00
John-David Dalton
edcd3f5145 Merge pull request #327 from stereokai/master
Enable _.range() to accept a 0 for step.

Former-commit-id: 6a778327f216de6c606ba091312db9f1b8f85c4e
2013-08-03 10:56:29 -07:00
Stereokai
7acd3d5297 Enable _.range() to accept a 0 for step
Enable `_.range()` to accept a `0` for `step`, for initializing arrays such as `[0, 0, 0, 0, 0]`, `[-1, -1, -1, -1, -1]`, useful in many use cases with inconsistent/morphing object arrays.

Former-commit-id: 5a263ec17e454ba38dfa9b6deb913dddccaddfeb
2013-08-03 11:26:44 +03:00
John-David Dalton
1732c16778 Update builds and docs, replacing passed with provided.
Former-commit-id: 30114421fcb5853097c0992cd4125aa25ede6853
2013-08-02 09:01:58 -07:00
John-David Dalton
913d440c61 Rework how "chaining" methods are modularized.
Former-commit-id: 2986db5039ac031d1007c7376a60f41fc3eafece
2013-08-02 00:22:57 -07:00
John-David Dalton
8cdb4d48f2 Fix chain check in test/underscore.html.
Former-commit-id: 39ebd562e1fd08548f778c7f7ddfa3c0885a782e
2013-08-02 00:11:37 -07:00
John-David Dalton
907ac05c00 Fix issues preventing _.mixin from working as a module.
Former-commit-id: 57afac8d0901856aaf67688d46e2649532edeb61
2013-08-01 09:18:31 -07:00
John-David Dalton
067558529c Move more code to be removed before the call to buildModule.
Former-commit-id: 255ba4bf6e65d61378226ba1c13708619ca68941
2013-08-01 09:17:45 -07:00
John-David Dalton
c97e653ba1 Add baseCreateCallback to avoid circular deps add more varDeps to fix large array caching.
Former-commit-id: f8164bbff59a3ad294c5670693942dc56a1c88a5
2013-08-01 00:12:53 -07:00
John-David Dalton
9a935ba90c Avoid tests not relevant to modularized builds when its selected.
Former-commit-id: 3e0e4275cfa51fc12ea9583801459588658de702
2013-07-31 23:58:22 -07:00
John-David Dalton
134ed51517 Make modularized builds tested and avoid errors when running modularized tests.
Former-commit-id: 38aa57ec3d401cb3892093008d75d03545d63c6b
2013-07-31 09:06:29 -07:00
John-David Dalton
993dd84af9 Add dojo amd loader to the list of loaders supported in the readme.
Former-commit-id: 07504c1edeb540aa4103909a69ab83c47b9e7e18
2013-07-30 23:59:40 -07:00
John-David Dalton
28e3ab73fa Add _.remove, _.pull, and fix typos in build. [closes #281]
Former-commit-id: e771f3934c868d0d7093f1690d9c7d57fa75ae89
2013-07-30 23:46:43 -07:00
John-David Dalton
70a5efa1d6 Cleanup build and make legacy command work with modularize.
Former-commit-id: 89cfa2e693bd299096f9418f5cab7f41c37ddf2a
2013-07-30 08:53:56 -07:00
John-David Dalton
a51a355a53 Optimize build for creating modules.
Former-commit-id: 9e06f7c9ec1084bf901123d2ad7d1fd7da2e11fb
2013-07-30 00:02:06 -07:00
John-David Dalton
fdd0a33571 Rebuild docs and dist.
Former-commit-id: ae113f2c04eef7a34b1b49bca3e6dcb7402f723c
2013-07-29 00:26:38 -07:00
John-David Dalton
6547d03b91 Clarify doc example for _.compose.
Former-commit-id: bcd9337d0cc2f7b6a1ca77723f8d20d768cb0b91
2013-07-28 23:47:57 -07:00
John-David Dalton
cc0c2f1b3c Add explicit chaining support to Lo-Dash. [closes #325]
Former-commit-id: 58d01723ddc40f636af9954e5a9f6370e0c88aac
2013-07-28 13:23:04 -07:00
John-David Dalton
c80c59c692 Correct baseClone dependencies and ensure forEachRight isn't exposed in underscore builds.
Former-commit-id: 37bba697b3cdd80405519976a30014efb1336cec
2013-07-28 10:12:32 -07:00
John-David Dalton
10de191dd5 Adjust backbone test html, and adjust underscore html to work with Lo-Dash's tweaked chain behavior.
Former-commit-id: e5042e1c2811004989e57cc1a24f690c3bab1b25
2013-07-28 10:10:28 -07:00
John-David Dalton
1626cec089 Add @type to _.isArray, required for modern builds.
Former-commit-id: 1e1c9f4f47211a767aad873675063c5e2713c144
2013-07-28 10:09:35 -07:00
John-David Dalton
0404776d87 Add _.forEachRight, _.forInRight, _.forOwnRight, _.findLast, _.findLastIndex, and _.findLastKey methods. [closes #309]
Former-commit-id: 7097f79e278bf2dfacfed449ce5f64a2dc19a662
2013-07-27 00:30:54 -07:00
John-David Dalton
4398fca1bd Tweak _.createCallback and Node.js note in readme. [ci skip]
Former-commit-id: a56737d9afe65f8af83abc9c00687709068ad0e0
2013-07-26 19:47:01 -07:00
John-David Dalton
e94ca12f9f Add getObject and releaseObject to setBindData.
Former-commit-id: d4152ccc078bfa64d62640d89b673057cf9f6a19
2013-07-26 19:37:42 -07:00
John-David Dalton
036c2f6a1c Add unit tests for _.countBy, _.groupBy, _.indexBy, and _.sortBy for when a callback is not passed.
Former-commit-id: e3c1760607cb86fc6c3729409d217b4255fb695d
2013-07-26 19:14:13 -07:00
John-David Dalton
611304e257 Update vendor/underscore and add _.indexBy perf and unit tests.
Former-commit-id: 5fc6c853773385aa39d470429899a35f9f17cad8
2013-07-26 09:29:44 -07:00
John-David Dalton
cf26447f7c Add _.indexBy method and add a noop fallback for setBindData.
Former-commit-id: f8035b9a221ba7b625c21cb566c62931877da6ef
2013-07-26 09:12:04 -07:00
John-David Dalton
e5b8e04dde Move Node.js version compat warning note to the Node.js notes section of the readme. [ci skip]
Former-commit-id: 42acc77eb3ced990683e9d91a155e25486dd73c5
2013-07-25 09:26:55 -07:00
John-David Dalton
bb201e6ca4 Reduce npm package size.
Former-commit-id: 29d4eb4f90e2d215b65d04b8c8063804472de8fc
2013-07-25 09:13:57 -07:00
John-David Dalton
bb58d633c0 Fix _.createCallback perf regression.
Former-commit-id: a66821a2c4aa3bae626e19ef638a27689b96dc24
2013-07-25 09:05:43 -07:00
John-David Dalton
56ff8755d4 Update _.createCallback dependencies and fix typo in removeFromCreateIterator.
Former-commit-id: 8478aadcdcb3fbf30a481de1bc515510959a2396
2013-07-24 22:54:55 -07:00
John-David Dalton
57fc027f77 Avoid circular dependencies.
Former-commit-id: a45dd055f44f72797cb62ba040ecc2d45cc24634
2013-07-24 08:27:09 -07:00
John-David Dalton
bdb7c226f1 Update createBound and setBindData variable dependencies.
Former-commit-id: ff0c375fa334e1b54968208c7d311f65a766387f
2013-07-22 21:19:28 -07:00
John-David Dalton
17e32017a7 Allow argCount to be omitted an not default to 3, and cleanup createBound.
Former-commit-id: cbafeaa441aae1ef28268bc2614b1a6e038acfe1
2013-07-22 19:11:44 -07:00
John-David Dalton
2c772d0f4c Ensure build command csp cannot be combined with others like underscore.
Former-commit-id: 97b6bd973323e086f1b6fdf3e40a7732804e2669
2013-07-22 07:16:04 -07:00
John-David Dalton
769ff84a65 Fix typo in _.debounce unit test.
Former-commit-id: b8138dbae144836701e65f98de8981defaaa1a54
2013-07-22 07:12:22 -07:00
John-David Dalton
fd1fbd4843 Remove ES5 optimizations from the compat build.
Former-commit-id: c0d39af98c8b6474d051bcd16a7f5cee1c801477
2013-07-21 23:54:08 -07:00
John-David Dalton
eaa9430e26 Update docs and builds.
Former-commit-id: 27acae75d0412c0e94caa857d861522cbbc6b1a8
2013-07-21 23:50:34 -07:00
John-David Dalton
2e5de88445 Remove hasThis and add comments to createBound and createCallback.
Former-commit-id: cdc9a69dc60913d6c2383053a881453dd2b7b0d5
2013-07-21 23:46:59 -07:00
John-David Dalton
b4b9910203 Add unit tests for createBound and _.createCallback additions.
Former-commit-id: 68ad27523352a7e7b70f026588342fb70318454b
2013-07-21 23:44:38 -07:00
John-David Dalton
afeeadd665 Tweak times in _.debounce and _.throttle unit tests.
Former-commit-id: d079ee2258151e126fd1c40efb9c01ee888170aa
2013-07-21 15:50:50 -07:00
John-David Dalton
fcbeb10159 Cleanup createBound.
Former-commit-id: f16e6df18a036507edea4b64618ffb06f3823a78
2013-07-21 15:27:10 -07:00
John-David Dalton
65227f601e Rename basicXYZ functions to baseXYZ, extract _.clone, _.merge, _.isEqual functions into their own baseXYZ functions, and rework createBound to flatten multiple calls.
Former-commit-id: 8efa6004d747103e9ec6507755fa6ffceb01b16f
2013-07-21 15:24:44 -07:00
John-David Dalton
56ae4dcd12 Clarify _.where docs and cleanup other docs. [ci skip]
Former-commit-id: 1749f85df8c7b21603191e2a249ef31e6df08bd3
2013-07-19 23:56:35 -07:00
John-David Dalton
2b2c8e6b82 Ensure _.zipObject skips falsey elements in a given two dimensional array.
Former-commit-id: 31ce7e65aee98cbed477276ae9115b33fd10c6ea
2013-07-18 09:09:46 -07:00
John-David Dalton
49c032315c Add hasThis to avoid repeatedly checking for this.
Former-commit-id: 15ce8566364ddac60ac01f3a36343c33d9739b77
2013-07-18 08:58:40 -07:00
John-David Dalton
15109f801e Add _.mixin build test.
Former-commit-id: e6fc1d3384519c2678f875b083222c83519f7123
2013-07-18 08:33:59 -07:00
John-David Dalton
3de0a16a9d Add _.where fast path for the common use case or passing an object with one property.
Former-commit-id: dfb78f59ae22f3ccdd88d58cefdb8abcde58eda6
2013-07-18 08:30:05 -07:00
John-David Dalton
bb49b0c16a Allow _.mixin to accept a destination object as well as a source object.
Former-commit-id: 11ccb77653f017270c07579f59d75b847d4e6c65
2013-07-18 08:12:14 -07:00
John-David Dalton
9561414985 Ensure the build removes properties in expressions from createIterator.
Former-commit-id: 6e06397c6dd4e7c550667bc364faad565d0244cd
2013-07-17 08:34:33 -07:00
John-David Dalton
db7354ab72 Add imports option docs to _.template.
Former-commit-id: 4ac5d64b0dae3068d07474beabed7fd5702da9a2
2013-07-17 08:07:46 -07:00
John-David Dalton
34396dbbec Simplify type checks in _.isEqual.
Former-commit-id: a1aeb5aeab6ef30c6f9377f5498da4eb6d112bc3
2013-07-16 23:57:23 -07:00
John-David Dalton
d842a2f62e Allow /test and /perf to change dropdown values if the other dropdown has a custom entry.
Former-commit-id: d56880e7c588b14ae4c65cacc37f042352e5eee1
2013-07-16 23:48:29 -07:00
John-David Dalton
a17c32bed0 Update vendor/requirejs and fix AMD dependencies to avoid circular dependency issues.
Former-commit-id: 4af19b824f7018d7e3473ba7fe98584b5d6949c5
2013-07-16 23:01:52 -07:00
John-David Dalton
fab0b91a79 Update es5.github.com to es5.github.io.
Former-commit-id: 29bafb1c879512e25517524805b3537084d92896
2013-07-16 20:08:23 -07:00
John-David Dalton
88974d552d Add jsDelivr can link to the README.txt. [ci skip] [closes #318]
Former-commit-id: 8b2780fef7eb5a8e63fc0978b66771368663aba5
2013-07-16 19:53:49 -07:00
John-David Dalton
b90a38ce8b Rebuild dist/.
Former-commit-id: d71f105493e9931f95aff890e8efaf480a1ee827
2013-07-16 09:17:40 -07:00
John-David Dalton
b3df27c362 Add note about NaN to _.isNumber docs. [closes #320]
Former-commit-id: 0b6e99297934ef2e2d43eeff676d0d40832d8e67
2013-07-16 09:17:12 -07:00
John-David Dalton
854ea26ab7 Make matchFunction and matchProp ignore leading comments by default, make removeProp remove variable assignments too, and ensure inline require calls have the correct dependency paths.
Former-commit-id: 47e265e550ca863af5902c07df63809f47c1f96d
2013-07-16 09:07:42 -07:00
John-David Dalton
e385b3499b Remove dependencyObject.
Former-commit-id: 374611a2f1180402700fad5ba7f86e390150d37b
2013-07-15 08:20:16 -07:00
John-David Dalton
77d323b38c Fix build.
Former-commit-id: b894b652c8c566411bb47935b67d649a2e6461e7
2013-07-14 19:16:53 -07:00
John-David Dalton
64eeb091b8 Dynamically create absolute path in test runners.
Former-commit-id: b6b7daef445b3750e687b3559966def1f2b165d3
2013-07-14 19:04:40 -07:00
Blaine Bublitz
65f5f8e8e2 use absolute paths for test files
Former-commit-id: 383d797273b168233c5a5653e71c0788e7d7343c
2013-07-14 16:15:51 -07:00
John-David Dalton
6b3ee1aaaf Simplify AMD loader config options.
Former-commit-id: 69a89fe05e45f508fefe445f147da5aa4da8fc7b
2013-07-14 15:38:16 -07:00
Blaine Bublitz
27ca48c6bb use packages instead of path for modularize option
Former-commit-id: 9f8d3cc49fe3f8d21991e48b46845abd9101f171
2013-07-14 13:51:01 -07:00
Blaine Bublitz
2786c776e3 Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: 699fbdc06c27cfec9d0f7b9809921f81884948f1
2013-07-14 13:40:43 -07:00
John-David Dalton
23cd5b906b Minify dependencyObject properties correctly.
Former-commit-id: a0d57812420a347938a438d9ecb13467401bcc96
2013-07-14 13:40:17 -07:00
John-David Dalton
0f9d20129d Ensure category modules reference dependencies with relative paths.
Former-commit-id: 5a12a4b2f4cd3a56456238303e7d941b06f76d9f
2013-07-14 13:39:13 -07:00
John-David Dalton
4649bd3906 Ensure category modules reference dependencies with relative paths.
Former-commit-id: 143360f03cc30f759ebd8e5e949b0dd8a1b937b5
2013-07-14 13:10:46 -07:00
John-David Dalton
3048ac2f6d Avoid circular dependency in createCallback and get Curl modularize tests working.
Former-commit-id: cf33217163f2c809fe8ddbb9debd7c95b002b8dc
2013-07-14 12:42:09 -07:00
John-David Dalton
8679377fcf Allow getDependencies and getDependants to be used with Array#map and cleanup expand in build.js.
Former-commit-id: b05ca0cdb9f9b8db4a0503a126e85d902f5bf7b1
2013-07-14 11:46:02 -07:00
John-David Dalton
db5264af3c Recursively add props and vars to include in the build in build.js.
Former-commit-id: fe7b8cad6ee6df1443424e05836e00a81f532af8
2013-07-14 11:25:21 -07:00
John-David Dalton
059fbb9e5d Remove _.unzip use from underscore build tests.
Former-commit-id: ea76623efddc58550f67ee3b40ba93d1b7b8770e
2013-07-14 11:25:21 -07:00
John-David Dalton
01303c1e31 Cleanup argument juggling comments.
Former-commit-id: e4c175791e514e7e8055f39c2156375c2da91bf2
2013-07-14 11:25:12 -07:00
John-David Dalton
a8aaa793a0 Remove unzip from underscore build.
Former-commit-id: 5c1ed2d73e678e3f63c5378e8318508207b01988
2013-07-14 08:05:54 -07:00
John-David Dalton
c5698e82da Track function dependencies of variables in build.js.
Former-commit-id: 127d9c849cb6a77ed2bb192573bc1f8f7f661838
2013-07-14 01:12:18 -07:00
Blaine Bublitz
ec12f7a5e7 Use curl's js! plugin to load test.js since it doesn't have a define in the file.
(cherry picked from commit 078d78a70e664bb92d129791d99b97f48c6ccafc)


Former-commit-id: b684cc6ffad049f32c0f6f9f16511f3242c913a2
2013-07-14 00:25:01 -07:00
John-David Dalton
b87fec554f Ensure underscore builds use basicFlatten.
Former-commit-id: 148f37a27467391e9719fb098acb75ebac256f1b
2013-07-13 23:24:57 -07:00
John-David Dalton
740981376d Fix asyncTests when using an AMD loader.
Former-commit-id: 2a1aa132c9a941205cf495f737f8f9ea2fdc574f
2013-07-13 23:19:25 -07:00
John-David Dalton
8694364aa3 Remove overloadWrapper and ensure Arrays methods work with arguments objects as secondary arguments.
Former-commit-id: 0b5f213947496622e79daea74e525e60ca53e8eb
2013-07-13 18:22:31 -07:00
John-David Dalton
f1b1fee6e4 Remove overloadWrapper and keep basicFlatten and basicUniq in various builds.
Former-commit-id: 3cb08e1232184a1a9737be4d520b15b725f7cedc
2013-07-13 18:21:20 -07:00
John-David Dalton
915596b23e Revert to QUnit v1.10.0 to avoid asyncTest issues.
Former-commit-id: 6127f8d2492eaef6f097d1ec5b25dadbf25e3af9
2013-07-13 18:06:27 -07:00
John-David Dalton
6d65cb77ec Make perf-ui.js and test-ui.js more aligned, remove unzip perf test, and handle comparing to files of the same name in perf.js.
Former-commit-id: 7a5353aab76d6667b6dd5d43e85f95695e5a9cba
2013-07-13 16:39:18 -07:00
John-David Dalton
51e2f8e49b Add unit tests to ensure methods accept falsey arguments and arguments objects.
Former-commit-id: 72dac914c33ad2270deeeffb01c94e5dd00662c6
2013-07-13 16:37:53 -07:00
John-David Dalton
0a7fc356b6 Ensure underscore build versions of _.where and _.findWhere align with Underscore 1.5.
Former-commit-id: 49653c65a29c5a9108630a38b80848b2e5596079
2013-07-13 10:37:28 -07:00
John-David Dalton
ff0f05a1c1 Ensure more Arrays methods accept arguments objects and allow falsey arguments.
Former-commit-id: 06dfbb25236c6daf3efc6b0c1d06d00cf17180b8
2013-07-13 10:35:05 -07:00
John-David Dalton
0ea9362d06 Update vendor/underscore to v1.5.1 and update copyrights and tested environments.
Former-commit-id: 3bdfb1de97d08d05199f5f97c9c3145d7068e7fd
2013-07-09 23:57:54 -07:00
John-David Dalton
9d3932bd82 Cleanup getVars, matchFunction, and matchVar.
Former-commit-id: b06d258373912d75bdfbbb31707fa17c160f75fe
2013-07-09 22:38:31 -07:00
John-David Dalton
8c787fa7f7 Fix failing build tests.
Former-commit-id: b3e1f62389f2406b07bb5db5551698ac58e5e8b9
2013-07-09 09:21:44 -07:00
John-David Dalton
2508e71324 Avoid maintaining the html escape/unescape regexes independently of the entity maps.
Former-commit-id: 847e58befee7641bc39af37bde12fc99da9edb28
2013-07-09 09:04:44 -07:00
John-David Dalton
b2f4f96ef9 Make split regexes in matchVar and matchFunction into multiples, correct typo in getDependants, and remove a lot of edge case build code.
Former-commit-id: 65917a2a0acd7c3502e04e583834f3f10efd15f7
2013-07-09 09:00:53 -07:00
John-David Dalton
fdae297fca Rename isLodashFunc to isLodash in build.js.
Former-commit-id: 4e7ae65eeba640e095aeaf92c2f36cc70ca783c2
2013-07-08 08:34:15 -07:00
John-David Dalton
36488fd836 Simplify _.zip for the underscore build.
Former-commit-id: 18560e78f052fad5c5d7af1ef6571dd31accf690
2013-07-08 08:29:18 -07:00
John-David Dalton
ee01c944b4 Move phantom checks in test.'s to the document variable assignment.
Former-commit-id: 04a4c99398401d1d69236daa5eb0290db23a07d2
2013-07-08 08:07:40 -07:00
John-David Dalton
d7f4f392d2 Fix avoid hang in web worker unit test for phantomjs.
Former-commit-id: 22b4e7c99f9b0eb3cf7c250144bb375aeb9352e8
2013-07-08 01:16:01 -07:00
John-David Dalton
1756093618 Fix minified builds.
Former-commit-id: 11f14c02cca1b5df2fbbce49f7ceff8cf25ffe65
2013-07-08 01:11:05 -07:00
John-David Dalton
1734c6e6bf Make test/underscore.html support the modularize option and cleanup test/index.html.
Former-commit-id: 98ab3a50a58f27508208655a983a9cd96d99f965
2013-07-08 00:05:00 -07:00
John-David Dalton
839f345fa3 Cleanup web worker unit test.
Former-commit-id: a6b2f450f26eba8cb233cceb5920e7ee69c665f1
2013-07-08 00:03:53 -07:00
John-David Dalton
d69b5385e4 Cleanup test/test-ui.js and perf/perf-ui.js.
Former-commit-id: b511f9f0732dffb2339f7284b913d699c11ce9c0
2013-07-08 00:03:13 -07:00
John-David Dalton
eb6b5755e7 Add web worker unit test. [closes #313]
Former-commit-id: 77d0b907a5ae58ff3f4da8b54196b12949a4efd4
2013-07-07 23:24:17 -07:00
John-David Dalton
9c65d9f957 Remove buggy Node .js v0.8 from .travis.yml.
Former-commit-id: 5937b84fdc0297c9a50c13e71948a76044319ec5
2013-07-07 18:37:22 -07:00
John-David Dalton
cfa187f7d9 Create a /lodash.js module when using modularize.
Former-commit-id: f2d1222fb9ccaed019a712448c2144c90327a4f0
2013-07-07 17:29:54 -07:00
John-David Dalton
30d0fbeae6 Make modularized builds work in the unit test.
Former-commit-id: 2d56960e70a2f8c16087cc88c66008e766ea8338
2013-07-07 17:09:47 -07:00
John-David Dalton
9b21656314 Allow switching the module loader in the unit tests.
Former-commit-id: 8521e92925cbca8ff73adf3f1a350caa662e27f7
2013-07-07 16:24:26 -07:00
John-David Dalton
b1b06a38af Rebuild docs and dist.
Former-commit-id: fdba90c6b602eef0c36190e889ebc3fb2ec6c622
2013-07-07 15:18:26 -07:00
John-David Dalton
d2fffe5b88 Make _.unzip and alias of _.zip.
Former-commit-id: fca00001ad850c250f9883572c4dce7b41dde88d
2013-07-07 15:11:19 -07:00
John-David Dalton
09d560888e Update tested browsers and add a note about the Node.js REPL to the README.md. [closes #312]
Former-commit-id: c04331d53aeb3af4d859ce7d4120871bfdd55b73
2013-07-07 14:12:58 -07:00
John-David Dalton
fa28326ed6 Fix build.
Former-commit-id: decaceb4a40033dcd02ed9018fccb2bea1332e79
2013-07-07 14:01:28 -07:00
John-David Dalton
9ea4a6b7b6 Ensure compiled templates work with exports=node.
Former-commit-id: bf235dfecf8599022b7332d4d010c6f3a52c5c26
2013-07-07 01:31:19 -07:00
John-David Dalton
ffa6fafcc1 Fix typo of matchProp to matchVar in build.js.
Former-commit-id: d42933a19b7c90dd7b007858ec73b8f7b2f64572
2013-07-06 20:17:48 -07:00
John-David Dalton
4be5b80ff6 Quote Node.js versions in travis.yml
Former-commit-id: 57127e5f9c476d7e174d56d2704ee09a90984c33
2013-07-06 20:10:46 -07:00
John-David Dalton
5028b07aaa Update builds and docs.
Former-commit-id: e66c5377ffb5c03191673004bb82781a0562535a
2013-07-06 20:08:41 -07:00
John-David Dalton
7ce5dcdead Cleanup matchProp and removeProp in build.js.
Former-commit-id: b30044f7c9ff0d87098d6404341a42d66f51173a
2013-07-06 20:06:14 -07:00
John-David Dalton
7d8571b0e1 Update vendor/underscore to v1.5.0.
Former-commit-id: 8f647bccfdd8fe81473ae7d1354056a928b6f28c
2013-07-06 18:33:44 -07:00
John-David Dalton
fca2fe2c8a Update dependencies and make the underscore build pass more Underscore v1.5.0 unit tests.
Former-commit-id: 31807c11024b44238fcca5ad1682790510371896
2013-07-06 18:33:02 -07:00
John-David Dalton
75576577e0 Update _.after to be in sync with Underscore v1.5.0.
Former-commit-id: d50446cb946a453c081cadff0b0a6245bc45eec4
2013-07-06 14:48:24 -07:00
John-David Dalton
eafc46f6c4 Update underscore build _.defaults and _.result to match Underscore v1.5.0.
Former-commit-id: 12f1ed2217b6d9c845a1be0acd7b8337be94f63f
2013-07-06 14:43:38 -07:00
John-David Dalton
c0c36d3338 Adjust method dependencies for _.flatten, _.uniq, and _.union.
Former-commit-id: f742abfbd9d0c63b16a4f7d3a903ae53d2b7a1fe
2013-07-06 14:40:14 -07:00
John-David Dalton
6a73b0820e Ensure _.flatten will flatten arguments objects.
Former-commit-id: 9ea8e40ff85b217a6497c9bbf91c9640211d9477
2013-07-06 13:48:27 -07:00
John-David Dalton
bcb5eda7d8 Optimize _.isArguments and cleanup _.isArray and _.isRegExp.
Former-commit-id: 2ce67cedca1e2b21e206c4822126b86304c8dd5f
2013-07-06 13:47:11 -07:00
John-David Dalton
2c833b5028 Bump tested Node.js version to 0.10.12 in README.md. [ci skip]
Former-commit-id: d272e4a61375f91a18531b4537be1be4ab06fc63
2013-07-04 01:56:00 -07:00
John-David Dalton
6821603980 Add vendor/curl and vendor/dojo to .npmignore.
Former-commit-id: 33ff633f4df0e4fa373820ac8e5ec3999000dfc2
2013-07-04 01:55:02 -07:00
John-David Dalton
8bec45cd58 Use QUnit v1.11.0 instead of v1.12.0 for non-browser support.
Former-commit-id: 5e554308840a9d29b6354421af73906c59d8f61d
2013-07-04 01:51:28 -07:00
John-David Dalton
ce0f44fb47 Add templateSettings to funcDependencyMap, add reNative to varDependencyMap, and simplify support property cleanup.
Former-commit-id: 0c55084b4479bb8213a3387fc246f36ca3f185dd
2013-07-04 01:18:05 -07:00
John-David Dalton
c740562dd8 Make modularized paths relative and always include a dependency array, even if it's empty.
Former-commit-id: 8f5edb85f01b472b6cc705da6e292d760d3ab12a
2013-07-03 23:53:16 -07:00
John-David Dalton
63a1c8b63e Update vendors, builds, and docs.
Former-commit-id: 08cad493d719ec3ebaa85e0ff279c49f1e2b3655
2013-07-03 23:14:06 -07:00
John-David Dalton
112cdb4842 Use # instead of @ for sourceURLs and sourceMappingURLs.
Former-commit-id: ba78f92591c0cf28dba4c7a93a49f6e0f7ebb305
2013-07-03 00:13:17 -07:00
John-David Dalton
2d5f045c29 Add build tests for build command checks.
Former-commit-id: 3f43b83f07ded116e0ae667f9c809bd1b7b4f30a
2013-07-02 23:40:35 -07:00
John-David Dalton
c43ff29f5d Make node path match in build.js and build/minify.js case-insensitive. [closes #310]
Former-commit-id: 38c00a319ec069efa56b5f22153f98cda09c857e
2013-07-02 22:06:37 -07:00
John-David Dalton
4c0e3c4db9 Remove trailing comma from varDependencyMap.
Former-commit-id: e4f622e116c217eb98fb417d7b1770b88a95cb0d
2013-07-02 08:24:01 -07:00
John-David Dalton
7995a57f77 Move support object cleanup after unused variable cleanup in build.js.
Former-commit-id: 5a334f66f6cb4b5f5fba77148ddc0406e1118f08
2013-07-01 23:17:17 -07:00
John-David Dalton
0a47378f7f Simplify dependency map modifications, and fix typos in getIndexOf replacements.
Former-commit-id: 4066c6950ac6d73b579d0f3f83dfc06f03cc98c9
2013-07-01 22:45:56 -07:00
John-David Dalton
8e9a244cdd Simplify createCache bailout.
Former-commit-id: 2d72da41abfd2bf83017534d841444d99b47776b
2013-07-01 22:44:21 -07:00
John-David Dalton
5f1a4ea08d Fix build.
Former-commit-id: e936444a8db7c16fd4cc456e5d8f9fbadf935ad1
2013-07-01 09:00:21 -07:00
John-David Dalton
034b19d85d Add .html and .md to .gitattributes.
Former-commit-id: 338788296b7b00ae00657bc4d2e522d5989d075c
2013-07-01 08:35:24 -07:00
John-David Dalton
68cb7ea471 Add createCallback to more method dependencies in build.js.
Former-commit-id: 133abccabac9f64bf3bde7e9340e5d2f11638f55
2013-07-01 00:58:43 -07:00
John-David Dalton
d9a3ba0dd1 Add objectTypes to varDependencyMap.defer in build.js.
Former-commit-id: 5f153ba0009ebcb2e0eb7e061228807a0dd3c2bd
2013-07-01 00:13:13 -07:00
John-David Dalton
663e1d8336 Add buildModule to build.js.
Former-commit-id: c301f38ab0aa2343baefed3206e2a9e4491baa60
2013-07-01 00:10:55 -07:00
John-David Dalton
31332f4f53 Add "modularize" to .ignore files.
Former-commit-id: de8d6e65e7aa0de9385c82c9132e03ce2efb7715
2013-06-30 23:56:44 -07:00
John-David Dalton
cb7163dd19 Move snippets and adjust code to make modularize work.
Former-commit-id: 9b0ebc2bca42777f8eab1026c93ece3fb2d8deb6
2013-06-30 22:12:08 -07:00
John-David Dalton
946029a3f7 Cleanup getCategory, add removeProp, remove removeTemplateSettings, rename getMethodsByCategory to getNamesByCategory.
Former-commit-id: 290525ce178f67235683efd70a779aec62a08c71
2013-06-30 21:58:01 -07:00
John-David Dalton
69cbb6e109 Add templateSettings to the Chaining category and cleanup _.difference use.
Former-commit-id: acccb5d3868cf6e38b9f6f87b6107cf4c7b1ec30
2013-06-30 21:39:50 -07:00
John-David Dalton
6054f6bfe1 Add includeProps and includeVars to build.js.
Former-commit-id: 6ea8c0ea3f072393cdba80662c580c489547a29d
2013-06-30 14:52:33 -07:00
John-David Dalton
ae7b9f5fcb Fix incorrectly changed methodName vars in build.js.
Former-commit-id: 73ca6e2241cda5051e752b238a74c75d9c2f8409
2013-06-30 14:51:57 -07:00
John-David Dalton
68dc6b9527 Make the build warn if attempting to combine template with other commands.
Former-commit-id: be47695b4f5315725b6e5520c6ccf3544c220d3a
2013-06-30 14:33:36 -07:00
John-David Dalton
292cdfd5a0 Rename addChainFuncs to addUnderscoreChaining in build.js.
Former-commit-id: a332651048424c6332a2d170435298a1772f9cb0
2013-06-30 14:32:46 -07:00
John-David Dalton
28e2dee605 Fix legacy build.
Former-commit-id: 66bb2736adf06ff03b747369e83c508d90cca60e
2013-06-30 14:31:27 -07:00
John-David Dalton
6d79ab2552 Correct use of function and method terms in build/tests.
Former-commit-id: be0ff50ce30925313716acf15470bd0fa480f6a4
2013-06-30 14:08:55 -07:00
John-David Dalton
da17e424ea Reduce nested code where possible in build.js.
Former-commit-id: 6604a798be84656158957cca0697a208f97ca4f4
2013-06-30 13:17:57 -07:00
John-David Dalton
028c25afd3 Ensure iteratorObject.keys is minified.
Former-commit-id: dcbd40ddcb54c6845fd5255f2ee8c4508091aafd
2013-06-30 11:03:26 -07:00
John-David Dalton
9c2151dc37 Update builds and docs.
Former-commit-id: a09de289c420b76f68efb9471e6e630d07663733
2013-06-30 11:03:07 -07:00
John-David Dalton
9e9bd16b18 Remove varMethodDependencyMap from build.js.
Former-commit-id: fa032025e6c3b6fed18f72bf3cc6ba8ff58cff43
2013-06-30 10:54:09 -07:00
John-David Dalton
3f138aec22 Add getTemplateSettings, removeTemplateSettings, and removeGetIndexOf to build.js.
Former-commit-id: c22a41e98a84b1739696776e40ba66a63f267159
2013-06-30 10:53:26 -07:00
John-David Dalton
e9f66e7c89 Remove getIteratorTemplate from build.js.
Former-commit-id: 1cb26327628839f11cc07ad1fa1f9420fde38209
2013-06-30 10:52:00 -07:00
John-David Dalton
6be64b363c Make getFunctionSource support number values for indent in build.js.
Former-commit-id: 5f977d8058f6773fdffa09f01a59135e9ea3337a
2013-06-30 10:49:55 -07:00
John-David Dalton
51230f21f5 Adjust varMethodDependencyMap when isModularize and remove lodash references when isNoDep.
Former-commit-id: ec7e8dcaec7ba6b09904f5d9a6039c8a572c1f76
2013-06-30 00:30:48 -07:00
John-David Dalton
e12540ba66 Allow the iife command to not have %output% specified.
Former-commit-id: c11cd1d33479e64a689a2412c764be15a807c9ae
2013-06-30 00:29:03 -07:00
John-David Dalton
a6b1bee2af Add includeVars and allow include=none in build.js.
Former-commit-id: 7a77e5ea2920c930eb4ca1fee18661819e366282
2013-06-30 00:27:45 -07:00
John-David Dalton
6187cdafe3 Remove exports comment when removing the _ exports via removeRunInContext in build.js
Former-commit-id: 90460080310f890b707eaa848146de8a26d6765b
2013-06-30 00:26:20 -07:00
John-David Dalton
880f785d04 Add removeAssignments and the snippet that removes methods in build.js.
Former-commit-id: 873a147f2fcb8a0ab19a7980644b1f542bab9b8b
2013-06-30 00:23:02 -07:00
John-David Dalton
5aedcfd6a7 Cleanup build.js.
Former-commit-id: 37a2961136788c9b50d26ed2ce38b208bbf1f40d
2013-06-30 00:20:40 -07:00
John-David Dalton
6ff1a2c236 Remove getCategoryDependencies, getSupport, removeSupport functions from build.js.
Former-commit-id: b55fb46631bb94ffbe986a031d09bf7aefc6ba99
2013-06-30 00:17:20 -07:00
John-David Dalton
317f888383 Make cleanupSource remove extra trailing whitespace.
Former-commit-id: 4b805471336e3259b45a51e1a5f1bea62d66bd94
2013-06-30 00:13:33 -07:00
John-David Dalton
33f1f9abde Update dependencies in build.js.
Former-commit-id: 0de152de0dba9b3349d9234b066a5eb8b7964693
2013-06-30 00:11:36 -07:00
John-David Dalton
913406b568 Make lodash work with modules by avoiding circular dependencies.
Former-commit-id: 57161fd81b837db22fcfe1d318e220f6ca4b1e21
2013-06-29 22:12:12 -07:00
John-David Dalton
6a74d102a4 Add matchVar to build.js.
Former-commit-id: a72f6fa81c9b7f862dc023efe8bd15ed3c2ba0ce
2013-06-28 23:27:43 -07:00
John-David Dalton
e9e36cebcb Add complexVars array, correct removeStrings, and cleanup isVarUsed in build.js.
Former-commit-id: 4d2c65fbad7659fe54c76127b9e9c0bb5731cf35
2013-06-28 09:06:29 -07:00
John-David Dalton
af6bf7a232 Add categoryMap and cleanup buildTemplate, getCategoryDependencies, getCategory, getMethodsByCategory in build.js.
Former-commit-id: e68269afcf6558aefa4a4bba3b75ebf5904714fd
2013-06-25 23:52:05 -07:00
John-David Dalton
5720a7a5e3 Add _.debounce maxWait doc example. [closes #298]
Former-commit-id: c9193ce30fa7c572594b80eeb0a068b73da0affa
2013-06-25 09:07:59 -07:00
John-David Dalton
449c946423 Fix how method names are resolved from categories in test/test-build.js.
Former-commit-id: bbb8a2ca376a64b2fd9c3e2fbe0d3911a7089a94
2013-06-24 08:01:19 -07:00
John-David Dalton
54a2a0da48 Use _.difference instead of _.without.apply(_, …) in test and build files.
Former-commit-id: 5646e8c3e895ea0662df81e7c77e70cdfe2c3a6d
2013-06-23 22:34:05 -07:00
John-David Dalton
e209fedb27 Fix typos in build.js and ensure build tests pass.
Former-commit-id: 4c82850ce314e5a7072f90267c755d991f893442
2013-06-23 19:33:45 -07:00
John-David Dalton
12494f3008 Fix typo in build.js.
Former-commit-id: 6722b5f9905108bdc25b12c857d1f0e4f47c2f7a
2013-06-23 17:23:22 -07:00
John-David Dalton
7f60b46488 Cleanup and fix typos in build tests.
Former-commit-id: cee0620f7cc624bad85c020a39108111bcb16ac2
2013-06-23 17:12:55 -07:00
John-David Dalton
1c9ecd96d4 Correct how categories are parsed in build commands.
Former-commit-id: 93dfd04296f163be7e6099e54931f52ec1ad5391
2013-06-23 17:12:30 -07:00
John-David Dalton
1f84803b91 Fix typo in build.js.
Former-commit-id: d5710a62297b824465f29a43c28882865beec971
2013-06-23 13:36:47 -07:00
John-David Dalton
3f6116f28f Add underscore build test for lack of AMD support.
Former-commit-id: ac1412ff63160d94fa80b982652ba4e10ac894fb
2013-06-23 13:25:48 -07:00
John-David Dalton
4ea0eb94d4 Add warnings to build.js for passing invalid method names to include, minus, and plus.
Former-commit-id: 918ecc8818874b59a292e913a4b8c62d34824f4c
2013-06-23 13:24:49 -07:00
John-David Dalton
e222bc631a Fix failing build tests.
Former-commit-id: c4673ee77f6750500e0f0a1adaf359108db89932
2013-06-23 01:06:34 -07:00
John-David Dalton
9c07c7fe4f Track invalid arguments better in build.js. [closes #303]
Former-commit-id: 7f50c73c8235a5f501bd8292ef59b644f6264e23
2013-06-22 18:06:20 -07:00
John-David Dalton
35d74e18de Add removeNonEnumProps to build.js.
Former-commit-id: d8c544d06fb23d0188c9670b5c0b2cf34e854254
2013-06-22 14:51:04 -07:00
John-David Dalton
266be2c25f Add removeSpliceObjectsFix to build.js.
Former-commit-id: efa1a3882849d2eb2eb01adaf03a1edca201f76e
2013-06-22 09:20:46 -07:00
John-David Dalton
b7cb090144 Correct regexp in build/pre-compile.js that matches string literals.
Former-commit-id: 0ae905b74103df321f997e1d83ac5ce54a17e552
2013-06-22 00:05:37 -07:00
John-David Dalton
30e257bc2b Add removeStrings and remove methods after inlining in build.js.
Former-commit-id: 2b57c9477e08fa89dcc9f567fe8bc64ab4541c4d
2013-06-22 00:05:05 -07:00
John-David Dalton
fbd5679fb1 Better distinguish between \n and \\ in build\pre-compile.js.
Former-commit-id: 8e32e4824a0780dcdd97e81f553df37a701e8d5d
2013-06-21 23:33:18 -07:00
John-David Dalton
9db7234f24 Add propDependencyMapBackup, make getDependants recursive, allow getMethodAssignments to still match lodash.VERSION if all other assignments are removed, and reduce removeFunction calls.
Former-commit-id: d5f3315e2908bbb6a98caf658db0c28066916deb
2013-06-21 22:25:31 -07:00
John-David Dalton
220b2dc912 Update dependencies, rename removePseudoPrivate to removePseudoPrivates, and optimize how dead variables are removed in build.js.
Former-commit-id: e80616a6caa148c954dab611ddde0fc7f5b22cde
2013-06-21 20:24:24 -07:00
John-David Dalton
83c2420038 Add defaultBuildCallback to build.js.
Former-commit-id: a7823682374b90bef1ea4f34bed883318fe48ca2
2013-06-20 00:42:15 -07:00
John-David Dalton
73913f450b Make removeVar punt to removeSupport when removing the support variable.
Former-commit-id: 8a961673173f60669282a7ebb9ad142e13af078e
2013-06-20 00:08:45 -07:00
John-David Dalton
bb966e7e6f Rename useLodashMethod to isLodashMethod, add isExcluded and remove isRemoved from build.js.
Former-commit-id: 59c2756e728f45240db30997350e5bd6db592908
2013-06-19 09:05:42 -07:00
John-David Dalton
b4adc127a4 Simplify getMethodAssignments, add removeMethodAssignments, and avoid some cleanup when the --no-dep flag is passed in build.js.
Former-commit-id: aebfc41fdde98df243c4620ee729977775cba52b
2013-06-19 09:01:42 -07:00
John-David Dalton
2bc343b524 Add defer to the remove forks check in build.js.
Former-commit-id: 964ffc9af09e24b3a9fb3bdc84ff4495521bcd59
2013-06-18 09:04:45 -07:00
John-David Dalton
1f4d6eb0df Remove local clearTimeout and setTimeout vars from the underscore build.
Former-commit-id: d783c0a387ad96b14db718da04dec43056452042
2013-06-18 08:59:58 -07:00
John-David Dalton
ee936fe1a1 Add isShallow to getVars in build.js.
Former-commit-id: c863a26a1e43e4ab8b0d4d84ecea78653663660e
2013-06-18 08:33:42 -07:00
John-David Dalton
f6d9239b37 Rename fallback to fork in build.js.
Former-commit-id: f98efe8f0cc3c5440c05ff8fe31cacb742fdddf3
2013-06-18 08:26:46 -07:00
John-David Dalton
512e5b0240 Add removeComments, removePseudoPrivate, and track more private properties and other dependencies in build.js.
Former-commit-id: 66a9d849080d20549bbdfda7965db1b31ac5388c
2013-06-17 23:30:53 -07:00
John-David Dalton
600148f501 Track property dependencies in build.js.
Former-commit-id: 9ae72c4677f7340e53350702391aa46c328ab81c
2013-06-16 20:20:51 -07:00
John-David Dalton
8791a4f696 Fix build by not counting pseudo private props as part of the isVarUsed result and accounting for findWhere.
Former-commit-id: 974c3a31de0222b9239be0a5a9c4a7b5c5e41913
2013-06-16 19:09:50 -07:00
John-David Dalton
ef40a8a925 Reduce the snippet returned from getMethodAssignments and avoid a possible infinite loop when removing dead vars.
Former-commit-id: 06b49c9ecdf0b279f7d81274d82a813488e9dd26
2013-06-16 17:48:15 -07:00
John-David Dalton
2473e87947 Track less variables and optimize dead variable removal in build.js.
Former-commit-id: 926dae3b46fd491634559391c888fca8a83c84ac
2013-06-16 14:32:52 -07:00
John-David Dalton
bbe1dfb53d Update builds with more dead code removed.
Former-commit-id: 4e1932fcfc89725071a107dcd1aeec2d025b580a
2013-06-16 10:25:35 -07:00
John-David Dalton
3bc27b1a02 Allow findWhere to be included as a lodash method in test-build.js.
Former-commit-id: b69a12bac6a1a91716e4665dad39cafbaa8f88c8
2013-06-16 10:24:12 -07:00
John-David Dalton
ec4c6e140b Correct getVars filter in build.js
Former-commit-id: 4be03b389d54ec360e56918c4d4ca2ad26f46f8a
2013-06-16 10:23:39 -07:00
John-David Dalton
545cc1074c Exclude Lo-Dash methods from getVars results and correct varMap check.
Former-commit-id: 793bc5294ada8f765928aa9e78e83bc535eb44df
2013-06-16 00:59:04 -07:00
John-David Dalton
9c0f4822bc Make build allow iife with newlines and remove isNode from builds that don't need it.
Former-commit-id: 2c0f123d80ea63fb6072d1c02762edd56892d056
2013-06-16 00:05:21 -07:00
John-David Dalton
5040ec109b Make build.js automatically remove unused variables from builds.
Former-commit-id: 03c9e77498263da0f5dc10bc9076a74d471d93f9
2013-06-16 00:04:02 -07:00
John-David Dalton
25b216d7ef Add note about Node.js bug #5688. [closes #301]
Former-commit-id: e2f178fed72f4932ee7b20d3b81974180683a334
2013-06-15 17:17:59 -07:00
John-David Dalton
e475c847d7 Update docdown.
Former-commit-id: 425bcffea78c4c0f1b2004415a0c01f20bcc52c2
2013-06-15 17:02:43 -07:00
John-David Dalton
e7c55c1ad6 Minor whitespace nits.
Former-commit-id: 53a50cbb83cd638f42c0b943c8c2eb354403c787
2013-06-15 17:02:30 -07:00
John-David Dalton
cd8fcadd29 Add *.min.* to ignore files.
Former-commit-id: 6dfd90814ef66ff6a81ff039c5650e7befb735f9
2013-06-15 16:56:15 -07:00
John-David Dalton
f78b6b30d9 Remove testing Node 0.9 in .travis.yml.
Former-commit-id: dcb53274a2d671b3645b1b740533cfc5e0c3cb14
2013-06-14 07:50:57 -07:00
John-David Dalton
cc6a991464 Add changelog note about --output. [ci skip]
Former-commit-id: 7ea8bf69eea43fc489a6f6fe1f18eba206a735de
2013-06-12 23:10:53 -07:00
John-David Dalton
81d487dd89 Update package.json to more closely follow npm docs. [ci skip]
Former-commit-id: 8f5687e779626502da3edcbbe092f4ca93b0cffd
2013-06-12 22:52:22 -07:00
John-David Dalton
af2795c07f Add Dojo builder check to test/test-build.js.
Former-commit-id: 20385525751c6be545d33e46fd650731eebb5246
2013-06-12 08:54:46 -07:00
John-David Dalton
178d9fb8d5 Cleanup _.random unit test.
Former-commit-id: adc32aa17c4375446f180cf6f9daff2eb13b841e
2013-06-12 08:00:33 -07:00
John-David Dalton
9bd12eb782 Bump to v1.3.1.
Former-commit-id: 2d7b1adacb8d2dd6fbee4b9b623b73aa8582e487
2013-06-12 07:54:39 -07:00
John-David Dalton
ef66650997 Ensure maxWait tests pass in Ringo.
Former-commit-id: 57f4142caab308b2df0c0403cfac15cd240c0538
2013-06-12 07:47:53 -07:00
John-David Dalton
fcffcdde1b Increase maxPoolSize limit, add missing cache property to the object returned by getObject, and optimize releaseArray and releaseObject.
Former-commit-id: 41c356fb0d03339bc450de8d69f8002aa4613628
2013-06-12 07:20:58 -07:00
John-David Dalton
7de892ccac Correct typo in _.indexOf perf test.
Former-commit-id: 96d717dbf50ea5b9c8098ec39f2572cccb72ab18
2013-06-12 00:15:14 -07:00
John-David Dalton
f90f2e051a Bump to v1.3.0.
Former-commit-id: 4b8a4e90b97d2960445073cd4288af19dadc9266
2013-06-11 08:33:35 -07:00
John-David Dalton
24f49c8d83 Ensure _.throttle passes underscore unit tests in all environments.
Former-commit-id: 5867875313995ed02a94cd879d537c295b8a5c5f
2013-06-11 08:19:54 -07:00
John-David Dalton
a4ebaf15ab Remove lodash.js from .npmignore.
Former-commit-id: 437fe2fa2e19d4de8f83e2f760cf9da854ded128
2013-06-10 23:55:13 -07:00
John-David Dalton
54a46dccc3 Correct _.throttle method dependencies.
Former-commit-id: 2118e1789803a042675fcc8acb19f1904a102578
2013-06-10 12:37:24 -07:00
John-David Dalton
9747d5057d Update builds and docs.
Former-commit-id: 413e8a906dee3407baf848c4607d9887f57fac85
2013-06-10 11:55:51 -07:00
John-David Dalton
7f5c97d0be Avoid Array.prototype issues in Narwhal.
Former-commit-id: 47627a187d59fb83f4a5b84b03158432d5216395
2013-06-10 11:54:09 -07:00
John-David Dalton
1933a76631 Add maxWait option to _.debounce and implement _.throttle by way of _.debounce. [closes #285]
Former-commit-id: 63b41aac298e5fa89f7922e84b2ed0d5c6545bd3
2013-06-10 11:16:14 -07:00
John-David Dalton
c20d7f9754 Tweak free variable module detection so it will work with Component's polyfill. [closes #296]
Former-commit-id: bda6c962dc5e8299689e4c5cf003f6a6c9a4369d
2013-06-10 09:32:33 -07:00
John-David Dalton
6b46dc7e89 Ensure more private properties are minified correctly.
Former-commit-id: dbebbb088768f04a8252029ad709bad9f01c88bb
2013-06-09 17:21:50 -07:00
John-David Dalton
0c1a26170c Remove build source ./lodash.js from components.
Former-commit-id: 4d7f56385b288b396182020aed07eec285c37815
2013-06-08 09:23:20 -07:00
John-David Dalton
244ee08d7d Remove ./ path prefix to avoid issues with Component's build. [closes #294]
Former-commit-id: 93ba9214538b0f30fde75bff96b75c83f3b96f1f
2013-06-07 18:44:15 -07:00
John-David Dalton
a3acbca24b Rename typod test/run-test.sh.
Former-commit-id: bb982a51c5ceb123e83d98c3201e969607f990b8
2013-06-07 13:33:12 -07:00
John-David Dalton
d77e4ed581 Rebuild files and docs.
Former-commit-id: 1e3b1e236e15e4248247a4b20288ab2e153ce753
2013-06-07 08:39:08 -07:00
John-David Dalton
b928abb956 Tweak _.intersection to still hit fast paths in engines.
Former-commit-id: e8cb944bd6223bb30d58da343c4b5a3f296a4956
2013-06-07 08:24:30 -07:00
John-David Dalton
a46ef8d1a6 When chaining, _.max and _.min should resolve the correct value when passed an array containing only one value. [closes #292]
Former-commit-id: 79c71c1851a73c23919a28aadd56490ded91166c
2013-06-06 09:07:14 -07:00
John-David Dalton
a5d459749f Update dependency maps and remove properties in pre-compile.js that no longer exist.
Former-commit-id: d24f0ac4575ab1c2d12f3e8b4bc5f089424407ca
2013-06-06 08:44:20 -07:00
John-David Dalton
7dfa383968 Move some functions out of runInContext and cleanup _.intersection.
Former-commit-id: dfefa6e202b3cd5a7925ddef6ac73dcab5bef8d1
2013-06-06 08:43:24 -07:00
John-David Dalton
036483d195 Simplify the object pool and large array cache.
Former-commit-id: d15df51efe575cd6fa773622f135ccfb6f675545
2013-06-05 08:06:05 -07:00
John-David Dalton
2c950f74bc Remove props related to _.sortBy if the method isn't included in a given build.
Former-commit-id: b3da4dab8257b9001b7458263a28bf22b0a2c831
2013-06-04 09:12:11 -07:00
John-David Dalton
2c59dcd929 Rebuild docs and files.
Former-commit-id: 94d3e29ccf0ba47599a9d662e5d4068713009c9b
2013-06-04 08:37:12 -07:00
John-David Dalton
658d14f31d Cleanup var names and properties.
Former-commit-id: a3455f40184b61a7abe3f5749ea1c0a141c0e574
2013-06-04 08:36:45 -07:00
John-David Dalton
819f4d2151 Add maxPoolSize to limit array and object pools.
Former-commit-id: 677cdb053c7ef60274d71d9ecf4d6f866ef6a8eb
2013-06-03 08:43:04 -07:00
John-David Dalton
9b214d75df Update DocDown.
Former-commit-id: ecb4c7428007bfb6b721000c81254a03c826b1ff
2013-06-03 08:00:46 -07:00
John-David Dalton
e0891a2d71 Clarify lodash underscore test name in test-build.js.
Former-commit-id: 4723604102d38ea252f867aeab16ce167b1d1a49
2013-06-03 08:00:29 -07:00
John-David Dalton
34a4876761 Cleanup .travis and .ignore files.
Former-commit-id: 268e1eb34f30581ed1a36236970673f389f94bb3
2013-06-03 07:59:44 -07:00
John-David Dalton
13ead0085d Add array and object pools to lodash.
Former-commit-id: f038284d6a544e146dc271ed0fbea0d7401593d4
2013-06-03 07:09:04 -07:00
John-David Dalton
9e63270fc5 Add Volo ignore entry to package.json.
Former-commit-id: 9fe60cf0dcfeb4f688f53ffb1995a619d420d586
2013-06-02 17:29:57 -07:00
John-David Dalton
eccab3cd57 Fix build test for older Node versions w/o setImmediate.
Former-commit-id: 9f21f174626cd86eefd0a26cf0b36a60858ba501
2013-05-30 09:37:09 -04:00
John-David Dalton
6446daf1a6 Remove Instanbul note from README and devDependency from package.json.
Former-commit-id: 891c387534df492f9e4d836daac7adc930205fb3
2013-05-30 08:23:08 -04:00
Mathias Bynens
821602ef1c package.json: Remove Grunt devDependencies
Follow-up commit to dc3512de9f [formerly 6d38406eafbfc880c0b5aabf853c987c65f03482].


Former-commit-id: f8c310cad3fe165b6005312bad74a9abc5148a47
2013-05-30 10:44:08 +02:00
John-David Dalton
dc3512de9f Move istanbul to travis.yml.
Former-commit-id: 6d38406eafbfc880c0b5aabf853c987c65f03482
2013-05-30 03:38:55 -04:00
John-David Dalton
36e9cb7108 Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: 629fdb25b4727f8dbf870457196af9a4c43b562d
2013-05-29 17:25:09 -04:00
John-David Dalton
42f4531720 Remove unneeded method from the backbone build and fix build tests.
Former-commit-id: ee463a4af4d458a556f5be666b71b464bae32e6b
2013-05-29 17:06:01 -04:00
Mathias Bynens
d1fb379a40 Enable code coverage
Former-commit-id: 9b52247b6e880f15895842e4ff34c15fc99fd1eb
2013-05-29 17:51:57 +02:00
John-David Dalton
e27bdb965c Add a note about the exposed cache to _.memoize docs.
Former-commit-id: 75939e3ed38fe8447c2f9e45b965a837901bcc4c
2013-05-29 10:30:58 -05:00
John-David Dalton
54fc6df3da Update _.transform docs.
Former-commit-id: ff26ef26e906410787a8819b9c653f20bbdeff38
2013-05-29 09:21:45 -05:00
John-David Dalton
9dd8f62c8a Make Error.prototype unit tests pass in Firefox.
Former-commit-id: 1ff097e7947ba206bc58fe0c319bf36bb64b5387
2013-05-29 09:05:21 -05:00
John-David Dalton
1db19148e7 Update vendors.
Former-commit-id: 6be90c53f9b69d500485492ea2a0ebd288b92abe
2013-05-29 08:56:53 -05:00
John-David Dalton
93a01506e4 Add/fix build tests for mixed method builds.
Former-commit-id: 2b97810ca6960670ea646c6eda962bd4585fda04
2013-05-29 08:30:13 -05:00
John-David Dalton
4767ed790c Add _.findWhere alias.
Former-commit-id: 2c70e59b71c22d902e499747444a196a85691554
2013-05-28 16:08:24 -05:00
John-David Dalton
e39211347c Fix build.
Former-commit-id: f8c32906f46a747b1d610c1c9ca8a8ee3b095d90
2013-05-27 23:54:16 -07:00
John-David Dalton
a8cdbb65fe Move code block to a more related part of build.js.
Former-commit-id: c138608bdff2937c51127e129955143ad7a3caec
2013-05-27 23:21:18 -07:00
John-David Dalton
ff74ff4149 Tweak _.transform docs.
Former-commit-id: dc7100411a403be4cce6b3784e1dd81cc9423b76
2013-05-27 22:31:41 -07:00
John-David Dalton
96e47f3d27 Avoid incorrectly converting local variables to boolean values.
Former-commit-id: 322f6dec4c669bdc1ef534f7786cf12aee580e53
2013-05-27 15:38:11 -07:00
John-David Dalton
be52c181ea Ensure converted !0 and !1 have leading whitespace if needed.
Former-commit-id: 930001f35111d47a51c011c47d6c2608b0bb7e2d
2013-05-27 13:47:01 -07:00
John-David Dalton
507f2ec544 Avoid minifier tricks for boolean literals in expressions.
Former-commit-id: a02445f97a81c330018247140784818be830595f
2013-05-27 13:04:26 -07:00
John-David Dalton
fe00c628f4 Fix build.
Former-commit-id: 8dfb12b5883e59111857360ee5392c62e5e9146f
2013-05-26 23:19:10 -07:00
John-David Dalton
e9387d322c Disable use of basicIndexOf optimization if _.indexOf is customized.
Former-commit-id: 5b2273b36934581e34c6f6042de95bf556c61ca2
2013-05-26 22:46:52 -07:00
John-David Dalton
2e3b135fe9 Rebuild docs and files.
Former-commit-id: 3f0dd7d8a07e2a3694619ce7277573ffb6f88ef6
2013-05-25 01:08:38 -07:00
John-David Dalton
d28cc15be2 Ensure _.isPlainObject returns true for empty objects in older browsers. [closes #283]
Former-commit-id: d01d32b1cbd87d08bc8014d07eaa1842e3118a40
2013-05-25 01:08:08 -07:00
John-David Dalton
d15bd23800 Add *.template.* to .ignore files.
Former-commit-id: d4c34dccb521890de2ced7482628f4796b55dcc1
2013-05-24 09:11:34 -07:00
John-David Dalton
90fe45c52d Tweak regexp in build/post-compile.js used to repair whitespace detection.
Former-commit-id: 7bfe6a6bc0b5e2258c56588d8aacad1e5176d8ba
2013-05-24 09:10:45 -07:00
John-David Dalton
8f7be71905 Avoid escaping existing non-ascii characters in templates. [closes #278]
Former-commit-id: a56581f3e323c0c47e4f26ef8dce13e90fb6c15c
2013-05-24 08:42:11 -07:00
John-David Dalton
5d583637c4 Clarify _.uniq doc example and rebuild files. [closes #282]
Former-commit-id: b3ab9ae81af219dfb75b3f4339555530a6301f6e
2013-05-24 07:53:03 -07:00
John-David Dalton
0efb4285c1 Make capitalize in test/test-build.js consistent with other areas.
Former-commit-id: 2a4b6a2f394e474af2c3ca9376ec0ac2580e9bb9
2013-05-23 20:23:48 -07:00
John-David Dalton
6dc543ca18 Rename internal each to basicEach and add internal overloadWrapper function.
Former-commit-id: b12ea9977ab7b6da877aca5925a9fc59019bec93
2013-05-23 20:23:10 -07:00
John-David Dalton
e93e1ddeb9 Add private function dependencies to help reduce dead code in non-minified builds and allow turning them into modules as part of the modularize build option.
Former-commit-id: e9118c47ae2b66e86332a02b4279999b99b8c429
2013-05-23 20:22:12 -07:00
John-David Dalton
d5459f5996 Reduce test/test-build.js travis-ci time limit.
Former-commit-id: c71f8dec6e7cbd81d8693bd52f1f2d0ef78149a7
2013-05-21 10:46:07 -07:00
John-David Dalton
c6420a910d Cleanup getJavaOptions in build/minify.js.
Former-commit-id: 74a6ddf40eadcfd66c0da243d2496b45bc89d8a1
2013-05-21 09:14:37 -07:00
John-David Dalton
f8e67b8e68 Remove the binding optimization from all but the modern build.
Former-commit-id: 1023ccc976e180425dabaa1b61e873e542aa3c2a
2013-05-21 08:42:13 -07:00
John-David Dalton
9ffcd382b4 Have build.js remove createCache if it's not called in the source.
Former-commit-id: 399d1e19b96b2084cc8cd459d297129db1bda071
2013-05-21 00:30:49 -07:00
John-David Dalton
725746badf Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: f3bd8611110e0656b448fd5e7bd6fb88dc7a7213
2013-05-20 22:58:22 -07:00
John-David Dalton
9d5290de91 Rebuild docs and files.
Former-commit-id: 00c9d39304630bf650d7f1c80496c383cdac0ba7
2013-05-20 22:58:08 -07:00
John-David Dalton
1bb0b58cce Rename cachedContains reference in build.js to createCache.
Former-commit-id: 3b8cee53f3b7cadc5350c4261794cec72e704427
2013-05-20 22:57:31 -07:00
John-David Dalton
32f0ebbe61 Avoid issues with Titanium, clearTimeout, and an undefined timer id.
Former-commit-id: 18813fcebbab5185164c236a647b0b6436d495ff
2013-05-20 22:53:27 -07:00
John-David Dalton
25a1d74627 Update test/underscore.html and test/backbone.html to account for chain existing in Lo-Dash.
Former-commit-id: f815e7a3ac6e9cc6c048eab82acc32e462dbb021
2013-05-20 22:52:34 -07:00
John-David Dalton
355b2f09bf Make getDependants work with an array of method names.
Former-commit-id: 55f3721735d93e95da10bb3367f8478d861e683c
2013-05-20 22:10:11 -07:00
John-David Dalton
01621f75b6 Avoid binding functions in _.createCallback if they don't reference this.
Former-commit-id: d491414e7e1536d3241a607ba07120f629ff2410
2013-05-20 09:20:51 -07:00
John-David Dalton
242e8a3bd6 Fix typo left out of the "legacy include=defer" patch.
Former-commit-id: cf8f3e072534a925bdf6a0ebdee65d1280f7d29e
2013-05-20 08:44:12 -07:00
John-David Dalton
010c26e716 Replace cachedContains with createCache and further optimize linear array searches.
Former-commit-id: bfe905985c9125cbadfcf111ffd97b6f8ecdd58d
2013-05-19 19:21:11 -07:00
John-David Dalton
e7bad10663 Ensure mobile builds pass unit tests.
Former-commit-id: 31b4eb76c90f375069ef4a73aa7e3fdbcbda069d
2013-05-19 14:28:23 -07:00
John-David Dalton
16242f98ce Ensure each is converted to forEach when used in a ternary operation.
Former-commit-id: ff42e367f9987726fd561037337081c63c7a5100
2013-05-19 14:23:35 -07:00
Kit Cambridge
14a447b3d8 Ensure that the javaOptions are set correctly, as exec is asynchronous.
Previously, the `java` command would execute on the next tick and update the
`javaOptions` array, which could occur prior to the invocation of the Closure
Compiler on the current tick. This has now been refactored into a separate
`getJavaOptions` function, which passes the `javaOptions` array to a callback.

`getJavaOptions` is defined lazily; after the first invocation, the options
are cached and passed to all subsequent callbacks. The callbacks are invoked
on the next tick for compatibility with `exec`.


Former-commit-id: 89ca63c9edb3df3d4fcbbaa64e06075495febfd0
2013-05-19 14:16:35 -07:00
John-David Dalton
a2088fa500 Rebuild docs, files, and update minifiers.
Former-commit-id: 65b04c3efc7677c8ec5cc7ce6e5840fed23b3716
2013-05-19 13:11:57 -07:00
John-David Dalton
87af68c092 Add Java options for faster Closure Compiler minification to minify.js.
Former-commit-id: b493d461e78d0df80c80805a570220fdff93d487
2013-05-19 11:45:24 -07:00
John-David Dalton
06daad87ca Remove unnecessary semicolons from compiled strings.
Former-commit-id: d4f31dafd3335878469babc5daac45957c6d4e80
2013-05-19 11:36:04 -07:00
John-David Dalton
0b4b86f6c9 Remove ctorByClass from the minified vars list in pre-compile.js.
Former-commit-id: 5f5fe90d6a1a9726a07ee7b4c2c9b9b23b6700d3
2013-05-19 10:58:36 -07:00
John-David Dalton
10626904af Add _.transform unit tests.
Former-commit-id: 34e844950f5c003eeeaf2daea7a5ef6247fbfdab
2013-05-19 10:57:50 -07:00
John-David Dalton
90cca8a3eb Remove Error enum fixes/code from builds that don't need them.
Former-commit-id: db060ff3571ef656709447970b62f4af753ea0cb
2013-05-19 10:52:56 -07:00
John-David Dalton
8da0141cac Fix legacy include=defer build test.
Former-commit-id: 49d0598ad3a979796cd07b6819c0aa08642c93a1
2013-05-19 00:37:40 -07:00
John-David Dalton
39e123aaf4 Rebuild files.
Former-commit-id: ab61934d0b097036dc4cab968d92bfd1450fe8c7
2013-05-18 19:33:17 -07:00
John-David Dalton
24fd17f072 Replace _.isPlainObject with shimIsPlainObject.
Former-commit-id: c1c273a352387e25ae5a6a22dfda8871beac8400
2013-05-18 19:32:16 -07:00
John-David Dalton
9270cc47b5 Add _.transform.
Former-commit-id: 6c040fedd130e8436ff99b1d70892ac8cebbb996
2013-05-18 19:12:22 -07:00
John-David Dalton
3721db34ab Avoid writing a minified file when --stdout is used. [closes #273]
Former-commit-id: 75068b4a92f3a98d4c47ad049e88ef764154bcc1
2013-05-18 09:21:23 -07:00
John-David Dalton
e85ae351c7 Ensure --output paths containing build commands are processed w/o problems.
Former-commit-id: 4790e4e2ea2eba6af8c93e3576858d1f6ff45e70
2013-05-17 08:41:55 -07:00
John-David Dalton
a56ba245ea Fix _.support.enumErrorProps docs.
Former-commit-id: f7aa45537b1e4d173f966a78f89b183c444faaeb
2013-05-16 09:12:56 -07:00
John-David Dalton
d162eed4c7 Rebuild files.
Former-commit-id: dd3db7be0213bfada5ab7d8593e233a9af4a9dd0
2013-05-16 08:48:28 -07:00
John-David Dalton
43fea34f61 Ensure _.chain works as expected.
Former-commit-id: ed176702dc08deeb35d94bb7b40623ab06142848
2013-05-16 08:47:52 -07:00
John-David Dalton
f7c960fc0d Ensure Error is escaped for advanced Closure Compiler minification.
Former-commit-id: 7a9cfbe464afa9e52ec3ed23692965d07db51d32
2013-05-14 22:49:15 -07:00
John-David Dalton
ee1933389a Add _.chain tests and ensure they pass.
Former-commit-id: e365b65da8a740383c975c7b904ad2156d1cc8ab
2013-05-14 22:48:34 -07:00
John-David Dalton
fdc9d5f1fd Rebuild docs and files.
Former-commit-id: 59596707224acabb767b87078d69363c293eec2d
2013-05-14 09:15:48 -07:00
John-David Dalton
bad40b6125 Ensure snippet in iteratorTemplate is minifiable and remove unneeded references from iteratorTemplate.
Former-commit-id: f8c96f63f1a50644c0d2074e5419e68d1a247d46
2013-05-14 09:15:26 -07:00
John-David Dalton
d76ce85327 Add better _.forIn support for legacy browsers.
Former-commit-id: a03ce4662021d6ac8ca12c4885a9c4718c227a30
2013-05-14 09:04:15 -07:00
John-David Dalton
d3df072a22 Make build.js remove extraneous semicolons from inlined methods.
Former-commit-id: 061ed370a4c95a64669335c6b2a5da7ebc1015fd
2013-05-14 08:11:56 -07:00
John-David Dalton
4b3009a195 Ensure _.clone, _.flatten, and _.uniq can be used as a callback for methods like _.map. [closes #270]
Former-commit-id: fb62b5bbdad844cb04c3259c323e27fb81932809
2013-05-14 00:50:57 -07:00
John-David Dalton
b72b0d60cb Add support for floating point numbers to _.random. [closes #263]
Former-commit-id: ef356bb180b163fc936ef69ac2ef33186983eaa7
2013-05-12 15:48:01 -07:00
John-David Dalton
5841e62c66 Add _.chain alias of _. [closes #267]
Former-commit-id: 580e4346444096c7fa77cfc5cf2c68b6cf891fcf
2013-05-11 00:59:48 -07:00
John-David Dalton
9bd0c01702 Expose memoized function's cache. [closes #265]
Former-commit-id: fc44676386854ec9d5fd7a4fac8583508d63949f
2013-05-10 23:22:04 -07:00
John-David Dalton
6d86b3a950 Add _.has unit test.
Former-commit-id: 3334651f8d29e6aa006184846b128acd006157ef
2013-05-10 22:57:08 -07:00
John-David Dalton
5ff9b02c89 Rebuild files and docs.
Former-commit-id: 697fc5842bb6099f48e3731940c9e329452850d2
2013-05-08 01:05:03 -07:00
John-David Dalton
80934ea232 Fix build.
Former-commit-id: 114ddcfec3e9bd4bccf481e8ec943ffdead2bb24
2013-05-08 00:59:37 -07:00
John-David Dalton
5acfa2bf3a Remove _.unzip from the underscore build.
Former-commit-id: 6d0accb64f39b08b72e3165c49a8c844a7a99cd3
2013-05-07 23:49:30 -07:00
John-David Dalton
4fada52e04 Remove nonEnumProps from the modernish builds.
Former-commit-id: 38592e1ee24524b223b801ede8033d7b4ccb8a36
2013-05-07 23:34:17 -07:00
John-David Dalton
e1c8e95e11 Tweak whitespace in iteratorTemplate.
Former-commit-id: 2f9fdbd72d316a1668d34fa95a3f1ecb325d625b
2013-05-07 23:33:04 -07:00
John-David Dalton
1dfebad790 Add a space before define in the minified files so Dojo builder will detect it properly.
Former-commit-id: 3c656ba3b2dd4771eab97c259840c2f426e2454c
2013-05-07 22:14:47 -07:00
John-David Dalton
37ffe63d13 Rename arrayRef to arrayProto in build.js.
Former-commit-id: fec054f96a4972173cb638ee77a7a0d1813c9ad4
2013-05-07 09:24:12 -07:00
John-David Dalton
cc14c34dc2 Allow the underscore build to opt-in to more lodash build methods.
Former-commit-id: 3f685fe1ced25ba37ea9d09e2ed8fa59acb5b8b7
2013-05-07 09:22:31 -07:00
John-David Dalton
e0cf4e644b Add more _.forIn iteration tests and prep support for Error object iteration.
Former-commit-id: 3676681717d0648c9f96570a4952f7c35e6a9bec
2013-05-07 01:38:13 -07:00
John-David Dalton
aad55fc3db Fix trailing parenthesis typo.
Former-commit-id: a9b4fe7408aa9faa7079656c3cb31a4c655544e6
2013-05-06 07:02:53 -07:00
John-David Dalton
ba2b459220 Tweak wiki wording in README.md.
Former-commit-id: 86b1377b1e0eb09bf9e50ac66b988548b022cf96
2013-05-05 23:59:13 -07:00
John-David Dalton
086669fbe0 Ensure _.forIn works over objects with longer inheritance chains in IE < 9.
Former-commit-id: 226223454e71dd8cb6c38a543f1accd915eef3cb
2013-05-05 23:58:33 -07:00
John-David Dalton
4cc3fcb6e8 Ensure unknown objectTypes return false.
Former-commit-id: a60236ecd8908a91c0268d71d5710665986f1ceb
2013-05-05 23:49:37 -07:00
John-David Dalton
8781053dbe Simplify arrays iterator options.
Former-commit-id: 7ea81c03f791615bcfec24d8574162c190d49c7d
2013-05-03 08:51:10 -07:00
John-David Dalton
bdac8974d8 Realign _.assign and _.defaults with ES6 Object.assign. [closes #259]
Former-commit-id: e8c89e4a130ed286ce07e1a2e848f50b182effae
2013-05-03 08:33:51 -07:00
John-David Dalton
9ae24141a3 Cleanup _.debounce.
Former-commit-id: 0212c6b31222a8e215d6f60e906fbad074f424a9
2013-05-02 00:06:55 -07:00
John-David Dalton
e773efdc59 Ensure _.debounce with leading and trailing will call the func on the leading edge after a trailing call is performed. [closes #257]
Former-commit-id: 97afe842b2b4c3eb20c9557298e01ec268386ea2
2013-05-01 09:03:52 -07:00
John-David Dalton
8f94bd1fbd Reduce _.unzip and _.zip.
Former-commit-id: f388c50817910eee510f33b22fd4904fd648a6f0
2013-04-30 09:18:26 -07:00
John-David Dalton
d24d83d52a Ensure remove of the "exit early" feature is handled properly when mixing lodash methods into the underscore build.
Former-commit-id: 973c3e188076ca4403f59684b82bee3049370d5a
2013-04-30 09:12:57 -07:00
John-David Dalton
c938017baa Bump to v1.2.1.
Former-commit-id: ddffb32b2aa61001e81fccfa59b9e9bb38bf7883
2013-04-29 09:10:51 -07:00
John-David Dalton
728eea3ae1 Use zopfli to compress minifiers.
Former-commit-id: 0c68644b7602caf00b02a4977951508aceeb4156
2013-04-29 08:55:07 -07:00
John-David Dalton
88f9c1e539 Add modern build test.
Former-commit-id: 5f1addf774bd9d128095d477c227c4d8420ead5d
2013-04-29 08:54:46 -07:00
John-David Dalton
76540c20f3 Add .map to the ignore files. [ci skip]
Former-commit-id: 129c53ab38b4fbb178b4a832a7abdbf8b055d615
2013-04-29 08:54:15 -07:00
John-David Dalton
70761cf1d9 Avoid false test fails in isType unit tests.
Former-commit-id: b7311a8c3844000efab5d56d3632b99f0bf16ce8
2013-04-28 19:28:40 -07:00
John-David Dalton
ace913a97d Update avatars in READMEs. [ci skip]
Former-commit-id: a4ca090094770481959cd4d4e68ec49696c12f9d
2013-04-28 16:51:53 -07:00
John-David Dalton
d6e269c7f6 Avoid special characters in the whitespace unit test.
Former-commit-id: 5344bbdb0cd96a3a7d275facc7160c1afa1e971e
2013-04-28 16:48:54 -07:00
John-David Dalton
ec10550b3a Ensure the _.isRegExp is correct for various builds.
Former-commit-id: 38cf57053b89b1011bbfbd0b6a9cd31e91589c31
2013-04-28 16:48:13 -07:00
John-David Dalton
86e2374b48 Ensure _.isArray assignment is handled correctly for builds.
Former-commit-id: a844909ada5fbb394cbb91d06e6c76ccc6c40ff7
2013-04-28 15:53:36 -07:00
John-David Dalton
d156dacbb9 Add more .json files to the various ignore files. [ci skip]
Former-commit-id: ff1bce7c404799856f838aab301e60b654309c96
2013-04-28 15:23:53 -07:00
John-David Dalton
1af5517da0 Add component.json. [closes #58]
Former-commit-id: a7edbb3ee80687f3c74fdb2ae37cad553e009766
2013-04-28 00:18:37 -07:00
John-David Dalton
e5d34890a9 Cleanup whitespace characters in strings and fix a whitespace bug in Closure Compiler.
Former-commit-id: d1ab43648f3084b7bcfbd471728b71cea48aa9be
2013-04-27 02:24:25 -07:00
John-David Dalton
183b2548cf Document the radix argument of _.parseInt and ensure it ignores leading whitespace. [closes #254]
Former-commit-id: b1d0f7688402b3f41cfb030c63dcd097ba3f4e68
2013-04-26 22:48:14 -07:00
John-David Dalton
d2de489e3a Update vendors.
Former-commit-id: a36c775be95f95737129965826c2ffcab3fde4f3
2013-04-26 10:44:59 -07:00
Kit Cambridge
90f8dbd86e minify: Send a User-Agent header to avoid 403 responses from GitHub. [ci skip] [closes #255]
Former-commit-id: 1879b790b4ace543430edba6ae62d33c963f0344
2013-04-26 09:38:04 -07:00
John-David Dalton
3508ce19f3 Remove support.argsObject from the underscore build.
Former-commit-id: 4b25a64d662bde78ab6956109b072ed0a4755e53
2013-04-25 09:15:12 -07:00
John-David Dalton
00188c9818 Use -1 as the selectedIndex of the drop down lists when a custom url is used in the perf suite. [ci skip]
Former-commit-id: a3946b9a1d1e129b202606172803daf93afb1fbe
2013-04-24 23:40:41 -07:00
John-David Dalton
499232f0e6 Use lodash.reduce in getGeometricMean of perf.js. [ci skip]
Former-commit-id: 7c5af9afcd56958e03f96d3f13f396894cf95f4b
2013-04-24 21:48:04 -07:00
John-David Dalton
17471a12d2 Add legacy build to the perf suite and ensure belt is assigned the correct value.
Former-commit-id: 568bbd8157155d76d406ae0e33fe71418f4632f4
2013-04-24 12:53:18 -07:00
John-David Dalton
de4b5eeda7 Allow external scripts to be specified and run in the perf suite.
Former-commit-id: 474f0a24d54c800830e2bcec98f6536a17a12bfb
2013-04-24 09:08:46 -07:00
John-David Dalton
d0a0193707 Add missing backticks in the docs. [ci skip]
Former-commit-id: 77e7f0275b820e02d52dea90181fc48ae0f650fe
2013-04-23 20:28:52 -07:00
John-David Dalton
5269a26b69 Merge pull request #253 from ajoslin/master
Fix missing backtick in uniq docs

Former-commit-id: 37b7007e2f2bc8e30f09fb04dc1a2a69c84795e2
2013-04-23 20:14:24 -07:00
Andy Joslin
8dc6ad587f Fix missing backtick in uniq docs
Former-commit-id: f43321cad9391c1b6167cf1ba7a7814e5128948c
2013-04-23 23:07:55 -04:00
John-David Dalton
757339c52d Add more builds to the drop down lists of the perf and test suite.
Former-commit-id: ab565c850a553e70137b064383813812eee4acce
2013-04-23 00:05:37 -07:00
John-David Dalton
6e289339d7 Ensure _.isArray fallback returns a boolean value.
Former-commit-id: c96fb8e95c40d546099796f8337db6d4d3d33aea
2013-04-22 23:56:36 -07:00
John-David Dalton
3ff0a44a1c Tweak perf suite to use geometric mean and remove tests with high variability.
Former-commit-id: ce4ff88ee6be007b761bcf991c59f30f28880973
2013-04-22 08:33:01 -07:00
John-David Dalton
0562228e9a Ensure the modern build version of _.isPlainObject doesn't error when passed an object created via Object.create. [closes #248]
Former-commit-id: d24641ed2562925fbbd2b64653e8e93ab1aa02bc
2013-04-20 19:40:48 -07:00
John-David Dalton
0b6993bb7c Fix _.debounce doc typo.
Former-commit-id: e2659ca38818d15a4080aa8dd605fed99a9eaa43
2013-04-19 09:07:55 -07:00
John-David Dalton
4a19d90d48 Add _.isObject to the isType benchmark.
Former-commit-id: 4e2a61fab31b506bac1d5ce7ad47f7bb2d9e11b6
2013-04-19 01:03:09 -07:00
John-David Dalton
038b1bcf7b Update _.debounce and _.throttle doc examples and rebuild.
Former-commit-id: fc094e857aeae0ab9581ad56dca894cc96bc7b2e
2013-04-19 01:02:36 -07:00
John-David Dalton
a707c2fe8e Ensure isType methods return false for subclassed values.
Former-commit-id: e300d12eb506c6ae4949bd37cf8eb33c3a4be2e1
2013-04-19 00:12:22 -07:00
John-David Dalton
3bb119f578 Update _.debounce and _.throttled docs. [ci skip]
Former-commit-id: 5a94c9d35069952c72303541409b88656deaa6a7
2013-04-17 22:40:49 -07:00
John-David Dalton
2a92600fa7 Add _.throttle unit test to test lastCalled.
Former-commit-id: 528ebd3514aacafcde55fad989f955f1fe403811
2013-04-17 21:36:37 -07:00
John-David Dalton
e80e1dab4d Add lodash underscore build tests for isType methods.
Former-commit-id: 80898964d46abebb3acf1e5e3586f4df700cd85b
2013-04-17 19:53:14 -07:00
John-David Dalton
45d59d75ba Remove stray fs.writeFileSync in build.js.
Former-commit-id: ba94c84ac7e3d2fe9be8e578035132c86cd59790
2013-04-17 19:52:49 -07:00
John-David Dalton
28cd4c3ee9 Update docs & builds.
Former-commit-id: 84fbc06fe506451e70fb76cef16cbc072468df99
2013-04-17 09:04:07 -07:00
John-David Dalton
e7c44274b0 Ensure _.debounce performs a trailing call, when both leading and trailing are true, only after the throttled function is called more than once. [closes #243]
Former-commit-id: 59ac6bc4ece373623f2bd753b662b8cc974cabc8
2013-04-17 08:43:18 -07:00
John-David Dalton
3b2e0e34ef Tweak release notes in README.md. [ci skip]
Former-commit-id: 316e7610ad00ca0b9d6a80ec44d38e1e739dcfd8
2013-04-17 08:07:28 -07:00
John-David Dalton
2276df07bd Bump to v1.2.0.
Former-commit-id: bb045c043e8f1bbf6cf7fbf463952daa1c24c855
2013-04-16 09:00:33 -07:00
John-David Dalton
758ff03520 Exclude bower.json from Jam and NPM packages.
Former-commit-id: 93ce567c4cfd70bcba58fff27d0dc6c6cca12b7d
2013-04-16 08:58:57 -07:00
John-David Dalton
c3ac172960 Simplify _.debounce and _.throttle for the underscore build.
Former-commit-id: 56dc526cf71130084651d06b8caadce573471131
2013-04-16 01:52:47 -07:00
John-David Dalton
562b4eb531 Ensure unit tests pass in Narwhal.
Former-commit-id: a86ce088a72ea0be7b31e4bccc51ce1286b9418b
2013-04-16 01:04:47 -07:00
John-David Dalton
b1f8e845df Make _.isArray consistent with the other isType methods.
Former-commit-id: adcf242ba7692c96fb8f570118acd7fd0a4602da
2013-04-15 23:58:33 -07:00
John-David Dalton
bda869ea54 Add more to the .gitattributes and tweak template built tests.
Former-commit-id: 7f6c20de3981edb4afeb848ef7721f0075c51b54
2013-04-14 22:05:44 -07:00
John-David Dalton
19cfbf082a Fix corrupt vendor/closure-compiler.tar.gz.
Former-commit-id: 118cbaae80df4751552569211cd7b6436fb6b30f
2013-04-14 15:51:43 -07:00
John-David Dalton
07078bdd1f Tweak how the build handles support property cleanup and ensure the mobile build fixes some old WebKit bugs.
Former-commit-id: 34c3aeb2b58cf83a5a141ffc423245922082a714
2013-04-14 14:02:11 -07:00
John-David Dalton
03657a98e1 Fix typo in no-dep test title.
Former-commit-id: 30d904ab630012c4ba1f07b2762a33d25151486b
2013-04-14 10:19:34 -07:00
John-David Dalton
b3f64abfae Update vendors.
Former-commit-id: 43e57a1a75bdd66e95d3608f180514cfe5e0075c
2013-04-14 01:18:54 -07:00
John-David Dalton
5d73c8f002 Add -n/--no-dep build option.
Former-commit-id: 57571d0df4e17402b9055bae5ccfbc2b94f03613
2013-04-14 00:43:39 -07:00
John-David Dalton
ba0882762d Reorganize build tests.
Former-commit-id: 6f6aea86b84f8b4936785653fbfaa3a146af66a2
2013-04-13 23:47:51 -07:00
John-David Dalton
bb8855b628 Don't include tests that error in the total score of the perf.js suite. [ci skip]
Former-commit-id: ea71d436ecec9297b2d991e9f17e3665a9e53d23
2013-04-13 16:58:28 -07:00
John-David Dalton
883d5917f5 Fix build.
Former-commit-id: 99b283a2f26a9f5973799ad6757bfdc57d0a0404
2013-04-13 14:22:29 -07:00
John-David Dalton
0275e99fe2 Remove the lodash csp build as the default modern build no longer uses compilation.
Former-commit-id: 97f0722cae9190fd11aa9f458c9c7bc281fd82e4
2013-04-13 14:19:41 -07:00
John-David Dalton
5d109077e5 Use _.cloneDeep in build/util.js.
Former-commit-id: 06094c21fe084192933665982edc9a4212016406
2013-04-13 11:13:26 -07:00
John-David Dalton
540851ab6a Reorganize build.js modifications and remove compilation from the lodash modern build.
Former-commit-id: af5d0500be9e11d108bf941604ce2316cbd8c4b5
2013-04-13 11:12:01 -07:00
John-David Dalton
6b920fa5e6 Don't prefix paths with drive letters with dots in mkdirpSync. [closes #238]
Former-commit-id: dd0c8d7b1906210e5f26604d4149ba542727c78d
2013-04-12 13:15:44 -07:00
John-David Dalton
d1498bb9fb Tweak lodash, shimIsPlainObject, shimKeys, and reduce function docs. [ci skip]
Former-commit-id: f24dd4de2a5a6c8103f26d000f1f16b5be3d8165
2013-04-10 20:38:26 -07:00
John-David Dalton
54eeef173a Force lf in .gitattributes.
Former-commit-id: 075ae2c3b8655159095cd7ea5d1b4aae7792f39f
2013-04-10 08:38:35 -07:00
John-David Dalton
723ddf8cda Cleanup ignore files and package files, adding bower.json.
Former-commit-id: eb817fdaa786f35a7906d56dc1bd7e4af1bee33a
2013-04-09 20:49:42 -07:00
John-David Dalton
9f12552907 Add _.once unit tests.
Former-commit-id: cb79b4a5e73ec0cb7bae959693bb14599277ffe0
2013-04-09 20:23:58 -07:00
John-David Dalton
a8b6fa413e Cleanup build files and add build/util.js.
Former-commit-id: 67e5564a17ec4a438e3d0768e8963a1384d4ce98
2013-04-09 20:23:16 -07:00
John-David Dalton
76aae8ce42 Escape path separator when using it as part of a regexp. [closes #233]
Former-commit-id: 95d28187ee573ecc26e44f30cb5fb7457877dd06
2013-04-09 08:35:05 -07:00
John-David Dalton
ad0c287053 Ensure _.merge passes the right arguments to the callback when comparing objects. [closes #231]
Former-commit-id: 7c1ff861f753d3a2bdf62a753c94df2052d03d78
2013-04-08 21:01:57 -07:00
John-David Dalton
4a11a3559d Fix typo in iteratorTemplate and _.template docs. [ci skip] [closes #232]
Former-commit-id: b7870c00a2ab788c233696d3ca40f8306ee7bc3a
2013-04-08 20:01:19 -07:00
John-David Dalton
1faa5a80e4 Add unit tests to ensure non-underscore builds may include _.chain and _.findWhere methods.
Former-commit-id: 91a4ea5114a45bc5038a37d7ff4ea4b6212182ca
2013-04-07 22:55:52 -07:00
John-David Dalton
f1d3df1ec0 Update builds and docs.
Former-commit-id: 6409ea5dfeb50e5e69c844847b57b4853b7622c3
2013-04-07 20:15:23 -07:00
John-David Dalton
e7c94d3351 Cleanup _.union.
Former-commit-id: ed927c495c93121371d852f5239a068967ec6a6c
2013-04-07 20:06:09 -07:00
John-David Dalton
954f76dcf5 Reduce package size. [closes #230]
Former-commit-id: 91e7564f799866453783c9319af405a7aea65b2c
2013-04-07 20:00:44 -07:00
John-David Dalton
43037c0ff9 Ensure "Arrays" and "Objects" methods work with arguments objects and arrays respectively.
Former-commit-id: aebb7a0004d804b7fd43d73e24d1da28c67f4059
2013-04-07 15:53:52 -07:00
John-David Dalton
93df901b71 Switch to using useLodashMethod in build.js and allow non-underscore builds to include _.chain and _.findWhere.
Former-commit-id: 6c99623286059caf7a74dd4a19394da3562d7932
2013-04-07 08:56:43 -07:00
John-David Dalton
e97e645eda Use nativeSlice when possible and adjust largeArraySize to account for the recent cachedContains tweaks.
Former-commit-id: 9fe4dc10c74fb7a4b8e5cff434a4146d274f15d4
2013-04-06 01:26:21 -07:00
John-David Dalton
4a03ba3874 Add more _.debounce and _.throttle tests.
Former-commit-id: db3cb30a8eac82850a056f85d0c363e752d10027
2013-04-05 22:14:44 -07:00
John-David Dalton
7f637e4acc Update builds, vendors, and docs.
Former-commit-id: 67aec5a64de61ac2b8948b31315395a727c10071
2013-04-05 09:04:01 -07:00
John-David Dalton
8f3eeefafd Should ensure callback is a function in _.isEqual.
Former-commit-id: b53f8e0ab1bafff395ff19cd069940ba6c37eb5f
2013-04-05 08:59:09 -07:00
John-David Dalton
5dc550a0ce Cleanup doc examples for _.find and _.findKey.
Former-commit-id: 198149aa9caf277b2a819ee5c06c73e38fa6beae
2013-04-05 08:35:07 -07:00
John-David Dalton
6fe322da27 Add an options object argument to _.debounce and _.throttle. [closes #222]
Former-commit-id: d5eb3bc21d4a5c6d25314153f98d43a3d11eb4fa
2013-04-04 08:52:42 -07:00
John-David Dalton
3cfe7c9a56 Reduce --time-limit in .travis.yml.
Former-commit-id: 8fcd6b73eafbbb7c23e29cd60ee75fc83577673b
2013-04-03 23:04:47 -07:00
John-David Dalton
be7d5917cb Update vendor/underscore.
Former-commit-id: d1cca79a4f6732ee8cd48dd4574041b4ebe19edf
2013-04-02 22:38:48 -07:00
John-David Dalton
ca28aa6ebd Tweak argument names and docs.
Former-commit-id: 38d7f9cc7dea76e038ede22b6c6b4e779e28237b
2013-04-02 22:37:40 -07:00
John-David Dalton
e76360c1b5 Add _.unzip. [closes #225]
Former-commit-id: 4b2c7fc068fd430f3d78de850a5f7670fd0e1a4e
2013-04-02 22:34:15 -07:00
John-David Dalton
265ca8ba67 Update docs and builds.
Former-commit-id: 6bb15d3ad0d4d189ad5e27e1dd79d2a070a568b2
2013-04-02 00:37:19 -07:00
John-David Dalton
b0d942d0ec Ensure _.merge applies a given callback to nested properties. [closes #227]
Former-commit-id: 1a58c178e0ecb9c50512f221b4aed82762709066
2013-04-01 23:54:09 -07:00
John-David Dalton
6c25905ae4 Add keyPrefix to avoid issues with __proto__. [closes #226]
Former-commit-id: 55dee782acdd5e28229b1fcb7587424d3fdfd445
2013-04-01 22:32:50 -07:00
John-David Dalton
80a39393fe Use toString.bind instead of slice.bind in nativeBind assignment.
Former-commit-id: f08d16b1fa8eb98cf848daff96f7449c0dc51c90
2013-03-30 22:07:24 -07:00
John-David Dalton
d4aed71abf Make Lo-Dash work with Browserify. [closes #223]
Former-commit-id: 33b53dd075d6c4ed9682881af463bdd3c241ca44
2013-03-29 19:04:20 -07:00
John-David Dalton
ebb72bb992 Remove useUnderscoreClone check from the underscore build _.toArray replacement.
Former-commit-id: 62777dbc108689aa7bd0e258e64341aad8fa6cb3
2013-03-27 19:43:37 -07:00
John-David Dalton
8ffcd30b4d Simplify license in package.json. [ci skip]
Former-commit-id: 1915ba400e5f45713a018d26081bb6666fb6683a
2013-03-27 19:37:56 -07:00
John-David Dalton
06804c37e2 Remove travis-ci badge from README.md.
Former-commit-id: f978ab7e86a15b4f599c3f20afd8e1b8cfe1183a
2013-03-27 09:47:27 -07:00
John-David Dalton
1acca0278c Bump to v1.1.1.
Former-commit-id: 1eaebbcedcd925ef2994d8e9a2c9b00c6a23c4b3
2013-03-27 08:03:09 -07:00
John-David Dalton
639c8d4171 Add _.forEach thisArg unit test to test.js.
Former-commit-id: b3d16d90789e76df778ac3457f68fdcbc3f6f4ad
2013-03-27 07:55:19 -07:00
John-David Dalton
d77c9d3fca Ensure underscore build internal forOwn will accept a thisArg argument. [closes #220].
Former-commit-id: a7818db29e81b64556232bfe44b2e1275d3dada1
2013-03-27 07:29:27 -07:00
John-David Dalton
2c7cc2c191 Update vendor/tar for Node v0.10.0+. [closes #218]
Former-commit-id: 9b35d27127dbd85dd56808e50bf255bbd3413c62
2013-03-26 20:15:06 -07:00
John-David Dalton
d7c74b8004 Bump to v1.1.0.
Former-commit-id: 7d103159263b2ad339cd1e2dba90df0d6c42a61d
2013-03-26 00:18:12 -07:00
John-David Dalton
aaa8003418 Update Benchmark.js to work in PhantomJS.
Former-commit-id: 9145f027f58a3c9f0c8b57b6e340f500ba4c7131
2013-03-25 23:23:15 -07:00
John-David Dalton
86890b13c6 Ensure consistent unit test count depending on build.
Former-commit-id: 390020635374f6fb1165a6adef0648847ec9cb9e
2013-03-25 22:12:25 -07:00
John-David Dalton
39158b0eb6 Add missing semicolons. [ci skip]
Former-commit-id: 7c9c39e84600f41d1a4f94224dfe5b2be8791d20
2013-03-25 20:37:54 -07:00
John-David Dalton
87f1d55bc2 Update docs and builds.
Former-commit-id: 21791e052114af5907d76251c58c3ba2ca138873
2013-03-25 08:35:20 -07:00
John-David Dalton
14343b5410 Make object iteration that uses _.keys work correctly in IE < 9 and _.isPlainObject work correctly in IE < 8.
Former-commit-id: ad9a3c36acb38e36cd21fe82a29b7e65a767e049
2013-03-25 08:22:40 -07:00
John-David Dalton
ffdac30b3c Make _.toArray work in legacy build.
Former-commit-id: 36866e65670f563b587af51168db9f95f01ed248
2013-03-25 08:21:43 -07:00
John-David Dalton
244c8dc391 Add dist/lodash.backbone.js. [ci skip]
Former-commit-id: c9abf959bbc0e30dd5da728e3c7903905d4e751a
2013-03-24 00:11:57 -07:00
John-David Dalton
e593344461 Add copyright header to minified Underscore file. [ci skip]
Former-commit-id: dce520ee6e1e2a175e4671ddcf7c2408efdff69f
2013-03-23 23:51:42 -07:00
John-David Dalton
74c46f6e93 Reduce the lodash underscore build.
Former-commit-id: 2f928d053faf4b8e45d5ef26e2697c25426b7a90
2013-03-23 23:46:40 -07:00
John-David Dalton
bbfd8aa249 Update Backbone method dependencies.
Former-commit-id: 031a5f31c289ad32c8ef0d30272a02c756a341ce
2013-03-23 23:24:25 -07:00
John-David Dalton
2705a488ad Update vendors.
Former-commit-id: b1b94d80548df89b3ce0ddd71b1e938f31666052
2013-03-23 23:23:57 -07:00
John-David Dalton
850c253e08 Use _.contains instead of indexOf in build/test files.
Former-commit-id: b0947f4f24c23e011f3ac781d400ee3ebbc94609
2013-03-23 22:49:28 -07:00
John-David Dalton
80e0e3fcd7 Optimize _.pluck for modern environments.
Former-commit-id: 1a6bbb9866b8ac20faaa707be5f33814579e1df8
2013-03-23 12:21:43 -07:00
John-David Dalton
2cc2d696f1 _.bind should throw a TypeError if func is not a function. [closes #213]
Former-commit-id: b6035736d9cb042b7fa4a9d0b7b4d9c6cb0ea4f8
2013-03-23 09:00:24 -07:00
John-David Dalton
8a83a6b5be Add AMD exports to the dist/lodash.underscore.js builds. [closes #214]
Former-commit-id: 4635d0c4f1ff315b08fb459ab64ef2b9ac6cbaa8
2013-03-23 00:40:06 -07:00
John-David Dalton
002d5338a0 Correct build.
Former-commit-id: 360983e61c6c6460f344d53dbda5c68e21530e32
2013-03-23 00:36:12 -07:00
John-David Dalton
743aa472f0 Ensure _.keys use in createIterator is consistent per build.
Former-commit-id: a4e0aef177d4d1c26ed5ce088574b591a6666d0d
2013-03-19 23:50:56 -07:00
John-David Dalton
ba85d5d351 Remove the _.isEqual dependency from createCallback in the underscore build and avoid potentially unnecessary string coercion in the underscore build _.isEqual method.
Former-commit-id: 1e8ce4fd9a35ad36c2b24457e519cb587c49c93b
2013-03-18 03:08:12 -06:00
John-David Dalton
4e2ef908dc Limit the category build option to adding only those methods available for specific builds (i.e. underscore and backbone builds).
Former-commit-id: 63a5509cd953b20376723335d42fb5a136eb3a5c
2013-03-18 02:43:02 -06:00
John-David Dalton
f5dd05ba8e Fix _.findIndex and _.findKey doc typos.
Former-commit-id: 7d4ae05db116e324b4b143e77bca67787476030f
2013-03-18 01:49:36 -06:00
John-David Dalton
17eda2a4cc Rebuild files and docs.
Former-commit-id: a3948db17af507d28d568d07d3e1a2afbd2c70ad
2013-03-17 19:43:23 -05:00
John-David Dalton
d219c6e019 Avoid creating intermediate strings when not needed.
Former-commit-id: 1e7457ff131f867adbf799e20af11cf714f5da7e
2013-03-17 19:31:37 -05:00
John-David Dalton
2dc539747b Add _.findIndex and _.findKey. [closes #199]
Former-commit-id: 5ac98b559e074082d4019cd30c27bface063f9c9
2013-03-17 19:28:46 -05:00
John-David Dalton
e941de50e8 Add fast path for callback back to _.forEach and ensure createCallback is called from lodash.
Former-commit-id: 5d589344897878d529d59ebba987a163b9704b37
2013-03-15 06:34:13 -07:00
John-David Dalton
63052257a2 Adjust large array size for _.difference and cleanup large array optimization code.
Former-commit-id: c3623ce2e0639a9e98d77e36e4dae51063c76e92
2013-03-14 14:38:48 -07:00
John-David Dalton
ac5d2a714e Make modern build pass unit tests again.
Former-commit-id: 6269bdbaa7cd96217568504921da097c2352cef8
2013-03-13 10:13:59 -07:00
John-David Dalton
59f78c16b1 Remove internal each for modern and underscore builds.
Former-commit-id: d090f9d0a21f8086d9e34d1171dc046a93327bb8
2013-03-13 07:56:15 -07:00
John-David Dalton
3f7f8133df Make pref.'s work for various lodash builds.
Former-commit-id: cdde1730e7b402c1f6475fc796af683faf6a8e88
2013-03-13 07:54:46 -07:00
John-David Dalton
fef5e1ce2c Simplify "Collections" methods for the modern and underscore builds.
Former-commit-id: 4ee5052537f7aed6816a886bee6da4e75c17099c
2013-03-12 07:32:02 -07:00
John-David Dalton
0b97b3864f Add isHostType to perf.js.
Former-commit-id: 36a1818a5272966ac9bd7f2394f2bd466fe6a4d4
2013-03-11 01:10:31 -07:00
John-David Dalton
3d1330c85d Remove assignment to undeclared variable in perf.js.
Former-commit-id: 6c8c6bd2db9a3ab137f6a705e2dabb2c07ccdc34
2013-03-10 23:51:17 -07:00
John-David Dalton
041c0cc322 Make pref.js work in Rhino, Narwhal, and Ringo again.
Former-commit-id: 1969153262cbc3ac134018aa021de92a86d6d7ef
2013-03-10 23:40:33 -07:00
John-David Dalton
e72712640c Allow lodash underscore plus=cloneDeep without also needing to include clone.
Former-commit-id: 90f89296ab47eff635c3c30ed34466e347ea13d3
2013-03-10 22:32:57 -07:00
John-David Dalton
6830195127 Cleanup build and docs.
Former-commit-id: 7e0719bb11e3f22ab09d51b52ab930699cbecf17
2013-03-10 11:05:07 -07:00
John-David Dalton
f9b5d6644d Ensure _.isPlainObject returns false for objects without a [[Class]] of "Object".
Former-commit-id: ce034f55733cd1929f09bf80e4a461c6e1502d1b
2013-03-10 04:27:45 -07:00
John-David Dalton
40f9eeda36 Remove reLeadingZeros from lodash underscore build.
Former-commit-id: 289d53be5b6af17ace4118ea0e6d9784667d09d3
2013-03-10 03:28:59 -07:00
John-David Dalton
0fa0b0b1ea Remove Closure Compiler escape from eachIteratorOptions.
Former-commit-id: 532e73f570bed2bc5941d0a6d1cb13618da0441b
2013-03-10 00:55:50 -08:00
John-David Dalton
ff0b23f200 Update vendor/platform.js again.
Former-commit-id: 39d31dcc7ef75a2bc62d9147f39c7adab2f2369f
2013-03-10 00:43:31 -08:00
John-David Dalton
5456d4081b Move regexp used in _.parseInt to outside the method.
Former-commit-id: 5b93dcdff39089ed5467ba52040f2e352716c49e
2013-03-10 00:30:58 -08:00
John-David Dalton
8948fae780 Update vendor/platform.js but remove it from test.'s.
Former-commit-id: 4f72d2b4454e7de42754c98c7b17f47f1f30718c
2013-03-09 23:52:20 -08:00
John-David Dalton
ee4542a699 Optimize lodash function to avoid slow path for arrays.
Former-commit-id: 24e2c4ac2525ae38e214fdb0ea8e3ab664d784b7
2013-03-09 18:24:29 -08:00
John-David Dalton
31e4e631f9 Cleanup test.js and perf.js and add _(array) benchmark.
Former-commit-id: bcd120c9ee332db39c7b637894751f2861bac069
2013-03-09 18:15:32 -08:00
John-David Dalton
cbf20b3271 Update vendors.
Former-commit-id: 7b8fe528a3e3887321505cf68b61cc3d774ef60b
2013-03-09 17:15:35 -08:00
John-David Dalton
a65fd50723 Add note to _.createCallback docs.
Former-commit-id: 0e5dfa9b4dc9aeea1c821b47d2f3d755678ea1aa
2013-03-09 13:32:15 -08:00
John-David Dalton
63a6aac2d8 Expanded _.createCallback and _.after docs and ensure _.times calls lodash.createCallback.
Former-commit-id: 2d6a480a5ee449295ec40acd5e8bbef6fe955473
2013-03-09 12:22:19 -08:00
John-David Dalton
afde4804c9 Fix build test and add extra "Arrays" and "Functions" method category tests.
Former-commit-id: 924e034ec6ec8d05d573dff969f064f1bb32ea33
2013-03-09 01:30:45 -08:00
John-David Dalton
bc8ec9cd3e Make _.times use _.createCallback and rebuild docs and dist/builds.
Former-commit-id: 62393b4833b64cea226abdbb6f1488369de46677
2013-03-09 01:29:42 -08:00
John-David Dalton
b63ab18e29 Rebuild docs and custom builds.
Former-commit-id: 6fea0c6b4c7bb28ee3d55b4af27874e40cd9813f
2013-03-08 22:57:20 -08:00
John-David Dalton
e7325f58c3 Correct unit test for rhino -require support.
Former-commit-id: 83c076f881daccd18d7e11006e3fab75ecea27ea
2013-03-08 09:00:20 -08:00
John-David Dalton
7b35bb8c96 Correct support.nonEnumArgs.
Former-commit-id: 69b09827404bae997846daa681d96d8c9264af78
2013-03-08 08:56:30 -08:00
John-David Dalton
e84671ce5d Correct _.result docs and cleanup _.support docs.
Former-commit-id: 6edb1956885d61408188d2809eeacd3aa975f283
2013-03-08 08:32:50 -08:00
John-David Dalton
b01d50fe05 Add _.support unit tests and remove _.support from the lodash underscore build.
Former-commit-id: 986c02d5363329f16cde720430b26edb6bc865f0
2013-03-08 00:53:27 -08:00
John-David Dalton
3f163051b1 Avoid hardcoded indents in build.js.
Former-commit-id: ece1e6a32f5d308e4674774f8875ee34c06b4d43
2013-03-08 00:20:07 -08:00
John-David Dalton
4f1d03e1d4 Cleanup the inlined iteratorTemplate.
Former-commit-id: 0964f0fda4a21a2009ebfd022e9d9c33bd78bbee
2013-03-08 00:03:57 -08:00
John-David Dalton
fc39e4a225 Fix build.
Former-commit-id: 17c97c9e2cad21ea6eb0af3d7b93ebb5caa89720
2013-03-07 23:20:25 -08:00
John-David Dalton
bf88ad7fc8 Update builds and docs.
Former-commit-id: 104839a253a7f3711dad357899128ccf839b01cf
2013-03-07 23:09:35 -08:00
John-David Dalton
11ba02067e Ensure _.times doesn't error when passed negative numbers.
Former-commit-id: 5d694743fbda0f477250fe3c90cf29168834ac6f
2013-03-07 09:05:27 -08:00
John-David Dalton
952afa05ce Add the _.support object.
Former-commit-id: b81ec9e5dbd41c729b3ad71187cb5e77e0755b9f
2013-03-07 09:02:44 -08:00
John-David Dalton
3131cc3160 Replace createWrapper references with new lodashWrapper references and refine Closure Compiler fix.
Former-commit-id: 552b98a4e9ccd42a00a980dd850e3b154cb7cd32
2013-03-05 02:05:44 -08:00
John-David Dalton
792f768479 Update vendor/requirejs.
Former-commit-id: 90bd5bc12f9159b65d485c540474404a61cad7ef
2013-03-05 00:22:03 -08:00
John-David Dalton
ff312a15dd Update minifiers, fix new Closure Compiler issue, and re-minify builds.
Former-commit-id: fb9993cb39c5c43d430e038253ab717ceb4c705f
2013-03-05 00:21:41 -08:00
John-David Dalton
36207c9a98 Modify the Lo-Dash description.
Former-commit-id: 910b51eb69b12df04345f8e97d7c288aee1525f7
2013-03-04 22:15:29 -08:00
John-David Dalton
b92105e888 Simplify the lodash wrapper.
Former-commit-id: 389c9ca8aa8414b04f7f99caf955862a1925d42e
2013-03-04 22:03:34 -08:00
John-David Dalton
35bd7c55d0 Move lodash instance check up in lodash function and tweak chaining benchmark.
Former-commit-id: 799ae05e5180ee87bb2a5249be3e442ed0425ef7
2013-03-04 01:40:55 -08:00
John-David Dalton
9f19c302d8 Cleanup _.bind benchmarks and add chaining benchmarks. [ci skip]
Former-commit-id: 9198c34679709610a440f71856a3869eaa83090e
2013-03-04 00:43:02 -08:00
John-David Dalton
87b1ac776f Remove extraneous spaces from non-minified builds.
Former-commit-id: ec8e18d00884cab96031c061ed32002f41edc0e5
2013-03-03 23:29:54 -08:00
John-David Dalton
41e401b05e Add callback and thisArg arguments to _.flatten. [closes #204]
Former-commit-id: 166d6af35c3905c87498ee74abd143f6fdba451d
2013-03-03 23:26:28 -08:00
John-David Dalton
d88da3589d Update docs and builds.
Former-commit-id: 1f7bfb21276f1c871f4e6ce8a6bf168784509994
2013-03-03 20:12:06 -08:00
John-David Dalton
9638c393bb Expose createCallback.
Former-commit-id: d0c0b02a68e33a2bf220a1605a6fe62eb4a11a83
2013-03-03 19:46:27 -08:00
John-David Dalton
9961ddc2a8 Ensure callback shorthands work with _.uniq. [\ht @jden, @motowilliams]
Former-commit-id: d9a0e688414edc4167b5f8e9ca123bab587f8264
2013-03-03 14:40:15 -08:00
John-David Dalton
2d40dfd8d4 Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: e3d0b12d132d3eee4490575e5b18beb8faaf69c6
2013-03-03 13:46:57 -08:00
John-David Dalton
99c9bdf71d Fix misspellings in the docs.
Former-commit-id: 5c318a9fd6b624dbd9befb314644cb7967dc4fe9
2013-03-03 13:46:45 -08:00
John-David Dalton
4fcd25ec88 Merge pull request #202 from drewish/master
Fixing some misspellings.

Former-commit-id: 5315bcc098e909972d93312cf8c14889d17efef0
2013-03-03 13:44:10 -08:00
John-David Dalton
440218da67 Fix build.
Former-commit-id: 9d57351081959276735f8f3df81ecde71c4b9344
2013-03-03 13:36:10 -08:00
andrew morton
fefdb9fc8d Fix some misspellings in the docs.
Former-commit-id: 38ec1d19f1e5ea1fbb05306e5b5cfc9fac550562
2013-03-03 13:08:01 -08:00
John-David Dalton
21a0eff593 Fix build, and rebuild files & docs.
Former-commit-id: af57dd1de6b20e93caa79f05cb9b43647a1de578
2013-03-03 01:37:33 -08:00
John-David Dalton
8825a094ae Use native Object.create when available, optimize the creation of lodash instances, and ensure methods like forEach return the existing wrapper object when chaining, instead of creating a new one.
Former-commit-id: fa9ec371ba23ce8c35c15a66dd9b1f09f183b3a9
2013-03-03 01:21:19 -08:00
John-David Dalton
aa49ce5c56 Tweak platform placement in test.js and runner.
Former-commit-id: a261884dfda6f046431007bef6d9fe109fb1d887
2013-03-02 20:48:42 -08:00
John-David Dalton
1522d3385d Rename _.object to _.zipObject and make _.object an alias of _.zipObject.
Former-commit-id: 7ae3c9d8be32b1430945ffeafc20c740f1d7f409
2013-03-02 20:48:04 -08:00
John-David Dalton
510c41440a Rebuild docs and files.
Former-commit-id: ae6f8f4117b7baab2a47e7c8302edc1fa8dfdb07
2013-03-01 00:39:02 -08:00
John-David Dalton
aa0c34ba1c If _.cloneDeep callback result is not undefined then return the result instead of going deeper.
Former-commit-id: 6a0588dbe158211061ec88badf4d4e3b89b02aa5
2013-03-01 00:36:19 -08:00
John-David Dalton
af87e6ef62 Correct _.cloneDeep docs.
Former-commit-id: 93849f67b49fbba0d91ea8693a4d0b324f55352c
2013-03-01 00:24:48 -08:00
John-David Dalton
30291ce6e6 Make setting context work in older ES3 environments that will use values, named after built-in constructors, for the creation of literals.
Former-commit-id: 981139db2a30f9c69d3e616021f697b8403dee26
2013-02-28 20:34:14 -08:00
John-David Dalton
890c2eb564 Remove unneeded contextProp value.
Former-commit-id: f73bf05faece643fea8b1b67edfa240ba47beec5
2013-02-28 03:26:02 -08:00
John-David Dalton
67a269b89c Update builds and docs.
Former-commit-id: 57709d874ed5b6855daf536c2a0977738665c3c1
2013-02-28 02:53:09 -08:00
John-David Dalton
4b9ee81a78 Adjust build for renamed variables and _.runInContext dependencies, and cleanup build.js and build/pre-compile.js.
Former-commit-id: 0d813bc111617e9b8cd922b505ec8c90ce09063b
2013-02-28 02:51:43 -08:00
John-David Dalton
4343f4d229 Tweak _.parseInt docs.
Former-commit-id: 960256bab36fbecb8aa06679c10d8033e2013de2
2013-02-28 02:49:54 -08:00
John-David Dalton
2162baa6c0 Add contextProps to make _.runInContext work in older IEs.
Former-commit-id: 208f25296d35ed29a283fb1598de0052a5a2703d
2013-02-28 02:49:26 -08:00
John-David Dalton
7e7f792710 Add _.parseInt and _.runInContext to the underscore build tests.
Former-commit-id: a5f8d936e912d0bd53f689d23c3393731fe97f47
2013-02-28 02:48:11 -08:00
John-David Dalton
1bbd9e24b0 Fix and cleanup [[DontEnum]] unit test.
Former-commit-id: 9e47eeb03c88a52d2e1d6dd2c0373c2df2f576fe
2013-02-28 02:47:14 -08:00
John-David Dalton
6435aaa64f Ensure the exports object is not a DOM element. [closes #197]
Former-commit-id: 3adb679f7f4d7a64e0bc37ed80a443c211a17510
2013-02-27 09:10:13 -08:00
John-David Dalton
999aae0a33 Add _.parseInt.
Former-commit-id: 0c0f10af3dc50a4d1b684523f19d02e423d738f5
2013-02-27 08:54:15 -08:00
John-David Dalton
ba795639b4 Fix iife build tests.
Former-commit-id: 0fa103c21297672c018d66fba16ef376d3599b41
2013-02-27 02:17:19 -08:00
John-David Dalton
4c4b205721 Use setImmediate reference of the context object.
Former-commit-id: 28c11df25ceb1a414caaa61eaee54fae27a2ff03
2013-02-27 01:15:59 -08:00
John-David Dalton
b3c550b7c0 Make _.runInContext not require a fully populated context object.
Former-commit-id: 11bf3cad2bfd3e922e7701eb7b0f48028f522ba6
2013-02-27 01:03:45 -08:00
John-David Dalton
eb8953e784 Remove isJSC in mobile and underscore builds. [closes #196]
Former-commit-id: 77ddbbcfcf17b5074a7fba137dc426f20a6ab5dd
2013-02-26 21:08:35 -08:00
John-David Dalton
b88b292d5d Fix lodash.underscore usage example in README.md. [ci skip] [closes #194]
Former-commit-id: 5df59e98d58dc13eeff1ff9a4a76c7ef6811a0a7
2013-02-25 21:59:05 -08:00
John-David Dalton
5f42c3b319 Add rhino -require to the run-test.sh.
Former-commit-id: 105f76b6058b8a1493d1a56716df7f22391e4bdd
2013-02-24 22:51:11 -08:00
John-David Dalton
5b27ae0371 Cleanup comments in various source files.
Former-commit-id: 02e8223692e4678e78a0eadc4ffaed3e27b5a49f
2013-02-24 22:50:10 -08:00
John-David Dalton
f26b1da1b5 Simplify build/mkdirp-sync.js.
Former-commit-id: b49bbea9e565dbf1d23f601af74443b33fe9fc7d
2013-02-24 17:49:47 -08:00
John-David Dalton
7a853e2dcb Update vendors.
Former-commit-id: 92fe8e8ceacd0993fadd35c5feffddcbe319d6c7
2013-02-24 15:35:56 -08:00
John-David Dalton
9b22748bd0 Cleanup perf/perf.js and test/test.js.
Former-commit-id: fba43c75aa25227e771a3cdd0cce0ee8ee9cdba6
2013-02-24 15:25:56 -08:00
John-David Dalton
c1e9dd3373 Ensure relative paths work with --output and template=… build options.
Former-commit-id: 2447466a006dc8d968969bba70a0e44f91610154
2013-02-24 11:40:56 -08:00
John-David Dalton
8cbbc47043 Ensure all temp folders made during the --output build tests are removed.
Former-commit-id: d5c98deebd879f594aac73d4b835c97516ee4e89
2013-02-24 09:48:33 -08:00
John-David Dalton
81b3567133 Add path.sep for older versions of Node.js.
Former-commit-id: 1a058681fc5c6aae426902a7d6dd76b3a5849837
2013-02-24 09:29:23 -08:00
John-David Dalton
fc6568f390 Cleanup build tests and inline _.mixin when it's removed to preserve chaining behavior.
Former-commit-id: ed24a9acfabb70fb7093479a5c3484d966cbc5bb
2013-02-24 03:05:49 -08:00
John-David Dalton
8e30fe2946 Fix build.
Former-commit-id: 41b9584b63962a71f146c61fda056d15a2be4e14
2013-02-24 01:54:35 -08:00
John-David Dalton
6c811a3261 Move mkdir -p functionality to its own module and cleanup --output build tests.
Former-commit-id: b7ea2a41c60357e780e10bd3d665db3d50e7f044
2013-02-24 01:24:47 -08:00
John-David Dalton
afbe5aa540 Merge pull request #192 from phated/master
Implement `mkdir -p` for `--output` build option.

Former-commit-id: cb7a6753d15f495a1ab8b0016edd34d5626727de
2013-02-23 22:55:18 -08:00
John-David Dalton
324afd2d6c Add doc not for chaining support in custom builds and tweak support rules in build.js. [closes #193]
Former-commit-id: c87f6bfe28f00d9228f4112463635d555e138a41
2013-02-23 22:52:21 -08:00
John-David Dalton
58d94ef61e Clarify docs for callback use in _.first, _.initial, _.last, and _.rest. [ci skip] [closes #189]
Former-commit-id: 12ee5f957fa67e93e40630e627d90b9aaa7eff37
2013-02-23 21:49:02 -08:00
John-David Dalton
39974b0982 Make optionsToArray remove falsey values.
Former-commit-id: 5c82f8ab92f67bd35030320fae06811dbb8f442b
2013-02-23 20:30:14 -08:00
John-David Dalton
323d7306e2 Add QUnit.config.noglobals to build tests.
Former-commit-id: 4519f5322a51632ce23dc4c574365472338a18e0
2013-02-23 20:29:23 -08:00
John-David Dalton
251e228ce4 Remove isFunction fallback from modern builds
Former-commit-id: 21f51b3041b60136bb07ca775abfe91df7687639
2013-02-23 19:07:19 -08:00
Blaine Bublitz
a99f3f217a really basic version of mkdir -p for -o option
Former-commit-id: 0fb635efd2043ee901c4f4eae7c6670d5b44a068
2013-02-23 19:37:46 -07:00
John-David Dalton
e2acbee113 Adjust iife build test and add strict build tests.
Former-commit-id: 1422311e7c7106e7def75b7b75800975c59127ff
2013-02-23 16:19:52 -08:00
John-David Dalton
37b69eddf2 Tweak detection of the Node.js executable in command-line arguments.
Former-commit-id: 74047748237f8defe36aea2a27e54ac72a648c93
2013-02-23 15:58:43 -08:00
John-David Dalton
f0322e6f2c Rebuild files, adding lodash.legacy and lodash.mobile builds, and update docs. [closes #190]
Former-commit-id: 6167b81d8baf1e491b8cbb3e3c68c01ae6ddd865
2013-02-23 14:56:50 -08:00
John-David Dalton
756587d080 Remove undefined from the IIFE to allow easier customizations with the iife build option.
Former-commit-id: a496b1fba74fdab3b2819d27b769371f73364684
2013-02-23 14:08:48 -08:00
John-David Dalton
1ad2c92324 Fix lodash underscore build.
Former-commit-id: 017208b28865b10b068ba4ae5e4a7baa9c01a80f
2013-02-22 03:33:15 -08:00
John-David Dalton
e5433adf78 Rebuild files and docs.
Former-commit-id: 1a834e5811525e9fb99def149cb4c455b3d4367d
2013-02-22 02:02:51 -08:00
John-David Dalton
ed765f75d8 Fix alais -> alias typo in README.md.
Former-commit-id: 7c919c834f729d03d26c0b3eb14203585099333b
2013-02-22 02:01:36 -08:00
John-David Dalton
4136f1b377 Fix build indenting.
Former-commit-id: 87a7793799ee3ed28fe67cb894aa2876be103c50
2013-02-22 02:00:42 -08:00
John-David Dalton
860339b90e Fix failing tests in Narwhal.
Former-commit-id: 986262a14784d94f616663724e52d11a0e11a56d
2013-02-21 23:33:23 -08:00
John-David Dalton
03254a0c0f Make isKeysFast true for Firefox too.
Former-commit-id: cf14455782375eccc4c32c5bfca41c3f918db2e8
2013-02-21 23:19:26 -08:00
John-David Dalton
a76081c979 Add require call to compiled templates.
Former-commit-id: 3d97f6cc71a3c7e6ac9b12cc876ace4790efbae8
2013-02-21 22:08:09 -08:00
John-David Dalton
71a207079f Update vendors.
Former-commit-id: 25cce48fee2dfb010eb6a9c2e4235890f20b19aa
2013-02-21 08:40:09 -08:00
John-David Dalton
f6e724c4c5 Update build to work with _.runInContext.
Former-commit-id: da4a9da0e2c74bbcbd142c077794486d0ac45835
2013-02-21 08:39:25 -08:00
John-David Dalton
4251b36b25 Add _.runInContext.
Former-commit-id: f427f7d4704fb1b6af578b095e417ee25ca029e7
2013-02-21 00:47:19 -08:00
John-David Dalton
b8f39cbfdf Cleanup _.template comments.
Former-commit-id: cff1c86d3a7e9c5ee32e00762ce522690726ef09
2013-02-19 08:08:31 -08:00
John-David Dalton
088c621862 Tweak _.defer and _.delay docs. [ci skip]
Former-commit-id: 921eec8f2e8e7701f14095d221a5e72a2c45f470
2013-02-19 01:53:21 -08:00
John-David Dalton
2459a53350 Bump to v1.0.1.
Former-commit-id: b2536f9a226c7418ad3aaa7b5fb88282b77d20e5
2013-02-18 02:13:39 -08:00
John-David Dalton
7093e9c0d4 Add PhantomJS not to CONTRIBUTING.md.
Former-commit-id: e7c81af0fb6e1ede8f89d50ffdc5ec671e124252
2013-02-17 23:54:19 -08:00
John-David Dalton
4bc49978d1 Avoid using setImmediate in IE because it cannot be cleared with clearTimeout.
Former-commit-id: 836d49c6440b2313f1885456645ed4a00ab82ae6
2013-02-17 23:45:26 -08:00
John-David Dalton
96bac9c149 Add legacy underscore build test.
Former-commit-id: f56e254f7c2fb4c4adeac16b56c789dd8af8a986
2013-02-17 20:44:28 -08:00
John-David Dalton
8dcc15f4d3 Ensure setImmediate is not minified by the Closure Compiler.
Former-commit-id: 74c121d45854dba2aaaa65558c3e1ca8effd3096
2013-02-17 18:15:41 -08:00
John-David Dalton
8183740c04 Update vendors.
Former-commit-id: 6ab66f9ea6fd881e8c5ed18e84b9a24656496e10
2013-02-17 16:38:23 -08:00
John-David Dalton
25e4231d7b Update _.defer build dependencies.
Former-commit-id: 159f541373b01f259c9509e16c3fc0c2018e6d51
2013-02-17 16:13:42 -08:00
John-David Dalton
3ed9e0e905 Add support for specifying a source map URL in the to the -p/--source-map build options.
Former-commit-id: 2098da69d7902497e2e67210d778b8f99a5ff8f0
2013-02-17 16:02:53 -08:00
John-David Dalton
45bec0c440 Remove setImmediate use in the lodash legacy build and cleanup patterns.
Former-commit-id: a3c942e3545c278b7cac2112ed1a5417212048d9
2013-02-17 14:30:22 -08:00
John-David Dalton
5133e39d45 Make _.defer use setImmediate if available.
Former-commit-id: b3898d78725a4b203856916b1b071ab9c6f40b83
2013-02-17 14:29:40 -08:00
John-David Dalton
cb3b4e446e Ensure _.isEqual returns boolean values even if callback doesn't.
Former-commit-id: b2c31ee1711a436e5400c8e80c9f54a9680301b7
2013-02-17 10:41:05 -08:00
John-David Dalton
9829a2f3b4 Rebuild files.
Former-commit-id: c381088f55093f25067d0284319975c868e6e3bf
2013-02-16 23:18:05 -08:00
John-David Dalton
7eadf11145 Optimize the ES6 template delimiter regexp and regexp to detect strings.
Former-commit-id: 6177f2b32f27515cf8edcac6036d0adb58ebfcd0
2013-02-16 23:17:17 -08:00
John-David Dalton
2a2bc44f43 Make _.where search arrays for values.
Former-commit-id: b942c6a44680c78fae1a41f2cf994be09ffcfbb9
2013-02-16 00:39:45 -08:00
John-David Dalton
9ccfa5cec9 Convert map files via JSON.parse instead of using string manipulation in minify.js.
Former-commit-id: 185b77d45995f17c586f35d6ad447074d677a6ae
2013-02-15 08:58:20 -08:00
John-David Dalton
02687f3c78 Ensure the second argument passed to _.assign is not treated as a callback. [closes #184]
Former-commit-id: 1254e11ab02d1d5055c08400cd0a4786ed71aef2
2013-02-15 08:11:19 -08:00
John-David Dalton
7ea7a6cbb1 Automatically set a source map's "sources" key based on the build performed.
Former-commit-id: c02c88dfd1db097a3f98113ee57c3da850da5abb
2013-02-15 00:23:03 -08:00
John-David Dalton
a15a28fe5b Add -p and --source-map unit tests.
Former-commit-id: c7416ca507ce9376adb31e91a294e2e40073788c
2013-02-14 20:47:23 -08:00
Kit Cambridge
265dedfae1 Fix typo that caused sourceMappingURL to be undefined in source map builds.
Former-commit-id: ff3b22a7965c15a1ae072f8e9d51009e095ec443
2013-02-14 17:36:43 -08:00
John-David Dalton
5ddbb8bc56 Remove unneeded __d variable from _.template.
Former-commit-id: 4ff32444d7e96f8b9cc39e61c1ce17fb34fa357c
2013-02-14 09:21:06 -08:00
John-David Dalton
4101b8e937 Remove reInsertVariable cleanup in build/pre-compile.js.
Former-commit-id: 1fa75107e8c43362b57021292e26397145e62e39
2013-02-14 09:03:47 -08:00
John-David Dalton
56b6d50479 Tweak _.at docs.
Former-commit-id: 505e34b0a151287d78da73a1140d4aefdf45b43b
2013-02-14 09:03:06 -08:00
John-David Dalton
506f585d78 Bump to v1.0.0.
Former-commit-id: 623103d8c34c2e3c260c481da83cb94c888402d3
2013-02-14 08:58:11 -08:00
John-David Dalton
577dfb7220 Make Jam package use the compat build by default.
Former-commit-id: 8c371e59bd4796cfe42d0e0d9d07b85372b6d5b1
2013-02-13 23:48:13 -08:00
John-David Dalton
7e4286adde Add another unit test for precompiled templates with AMD support.
Former-commit-id: 68d1b7b0aa8cd8b1d4b27a9374095b8cebbfb386
2013-02-13 20:06:34 -08:00
John-David Dalton
1090228628 Add _.groupBy test for passing numbers for the callback argument.
Former-commit-id: 6ce29f81f8688495a8a756e464b32e9e825c7857
2013-02-13 19:54:39 -08:00
John-David Dalton
aeea861b73 Tweak docs for "_.pluck" and "_.where" style callbacks.
Former-commit-id: 8ee7906ac1839c2675a5e82749c9a2c86cf6f49a
2013-02-13 19:50:59 -08:00
John-David Dalton
997c43bbdd Add _.extend and _.defaults underscore build tests.
Former-commit-id: f9244ddd7c81f65d2f0a01a18fa6e821e8f2705b
2013-02-13 02:49:12 -08:00
John-David Dalton
958d4dbd2e Remove more unused variables in debug builds.
Former-commit-id: dd50d5d0b855a85ca8099d92288f2ca621a532fa
2013-02-13 01:52:12 -08:00
John-David Dalton
f2b350eb62 Change _.defaults to not overwrite null values.
Former-commit-id: 4a85aefc3eaf2180fb0e8cd0f6efb1524a9d7caa
2013-02-13 01:51:15 -08:00
John-David Dalton
a3464780a1 Add "customization callback" support to _.assign.
Former-commit-id: 5f0c7b72942ba0c40960072b11936f0683909043
2013-02-13 01:17:51 -08:00
John-David Dalton
fe1eb92196 Ensure _.first, _.initial, _.last, and _.rest work with string and objects for callback.
Former-commit-id: f587a5d11164c1c6fa050feccfb05956fd82a0d0
2013-02-12 08:45:10 -08:00
John-David Dalton
0b2d26ec92 Simplify AMD checks in test/test.js.
Former-commit-id: db2f72020e6171f30770c7ecc7caf1619b78ac88
2013-02-12 00:33:09 -08:00
John-David Dalton
8024a25f2b Update vendors.
Former-commit-id: aff34ccd5d3c6e3e78aeb5832e694171fca35412
2013-02-12 00:24:55 -08:00
John-David Dalton
d287ecbb34 Remove unused snippet from pre-compile.js.
Former-commit-id: d52c35eed1ccd611f728febfca5b5154440e9fb0
2013-02-12 00:24:37 -08:00
John-David Dalton
d9c95e7730 Escape } in regexes used in lodash.js. [closes #179]
Former-commit-id: 7b4687f3967079e19025fccc3f54b7fc5fcc4ff9
2013-02-12 00:24:08 -08:00
John-David Dalton
c3b1af31ce Add PhantomJS to .travis.yml.
Former-commit-id: 82ea6081046ee285538876572e5a42547ffffa61
2013-02-11 08:51:58 -08:00
John-David Dalton
465576b5cb Update vendors.
Former-commit-id: 4ffc3f5b267f8fdf1ac074f9f9ab44b0a7c4c3dd
2013-02-10 23:51:46 -08:00
John-David Dalton
9ecbcd0075 Update vendor/qunit-clib and tests to work with Ringo 0.9 and PhantomJS.
Former-commit-id: e6906e4b9f6afdee598902d6939356bf33302909
2013-02-10 23:42:09 -08:00
John-David Dalton
c1f62d72ae Ensure the csp build is an alias of the mobile.
Former-commit-id: defb0a7d28cb3ff9d799dcbaceef3175f78531e9
2013-02-10 01:14:49 -08:00
John-David Dalton
1b27834c41 Move _.isArguments fallback noArgsClass work into removeNoArgsClass in build.js.
Former-commit-id: 3627e59c65b67a61fc5ee04166004e400d816d13
2013-02-09 19:36:10 -08:00
John-David Dalton
77804907b6 Make whereIndicator check strict and make the _.where deep object comparison unit test deeper.
Former-commit-id: b9c59ff56b3ab7acd519888407de5dd02d6475cf
2013-02-09 10:10:36 -08:00
John-David Dalton
9dfa2609be Cleanup _.isEqual.
Former-commit-id: 83dd17b62fc86b870ca44aa4a54387343fd14cb2
2013-02-08 22:47:43 -08:00
John-David Dalton
8ffb3ab3c4 Simplify _.unescape unit test.
Former-commit-id: 113ee8e94a5a6a7d72b4e39672c60d67342def49
2013-02-08 19:04:02 -08:00
John-David Dalton
65e1da34fa Add custom build header comment to builds when only using --output.
Former-commit-id: adef2798bd590c0dc0c14b253f0d450ec5bb5394
2013-02-08 16:57:46 -08:00
John-David Dalton
282110807c Merge pull request #175 from timmywil/single_quote
_.escape("'") => &#x27; hex escaped not recognized by some html parsers

Former-commit-id: 0e55d8994a1919f5d5dd5806732cbe4711dae22a
2013-02-08 12:46:49 -08:00
Timmy Willison
25e5f43d1c Add lodash.compat builds
Former-commit-id: 5edfef23bb5d55c8efaf21a1cb345dc2b0d9488b
2013-02-08 15:45:08 -05:00
Timmy Willison
ce0441694d Escape single quote with numerical html character code rather than hex.
Former-commit-id: aef76d2662a065affc21ff735de526a177b50546
2013-02-08 14:54:12 -05:00
John-David Dalton
db29699927 Reduced _.pluck.
Former-commit-id: e413c1a6d0df383cb1ca51ab2203d3e380f71177
2013-02-08 08:42:04 -08:00
John-David Dalton
9a4e2d7617 Reduce the travis-ci time limit by 5 seconds.
Former-commit-id: 9653f4fee2bbfd8d77a228504795f3ef13df92dc
2013-02-08 08:13:57 -08:00
John-David Dalton
fbf64585b7 Fix --output build unit test.
Former-commit-id: fafafe88dfec9d777418c9eb95a7643c0061ee23
2013-02-08 07:18:55 -08:00
John-David Dalton
6d1c6dfd16 Update test and perf scripts.
Former-commit-id: 434935e332ec03dfd370efcd191b3f9aff5a9387
2013-02-08 00:58:26 -08:00
John-David Dalton
e78df4d981 Create a debug build if --output is passed.
Former-commit-id: 7571d238cf00fd9a7c72f65313e3807483067ace
2013-02-07 23:36:09 -08:00
John-David Dalton
a757b4d5dc Tweak docs for _.cloneDeep, _.bindAll, _.reduce, and _.sortBy.
Former-commit-id: a5d73e6ef174a743e05c0ef85414b899deea7815
2013-02-07 23:35:34 -08:00
John-David Dalton
d28036ee91 Add another _.size string value unit test.
Former-commit-id: 01c3bc51259c04a04f07d0e60398a0b2aa781641
2013-02-06 08:42:22 -08:00
John-David Dalton
d2ba0d4e7a Ensure _.merge doesn't iterate over a passed callback arg.
Former-commit-id: 2ed55922c2f5b4e47ac7e9763f3d76b4bec142da
2013-02-06 00:38:28 -08:00
John-David Dalton
5787436177 Don't remove nonEnumArgs fixes for mobile builds and cleanup debug builds.
Former-commit-id: b1fbb7ed362d0c94a92e4b12e0385c77973654b3
2013-02-05 22:54:18 -08:00
John-David Dalton
f5ab24b8d2 Fix legacy build.
Former-commit-id: 27bbe3ec6e025185daf73f9589e034e82097c313
2013-02-05 01:05:45 -08:00
John-David Dalton
05c0f32a24 Rebuild docs and files.
Former-commit-id: daf0b29cbcca43d7fa975e1ddb52f8c8b58cb31f
2013-02-04 23:56:57 -08:00
John-David Dalton
7b918f77a9 Clarify browsers affected by nonEnumArgs and reduce code around hasEnumPrototype.
Former-commit-id: 587f755332accbca26dc1eb357a66d4f898aad88
2013-02-04 23:55:52 -08:00
John-David Dalton
d87929d61c Remove "use strict" directive from the "modern" builds.
Former-commit-id: 7d1d5dd8cb91deb51fbdf7cfda04f3e49c96c204
2013-02-04 23:55:38 -08:00
John-David Dalton
a926829c33 Add _.bindAll unit test for passing just object.
Former-commit-id: 62f90c1dc7429610fb4bfaec3c5bb64d5a63dc9e
2013-02-04 08:36:15 -08:00
John-David Dalton
d58e366c40 Update docs and rebuild files.
Former-commit-id: 6265fed04ac7d6da6c6ded82095c22c1a60d9193
2013-02-04 01:21:22 -08:00
John-David Dalton
0fb4f7e1c4 Simplify _.where but don't make it an official alias of _.filter.
Former-commit-id: 794ab4eb814e8872443e282beb32cc636dedc43a
2013-02-04 00:55:12 -08:00
John-David Dalton
6ee606e3e2 Fix failing unit test in older IE.
Former-commit-id: 2de10b6bc3b9720a14fba86d9fe2638b30a7d0ef
2013-02-03 21:43:17 -08:00
John-David Dalton
22d4a7690f Make Closure Compiler bug fix to work with !1.
Former-commit-id: 2d82a0a8d71d8fc3907bf5f71b5ab41ed4142c04
2013-02-03 21:42:06 -08:00
John-David Dalton
f3a2f5018a Update vendor/uglifyjs.
Former-commit-id: 36cfce5048198ccb9f0a24a9021742afe60316b5
2013-02-03 01:48:11 -08:00
John-David Dalton
d2a7589f7c Fix failing build test and add another build test.
Former-commit-id: dccae3f43f55dda764750880e37c5e0682f32095
2013-02-03 01:23:40 -08:00
John-David Dalton
f87b4e04f1 Update test configs and move builds.
Former-commit-id: dc14112821f14101f107f90e9aeb5abec55b18a6
2013-02-02 19:33:29 -08:00
John-David Dalton
b5aa4c1f0c Add modern build option.
Former-commit-id: 4d8c791f8024eefec40c17b6efb708d989e78f34
2013-02-02 19:22:40 -08:00
John-David Dalton
0c1eb6d288 Update npm test. [ci skip]
Former-commit-id: f28a9229e700648926b933e3bc9d9ce371b9c556
2013-02-02 01:18:57 -08:00
John-David Dalton
8a03c5f998 Make travis-ci tests go right up to the max run time.
Former-commit-id: 15124a63d530c416ad1974898b7c1e3ee53c58a6
2013-02-02 01:14:06 -08:00
John-David Dalton
60aa50ae45 Add env and script to .travis.yml.
Former-commit-id: 700479d45f2c0683a877bddc15cd33d804aec00a
2013-02-02 00:16:11 -08:00
John-David Dalton
aae6bbbb66 Ensure build tests pass the correct exit code when their time limit is hit.
Former-commit-id: ead1bcc0448a639d5310ceb63e2efcf81e64a0c3
2013-02-01 23:41:44 -08:00
John-David Dalton
5ca903c428 Remove unnecessary _.template benchmarks.
Former-commit-id: ba9af8212673c7dfa109cb1e3f33bafec068dcdf
2013-02-01 23:20:16 -08:00
John-David Dalton
e86b07f760 Add node_js 0.8 back to .travis.yml now that they've fixed their issues.
Former-commit-id: 480cb02695ca5e3290bc9bf95f61e098b79ce988
2013-02-01 09:30:34 -08:00
John-David Dalton
d7fea5dc78 Update lodash underscore build _.findWhere to follow v1.4.4 null behavior.
Former-commit-id: 7b6ce7e9d7cf032171f43835bbf907cf3ffeb908
2013-02-01 09:29:56 -08:00
John-David Dalton
c1eff5aebb Cleanup comment blocks explaining old browser bugs.
Former-commit-id: e420cc9237565da01f60ed204fb6767bbe2cb9b4
2013-02-01 01:36:16 -08:00
John-David Dalton
f2dc490d6f Cleanup docs for _.omit, _.every, and _.template.
Former-commit-id: a2810a5db94ef1de4bb530a56b0f9f121688de05
2013-02-01 01:31:08 -08:00
John-David Dalton
b296e1b340 Add _.isNumber unit test for Firefox [xpconnect wrapped native prototype] issues.
Former-commit-id: d81b0bb7807139d14796c2a952294d1fd581f73a
2013-02-01 01:25:10 -08:00
John-David Dalton
8adb060edb Add hasEnumPrototype to avoid including the fix if not needed.
Former-commit-id: f826b725180a95d41b66612919c8b3fddfe568a0
2013-02-01 01:24:34 -08:00
John-David Dalton
c3b984fea7 Make callback behavior consistent for _.clone, _.cloneDeep, _.isEqual, and _.merge and add more doc examples.
Former-commit-id: 7a53ea18e4512dfcab5649c937db0f90d7649373
2013-01-31 00:28:47 -08:00
John-David Dalton
afbb2c338b Add _.findWhere benchmark and removenew bound benchmark.
Former-commit-id: baef485421cf6419450e3bc2a14f36e7e7c437c3
2013-01-30 08:58:55 -08:00
John-David Dalton
6632241ab5 Ensure the lodash underscore version of _.result matches v1.4.4 behavior.
Former-commit-id: c4c1946e49f12ddc4ba2f0f65a9ef7c9727d79ca
2013-01-30 08:57:28 -08:00
John-David Dalton
be50df81db Update builds and docs.
Former-commit-id: c0e38666fb1aee210c3dbd6401b040d8a2bee23d
2013-01-30 01:27:10 -08:00
John-David Dalton
9763b6e2cf Update build to add _.findWhere as an alias of _.find for the underscore build.
Former-commit-id: 0b772c30749c9af6ddc20b7b786f282ea93b63ce
2013-01-30 00:39:33 -08:00
John-David Dalton
812b848daf Update tests to work with QUnit v1.11.0.
Former-commit-id: ce6d6fb1756eb606e8106ac7e93816dffb48624e
2013-01-30 00:38:31 -08:00
John-David Dalton
4907a7389f Fix test.js for browsers.
Former-commit-id: e334ab595fa78a59b8371b755ce8dc54706a6630
2013-01-29 22:59:09 -08:00
John-David Dalton
17dff36b65 Update vendors.
Former-commit-id: 55a30b9cbfe7c513dd13d709aa4552fe715c262b
2013-01-29 22:43:56 -08:00
John-David Dalton
904921d8c4 Add a --time-limit option to test-build.js so travis-ci can complete its test runs.
Former-commit-id: 742b17208d6c9316efea33c106e7689b9290f48d
2013-01-28 23:34:27 -08:00
John-David Dalton
ac4c075d32 Add support for loading different Lo-Dash builds in test.js for Narwhal, Rhino, and Ringo.
Former-commit-id: 936b2f246540b2456c78a6087266ba9d39f48f91
2013-01-28 23:31:52 -08:00
John-David Dalton
ddde64ece9 Add lodash.min.js support to test.js.
Former-commit-id: c5c6cc47631752862c8f7b3b0f3d7b004493c01b
2013-01-28 21:12:06 -08:00
John-David Dalton
91c097e88d Cleanup unit tests and tests for _.clone, _.cloneDeep, and _.isEqual support of callback and thisArg arguments.
Former-commit-id: a53b5f4295cfc3e2f06ebed878c7c876acd64e6a
2013-01-27 23:34:18 -08:00
John-David Dalton
894658a3f5 Add underscore build replacement for _.isEqual and ensure legacy cannot be used with backbone or underscore commands.
Former-commit-id: 09340411bf3c4a0e4432d9b134b0aefb1f19183e
2013-01-27 23:32:21 -08:00
John-David Dalton
a4454ea5f9 Simplify regexp that escapes special regexp characters for reNative, and add callback and thisArg arguments to _.clone, _.cloneDeep, and _.isEqual.
Former-commit-id: 86715543147d2965a562016cf0b08f945fa38fe6
2013-01-27 23:29:38 -08:00
John-David Dalton
8ea8fa3a8a Add deep comparison note to the _.where docs. [ci skip]
Former-commit-id: 223d3a45832238b9ce39d4321636b971abde9b46
2013-01-27 15:12:20 -08:00
John-David Dalton
7480603295 Simplify regexp that escapes regexp special characters.
Former-commit-id: dde89b0f7d9cd31768eecd4ef92c0ae9d1b5d581
2013-01-27 14:57:32 -08:00
John-David Dalton
079b749d5d Add more _.isEqual benchmarks.
Former-commit-id: e0eee615e593eb9be627da52be158bf7b590fd2a
2013-01-27 11:24:55 -08:00
John-David Dalton
4815600e85 Continue dependency map tweaking, and simplify how _.isArguments is handled in the underscore build.
Former-commit-id: 568887e067d6463f102b3b866195f3a173fc6d4f
2013-01-27 11:23:02 -08:00
John-David Dalton
1c63e2d295 Update method dependencies and add more mobile and underscore build tests.
Former-commit-id: fa10d8c7bef9700ec59e4e38e730e0ad4963d812
2013-01-27 03:06:24 -08:00
John-David Dalton
cf13eca58c Cleanup deep _.clone and _.where unit tests.
Former-commit-id: b7106461640259ca3bf60c1fabb91b59b241e35f
2013-01-27 02:39:18 -08:00
John-David Dalton
3cf4607870 Add support for deep clone via _.clone(object, true) back.
Former-commit-id: cc9b6bb81848b6a98d6f413485845e2e0407e3ac
2013-01-27 02:38:43 -08:00
John-David Dalton
23c3ba6ad7 Ensure _.where works correctly for nested properties and give indicator arguments more meaningful names.
Former-commit-id: c35e2817125cd852a66066ccdef44bcc40c93e61
2013-01-26 23:47:47 -08:00
John-David Dalton
17fc3c2317 Reduce doc examples, simplify iteratorTemplate, remove deep argument support from _.clone, and ensure _.merge and _.pick exit early for non-objects.
Former-commit-id: d3fbd9a8ff9cd0c8201beb7180e3e7190e2a7cf8
2013-01-26 20:37:26 -08:00
John-David Dalton
af234cbe54 Finish renaming iteratee to iterable. [closes #170]
Former-commit-id: 0ac6cecaec0a779cb29c21b5fc3caa90c84479eb
2013-01-25 20:10:53 -08:00
John-David Dalton
c8517c0ec9 Merge pull request #170 from paulmillr/topics/iteratee
Fix naming: use “iterable” instead of “iteratee”.

Former-commit-id: 199757631f0c941898e1dcb8f5ae9f9d8c517337
2013-01-25 19:40:13 -08:00
Paul Miller
20b226454b Use “iterable” instead of “iteratee”.
Iteratee is a monad that provides functional way of handling I/O,
when iterable is a representation of series of elements that can be iterated over.


Former-commit-id: 94e58614ba9c2ebdd2aad1848a8b4d0ceef55023
2013-01-26 03:21:41 +02:00
John-David Dalton
98eccf223a Simplify null/undefined check in _.isEqual and edit _.cloneDeep docs.
Former-commit-id: 62455ba83df04318856fbc889743f44101b24fe3
2013-01-25 00:20:55 -08:00
John-David Dalton
0fc2ab4d41 Fix lodash settings=… documentation example. [ci skip]
Former-commit-id: 671683d4e77b8fa27903e30d938f665548311b3f
2013-01-25 00:07:21 -08:00
John-David Dalton
641b6efe7f Remove auto with statement removal optimization from _.template. [closes #166]
Former-commit-id: da27942b109844d44327914631b7c5681489b04b
2013-01-24 01:14:07 -08:00
John-David Dalton
4c83435b4b Clarify the -d and -m build options. [closes #167]
Former-commit-id: d3ee420b982291632785d6583a6f2981ab07a635
2013-01-24 00:08:52 -08:00
John-David Dalton
9f7319cff4 Revert to compiling _.assign and _.defaults, using isKeysFast, and tweak large array size in _.without.
Former-commit-id: 275d453f49e762ac499a9328ddb8e156b8c9c22d
2013-01-23 23:59:41 -08:00
John-David Dalton
dd9baa1502 Add doc note about wrapper Array methods. [closes #162] [ci skip]
Former-commit-id: 9d83e9b4c0298469d926325b35dee5566071f48c
2013-01-23 00:23:57 -08:00
John-David Dalton
41b4d0daa1 Update method dependencies in build.js.
Former-commit-id: 6cb368b6f440faa31c8f06cba347dcb755c95179
2013-01-22 23:54:52 -08:00
John-David Dalton
e41b181163 Ensure _.where deep compares properties values.
Former-commit-id: f3f29abf024f87a947fef6df1e3db9d9d1de99bf
2013-01-22 23:54:09 -08:00
John-David Dalton
288ac115d0 Avoid buggy Travis-CI Node version in travis.yml. [ci skip]
Former-commit-id: be10d0a5144628a98aafdc974febd08592cad30b
2013-01-22 23:08:09 -08:00
John-David Dalton
6774d46a6f Simplify sourceURL code and ensure source maps work avoid compat issues.
Former-commit-id: 5b64703eaebc65c443d6b9d3699d448c253e70c1
2013-01-22 21:51:10 -08:00
John-David Dalton
607abf89f7 Move generic Closure Compiler fixes into build/minify.js.
Former-commit-id: 8492f60a67cbf7a2d7d3118f9653e6997ab1d15b
2013-01-21 01:13:51 -08:00
John-David Dalton
27f1e5e2f2 Fix _.partialRight doc typo. [ci skip]
Former-commit-id: 871aa8f8c89a226e89988995926f8a6946757321
2013-01-20 12:21:57 -08:00
John-David Dalton
a457675ce1 Move deep _.defaults implementation unit test to _.partialRight.
Former-commit-id: 7e5c6184d24b47170ef148122ef5c7428f8b2da9
2013-01-20 12:09:44 -08:00
John-David Dalton
82049096e6 More build fixes.
Former-commit-id: 8b97cd56c4b5530d03ba89d192be7df989e96655
2013-01-20 12:02:47 -08:00
John-David Dalton
6c965e0223 Cleanup strict build.
Former-commit-id: c34b2e7e2810e8bc35bde3e0f962d925b3f5ba1b
2013-01-20 03:56:35 -08:00
John-David Dalton
8b4d952929 Fix build.
Former-commit-id: e930621f522aae7c15502ac56fe9983943d2dc80
2013-01-20 03:40:44 -08:00
John-David Dalton
873cc63f94 Add _.partialRight and make _.assign and _.defaults work with arrays.
Former-commit-id: 6d9fea855de53e9ccb5ac6f58db68239ef08e9de
2013-01-19 22:17:14 -08:00
John-David Dalton
39fc839ff2 Fix test/test-build.js to work with build.js modifications.
Former-commit-id: 9df41ae02627557a21f282f70a73a447497b8984
2013-01-19 16:42:16 -08:00
John-David Dalton
4edef4c959 Update license and copyright.
Former-commit-id: 16ded758d08c66dcc9585e75848dec5420ddbbf2
2013-01-19 16:07:15 -08:00
John-David Dalton
1d9ced8037 Remove resolved Underscore issues from README.md.
Former-commit-id: 16f60867355adc5f528274838d3526ab7821b553
2013-01-19 01:00:15 -08:00
John-David Dalton
4cb77d1429 Avoid extreme &nbsp; use in the README.md.
Former-commit-id: 3ff1aca436ed040a6ffb0335f92b8b44f80137be
2013-01-19 00:36:22 -08:00
John-David Dalton
b52d9d1bdd Add --source-map build option. [closes #161]
Former-commit-id: e0cac11fda86671d944de5c157d3df3146d6def1
2013-01-18 02:37:22 -08:00
John-David Dalton
5fe7ca5e70 Update vendor/backbone.
Former-commit-id: faf9ed71356e1ae8b5c4f65e7084243571cb7d82
2013-01-17 00:40:49 -08:00
John-David Dalton
62fb440de2 Update closure compiler.
Former-commit-id: 20934c3606c88b0c108f89a01bcc7703dfbe2179
2013-01-17 00:18:41 -08:00
John-David Dalton
96fbd7c7ba Fix closure compiler bug.
Former-commit-id: 6b61f095fa26d2dee0d70b666e630e4ca0fa7be6
2013-01-16 23:59:24 -08:00
John-David Dalton
c9bec8e636 Fix typo in _.merge unit test.
Former-commit-id: 15b2389bca12cb1655a07a51525624f7af9caa6c
2013-01-16 23:22:07 -08:00
John-David Dalton
769e03e7f2 Update Closure Compiler and UglifyJS.
Former-commit-id: 8e20f30f84b01ed6df593136c2d081e9d05acbca
2013-01-16 23:21:08 -08:00
John-David Dalton
ab83f2d5e2 Ensure _.first and _.last have the correct chaining behavior when passing a callback and thisArg.
Former-commit-id: 4d54fd677fa48bf8de033696c58ee66babd77a81
2013-01-16 01:39:58 -08:00
John-David Dalton
b60d0cdb17 Added support for _.merge to accept callback and thisArg arguments. [closes #154]
Former-commit-id: 5d641ae4ba1d120d776a895f8bc9b8c1a7def0b6
2013-01-16 01:11:39 -08:00
John-David Dalton
677503dbf1 Remove Travis-CI build status until they resolve their issues.
Former-commit-id: 2d5607771e148b3010906452a9dc86f25f18ed3f
2013-01-15 21:28:14 -08:00
John-David Dalton
25efa29470 Remove metadata from tar.gz files.
Former-commit-id: 2cd702d72e9f2ff441fc7f8c8e22bef3f2784cbe
2013-01-15 21:16:18 -08:00
John-David Dalton
21a90f8f8f Avoid travis-ci downloading the included minifiers.
Former-commit-id: d8558ea8295a9c7e7d28c1a1740edf63daa81933
2013-01-15 20:50:25 -08:00
John-David Dalton
64e8d6ae99 Update .travis.yml with git and branch options.
Former-commit-id: 51abc02eb378332b15d525fdab62d82f8d70b62b
2013-01-15 02:18:40 -08:00
John-David Dalton
16a204335e Ensure _.merge produces dense arrays and revert accepting arrays of arguments for _.compose, _.defaults, _.extend, and _.merge.
Former-commit-id: a02772f8be04e187cbbfeb324cd4fb4318098162
2013-01-15 01:32:21 -08:00
John-David Dalton
0a53f762fe Update tested environments in README.md.
Former-commit-id: 9ce4d74e664acdd3acee27b7a127a6d7d4577ac4
2013-01-14 01:28:39 -08:00
John-David Dalton
6ba4778c1b Make methods capable of accepting unlimited arguments consistently accept either individual arguments or arrays of arguments.
Former-commit-id: b9f0c744f79e74889323f4fd7f737d10acd32ada
2013-01-14 01:11:46 -08:00
John-David Dalton
0404c2266c Use strictEqual when the expected result is 0 or 1.
Former-commit-id: ff439b0e7252351663b754267056ad09e0f89838
2013-01-13 15:12:02 -08:00
John-David Dalton
e5e914282f Allow _.first, _.last, _.initial, and _.rest to accept callback and thisArg arguments. [closes #155]
Former-commit-id: b921ae0ccc188c5544480f397216ce3b2479989e
2013-01-13 14:58:53 -08:00
John-David Dalton
9867d4bdc3 Add unit test for passing an object as callback to _.find.
Former-commit-id: 36da6e95473e85ac799180618e1a546d87f0686f
2013-01-12 20:42:54 -08:00
John-David Dalton
e4cb7112cf Update vendors, minified builds, and rebuild docs.
Former-commit-id: 9be99ca3c78a1a35fd13138398c48ab4a4b35f11
2013-01-12 20:12:38 -08:00
John-David Dalton
2d202e90b7 Add unofficial _.where like support for methods like _.find. [closes #159]
Former-commit-id: c6106035af3f3d676cbd3f0a5c785b2c00ad1e9d
2013-01-12 19:02:06 -08:00
John-David Dalton
016391e442 Add capitalize and getCategoryDependencies method to build.js
Former-commit-id: d939fbb482926a1673c5841f0c08b280ddca18e5
2013-01-12 16:46:52 -08:00
John-David Dalton
1eff48a429 Ensure iterator options are minified correctly.
Former-commit-id: ae7b617051d91d99bad899d82df195d3c41bf76a
2013-01-12 16:18:17 -08:00
John-David Dalton
ce33af6bb5 Cleanup _.merge.
Former-commit-id: 4227c403f89a1085ce88ca992106b7ed0a3c210c
2013-01-12 13:47:13 -08:00
John-David Dalton
fb9d4303f1 Correct _#tap doc example. [closes #156]
Former-commit-id: d1f6982e824a97db73546b8594c074b735580f8e
2013-01-08 22:21:46 -08:00
John-David Dalton
4e631c9e8f Flip noNodeClass check to avoid breaking when Firebug's "break on all errors" option is enabled. [closes #85]
Former-commit-id: f98c3af700279cb688c5df6c696b141bf626e26b
2013-01-05 22:11:14 -08:00
John-David Dalton
766d67d80d Remove isKeysFast guard.
Former-commit-id: 38a63ed31d652fd198ebf30dbb0f1546160c30c1
2013-01-05 12:07:29 -08:00
John-David Dalton
e2c2a37221 Make _.merge assign null values. [closes #151]
Former-commit-id: 5a839996db9475182d5957d2f8cb4b3c265b0d9f
2013-01-05 00:12:33 -08:00
John-David Dalton
2b23020695 Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: fe8531c316e040e71dd8f58d509dcee9c137d985
2013-01-04 06:20:36 -08:00
John-David Dalton
8d43c6b1a8 Merge pull request #152 from terinjokes/docs
Fix typo in `_.range` docs.

Former-commit-id: 1fd6134d1809dcd59119740f0a115f0b5e819734
2013-01-04 06:15:27 -08:00
Terin Stock
7362dd1a7c Update _.range docs to consistently reference 'end'
Former-commit-id: a8ee760eb86e67eb898715ee9719fa8981eeda17
2013-01-04 02:20:06 -08:00
John-David Dalton
316caf7e8c Tweak UglifyJS "comments" option and update vendor/benchmark.js.
Former-commit-id: 6f09f27936f9453c58138e216399a51732a00173
2013-01-02 23:35:38 -08:00
John-David Dalton
87dc6631ee Cleanup "imports" template option.
Former-commit-id: f9f52b1f63908bcb7db7837a9bda067f2855acbb
2012-12-31 14:52:16 -06:00
John-David Dalton
62246d7d43 Update platform.js.
Former-commit-id: 5e5170b0c29175469d4b80010297d31afa14b5c8
2012-12-31 14:45:53 -06:00
John-David Dalton
a14be3a42c Add "imports" option to _.templateSettings. [closes #148]
Former-commit-id: 16a019d27aea2e7a72665f62adf4c4c35e29b4bf
2012-12-30 12:23:51 -06:00
John-David Dalton
7fdf00d5e9 Workaround UglifyJS comments option bug.
Former-commit-id: 705510311c4eee0739e85054c6d8edded427efe3
2012-12-30 11:14:10 -06:00
John-David Dalton
99e02f30fb Simplify createIterator. and remove whitespace between else { in template text.
Former-commit-id: a673f0edbe9b8655cbe1e91d9063e58130172495
2012-12-30 00:41:00 -06:00
John-David Dalton
716a5b9b5a Update _.random docs and add unit tests.
Former-commit-id: d4a033bf83ad5fce7bb3b09467305730a89adc01
2012-12-28 20:22:04 -06:00
John-David Dalton
87f880ca52 Update vendors.
Former-commit-id: baf89d2c3bd7077462995bffa7f8bff1e1cf28f9
2012-12-28 19:47:44 -06:00
John-David Dalton
8ec7b84a78 Remove unneeded default ran value from _.once.
Former-commit-id: 4d4fc057c0cf9108183e7e7158f305214eed4323
2012-12-27 14:17:09 -06:00
John-David Dalton
05cf5bc8db Defer downloading required minifies until the lodash command-line executable is used for the first time.
Former-commit-id: 83df0ac5875e8647168fffb7043a4cc197d27d79
2012-12-27 14:17:01 -06:00
John-David Dalton
ac25e21a0c Avoid minifying typeof x == 'undefined' checks into x === void 0.
Former-commit-id: 23c998b48a1d2e1bca19dad6bf16fa94aeebed31
2012-12-27 00:44:57 -06:00
John-David Dalton
cc1e0daaa4 Update vendor/underscore.
Former-commit-id: 9a00fa6c531e8cf0990526b7034cbde67ef335b3
2012-12-27 00:08:19 -06:00
John-David Dalton
f4120a9c8c Consistently coerce keys to strings before passing them to hasOwnProperty and init Array lengths when possible.
Former-commit-id: 5bd397eafbae888c7e6c76e62a7021b85796e65a
2012-12-25 23:12:19 -06:00
John-David Dalton
e3b80a5e09 Simplify _.toArray and wrapper methods.
Former-commit-id: b0440d401bd58cfa2d7aaf213549a824963474c3
2012-12-25 17:06:51 -06:00
John-David Dalton
ef7cb26b01 Update vendor/underscore and continue to tweak _.throttle unit tests to avoid false fails.
Former-commit-id: b5ba7b53e3bbebb3fa42da7e197f746515c8efb0
2012-12-24 09:49:46 -06:00
John-David Dalton
408a5c168f Optimize _.max and _.min for gzip.
Former-commit-id: e4d6eb949824718aa967208203b7c487df7e02f5
2012-12-23 16:49:00 -06:00
John-David Dalton
0ad6ac95b2 Avoid setTimeout inconsistencies in the unit tests.
Former-commit-id: fdbe08fcb381bf7771a1a7e474882d82e5bdbdf2
2012-12-23 10:10:28 -06:00
John-David Dalton
bda4747e9c Use @license in the copyright/license header. [closes #138]
Former-commit-id: 3b924dad24d56e0fd33e4df1341b09c6165521a1
2012-12-22 15:18:14 -06:00
John-David Dalton
bd8f882c94 Tweak _.reduce documentation.
Former-commit-id: 58d8a724dbf53594420e355c3d29ae28b53a7886
2012-12-22 11:57:14 -06:00
John-David Dalton
32b5b5b1c4 Catch module load errors in build/post-install.js.
Former-commit-id: 6671d4925749d8b4d6da9ddd732bc7f436b6740d
2012-12-22 11:56:52 -06:00
John-David Dalton
c1e543c9fe Cleanup .npmignore. [ci skip]
Former-commit-id: bca4d773ba803c28a128ec162b41e033998b5d0a
2012-12-21 20:08:16 -06:00
John-David Dalton
3908fa5c57 Simplify build/post-install.js.
Former-commit-id: a3f657f9721b18cef3c43b36a64e83b77d63eeea
2012-12-21 19:29:46 -06:00
John-David Dalton
1b347fc185 Tweak _.uniqueId to avoid problems with buggy minifiers.
Former-commit-id: e940c336b227ce89661cd6ada5f3e722a0204318
2012-12-21 12:38:55 -06:00
John-David Dalton
282a5e0b01 Correct href value in post-install.js.
Former-commit-id: 63b220d6dfecad7c1ebb5079efef603145e97392
2012-12-20 02:43:16 -05:00
John-David Dalton
e9d23cc1ea Use child_process.execFile instead of child_process.exec in post-install.js.
Former-commit-id: 2f6b0827641ceb1c6b418af9de87ef3c70243d5f
2012-12-20 02:29:21 -05:00
John-David Dalton
34173fd60f Upgrade to UglifyJS2.
Former-commit-id: dd326a5f401d8359f92f46552e2f59c1accf7cc1
2012-12-20 02:17:38 -05:00
John-David Dalton
d0d3c8ef57 Remove unused variable, index, in _.isEqual.
Former-commit-id: 21f364b6fa0505f9ccb579660f1bda4e38cbe3d3
2012-12-18 23:28:28 -08:00
John-David Dalton
11912008dd Account for at in an underscore build test.
Former-commit-id: 7222681ef1e5ec17e940789efc38e99be97c0116
2012-12-18 22:41:50 -08:00
John-David Dalton
c122007e17 Rebuild minified files and docs. [ci skip]
Former-commit-id: 161ba27aa3bd38c48d8f15057343944dc6a674c2
2012-12-18 21:53:30 -08:00
John-David Dalton
69dfa1a175 Clarify _.merge documentation. [closes #143] [ci skip]
Former-commit-id: efcec739bf2682da9b3dde27a43ff3b76aa4d6e8
2012-12-18 21:35:43 -08:00
John-David Dalton
bfea443e55 Cleanup _.at and add build tests.
Former-commit-id: 7648376e1ef447ae83d621b449b73acec355bb67
2012-12-18 21:16:10 -08:00
John-David Dalton
680798c28f Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: 4241085b99e4df0991946a18f66990209e05ee31
2012-12-18 19:14:15 -08:00
John-David Dalton
9f0cc45c45 Merge pull request #142 from danheberden/pluckByArray
Add `at` method to get elements from a collection.

Former-commit-id: 99e4d651afe760f952398e5119d03c6caff0fc44
2012-12-18 19:14:00 -08:00
John-David Dalton
0ac97f467f Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: 53ef1ba726cff56a98b739190957565c27bd253f
2012-12-18 19:09:33 -08:00
John-David Dalton
647746ea72 Update vendors, builds, and docs.
Former-commit-id: 8e6ca9a1334c73671aba1b4c974d738dbd7d72e1
2012-12-18 19:07:39 -08:00
John-David Dalton
7bea30b2e6 Optimize _.invert, _.pairs, and _.values.
Former-commit-id: d2725dc8c75254784d450f2a7e997e079b8c3183
2012-12-18 19:07:38 -08:00
John-David Dalton
12bc852c89 Update Chrome extension sandboxing link in README.md. [ci skip]
Former-commit-id: 17363260102ec1e874309eeea62bb077e2479303
2012-12-18 19:07:38 -08:00
John-David Dalton
0d42e84045 Add a benchmark for _.some with thisArg and avoid corrupting the aggregate score if a single benchmark errors. [ci skip]
Former-commit-id: 2042fdaab870ad2de2fb4938f5033d21f3dd1ae3
2012-12-18 19:07:38 -08:00
John-David Dalton
897b85b607 Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: b5d52b6bbb4b5312fdf5d9da82fc15a4abef2b84
2012-12-18 19:05:59 -08:00
John-David Dalton
5c55cf0efb Make path convention consistent in package.json.
Former-commit-id: bf1bde8a2e78a520dca92ddd7b95f9fce12eb446
2012-12-18 19:05:39 -08:00
Dan Heberden
eccd6463f6 update dependency for at method
Former-commit-id: 600a1079d3591880654df0b861810b7c070047e9
2012-12-18 15:30:38 -08:00
Dan Heberden
4a0897c734 build in functionality to at, add string support, optimize, and add more tests
Former-commit-id: 951ef27e55fff5a70d09916b55b85f9e725f751a
2012-12-18 15:10:10 -08:00
Dan Heberden
c86a16df7f change .grab to .at, add unlimited args or numbers or arrays and simplify function call to use values and pick
Former-commit-id: 3deb82ad9f55cd7261453a40bb0f046a5340790d
2012-12-18 12:52:44 -08:00
Dan Heberden
2ae0e9d902 add grab method to get elements in a collection that match the indexes in the provided list array
Former-commit-id: 18df81c229cab4acde8f8157df9bb1001a51e9db
2012-12-18 10:00:24 -08:00
John-David Dalton
bba18cd56b Update vendors, builds, and docs.
Former-commit-id: 488762bd908dca5538767e4b4210ca0079560520
2012-12-18 07:41:34 -08:00
John-David Dalton
2f20781e16 Optimize _.invert, _.pairs, and _.values.
Former-commit-id: 7df68977c0a99b48e8989101228432c3db55c460
2012-12-18 02:45:56 -08:00
John-David Dalton
3bee212876 Update Chrome extension sandboxing link in README.md. [ci skip]
Former-commit-id: c093d1d8356b5ef4129e91b820478c25c5224798
2012-12-18 01:49:50 -08:00
John-David Dalton
6c8893a550 Add a benchmark for _.some with thisArg and avoid corrupting the aggregate score if a single benchmark errors. [ci skip]
Former-commit-id: 10dae73eb07e610a7752fc3f9035e71e696ce93d
2012-12-18 01:08:55 -08:00
John-David Dalton
9c52ecc19b Tweak regexp in post-compile.js.
Former-commit-id: 8c6933944703a17582696fb10b45f12926fe1030
2012-12-17 08:36:02 -08:00
John-David Dalton
692c884ca2 Ensure test count is the same for dev and prod builds.
Former-commit-id: 00e24fdd70d52bc6be4ae53fed43933fcf2c35da
2012-12-17 08:21:13 -08:00
John-David Dalton
3ef51d7fae Refactor previous commit.
Former-commit-id: ad5408ad8a9e5b2caa9667994fe6748760b40fbe
2012-12-17 08:20:37 -08:00
John-David Dalton
73d95de122 Reduce _.forEach and optimize the minified builds for Safari.
Former-commit-id: d4366f1a3c5fd0751558f714384600c3bcf0f49b
2012-12-17 00:06:59 -08:00
John-David Dalton
04a568ac9b Update vendors and docs. [ci skip]
Former-commit-id: 9ca377423f4714fdf0e3fa428711e8dfe75e2e44
2012-12-16 21:41:01 -08:00
John-David Dalton
a45499cf04 Cleanup build.js and README.md.
Former-commit-id: abf5c3e3f1b0a04b8f9eeb132366f51c92c9a450
2012-12-16 14:47:00 -08:00
John-David Dalton
b847d672ab Bump to v1.0.0-rc.3.
Former-commit-id: d00d4d948fc0e2597e4ee2f2d15a9bee2dc27440
2012-12-16 12:22:04 -08:00
John-David Dalton
3ffefdf6b5 Avoid _.isArray returning true for arguments objects in browsers that report arguments.constructor as Array.
Former-commit-id: 9fccc5219e7cb6a007138f1f474d9e68504a0260
2012-12-16 10:47:22 -08:00
John-David Dalton
cca4c4be80 Fix hasObjectSpliceBug implementations of _#pop, _#shift, and _#splice.
Former-commit-id: 91a3bc259c85bd269c3d895b66204bdc4d158827
2012-12-16 00:14:08 -08:00
John-David Dalton
cb9e044cb3 Prepare v1.0.0-rc.3 bump.
Former-commit-id: d4b08cd58a7effb9e6107fe16c11ccdea032cb00
2012-12-16 00:12:01 -08:00
John-David Dalton
fd25dd83bd Coerce value to a string once in _.intersection and _.uniq.
Former-commit-id: 5cb0f0034c473ec62c3b342f45d22c0abe6c5fb3
2012-12-15 14:32:55 -08:00
John-David Dalton
584bb00cfc Use the indicatorObject instead of a boolean in the internals of _.reduce and _.reduceRight.
Former-commit-id: b83d1ef428941f15a6633c1b16b9373210149318
2012-12-15 13:01:43 -08:00
John-David Dalton
5b9369d344 Update tested Node version and reduce emphasis on performance in README.md.
Former-commit-id: 12a57f39409fa5bb5a18e3535c56c50ef767289a
2012-12-15 13:00:22 -08:00
John-David Dalton
a64506a0de More clearly label lodash underscore compatibility builds. [ci skip]
Former-commit-id: 169559848f08a5ce9228e18e647e2e26eabe8341
2012-12-14 01:55:39 -08:00
John-David Dalton
2fc83ef80b Tweak _.cloneDeep docs.
Former-commit-id: 992471067498a0be795f473fabaaf8e45581f291
2012-12-14 01:06:00 -08:00
John-David Dalton
8bee3ebd65 Update backbone method dependencies.
Former-commit-id: 1b030f0a7b2f4065ec1dfc9ef911de77ebd7d842
2012-12-14 00:54:36 -08:00
John-David Dalton
99686fdd73 Revert @license doc tag addition of #138.
Former-commit-id: a66d22c952b3a0bb45e049a80ee80aa54c4e6a33
2012-12-14 00:41:56 -08:00
John-David Dalton
33bc3d6a1e Update vendors, builds, and docs.
Former-commit-id: d57931d657ac0e73d91ac1bd1b33e24be5a16f35
2012-12-14 00:32:58 -08:00
John-David Dalton
90597530a4 Add _.cloneDeep alias of _.clone(…, true). [closes #140]
Former-commit-id: b71397d5c5b71cb28a60eb4656cbaf12f6b03d1a
2012-12-14 00:24:02 -08:00
John-David Dalton
b2af8da9a2 Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: 502c65ac38876c5fe42c9c652ef4cb237e9c631a
2012-12-13 23:49:38 -08:00
John-David Dalton
05dbf41fdc Optimize _.intersection.
Former-commit-id: 017b20ad958a9dd7be09872456b1d26a59361c5a
2012-12-13 23:48:19 -08:00
John-David Dalton
c56bb56708 Cleanup benchmarks.
Former-commit-id: 805c0091cd6cec85729ee7511005c233545a9899
2012-12-13 23:47:48 -08:00
Kit Cambridge
4def1ea1dc Fix installation mode detection on Windows. Closes #139.
The global `node_modules` directory does not exist if no modules have been
installed globally, causing `realpathSync` to throw an exception.


Former-commit-id: 5a59e6b53c7afe5d5c5728352e9cd722744b2247
2012-12-13 10:35:29 -08:00
John-David Dalton
0ba05e4de0 Add @license to minified copyright header to preserve it in case of double minification. [closes #138]
Former-commit-id: 6c9b72f9c807daac613ff2d4339c0e3c4e7cafe3
2012-12-12 00:37:56 -08:00
John-David Dalton
24fce89155 Remove "Collections" method _.forEach dependency from "Arrays" method _.intersection.
Former-commit-id: 83197c7ac47654c6fc2d2f37df8ff77d4adb9096
2012-12-12 00:34:58 -08:00
John-David Dalton
1a3c20f91d Tweak _.throttle unit test pass more consistently.
Former-commit-id: 91063b5c6ae0c9beb2c86cc21153d75f060afef1
2012-12-11 01:10:52 -08:00
John-David Dalton
fe3e78cc1c Update vendors, rebuild minified files, update docs/license.
Former-commit-id: 689793b6e5c4bbae917e726dc646902c697ce3a7
2012-12-11 01:09:52 -08:00
John-David Dalton
749f49b1a0 Add instanceof memory leak warning to _.isArray.
Former-commit-id: f90b1ad1850fb21c1d976f037a382c7388496d1c
2012-12-11 00:54:09 -08:00
John-David Dalton
f14010a09d Make a private each function to be used by _.forEach.
Former-commit-id: da9e22a66aef1ad9f4688f4fbb07e0806f8f0445
2012-12-11 00:44:02 -08:00
John-David Dalton
0b48b9c7d4 Optimize _.isArray fallback, _.isDate, _.isFunction, and _.isRegExp.
Former-commit-id: a3e350bf1fa91a9582ba6a0effe61d4589cc8afe
2012-12-10 00:29:26 -08:00
John-David Dalton
13d62b01d1 Ensure utf-8 encoding and tweak text in CONTRIBUTING.md.
Former-commit-id: 67a3e585c0a3b815e916e0d38ed2bc113de3220d
2012-12-10 00:05:43 -08:00
John-David Dalton
4e7b71db1d Cleanup CONTRIBUTING.md and README.md.
Former-commit-id: f0dca3ffc6a23128a877ae4d7d7f409d2e6adb69
2012-12-09 22:36:19 -08:00
John-David Dalton
069fc1f97b Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: e30fbcc10d6a5ea2bde762d91b9dd11a6f8a0dfc
2012-12-09 21:59:42 -08:00
John-David Dalton
8684f75254 Cleanup lib and build unit tests.
Former-commit-id: 96171aa70fee408f5237e0615ace4faa6541caa7
2012-12-09 21:59:05 -08:00
John-David Dalton
11cd924ce1 Rework the chaining behavior of Array wrapper methods.
Former-commit-id: fb8add58a861a19a2df63d6ff377c2a9537a38b6
2012-12-09 21:58:31 -08:00
Kit Cambridge
e2fd0cfc4e Add contributing guidelines.
Former-commit-id: 0e613d3b5136a980284b3ba3de738ba664cb7fe5
2012-12-09 14:16:15 -08:00
John-David Dalton
5eb3106706 Updating Backbone/Underscore unit tests to avoid failing tests due to different chaining implementations.
Former-commit-id: d797a3547368faae04806d61818327e7d2319309
2012-12-09 00:23:02 -08:00
John-David Dalton
1831efbe9d Cleanup build and doc comments.
Former-commit-id: 861145621113c0b6719b24d00ce0e359360ee1eb
2012-12-08 21:37:40 -08:00
John-David Dalton
38edbadca5 Update Lo-Dash description.
Former-commit-id: 75703b13b95399107b11f109dcc6d3b3dfd9eabe
2012-12-08 18:53:45 -08:00
John-David Dalton
6fcd80b979 Update builds and docs.
Former-commit-id: 647fe24574fc9bab2d32abb6e95f74d1cdd593f4
2012-12-08 18:52:59 -08:00
John-David Dalton
cf5e5dbe55 Update build to add _.chain and _#chain for backbone and underscore builds.
Former-commit-id: 2c910de419904a1285d246a3b08d87cb4daafa18
2012-12-08 18:46:09 -08:00
John-David Dalton
a451861bf1 Make "Functions" methods return wrapped values when chaining and remove _.chain and _#chain methods.
Former-commit-id: a507f9a1b76b933a7d558d2cc20177e6995dcf0d
2012-12-08 18:42:48 -08:00
John-David Dalton
7313dd74a6 Allow compiled templates loaded via AMD to set and use the private _ variable.
Former-commit-id: 746e6d8275f08dbb628e92c146fffba84df0f8c0
2012-12-08 01:26:08 -08:00
John-David Dalton
32b9de05f2 Cleanup test/test-build.js.
Former-commit-id: 4edb24bf22b8e8f9aa45b08a97289c1b83461e16
2012-12-08 01:24:25 -08:00
Kit Cambridge
c79bed22f8 Ensure that passing settings=... does not clobber the default moduleId.
Precompiling a template with `settings` previously generated a snippet
resembling `define(["undefined"], function(lodash) { ... })` if the `settings`
object did not contain a `moduleId` property. You can now pass `settings` and
`moduleId` options simultaneously; the builder will always use the `moduleId`
property in `settings` if it is provided, and default to `moduleId` otherwise.


Former-commit-id: 711b4f167dc08ce3d42029e9001ebdb2d8d60a56
2012-12-07 19:41:11 -08:00
John-David Dalton
cdeb50132d Optimize _.reduce and _.reduceRight.
Former-commit-id: 6f281aae7f285458feafb02957fcd90fb09c10bd
2012-12-07 00:20:09 -08:00
John-David Dalton
090fb09955 Optimize _.union.
Former-commit-id: 0cba8cac81a621b1fdbe8868ab406a30eb1d743f
2012-12-06 23:09:41 -08:00
John-David Dalton
54b862bd79 Bump to v1.0.0-rc.2.
Former-commit-id: 55bca6a70e127152329deeff509a72a73436f40e
2012-12-05 02:24:46 -08:00
John-David Dalton
e37e1c109a Tweak method's chaining behavior.
Former-commit-id: 3bfdd8d004fbdcb839843748b907cad5a5003446
2012-12-05 01:37:28 -08:00
John-David Dalton
939123785b Specify more method's chaining behavior.
Former-commit-id: 7b8c18f6058bb279ab25f7e8b94e7418951e3ded
2012-12-05 01:36:18 -08:00
John-David Dalton
221b347bd9 Update vendor/underscore to v1.4.3 and update the Underscore build compatibility.
Former-commit-id: ebcaad4a92848bef3bbf65bb8eb3a0c1553e005c
2012-12-05 01:03:10 -08:00
John-David Dalton
af9bf3e852 Cleanup comments/docs/descriptions. [ci skip]
Former-commit-id: 4d6a0a54abbaa6607cc5897a09e5a7c0fc884a1a
2012-12-04 09:14:59 -08:00
John-David Dalton
ed8746df77 Rebuild update vendors, minified files, and adjust README.md changelog.
Former-commit-id: a01567b3d8e88da0cb20e12c864703e633b86fc6
2012-12-04 01:29:24 -08:00
John-David Dalton
bb187db49d Tweak _.throttle unit test and add _.bind test.
Former-commit-id: b863194c661d97177bbcda9676699e9753f0db22
2012-12-03 22:37:09 -08:00
John-David Dalton
081e72b3ea Fix typo in _.clone documentation. [closes #130]
Former-commit-id: 81e17c992848c5d0ac9d30fb64eef3163bac6598
2012-12-03 22:10:08 -08:00
John-David Dalton
6188c38053 Move bound inheritance hookup inside bound.
Former-commit-id: 7f95fffa14ef42f8f065aad124ac883740baac64
2012-12-03 22:07:45 -08:00
John-David Dalton
12b0186f5a Make _.isEqual work with arguments objects in older versions of Opera.
Former-commit-id: 860a27e7f81e14781eb371cadf24bb812eb31718
2012-12-03 01:54:46 -08:00
John-David Dalton
9bccc9c53c Ensured _.throttle nulls the timeoutId. [closes #129]
Former-commit-id: 24242f513e01adb2827cc3a5af6c8904098a9280
2012-12-03 01:04:54 -08:00
John-David Dalton
351b2b320e Bump to version 1.0.0-rc.1.
Former-commit-id: 8867f4ddfab62435d0c2c685d67e68555d146545
2012-12-02 22:09:56 -08:00
John-David Dalton
94258feb09 Make _#bind return non-wrapped values and cleanup a _.template unit test.
Former-commit-id: 351e4ae8b346a69a795c6d2bfe6a55b306515af6
2012-12-02 21:19:34 -08:00
John-David Dalton
8b0f033a78 Update vendor/underscore.
Former-commit-id: 8bb0b59d367ab2600a85a4442789eb41d9d97cb6
2012-12-02 21:18:46 -08:00
John-David Dalton
f58f255fc8 Make the custom build message work with -rc.1 and fix build.
Former-commit-id: 96f31fff906fa978a0d10fad90d9322c761e1d26
2012-12-02 02:21:55 -08:00
John-David Dalton
e3eabcf648 Fix isBindFast and isKeysFast.
Former-commit-id: 59e6cfa0669f28139a7036a172995d7f7f8a64ef
2012-12-02 00:01:29 -08:00
John-David Dalton
9aa506cbd7 Cleanup build.js.
Former-commit-id: 91bb957cef2efd3aefd3c196374841efbd3ffd1d
2012-12-01 23:32:26 -08:00
John-David Dalton
d8cff7b90f Remove script injection and simplify createFunction.
Former-commit-id: cc466c8ea05210b2238ee72a624628c7454eb1ee
2012-12-01 23:32:02 -08:00
John-David Dalton
07e7bca9eb Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: a1f2773afba4c885385e601e656c6ee461a6fb24
2012-12-01 18:49:46 -08:00
John-David Dalton
e1f442be90 Ensure Lo-Dash works in the JS engine embedded in Adobe products.
Former-commit-id: 860665d3735aef1dff75149b49b78c1615f38fa0
2012-12-01 18:47:38 -08:00
John-David Dalton
c5d579e0e3 Update vendors, minified files, and docs.
Former-commit-id: b29e9f8a497153408ba6266bf44412004e63c1af
2012-12-01 17:16:50 -08:00
John-David Dalton
5271c2e08f Update vendors, minified files, and docs.
Former-commit-id: 018dfcade1386aa84492f60c8404ea00c01cbe11
2012-12-01 13:24:40 -08:00
John-David Dalton
9010a7ddbc Fix typo in _.toArray and tweak _.forEach documentation.
Former-commit-id: 6417e50be9381a4ecede54868a9c2c41dabca4f2
2012-12-01 13:23:15 -08:00
John-David Dalton
bb95fb7d07 Reduce _.pluck.
Former-commit-id: 91db56f95d258070a0d25e4e4b74917e52b8cefe
2012-12-01 10:47:00 -08:00
John-David Dalton
2edb11376d Avoid script injection unless the JS engine is inferred to be Firefox's.
Former-commit-id: 1e267374fe85a858197609b35b85670394c0b66d
2012-12-01 01:08:38 -08:00
John-David Dalton
e7f5ebf912 Rebuild minified files and docs.
Former-commit-id: 18a7f085459a08c6440be3e14d3f663fa181032d
2012-11-30 23:17:00 -08:00
John-David Dalton
da9758c2f3 Ensure bound result of _.bind(func, …) is an instance of bound and func.
Former-commit-id: d8176ad5eb45a3d675617676fc1eee4d9cbd6ebc
2012-11-30 23:16:39 -08:00
John-David Dalton
3e11d58d73 Ensure _.toArray returns a dence array.
Former-commit-id: 534091d4d200208b8aa831d86801d5e9d73410fe
2012-11-30 22:51:15 -08:00
John-David Dalton
6b35c097d6 Make deep _.clone copy array properties assigned by RegExp#exec.
Former-commit-id: b465457babfc04e8204048dfaeff6e5d37e5e43c
2012-11-30 00:40:32 -08:00
John-David Dalton
619ba13265 Make _.uniqueId consistently return a string value.
Former-commit-id: 5a5c626df83b0fc78e9bae37510680383f112c0b
2012-11-29 22:38:15 -08:00
John-David Dalton
529c5b8abf Use forIn in _.isEqual instead of forOwn.
Former-commit-id: dd057e421be029d67cd293b733ee1cfee2b7715f
2012-11-29 20:57:13 -08:00
John-David Dalton
3a5ed6e800 Ensure revised _.isEqual works correctly in Underscore build.
Former-commit-id: 24c01405f08f8925bfe473d5d7e9ad0a270382b6
2012-11-29 08:54:33 -08:00
John-David Dalton
52cddc015b Make _.clone follow the structured cloning algorithm's behavior for cloning objects created by constructors other than Object and make _.isEqual equate objects to arguments objects.
Former-commit-id: a387c6444694d8d550ab463ea5290088d3356d8b
2012-11-29 02:04:16 -08:00
John-David Dalton
4a01f4f65f Update vendor/underscore.js
Former-commit-id: d74b9331b5547cfde6c04bd1b915e983187b2ec0
2012-11-27 19:25:55 -08:00
John-David Dalton
f9768cb5a3 Use typeof x == 'undefined' checks instead of x === undefined for consistency with other typeof checks.
Former-commit-id: 8ab7d3efe54aa7017b52295b0598b75c297a6277
2012-11-26 09:24:51 -06:00
John-David Dalton
221e0e550c Optimize _.forEach, _.forIn, and _.forOwn.
Former-commit-id: 5d3b83ec0d5240ee14a86421994de86f311089fd
2012-11-24 23:21:30 -06:00
John-David Dalton
d2d1d42d0f Optimize _.isNumber and _.isString. [closes #126]
Former-commit-id: 633dfe2e9c2c0ff7e54d5bbb4bf95f9adcca83c4
2012-11-24 09:46:20 -06:00
John-David Dalton
faf018a097 Rebuild minified files and docs.
Former-commit-id: b3e87e12dfa55dcaa813d31b2ef0749a83b652aa
2012-11-24 01:49:56 -06:00
John-David Dalton
a2a71a107e Fix onerror typo.
Former-commit-id: 61ba70537963824f396496cc59e7cfac1e9f8c8a
2012-11-24 01:36:18 -06:00
John-David Dalton
fc9c937e67 Simplify iteratorTemplate and support for minifying double quoted strings in source.
Former-commit-id: d18cbd6dc380001fe3617f6891c84a794a13c8d1
2012-11-24 01:34:00 -06:00
John-David Dalton
b4f2e9b442 Fix build.
Former-commit-id: dba1a3fa7526001d0062dc6e0b44f3c6e3d3d8db
2012-11-23 13:26:12 -06:00
John-David Dalton
1672645e73 Avoid engine slow path for primitives in _(…). [closes #123]
Former-commit-id: 32e33b0c0d192915e6d5a83001b85645829ca0ab
2012-11-23 10:19:10 -06:00
John-David Dalton
4a42c44101 Use createFunction in _.template.
Former-commit-id: c996d94c7002bf4a89092b9cf7f4e5e80f70d9fd
2012-11-23 10:05:15 -06:00
John-David Dalton
383b1a5769 Avoid Firefox's unoptimized Function constructor.
Former-commit-id: 7cc5fc63c0cebd1410edde47c88e580c64fa2b98
2012-11-23 01:14:44 -06:00
John-David Dalton
77bac4cf9e Narrow the scope of regexes used in build.js to the functions they relate to.
Former-commit-id: 6d838b24778d5e2107f4f5b25613ae40f363e969
2012-11-20 16:20:06 -06:00
John-David Dalton
e2b8e530c9 Merge pull request #119 from bestiejs/no-chain
Make `_(...)` wrapped values chainable without the need to call `chain`

Former-commit-id: 2e133540c0bedb41440bab592f1bacb75d426687
2012-11-20 07:52:11 -08:00
John-David Dalton
e9f752bd67 Merge /master into /no-chain
Former-commit-id: 59e5a4b13eb8bddd39bd37d917344715d62bf385
2012-11-20 07:47:48 -08:00
John-David Dalton
4b31921eb4 Rebuild minified files and docs.
Former-commit-id: 9565bb8c27577b72cf42d79cc7a1569a496d8bdc
2012-11-20 07:44:25 -08:00
John-David Dalton
3df9fc6225 Ensure _.reduce and _.reduceRight pass the correct number of callback arguments.
Former-commit-id: fec2d28b5a69ceb590e0ef1d8a0792b25b53c7e9
2012-11-20 07:43:09 -08:00
John-David Dalton
b57fe466ce Make _(…) wrapper versions of _.first and _.last capable of returning wrapped and unwrapped values.
Former-commit-id: b30704c1ce359213aa09069b290ee55edfb3e33e
2012-11-20 07:32:51 -08:00
John-David Dalton
bd4bff3b6b Add lodash.prototype methods that return non-wrapped values.
Former-commit-id: b7ecb8c91ec9647827a80a297b966639c6580ef0
2012-11-19 23:02:35 -08:00
John-David Dalton
9d4618a223 Merge /master into /no-chain
Former-commit-id: fcef4ca54be1907762e92ee528b650bea9759c1d
2012-11-19 21:52:25 -08:00
John-David Dalton
93636180df Fallback to the local npm install if there are problems resolving the npm -g root path. [closes #122]
Former-commit-id: 1cbf807877e51198853950e5ebd1b49a6e20d123
2012-11-19 21:42:54 -08:00
John-David Dalton
fcceaa168f Update v0.10.0 changelog in README.md.
Former-commit-id: daf4501ee97420d93bb02d7c1dfd5498d6618bb9
2012-11-19 21:12:57 -08:00
John-David Dalton
2639cc6138 Update vendors.
Former-commit-id: e109c9ffd436610d066493b07bd38293e1ec01a7
2012-11-19 20:54:23 -08:00
John-David Dalton
4a99c2e928 Add support for NodeLists in _.toArray for IE < 9.
Former-commit-id: 67b26fe6fe60d77c0b38c48865bfd2ca56f7b470
2012-11-19 20:47:16 -08:00
John-David Dalton
7d5af3df05 Remove deprecated indicators from _.isFinite, _.isNaN, _.isNull, _.isUndefined, and _.result docs. [ci skip]
Former-commit-id: 39a6e1a4a948469993afb90c6303f1f6faa661fd
2012-11-18 22:37:47 -08:00
John-David Dalton
c88b80d2a0 Add documentation note to _#chain. [ci skip]
Former-commit-id: 90b50a50b6b104cd9e2bbccc4412346dfd6a6bba
2012-11-18 22:35:23 -08:00
John-David Dalton
819d4abaa2 Add _#toString and _#valueOf.
Former-commit-id: adb194b6270fc72f794c69343891a2e891b90051
2012-11-18 21:50:41 -08:00
John-David Dalton
20630aeb47 Remove the need to call chain on _(…) wrapped values.
Former-commit-id: 21861c88e3ec9af955d844c025b50cb32c322809
2012-11-18 21:06:24 -08:00
John-David Dalton
0c0db3babb Remove deprecated indicators from _.isFinite, _.isNaN, _.isNull, _.isUndefined, and _.result docs. [ci skip]
Former-commit-id: 597001cfe5ef71d40b3254344eb5dbbe9905430a
2012-11-18 15:41:07 -08:00
John-David Dalton
e7761f7e57 Minor cleanup to README.md.
Former-commit-id: a4ded5a5b2f41016fad5e4c7491dd96704e9d69a
2012-11-18 14:38:04 -08:00
John-David Dalton
064fd497ae Bump version to v0.10.0 in package.json.
Former-commit-id: 0be4f584b19bc6d53bd6bce61e8ac3cc249f2003
2012-11-18 13:39:43 -08:00
John-David Dalton
49c60b6b75 Add link to ES6 draft spec for Object.assign and add more notes to the v0.10.0 changelog to README.md.
Former-commit-id: c0f5d00e506f6b4a03d0844e7cc8379d462f9fff
2012-11-18 13:31:50 -08:00
John-David Dalton
ca7f36506c Update vendors.
Former-commit-id: cdd10877e964b62eb73747fbaec5f7eda6ace599
2012-11-18 00:00:51 -08:00
John-David Dalton
155f0a9736 Bump to v0.10.0.
Former-commit-id: fd251fd13dfda3120569d3d284aa55ded0b806af
2012-11-17 23:48:57 -08:00
John-David Dalton
25e1eb3ce9 Rename _.lateBind to _.bindKey. [closes #114]
Former-commit-id: 971e56cb86b5298ba2a9f92365f0463665d27230
2012-11-17 00:06:55 -08:00
John-David Dalton
f2f980928b Update vendors to replace CRLF with LF.
Former-commit-id: 65f8982b6cfe965808ef97acba49c4d1cef6cd18
2012-11-16 22:09:41 -08:00
John-David Dalton
1d121a97a7 Convert resolve real paths of npm -g root. [closes #116]
Former-commit-id: 0379fdf33da465fbb9ac78ddaa9e820b9b3e9987
2012-11-16 21:59:36 -08:00
John-David Dalton
211d13da09 Cleanup build/post-install.js.
Former-commit-id: efb35fab14fa62b79caec2ba806173415b217207
2012-11-16 21:06:48 -08:00
John-David Dalton
11343d469e Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: 08347b0f4b7c5853e28557d482424b63028505b6
2012-11-15 23:58:35 -08:00
John-David Dalton
d7c8041aa1 Update Backbone build method dependencies.
Former-commit-id: 808b991f6cebc72c182ce8d0def370778cce0b05
2012-11-15 23:51:49 -08:00
Kit Cambridge
9587e30af8 post-install: Show instructions for manually downloading the minifiers. [#113]
Former-commit-id: d9b794bc51057216f922f43c5bb6d8c9dc38f570
2012-11-15 22:21:34 -08:00
John-David Dalton
76fa7affaf Add @cascadiajs video link to README.md. [ci skip]
Former-commit-id: 72fbf780e0727ce751090b09cf783e5a88752614
2012-11-14 23:55:52 -08:00
John-David Dalton
2971dd8672 Cleanup npm note in README.md.
Former-commit-id: d1cd290edb316116c69cf9b7b79a10498fd6df3c
2012-11-14 22:13:22 -08:00
John-David Dalton
2a33fe3564 Add .gitattributes.
Former-commit-id: 4a4ecefda83fb408200dfb106ea5b0a837af43c0
2012-11-14 21:59:18 -08:00
Kit Cambridge
46cdf5da70 Encourage users to update to the latest npm version.
Former-commit-id: bbcab6e7338039fb3343cfaca09c17ae0ea293a1
2012-11-14 20:03:40 -08:00
John-David Dalton
28c801bfd4 Add more info about the csp build to README.md. [skip ci]
Former-commit-id: ceb0cb3588bff9cadd791b091390799b506874ca
2012-11-14 08:17:43 -08:00
John-David Dalton
c22cd40293 Move Underscore build _.template replacement within build.js.
Former-commit-id: 3c2971a67986e69a9ea0952056e2cdf95f73435f
2012-11-14 00:31:48 -08:00
John-David Dalton
56bd430983 Cleanup and comment _.merge's _.reduce support.
Former-commit-id: 2cfc41f1c00a7a3981c51be7e8005f0cc95ac692
2012-11-12 07:41:31 -08:00
John-David Dalton
d873890e46 Remove alternative _.where for Underscore build.
Former-commit-id: 4e42a26d4c16157957fa43dbb31ae9706e2641b8
2012-11-12 07:35:33 -08:00
John-David Dalton
d29b8eca3c Ensure _.merge works with _.reduce.
Former-commit-id: de53bfd024c7a088c98ee94c95d0c57fb00ed032
2012-11-12 07:35:05 -08:00
John-David Dalton
6f258000fe Add the build commands used to the custom build's copyright/license header. [via @phated]
Former-commit-id: 2e1ff0c6a83e3c4c404ad4bac968f12d34afaa6e
2012-11-11 21:42:52 -08:00
John-David Dalton
255211cd07 Update vendor/underscore.
Former-commit-id: 3e8a169e8cb81fd852e41420ad317ee12ae486f9
2012-11-11 20:00:48 -08:00
John-David Dalton
f6d28a90e3 Make _.where iterate over only own properties.
Former-commit-id: 29b4cafe5271cad70c711c2d401cea627fa97e33
2012-11-11 20:00:20 -08:00
John-David Dalton
ed66ff88a1 Update minified and doc builds.
Former-commit-id: 5d6d8ee0538a2502eef6c38d77e58d31e8026e53
2012-11-11 16:20:16 -08:00
John-David Dalton
82e58f2bf9 Make _.defaults follow _.assign and only assign own properties of source.
Former-commit-id: 114dc47bbfa6db6a53a2fa03dd477fe86c3395cb
2012-11-11 16:16:11 -08:00
John-David Dalton
797a87ca26 Make _.extend and alias of _.assign and make _.assign iterate only own enumerable source props to align with ES6.
Former-commit-id: 37ba7c3066c1ea70210346a9bf598e8587e907db
2012-11-11 15:52:43 -08:00
John-David Dalton
ec6a709393 Add ES6 _.assign alias of _.extend.
Former-commit-id: 20a0e0d295cb90a1756a5831b0b6684b97477170
2012-11-11 14:03:10 -08:00
John-David Dalton
07cbfdb424 Optimize _.contains.
Former-commit-id: b50628adedd21fe2c099f4dcab1aa9f0036a22ed
2012-11-10 23:09:23 -08:00
John-David Dalton
3b9bd944fb Ensure _.find works correctly in the Underscore build.
Former-commit-id: c22b91ffcab34b75415f126582c48c168a7cc759
2012-11-10 22:42:13 -08:00
John-David Dalton
934e585cb3 Optimize _.filter.
Former-commit-id: 565c1b0159207e9d9413d82b5827ed685564efff
2012-11-10 21:15:25 -08:00
John-David Dalton
3a68f4cf54 Cleanup build/post-install.js.
Former-commit-id: 5e289381b90e764b38bf5a3ba1866b6658766f52
2012-11-10 21:09:50 -08:00
Kit Cambridge
bd00fcb875 Improve zlib error handling. [#109]
Former-commit-id: f6d7dd9afb630125d55188401da037ed97d6e5c5
2012-11-09 14:24:57 -08:00
John-David Dalton
905dd5a70f Add template precompiler unit test for ES6 delimiters.
Former-commit-id: dc4561afa74844294bf38ecff7dadd43c0b0b99f
2012-11-09 11:13:46 -08:00
John-David Dalton
c65250ec39 Document the this binding of the returned functions of _.after, _.compose, _.memoize, _.once, and _.wrap. [closes #107]
Former-commit-id: 223c27fca0a07b5ee8ccd70ac78247a6af50cecf
2012-11-09 05:40:59 -08:00
John-David Dalton
607eec6ff0 Bump to v0.9.2.
Former-commit-id: cd4b7bd3db92f07e0ac1af74ee70bd6525f36c55
2012-11-09 04:58:41 -08:00
John-David Dalton
14fb3bde60 Cleanup build/minify.js.
Former-commit-id: 08896dd9407afdbaa98a7d6011121e785e62ede9
2012-11-09 04:46:01 -08:00
Kit Cambridge
6782bc8ca2 Skip {hybrid} advanced compilation for templates.
Former-commit-id: d76ed99ba7d906812b24a751b56d3a8a6b955203
2012-11-08 17:07:01 -08:00
Kit Cambridge
3db6841305 Preliminary Closure Compiler simple optimizations support.
Former-commit-id: 515b8e47b6fa08e1f36d0e735f8a2bf188286d12
2012-11-08 16:32:17 -08:00
John-David Dalton
f478fa8029 Add lodash moduleId=… build option.
Former-commit-id: a68a2085028a3832181aaf02081311d84e93fab5
2012-11-08 16:08:03 -08:00
John-David Dalton
d255f8400f Work around a Closure Compiler bug without a pre/post process. [via @phated]
Former-commit-id: 2b9ead74c8c29357a7d8af965b6e0702e77872a5
2012-11-08 09:40:21 -08:00
John-David Dalton
a1545c60d6 Optimize _.every, _.find, and _.some.
Former-commit-id: 37ace9b92bb2b9875093b73e460f01df9d9c211a
2012-11-08 01:05:34 -08:00
John-David Dalton
ed48603ab5 Update vendor/underscore.
Former-commit-id: 3d39397aaee8408778b738c3aa105eda67abd6bc
2012-11-06 22:00:01 -08:00
John-David Dalton
23a0507439 Simplify iteratorTemplate, createIterator, and _.keys.
Former-commit-id: 89c6d5a0311944e86fa4fca330328e903ce18958
2012-11-06 21:59:42 -08:00
John-David Dalton
482e013887 Cleanup _.max and _.min.
Former-commit-id: 9688a11db3d90f6b0f4a7d6d13b4e1c6c0709870
2012-11-06 20:22:58 -08:00
John-David Dalton
265727c30f Remove "resolved issues" that are covered under "features" in README.md.
Former-commit-id: 2239f4c78c7164e85c8fbae2e9d6fb4dfac42f1a
2012-11-06 08:01:37 -08:00
John-David Dalton
4d3f4e096b Remove tar module dependency from package.json and cleanup /vendors.
Former-commit-id: 6d32d4a3b5ef1c79e07ae3328080cb1d02f6f794
2012-11-06 07:47:57 -08:00
John-David Dalton
7629bca62d Remove stderr from the exec error check in post-install.js. [closes #101]
Former-commit-id: eecd66ffe3bce1bd6ef0261140bd634567ec60ae
2012-11-06 03:23:14 -08:00
John-David Dalton
2712f17262 Tweak capturing spaces in build.js regexes and update lodash.min.js.
Former-commit-id: a5d30941945150251a6fc4342840d906a3af1ad9
2012-11-06 03:05:09 -08:00
John-David Dalton
86a37559ba Update build dependencies.
Former-commit-id: 6a9680a118115e059636a5fc0125c4efa5161765
2012-11-06 02:56:34 -08:00
John-David Dalton
b504a557f4 Add unit tests for _.max and _.min accepting strings and adjust the build/test-build.js.
Former-commit-id: b567c019146e96ad257dab8fe1b4138d07f470c0
2012-11-06 02:56:14 -08:00
John-David Dalton
e849b46f6b Rebuild docs and minified files.
Former-commit-id: caae765d9b2e7f4de803e6057e8a2c20668c742f
2012-11-06 01:56:14 -08:00
John-David Dalton
738dc50a6f Correct _.initial and _.rest documentation. [closes #104]
Former-commit-id: d9ace8a8198b22def34c1ae3adc9421ab97790fa
2012-11-06 01:55:23 -08:00
John-David Dalton
3138523b5b Optimize _.max and _.min.
Former-commit-id: 8c5dc8606d00e68dee63f06438e83c3bd65f3b29
2012-11-06 01:46:36 -08:00
John-David Dalton
537643a4c3 Use Underscore v1.4.2 _.isFinite equivalent for lodash underscore build.
Former-commit-id: 5c6f0efb0159d8044d6f4670fb42fabc6383dda2
2012-11-04 19:20:52 -08:00
John-David Dalton
04bfe098ed Tweak _.max and _.min documentation. [ci skip]
Former-commit-id: c8506aa1b15143bc8ee1eea59027eed188a745ba
2012-11-04 18:36:05 -08:00
John-David Dalton
c507887bdd Support ES6 template delimiters only when _.templateSettings.interpolate is unmodified.
Former-commit-id: 4c4f9163af0ef2f9a8218a167092584a1d288d9e
2012-11-04 18:16:14 -08:00
John-David Dalton
ee261313ac Rebuild docs.
Former-commit-id: 7ae9d217bdbb78e9ec95d0a289a56cfc6489bb47
2012-11-04 15:36:08 -08:00
John-David Dalton
c9c152bc8a Add support for ES6 template delimiters to _.template.
Former-commit-id: d84ef4fd89d9a51237b22a09affab366974b93ff
2012-11-04 15:27:52 -08:00
John-David Dalton
6c8e19a321 Update vendor/backbone.
Former-commit-id: dc1a37f3c44eecc1fcd1cba2018d70e8c337d6f3
2012-11-04 14:40:23 -08:00
John-David Dalton
218e3b66f2 Add fromIndex to _.contains.
Former-commit-id: 9f61db3ceda2d87ddfbfd4cffb2bd1f9732cc79a
2012-11-04 11:24:29 -08:00
John-David Dalton
1d3488fa8e Update .jamignore file. [ci skip]
Former-commit-id: f34029dbc566eec92b8648d232f868a9e431c085
2012-11-04 08:26:54 -08:00
John-David Dalton
f4c1682592 Merge pull request #102 from ryanramage/patch-1
Fix for jam dependencies.

Former-commit-id: 873396512a836cdf1ea6f8d70e5a97343b696ba1
2012-11-03 15:27:24 -07:00
Ryan Ramage
28ac6623c7 Fix for jam dependencies
jam install lodash is not working as it is thinking that tar is a dependency.
Just adding a empty dependencies object to the jam section fixes this.

After pulling this, could you republish to the jam repo? No need to bump the package version, just

    jam publish -f


cheers

Former-commit-id: 1364abac5c9005053f0c604ac580f753426b4f8d
2012-11-03 16:24:28 -06:00
John-David Dalton
16ab179e1d Add _.uniq unit test.
Former-commit-id: 29a09711863011681a45ae800502eca9a7022799
2012-11-02 23:00:57 -07:00
John-David Dalton
a8ff5385dc Cleanup cachedContains.
Former-commit-id: a2b396e910eacc0e204d5bdb3f4ed834b8d6e148
2012-11-02 22:50:45 -07:00
John-David Dalton
9dc33c6086 Remove the large array optimization for _.uniq from the underscore build.
Former-commit-id: 4cafbf2568c786834e40f0e4ea9b64ff670f60b7
2012-11-02 22:31:04 -07:00
John-David Dalton
b17c576705 Optimize _.uniq for large arrays.
Former-commit-id: 6c739aab6bcb8c31f9db9821d6eaf50c9a4fb80b
2012-11-02 12:16:39 -07:00
John-David Dalton
96f8f2891b Fix typo in _.times test.
Former-commit-id: 0c32ded25b80debf4ae2ea9a9e60ee74b98c15a1
2012-11-02 11:54:37 -07:00
John-David Dalton
581d73afe0 Update vendors.
Former-commit-id: 76887b14d32e661f4c415393637478d93174329d
2012-10-31 00:38:38 -07:00
John-David Dalton
1baefebe8f Bump to v0.9.1.
Former-commit-id: d7cece2893c97c38a9379877f987ec2cfe60cb47
2012-10-31 00:18:40 -07:00
John-David Dalton
39fb05033f Tweak times of async unit tests.
Former-commit-id: 064813c739edde5f6236f33a3c75a6cb39ba774e
2012-10-30 23:49:23 -07:00
John-David Dalton
c6093c084c Ensure _.isFinite returns false for non-numeric strings. [closes #98]
Former-commit-id: 2505c8d7d9a0ab1e5f669730c318efdc9232799b
2012-10-30 21:36:53 -07:00
John-David Dalton
dfec6d9a6d Adjust _.throttle unit test.
Former-commit-id: 1cc461b62fb5ca20f2e623ab145f157a92d18fcf
2012-10-30 08:10:40 -07:00
John-David Dalton
08b1261c75 Update @category docs.
Former-commit-id: edf8964b2061c80d8c868ea71b8c05a29cee4e28
2012-10-29 22:01:34 -07:00
John-David Dalton
2ad6faae3a Ensure _.every returns false as soon as the callback result is falsey.
Former-commit-id: d5488688c4a30376999b04ba80f1551af403b516
2012-10-28 00:28:40 -07:00
John-David Dalton
4eff301db3 Reduce the size of _.union.
Former-commit-id: c8f4d18817e6a294ece014b65fb3c690d4ddf7b9
2012-10-26 08:51:28 -07:00
John-David Dalton
447e43e8f4 Remove chainability from _.forEach in the lodash underscore build.
Former-commit-id: 1db7daafacddcf78492643d6c6301af706b92150
2012-10-24 20:05:50 -07:00
John-David Dalton
7457001275 Add CDN links to the Underscore and development builds and cleanup changelog.
Former-commit-id: 1414f0509900e858c441ad642e27b369fbf875c8
2012-10-24 08:11:59 -07:00
John-David Dalton
fcabd5e79e Update .npmignore.
Former-commit-id: 7073069a2002a707bdf2becf80c653767e93d7a6
2012-10-24 01:09:42 -07:00
John-David Dalton
594002316c Bump to v0.9.0.
Former-commit-id: adbe6963da3dd52bed5e8adcf7875871b561584c
2012-10-24 00:02:06 -07:00
John-David Dalton
eccf92ebaf Cleanup build script comments and fix Closure Compiler bugs.
Former-commit-id: 84771ac79d6cfd7ec3b0d29586edf58d617d5577
2012-10-23 23:54:53 -07:00
John-David Dalton
ad9ddc5621 Remove optimized methods list from README.md.
Former-commit-id: 91f5fd06073dd4b0e4ef450392550e6eb7245c12
2012-10-23 22:20:19 -07:00
John-David Dalton
1825dd916e Fix unit tests and reduce object/array references.
Former-commit-id: 25aaabd506cb4515cf833ebb104ba0146e4354dd
2012-10-23 22:16:53 -07:00
John-David Dalton
dfcde8171e Reduce _.toArray and _.difference.
Former-commit-id: a0253006b0f38744314c449dbcffa15b67390910
2012-10-23 18:08:09 -07:00
John-David Dalton
b0361183df Add _.compact, _.defaults, and _.extend benchmarks.
Former-commit-id: adebc01aeda08323174af63166c2b6e0e798c313
2012-10-23 09:09:14 -07:00
John-David Dalton
71fe13b249 Simplify _.mixin and _.wrap.
Former-commit-id: 89b802a1b887fcd61af8938e84f3ff06e3a7938c
2012-10-23 09:03:56 -07:00
John-David Dalton
442f51224d Update vendors.
Former-commit-id: 1e711564671134b82eed980bccb628af612ae195
2012-10-23 01:21:45 -07:00
John-David Dalton
974678f500 Remove unused iterator options references from build scripts.
Former-commit-id: 9610a20d8fea6778523d1d0a8b3e16b930534f20
2012-10-23 00:30:59 -07:00
John-David Dalton
8329409c03 Reorganize method order.
Former-commit-id: a24a02725595ac28633a24a1f33c152db87dda77
2012-10-22 23:57:03 -07:00
John-David Dalton
06c2ac2724 Reduce iteratorTemplate.
Former-commit-id: 586e08c796462e1e0ff59a14a9cde07723abd771
2012-10-22 23:41:19 -07:00
John-David Dalton
04e9e8f9d8 Remove pseudo private _shimKeys.
Former-commit-id: e8289094ceb14e62ce5d9fb74e7b9021f30f5aab
2012-10-22 22:42:42 -07:00
John-David Dalton
7a3330cb8c Simplify createIterator.
Former-commit-id: 7187930670d888550ea741967da916a13eef091d
2012-10-22 22:29:46 -07:00
John-David Dalton
cae29941ea Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: 60eee2c007a673cfe706c71a0ada05582a72e790
2012-10-22 21:37:32 -07:00
John-David Dalton
15cf2ad076 Rework "strict" build option and fix typo in test-ui.js.
Former-commit-id: e06045546bea43bbe1fff78d6c948036ad98a88c
2012-10-22 21:28:12 -07:00
John-David Dalton
2f16f6dc23 Remove extraneous skipTest call from test.js.
Former-commit-id: 58f747ff8f8beee621038f7e06bfe3aa408f0b14
2012-10-22 20:27:45 -07:00
John-David Dalton
528aebffe4 Reduce _.where and remove compiling from _.bindAll.
Former-commit-id: 78f4db8c112ad9687f7a7e4322460f7b5edf5af9
2012-10-22 20:27:04 -07:00
Kit Cambridge
e82b2f0cbe Merge pull request #96 from terinjokes/master
Fix a typo in the `_.groupBy` docs.

Former-commit-id: a5fb6f9769bb80d8bb6a0e2a176385a2f0d7fd83
2012-10-22 12:14:37 -07:00
Terin Stock
73e64f3e4a Tweaked and rebuilt docs for _.groupBy.
Former-commit-id: a541ec305742ab6f330aeceae4804577f64905ab
2012-10-22 11:59:31 -07:00
John-David Dalton
15f5b1f830 Ensure _.map rewrite handles objects with non-numeric length properties correctly.
Former-commit-id: 60a4f322dcd284db5bb8ad4d8d5138e52e14cce3
2012-10-22 01:56:50 -07:00
John-David Dalton
1b0a77f9a8 Add more and rebuild documentation as well as update minified builds.
Former-commit-id: fab04394692ecbfb0d55e212928f0ff53902d921
2012-10-22 01:21:53 -07:00
John-David Dalton
0f82ae3644 Cleanup build/post-install.js.
Former-commit-id: e92e1c1e1c1cd821721085a3e1520756c158dfb5
2012-10-21 23:24:42 -07:00
John-David Dalton
de3b01b54b Remove unnecessary return statements from _.delay and _.defer.
Former-commit-id: fb912605e8414b1a4d9d2d8ae96f21dfe95609c2
2012-10-21 17:29:41 -07:00
John-David Dalton
c17e3646d5 Rebuild docs.
Former-commit-id: 7c2d47728fdb8a61e739f8bbec4fad619342f2c5
2012-10-21 11:44:06 -07:00
John-David Dalton
26aed3e89e Reduce _.isFinite, _.sortedIndex, and _.map, tweak docs for _.unescape, and ensure rewritten _.map works for objects correctly.
Former-commit-id: 43c810538b500b55018d4cfb9812618671fae2c7
2012-10-21 11:37:10 -07:00
John-David Dalton
74caea8f8f Inflate dev test dependencies for easier inspection and swap firebug-lite with its debug build for Opera support.
Former-commit-id: 2f9ee3e33384b5ef5ed3da9c9ad5bbe7b561d265
2012-10-21 09:23:30 -07:00
John-David Dalton
2cf07fa072 Make variable naming more consistent and add indicatorObject for more clarity.
Former-commit-id: 27b5730a33222409c69d174962db7a25e06bd373
2012-10-21 01:48:38 -07:00
John-David Dalton
1181cd2fd7 Reduce _.uniq in the lodash underscore build.
Former-commit-id: 12c8ee7a269dbaebbe4d05d902bfcc4bed193cec
2012-10-20 20:16:39 -07:00
John-David Dalton
850d55ab45 Rework _.intersection.
Former-commit-id: b05442888b15b448f6594b46b5cf1a2a06611da2
2012-10-20 19:40:38 -07:00
John-David Dalton
a0c91b8754 Remove clearTimeout and setTimeout from the list of properties to escape in pre-compile.js.
Former-commit-id: 7d2c5fb866bd53df079fff3dab533866ab1f79f4
2012-10-20 18:55:28 -07:00
John-David Dalton
937bdc05c8 Reduce _.intersection and _.where.
Former-commit-id: b8d87f72c72c0f42e693eff67296135f0a5c548b
2012-10-20 18:54:34 -07:00
John-David Dalton
453755bfa1 Fix _.isFinite unit test in Node and remove isStrictFast use.
Former-commit-id: e2e04f4cee0a52f4461c8ee84c157c1ea0e4c132
2012-10-20 16:37:07 -07:00
John-David Dalton
400b6fbb61 Sync _.isFinite changes with Underscore and update vendor/underscore and vendor/backbone.
Former-commit-id: 9acb93a276a11da8186da76bd82f1fd6f89c27dd
2012-10-20 13:02:39 -07:00
John-David Dalton
8c4e882fa3 Reduce file size further.
Former-commit-id: e66751a6a76331dedcfc68e9eaf81eddf5afe8b2
2012-10-20 12:59:37 -07:00
John-David Dalton
84eec23793 Ensure _.every and _.some work in Underscore builds without the "exit early" feature of _.forEach and reduce unexposed forIn and forOwn.
Former-commit-id: 35488c1c0f70cb5446c875bd4647b0ce47077d9e
2012-10-20 02:45:59 -07:00
John-David Dalton
7dfe69f6a5 Reduce iterator template and _.bindAll.
Former-commit-id: 2655b7ca336baf9e04c87ff546c4bfc614873b50
2012-10-20 01:14:28 -07:00
John-David Dalton
ada6115073 Simplify _.bindAll.
Former-commit-id: 02de2a2a6020461d42e222a476c2fb7e66f6895e
2012-10-19 08:23:52 -07:00
John-David Dalton
e1643566f9 Capitalize comment in post-install.js.
Former-commit-id: ea8604f6d044b60378548afea2ca672ac5795244
2012-10-19 01:33:06 -07:00
John-David Dalton
053a9a6317 Remove compiling from _.map.
Former-commit-id: 5274c0972cd7ab848739c39cfe46586d88c93327
2012-10-19 01:25:07 -07:00
John-David Dalton
425b976cc0 Remove compiling from _.every, _.filter, and _.some and add related benchmarks.
Former-commit-id: 545195dc7085c1294ad8709f44fddb0c3c6a0545
2012-10-19 00:59:14 -07:00
Kit Cambridge
5f5f1b1e09 Add download progress messages and a comment explaining the Accept header to the post-install script.
Former-commit-id: 10ed30f49f3028169610f7e4a10427e55a4c25eb
2012-10-18 23:30:38 -07:00
John-David Dalton
e6f4935c7b Cleanup package install related files.
Former-commit-id: ac905fe660af05077a52b001b295ee557aaacfa8
2012-10-18 23:13:55 -07:00
John-David Dalton
6452e5976b Merge branch 'master' of github.com:bestiejs/lodash
Conflicts:
	build/post-install.js

Former-commit-id: 793ebf1f983d4077c7b333c9305958a409e18d95
2012-10-18 22:36:33 -07:00
Kit Cambridge
2383dff317 Avoid including npm as a dependency; parse the npm -g root output directly.
Former-commit-id: a6b432de64292ce2af280d0a861f610ceeabce6c
2012-10-18 09:43:53 -07:00
John-David Dalton
de3e5042fb Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: 24cd5b5b280e405b4261511222ba6bf7dfacc783
2012-10-18 08:21:01 -07:00
John-David Dalton
0dcc35152c Simplify lodash underscore build's _.template.
Former-commit-id: d3f98bf310f5ef7c06cacb7716fc0999440d411b
2012-10-18 00:51:26 -07:00
Kit Cambridge
8eecfcbfaf Manually download Closure Compiler and UglifyJS for Travis.
Former-commit-id: 8aa022e2816917ec4bb42c77cdf5d26ed53e1e3a
2012-10-18 00:39:58 -07:00
Kit Cambridge
efa3e60f89 Add npm as a dev dependency.
Former-commit-id: 7f7a80492f05afa66925cb6fba1b0000b376807e
2012-10-18 00:32:42 -07:00
John-David Dalton
782df659bc Fix typo in _.where.
Former-commit-id: e4da5a993a26eb3e408c9a2ddd408ee785671088
2012-10-17 23:26:16 -07:00
Kit Cambridge
0aa158824f Add npm as a dev dependency.
Former-commit-id: c72a6e13774bce378dd2ab5982f51ba37c6a7bc0
2012-10-17 22:46:07 -07:00
Kit Cambridge
da7fb44e5d Add the post-install script.
Former-commit-id: cab08838401ab9ccf4f2333a3d353c852f59a91b
2012-10-17 22:11:02 -07:00
Kit Cambridge
4b59ef802e Move dependency downloading into a post-install script.
Former-commit-id: c85d930fe4be787d6583015aa79d922d8909367e
2012-10-17 22:08:14 -07:00
Kit Cambridge
be5789cd56 Automatically download Closure Compiler and UglifyJS if they are not available. Add tar as a dependency.
Former-commit-id: baff21528a09bad5beff5eab65d1b7ffe4fc8a40
2012-10-17 21:22:02 -07:00
John-David Dalton
9adf0e5d59 Update .gitignore, .jamignore, .npmignore.
Former-commit-id: a01be2b79a51188e3bbd91926c68afcb17476808
2012-10-17 08:48:47 -07:00
John-David Dalton
e2de22470e Cleanup vendors.
Former-commit-id: 9e4f91aa0d498c1b160907f365b82b902e516880
2012-10-17 07:19:57 -07:00
John-David Dalton
3b7ab2e553 Make lib references more generic in perf.js.
Former-commit-id: 9984b8ac9f552d5a1051d738b57ff0b69b8d764a
2012-10-15 08:15:29 -07:00
John-David Dalton
8617dedc46 Use the buildPath and otherPath in the logged perf status updates.
Former-commit-id: 0f1301e68dca84c0f72459bcfed11b3cc55cb577
2012-10-14 23:32:24 -07:00
John-David Dalton
0b8f1a9a58 Add build dropdown to perf/index.html. [ci skip]
Former-commit-id: 669acae55ee53819fe4155aa0020cd40db7d6843
2012-10-14 22:18:53 -07:00
John-David Dalton
16748c0920 Cleanup lodash.js and ensure _.where returns an empty array when passed an empty properties object.
Former-commit-id: 34d1f8d967806d3c59895eff3a7d4d32262a46ea
2012-10-14 18:56:39 -07:00
John-David Dalton
01ec585a44 Cleanup _.merge.
Former-commit-id: 49c646ff8f199b001cfd8145d7e2076d8d1ceaf0
2012-10-14 15:37:49 -07:00
John-David Dalton
b5f2295f37 Simplify _.bindAll iterator options.
Former-commit-id: e9abbcc940f333e053d1ab5c35c7f4ae2d96d381
2012-10-14 14:55:51 -07:00
John-David Dalton
d6ca0199b7 Remove compiling from _.reject and consolidate iterator option objects.
Former-commit-id: 10eb78c0c4cdfc35317b9ad263768df60f70db40
2012-10-14 14:04:42 -07:00
John-David Dalton
2257c5e547 Remove arrayLikeClasses variable.
Former-commit-id: 6615f8b94da319bf25fffe7275c959293e5075e3
2012-10-14 04:17:23 -07:00
John-David Dalton
b5a3d39799 Improve _.isEqual performance.
Former-commit-id: d705b29825eff419ac14806f0a5fcf7c7458c6de
2012-10-14 03:06:25 -07:00
John-David Dalton
a26c3e9d3c Fix build after shimKeys change.
Former-commit-id: 7ca25a08f3ac20e3b8410fbc975c96da2570e0a7
2012-10-14 02:19:57 -07:00
John-David Dalton
98a09532eb Avoid argument issues in _.merge.
Former-commit-id: 2f8a798654e903454050211886b19b3b581a3c88
2012-10-14 01:52:48 -07:00
John-David Dalton
d736789bbc Remove compiling from _.invert and shimKeys.
Former-commit-id: 9fc384680960cf45f49f16e4cd84e3dca2b4cf19
2012-10-14 01:42:44 -07:00
John-David Dalton
82a6cfc03a Add _.reject benchmark.
Former-commit-id: 936a8b8915522abd5a64bbb2c7756a36a4af7c30
2012-10-14 01:40:50 -07:00
John-David Dalton
62e9c7c75a Add comments to test/test-build.js.
Former-commit-id: ae663d4570c3a464fffbf3090494b070279a24a7
2012-10-13 23:39:01 -07:00
John-David Dalton
eb32bd45e7 Rebuild docs and minified builds.
Former-commit-id: 556d91b9c58c9f6be2994ec17de3823f49416911
2012-10-13 23:33:16 -07:00
John-David Dalton
4b95f07923 Simplify _.omit and _.pick for the lodash underscore build.
Former-commit-id: 9a42c964ce4003bde1b4ce55f0f851141dbc9bb6
2012-10-13 23:32:17 -07:00
John-David Dalton
dea8ad4c49 Optimize _.contains and _.omit.
Former-commit-id: f1d7b5699bae6de90d880fe593531f7d3772924e
2012-10-13 23:30:25 -07:00
John-David Dalton
96553b217c Reduce _.merge.
Former-commit-id: 5797e14e589d39e553d7af109d282109e633cd80
2012-10-13 20:58:39 -07:00
John-David Dalton
3f79ed5d91 Reduce _.isEmpty and ensure dependencies are modified correctly for the lodash underscore build.
Former-commit-id: 23ff37da17578dfeafbabee4bcae100f4df68ed6
2012-10-13 20:58:08 -07:00
John-David Dalton
1e4283aad3 Remove compiling from _.functions, _.isEmpty, _.pairs, _.values, _.contains, _.find, _.invoke, _.pluck, _.reduce, and _.where.
Former-commit-id: 207f20330ede82cb58d4f008fe5164771e97a8b0
2012-10-13 15:12:21 -07:00
John-David Dalton
1dda31a28c Make remove compiling from _.merge, _.countBy, _.groupBy, _.pick, _.omit, and _.sortBy.
Former-commit-id: 52b245e69629e7a9fbe5f0dcbdfafabcd75d9dfc
2012-10-13 00:03:40 -07:00
John-David Dalton
10c87012be Update vendor/underscore.
Former-commit-id: 5ede87579d9b7a8e505da23fc3a4531be40a151b
2012-10-13 00:01:29 -07:00
John-David Dalton
bda00bf512 Add json3.js, remove json2 and jslitmus from vendors.
Former-commit-id: d801c48ec81ea2f5c5638910190da461facf98cf
2012-10-12 01:11:58 -07:00
John-David Dalton
c8f871ff2a Escape template properties for minified precompiled templates and add a lodash template="…" exports="…" build test.
Former-commit-id: 866252235232ab52cf21842554c37573de4cf402
2012-10-12 00:25:32 -07:00
John-David Dalton
58dc0b1aef Remove unnecessary template unit test.
Former-commit-id: 42ea5be4168d4db818ec93a8f6c61c51905127c7
2012-10-11 22:14:05 -07:00
John-David Dalton
4cd4d8f31a Add sourceURL template option. [closes #90]
Former-commit-id: 5db79c6b08aa7c8b2925db70d86dde75298da4c4
2012-10-11 22:13:42 -07:00
John-David Dalton
b751fd738d Tweak _.isPlainObject doc example. [ci skip]
Former-commit-id: 5d4916d5c1a2909062cc9f2646a580b630fb4e35
2012-10-10 00:46:52 -07:00
John-David Dalton
f97c6fb94c Tweak npm global install note in README.md. [ci skip]
Former-commit-id: 1105c1cf4c5889278eeb5be4bff9534091904821
2012-10-10 00:28:07 -07:00
John-David Dalton
219138ade6 Bump to v0.8.2.
Former-commit-id: edbb9d995a63ec8fd5a3b1a47ccda7b30c353b35
2012-10-10 00:03:39 -07:00
John-David Dalton
9086d189b9 Update vendors.
Former-commit-id: e88301bddf23f177a2d14f2c729877eaede022e5
2012-10-09 20:11:57 -07:00
Kit Cambridge
d1178defe0 Add a note about npm link. See #88.
Former-commit-id: 11c4a9bce02e5f143b09d0edff80362e2e824b10
2012-10-09 15:22:26 -07:00
John-David Dalton
691a561a95 Merge pull request #87 from danheberden/typo_fix
Fix typo in `_.indexOf` docs.

Former-commit-id: 25305344f272cb875a612e37a93ae252a53e1b4b
2012-10-09 13:56:59 -07:00
Dan Heberden
aaaac93bd0 fix tiny baby super small almost didn't need to worry about fixing typo from isSorted to fromIndex for indexOf method
Former-commit-id: 6f2a7b3e11c4830ec47c174f24badca3ef2e6530
2012-10-09 16:53:56 -04:00
John-David Dalton
fd790566b2 Ensure _.throttle clears the timeout when func is called. [closes #86]
Former-commit-id: 6f3b777aa247f059d97f965c02323d4ee6ab8464
2012-10-09 02:15:06 -07:00
John-David Dalton
db3b429784 Update _.min, _.max, _.shuffle build dependencies.
Former-commit-id: 21c4c99f8ead92b90b46c299fee59098131758b1
2012-10-09 01:43:24 -07:00
John-David Dalton
40ed3278d4 Rebuild minified files and docs.
Former-commit-id: b14af8d9fcb9046c2faf4374fe2e6e83c4f4f835
2012-10-09 01:02:14 -07:00
John-David Dalton
d174b13111 Add object iteration unit tests for _.max, _.min, _.shuffle.
Former-commit-id: 45129100fbbfa14610cacb055c1fa393ae6ce153
2012-10-09 00:59:55 -07:00
John-David Dalton
1708663b32 Move _.max, _.min, _.shuffle back to "Collections" methods for compat but still optimized for arrays.
Former-commit-id: 28cd9298915ad123445400a5d061ac8e9432eb6b
2012-10-09 00:48:02 -07:00
John-David Dalton
6fdce4ad0d Re-optimize _.max, _.min, and _.sortedIndex.
Former-commit-id: 7f449a4fde6777f14a1def0d767f2926bdea07c9
2012-10-09 00:17:10 -07:00
John-David Dalton
fff8d5f07d Cleanup var names in lodash.js and continue to optimize for gzip.
Former-commit-id: 00d76bd7ab8b35d2b45237224662849e42d00bac
2012-10-07 22:26:23 -07:00
John-David Dalton
9c8e1f4706 Reduce _.compact and revert _.random use in _.shuffle.
Former-commit-id: 17d153cb09c262830f1497f93c0f3d9b279c8f8a
2012-10-07 19:32:56 -07:00
John-David Dalton
0a1036c78f Add unit tests to check "Collections" methods return values.
Former-commit-id: 6ac6cd97414035f74a102a51e913099e744d9a93
2012-10-07 18:18:20 -07:00
John-David Dalton
0e881a7972 Simplify _.shuffle and iterator options.
Former-commit-id: 341fd577d65725d47b26172d25b46dec2ac8e67f
2012-10-07 17:43:38 -07:00
John-David Dalton
839e52ba30 Organize docs by category. [closes #84]
Former-commit-id: f4ebda7c32a0ce9c5a86cdb0fd1e689f76557e42
2012-10-07 12:21:01 -07:00
John-David Dalton
8f7d5dcb4d Reduce lodash file size.
Former-commit-id: c6c309cbbc5f93bffb852726e831ba9f90c332a0
2012-10-06 23:39:41 -07:00
John-David Dalton
1104b28bc1 Update README.md to remove fixed Underscore issue.
Former-commit-id: 16fc177c33c2f2522fd9080c0974091ef8e97850
2012-10-06 23:38:25 -07:00
John-David Dalton
48521cb1e4 Update DocDown and Underscore.
Former-commit-id: 7744ef274a9d8b47975dc9f3e3283bd778bc5403
2012-10-06 22:31:08 -07:00
John-David Dalton
17e113dafb Update _.map to return an empty array when falsey values are passed.
Former-commit-id: 2f091fbeb140cbc0b8f3bd2df7a449a06239be0b
2012-10-06 21:17:50 -07:00
John-David Dalton
c33825a904 Reduce Underscore build and update Underscore version number.
Former-commit-id: fd631cd5525fa287c2af493bfe4a93668678977d
2012-10-06 20:58:21 -07:00
John-David Dalton
b07ef98c8f Update Backbone/Underscore vendor folders.
Former-commit-id: 3317d501fe535d91eefab8a5dcb3a88a791e20ac
2012-10-06 20:56:42 -07:00
John-David Dalton
b3d68893df Reduce deep _.clone array iteration and add _.each dependency.
Former-commit-id: 3cb599d294a693974483b892748e6f60186d0c50
2012-10-06 18:15:30 -07:00
John-David Dalton
1329599987 Simplify how deep _.clone handles booleans.
Former-commit-id: adf1d03677336131da2f62bd2fb6e2900c9889a4
2012-10-06 17:32:18 -07:00
John-David Dalton
2adf3f364c Add _.isPlainObject to the list of features in README.md. [ci skip]
Former-commit-id: ec81cdc9e7fef775871cc1c4a497e4d17e7716aa
2012-10-06 15:45:48 -07:00
John-David Dalton
436ee34a02 Simplify createIterator.
Former-commit-id: 0530a9db49488900843c6312cc0d30b1dc641120
2012-10-06 14:43:34 -07:00
John-David Dalton
4a6e17b214 Reduce lodash builds and cleanup README.md.
Former-commit-id: 3c6bbc236a35687c843a8cb27c29f71ed89d0ab0
2012-10-04 23:35:36 -07:00
John-David Dalton
6e9cbccde6 Bump to v0.8.1.
Former-commit-id: 1b63f03d4a7ca0cdc66e44cd987fddecaf88f9ce
2012-10-04 01:40:17 -07:00
John-David Dalton
a0cb8ec124 Cleanup lodash.js.
Former-commit-id: 7a2443719a96b36ae53b2f7d0fe2a1867d650f02
2012-10-04 00:28:45 -07:00
John-David Dalton
21217dfda3 Reduce createIterator.
Former-commit-id: 8c27ca8e4d1f71b2727dd988bc62194510a850dc
2012-10-04 00:02:43 -07:00
John-David Dalton
25ba18e570 Update vendors.
Former-commit-id: 94bb6b8541c223d3ef6eb8aad5fb5925f2d3be48
2012-10-03 23:21:51 -07:00
John-David Dalton
a210377f35 Add unit tests for passing falsey values to _.initial and _.rest.
Former-commit-id: 9d5d4960c175a3dd90af977b605ce309bc6446d3
2012-10-03 20:12:03 -07:00
John-David Dalton
07b9ca457f Cleanup build.js regexes.
Former-commit-id: 0d23053cd8ae20fa2268ba24b15db72c6cd7a85e
2012-10-03 09:09:40 -07:00
John-David Dalton
5f1372d39c Rebuild minified files and docs.
Former-commit-id: d8d8453fa79ab026be0acd44a1af967bdb0bc4cc
2012-10-03 09:09:20 -07:00
John-David Dalton
01b84c79f0 Revert removing falsey guards.
Former-commit-id: b5eeb5d4a0896eb030f20e7e91e54bf101535abc
2012-10-03 09:08:51 -07:00
John-David Dalton
4017443b1e Allow deep clone if requested via include or plus with the underscore build.
Former-commit-id: e86dba41f7265700330e57346a112b578873b390
2012-10-02 21:39:18 -07:00
John-David Dalton
fd2a17d244 Reduce lodash.underscore.min.js.
Former-commit-id: a5032bc542e1166fab6acfd7313c305dd8236d36
2012-10-02 01:43:49 -07:00
John-David Dalton
126804f7c3 Cleanup _.difference, _.intersecton, _.without.
Former-commit-id: 1ca8edb52a1c403fc2d8a8e1b3fd113ced9ff39e
2012-10-02 01:43:30 -07:00
John-David Dalton
5167bbf59e Fix _.lateBind doc typo.
Former-commit-id: 3284bee699837ab380a3e8fd2853f8bdcf0684b6
2012-10-01 23:33:35 -07:00
John-David Dalton
8bcdfa2793 Add identitydependencies to build dependency map.
Former-commit-id: e466c8547888755b9e3d645d555298b21b5a6849
2012-10-01 08:31:23 -07:00
John-David Dalton
2f9cb6a91e Add more to .jamignore.
Former-commit-id: aaa51092bb28995478e4cf8cf1b5ff249880a99c
2012-09-30 23:29:43 -07:00
John-David Dalton
662be14535 Tweak whitespace in README.md and update QUnit-CLIB.
Former-commit-id: b8fed819580bf7db926b8a4cfb794aa7666c5f58
2012-09-30 23:06:40 -07:00
John-David Dalton
d6d065cd61 Cleanup settings=.. build option usage.
Former-commit-id: 33506d9cfc2101cba8d160169c5d27861f8c7064
2012-09-30 22:52:34 -07:00
John-David Dalton
ac7f045708 Correct bullets in README.md.
Former-commit-id: fb75befff853071b7ad5dde3f3a575c707930cc4
2012-09-30 22:47:29 -07:00
John-David Dalton
ffe02ad7bf Reduce the size of lodash.underscore.min.js.
Former-commit-id: fd7d512e104c6325a38a7d0e09015235ca69b1da
2012-09-30 22:36:57 -07:00
John-David Dalton
db1a87d10c Bump to v0.8.0.
Former-commit-id: b5bed986eed052cab3f927a928d92d58044a4798
2012-09-30 21:49:12 -07:00
John-David Dalton
4bae41ffd8 Use a better strict mode detect for tests.js so older versions of Node.js pass.
Former-commit-id: fd9f6ea35c71a8183ce0dcf4a6ec6e6afe13c39e
2012-09-30 21:45:50 -07:00
John-David Dalton
be36fb979f Make .jamignore ignore test-build.js and test/template/.
Former-commit-id: cc6e5e744e81cfb92ae46a4991a39b5c925a0727
2012-09-30 21:39:00 -07:00
John-David Dalton
0f66d763e0 No longer create/use the dist/ folder during the build process.
Former-commit-id: d8d298d5ce21032542d21c4d4fbc7e0112f6ad65
2012-09-30 15:05:17 -07:00
John-David Dalton
06f4743f51 Add lodash.underscore.min.js.
Former-commit-id: 15592a33a6f6979a1d60632a6ade3c341f13d0e7
2012-09-30 02:49:48 -07:00
John-David Dalton
9cc11b8774 Cleanup build files.
Former-commit-id: d19939a34688a8a63979f84eb1a5c5f9c926897b
2012-09-30 01:55:26 -07:00
John-David Dalton
de821e55ae Add template and settings build options unit tests and tweak _.template docs.
Former-commit-id: c814799c82e5a1dde60e5eda4dda5cb192d437f9
2012-09-30 01:03:43 -07:00
John-David Dalton
463b5c6e49 Tweak build option internals and add test template files.
Former-commit-id: ed5ec6ed7886a066c8c727de19dc0fe6548a276d
2012-09-30 00:57:09 -07:00
John-David Dalton
65ab5fdb34 Ensured failed tests trigger travis fails.
Former-commit-id: d513b5b1bae77ab1f4aa9e98ec3622e143048def
2012-09-29 19:54:39 -07:00
John-David Dalton
d2f7a035b3 Add test-build.js to npm test.
Former-commit-id: c915ba8401c1c1b11aa69d155cebe2a0a81eb2d1
2012-09-29 17:20:51 -07:00
John-David Dalton
bc0b924283 Reorganize tests.
Former-commit-id: 5293cdc1206af20824e8aec86b892afd4badf639
2012-09-29 16:42:13 -07:00
John-David Dalton
56ad6af5b2 Add travis integration.
Former-commit-id: 293478e5175ff94dab92bc340034d8d83e3e4773
2012-09-29 16:05:17 -07:00
John-David Dalton
c50bb3a5a9 Remove component.json and add index.js.
Former-commit-id: 16718a8ee6c4b6c834fe96feb58404311b82e3a0
2012-09-29 15:31:47 -07:00
John-David Dalton
d993a62263 Use invert to assign htmlUnescapes.
Former-commit-id: 20f9f29d622643e2f59bbc4a57fd2456c09ef49e
2012-09-29 14:36:23 -07:00
John-David Dalton
82bc52b909 Reduce underscore build size.
Former-commit-id: 207d4ab49063483245dc951d4646413d6d4a1903
2012-09-29 12:21:34 -07:00
John-David Dalton
f31598f916 Update README.md and rebuild minified file.
Former-commit-id: 0b37eebda0d1a82d0bb62cf2ba6e5b190e176547
2012-09-29 03:48:15 -07:00
John-David Dalton
6a9efd8ac6 Ensure build tests pass.
Former-commit-id: 9b91f0d884fe96dce1df34a6c0b659619276b83e
2012-09-29 03:41:00 -07:00
John-David Dalton
a9dddb6066 Update vendors.
Former-commit-id: 31e8de8842ed9ea020f54ca06cdb87b1478e3b08
2012-09-29 03:14:03 -07:00
John-David Dalton
40cf5c99ef Update reduce repeated code.
Former-commit-id: 3412cde47a136dab5c241c67d1c29f2e676c38d1
2012-09-29 03:13:45 -07:00
John-David Dalton
42f58cbbb3 Fix perf.js.
Former-commit-id: 4eef40ddbcb851aca3a87813a17dc329f9ecb071
2012-09-29 00:17:27 -07:00
John-David Dalton
fd9c780015 Reduce file size further.
Former-commit-id: 009540db12d86f0fb79ccd493b61c4fa2cdd9b1f
2012-09-28 07:58:16 -07:00
John-David Dalton
383b92b207 Update build.js, test-build.js and rebuild docs.
Former-commit-id: 385c6b4cb127ad8089622416758021556e413a0a
2012-09-28 02:14:59 -07:00
John-David Dalton
7036ed5e2f Remove falsey checks and reduce file size.
Former-commit-id: 5263a0beaffe2a987eb65fd3631ea4aff8d9f000
2012-09-28 00:46:57 -07:00
John-David Dalton
30666aa111 Update vendor.
Former-commit-id: 9f433cc31e3c70dddba332346c7d053539f54ab5
2012-09-27 20:53:49 -07:00
John-David Dalton
9614d68baa Cleanup test-build.js.
Former-commit-id: d6588b8cc7cebe0ce44392269cdda1ebd851f1ae
2012-09-26 23:08:19 -07:00
John-David Dalton
c25fb4c743 Merge branch 'master' of github.com:bestiejs/lodash
Former-commit-id: a8dbad27cb89e403dbdafcc7cc69a397ae1e5bbd
2012-09-26 22:31:18 -07:00
John-David Dalton
09d5222b1f Allow _.sortedIndex to accept a string value.
Former-commit-id: 7ac17a6bb620ad16ecce17718a8110d422d49118
2012-09-26 22:30:15 -07:00
John-David Dalton
426ca78bf7 Update vendors.
Former-commit-id: 48e14b4b41c9b26382b09294127e552a794e49be
2012-09-26 20:42:52 -07:00
Kit Cambridge
a77a0945fe Add tests for the -d and -m options.
Former-commit-id: def5bcf323aaed96c037fea3e15c4a5c8c72a977
2012-09-26 09:26:40 -06:00
Kit Cambridge
5311a0f903 Allow the -d option to be used independently.
Former-commit-id: cb838b158edb8360d6d7c98ee18f2a7fbb4e9bb4
2012-09-26 08:59:33 -06:00
John-David Dalton
d421656be8 Cleanup build exports options.
Former-commit-id: 75a5f57c0c9f71067cf6d55006f59fa0296a82e2
2012-09-25 23:06:30 -07:00
John-David Dalton
04459eaa50 Remove internal skipArgsCheck from _.isPlainObject and add unit tests.
Former-commit-id: 213c1e95f61368eb8912850248a97f44664384d8
2012-09-25 09:05:09 -07:00
John-David Dalton
3beda8eea0 Add _ references to precompiled templates.
Former-commit-id: 4a6f38ec03790d647de4923262bba8d73378ce14
2012-09-25 02:10:35 -07:00
Mathias Bynens
5e894be06b Fix typo
Former-commit-id: b9fa32da8453a1a928b16bc712a9f2ec53722341
2012-09-24 15:22:55 +03:00
John-David Dalton
bc8f93b596 Remove internal params from built docs.
Former-commit-id: 8b0be9d888ef88dae74554101463f4fa8d268dbc
2012-09-24 01:15:46 -07:00
John-David Dalton
2fb93bac99 Use a different private indicator for _.merge now that isPlainObject is exposed.
Former-commit-id: 5c75de935eb3e5e9e035bd6520398c7fbd811ea6
2012-09-24 01:06:58 -07:00
John-David Dalton
d0c94c1aef Cleanup template build option.
Former-commit-id: 38b94dad822dd9030a6a71f66e65ff7aec0726cc
2012-09-24 00:03:41 -07:00
John-David Dalton
77242bfb95 Expose _.isPlainObject.
Former-commit-id: 884bc87df7773ef3cb5e52725d5a37f07812385a
2012-09-23 21:30:14 -07:00
John-David Dalton
5d2d86bffc Initial lodash template=… build support.
Former-commit-id: 9d13021463380556a997cb53f5ae89eb22a7b98b
2012-09-23 21:29:20 -07:00
John-David Dalton
8492c13e72 Remove DRY modifications for smaller gzip size.
Former-commit-id: 69391d792d76c6592e7d48aec44165a8db388f81
2012-09-22 20:50:59 -07:00
John-David Dalton
e4eb5dadda Modify "underscore" build methods in prep for Underscore.next.
Former-commit-id: 22503a046256915aa6667e32f6efb992c6ddbce9
2012-09-22 20:03:43 -07:00
John-David Dalton
8532dc4b75 Refactor reduceRight and modify a _.difference benchmark.
Former-commit-id: b70272ac5316fe1bee52b9611a1a5ea4d761dd3c
2012-09-22 16:11:23 -07:00
John-David Dalton
1ca26ce676 Ensure methods accepting a thisArg argument allow null values.
Former-commit-id: 368b943687291f0d7ed02304284ac076ef86e02b
2012-09-22 15:39:37 -07:00
John-David Dalton
d8e3e823a7 Removed Underscore's fixed issues from README.md and rebuild docs.
Former-commit-id: 08db54926a791ab32b7e003143ae0f70a251068e
2012-09-20 21:13:36 -07:00
John-David Dalton
473dd7660b Reduce _.reduceRight and update vendors.
Former-commit-id: f7250ccb4b8f15052c1f1420947c2ac68963a92c
2012-09-20 21:06:32 -07:00
John-David Dalton
5afeed56ef Cleanup _.difference and _.union.
Former-commit-id: 1fcaab3989caaaacd9fe73de071d8f360f52b715
2012-09-19 22:15:15 -07:00
John-David Dalton
b91b04f652 Update vendors and add _.reduce, _.reduceRight, and _.where benchmarks.
Former-commit-id: c1b4bc7f8aaf08c429ae918f5d528401f1a66255
2012-09-19 21:40:39 -07:00
John-David Dalton
25de44a23d Cleanup _.template.
Former-commit-id: dc3fa2d02a9a4a2d4034136d2ce7f03d0b67224a
2012-09-19 01:06:45 -07:00
John-David Dalton
00cfb95971 Update vendors.
Former-commit-id: fddaef2be532e30f197f8bdff70dc6ec9bfa3cfc
2012-09-18 23:42:52 -07:00
John-David Dalton
f4ba0e1191 Simplify _.template and remove superfluous caching.
Former-commit-id: f9f18a63a77376471e69c95d5046dfe0146b9887
2012-09-18 23:42:26 -07:00
John-David Dalton
6499643769 Make _.random return 0 or 1 when no arguments are passed.
Former-commit-id: 7d20f5240d534f0091757f613c664b08e0d45759
2012-09-18 20:29:36 -07:00
John-David Dalton
f85287a444 Add "category" options unit tests to test-build.js.
Former-commit-id: 0499317babeb422e88700edd0f1e46c1fa6196fd
2012-09-18 01:22:10 -07:00
John-David Dalton
483bc9ad87 Add unit test to confirm correctly parsing delimiters.
Former-commit-id: 71aa7a240d2becb8082e36f9aa4874eb0aed09d3
2012-09-17 23:49:03 -07:00
John-David Dalton
93b89a93c1 Make _.times return an array of the results of each callback execution. [Closes #73]
Former-commit-id: 808af6b9eb07bf1fada8221ca659558d82e6eb57
2012-09-17 21:48:26 -07:00
John-David Dalton
10064c046c Allow build "plus", "minus", and "include" to accept case-sensitive category names.
Former-commit-id: f74d4cda73195854b3471ddce0afaab099dcfe77
2012-09-16 18:11:53 -07:00
John-David Dalton
a5aecb9d0e Add minus and plus commands to build.js.
Former-commit-id: fcdd2e829de5a6a29ebc342e694b7986d9a5eade
2012-09-16 13:22:26 -07:00
John-David Dalton
de1e889f1d Make lodash underscore build smaller and rebuild docs.
Former-commit-id: 19405bc4e490588d7a55379974d2d7d81d1cf5f7
2012-09-15 19:24:26 -07:00
John-David Dalton
16f89b40c3 Remove issues resolved by Underscore from README.md.
Former-commit-id: 27510827a1e60dd4cf81f5306991e3f63e8cedb5
2012-09-15 08:47:22 -07:00
John-David Dalton
0e387d2cda Remove custom toArray checks in _.toArray and simplify array-like object checks in "Collections" methods.
Former-commit-id: 6b7678de16907f44c1b079a22a6a2e091a638d4b
2012-09-15 08:46:49 -07:00
John-David Dalton
837c15e4f9 Update vendors.
Former-commit-id: 1e93a793891e5f4e2c0d3927f3f38b25bd182263
2012-09-15 08:21:44 -07:00
John-David Dalton
ae7e353169 DRY more code in the "underscore" build.
Former-commit-id: c1dbc3daccb1efba371c38f20b9a4ff96a7171a4
2012-09-14 01:09:02 -07:00
John-David Dalton
6c1bbd2344 Tweak iteratorTemplate formatting and remove more code from "underscore" builds.
Former-commit-id: cbaa8e41a9a60b5828d2c0da7188d483702c55e1
2012-09-13 23:51:52 -07:00
John-David Dalton
27247e8e56 Remove freeExports var when not used via exports build option.
Former-commit-id: 66950af3a18b35412fbe1092e19c5d7ef0c9a029
2012-09-13 19:28:56 -07:00
John-David Dalton
08249d78ea Add RequireJS "shim" test and a build test to ensure the AMD snippet is maintained for r.js.
Former-commit-id: 708c07877cfca0022d6d56c16c36d8bae79e4796
2012-09-13 19:11:48 -07:00
John-David Dalton
827091e522 Remove "lazy" bind from README.md until next version bump.
Former-commit-id: f132182f32670aa7df7ac418f58db0a1fb0f8547
2012-09-13 02:10:23 -07:00
John-David Dalton
13d901bf8d Make the IIFE Closure Compiler regexp in post process more restrictive to work better with the "iife" build option.
Former-commit-id: 999602451e50850eb82680b9c377d97605be8af4
2012-09-13 01:40:28 -07:00
John-David Dalton
e69bdabc99 Rename makeBound to createBound for naming consistency.
Former-commit-id: ec6845badba06231af0b1341b1f1efedb8adbc88
2012-09-13 00:46:47 -07:00
John-David Dalton
e8d19265e4 Cleanup component.json.
Former-commit-id: 0761bb592e5c643223848e2cd7fca0efc5b9c725
2012-09-13 00:10:16 -07:00
John-David Dalton
49e3a49dc5 Update docs, minified, build, and vendors.
Former-commit-id: 8b1425b8c4a5238a42185dfa974bb3b2468eebea
2012-09-13 00:08:52 -07:00
John-David Dalton
82a7c01898 Simplify "underscore" build of _.clone.
Former-commit-id: 32975bb5966f1ded4f007eb76dcf2d4677478e7d
2012-09-13 00:04:53 -07:00
John-David Dalton
c0d7dbf639 Reduce code around _.bind and _.partial, and add _.lateBind.
Former-commit-id: 4c962d066ecfa54882cee2216a7310ab34b3b5a3
2012-09-13 00:04:00 -07:00
John-David Dalton
569caa0bf2 Remove custom isEqual checks from _.isEqual and custom clone checks from _.clone and simply _.clone, _.isEqual, and _.merge.
Former-commit-id: 45e90ab1494e46e281265f660c87e27f59581308
2012-09-12 22:00:23 -07:00
John-David Dalton
f88ea1ee7d Re-order test-build unit tests and make the iife test a bit more thorough.
Former-commit-id: f798639cfa58241b052d16b9ca6fbf4537482349
2012-09-12 08:40:01 -07:00
John-David Dalton
d5a8fa0b97 Update underscore unit tests.
Former-commit-id: ae00a864c7cb3bff9970289917df681ad5e295d9
2012-09-12 08:39:18 -07:00
John-David Dalton
3f8f96edea Add "mobile" build unit test.
Former-commit-id: f067b42618abe6a9f747fea000522de6a9117b3c
2012-09-11 22:30:23 -07:00
John-David Dalton
04fb4aff28 Update underscore.
Former-commit-id: 7041883ef258e3dc80d3c3751a5e4beecf0b4767
2012-09-11 20:15:13 -07:00
John-David Dalton
83c6fb089e Ensure mobile build has properties correctly minified.
Former-commit-id: 61da738afbcefc7ecd277190147041d884002af1
2012-09-11 09:15:32 -07:00
John-David Dalton
9d8d17b964 Update cdn link in README.md.
Former-commit-id: 5da17daf1a6d1d5c9f6e9ba7875f45bd2d763cda
2012-09-11 07:41:47 -07:00
John-David Dalton
39d4842ff5 Bump to v0.7.0.
Former-commit-id: 7c51a310c7c62bfe0ba9a2cdea4e074e633cee70
2012-09-11 02:53:12 -07:00
John-David Dalton
cad8473986 Re-add overwritten _.isEqual unit test.
Former-commit-id: 52d4e3bc02a6fd0ac30177c9da82dec60ee6eb81
2012-09-10 23:41:20 -07:00
John-David Dalton
5f085ccb52 Fix typo in _.isEqual.
Former-commit-id: 9d5065953c51d12f1308dd8c0c142b6505efe765
2012-09-10 23:04:42 -07:00
John-David Dalton
b406246689 Add "iife=.." command to build.js.
Former-commit-id: 85d8c7ea550403663a878f2713ce93ae8c2dbc6a
2012-09-10 22:52:28 -07:00
John-David Dalton
cbe46afdff Minor lodash.js cleanup.
Former-commit-id: 544f2a2690b48b52870b3ab62509221a82ed4173
2012-09-10 21:04:04 -07:00
John-David Dalton
a59d6dc3c7 Add minify.js Underscore unit test.
Former-commit-id: 1db7b19709ef953dd1996a082e73a2ba542f29f7
2012-09-10 20:35:27 -07:00
John-David Dalton
2afb2dd5fd Reduce temporary objects created in _.merge, _.clone, and _.isEqual.
Former-commit-id: e6696642505f39eefdf59075ff8a993ab033465a
2012-09-10 20:12:42 -07:00
John-David Dalton
4fc3c969d3 Add component.json for Bower.
Former-commit-id: d681c2300b4e79fb168793aed34b82c3021647d1
2012-09-10 00:48:12 -07:00
John-David Dalton
1796ce324b Cleanup build.js
Former-commit-id: 6a4502883d7431f5dcedbf7f7d3bfb871ce1c0f4
2012-09-09 23:30:38 -07:00
John-David Dalton
5e04c7f827 Add "output" and "stdout" build option unit tests.
Former-commit-id: 2adcdbff4cd1ef6319e33c69fd5ed3b07b205cfe
2012-09-09 20:33:08 -07:00
John-David Dalton
20fcede440 Add "-o" and "--output" build options.
Former-commit-id: 154c0a6b749ff2439c024602fb9ec781e293f511
2012-09-09 17:26:30 -07:00
John-David Dalton
012c1833f2 Added "-c" and "--stdout" options to build.js.
Former-commit-id: 388c529ca1836ee7cd65517d2e9f8533e480b8cd
2012-09-09 16:33:57 -07:00
John-David Dalton
32e8e03256 Add build "exports" unit tests.
Former-commit-id: afe0fe59933d272bfa597be835011b3c81b28dda
2012-09-09 16:00:11 -07:00
John-David Dalton
dca653cb92 Update minified build and docs.
Former-commit-id: a7719898e67aab04d37e775f4794b0be7a4a2e24
2012-09-09 14:13:18 -07:00
John-David Dalton
0805eca979 Remove Object.keys optimization from the "legacy" build iteratorTemplate.
Former-commit-id: 5a63b627c4982ca43a46a830722513cab2c7b633
2012-09-09 14:11:46 -07:00
John-David Dalton
17935a78ff Make previous _.isEqual fix pass Underscore unit tests.
Former-commit-id: 2b3563bb628b307ad2e4a2ef00ed5afec2f59506
2012-09-09 14:11:07 -07:00
John-David Dalton
e16918ee32 Add "exports" option to build.js.
Former-commit-id: cc1572dbe9d1367f806a44597cbcec8508f51ad6
2012-09-09 13:12:44 -07:00
John-David Dalton
78471b4595 Cleanup test files.
Former-commit-id: 3b138bc74c2f4c2c6d374893c0f90a8422a7248b
2012-09-09 11:55:24 -07:00
John-David Dalton
c30bcdd515 Ensure _.isEqual matches values with circular references correctly.
Former-commit-id: 07968aeb430f56c32aab22dfda919706da840680
2012-09-09 11:54:32 -07:00
John-David Dalton
ac78c5f4e5 Make minify.js support passing minify an array of command-line arguments.
Former-commit-id: fd67d3d6dd8b19c88c74529a33fd50b2fbd0db01
2012-09-08 23:43:36 -07:00
John-David Dalton
57a990ce25 Add "underscore" build test.
Former-commit-id: 8050e285fae94c96e7db1c8847ace45ae5cade33
2012-09-08 19:30:58 -07:00
John-David Dalton
24825b42a2 Cleanup and add test-build to run-test.sh.
Former-commit-id: 29d198ca03dbd23b864a96ea48348fb22728056a
2012-09-08 14:20:46 -07:00
John-David Dalton
4f7323f7fc Add test/test-build.js.
Former-commit-id: b0c28b814dec71095a927469cbbda766fd9fc701
2012-09-08 14:03:21 -07:00
John-David Dalton
a228be85e2 Cleanup compareAscending.
Former-commit-id: c11be9f8211242a8d25a2cd06e20efefa685c3ee
2012-09-07 23:56:28 -07:00
John-David Dalton
fa565bdbdf Hold off on the version bump until test-build.js is finished.
Former-commit-id: a627062b1133cdb5a06a3fd960bbeaddfd0f9a54
2012-09-07 22:00:27 -07:00
John-David Dalton
2dc53223e5 Ensure _.template works with "interpolate" delimiters containing ternary operators. [closes #68]
Former-commit-id: 287df2ef5802ea6db743da5f211e480d6b0f85c9
2012-09-07 21:17:00 -07:00
John-David Dalton
958ac72805 Ensure the internal stack argument of _.merge doesn't pave the 4th argument passed to it. [closes #69]
Former-commit-id: b33e1cb7795294b9481e2c9c6888d0f37419208d
2012-09-07 21:09:21 -07:00
John-David Dalton
f7297b84e7 Tweak text of build.js help message.
Former-commit-id: 755872c9ae5670cc3a33aa158be4478eafacc574
2012-09-06 23:27:00 -07:00
John-David Dalton
9a7d9e7bb8 Ensure _.sortBy is stable for undefined values.
Former-commit-id: bf250150d27de050ea7a6fa376aacdc8d1ba7716
2012-09-06 22:35:20 -07:00
John-David Dalton
fa9df75cf7 Rework build.js to work as a module and add a "silent" mode to minify.js.
Former-commit-id: cf62532b957d37da77a2d64aa64d2d388e6382ae
2012-09-06 22:19:43 -07:00
John-David Dalton
e3ec76418b Update Underscore/Backbone vendors.
Former-commit-id: beb38126acaebf1045c2676aeda037e35f0b99c8
2012-09-06 20:56:02 -07:00
John-David Dalton
102d6d8c84 Capture the result of the last func call in _.throttle and _.debounce.
Former-commit-id: 2e783fad2e86824bf098bdb24ca6911317576f32
2012-09-06 20:49:06 -07:00
John-David Dalton
a742b5f3e2 Rewrite build.js to be used as a module.
Former-commit-id: bf6425925e511a327b5297f9b17620a97ff53b67
2012-09-06 20:36:24 -07:00
John-David Dalton
a2a3bb291f Let build.js handle the "use strict" directive and not minify.js.
Former-commit-id: 741eb692b158e22aa688d6dac1b63fc2787cc426
2012-09-06 00:41:18 -07:00
John-David Dalton
b7c0ac7d67 Tweak test/test-ui.js for QUnit v1.10.0.
Former-commit-id: 6481cce305fb4d69bba22ba2186a30ee13bb2282
2012-09-06 00:40:26 -07:00
John-David Dalton
13b1fc6b44 Remove an unneeded _.object unit test.
Former-commit-id: 2334bda13fbd9bd683b3f650ff47f1a676139319
2012-09-06 00:38:22 -07:00
John-David Dalton
3939fcf6e7 Allow unit tests to run when testing custom builds without noConflict.
Former-commit-id: 2aee7eb872144583df1f22743f5d3f7102d14eae
2012-09-05 07:12:35 -07:00
John-David Dalton
13abbb81af Bump to v0.7.0.
Former-commit-id: 4ab5bfe3bba14182ffe24c05792b3b8f194afa0c
2012-09-05 01:12:57 -07:00
John-David Dalton
019f0153c8 Update alias style in docs.
Former-commit-id: d7b1eb9999f535c365ce3ea6251a359c7d901769
2012-09-04 23:47:27 -07:00
John-David Dalton
8abc2925e0 Fix invalid doc entry in doc/README.md.
Former-commit-id: 64721e5c3417a25b2f34f1f380b0cecc6561fa35
2012-09-04 22:29:06 -07:00
John-David Dalton
996c9a032a Update docs to include method aliases.
Former-commit-id: b93b13a42381ba28b84a3e279d5157673b20fdce
2012-09-04 21:40:29 -07:00
John-David Dalton
22d3794d22 Update vendors.
Former-commit-id: ad3284b1e77cfb0b17af99e0ddaf00618e4485b7
2012-09-04 21:37:01 -07:00
John-David Dalton
ba948a38e9 Ensure to escape exports property for Closure Compiler.
Former-commit-id: 9b6bd1201e74d9e85fbc340bcabce40039239a59
2012-09-04 15:25:47 -07:00
John-David Dalton
e8a522c4df Update README to reflect Underscore patches.
Former-commit-id: b0222d92b90e190c7c322e409ec877ca473f3594
2012-09-04 11:27:23 -07:00
John-David Dalton
c60f3da32e Reduce size of "mobile" and "underscore" builds.
Former-commit-id: 062dc03e3d3dd7a8e1ceb6a8b4ea155394a9b899
2012-09-03 23:20:18 -07:00
John-David Dalton
0c92d3cbb2 Fix how post-compile.js unescapes properties to avoid extra work in pre-compile.js.
Former-commit-id: f604f706af358288877763681243f4816d5cbe9e
2012-09-03 21:40:23 -07:00
John-David Dalton
e4fc8dd6fe Remove older Opera fixes from the "underscore" build.
Former-commit-id: a012ed6957b4d964b5f2dc1a636d7f5f19fbf307
2012-09-03 16:30:55 -07:00
John-David Dalton
1a849e2de0 Update docs and minified build.
Former-commit-id: 62f3293c13d5fa08f857ca455506b4762aa65416
2012-09-03 16:07:46 -07:00
John-David Dalton
ffdd79f86b Adjust how _.template handles compiled syntax errors for compatibility with Underscore.
Former-commit-id: ba84c5b468938a1be1a1fd0afd31cb83f563e1ca
2012-09-03 16:05:47 -07:00
John-David Dalton
e87e46b1b6 Remove deep clone from "underscore" build and fix how invalidArgs are detected in build.js.
Former-commit-id: 5038d1541fa7d0c062e5a48004a60fb9140778d7
2012-09-03 15:42:02 -07:00
John-David Dalton
3ca81a4ff7 Fix Underscore detection in post-compile.js.
Former-commit-id: ad3c5cd28bc9ac0f6c9e5801c3849acd4305c528
2012-09-03 15:40:47 -07:00
John-David Dalton
5477d3c292 Cleanup iteratorTemplate and isPlainObject.
Former-commit-id: a96b8716cfd0efbc46daf2307fae8f1ee5969862
2012-09-03 15:36:18 -07:00
John-David Dalton
08300183b3 Cleanup build.js help message.
Former-commit-id: 36edcf06e78580835f33872f0c72a233604a4adc
2012-09-03 12:58:46 -07:00
John-David Dalton
095c77f22c Inform users of invalid arguments passed to build.js.
Former-commit-id: 1b15dd2242387c7037678a3348931f5430612a8b
2012-09-03 10:50:25 -07:00
John-David Dalton
09926e63a3 Add 4th screencast link to README.md.
Former-commit-id: 07d890b65e7e4ed600173634f04a9783d18bc701
2012-09-02 16:15:56 -07:00
John-David Dalton
87d70f29a1 Make pre-compile.js and post-compile.js support underscore.js.
Former-commit-id: 76d040f630faf03bd5a8eb168259814f5662ba50
2012-09-02 16:11:29 -07:00
John-David Dalton
3a7661b111 Make _chain and _wrapped double underscored to further avoid conflicts.
Former-commit-id: 27f545d99cc383be05509ac7382e42fc727e0215
2012-09-02 12:57:53 -07:00
John-David Dalton
ec976953cd Simplify wrapper inference in _.isEqual.
Former-commit-id: b4fda683ebee4c3f7dddd0cb87201306c08fa7d5
2012-09-02 12:04:35 -07:00
John-David Dalton
1837562b50 Cleanup README.md, update Backbone, rebuild docs and minified build.
Former-commit-id: 8f54e0a4b76cf1a42c11ca37f3e8672a75178d30
2012-09-02 02:44:26 -07:00
John-David Dalton
f3bec4fc37 Ensure optimized isPlainObject works with objects from other documents.
Former-commit-id: 2f782b3dfc19e7ea3274132c31cd408ee2387021
2012-09-02 02:35:02 -07:00
John-David Dalton
c2117ef4fd Add _.result to "backbone" build.
Former-commit-id: c04ddcdbfb229440b19b268d51887bf31ae11296
2012-09-01 14:58:35 -07:00
John-David Dalton
910804ecd1 Avoid arguments object in _.random.
Former-commit-id: 24e54869ae03c0251f419c922f59f53f01b8fa35
2012-08-31 18:03:10 -07:00
John-David Dalton
ce5ae1dfdd Simplify _.size.
Former-commit-id: a7d3338cbd5784ec6b9b6a25e18acd9507f4b21c
2012-08-31 17:58:34 -07:00
John-David Dalton
2c31411ffb Optimize _.pairs.
Former-commit-id: 1de87609a8635fb8d48bc558fbdabc545da53b4b
2012-08-31 15:45:27 -07:00
John-David Dalton
84d69fa2a1 Update resolved issue count in README.md.
Former-commit-id: 41a22ec12d02a1cff5b172022c8260b80c63fe9b
2012-08-31 13:57:23 -07:00
John-David Dalton
2aea296d19 Update minified build and docs.
Former-commit-id: aed499a9ffee5fd7c1f29dad13a8c4e756b431d8
2012-08-31 13:53:04 -07:00
John-David Dalton
2b0bffc362 Ensure template delimiters are tokenized correctly. [closes #64]
Former-commit-id: 814f3f8a840a70a9b455e5f91da0e21174f08787
2012-08-31 13:50:10 -07:00
John-David Dalton
83356142c1 Update README.md with API changes.
Former-commit-id: 4571a2331d433af28ae33813780f8abc9477437e
2012-08-31 13:36:16 -07:00
John-David Dalton
24dcc6947c Update build.js and pre-compile.js for _.invert, _.pairs, and _.random.
Former-commit-id: 0dc281f6e1a07f0a4121f71c37e15a7ca0e18960
2012-08-31 13:35:40 -07:00
John-David Dalton
a7e3136a0b Add _.random.
Former-commit-id: cf720b9187b0b54b43773a9f5f02fb475d786bfa
2012-08-31 13:33:44 -07:00
John-David Dalton
71639cfea7 Cleanup _.times documentation.
Former-commit-id: 59ce4b689bb280650d28944664abd6a38f1c43a0
2012-08-31 13:05:12 -07:00
John-David Dalton
8c2d39fb82 Add _.invert and _.pairs.
Former-commit-id: b265ed3f148e5e951b8d061107bb376e0b2e651e
2012-08-31 13:02:55 -07:00
John-David Dalton
e060d29337 Rename _.drop and _.zipObject unit tests.
Former-commit-id: d68abda2400244b7801eac9ad90de88b2f99a1f4
2012-08-31 12:59:18 -07:00
John-David Dalton
79e9156d2f Make _.drop an alias of _.rest and rename _.zipObject to _.object.
Former-commit-id: 08cb9ec2d5009b9a9f959b2341f8b78f6bbd37a0
2012-08-31 12:57:52 -07:00
John-David Dalton
9100db55b0 Update vendors.
Former-commit-id: 88e9746e94e8ec899227b1a925bea4ab4d373fb0
2012-08-31 12:47:55 -07:00
John-David Dalton
141c10f6fe Ensure noArgsClass references aren't removed for "underscore" builds.
Former-commit-id: 697e2d29d5fef32b0b10d775eee7a12d193ff1a9
2012-08-30 00:58:54 -07:00
John-David Dalton
4613ab9dc3 Update cdn links and tested browsers in README.md.
Former-commit-id: db952c5d72fa9e4d6ce3280574b9e4e26da8c928
2012-08-29 18:03:03 -07:00
John-David Dalton
061ad41b51 Cleanup link hashes in generated docs and update vendors.
Former-commit-id: 278366a7dacea91d965835b24ae7ec046f455110
2012-08-29 08:28:37 -07:00
John-David Dalton
3a0007cd18 Remove pseudo private properties from debug builds.
Former-commit-id: 839c2e47e19ba163f0c69d3c115ec9ee262d5d6b
2012-08-29 01:17:28 -07:00
John-David Dalton
0044917943 Ensure Closure Compiler removes isPlainObject when it's no longer needed in build.js.
Former-commit-id: 748de0f28f4e0733ef83a77fe2b1f6e40e4f8ce2
2012-08-29 00:34:58 -07:00
John-David Dalton
0337c04278 Bump to v0.6.1.
Former-commit-id: 68b59ea3e76d06d60acc81e30770b5899b8ea761
2012-08-29 00:14:40 -07:00
John-David Dalton
4585acf70b Optimize isPlainObject.
Former-commit-id: 37754e27d03929927d8b8653bd7e44ad3ce2b23c
2012-08-29 00:05:02 -07:00
John-David Dalton
2ad9bbae25 Avoid issues in IE with other code containing comments like //@todo xyz.
Former-commit-id: 92ec6258539bf48144e9af05d0e326651a5fedda
2012-08-28 23:58:07 -07:00
John-David Dalton
cf075df7d1 Update cdnjs link in README.md.
Former-commit-id: 50a52807a505d0d559f9977e3b5c9532fa3f131e
2012-08-28 08:58:47 -07:00
John-David Dalton
11cd9905c4 Bump to v0.6.0.
Former-commit-id: 7339c27ba63208f23d94ae4a29dec53a43220bad
2012-08-28 01:47:22 -07:00
John-David Dalton
cf462542e9 Cleanup iteratorTemplate and remove more code from the "underscore" build.
Former-commit-id: 3f4c283f0aa205dbcce1940f7222b594284263c4
2012-08-28 00:30:52 -07:00
John-David Dalton
b63f25a1ae Simplify _.unescape to match the behavior of _.escape.
Former-commit-id: ec7f4cf9a6f44b1ba99f467c47d7e04d5596d76e
2012-08-27 07:54:03 -07:00
John-David Dalton
7de69a21c5 Cleanup unescape comments.
Former-commit-id: 4c0a66d28ed8b04748e4d97755983ec328e53ca4
2012-08-27 02:54:55 -07:00
John-David Dalton
21783e4ea0 Add unescape to the dependency map and exclude unescape from the "underscore" build.
Former-commit-id: 20656e5226207e55713a286c7d7069b73170272f
2012-08-27 02:33:38 -07:00
John-David Dalton
53e5a756d7 Update minified build, docdown, and rebuild docs.
Former-commit-id: f198b30ba8963d8b69838ba31d2e3d8085537629
2012-08-27 02:09:04 -07:00
John-David Dalton
8c911a2fd0 Add _.unescape method. [closes #63]
Former-commit-id: 10eada385fd0e1157271a2da6fb32de047d6d88a
2012-08-27 02:05:37 -07:00
John-David Dalton
ce440e9f43 Add hasObjectSpliceBug to avoid unnecessary use of the delete operator from the mutator Array function mixin.
Former-commit-id: 8e92914f451454323a1ff6ef8ec1886b41e54ced
2012-08-26 12:54:03 -07:00
John-David Dalton
6465f8d8e6 Cleanup docs for _.drop, _.pick, _.countBy, _.groupBy, and _.sortBy.
Former-commit-id: 0dc89937d067c996fd28b585f42c1e01e928441b
2012-08-26 11:41:17 -07:00
John-David Dalton
4bdf28059a Cleanup unit tests, update minified build, and docs.
Former-commit-id: 5bca51894bf2fb01732a1ecc5873711d8abf3f9c
2012-08-26 03:09:19 -07:00
John-David Dalton
21010c6540 Add callback and thisArg arguments to _.drop and _.pick. [closes #62]
Former-commit-id: 990655e9e849348c287b3d994d2e2dc741f78fbf
2012-08-26 03:06:43 -07:00
John-David Dalton
a5a6cabac6 Cleanup createIterator and _.contains.
Former-commit-id: 39d4c33e5af0d9338a1725b5c07332a14f453374
2012-08-26 01:07:36 -07:00
John-David Dalton
f460c77f2c Ensure _.reduce works with string Objects in IE < 9.
Former-commit-id: 0ee3496e52f4c393900f37f03e451b8e4abba206
2012-08-26 01:04:09 -07:00
John-David Dalton
1c69d9213e Update minified build and rebuild docs.
Former-commit-id: e9da1d37b6741caf19c47e8dd81b89df60e8410f
2012-08-25 21:50:52 -07:00
John-David Dalton
c02c2d3b2c Optimize _.intersection, move largeSize default to largeArraySize, and cleanup _.where.
Former-commit-id: 9eaea7922623f1bd69f2b18578468a6fc9ba13fc
2012-08-25 21:50:08 -07:00
John-David Dalton
7adf5e763b Cleanup benchmarks in perf.js.
Former-commit-id: f845855383e01c63d513cea53cec86abb4f4fb65
2012-08-25 20:13:24 -07:00
John-David Dalton
0e4afefc7f Add more _.omit benchmarks and update Underscore.
Former-commit-id: b8de29706b381ebc000a7cbaa19aa0a2a628d6a8
2012-08-25 01:04:33 -07:00
John-David Dalton
c7f290f42e Cleanup unit tests and update ticket reference in README.md.
Former-commit-id: c2433e841c20eb17334d375deabcf0605ed49a3b
2012-08-25 01:00:19 -07:00
John-David Dalton
bb553b8a6a Update whitespace removal for delete operators in pre-compile.js.
Former-commit-id: 8dddeed54f8f13268f777d829ba52363706b9f4a
2012-08-25 00:56:00 -07:00
John-David Dalton
21eda2a1a3 Add _.omit as an alias of _.drop.
Former-commit-id: 630b0897bb49161fbc3b51a38c816b4bce548fba
2012-08-24 09:46:44 -07:00
John-David Dalton
48c13c990f Update vendors.
Former-commit-id: f2a09b6501a34b2ae2d8e996b13c9da4fb048535
2012-08-24 08:26:34 -07:00
John-David Dalton
a2665529f6 Optimize method compilation with/without strict mode.
Former-commit-id: 05e4d9282116987b53a817b406c82c140a25c761
2012-08-23 01:49:44 -07:00
John-David Dalton
8d35d78eff Ensure debug builds work against more build options.
Former-commit-id: 121b3605026d8f936e2ca0e3a03142cb08e75e66
2012-08-22 09:13:50 -07:00
John-David Dalton
a82a364c22 Update dependencies in build.js.
Former-commit-id: 020a52bdd604b55b078637aeb59e2e53483c950d
2012-08-21 21:21:24 -07:00
John-David Dalton
cc150ff9d2 Cleanup test.js and README.md.
Former-commit-id: af3372f58ecf8d979d22c88193589857c06ff7c1
2012-08-21 02:31:40 -07:00
John-David Dalton
feeb38293d Update cdnjs link to v0.5.2 in README.md.
Former-commit-id: e519a03ad9016f8aebd2c703f29bb350bcd442f1
2012-08-21 02:13:53 -07:00
John-David Dalton
5b9271ccfe Add isType benchmarks.
Former-commit-id: 875af51200d60eb6105eb36ab090e9f307a15340
2012-08-21 01:59:56 -07:00
John-David Dalton
e60bbc2fb7 Bump to v0.5.2.
Former-commit-id: 43998ef8cf3cbdb9205d702d950f9f59febc420b
2012-08-21 01:32:41 -07:00
John-David Dalton
387cc184e6 Keep test count consistent for Node.js.
Former-commit-id: ca0452ff4511c946946a2208b44471b1e2c6fc43
2012-08-21 01:31:54 -07:00
John-David Dalton
a830ddcb43 Cleanup perf/index.html.
Former-commit-id: 7592ee8ec0c6b2bb85d93d7dc599d814ef5a1eef
2012-08-20 22:46:35 -07:00
John-David Dalton
35fea30191 Cleanup string tests and add string test to _.toArray.
Former-commit-id: 3565f7233f1f7662604e3b8e1f07eead62349454
2012-08-20 22:45:57 -07:00
John-David Dalton
24b672b968 Update vendors.
Former-commit-id: 4ccda4fafe86514cdb45d191cb743baca9b1baa4
2012-08-20 22:43:43 -07:00
John-David Dalton
de6a3c5ab1 Switch order of performance.now check in perf/index.html and convert benchmarks to strings in perf.js for better compatibility with older browsers.
Former-commit-id: d766316c9c162e31dd0471d80b50ecfd1da2c9a8
2012-08-19 23:45:16 -07:00
John-David Dalton
260ff6de3e Avoid using the nano applet in perf/index.html if it isn't needed.
Former-commit-id: 342983337140dd5608848b7f09d24038ea61d1a1
2012-08-19 15:35:38 -07:00
John-David Dalton
7cb37411c9 Ensure _.template won't error when passed falsey values, add _.template documentation, and DRY out tokenizeEvaluate.
Former-commit-id: b575de8bf968c2fc2655eadff0a09bcbff1e1753
2012-08-19 13:34:58 -07:00
John-David Dalton
e4e41e5ef8 Cleanup _.template docs and generate less unused code in compiled templates.
Former-commit-id: e6703414b83e9286d9ce5e14214375bbbaf9285f
2012-08-19 02:13:43 -07:00
John-David Dalton
985f4aafca Update minified build and rebuild docs.
Former-commit-id: 0c2c5769a94c0591359fcc7d0ae55ccfe975c38b
2012-08-18 21:44:35 -07:00
John-David Dalton
0c25dd44b3 Ensure _.isElement uses strict equality in its duck type check.
Former-commit-id: 6348026ebdc219ef1df9926aca1d8df66e472de9
2012-08-18 21:41:29 -07:00
John-David Dalton
285f0bc6dd Ensure isXYZ methods return boolean values and almost all methods allow falsey arguments.
Former-commit-id: a842eaf2fd262bed03df4a71b560b91801b7a75f
2012-08-18 20:52:31 -07:00
John-David Dalton
07a370fd24 Update cdnjs link to v0.5.1 in README.md.
Former-commit-id: 3c00694a949b4f30be48a898f1f2a9046b2573d1
2012-08-18 10:02:38 -07:00
John-David Dalton
95f07ea38a Add stable-sort note to _.sortBy documentation.
Former-commit-id: 17b9818baa6ff72ce5762ec8b3cc01bbac8725bb
2012-08-18 03:40:42 -07:00
John-David Dalton
2890b92b21 Tweak to _.bind unit test for Narwhal.
Former-commit-id: 5df60a9d1e46b09253151ab39281c5af0c48544f
2012-08-18 03:37:43 -07:00
John-David Dalton
8b80c5d0b5 Bump v0.5.1.
Former-commit-id: 09922fa2e936e0b112100690a04d6437131904a8
2012-08-18 02:20:30 -07:00
John-David Dalton
04425786a1 Ensure _.bind correctly appends array arguments to partially applied arguments.
Former-commit-id: 4fdb100f83ff9a0eafcba3f5bf91872748205595
2012-08-18 02:11:40 -07:00
John-David Dalton
15b14e12e2 Change to triple-backtick code fences.
Former-commit-id: 81d38ed0155734a72d98b2e16425635da907aa01
2012-08-18 00:04:17 -07:00
Mathias Bynens
b328972c4d README: Switch to the triple backtick syntax for highlighted code blocks
Former-commit-id: c4fba0c9cf7e8b0fdfc846260b148ecd327c0a1f
2012-08-17 19:31:03 +02:00
John-David Dalton
da3156047f Update minified build and rebuild documentation.
Former-commit-id: ab353b4c73c47b51144f5a917aeb53682b40552e
2012-08-17 08:17:14 -07:00
John-David Dalton
f9f08ba54f Optimize isPlainObject use in _.clone.
Former-commit-id: 7bb48bc5f9276c730f947b6e75b6fba4588f17c1
2012-08-17 08:16:31 -07:00
John-David Dalton
b43684262f Cleanup _.template documentation.
Former-commit-id: 7b45705bd8a4661dbf824912798ccba15e5ed989
2012-08-17 04:05:50 -07:00
John-David Dalton
2120f78bd7 Fix typos in README.md.
Former-commit-id: fb31a291a3afe799d2e9809f17420eda10888250
2012-08-17 02:54:19 -07:00
John-David Dalton
2d896f22d6 Bump to v0.5.0.
Former-commit-id: f30f4b99104c94fb52df4c90dcda24b8ac51432c
2012-08-17 02:28:42 -07:00
John-David Dalton
9fa0aebfe9 Add check for V8 bug #2291.
Former-commit-id: 245f156a2ce1ee92c8f8f8f34b9891ba4eff0d23
2012-08-17 02:12:17 -07:00
John-David Dalton
2ddc3af5ff Fix jQuery/MooTools DOM collection unit tests in IE6.
Former-commit-id: b9c3dbcffb28b0088018614e21fbe313b0d53713
2012-08-17 00:25:52 -07:00
John-David Dalton
fd80e096ea Remove noArgsClass check from isPlainObject.
Former-commit-id: bab7a68e8eaa21679b33b2ab70a9f8e47758ebc1
2012-08-17 00:10:03 -07:00
John-David Dalton
fab2d69fce Ensure _.sortBy performs a stable sort. [closes #59]
Former-commit-id: 09c5ff85ef0f1d054579ec4260a7f76d9c0da281
2012-08-16 23:24:59 -07:00
John-David Dalton
83d08e3aba Avoid false positives for arguments objects in IE < 9 when using isPlainObject.
Former-commit-id: 19e5a6efed32f26d0c908771eec40e7fb2ecf265
2012-08-16 22:22:08 -07:00
John-David Dalton
bfea6bcacf Maintain up-to-date minified underscore-min.js and use in perf tests.
Former-commit-id: 6317df872bd6136d81763d27a62a444f6e392537
2012-08-16 21:21:48 -07:00
John-David Dalton
feff34b021 Update vendors.
Former-commit-id: 44c2fe9fbfbf50aa64663d46b45d6fd2c778f2b7
2012-08-16 21:20:54 -07:00
John-David Dalton
79fbade92a Minor unit test cleanup.
Former-commit-id: 3243247d9da53f3a12cd19bec822bb43eb7f315e
2012-08-16 21:20:05 -07:00
John-David Dalton
bf508e453e Remove unused funcClass variable from compiled functions.
Former-commit-id: f47b8e412b5151e69a3ab78f03243c461b5ab072
2012-08-16 21:19:47 -07:00
John-David Dalton
47b51c22fa Ensure build tweaks are applied when new lines break up specific patterns.
Former-commit-id: 085a837521750457db9f20f3701984cba24a4f4f
2012-08-14 23:15:04 -07:00
John-David Dalton
ebd16105f2 Detect and remove additional unnecessary brackets from template strings during the build process.
Former-commit-id: 0b9786e7d41497fd1627e31401a5e7e0926eea9c
2012-08-14 00:12:27 -07:00
John-David Dalton
01fb1a5775 Optimize _.isFunction.
Former-commit-id: 0aaaa6d166c7eea94237388d61a11c6d183cbe1f
2012-08-13 23:11:01 -07:00
John-David Dalton
b8c2a05db9 Add strict comparison note to _.intersection and _.union documentation.
Former-commit-id: 47792d96e77fdeb6f00db1e4d30b41a6f1a59dbb
2012-08-13 07:37:26 -07:00
John-David Dalton
4087dc5fe4 Reword unit jQuery/MooTools DOM query collection unit test.
Former-commit-id: c80673f799ce6f1449d043eabf76fd6970a70b77
2012-08-13 00:45:38 -07:00
John-David Dalton
408029e6e0 Don't expose _.forIn or _.forOwn if underscore build modifier is present and include doesn't contain forIn or forOwn.
Former-commit-id: 6ebd0bc61d3ae6e2d0506fe72dd22ed59c601c70
2012-08-13 00:44:37 -07:00
John-David Dalton
23ff403529 Update vendors.
Former-commit-id: b239f365c9d8e012bf20525167e6d1a412ce828e
2012-08-12 22:33:27 -07:00
John-David Dalton
be4f81f584 Remove more unnecessary brackets from template strings during the build process.
Former-commit-id: c8e3dfe7d34f9c61fff75512fb4587a987bdf49f
2012-08-12 21:41:41 -07:00
John-David Dalton
361c91e610 Add support in _.isEmpty and _.size for jQuery/MooTools DOM query collections.
Former-commit-id: dc834256d09d7a3f2797ba65690961aad00717bf
2012-08-12 21:40:46 -07:00
John-David Dalton
2aa2ea9675 Fix edge issue with Opera 10.53-10.60.
Former-commit-id: 60014a8e3855bcbf0e4c6f47461123cacafcf668
2012-08-11 21:47:04 -07:00
John-David Dalton
e084225edf Cleanup .npmignore and ensure perf.js will work in the package.
Former-commit-id: e03213fba34c38af2be9003f5be4837d293198e1
2012-08-11 21:36:14 -07:00
John-David Dalton
9ce342205b Add Jam package support.
Former-commit-id: 399caeea73fc79dd340baa7e34b46179ff2beb86
2012-08-11 21:35:06 -07:00
John-David Dalton
0edf50e00e Update edge links in README.md to v0.5.0-rc.1 tagged links.
Former-commit-id: 1f9fea70c6608d980cc8c8fd7d0a39764cf14fa2
2012-08-09 00:24:53 -07:00
John-David Dalton
1ea19daad9 Clear the func variable in _.once so the function may be garbage collected.
Former-commit-id: 521a9d997cb206a5c468b30e5dfa8e096e1a13d5
2012-08-09 00:16:35 -07:00
John-David Dalton
32b302314e Add doc links to the change log entry in README.md.
Former-commit-id: 3c6c79de33331f14af2d5d2c64d1286c67bfb774
2012-08-07 08:20:00 -07:00
John-David Dalton
ee197e02a2 Updated tested environments and resolved issues in README.md.
Former-commit-id: 7d8cc17bad215d87c8c11210d58e1927c5766145
2012-08-07 08:04:46 -07:00
John-David Dalton
7cd6ffec2a Bump to v0.5.0-rc.1.
Former-commit-id: f5a29fd34de5aced3287413f40a0a36226465c84
2012-08-07 00:47:15 -07:00
John-David Dalton
0077580838 Fix failing unit tests in various browsers.
Former-commit-id: 9b5c6e82e0dfed79c505f41b66030ede81ca9a1c
2012-08-07 00:17:04 -07:00
John-David Dalton
4d85a79fd1 Add note about Chrome extensions to _.template.
Former-commit-id: 97b5220ebc3dbbd30b0e52f6c804b449b8d451ca
2012-08-06 08:03:54 -07:00
John-David Dalton
a35139bb61 Fix typo in test-ui.js.
Former-commit-id: 95057e80cfac9d7d776170d66f2c2bfdd364944f
2012-08-06 02:02:23 -07:00
John-David Dalton
f72b833724 Ensure _.keys works with arguments objets cross-browser.
Former-commit-id: 1238c9efcfc13a420804c26c5edee1e4aa5a4238
2012-08-06 01:51:47 -07:00
John-David Dalton
0e16bac6e2 Rebuild documentation.
Former-commit-id: d24c2fb65a54b018da9ad08aa3a67363a31c1122
2012-08-05 23:38:23 -07:00
John-David Dalton
e17564b362 Add unit tests for exiting early from _.forEach, _.forIn, _.forOwn.
Former-commit-id: 18d55054989d3b55afce1f4d604cd274eb9289c8
2012-08-05 23:09:05 -07:00
John-David Dalton
90b66eddf5 Add _.keys unit test for arguments objects.
Former-commit-id: dd90a9d3dc973a6ea8dce0c10ad511cce82097dd
2012-08-05 22:37:43 -07:00
John-David Dalton
2862a5849f Document how _.each, _.forIn, and _.forOwn may terminate iteration early by explicitly returning false in the callback.
Former-commit-id: e218eae83de880deecf1e45d32ca019efd25b548
2012-08-05 00:29:18 -07:00
John-David Dalton
7e839231ed Add iteratesOwnLast bug check.
Former-commit-id: fcc42a42f08e60acc1252ec06b045cfee17bd020
2012-08-05 00:09:00 -07:00
John-David Dalton
fa56a4bb73 Cleanup build.js and update dependencies for _.clone, _.isEmpty, _.isEqual, _.merge, and _.size.
Former-commit-id: df19990609a3dd8432694798149a5eb5bda142c4
2012-08-05 00:02:33 -07:00
John-David Dalton
dff950748c Fix the build to work with _.merge.
Former-commit-id: cb1d9897b97b357197bb6933c65f4afbecea1aea
2012-08-04 17:13:09 -07:00
John-David Dalton
b7374e3f8e Ensure merge works with sources containing circular references.
Former-commit-id: cb3301868299c4e4d32a3d3608199e4269d951ec
2012-08-04 17:12:25 -07:00
John-David Dalton
4244b92b08 Update minified build and rebuild docs.
Former-commit-id: f80bacba89ab171aae61d5ce7269e8507117bffa
2012-08-02 00:33:39 -07:00
John-David Dalton
4f688028ad Update vendors.
Former-commit-id: d1dd2ecf337cf8cda71e0da2af0647813b8de24a
2012-08-02 00:32:15 -07:00
John-David Dalton
5a9a18501d Add _.merge.
Former-commit-id: e393655b1fa41c8eb6ae1b925f456aa05231078a
2012-08-02 00:28:19 -07:00
John-David Dalton
896b8f7cf1 Remove noNodeClass from "mobile" and "csp" builds.
Former-commit-id: 0773f7b1c1ea637d0d519a3015d1534863a9be11
2012-07-29 23:54:52 -07:00
John-David Dalton
95bd1b014f Rework the noNodeClass inference to detect the JScript quirk too.
Former-commit-id: 3a6b73509490d7e87d2322fe1c09890f5f6b57ea
2012-07-29 23:48:07 -07:00
John-David Dalton
dbdf8642bb Rebuild documentation and update the minified build.
Former-commit-id: c4d4281f16250f50ea4d5337a53acceedd2ce660
2012-07-29 14:18:05 -07:00
John-David Dalton
c3cd9007d2 Add unit tests for _.where.
Former-commit-id: 5247bba20d7aa772867e29def99221faea376db1
2012-07-29 14:17:34 -07:00
John-David Dalton
8079fb5bc5 Reorganize and cleanup code for _.where.
Former-commit-id: 769dfafc1701c5ebc2d351abeb729ca6fcfa12e9
2012-07-29 13:49:23 -07:00
John-David Dalton
80d0b5d4ed Add _.where. [closes #22].
Former-commit-id: dec7a9d0df4158a395ec84fb9e774ed20205d421
2012-07-29 13:48:21 -07:00
John-David Dalton
86bd847bf9 Ensure _.isEqual works correctly for objects from another document and add _.clone benchmark.
Former-commit-id: b1ef745ec6c24e8ea0c8fae304ead80c60dfd5aa
2012-07-29 00:58:23 -07:00
John-David Dalton
943004844a Ensure the callback of _.filter can't modify the resulting value.
Former-commit-id: 6652dc5926390e8418b524c7ffd2347c2fa65c82
2012-07-26 23:24:17 -07:00
John-David Dalton
4ff12e0426 Fix recent typo in isEqual.
Former-commit-id: 84cdf90de59c8184a0ac1f78704f61dcc88c91f1
2012-07-25 01:35:56 -07:00
John-David Dalton
0d7bdb6fa8 Make _.range coerce arguments to numbers.
Former-commit-id: 5408800fef0bc8a418c298a112049232b6d85e78
2012-07-25 01:32:28 -07:00
John-David Dalton
6d488b6a81 Update minified build and rebuild documentation.
Former-commit-id: 5f0ea311b51723c225774d735f67fc58f55a4d6e
2012-07-24 02:15:20 -07:00
John-David Dalton
f1d0263ffa Add csp Content Security Policy build.
Former-commit-id: f922046de5150c098eb7f6d3b6901552117631e7
2012-07-24 02:13:31 -07:00
John-David Dalton
24035caadb Keep objects in the stack array of _.isEqual in case a cyclical object is used in a sibling property.
Former-commit-id: 33ffcec837322f4d479f64f9ec6b14184bf5f7a2
2012-07-24 02:13:07 -07:00
John-David Dalton
ed89a3e0f8 Check for custom isEqual methods in _.isEqual before other comparisons and add cross-browser support for arguments objects.
Former-commit-id: 56e40f670309aeb0dcda7868c8aa84b5909db1f1
2012-07-24 01:45:34 -07:00
John-David Dalton
7088ab89f1 Add deep clone support via the deep argument to _.clone.
Former-commit-id: d4fad45364489efb957d29e201846e8c1875b9ed
2012-07-24 01:41:38 -07:00
John-David Dalton
d4688bd76b Adjust _.wrap docs and rebuild/update the minified build/docs.
Former-commit-id: b33c4489bde49c98e7e161d0f831e07388a9da22
2012-07-20 03:22:13 -04:00
John-David Dalton
befe0fccaf Cleanup _.isEqual comments and ensure _.isEmpty/_.size detect arguments objects correctly.
Former-commit-id: 75b044d27b990d55393bf27234aad6ce369f6abe
2012-07-20 02:06:13 -04:00
John-David Dalton
a192410498 Remove Narwhal link from README.md.
Former-commit-id: b8bd53c9a19ef18480db14cfa82545aa872416b1
2012-07-19 09:15:04 -04:00
John-David Dalton
d43ede3a11 Update vendor/underscore and backbone.
Former-commit-id: 614926653b0b1669f8a5533666adb0aecbd46c03
2012-07-19 01:32:47 -04:00
John-David Dalton
9848ffb77f Add _.countBy and related unit tests, benchmarks, and documentation.
Former-commit-id: 915eaf414883a1dc344a558b08c7a1337ab5a225
2012-07-19 01:29:51 -04:00
John-David Dalton
7487497d1f Update minified build and rebuild documentation.
Former-commit-id: e674d7a30c1e5745b0acf90e38aa5757b15a3423
2012-07-18 04:52:13 -04:00
John-David Dalton
be11c848f4 Add "underscore" build.
Former-commit-id: 44e9f4543631cbf342ae7571cf540214623352db
2012-07-18 04:51:08 -04:00
John-David Dalton
9836b274b9 Add _.drop, unit tests, and cleanup documentation for _.extend, _.defaults, and _.pick.
Former-commit-id: a45b0c45d52fdbe5f71984412d631f3dfe87965b
2012-07-18 03:55:16 -04:00
John-David Dalton
a96d14566f Add Underscore ticket reference to Fix cross-browser object iteration bugs bullet in README.md.
Former-commit-id: 9814daf6b81f1c60b3c6681c10c1fc7b94ac61b8
2012-07-18 02:15:16 -04:00
John-David Dalton
1c8cd8c168 Ensure reEvaluateDelimiter is assigned an initial value if evaluateDelimiter is undefined by default. [closes #52]
Former-commit-id: 6cefeeca164901e611009ce1413e5080027592c9
2012-07-18 01:53:15 -04:00
John-David Dalton
5f5806a98e Update CDN link and rebuild documentation.
Former-commit-id: 32210baffaed31b7fb4daed58a0c0a4f22daf4f0
2012-07-17 01:41:21 -04:00
John-David Dalton
624b045ac0 Add unit tests and code comments for the conditional compilation patch.
Former-commit-id: 557aa43dc7c8db738452a9f3afb8ff2aadf8061a
2012-07-17 01:39:51 -04:00
Jay Phelps
0f8bae950e Ensure running in IE if concated with other files that enable conditional compilation /*@cc_on @/`.
Former-commit-id: cf2d9c01ce92b8b85149116d48145bc4342471a4
2012-07-16 20:07:55 -04:00
John-David Dalton
fcede42903 Add Unit testing video link to README and minor cleanup to build.js help text.
Former-commit-id: 504b69acede1bb4759ba942d01dfd0b899715f00
2012-07-16 18:28:34 -04:00
John-David Dalton
5defe7d975 Bump to v0.4.2.
Former-commit-id: 48638d63970b9d4300661620b881ea34854d24d2
2012-07-16 14:34:48 -04:00
John-David Dalton
7e79903fe8 Update tests to work around QUnit 1.9.0 bug in Narwhal/older-Firefox and add platform.js to test/index.html.
Former-commit-id: eed8246c795735558ba9f499b86f08ed3970ccaf
2012-07-16 13:58:36 -04:00
John-David Dalton
a2fa52504c Ensure stringClass isn't stripped out when needed for certain builds and update dependencies for arrayClass, funcClass, objectTypes, and reNative.
Former-commit-id: 334973dcab4660733e1d081efe3602a167c452d9
2012-07-15 07:01:44 -04:00
John-David Dalton
2629f85e73 Update minified build and rebuild documentation.
Former-commit-id: 5b434ca8c22a44d1603dcc1e92bf4caea6fe00a1
2012-07-15 03:52:22 -04:00
John-David Dalton
8577816234 Add optimizations for large arrays to _.difference, _.intersection, and _.without.
Former-commit-id: 26d55a6a3340e77b5269b2003d20def3fe77bca9
2012-07-15 03:51:28 -04:00
John-David Dalton
e58d47a3b2 Add "strict" build.
Former-commit-id: fcdd8d36c9e0c6d698059541b97915ae1b28650e
2012-07-14 08:59:50 -04:00
John-David Dalton
c9c83ee7e6 Add _.invoke benchmark to perf.js and a link to the compatibility changes wiki entry in README.md.
Former-commit-id: 51296709ea8d9dd6e951530b9874b90af3c764a2
2012-07-14 06:21:59 -04:00
John-David Dalton
139693dce6 Optimize benchmark setups, cleanup perf/index.html, and add platform.js.
Former-commit-id: 228b7b6fd230638f9ec8c79eafa56506fc84b79a
2012-07-14 04:51:50 -04:00
John-David Dalton
f98193d822 Poll until Firebug-lite is loaded.
Former-commit-id: c568ed963fc5716c2c84d63aba45a8ef258c1e7b
2012-07-13 14:41:21 -04:00
John-David Dalton
8052f1ac9d Revert unstable Closure Compiler.
Former-commit-id: 81716f0c269ac8a5befbf584c0dc964777cc1e1a
2012-07-13 04:33:50 -04:00
John-David Dalton
4f78a06993 Add _.isEqual benchmarks.
Former-commit-id: 5b3ee06ea3f31f10e8fac96da8766cc1c4c2d3bb
2012-07-13 04:17:38 -04:00
John-David Dalton
6c4b4b392b Avoid expensive test setup in perf.js.
Former-commit-id: f1c1ed41cb86c83aba2c3f7da1dedf6a280221ad
2012-07-12 18:19:23 -04:00
John-David Dalton
268fe34238 Update Closure Compiler.
Former-commit-id: bfdbe43546f3861cbeaaa99644af68e95f2175d5
2012-07-12 16:54:17 -04:00
John-David Dalton
cc620205d6 Control "use strict" directive use in builds.
Former-commit-id: 66a9bdee5cc61710d7d42d685feba616ec855322
2012-07-12 16:25:30 -04:00
John-David Dalton
f0d7c97b7b Update test-ui.js to better integrate with QUnit 1.9.0.
Former-commit-id: 7e6083ebb54fde0ebaa9f4f4551bb190e602a370
2012-07-12 15:48:52 -04:00
John-David Dalton
660a6e9e4c Update minified build and rebuild documentation.
Former-commit-id: 6e747961d3d756d016a27b530bf961841a93bd00
2012-07-12 15:27:25 -04:00
John-David Dalton
3386c2a7a5 Avoid enforcing strict mode in _.defaults, _.extend, and _.bindAll and add benchmarks for _.bindAll and _.functions. [closes #45]
Former-commit-id: 1bb0b5155d3ae46052b4a06cb538dff307e8ec5e
2012-07-12 15:25:18 -04:00
John-David Dalton
9530efb4d4 Update vendor folder.
Former-commit-id: 363508c8d79afa1ec8c1aba48b5be58a8a572367
2012-07-12 13:32:48 -04:00
John-David Dalton
4293515b3d Add help and version options to build.js.
Former-commit-id: 95a9fdaa7a00550922e71ce01a3f742b845d082c
2012-07-12 13:31:42 -04:00
John-David Dalton
61105e0679 Cleanup inline documentation.
Former-commit-id: 1fa95d45c2c3d1fe50f5827f4743aad3c8b75f95
2012-07-12 03:27:15 -04:00
John-David Dalton
79a289c7e2 Update CDN copy link.
Former-commit-id: 4d0d26292eef227f343f6b482856482f8f554a43
2012-07-12 02:06:55 -04:00
125 changed files with 96822 additions and 52317 deletions

12
.editorconfig Normal file
View File

@@ -0,0 +1,12 @@
# This file is for unifying the coding style for different editors and IDEs
# editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
* text=auto

78
.github/CONTRIBUTING.md vendored Normal file
View File

@@ -0,0 +1,78 @@
# Contributing to Lodash
Contributions are always welcome. Before contributing please read the
[code of conduct](https://jquery.org/conduct/) &
[search the issue tracker](https://github.com/lodash/lodash/issues); your issue
may have already been discussed or fixed in `master`. To contribute,
[fork](https://help.github.com/articles/fork-a-repo/) Lodash, commit your changes,
& [send a pull request](https://help.github.com/articles/using-pull-requests/).
## Feature Requests
Feature requests should be submitted in the
[issue tracker](https://github.com/lodash/lodash/issues), with a description of
the expected behavior & use case, where theyll remain closed until sufficient interest,
[e.g. :+1: reactions](https://help.github.com/articles/about-discussions-in-issues-and-pull-requests/),
has been shown by the community. Before submitting a request, please search for
similar ones in the
[closed issues](https://github.com/lodash/lodash/issues?q=is%3Aissue+is%3Aclosed+label%3Aenhancement).
## Pull Requests
For additions or bug fixes you should only need to modify `lodash.js`. Include
updated unit tests in the `test` directory as part of your pull request. Dont
worry about regenerating the `dist/` or `doc/` files.
Before running the unit tests youll need to install, `npm i`,
[development dependencies](https://docs.npmjs.com/files/package.json#devdependencies).
Run unit tests from the command-line via `npm test`, or open `test/index.html` &
`test/fp.html` in a web browser. The [Backbone](http://backbonejs.org/) &
[Underscore](http://underscorejs.org/) test suites are included as well.
## Contributor License Agreement
Lodash is a member of the [jQuery Foundation](https://jquery.org/).
As such, we request that all contributors sign the jQuery Foundation
[contributor license agreement (CLA)](https://contribute.jquery.org/CLA/).
For more information about CLAs, please check out Alex Russells excellent post,
[“Why Do I Need to Sign This?”](https://infrequently.org/2008/06/why-do-i-need-to-sign-this/).
## Coding Guidelines
In addition to the following guidelines, please follow the conventions already
established in the code.
- **Spacing**:<br>
Use two spaces for indentation. No tabs.
- **Naming**:<br>
Keep variable & method names concise & descriptive.<br>
Variable names `index`, `array`, & `iteratee` are preferable to
`i`, `arr`, & `fn`.
- **Quotes**:<br>
Single-quoted strings are preferred to double-quoted strings; however,
please use a double-quoted string if the value contains a single-quote
character to avoid unnecessary escaping.
- **Comments**:<br>
Please use single-line comments to annotate significant additions, &
[JSDoc-style](http://www.2ality.com/2011/08/jsdoc-intro.html) comments for
functions.
Guidelines are enforced using [JSCS](https://www.npmjs.com/package/jscs):
```bash
$ npm run style
```
## Tips
You can opt-in to a pre-push git hook by adding an `.opt-in` file to the root of
the project containing:
```txt
pre-push
```
With that, when you `git push`, the pre-push git hook will trigger and execute
`npm run validate`.

11
.gitignore vendored
View File

@@ -1,4 +1,9 @@
*.custom.*
.DS_Store
dist/
node_modules/
*.custom.*
*.log
*.map
lodash.compat.min.js
coverage
node_modules
.opt-in
.opt-out

97
.jscsrc Normal file
View File

@@ -0,0 +1,97 @@
{
"maxErrors": "2000",
"maximumLineLength": {
"value": 180,
"allExcept": ["comments", "functionSignature", "regex"]
},
"requireCurlyBraces": [
"if",
"else",
"for",
"while",
"do",
"try",
"catch"
],
"requireOperatorBeforeLineBreak": [
"=",
"+",
"-",
"/",
"*",
"==",
"===",
"!=",
"!==",
">",
">=",
"<",
"<="
],
"requireSpaceAfterKeywords": [
"if",
"else",
"for",
"while",
"do",
"switch",
"return",
"try",
"catch"
],
"requireSpaceBeforeBinaryOperators": [
"=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=",
"&=", "|=", "^=", "+=",
"+", "-", "*", "/", "%", "<<", ">>", ">>>", "&",
"|", "^", "&&", "||", "===", "==", ">=",
"<=", "<", ">", "!=", "!=="
],
"requireSpacesInFunctionExpression": {
"beforeOpeningCurlyBrace": true
},
"requireCamelCaseOrUpperCaseIdentifiers": true,
"requireDotNotation": { "allExcept": ["keywords"] },
"requireEarlyReturn": true,
"requireLineFeedAtFileEnd": true,
"requireSemicolons": true,
"requireSpaceAfterBinaryOperators": true,
"requireSpacesInConditionalExpression": true,
"requireSpaceBeforeObjectValues": true,
"requireSpaceBeforeBlockStatements": true,
"requireSpacesInForStatement": true,
"validateIndentation": 2,
"validateParameterSeparator": ", ",
"validateQuoteMarks": { "mark": "'", "escape": true },
"disallowSpacesInAnonymousFunctionExpression": {
"beforeOpeningRoundBrace": true
},
"disallowSpacesInFunctionDeclaration": {
"beforeOpeningRoundBrace": true
},
"disallowSpacesInFunctionExpression": {
"beforeOpeningRoundBrace": true
},
"disallowKeywords": ["with"],
"disallowMixedSpacesAndTabs": true,
"disallowMultipleLineBreaks": true,
"disallowNewlineBeforeBlockStatements": true,
"disallowSpaceAfterObjectKeys": true,
"disallowSpaceAfterPrefixUnaryOperators": true,
"disallowSpacesInCallExpression": true,
"disallowSpacesInsideArrayBrackets": true,
"disallowSpacesInsideParentheses": true,
"disallowTrailingWhitespace": true,
"disallowUnusedVariables": true,
"jsDoc": {
"checkRedundantAccess": true,
"checkTypes": true,
"requireNewlineAfterDescription": true,
"requireParamDescription": true,
"requireParamTypes": true,
"requireReturnTypes": true
}
}

View File

@@ -0,0 +1,44 @@
var _ = require('./lodash.js');
function mockQuery() {
return {
'on': function(eventName, callback) {
callback();
}
};
}
mockQuery.each = _.each;
module.exports = {
'babel': false,
'globals': {
'_': _,
// Example mocks.
'asyncSave': _.noop,
'addContactToList': _.noop,
'batchLog': _.noop,
'calculateLayout': _.noop,
'createApplication': _.noop,
'data': { 'user': 'mock'},
'mainText': '',
'renewToken': _.noop,
'sendMail': _.noop,
'updatePosition': _.noop,
// DOM mocks.
'document': { 'body': { 'childNodes': [], 'nodeName': 'BODY' } },
'element': {},
'EventSource': _.noop,
'jQuery': mockQuery,
'window': {},
// Node.js mocks.
'Buffer': Buffer,
'fs': { 'writeFileSync': _.noop },
'path': require('path'),
'process': process,
'setImmediate': setImmediate
}
}

View File

@@ -1,17 +0,0 @@
*.custom.*
*.min.*
.*
dist/
doc/*.php
node_modules/
perf/*.html
perf/*.sh
test/*.html
test/*-ui.js
test/*.sh
vendor/backbone/
vendor/docdown/
vendor/qunit/qunit/*.css
vendor/underscore/
vendor/requirejs/
vendor/firebug-lite/

86
.travis.yml Normal file
View File

@@ -0,0 +1,86 @@
language: node_js
sudo: false
node_js:
- "6"
env:
global:
- BIN="node" ISTANBUL=false OPTION=""
- SAUCE_LABS=false SAUCE_USERNAME="lodash"
- secure: "tg1JFsIFnxzLaTboFPOnm+aJCuMm5+JdhLlESlqg9x3fwro++7KCnwHKLNovhchaPe4otC43ZMB/nfWhDnDm11dKbm/V6HlTkED+dadTsaLxVDg6J+7yK41QhokBPJOxLV78iDaNaAQVYEirAgZ0yn8kFubxmNKV+bpCGQNc9yU="
matrix:
-
- BIN="phantomjs"
- ISTANBUL=true
- SAUCE_LABS=true
matrix:
include:
- node_js: "0.10"
env:
- node_js: "0.12"
env:
- node_js: "4"
env:
- node_js: "5"
env:
git:
depth: 10
branches:
only:
- master
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/4aab6358b0e9aed0b628
on_success: change
on_failure: always
before_install:
- "nvm use $TRAVIS_NODE_VERSION"
- "npm set loglevel error"
- "npm set progress false"
- "npm i -g npm@\"^2.0.0\""
- |
PATTERN[0]="|\s*if\s*\(isHostObject\b[\s\S]+?\}(?=\n)|"
PATTERN[1]="|\s*if\s*\(enumerate\b[\s\S]+?\};\s*\}|"
PATTERN[2]="|\s*while\s*\([^)]+\)\s*\{\s*iteratee\(index\);\s*\}|"
PATTERN[3]="|\s*else\s*\{\s*assocSet\(data\b[\s\S]+?\}|"
PATTERN[4]="|\bcase\s+(?:dataView|promise|set|map|weakMap)CtorString:.+|g"
PATTERN[5]="|\bindex,\s*iterable\)\s*===\s*false\)[^}]+?(break;)|"
PATTERN[6]="|\s*if\s*\(\!lodashFunc\)\s*\{\s*return;\s*\}|"
PATTERN[7]="|\s*define\([\s\S]+?\);|"
PATTERN[8]="|\s*root\._\s*=\s*_;|"
if [ $ISTANBUL == true ]; then
set -e
for PTRN in ${PATTERN[@]}; do
node ./test/remove.js "$PTRN" ./lodash.js
done
fi
- "git clone --depth=10 --branch=master git://github.com/lodash/lodash-cli ./node_modules/lodash-cli"
- "mkdir -p ./node_modules/lodash-cli/node_modules/lodash && cd $_ && cp ../../../../lodash.js ./lodash.js && cp ../../../../package.json ./package.json"
- "cd ../../ && npm i && cd ../../"
script:
# Detect code coverage.
- "[ $ISTANBUL == false ] || istanbul cover -x \"**/vendor/**\" --report lcovonly ./test/test.js -- ./lodash.js"
- "[ $ISTANBUL == false ] || [ $TRAVIS_SECURE_ENV_VARS == false ] || (cat ./coverage/lcov.info | coveralls) || true"
- "[ $ISTANBUL == false ] || [ $TRAVIS_SECURE_ENV_VARS == false ] || (cat ./coverage/coverage.json | codecov) || true"
# Test in Node.js and PhantomJS.
- "[ $ISTANBUL == true ] || node ./node_modules/lodash-cli/bin/lodash -o ./dist/lodash.js"
- "[ $ISTANBUL == true ] || (node ./node_modules/lodash-cli/bin/lodash modularize exports=node -o ./ && node ./node_modules/lodash-cli/bin/lodash -d -o ./lodash.js)"
- "[ $ISTANBUL == true ] || [ $SAUCE_LABS == true ] || cd ./test"
- "[ $ISTANBUL == true ] || [ $SAUCE_LABS == true ] || $BIN $OPTION ./test.js ../lodash.js"
- "[ $ISTANBUL == true ] || [ $SAUCE_LABS == true ] || [ $TRAVIS_SECURE_ENV_VARS == false ] || $BIN $OPTION ./test.js ../dist/lodash.min.js"
# Test in Sauce Labs.
- "[ $SAUCE_LABS == false ] || node ./node_modules/lodash-cli/bin/lodash core -o ./dist/lodash.core.js"
- "[ $SAUCE_LABS == false ] || npm run build"
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"lodash tests\" runner=\"test/index.html?build=../dist/lodash.js&noglobals=true\" tags=\"development\""
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"lodash tests\" runner=\"test/index.html?build=../dist/lodash.min.js&noglobals=true\" tags=\"production\""
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"lodash-fp tests\" runner=\"test/fp.html?noglobals=true\" tags=\"development\""
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"underscore tests\" runner=\"test/underscore.html?build=../dist/lodash.js\" tags=\"development,underscore\""
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"underscore tests\" runner=\"test/underscore.html?build=../dist/lodash.min.js\" tags=\"production,underscore\""
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"backbone tests\" runner=\"test/backbone.html?build=../dist/lodash.js\" tags=\"development,backbone\""
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"backbone tests\" runner=\"test/backbone.html?build=../dist/lodash.min.js\" tags=\"production,backbone\""
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"backbone tests\" runner=\"test/backbone.html?build=../dist/lodash.core.js\" tags=\"development,backbone\""
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"backbone tests\" runner=\"test/backbone.html?build=../dist/lodash.core.min.js\" tags=\"production,backbone\""

View File

@@ -1,6 +1,16 @@
Copyright 2010-2012 Mathias Bynens <http://mathiasbynens.be/>
Based on JSLitmus.js, copyright Robert Kieffer <http://broofa.com/>
Modified by John-David Dalton <http://allyoucanleet.com/>
Copyright jQuery Foundation and other contributors <https://jquery.org/>
Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
available at https://github.com/lodash/lodash
The following license applies to all parts of this software except as
documented below:
====
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
@@ -20,3 +30,18 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
====
Copyright and related rights for sample code are waived via CC0. Sample
code is defined as all source code displayed within the prose of the
documentation.
CC0: http://creativecommons.org/publicdomain/zero/1.0/
====
Files located in the node_modules and vendor directories are externally
maintained libraries used by this software which have their own
licenses; we recommend you read them, as their terms may differ from the
terms above.

View File

@@ -1,22 +0,0 @@
Copyright 2012 John-David Dalton <http://allyoucanleet.com/>
Based on Underscore.js 1.3.3, copyright 2009-2012 Jeremy Ashkenas,
DocumentCloud Inc. <http://documentcloud.github.com/underscore>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

295
README.md
View File

@@ -1,273 +1,46 @@
# Lo-Dash <sup>v0.4.1</sup>
# lodash v4.12.0
A drop-in replacement for Underscore.js, from the devs behind [jsPerf.com](http://jsperf.com), that delivers [performance improvements](http://lodash.com/benchmarks), [bug fixes](https://github.com/bestiejs/lodash#closed-underscorejs-issues), and [additional features](https://github.com/bestiejs/lodash#features).
[Site](https://lodash.com/) |
[Docs](https://lodash.com/docs) |
[FP Guide](https://github.com/lodash/lodash/wiki/FP-Guide) |
[Contributing](https://github.com/lodash/lodash/blob/4.12.0/.github/CONTRIBUTING.md) |
[Wiki](https://github.com/lodash/lodash/wiki "Changelog, Roadmap, etc.") |
[Code of Conduct](https://jquery.org/conduct/) |
[Twitter](https://twitter.com/bestiejs) |
[Chat](https://gitter.im/lodash/lodash)
Lo-Dashs performance is gained by avoiding slower native methods, instead opting for simplified non-ES5 compliant methods optimized for common usage, and by leveraging function compilation to reduce the number of overall function calls.
The [Lodash](https://lodash.com/) library exported as a [UMD](https://github.com/umdjs/umd) module.
Generated using [lodash-cli](https://www.npmjs.com/package/lodash-cli):
```bash
$ npm run build
$ lodash -o ./dist/lodash.js
$ lodash core -o ./dist/lodash.core.js
```
## Download
* [Development source](https://raw.github.com/bestiejs/lodash/v0.4.1/lodash.js)
* [Production source](https://raw.github.com/bestiejs/lodash/v0.4.1/lodash.min.js)
* CDN copies of ≤ [v0.3.2](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/0.3.2/lodash.min.js) are available on [cdnjs](http://cdnjs.com/) thanks to [CloudFlare](http://www.cloudflare.com/)
* For optimal performance, [create a custom build](https://github.com/bestiejs/lodash#custom-builds) with only the features you need
Lodash is released under the [MIT license](https://raw.githubusercontent.com/lodash/lodash/4.12.0/LICENSE) & supports [modern environments](#support).<br>
Review the [build differences](https://github.com/lodash/lodash/wiki/build-differences) & pick one thats right for you.
## Dive in
* [Core build](https://raw.githubusercontent.com/lodash/lodash/4.12.0/dist/lodash.core.js) ([~4 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.12.0/dist/lodash.core.min.js))
* [Full build](https://raw.githubusercontent.com/lodash/lodash/4.12.0/dist/lodash.js) ([~22 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.12.0/dist/lodash.min.js))
* [CDN copies](https://www.jsdelivr.com/projects/lodash)
Weve got [API docs](http://lodash.com/docs), [benchmarks](http://lodash.com/benchmarks), and [unit tests](http://lodash.com/tests).
## Why Lodash?
Create your own benchmarks at [jsPerf](http://jsperf.com), or [search](http://jsperf.com/search?q=lodash) for existing ones.
Lodash makes JavaScript easier by taking the hassle out of working with arrays,<br>
numbers, objects, strings, etc. Lodashs modular methods are great for:
For a list of upcoming features, check out our [roadmap](https://github.com/bestiejs/lodash/wiki/Roadmap).
* Iterating arrays, objects, & strings
* Manipulating & testing values
* Creating composite functions
## Screencasts
## Module Formats
For more information check out these screencasts over Lo-Dash:
Lodash is available in a [variety of builds](https://lodash.com/custom-builds) & module formats.
* [Introducing Lo-Dash](https://vimeo.com/44154599)
* [Optimizations and custom builds](https://vimeo.com/44154601)
* [Lo-Dashs origin and why its a better utility belt](https://vimeo.com/44154600)
## Features
* AMD loader support ([RequireJS](http://requirejs.org/), [curl.js](https://github.com/cujojs/curl), etc.)
* [_.bind](http://lodash.com/docs#bind) supports *"lazy"* binding
* [_.debounce](http://lodash.com/docs#debounce)ed functions match [_.throttle](http://lodash.com/docs#throttle)ed functions return value behavior
* [_.forEach](http://lodash.com/docs#forEach) is chainable
* [_.forIn](http://lodash.com/docs#forIn) for iterating over an objects own and inherited properties
* [_.forOwn](http://lodash.com/docs#forOwn) for iterating over an objects own properties
* [_.groupBy](http://lodash.com/docs#groupBy), [_.sortedIndex](http://lodash.com/docs#sortedIndex), and [_.uniq](http://lodash.com/docs#uniq) accept a `thisArg` argument
* [_.indexOf](http://lodash.com/docs#indexOf) and [_.lastIndexOf](http://lodash.com/docs#lastIndexOf) accept a `fromIndex` argument
* [_.partial](http://lodash.com/docs#partial) for more functional fun
* [_.template](http://lodash.com/docs#template) utilizes [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) for easier debugging
* [_.contains](http://lodash.com/docs#contains), [_.size](http://lodash.com/docs#size), [_.toArray](http://lodash.com/docs#toArray),
[and more…](http://lodash.com/docs "_.every, _.filter, _.find, _.forEach, _.groupBy, _.invoke, _.map, _.pluck, _.reduce, _.reduceRight, _.reject, _.some, _sortBy") accept strings
## Support
Lo-Dash has been tested in at least Chrome 5-20, Firefox 1.5-13, IE 6-9, Opera 9.25-12, Safari 3.0.4-5.1.7, Node.js 0.4.8-0.8.2, Narwhal 0.3.2, RingoJS 0.8, and Rhino 1.7RC3.
## Custom builds
Custom builds make it easy to create lightweight versions of Lo-Dash containing only the methods you need.
We handle all the method dependency and alias mapping for you.
* Backbone builds, containing all methods required by Backbone, may be created using the `backbone` modifier argument.
~~~ bash
lodash backbone
~~~
* Legacy builds, tailored for older browsers without [ES5 support](http://es5.github.com/), may be created using the `legacy` modifier argument.
~~~ bash
lodash legacy
~~~
* Mobile builds, with IE < 9 bug fixes and method compilation removed, may be created using the `mobile` modifier argument.
~~~ bash
lodash mobile
~~~
Custom builds may be created in three ways:
1. Use the `category` argument to pass the categories of methods to include in the build.<br>
Valid categories are *"arrays"*, *"chaining"*, *"collections"*, *"functions"*, *"objects"*, and *"utilities"*.
~~~ bash
lodash category=collections,functions
lodash category="collections, functions"
~~~
2. Use the `include` argument to pass the names of methods to include in the build.
~~~ bash
lodash include=each,filter,map
lodash include="each, filter, map"
~~~
3. Use the `exclude` argument to pass the names of methods to exclude from the build.
~~~ bash
lodash exclude=union,uniq,zip
lodash exclude="union, uniq, zip"
~~~
All arguments, except `include` with `exclude` and `mobile` with `legacy`, may be combined.
~~~ bash
lodash backbone mobile category=functions include=pick,uniq
lodash backbone legacy category=utilities exclude=first,last
~~~
The `lodash` command-line utility is available when Lo-Dash is installed as a global package (i.e. `npm install -g lodash`).
Custom builds are saved to `lodash.custom.js` and `lodash.custom.min.js`.
## Installation and usage
In browsers:
~~~ html
<script src="lodash.js"></script>
~~~
Using [npm](http://npmjs.org/):
~~~ bash
npm install lodash
npm install -g lodash
~~~
In [Node.js](http://nodejs.org/) and [RingoJS v0.8.0+](http://ringojs.org/):
~~~ js
var _ = require('lodash');
~~~
In [Narwhal](http://narwhaljs.org/) and [RingoJS v0.7.0-](http://ringojs.org/):
~~~ js
var _ = require('lodash')._;
~~~
In [Rhino](http://www.mozilla.org/rhino/):
~~~ js
load('lodash.js');
~~~
In an AMD loader like [RequireJS](http://requirejs.org/):
~~~ js
require({
'paths': {
'underscore': 'path/to/lodash'
}
},
['underscore'], function(_) {
console.log(_.VERSION);
});
~~~
## Closed Underscore.js issues <sup>(20+)</sup>
* Allow iteration of objects with a `length` property [[#148](https://github.com/documentcloud/underscore/issues/148), [#154](https://github.com/documentcloud/underscore/issues/154), [#252](https://github.com/documentcloud/underscore/issues/252), [#448](https://github.com/documentcloud/underscore/issues/448), [#659](https://github.com/documentcloud/underscore/issues/659), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L306-312)]
* Ensure array-like objects with invalid `length` properties are treated like regular objects [[test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L257-263), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L607-621), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L863-866)]
* Ensure *"Arrays"* methods allow falsey `array` arguments [[test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L931-970)]
* Ensure *"Collections"* methods allow string `collection` arguments [[#247](https://github.com/documentcloud/underscore/issues/247), [#276](https://github.com/documentcloud/underscore/issues/276), [#561](https://github.com/documentcloud/underscore/pull/561), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L265-283), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L623-640), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L868-871)]
* Ensure templates compiled with errors are inspectable [[#666](https://github.com/documentcloud/underscore/issues/666), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L737-744)]
* Fix cross-browser object iteration bugs [[#376](https://github.com/documentcloud/underscore/issues/376), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L195-207), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L317-342), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L438-449), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L457-459), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L477-497), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L667-669)]
* Handle arrays with `undefined` values correctly in IE < 9 [[#601](https://github.com/documentcloud/underscore/issues/601)]
* Methods should work on pages with incorrectly shimmed native methods [[#7](https://github.com/documentcloud/underscore/issues/7), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L86-92)]
* Register as an AMD module, but still export to global [[#431](https://github.com/documentcloud/underscore/pull/431), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L70-84)]
* `_(…)` should return passed wrapper instances [[test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L104-107)]
* `_.contains` should work with strings [[#667](https://github.com/documentcloud/underscore/pull/667), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L138-147)]
* `_.escape` should return an empty string when passed `null` or `undefined` [[#407](https://github.com/documentcloud/underscore/issues/427), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L176-179)]
* `_.forEach` should be chainable [[#142](https://github.com/documentcloud/underscore/issues/142), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L252-255)]
* `_.groupBy` should add values to own, not inherited, properties [[test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L357-364)]
* `_isNaN(new Number(NaN))` should return `true` [[test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L467-469)]
* `_.reduceRight` should pass correct callback arguments when iterating objects [[test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L591-605)]
* `_.size` should return the `length` of string values [[test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L650-652)]
* `_.size` shouldn't error on falsey values [[#650](https://github.com/documentcloud/underscore/pull/650), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L654-661)]
* `_.size` should work with `arguments` objects cross-browser [[#653](https://github.com/documentcloud/underscore/issues/653), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L663-665)]
* `_.sortedIndex` should support arrays with high `length` values [[test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L707-716)]
* `_.template` should not augment the `options` object [[test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L731-735)]
* `_.throttle` should work when called in a tight loop [[#502](https://github.com/documentcloud/underscore/issues/502), [test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L814-824)]
* `_.zipObject` should accept less than two arguments [[test](https://github.com/bestiejs/lodash/blob/v0.4.1/test/test.js#L893-895)]
## Optimized methods <sup>(50+)</sup>
* `_.bind`
* `_.bindAll`
* `_.clone`
* `_.compact`
* `_.contains`, `_.include`
* `_.defaults`
* `_.defer`
* `_.difference`
* `_.each`
* `_.escape`
* `_.every`, `_.all`
* `_.extend`
* `_.filter`, `_.select`
* `_.find`, `_.detect`
* `_.flatten`
* `_.forEach`, `_.each`
* `_.functions`, `_.methods`
* `_.groupBy`
* `_.indexOf`
* `_.intersection`
* `_.invoke`
* `_.isArguments`
* `_.isDate`
* `_.isEmpty`
* `_.isEqual`
* `_.isFinite`
* `_.isFunction`
* `_.isObject`
* `_.isNumber`
* `_.isRegExp`
* `_.isString`
* `_.keys`
* `_.lastIndexOf`
* `_.map`, `_.collect`
* `_.max`
* `_.memoize`
* `_.min`
* `_.mixin`
* `_.pick`
* `_.pluck`
* `_.reduce`, `_.foldl`, `_.inject`
* `_.reject`
* `_.result`
* `_.shuffle`
* `_.some`, `_.any`
* `_.sortBy`
* `_.sortedIndex`
* `_.template`
* `_.throttle`
* `_.times`
* `_.toArray`
* `_.union`
* `_.uniq`, `_.unique`
* `_.values`
* `_.without`
* `_.wrap`
* `_.zip`
* plus all `_(…)` method wrappers
## Release Notes
### <sup>v0.4.1</sup>
* Fixed `_.template` regression
* Optimized build process to detect and remove more unused variables
### <sup>v0.4.0</sup>
* Added `bin` and `scripts` entries to package.json
* Added `legacy` build option
* Added cross-browser support for passing strings to *"Collections"* methods
* Added `_.zipObject`
* Leveraged `_.indexOf`'s `fromIndex` in `_.difference` and `_.without`
* Optimized compiled templates
* Optimized inlining the `iteratorTemplate` for builds
* Optimized object iteration for *"Collections"* methods
* Optimized partially applied `_.bind` in V8
* Made compiled templates more debuggable
* Made `_.size` work with falsey values and consistent cross-browser with `arguments` objects
* Moved `_.groupBy` and `_.sortBy` back to the *"Collections"* category
* Removed `arguments` object from `_.range`
The full changelog is available [here](https://github.com/bestiejs/lodash/wiki/Changelog).
## BestieJS
Lo-Dash is part of the BestieJS *"Best in Class"* module collection. This means we promote solid browser/environment support, ES5 precedents, unit testing, and plenty of documentation.
## Author
* [John-David Dalton](http://allyoucanleet.com/)
[![twitter/jdalton](http://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](https://twitter.com/jdalton "Follow @jdalton on Twitter")
## Contributors
* [Kit Cambridge](http://kitcambridge.github.com/)
[![twitter/kitcambridge](http://gravatar.com/avatar/6662a1d02f351b5ef2f8b4d815804661?s=70)](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter")
* [Mathias Bynens](http://mathiasbynens.be/)
[![twitter/mathias](http://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter")
* [lodash](https://www.npmjs.com/package/lodash) & [per method packages](https://www.npmjs.com/browse/keyword/lodash-modularized)
* [lodash-amd](https://www.npmjs.com/package/lodash-amd)
* [lodash-es](https://www.npmjs.com/package/lodash-es) & [babel-plugin-lodash](https://www.npmjs.com/package/babel-plugin-lodash)
* [lodash/fp](https://github.com/lodash/lodash/tree/4.12.0-npm/fp)

915
build.js
View File

@@ -1,915 +0,0 @@
#!/usr/bin/env node
;(function() {
'use strict';
/** Load modules */
var fs = require('fs'),
path = require('path'),
vm = require('vm'),
minify = require(path.join(__dirname, 'build', 'minify'));
/** The current working directory */
var cwd = process.cwd();
/** Flag used to specify a backbone build */
var isBackbone = process.argv.indexOf('backbone') > -1;
/** Flag used to specify a legacy build */
var isLegacy = process.argv.indexOf('legacy') > -1;
/** Flag used to specify a mobile build */
var isMobile = !isLegacy && process.argv.indexOf('mobile') > -1;
/** Shortcut used to convert array-like objects to arrays */
var slice = [].slice;
/** The lodash.js source */
var source = fs.readFileSync(path.join(__dirname, 'lodash.js'), 'utf8');
/** Load customized Lo-Dash module */
var lodash = (function() {
var sandbox = {};
if (isLegacy) {
['isBindFast', 'isKeysFast', 'nativeBind', 'nativeIsArray', 'nativeKeys'].forEach(function(varName) {
source = replaceVar(source, varName, 'false');
});
}
else if (isMobile) {
source = replaceVar(source, 'isKeysFast', 'false');
}
vm.runInNewContext(source, sandbox);
return sandbox._;
}());
/** Used to associate aliases with their real names */
var aliasToRealMap = {
'all': 'every',
'any': 'some',
'collect': 'map',
'detect': 'find',
'each': 'forEach',
'foldl': 'reduce',
'foldr': 'reduceRight',
'head': 'first',
'include': 'contains',
'inject': 'reduce',
'methods': 'functions',
'select': 'filter',
'tail': 'rest',
'take': 'first',
'unique': 'uniq'
};
/** Used to associate real names with their aliases */
var realToAliasMap = {
'contains': ['include'],
'every': ['all'],
'filter': ['select'],
'find': ['detect'],
'first': ['head', 'take'],
'forEach': ['each'],
'functions': ['methods'],
'map': ['collect'],
'reduce': ['foldl', 'inject'],
'reduceRight': ['foldr'],
'rest': ['tail'],
'some': ['any'],
'uniq': ['unique']
};
/** Used to track Backbone's Lo-Dash dependencies */
var backboneDependencies = [
'bind',
'bindAll',
'clone',
'contains',
'escape',
'every',
'extend',
'filter',
'find',
'first',
'forEach',
'groupBy',
'has',
'indexOf',
'initial',
'invoke',
'isArray',
'isEmpty',
'isEqual',
'isFunction',
'isObject',
'isRegExp',
'keys',
'last',
'lastIndexOf',
'map',
'max',
'min',
'mixin',
'reduce',
'reduceRight',
'reject',
'rest',
'shuffle',
'size',
'some',
'sortBy',
'sortedIndex',
'toArray',
'uniqueId',
'without'
];
/** Used to track function dependencies */
var dependencyMap = {
'after': [],
'bind': [],
'bindAll': ['bind', 'functions'],
'chain': ['mixin'],
'clone': ['extend', 'isArray'],
'compact': [],
'compose': [],
'contains': [],
'debounce': [],
'defaults': [],
'defer': [],
'delay': [],
'difference': ['indexOf'],
'escape': [],
'every': ['identity'],
'extend': [],
'filter': ['identity'],
'find': [],
'first': [],
'flatten': ['isArray'],
'forEach': [],
'forIn': [],
'forOwn': [],
'functions': [],
'groupBy': [],
'has': [],
'identity': [],
'indexOf': ['sortedIndex'],
'initial': [],
'intersection': ['every', 'indexOf'],
'invoke': [],
'isArguments': [],
'isArray': [],
'isBoolean': [],
'isDate': [],
'isElement': [],
'isEmpty': [],
'isEqual': [],
'isFinite': [],
'isFunction': [],
'isNaN': [],
'isNull': [],
'isNumber': [],
'isObject': [],
'isRegExp': [],
'isString': [],
'isUndefined': [],
'keys': [],
'last': [],
'lastIndexOf': [],
'map': ['identity'],
'max': [],
'memoize': [],
'min': [],
'mixin': ['forEach', 'functions'],
'noConflict': [],
'once': [],
'partial': [],
'pick': [],
'pluck': [],
'range': [],
'reduce': [],
'reduceRight': ['keys'],
'reject': ['identity'],
'rest': [],
'result': [],
'shuffle': [],
'size': ['keys'],
'some': ['identity'],
'sortBy': [],
'sortedIndex': ['bind'],
'tap': [],
'template': ['escape'],
'throttle': [],
'times': [],
'toArray': ['values'],
'union': ['indexOf'],
'uniq': ['identity', 'indexOf'],
'uniqueId': [],
'values': [],
'without': ['indexOf'],
'wrap': [],
'zip': ['max', 'pluck'],
'zipObject': []
};
/** Used to `iteratorTemplate` */
var iteratorOptions = [
'args',
'array',
'arrayBranch',
'beforeLoop',
'bottom',
'exit',
'firstArg',
'hasDontEnumBug',
'inLoop',
'init',
'isKeysFast',
'iteratee',
'object',
'objectBranch',
'noCharByIndex',
'shadowed',
'top',
'useHas'
];
/** Collections of method names */
var excludeMethods,
includeMethods,
allMethods = Object.keys(dependencyMap);
/** Used to specify whether filtering is for exclusion or inclusion */
var filterType = process.argv.reduce(function(result, value) {
if (result) {
return result;
}
var pair = value.match(/^(exclude|include)=(.*)$/);
if (!pair) {
return result;
}
// remove nonexistent method names
var methodNames = lodash.intersection(allMethods, pair[2].split(/, */).map(getRealName));
if (pair[1] == 'exclude') {
excludeMethods = methodNames;
} else {
includeMethods = methodNames;
}
// return `filterType`
return pair[1];
}, '');
/*--------------------------------------------------------------------------*/
/**
* Gets the aliases associated with a given function name.
*
* @private
* @param {String} funcName The name of the function to get aliases for.
* @returns {Array} Returns an array of aliases.
*/
function getAliases(funcName) {
return realToAliasMap[funcName] || [];
}
/**
* Gets an array of depenants for a function by a given name.
*
* @private
* @param {String} funcName The name of the function to query.
* @returns {Array} Returns an array of function dependants.
*/
function getDependants(funcName) {
// iterate over `dependencyMap`, adding the names of functions that
// have `funcName` as a dependency
return lodash.reduce(dependencyMap, function(result, dependencies, otherName) {
if (lodash.contains(dependencies, funcName)) {
result.push(otherName);
}
return result;
}, []);
}
/**
* Gets an array of dependencies for a given function name. If passed an array
* of dependencies it will return an array containing the given dependencies
* plus any additional detected sub-dependencies.
*
* @private
* @param {Array|String} funcName A single function name or array of
* dependencies to query.
* @returns {Array} Returns an array of function dependencies.
*/
function getDependencies(funcName) {
var dependencies = Array.isArray(funcName) ? funcName : dependencyMap[funcName];
if (!dependencies) {
return [];
}
// recursively accumulate the dependencies of the `funcName` function, and
// the dependencies of its dependencies, and so on.
return lodash.uniq(dependencies.reduce(function(result, otherName) {
result.push.apply(result, getDependencies(otherName).concat(otherName));
return result;
}, []));
}
/**
* Gets the formatted source of the given function.
*
* @private
* @param {Function} func The function to process.
* @returns {String} Returns the formatted source.
*/
function getFunctionSource(func) {
var source = func.source || (func + '');
// all leading whitespace
return source.replace(/\n(?:.*)/g, function(match, index) {
match = match.slice(1);
return (
match == '}' && source.indexOf('}', index + 2) == -1 ? '\n ' : '\n '
) + match;
});
}
/**
* Gets the `_.isArguments` fallback snippet from `source`.
*
* @private
* @param {String} source The source to inspect.
* @returns {String} Returns the `isArguments` fallback snippet.
*/
function getIsArgumentsFallback(source) {
return (source.match(/(?:\s*\/\/.*)*\s*if *\(!(?:lodash\.)?isArguments[^)]+\)[\s\S]+?};\s*}/) || [''])[0];
}
/**
* Gets the real name, not alias, of a given function name.
*
* @private
* @param {String} funcName The name of the function to resolve.
* @returns {String} Returns the real name.
*/
function getRealName(funcName) {
return aliasToRealMap[funcName] || funcName;
}
/**
* Determines if all functions of the given names have been removed from `source`.
*
* @private
* @param {String} source The source to inspect.
* @param {String} [funcName1, funcName2, ...] The names of functions to check.
* @returns {Boolean} Returns `true` if all functions have been removed, else `false`.
*/
function isRemoved(source) {
return slice.call(arguments, 1).every(function(funcName) {
return !matchFunction(source, funcName);
});
}
/**
* Searches `source` for a `funcName` function declaration, expression, or
* assignment and returns the matched snippet.
*
* @private
* @param {String} source The source to inspect.
* @param {String} funcName The name of the function to match.
* @returns {String} Returns the matched function snippet.
*/
function matchFunction(source, funcName) {
var result = source.match(RegExp(
// match multi-line comment block (could be on a single line)
'\\n +/\\*[^*]*\\*+(?:[^/][^*]*\\*+)*/\\n' +
// begin non-capturing group
'(?:' +
// match a function declaration
'( +)function ' + funcName + '\\b[\\s\\S]+?\\n\\1}|' +
// match a variable declaration with `createIterator`
' +var ' + funcName + ' *=.*?createIterator\\((?:{|[a-zA-Z])[\\s\\S]+?\\);|' +
// match a variable declaration with function expression
'( +)var ' + funcName + ' *=.*?function[\\s\\S]+?\\n\\2};' +
// end non-capturing group
')\\n'
));
return result ? result[0] : '';
}
/**
* Removes the all references to `refName` from `createIterator` in `source`.
*
* @private
* @param {String} source The source to process.
* @param {String} refName The name of the reference to remove.
* @returns {String} Returns the modified source.
*/
function removeFromCreateIterator(source, refName) {
var snippet = matchFunction(source, 'createIterator');
if (snippet) {
// clip the snippet the `factory` assignment
snippet = snippet.match(/Function\([\s\S]+$/)[0];
var modified = snippet.replace(RegExp('\\b' + refName + '\\b,? *', 'g'), '');
source = source.replace(snippet, modified);
}
return source;
}
/**
* Removes the `funcName` function declaration, expression, or assignment and
* associated code from `source`.
*
* @private
* @param {String} source The source to process.
* @param {String} funcName The name of the function to remove.
* @returns {String} Returns the source with the function removed.
*/
function removeFunction(source, funcName) {
var modified,
snippet = matchFunction(source, funcName);
// exit early if function is not found
if (!snippet) {
return source;
}
// remove function
source = source.replace(matchFunction(source, funcName), '');
// grab the method assignments snippet
snippet = source.match(/lodash\.VERSION *= *[\s\S]+?\/\*-+\*\/\n/)[0];
// remove assignment and aliases
modified = getAliases(funcName).concat(funcName).reduce(function(result, otherName) {
return result.replace(RegExp('(?:\\n *//.*\\s*)* *lodash\\.' + otherName + ' *= *.+\\n'), '');
}, snippet);
// replace with the modified snippet
source = source.replace(snippet, modified);
return removeFromCreateIterator(source, funcName);
}
/**
* Removes the `_.isArguments` fallback from `source`.
*
* @private
* @param {String} source The source to process.
* @returns {String} Returns the source with the `isArguments` fallback removed.
*/
function removeIsArgumentsFallback(source) {
return source.replace(getIsArgumentsFallback(source), '');
}
/**
* Removes the `Object.keys` object iteration optimization from `source`.
*
* @private
* @param {String} source The source to process.
* @returns {String} Returns the modified source.
*/
function removeKeysOptimization(source) {
return removeVar(source, 'isKeysFast')
// remove `isKeysFast` from `beforeLoop.object` of `mapIteratorOptions`
.replace(/=\s*'\s*\+\s*\(isKeysFast.+/, "= []'")
// remove `isKeysFast` from `inLoop.object` of `mapIteratorOptions`, `invoke`, `pluck`, and `sortBy`
.replace(/'\s*\+\s*\(isKeysFast[^)]+?\)\s*\+\s*'/g, '.push')
// remove data object property assignment in `createIterator`
.replace(/\s*.+?\.isKeysFast *=.+/, '')
// remove optimized branch in `iteratorTemplate`
.replace(/(?: *\/\/.*\n)*\s*'( *)<% *if *\(isKeysFast[\s\S]+?'\1<% *} *else *\{ *%>.+\n([\s\S]+?) *'\1<% *} *%>.+/, '$2');
}
/**
* Removes a given variable from `source`.
*
* @private
* @param {String} source The source to process.
* @param {String} varName The name of the variable to remove.
* @returns {String} Returns the source with the variable removed.
*/
function removeVar(source, varName) {
source = source.replace(RegExp(
// begin non-capturing group
'(?:' +
// match multi-line comment block
'(?:\\n +/\\*[^*]*\\*+(?:[^/][^*]*\\*+)*/)?\\n' +
// match a variable declaration that's not part of a declaration list
'( +)var ' + varName + ' *= *(?:.+?;|(?:Function\\(.+?|.*?[^,])\\n[\\s\\S]+?\\n\\1.+?;)\\n|' +
// match a variable in a declaration list
'\\n +' + varName + ' *=.+?,' +
// end non-capturing group
')'
), '');
// remove a varaible at the start of a variable declaration list
source = source.replace(RegExp('(var +)' + varName + ' *=.+?,\\s+'), '$1');
// remove a variable at the end of a variable declaration list
source = source.replace(RegExp(',\\s*' + varName + ' *=.+?;'), ';');
return removeFromCreateIterator(source, varName);
}
/**
* Searches `source` for a `varName` variable declaration and replaces its
* assigned value with `varValue`.
*
* @private
* @param {String} source The source to inspect.
* @param {String} varName The name of the variable to replace.
* @returns {String} Returns the source with the variable replaced.
*/
function replaceVar(source, varName, varValue) {
// replace a variable that's not part of a declaration list
source = source.replace(RegExp(
'(( +)var ' + varName + ' *= *)' +
'(?:.+?;|(?:Function\\(.+?|.*?[^,])\\n[\\s\\S]+?\\n\\2.+?;)\\n'
), '$1' + varValue + ';\n');
// replace a varaible at the start or middle of a declaration list
source = source.replace(RegExp('((?:var|\\n) +' + varName + ' *=).+?,'), '$1 ' + varValue + ',');
// replace a variable at the end of a variable declaration list
source = source.replace(RegExp('(,\\s*' + varName + ' *=).+?;'), '$1 ' + varValue + ';');
return source;
}
/*--------------------------------------------------------------------------*/
// Backbone build
if (isBackbone) {
// add any additional sub-dependencies
backboneDependencies = getDependencies(backboneDependencies);
if (filterType == 'exclude') {
// remove excluded methods from `backboneDependencies`
includeMethods = lodash.without.apply(lodash, [backboneDependencies].concat(excludeMethods));
}
else if (filterType) {
// merge backbone dependencies into `includeMethods`
includeMethods = lodash.union(includeMethods, backboneDependencies);
}
else {
// include only the Backbone dependencies
includeMethods = backboneDependencies;
}
filterType = 'include';
}
/*--------------------------------------------------------------------------*/
// add category methods
process.argv.some(function(value) {
var categories = value.match(/^category=(.*)$/);
if (!categories) {
return false;
}
// resolve method names belonging to each category
var categoryMethods = categories.reduce(function(result, category) {
return result.concat(allMethods.filter(function(funcName) {
return RegExp('@category ' + category + '\\b', 'i').test(matchFunction(source, funcName));
}));
}, []);
if (filterType == 'exclude') {
// remove excluded methods from `categoryMethods`
includeMethods = lodash.without.apply(lodash, [categoryMethods].concat(excludeMethods));
}
else if (filterType) {
// merge `categoryMethods` into `includeMethods`
includeMethods = lodash.union(includeMethods, categoryMethods);
}
else {
// include only the `categoryMethods`
includeMethods = categoryMethods;
}
filterType = 'include';
return true;
});
/*--------------------------------------------------------------------------*/
// custom build
(function() {
// exit early if "exclude" or "include" options aren't specified
if (!filterType) {
return;
}
if (filterType == 'exclude') {
// remove methods that are named in `excludeMethods` and their dependants
excludeMethods.forEach(function(funcName) {
getDependants(funcName).concat(funcName).forEach(function(otherName) {
source = removeFunction(source, otherName);
});
});
}
else {
// add dependencies to `includeMethods`
includeMethods = getDependencies(includeMethods);
// remove methods that aren't named in `includeMethods`
lodash.each(allMethods, function(otherName) {
if (!lodash.contains(includeMethods, otherName)) {
source = removeFunction(source, otherName);
}
});
}
// remove `isArguments` fallback before `isArguments` is transformed by
// other parts of the build process
if (isRemoved(source, 'isArguments')) {
source = removeIsArgumentsFallback(source);
}
}());
/*--------------------------------------------------------------------------*/
// simplify template snippets
source = source.replace(
RegExp(
"'else if \\(thisArg\\) \\{\\\\n' \\+\\s*" +
"' callback = iteratorBind\\(callback, thisArg\\)\\\\n' \\+\\s*" +
"'}'"
, 'g'),
"'else if (thisArg) callback = iteratorBind(callback, thisArg)'"
);
/*--------------------------------------------------------------------------*/
// DRY out isType functions
(function() {
var iteratorName = lodash.find(['forEach', 'forOwn'], function(funcName) {
return !isRemoved(source, funcName);
});
// skip this optimization if there are no iteration methods to use
if (!iteratorName) {
return;
}
var snippet,
funcNames = [],
objectSnippets = [],
token = '__isTypeToken__';
// build replacement code
lodash.forOwn({
'Arguments': "'[object Arguments]'",
'Date': 'dateClass',
'Function': 'funcClass',
'Number': 'numberClass',
'RegExp': 'regexpClass',
'String': 'stringClass'
}, function(value, key) {
// skip `isArguments` if a legacy build
if (isLegacy && key == 'Arguments') {
return;
}
var funcName = 'is' + key,
funcCode = matchFunction(source, funcName);
if (funcCode) {
if (!snippet) {
// use snippet to mark the insert position
snippet = funcCode;
}
funcNames.push(funcName);
objectSnippets.push("'" + key + "': " + value);
}
});
// skip this optimization if there are less than 2 isType functions
if (funcNames.length < 2) {
return;
}
// add a token to mark the position to insert new code
source = source.replace(snippet, '\n' + token + '\n' + snippet);
// remove existing isType functions
funcNames.forEach(function(funcName) {
source = removeFunction(source, funcName);
});
// replace token with new DRY code
source = source.replace(token,
' // add `_.' + funcNames.join('`, `_.') + '`\n' +
' ' + iteratorName + '({\n ' + objectSnippets.join(',\n ') + '\n }, function(className, key) {\n' +
" lodash['is' + key] = function(value) {\n" +
' return toString.call(value) == className;\n' +
' };\n' +
' });'
);
// tweak `isArguments` fallback
snippet = !isLegacy && getIsArgumentsFallback(source);
if (snippet) {
var modified = '\n' + snippet.replace(/isArguments/g, 'lodash.$&');
source = source.replace(snippet, modified);
}
}());
/*--------------------------------------------------------------------------*/
if (isLegacy) {
['isBindFast', 'nativeBind', 'nativeIsArray', 'nativeKeys'].forEach(function(varName) {
source = removeVar(source, varName);
});
['bind', 'isArray'].forEach(function(funcName) {
var snippet = matchFunction(source, funcName),
modified = snippet;
// remove native `Function#bind` branch in `_.bind`
if (funcName == 'bind' ) {
modified = modified.replace(/(?:\s*\/\/.*)*\s*else if *\(isBindFast[^}]+}/, '');
}
// remove native `Array.isArray` branch in `_.isArray`
else if (funcName == 'isArray') {
modified = modified.replace(/nativeIsArray * \|\|/, '');
}
source = source.replace(snippet, modified);
});
// replace `_.keys` with `shimKeys`
if (!isRemoved(source, 'keys')) {
source = source.replace(
matchFunction(source, 'keys').replace(/[\s\S]+?var keys *=/, ''),
matchFunction(source, 'shimKeys').replace(/[\s\S]+?var shimKeys *=/, '')
);
source = removeFunction(source, 'shimKeys');
}
// replace `_.isArguments` with fallback
if (!isRemoved(source, 'isArguments')) {
source = source.replace(
matchFunction(source, 'isArguments').replace(/[\s\S]+?var isArguments *=/, ''),
getIsArgumentsFallback(source).match(/isArguments *=([\s\S]+?) *};/)[1] + ' };\n'
);
source = removeIsArgumentsFallback(source);
}
source = removeVar(source, 'reNative');
source = removeFromCreateIterator(source, 'nativeKeys');
source = removeKeysOptimization(source);
}
if (isMobile) {
// inline all functions defined with `createIterator`
lodash.functions(lodash).forEach(function(funcName) {
// match `funcName` with pseudo private `_` prefixes removed to allow matching `shimKeys`
var reFunc = RegExp('(\\bvar ' + funcName.replace(/^_/, '') + ' *= *)createIterator\\(((?:{|[a-zA-Z])[\\s\\S]+?)\\);\\n');
// skip if not defined with `createIterator`
if (!reFunc.test(source)) {
return;
}
// extract, format, and inject the compiled function's source code
source = source.replace(reFunc, '$1' + getFunctionSource(lodash[funcName]) + ';\n');
});
// remove JScript [[DontEnum]] fix from `_.isEqual`
source = source.replace(/(?:\s*\/\/.*)*\n( +)if *\(result *&& *hasDontEnumBug[\s\S]+?\n\1}/, '');
// remove IE `shift` and `splice` fix from mutator Array functions mixin
source = source.replace(/(?:\s*\/\/.*)*\n( +)if *\(value.length *=== *0[\s\S]+?\n\1}/, '');
// remove `noCharByIndex` from `_.reduceRight`
source = source.replace(/noCharByIndex *&&[^:]+: *([^;]+)/g, '$1');
// remove `noArraySliceOnStrings` from `_.toArray`
source = source.replace(/noArraySliceOnStrings *\?[^:]+: *([^)]+)/g, '$1');
source = removeVar(source, 'extendIteratorOptions');
source = removeVar(source, 'hasDontEnumBug');
source = removeVar(source, 'iteratorTemplate');
source = removeVar(source, 'noArraySliceOnStrings');
source = removeVar(source, 'noCharByIndex');
source = removeIsArgumentsFallback(source);
source = removeKeysOptimization(source);
}
else {
// inline `iteratorTemplate` template
source = source.replace(/(( +)var iteratorTemplate *= *)[\s\S]+?\n\2.+?;\n/, (function() {
var snippet = getFunctionSource(lodash._iteratorTemplate);
// prepend data object references to property names to avoid having to
// use a with-statement
iteratorOptions.forEach(function(property) {
if (property == 'iteratee') {
// use a more fine-grained regexp for the `iteratee` property because
// it's a compiled variable as well as a data property
snippet = snippet.replace(/(__t *= *\( *)(iteratee)/, '$1obj.$2');
} else {
snippet = snippet.replace(RegExp('([^\\w.])\\b' + property + '\\b', 'g'), '$1obj.' + property);
}
});
// remove unnecessary code
snippet = snippet
.replace(/var __t.+/, "var __p = '';")
.replace(/function print[^}]+}/, '')
.replace(/'(?:\\n|\s)+'/g, "''")
.replace(/__p *\+= *' *';/g, '')
.replace(/(__p *\+= *)' *' *\+/g, '$1')
.replace(/(\{) *;|; *(\})/g, '$1$2')
.replace(/\(\(__t *= *\( *([^)]+) *\)\) *== *null *\? *'' *: *__t\)/g, '$1');
// remove the with-statement
snippet = snippet.replace(/ *with *\(.+?\) *{/, '\n').replace(/}([^}]*}[^}]*$)/, '$1');
// minor cleanup
snippet = snippet
.replace(/obj *\|\| *\(obj *= *\{}\);/, '')
.replace(/var __p = '';\s*__p \+=/, 'var __p =');
// remove comments, including sourceURLs
snippet = snippet.replace(/\s*\/\/.*(?:\n|$)/g, '');
return '$1' + snippet + ';\n';
}()));
}
/*--------------------------------------------------------------------------*/
// remove associated functions, variables, and code snippets that the minifier may miss
if (isRemoved(source, 'mixin')) {
// remove `LoDash` constructor
source = removeFunction(source, 'LoDash');
// remove `LoDash` calls
source = source.replace(/(?:new +LoDash(?!\()|(?:new +)?LoDash\([^)]*\));?/g, '');
// remove `LoDash.prototype` additions
source = source.replace(/(?:\s*\/\/.*)*\s*LoDash.prototype *=[\s\S]+?\/\*-+\*\//, '');
}
if (isRemoved(source, 'sortBy')) {
source = removeFunction(source, 'compareAscending');
}
if (isRemoved(source, 'template')) {
// remove `templateSettings` assignment
source = source.replace(/(?:\n +\/\*[^*]*\*+(?:[^\/][^*]*\*+)*\/)?\n *lodash\.templateSettings[\s\S]+?};\n/, '');
}
if (isRemoved(source, 'toArray')) {
source = removeVar(source, 'noArraySliceOnStrings');
}
if (isRemoved(source, 'isArray', 'isEmpty', 'isEqual', 'size')) {
source = removeVar(source, 'arrayClass');
}
if (isRemoved(source, 'bind', 'functions', 'groupBy', 'invoke', 'isEqual', 'isFunction', 'result', 'sortBy', 'toArray')) {
source = removeVar(source, 'funcClass');
}
if (isRemoved(source, 'bind')) {
source = removeVar(source, 'nativeBind');
source = removeVar(source, 'isBindFast');
}
if (isRemoved(source, 'isArray')) {
source = removeVar(source, 'nativeIsArray');
}
if (isRemoved(source, 'keys')) {
source = removeFunction(source, 'shimKeys');
}
if (isRemoved(source, 'clone', 'isObject', 'keys')) {
source = removeVar(source, 'objectTypes');
}
if (isRemoved(source, 'bind', 'isArray', 'keys')) {
source = removeVar(source, 'reNative');
}
if (isRemoved(source, 'isEmpty', 'isEqual', 'isString', 'size')) {
source = removeVar(source, 'stringClass');
}
if ((source.match(/\bcreateIterator\b/g) || []).length < 2) {
source = removeFunction(source, 'createIterator');
}
if (isRemoved(source, 'createIterator', 'extend', 'isEqual')) {
source = removeVar(source, 'hasDontEnumBug');
}
if (isRemoved(source, 'createIterator', 'keys')) {
source = removeVar(source, 'nativeKeys');
}
if (isRemoved(source, 'createIterator', 'reduceRight')) {
source = removeVar(source, 'noCharByIndex');
}
// remove pseudo private properties
source = source.replace(/(?:(?:\s*\/\/.*)*\s*lodash\._[^=]+=.+\n)+/g, '\n');
// consolidate consecutive horizontal rule comment separators
source = source.replace(/(?:\s*\/\*-+\*\/\s*){2,}/g, function(separators) {
return separators.match(/^\s*/)[0] + separators.slice(separators.lastIndexOf('/*'));
});
// cleanup code
source = source.replace(/^ *;\n/gm, '');
// begin the minification process
if (filterType || isBackbone || isLegacy || isMobile) {
fs.writeFileSync(path.join(cwd, 'lodash.custom.js'), source);
minify(source, 'lodash.custom.min', function(result) {
fs.writeFileSync(path.join(cwd, 'lodash.custom.min.js'), result);
});
}
else {
minify(source, 'lodash.min', function(result) {
fs.writeFileSync(path.join(cwd, 'lodash.min.js'), result);
});
}
}());

View File

@@ -1,347 +0,0 @@
#!/usr/bin/env node
;(function() {
'use strict';
/** The Node filesystem, path, `zlib`, and child process modules */
var fs = require('fs'),
gzip = require('zlib').gzip,
path = require('path'),
spawn = require('child_process').spawn;
/** The directory that is the base of the repository */
var basePath = path.join(__dirname, '../');
/** The directory where the Closure Compiler is located */
var closurePath = path.join(basePath, 'vendor', 'closure-compiler', 'compiler.jar');
/** The distribution directory */
var distPath = path.join(basePath, 'dist');
/** Load other modules */
var preprocess = require(path.join(__dirname, 'pre-compile')),
postprocess = require(path.join(__dirname, 'post-compile')),
uglifyJS = require(path.join(basePath, 'vendor', 'uglifyjs', 'uglify-js'));
/** Closure Compiler command-line options */
var closureOptions = [
'--compilation_level=ADVANCED_OPTIMIZATIONS',
'--language_in=ECMASCRIPT5_STRICT',
'--warning_level=QUIET'
];
/** Reassign `existsSync` for older versions of Node */
fs.existsSync || (fs.existsSync = path.existsSync);
/*--------------------------------------------------------------------------*/
/**
* The exposed `minify` function minifies a given Lo-Dash `source` and invokes
* the `onComplete` callback when finished.
*
* @param {String} source The source to minify.
* @param {String} workingName The name to give temporary files creates during the minification process.
* @param {Function} onComplete A function called when minification has completed.
*/
function minify(source, workingName, onComplete) {
new Minify(source, workingName, onComplete);
}
/**
* The Minify constructor used to keep state of each `minify` invocation.
*
* @private
* @constructor
* @param {String} source The source to minify.
* @param {String} workingName The name to give temporary files creates during the minification process.
* @param {Function} onComplete A function called when minification has completed.
*/
function Minify(source, workingName, onComplete) {
// create the destination directory if it doesn't exist
if (!fs.existsSync(distPath)) {
// avoid errors when called as a npm executable
try {
fs.mkdirSync(distPath);
} catch(e) { }
}
this.compiled = {};
this.hybrid = {};
this.uglified = {};
this.onComplete = onComplete;
this.source = source = preprocess(source);
this.workingName = workingName;
// begin the minification process
closureCompile.call(this, source, onClosureCompile.bind(this));
}
/*--------------------------------------------------------------------------*/
/**
* Compresses a `source` string using the Closure Compiler. Yields the
* minified result, and any exceptions encountered, to a `callback` function.
*
* @private
* @param {String} source The JavaScript source to minify.
* @param {String} [message] The message to log.
* @param {Function} callback The function to call once the process completes.
*/
function closureCompile(source, message, callback) {
// the standard error stream, standard output stream, and Closure Compiler process
var error = '',
output = '',
compiler = spawn('java', ['-jar', closurePath].concat(closureOptions));
// juggle arguments
if (typeof message == 'function') {
callback = message;
message = null;
}
console.log(message == null
? 'Compressing ' + this.workingName + ' using the Closure Compiler...'
: message
);
compiler.stdout.on('data', function(data) {
// append the data to the output stream
output += data;
});
compiler.stderr.on('data', function(data) {
// append the error message to the error stream
error += data;
});
compiler.on('exit', function(status) {
var exception = null;
// `status` contains the process exit code
if (status) {
exception = new Error(error);
exception.status = status;
}
callback(exception, output);
});
// proxy the standard input to the Closure Compiler
compiler.stdin.end(source);
}
/**
* Compresses a `source` string using UglifyJS. Yields the result to a
* `callback` function. This function is synchronous; the `callback` is used
* for symmetry.
*
* @private
* @param {String} source The JavaScript source to minify.
* @param {String} [message] The message to log.
* @param {Function} callback The function to call once the process completes.
*/
function uglify(source, message, callback) {
var exception,
result,
ugly = uglifyJS.uglify;
// juggle arguments
if (typeof message == 'function') {
callback = message;
message = null;
}
console.log(message == null
? 'Compressing ' + this.workingName + ' using UglifyJS...'
: message
);
try {
result = ugly.gen_code(
// enable unsafe transformations
ugly.ast_squeeze_more(
ugly.ast_squeeze(
// munge variable and function names, excluding the special `define`
// function exposed by AMD loaders
ugly.ast_mangle(uglifyJS.parser.parse(source), {
'except': ['define']
}
))), {
'ascii_only': true
});
} catch(e) {
exception = e;
}
// lines are restricted to 500 characters for consistency with the Closure Compiler
callback(exception, result && ugly.split_lines(result, 500));
}
/*--------------------------------------------------------------------------*/
/**
* The `closureCompile()` callback.
*
* @private
* @param {Object|Undefined} exception The error object.
* @param {String} result The resulting minified source.
*/
function onClosureCompile(exception, result) {
if (exception) {
throw exception;
}
// store the post-processed Closure Compiler result and gzip it
this.compiled.source = result = postprocess(result);
gzip(result, onClosureGzip.bind(this));
}
/**
* The Closure Compiler `gzip` callback.
*
* @private
* @param {Object|Undefined} exception The error object.
* @param {Buffer} result The resulting gzipped source.
*/
function onClosureGzip(exception, result) {
if (exception) {
throw exception;
}
// store the gzipped result and report the size
this.compiled.gzip = result;
console.log('Done. Size: %d bytes.', result.length);
// next, minify the source using only UglifyJS
uglify.call(this, this.source, onUglify.bind(this));
}
/**
* The `uglify()` callback.
*
* @private
* @param {Object|Undefined} exception The error object.
* @param {String} result The resulting minified source.
*/
function onUglify(exception, result) {
if (exception) {
throw exception;
}
// store the post-processed Uglified result and gzip it
this.uglified.source = result = postprocess(result);
gzip(result, onUglifyGzip.bind(this));
}
/**
* The UglifyJS `gzip` callback.
*
* @private
* @param {Object|Undefined} exception The error object.
* @param {Buffer} result The resulting gzipped source.
*/
function onUglifyGzip(exception, result) {
if (exception) {
throw exception;
}
var message = 'Compressing ' + this.workingName + ' using hybrid minification...';
// store the gzipped result and report the size
this.uglified.gzip = result;
console.log('Done. Size: %d bytes.', result.length);
// next, minify the Closure Compiler minified source using UglifyJS
uglify.call(this, this.compiled.source, message, onHybrid.bind(this));
}
/**
* The hybrid `uglify()` callback.
*
* @private
* @param {Object|Undefined} exception The error object.
* @param {String} result The resulting minified source.
*/
function onHybrid(exception, result) {
if (exception) {
throw exception;
}
// store the post-processed Uglified result and gzip it
this.hybrid.source = result = postprocess(result);
gzip(result, onHybridGzip.bind(this));
}
/**
* The hybrid `gzip` callback.
*
* @private
* @param {Object|Undefined} exception The error object.
* @param {Buffer} result The resulting gzipped source.
*/
function onHybridGzip(exception, result) {
if (exception) {
throw exception;
}
// store the gzipped result and report the size
this.hybrid.gzip = result;
console.log('Done. Size: %d bytes.', result.length);
// finish by choosing the smallest compressed file
onComplete.call(this);
}
/**
* The callback executed after JavaScript source is minified and gzipped.
*
* @private
*/
function onComplete() {
var compiled = this.compiled,
hybrid = this.hybrid,
name = this.workingName,
uglified = this.uglified;
// avoid errors when called as a npm executable
try {
// save the Closure Compiled version to disk
fs.writeFileSync(path.join(distPath, name + '.compiler.js'), compiled.source);
fs.writeFileSync(path.join(distPath, name + '.compiler.js.gz'), compiled.gzip);
// save the Uglified version to disk
fs.writeFileSync(path.join(distPath, name + '.uglify.js'), uglified.source);
fs.writeFileSync(path.join(distPath, name + '.uglify.js.gz'), uglified.gzip);
// save the hybrid minified version to disk
fs.writeFileSync(path.join(distPath, name + '.hybrid.js'), hybrid.source);
fs.writeFileSync(path.join(distPath, name + '.hybrid.js.gz'), hybrid.gzip);
} catch(e) { }
// select the smallest gzipped file and use its minified counterpart as the
// official minified release (ties go to Closure Compiler)
var min = Math.min(compiled.gzip.length, hybrid.gzip.length, uglified.gzip.length);
// pass the minified source to the minify instances "onComplete" callback
this.onComplete(
compiled.gzip.length == min
? compiled.source
: uglified.gzip.length == min
? uglified.source
: hybrid.source
);
}
/*--------------------------------------------------------------------------*/
// expose `minify`
if (module != require.main) {
module.exports = minify;
}
else {
// read the Lo-Dash source file from the first argument if the script
// was invoked directly (e.g. `node minify.js source.js`) and write to
// `<filename>.min.js`
(function() {
var filePath = process.argv[2],
dirPath = path.dirname(filePath),
source = fs.readFileSync(filePath, 'utf8'),
workingName = path.basename(filePath, '.js') + '.min';
minify(source, workingName, function(result) {
fs.writeFileSync(path.join(dirPath, workingName + '.js'), result, 'utf8');
});
}());
}
}());

View File

@@ -1,67 +0,0 @@
#!/usr/bin/env node
;(function() {
'use strict';
/** The Node filesystem module */
var fs = require('fs');
/** The minimal license/copyright template */
var licenseTemplate =
'/*!\n' +
' Lo-Dash @VERSION lodash.com/license\n' +
' Underscore.js 1.3.3 github.com/documentcloud/underscore/blob/master/LICENSE\n' +
'*/';
/*--------------------------------------------------------------------------*/
/**
* Post-process a given minified Lo-Dash `source`, preparing it for
* deployment.
*
* @param {String} source The source to process.
* @returns {String} Returns the processed source.
*/
function postprocess(source) {
// exit early if snippet isn't found
var snippet = /VERSION\s*[=:]\s*([\'"])(.*?)\1/.exec(source);
if (!snippet) {
return source;
}
// set the version
var license = licenseTemplate.replace('@VERSION', snippet[2]);
// move vars exposed by Closure Compiler into the IIFE
source = source.replace(/^([^(\n]+)\s*(\(function[^)]+\){)/, '$2$1');
// use double quotes consistently
source = source.replace(/'use strict'/, '"use strict"');
// unescape properties (i.e. foo["bar"] => foo.bar)
source = source.replace(/(\w)\["([^."]+)"\]/g, '$1.$2');
// correct AMD module definition for AMD build optimizers
source = source.replace(/("function")==(typeof define)&&\(?("object")==(typeof define\.amd)(&&define\.amd)\)?/, '$2==$1&&$4==$3$5');
// add license
source = license + '\n;' + source;
// add trailing semicolon
return source.replace(/[\s;]*$/, ';');
}
/*--------------------------------------------------------------------------*/
// expose `postprocess`
if (module != require.main) {
module.exports = postprocess;
} else {
// read the Lo-Dash source file from the first argument if the script
// was invoked directly (e.g. `node post-compile.js source.js`) and write to
// the same file
(function() {
var source = fs.readFileSync(process.argv[2], 'utf8');
fs.writeFileSync(process.argv[2], postprocess(source), 'utf8');
}());
}
}());

View File

@@ -1,372 +0,0 @@
#!/usr/bin/env node
;(function() {
'use strict';
/** The Node filesystem module */
var fs = require('fs');
/** Used to minify variables embedded in compiled strings */
var compiledVars = [
'accumulator',
'args',
'arrayClass',
'callback',
'className',
'collection',
'compareAscending',
'ctor',
'funcClass',
'hasOwnProperty',
'identity',
'index',
'isFunc',
'iteratee',
'iteratorBind',
'length',
'methodName',
'nativeKeys',
'noaccum',
'object',
'objectTypes',
'prop',
'propIndex',
'props',
'property',
'propertyIsEnumerable',
'result',
'skipProto',
'slice',
'source',
'sourceIndex',
'stringClass',
'target',
'thisArg',
'toString',
'value'
];
/** Used to minify `compileIterator` option properties */
var iteratorOptions = [
'args',
'array',
'arrayBranch',
'beforeLoop',
'bottom',
'exit',
'firstArg',
'hasDontEnumBug',
'inLoop',
'init',
'isKeysFast',
'iteratee',
'object',
'objectBranch',
'noCharByIndex',
'shadowed',
'top',
'useHas'
];
/** Used to minify variables and string values to a single character */
var minNames = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
/** Used to protect the specified properties from getting minified */
var propWhitelist = [
'_',
'_chain',
'_wrapped',
'after',
'all',
'amd',
'any',
'attachEvent',
'bind',
'bindAll',
'chain',
'clearTimeout',
'clone',
'collect',
'compact',
'compose',
'contains',
'criteria',
'debounce',
'defaults',
'defer',
'delay',
'detect',
'difference',
'each',
'environment',
'escape',
'escape',
'evaluate',
'every',
'extend',
'filter',
'find',
'first',
'flatten',
'foldl',
'foldr',
'forEach',
'forIn',
'forOwn',
'functions',
'groupBy',
'has',
'head',
'identity',
'include',
'indexOf',
'initial',
'inject',
'interpolate',
'intersection',
'invoke',
'isArguments',
'isArray',
'isBoolean',
'isDate',
'isElement',
'isEmpty',
'isEqual',
'isEqual',
'isFinite',
'isFinite',
'isFunction',
'isNaN',
'isNull',
'isNumber',
'isObject',
'isRegExp',
'isString',
'isUndefined',
'keys',
'last',
'lastIndexOf',
'map',
'max',
'memoize',
'methods',
'min',
'mixin',
'noConflict',
'once',
'opera',
'partial',
'pick',
'pluck',
'range',
'reduce',
'reduceRight',
'reject',
'rest',
'result',
'select',
'setTimeout',
'shuffle',
'size',
'some',
'sortBy',
'sortedIndex',
'source',
'tail',
'take',
'tap',
'template',
'templateSettings',
'throttle',
'times',
'toArray',
'union',
'uniq',
'unique',
'uniqueId',
'value',
'values',
'variable',
'VERSION',
'without',
'wrap',
'zip',
'zipObject'
];
/*--------------------------------------------------------------------------*/
/**
* Pre-process a given Lo-Dash `source`, preparing it for minification.
*
* @param {String} source The source to process.
* @returns {String} Returns the processed source.
*/
function preprocess(source) {
// remove copyright to add later in post-compile.js
source = source.replace(/\/\*![\s\S]+?\*\//, '');
// remove unrecognized JSDoc tags so Closure Compiler won't complain
source = source.replace(/@(?:alias|category)\b.*/g, '');
// add brackets to whitelisted properties so Closure Compiler won't mung them
// http://code.google.com/closure/compiler/docs/api-tutorial3.html#export
source = source.replace(RegExp('\\.(' + propWhitelist.join('|') + ')\\b', 'g'), "['$1']");
// remove brackets from `_.escape()` in `tokenizeEscape`
source = source.replace(/_\['escape']\("/, '_.escape("');
// remove brackets from `_.escape()` in `_.template`
source = source.replace(/__e *= *_\['escape']/, '__e=_.escape');
// remove brackets from `collection.indexOf` in `_.contains`
source = source.replace("collection['indexOf'](target)", 'collection.indexOf(target)');
// remove brackets from `result[length].value` in `_.sortBy`
source = source.replace("result[length]['value']", 'result[length].value');
// remove whitespace from string literals
source = source.replace(/'(?:(?=(\\?))\1.)*?'/g, function(string) {
// avoids removing the '\n' of the `stringEscapes` object
return string.replace(/\[object |else if|function | in |return\s+[\w']|throw |typeof |use strict|var |@ |'\\n'|\\\\n|\\n|\s+/g, function(match) {
return match == false || match == '\\n' ? '' : match;
});
});
// remove whitespace from `_.template` related regexpes
source = source.replace(/(?:reDelimiterCode\w+|reEmptyString\w+|reInsertVariable) *=.+/g, function(match) {
return match.replace(/ |\\n/g, '');
});
// remove newline from double-quoted strings in `_.template`
source = source
.replace('"\';\\n__with ("', '"\';__with("')
.replace('"\\n}__\\n__p += \'"', '"}____p+=\'"')
.replace('"__p = \'"', '"__p=\'"')
.replace('"\';\\n"', '"\';"')
.replace("') {\\n'", "'){'")
// remove `useSourceURL` variable
source = source.replace(/(?:\n +\/\*[^*]*\*+(?:[^\/][^*]*\*+)*\/)?\n *try *\{(?:\s*\/\/.*\n)* *var useSourceURL[\s\S]+?catch[^}]+}\n/, '');
// remove debug sourceURL use in `_.template`
source = source.replace(/(?:\s*\/\/.*\n)* *if *\(useSourceURL[^}]+}/, '');
// minify internal properties used by `_.sortBy`
(function() {
var properties = ['criteria', 'value'],
snippets = source.match(/( +)(?:function compareAscending|var sortBy)\b[\s\S]+?\n\1}/g);
if (!snippets) {
return;
}
snippets.forEach(function(snippet) {
var modified = snippet,
isSortBy = /var sortBy\b/.test(modified),
isInlined = !/\bcreateIterator\b/.test(modified);
// minify properties
properties.forEach(function(property, index) {
// add quotes around properties in the inlined `_.sortBy` of the mobile
// build so Closure Compiler won't mung them
if (isSortBy && isInlined) {
modified = modified
.replace(RegExp('\\.' + property + '\\b', 'g'), "['" + minNames[index] + "']")
.replace(RegExp('\\b' + property + ' *:', 'g'), "'" + minNames[index] + "':");
}
modified = modified.replace(RegExp('\\b' + property + '\\b', 'g'), minNames[index]);
});
// replace with modified snippet
source = source.replace(snippet, modified);
});
}());
// minify all compilable snippets
var snippets = source.match(
RegExp([
// match the `iteratorTemplate`
'( +)var iteratorTemplate\\b[\\s\\S]+?\\n\\1}',
// match methods created by `createIterator` calls
'createIterator\\((?:{|[a-zA-Z]+)[\\s\\S]+?\\);\\n',
// match variables storing `createIterator` options
'( +)var [a-zA-Z]+IteratorOptions\\b[\\s\\S]+?\\n\\2}',
// match the the `createIterator` function
'( +)function createIterator\\b[\\s\\S]+?\\n\\3}'
].join('|'), 'g')
);
// exit early if no compilable snippets
if (!snippets) {
return source;
}
snippets.forEach(function(snippet, index) {
var isCreateIterator = /function createIterator\b/.test(snippet),
isIteratorTemplate = /var iteratorTemplate\b/.test(snippet),
modified = snippet;
// add brackets to whitelisted properties so Closure Compiler won't mung them
modified = modified.replace(RegExp('\\.(' + iteratorOptions.join('|') + ')\\b', 'g'), "['$1']");
if (isCreateIterator) {
// replace with modified snippet early and clip snippet to the `factory`
// call so other arguments aren't minified
source = source.replace(snippet, modified);
snippet = modified = modified.replace(/factory\([\s\S]+$/, '');
}
// minify snippet variables / arguments
compiledVars.forEach(function(variable, index) {
// ensure properties in compiled strings aren't minified
modified = modified.replace(RegExp('([^.]\\b)' + variable + '\\b(?!\' *[\\]:])', 'g'), '$1' + minNames[index]);
// correct `typeof x == 'object'`
if (variable == 'object') {
modified = modified.replace(RegExp("(typeof [^']+')" + minNames[index] + "'", 'g'), "$1object'");
}
});
// minify `createIterator` option property names
iteratorOptions.forEach(function(property, index) {
if (isIteratorTemplate) {
// minify property names as interpolated template variables
modified = modified.replace(RegExp('\\b' + property + '\\b', 'g'), minNames[index]);
}
else {
if (property == 'array' || property == 'object') {
// minify "array" and "object" sub property names
modified = modified.replace(RegExp("'" + property + "'( *[\\]:])", 'g'), "'" + minNames[index] + "'$1");
}
else {
// minify property name strings
modified = modified.replace(RegExp("'" + property + "'", 'g'), "'" + minNames[index] + "'");
// minify property names in regexps and accessors
if (isCreateIterator) {
modified = modified.replace(RegExp('([\\.|/])' + property + '\\b' , 'g'), '$1' + minNames[index]);
}
}
}
});
// replace with modified snippet
source = source.replace(snippet, modified);
});
return source;
}
/*--------------------------------------------------------------------------*/
// expose `preprocess`
if (module != require.main) {
module.exports = preprocess;
}
else {
// read the Lo-Dash source file from the first argument if the script
// was invoked directly (e.g. `node pre-compile.js source.js`) and write to
// the same file
(function() {
var source = fs.readFileSync(process.argv[2], 'utf8');
fs.writeFileSync(process.argv[2], preprocess(source), 'utf8');
}());
}
}());

3926
dist/lodash.core.js vendored Normal file

File diff suppressed because it is too large Load Diff

28
dist/lodash.core.min.js vendored Normal file
View File

@@ -0,0 +1,28 @@
/**
* @license
* lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
*/
;(function(){function n(n,t){return n.push.apply(n,t),n}function t(n,t,r){var e;return r(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0}),e}function r(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function e(n,t){return O(t,function(t){return n[t]})}function u(n){return n&&n.Object===Object?n:null}function o(n){return gn[n]}function i(n){var t=false;if(null!=n&&typeof n.toString!="function")try{t=!!(n+"")}catch(r){}return t}function c(n){return n instanceof f?n:new f(n)}function f(n,t){
this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function a(n,t,r,e){var u;return(u=n===pn)||(u=En[r],u=(n===u||n!==n&&u!==u)&&!kn.call(e,r)),u?t:n}function l(n){return nn(n)?Bn(n):{}}function p(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(pn,r)},t)}function s(n,t){var r=true;return zn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function h(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===pn?i===i:r(i,c)))var c=i,f=o;
}return f}function v(n,t){var r=[];return zn(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function y(t,r,e,u,o){var i=-1,c=t.length;for(e||(e=G),o||(o=[]);++i<c;){var f=t[i];r>0&&e(f)?r>1?y(f,r-1,e,u,o):n(o,f):u||(o[o.length]=f)}return o}function g(n,t){return n&&Cn(n,t,on)}function b(n,t){return v(t,function(t){return Y(n[t])})}function _(n,t){return n>t}function d(n,t,r,e,u){return n===t?true:null==n||null==t||!nn(n)&&!tn(t)?n!==n&&t!==t:j(n,t,d,r,e,u)}function j(n,t,r,e,u,o){var c=Vn(n),f=Vn(t),a="[object Array]",l="[object Array]";
c||(a=Sn.call(n),a="[object Arguments]"==a?"[object Object]":a),f||(l=Sn.call(t),l="[object Arguments]"==l?"[object Object]":l);var p="[object Object]"==a&&!i(n),f="[object Object]"==l&&!i(t),l=a==l;o||(o=[]);var s=V(o,function(t){return t[0]===n});return s&&s[1]?s[1]==t:(o.push([n,t]),l&&!p?(r=c||isTypedArray(n)?$(n,t,r,e,u,o):q(n,t,a),o.pop(),r):2&u||(c=p&&kn.call(n,"__wrapped__"),a=f&&kn.call(t,"__wrapped__"),!c&&!a)?l?(r=z(n,t,r,e,u,o),o.pop(),r):false:(c=c?n.value():n,t=a?t.value():t,r=r(c,t,e,u,o),
o.pop(),r))}function m(n){return typeof n=="function"?n:null==n?an:(typeof n=="object"?A:k)(n)}function w(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function x(n,t){return t>n}function O(n,t){var r=-1,e=X(n)?Array(n.length):[];return zn(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function A(n){var t=on(n);return function(r){var e=t.length;if(null==r)return!e;for(r=Object(r);e--;){var u=t[e];if(!(u in r&&d(n[u],r[u],pn,3)))return false}return true}}function E(n,t){return n=Object(n),K(t,function(t,r){
return r in n&&(t[r]=n[r]),t},{})}function k(n){return function(t){return null==t?pn:t[n]}}function N(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function S(n){return N(n,0,n.length)}function T(n,t){var r;return zn(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function F(t,r){return K(r,function(t,r){return r.func.apply(r.thisArg,n([t],r.args))},t)}function R(n,t,r,e){r||(r={});for(var u=-1,o=t.length;++u<o;){
var i=t[u],c=e?e(r[i],n[i],i,r,n):n[i],f=r,a=f[i];kn.call(f,i)&&(a===c||a!==a&&c!==c)&&(c!==pn||i in f)||(f[i]=c)}return r}function B(n){return Q(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:pn,o=n.length>3&&typeof o=="function"?(u--,o):pn;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,e,o)}return t})}function D(n){return function(){var t=arguments,r=l(n.prototype),t=n.apply(r,t);return nn(t)?t:r}}function I(n,t,r){function e(){for(var o=-1,i=arguments.length,c=-1,f=r.length,a=Array(f+i),l=this&&this!==On&&this instanceof e?u:n;++c<f;)a[c]=r[c];
for(;i--;)a[c++]=arguments[++o];return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=D(n);return e}function $(n,t,r,e,u,o){var i=n.length,c=t.length;if(i!=c&&!(2&u&&c>i))return false;for(var c=-1,f=true,a=1&u?[]:pn;++c<i;){var l=n[c],p=t[c];if(void 0!==pn){f=false;break}if(a){if(!T(t,function(n,t){return U(a,t)||l!==n&&!r(l,n,e,u,o)?void 0:a.push(t)})){f=false;break}}else if(l!==p&&!r(l,p,e,u,o)){f=false;break}}return f}function q(n,t,r){switch(r){case"[object Boolean]":case"[object Date]":
return+n==+t;case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object Number]":return n!=+n?t!=+t:n==+t;case"[object RegExp]":case"[object String]":return n==t+""}return false}function z(n,t,r,e,u,o){var i=2&u,c=on(n),f=c.length,a=on(t).length;if(f!=a&&!i)return false;for(var l=f;l--;){var p=c[l];if(!(i?p in t:kn.call(t,p)))return false}for(a=true;++l<f;){var p=c[l],s=n[p],h=t[p];if(void 0!==pn||s!==h&&!r(s,h,e,u,o)){a=false;break}i||(i="constructor"==p)}return a&&!i&&(r=n.constructor,e=t.constructor,
r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(a=false)),a}function C(n){var t=n?n.length:pn;if(Z(t)&&(Vn(n)||en(n)||W(n))){n=String;for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);t=e}else t=null;return t}function G(n){return Vn(n)||W(n)}function J(n,t){return t=null==t?9007199254740991:t,!!t&&(typeof n=="number"||yn.test(n))&&n>-1&&0==n%1&&t>n}function M(n){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||En);
}function P(n){return n&&n.length?n[0]:pn}function U(n,t,r){var e=n?n.length:0;r=typeof r=="number"?0>r?qn(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++r<e;){var o=n[r];if(u?o===t:o!==o)return r}return-1}function V(n,r){return t(n,m(r),zn)}function H(n,t){return zn(n,m(t))}function K(n,t,e){return r(n,m(t),e,3>arguments.length,zn)}function L(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Hn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=pn),r}}
function Q(n){var t;if(typeof n!="function")throw new TypeError("Expected a function");return t=qn(t===pn?n.length-1:Hn(t),0),function(){for(var r=arguments,e=-1,u=qn(r.length-t,0),o=Array(u);++e<u;)o[e]=r[t+e];for(u=Array(t+1),e=-1;++e<t;)u[e]=r[e];return u[t]=o,n.apply(this,u)}}function W(n){return tn(n)&&X(n)&&kn.call(n,"callee")&&(!Dn.call(n,"callee")||"[object Arguments]"==Sn.call(n))}function X(n){return null!=n&&Z(Gn(n))&&!Y(n)}function Y(n){return n=nn(n)?Sn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n;
}function Z(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n}function nn(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function tn(n){return!!n&&typeof n=="object"}function rn(n){return typeof n=="number"||tn(n)&&"[object Number]"==Sn.call(n)}function en(n){return typeof n=="string"||!Vn(n)&&tn(n)&&"[object String]"==Sn.call(n)}function un(n){return typeof n=="string"?n:null==n?"":n+""}function on(n){var t=M(n);if(!t&&!X(n))return $n(Object(n));var r,e=C(n),u=!!e,e=e||[],o=e.length;
for(r in n)!kn.call(n,r)||u&&("length"==r||J(r,o))||t&&"constructor"==r||e.push(r);return e}function cn(n){for(var t=-1,r=M(n),e=w(n),u=e.length,o=C(n),i=!!o,o=o||[],c=o.length;++t<u;){var f=e[t];i&&("length"==f||J(f,c))||"constructor"==f&&(r||!kn.call(n,f))||o.push(f)}return o}function fn(n){return n?e(n,on(n)):[]}function an(n){return n}function ln(t,r,e){var u=on(r),o=b(r,u);null!=e||nn(r)&&(o.length||!u.length)||(e=r,r=t,t=this,o=b(r,on(r)));var i=!(nn(e)&&"chain"in e&&!e.chain),c=Y(t);return zn(o,function(e){
var u=r[e];t[e]=u,c&&(t.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=t(this.__wrapped__);return(e.__actions__=S(this.__actions__)).push({func:u,args:arguments,thisArg:t}),e.__chain__=r,e}return u.apply(t,n([this.value()],arguments))})}),t}var pn,sn=1/0,hn=/[&<>"'`]/g,vn=RegExp(hn.source),yn=/^(?:0|[1-9]\d*)$/,gn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},bn={"function":true,object:true},_n=bn[typeof exports]&&exports&&!exports.nodeType?exports:pn,dn=bn[typeof module]&&module&&!module.nodeType?module:pn,jn=dn&&dn.exports===_n?_n:pn,mn=u(bn[typeof self]&&self),wn=u(bn[typeof window]&&window),xn=u(bn[typeof this]&&this),On=u(_n&&dn&&typeof global=="object"&&global)||wn!==(xn&&xn.window)&&wn||mn||xn||Function("return this")(),An=Array.prototype,En=Object.prototype,kn=En.hasOwnProperty,Nn=0,Sn=En.toString,Tn=On._,Fn=On.Reflect,Rn=Fn?Fn.a:pn,Bn=Object.create,Dn=En.propertyIsEnumerable,In=On.isFinite,$n=Object.keys,qn=Math.max;
f.prototype=l(c.prototype),f.prototype.constructor=f;var zn=function(n,t){return function(r,e){if(null==r)return r;if(!X(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}(g),Cn=function(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var c=e[n?i:++u];if(false===r(o[c],c,o))break}return t}}();Rn&&!Dn.call({valueOf:1},"valueOf")&&(w=function(n){n=Rn(n);for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r});var Gn=k("length"),Jn=String,Mn=Q(function(n,t,r){
return I(n,t,r)}),Pn=Q(function(n,t){return p(n,1,t)}),Un=Q(function(n,t,r){return p(n,Kn(t)||0,r)}),Vn=Array.isArray,Hn=Number,Kn=Number,Ln=B(function(n,t){R(t,on(t),n)}),Qn=B(function(n,t){R(t,cn(t),n)}),Wn=B(function(n,t,r,e){R(t,cn(t),n,e)}),Xn=Q(function(n){return n.push(pn,a),Wn.apply(pn,n)}),Yn=Q(function(n,t){return null==n?{}:E(n,O(y(t,1),Jn))}),Zn=m;c.assignIn=Qn,c.before=L,c.bind=Mn,c.chain=function(n){return n=c(n),n.__chain__=true,n},c.compact=function(n){return v(n,Boolean)},c.concat=function(){
for(var t=arguments.length,r=Array(t?t-1:0),e=arguments[0],u=t;u--;)r[u-1]=arguments[u];return t?n(Vn(e)?S(e):[e],y(r,1)):[]},c.create=function(n,t){var r=l(n);return t?Ln(r,t):r},c.defaults=Xn,c.defer=Pn,c.delay=Un,c.filter=function(n,t){return v(n,m(t))},c.flatten=function(n){return n&&n.length?y(n,1):[]},c.flattenDeep=function(n){return n&&n.length?y(n,sn):[]},c.iteratee=Zn,c.keys=on,c.map=function(n,t){return O(n,m(t))},c.matches=function(n){return A(Ln({},n))},c.mixin=ln,c.negate=function(n){
if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},c.once=function(n){return L(2,n)},c.pick=Yn,c.slice=function(n,t,r){var e=n?n.length:0;return r=r===pn?e:+r,e?N(n,null==t?0:+t,r):[]},c.sortBy=function(n,t){var r=0;return t=m(t),O(O(n,function(n,e,u){return{value:n,index:r++,criteria:t(n,e,u)}}).sort(function(n,t){var r;n:{r=n.criteria;var e=t.criteria;if(r!==e){var u=r!==pn,o=null===r,i=r===r,c=e!==pn,f=null===e,a=e===e;if(!f&&r>e||o&&c&&a||!u&&a||!i){
r=1;break n}if(!o&&e>r||f&&u&&i||!c&&i||!a){r=-1;break n}}r=0}return r||n.index-t.index}),k("value"))},c.tap=function(n,t){return t(n),n},c.thru=function(n,t){return t(n)},c.toArray=function(n){return X(n)?n.length?S(n):[]:fn(n)},c.values=fn,c.extend=Qn,ln(c,c),c.clone=function(n){return nn(n)?Vn(n)?S(n):R(n,on(n)):n},c.escape=function(n){return(n=un(n))&&vn.test(n)?n.replace(hn,o):n},c.every=function(n,t,r){return t=r?pn:t,s(n,m(t))},c.find=V,c.forEach=H,c.has=function(n,t){return null!=n&&kn.call(n,t);
},c.head=P,c.identity=an,c.indexOf=U,c.isArguments=W,c.isArray=Vn,c.isBoolean=function(n){return true===n||false===n||tn(n)&&"[object Boolean]"==Sn.call(n)},c.isDate=function(n){return tn(n)&&"[object Date]"==Sn.call(n)},c.isEmpty=function(n){return X(n)&&(Vn(n)||en(n)||Y(n.splice)||W(n))?!n.length:!on(n).length},c.isEqual=function(n,t){return d(n,t)},c.isFinite=function(n){return typeof n=="number"&&In(n)},c.isFunction=Y,c.isNaN=function(n){return rn(n)&&n!=+n},c.isNull=function(n){return null===n},c.isNumber=rn,
c.isObject=nn,c.isRegExp=function(n){return nn(n)&&"[object RegExp]"==Sn.call(n)},c.isString=en,c.isUndefined=function(n){return n===pn},c.last=function(n){var t=n?n.length:0;return t?n[t-1]:pn},c.max=function(n){return n&&n.length?h(n,an,_):pn},c.min=function(n){return n&&n.length?h(n,an,x):pn},c.noConflict=function(){return On._===this&&(On._=Tn),this},c.noop=function(){},c.reduce=K,c.result=function(n,t,r){return t=null==n?pn:n[t],t===pn&&(t=r),Y(t)?t.call(n):t},c.size=function(n){return null==n?0:(n=X(n)?n:on(n),
n.length)},c.some=function(n,t,r){return t=r?pn:t,T(n,m(t))},c.uniqueId=function(n){var t=++Nn;return un(n)+t},c.each=H,c.first=P,ln(c,function(){var n={};return g(c,function(t,r){kn.call(c.prototype,r)||(n[r]=t)}),n}(),{chain:false}),c.VERSION="4.12.0",zn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){var t=(/^(?:replace|split)$/.test(n)?String.prototype:An)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);c.prototype[n]=function(){
var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Vn(u)?u:[],n)}return this[r](function(r){return t.apply(Vn(r)?r:[],n)})}}),c.prototype.toJSON=c.prototype.valueOf=c.prototype.value=function(){return F(this.__wrapped__,this.__actions__)},(wn||mn||{})._=c,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return c}):_n&&dn?(jn&&((dn.exports=c)._=c),_n._=c):On._=c}).call(this);

860
dist/lodash.fp.js vendored Normal file
View File

@@ -0,0 +1,860 @@
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["fp"] = factory();
else
root["fp"] = factory();
})(this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports, __webpack_require__) {
var baseConvert = __webpack_require__(1);
/**
* Converts `lodash` to an immutable auto-curried iteratee-first data-last
* version with conversion `options` applied.
*
* @param {Function} lodash The lodash function to convert.
* @param {Object} [options] The options object. See `baseConvert` for more details.
* @returns {Function} Returns the converted `lodash`.
*/
function browserConvert(lodash, options) {
return baseConvert(lodash, lodash, options);
}
if (typeof _ == 'function') {
_ = browserConvert(_.runInContext());
}
module.exports = browserConvert;
/***/ },
/* 1 */
/***/ function(module, exports, __webpack_require__) {
var mapping = __webpack_require__(2),
mutateMap = mapping.mutate,
fallbackHolder = __webpack_require__(3);
/**
* Creates a function, with an arity of `n`, that invokes `func` with the
* arguments it receives.
*
* @private
* @param {Function} func The function to wrap.
* @param {number} n The arity of the new function.
* @returns {Function} Returns the new function.
*/
function baseArity(func, n) {
return n == 2
? function(a, b) { return func.apply(undefined, arguments); }
: function(a) { return func.apply(undefined, arguments); };
}
/**
* Creates a function that invokes `func`, with up to `n` arguments, ignoring
* any additional arguments.
*
* @private
* @param {Function} func The function to cap arguments for.
* @param {number} n The arity cap.
* @returns {Function} Returns the new function.
*/
function baseAry(func, n) {
return n == 2
? function(a, b) { return func(a, b); }
: function(a) { return func(a); };
}
/**
* Creates a clone of `array`.
*
* @private
* @param {Array} array The array to clone.
* @returns {Array} Returns the cloned array.
*/
function cloneArray(array) {
var length = array ? array.length : 0,
result = Array(length);
while (length--) {
result[length] = array[length];
}
return result;
}
/**
* Creates a function that clones a given object using the assignment `func`.
*
* @private
* @param {Function} func The assignment function.
* @returns {Function} Returns the new cloner function.
*/
function createCloner(func) {
return function(object) {
return func({}, object);
};
}
/**
* Creates a function that wraps `func` and uses `cloner` to clone the first
* argument it receives.
*
* @private
* @param {Function} func The function to wrap.
* @param {Function} cloner The function to clone arguments.
* @returns {Function} Returns the new immutable function.
*/
function immutWrap(func, cloner) {
return function() {
var length = arguments.length;
if (!length) {
return result;
}
var args = Array(length);
while (length--) {
args[length] = arguments[length];
}
var result = args[0] = cloner.apply(undefined, args);
func.apply(undefined, args);
return result;
};
}
/**
* The base implementation of `convert` which accepts a `util` object of methods
* required to perform conversions.
*
* @param {Object} util The util object.
* @param {string} name The name of the function to convert.
* @param {Function} func The function to convert.
* @param {Object} [options] The options object.
* @param {boolean} [options.cap=true] Specify capping iteratee arguments.
* @param {boolean} [options.curry=true] Specify currying.
* @param {boolean} [options.fixed=true] Specify fixed arity.
* @param {boolean} [options.immutable=true] Specify immutable operations.
* @param {boolean} [options.rearg=true] Specify rearranging arguments.
* @returns {Function|Object} Returns the converted function or object.
*/
function baseConvert(util, name, func, options) {
var setPlaceholder,
isLib = typeof name == 'function',
isObj = name === Object(name);
if (isObj) {
options = func;
func = name;
name = undefined;
}
if (func == null) {
throw new TypeError;
}
options || (options = {});
var config = {
'cap': 'cap' in options ? options.cap : true,
'curry': 'curry' in options ? options.curry : true,
'fixed': 'fixed' in options ? options.fixed : true,
'immutable': 'immutable' in options ? options.immutable : true,
'rearg': 'rearg' in options ? options.rearg : true
};
var forceCurry = ('curry' in options) && options.curry,
forceFixed = ('fixed' in options) && options.fixed,
forceRearg = ('rearg' in options) && options.rearg,
placeholder = isLib ? func : fallbackHolder,
pristine = isLib ? func.runInContext() : undefined;
var helpers = isLib ? func : {
'ary': util.ary,
'assign': util.assign,
'clone': util.clone,
'curry': util.curry,
'forEach': util.forEach,
'isArray': util.isArray,
'isFunction': util.isFunction,
'iteratee': util.iteratee,
'keys': util.keys,
'rearg': util.rearg,
'spread': util.spread,
'toPath': util.toPath
};
var ary = helpers.ary,
assign = helpers.assign,
clone = helpers.clone,
curry = helpers.curry,
each = helpers.forEach,
isArray = helpers.isArray,
isFunction = helpers.isFunction,
keys = helpers.keys,
rearg = helpers.rearg,
spread = helpers.spread,
toPath = helpers.toPath;
var aryMethodKeys = keys(mapping.aryMethod);
var wrappers = {
'castArray': function(castArray) {
return function() {
var value = arguments[0];
return isArray(value)
? castArray(cloneArray(value))
: castArray.apply(undefined, arguments);
};
},
'iteratee': function(iteratee) {
return function() {
var func = arguments[0],
arity = arguments[1],
result = iteratee(func, arity),
length = result.length;
if (config.cap && typeof arity == 'number') {
arity = arity > 2 ? (arity - 2) : 1;
return (length && length <= arity) ? result : baseAry(result, arity);
}
return result;
};
},
'mixin': function(mixin) {
return function(source) {
var func = this;
if (!isFunction(func)) {
return mixin(func, Object(source));
}
var pairs = [];
each(keys(source), function(key) {
if (isFunction(source[key])) {
pairs.push([key, func.prototype[key]]);
}
});
mixin(func, Object(source));
each(pairs, function(pair) {
var value = pair[1];
if (isFunction(value)) {
func.prototype[pair[0]] = value;
} else {
delete func.prototype[pair[0]];
}
});
return func;
};
},
'runInContext': function(runInContext) {
return function(context) {
return baseConvert(util, runInContext(context), options);
};
}
};
/*--------------------------------------------------------------------------*/
/**
* Creates a clone of `object` by `path`.
*
* @private
* @param {Object} object The object to clone.
* @param {Array|string} path The path to clone by.
* @returns {Object} Returns the cloned object.
*/
function cloneByPath(object, path) {
path = toPath(path);
var index = -1,
length = path.length,
lastIndex = length - 1,
result = clone(Object(object)),
nested = result;
while (nested != null && ++index < length) {
var key = path[index],
value = nested[key];
if (value != null) {
nested[path[index]] = clone(index == lastIndex ? value : Object(value));
}
nested = nested[key];
}
return result;
}
/**
* Converts `lodash` to an immutable auto-curried iteratee-first data-last
* version with conversion `options` applied.
*
* @param {Object} [options] The options object. See `baseConvert` for more details.
* @returns {Function} Returns the converted `lodash`.
*/
function convertLib(options) {
return _.runInContext.convert(options)(undefined);
}
/**
* Create a converter function for `func` of `name`.
*
* @param {string} name The name of the function to convert.
* @param {Function} func The function to convert.
* @returns {Function} Returns the new converter function.
*/
function createConverter(name, func) {
var oldOptions = options;
return function(options) {
var newUtil = isLib ? pristine : helpers,
newFunc = isLib ? pristine[name] : func,
newOptions = assign(assign({}, oldOptions), options);
return baseConvert(newUtil, name, newFunc, newOptions);
};
}
/**
* Creates a function that wraps `func` to invoke its iteratee, with up to `n`
* arguments, ignoring any additional arguments.
*
* @private
* @param {Function} func The function to cap iteratee arguments for.
* @param {number} n The arity cap.
* @returns {Function} Returns the new function.
*/
function iterateeAry(func, n) {
return overArg(func, function(func) {
return typeof func == 'function' ? baseAry(func, n) : func;
});
}
/**
* Creates a function that wraps `func` to invoke its iteratee with arguments
* arranged according to the specified `indexes` where the argument value at
* the first index is provided as the first argument, the argument value at
* the second index is provided as the second argument, and so on.
*
* @private
* @param {Function} func The function to rearrange iteratee arguments for.
* @param {number[]} indexes The arranged argument indexes.
* @returns {Function} Returns the new function.
*/
function iterateeRearg(func, indexes) {
return overArg(func, function(func) {
var n = indexes.length;
return baseArity(rearg(baseAry(func, n), indexes), n);
});
}
/**
* Creates a function that invokes `func` with its first argument passed
* thru `transform`.
*
* @private
* @param {Function} func The function to wrap.
* @param {...Function} transform The functions to transform the first argument.
* @returns {Function} Returns the new function.
*/
function overArg(func, transform) {
return function() {
var length = arguments.length;
if (!length) {
return func();
}
var args = Array(length);
while (length--) {
args[length] = arguments[length];
}
var index = config.rearg ? 0 : (length - 1);
args[index] = transform(args[index]);
return func.apply(undefined, args);
};
}
/**
* Creates a function that wraps `func` and applys the conversions
* rules by `name`.
*
* @private
* @param {string} name The name of the function to wrap.
* @param {Function} func The function to wrap.
* @returns {Function} Returns the converted function.
*/
function wrap(name, func) {
name = mapping.aliasToReal[name] || name;
var result,
wrapped = func,
wrapper = wrappers[name];
if (wrapper) {
wrapped = wrapper(func);
}
else if (config.immutable) {
if (mutateMap.array[name]) {
wrapped = immutWrap(func, cloneArray);
}
else if (mutateMap.object[name]) {
wrapped = immutWrap(func, createCloner(func));
}
else if (mutateMap.set[name]) {
wrapped = immutWrap(func, cloneByPath);
}
}
each(aryMethodKeys, function(aryKey) {
each(mapping.aryMethod[aryKey], function(otherName) {
if (name == otherName) {
var aryN = !isLib && mapping.iterateeAry[name],
reargIndexes = mapping.iterateeRearg[name],
spreadStart = mapping.methodSpread[name];
result = wrapped;
if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {
result = spreadStart === undefined
? ary(result, aryKey)
: spread(result, spreadStart);
}
if (config.rearg && aryKey > 1 && (forceRearg || !mapping.skipRearg[name])) {
result = rearg(result, mapping.methodRearg[name] || mapping.aryRearg[aryKey]);
}
if (config.cap) {
if (reargIndexes) {
result = iterateeRearg(result, reargIndexes);
} else if (aryN) {
result = iterateeAry(result, aryN);
}
}
if (forceCurry || (config.curry && aryKey > 1)) {
forceCurry && console.log(forceCurry, name);
result = curry(result, aryKey);
}
return false;
}
});
return !result;
});
result || (result = wrapped);
if (result == func) {
result = forceCurry ? curry(result, 1) : function() {
return func.apply(this, arguments);
};
}
result.convert = createConverter(name, func);
if (mapping.placeholder[name]) {
setPlaceholder = true;
result.placeholder = func.placeholder = placeholder;
}
return result;
}
/*--------------------------------------------------------------------------*/
if (!isObj) {
return wrap(name, func);
}
var _ = func;
// Convert methods by ary cap.
var pairs = [];
each(aryMethodKeys, function(aryKey) {
each(mapping.aryMethod[aryKey], function(key) {
var func = _[mapping.remap[key] || key];
if (func) {
pairs.push([key, wrap(key, func)]);
}
});
});
// Convert remaining methods.
each(keys(_), function(key) {
var func = _[key];
if (typeof func == 'function') {
var length = pairs.length;
while (length--) {
if (pairs[length][0] == key) {
return;
}
}
func.convert = createConverter(key, func);
pairs.push([key, func]);
}
});
// Assign to `_` leaving `_.prototype` unchanged to allow chaining.
each(pairs, function(pair) {
_[pair[0]] = pair[1];
});
_.convert = convertLib;
if (setPlaceholder) {
_.placeholder = placeholder;
}
// Assign aliases.
each(keys(_), function(key) {
each(mapping.realToAlias[key] || [], function(alias) {
_[alias] = _[key];
});
});
return _;
}
module.exports = baseConvert;
/***/ },
/* 2 */
/***/ function(module, exports) {
/** Used to map aliases to their real names. */
exports.aliasToReal = {
// Lodash aliases.
'each': 'forEach',
'eachRight': 'forEachRight',
'entries': 'toPairs',
'entriesIn': 'toPairsIn',
'extend': 'assignIn',
'extendWith': 'assignInWith',
'first': 'head',
// Ramda aliases.
'__': 'placeholder',
'all': 'every',
'allPass': 'overEvery',
'always': 'constant',
'any': 'some',
'anyPass': 'overSome',
'apply': 'spread',
'assoc': 'set',
'assocPath': 'set',
'complement': 'negate',
'compose': 'flowRight',
'contains': 'includes',
'dissoc': 'unset',
'dissocPath': 'unset',
'equals': 'isEqual',
'identical': 'eq',
'init': 'initial',
'invertObj': 'invert',
'juxt': 'over',
'omitAll': 'omit',
'nAry': 'ary',
'path': 'get',
'pathEq': 'matchesProperty',
'pathOr': 'getOr',
'paths': 'at',
'pickAll': 'pick',
'pipe': 'flow',
'pluck': 'map',
'prop': 'get',
'propEq': 'matchesProperty',
'propOr': 'getOr',
'props': 'at',
'unapply': 'rest',
'unnest': 'flatten',
'useWith': 'overArgs',
'whereEq': 'filter',
'zipObj': 'zipObject'
};
/** Used to map ary to method names. */
exports.aryMethod = {
'1': [
'attempt', 'castArray', 'ceil', 'create', 'curry', 'curryRight', 'floor',
'flow', 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method',
'methodOf', 'mixin', 'over', 'overEvery', 'overSome', 'rest', 'reverse',
'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',
'uniqueId', 'words'
],
'2': [
'add', 'after', 'ary', 'assign', 'assignIn', 'at', 'before', 'bind', 'bindAll',
'bindKey', 'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
'curryRightN', 'debounce', 'defaults', 'defaultsDeep', 'delay', 'difference',
'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith',
'eq', 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast',
'findLastIndex', 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth',
'forEach', 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight',
'get', 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf',
'intersection', 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch',
'join', 'keyBy', 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues',
'matchesProperty', 'maxBy', 'meanBy', 'merge', 'minBy', 'multiply', 'nth',
'omit', 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt',
'partial', 'partialRight', 'partition', 'pick', 'pickBy', 'pull', 'pullAll',
'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight',
'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars',
'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith',
'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject',
'zipObjectDeep'
],
'3': [
'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
'getOr', 'inRange', 'intersectionBy', 'intersectionWith', 'invokeArgs',
'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth', 'mergeWith',
'orderBy', 'padChars', 'padCharsEnd', 'padCharsStart', 'pullAllBy',
'pullAllWith', 'reduce', 'reduceRight', 'replace', 'set', 'slice',
'sortedIndexBy', 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith',
'update', 'xorBy', 'xorWith', 'zipWith'
],
'4': [
'fill', 'setWith', 'updateWith'
]
};
/** Used to map ary to rearg configs. */
exports.aryRearg = {
'2': [1, 0],
'3': [2, 0, 1],
'4': [3, 2, 0, 1]
};
/** Used to map method names to their iteratee ary. */
exports.iterateeAry = {
'dropRightWhile': 1,
'dropWhile': 1,
'every': 1,
'filter': 1,
'find': 1,
'findIndex': 1,
'findKey': 1,
'findLast': 1,
'findLastIndex': 1,
'findLastKey': 1,
'flatMap': 1,
'flatMapDeep': 1,
'flatMapDepth': 1,
'forEach': 1,
'forEachRight': 1,
'forIn': 1,
'forInRight': 1,
'forOwn': 1,
'forOwnRight': 1,
'map': 1,
'mapKeys': 1,
'mapValues': 1,
'partition': 1,
'reduce': 2,
'reduceRight': 2,
'reject': 1,
'remove': 1,
'some': 1,
'takeRightWhile': 1,
'takeWhile': 1,
'times': 1,
'transform': 2
};
/** Used to map method names to iteratee rearg configs. */
exports.iterateeRearg = {
'mapKeys': [1]
};
/** Used to map method names to rearg configs. */
exports.methodRearg = {
'assignInWith': [1, 2, 0],
'assignWith': [1, 2, 0],
'getOr': [2, 1, 0],
'isEqualWith': [1, 2, 0],
'isMatchWith': [2, 1, 0],
'mergeWith': [1, 2, 0],
'padChars': [2, 1, 0],
'padCharsEnd': [2, 1, 0],
'padCharsStart': [2, 1, 0],
'pullAllBy': [2, 1, 0],
'pullAllWith': [2, 1, 0],
'setWith': [3, 1, 2, 0],
'sortedIndexBy': [2, 1, 0],
'sortedLastIndexBy': [2, 1, 0],
'updateWith': [3, 1, 2, 0],
'zipWith': [1, 2, 0]
};
/** Used to map method names to spread configs. */
exports.methodSpread = {
'invokeArgs': 2,
'invokeArgsMap': 2,
'partial': 1,
'partialRight': 1,
'without': 1
};
/** Used to identify methods which mutate arrays or objects. */
exports.mutate = {
'array': {
'fill': true,
'pull': true,
'pullAll': true,
'pullAllBy': true,
'pullAllWith': true,
'pullAt': true,
'remove': true,
'reverse': true
},
'object': {
'assign': true,
'assignIn': true,
'assignInWith': true,
'assignWith': true,
'defaults': true,
'defaultsDeep': true,
'merge': true,
'mergeWith': true
},
'set': {
'set': true,
'setWith': true,
'unset': true,
'update': true,
'updateWith': true
}
};
/** Used to track methods with placeholder support */
exports.placeholder = {
'bind': true,
'bindKey': true,
'curry': true,
'curryRight': true,
'partial': true,
'partialRight': true
};
/** Used to map real names to their aliases. */
exports.realToAlias = (function() {
var hasOwnProperty = Object.prototype.hasOwnProperty,
object = exports.aliasToReal,
result = {};
for (var key in object) {
var value = object[key];
if (hasOwnProperty.call(result, value)) {
result[value].push(key);
} else {
result[value] = [key];
}
}
return result;
}());
/** Used to map method names to other names. */
exports.remap = {
'curryN': 'curry',
'curryRightN': 'curryRight',
'getOr': 'get',
'invokeArgs': 'invoke',
'invokeArgsMap': 'invokeMap',
'padChars': 'pad',
'padCharsEnd': 'padEnd',
'padCharsStart': 'padStart',
'restFrom': 'rest',
'spreadFrom': 'spread',
'trimChars': 'trim',
'trimCharsEnd': 'trimEnd',
'trimCharsStart': 'trimStart'
};
/** Used to track methods that skip fixing their arity. */
exports.skipFixed = {
'castArray': true,
'flow': true,
'flowRight': true,
'iteratee': true,
'mixin': true,
'runInContext': true
};
/** Used to track methods that skip rearranging arguments. */
exports.skipRearg = {
'add': true,
'assign': true,
'assignIn': true,
'bind': true,
'bindKey': true,
'concat': true,
'difference': true,
'divide': true,
'eq': true,
'gt': true,
'gte': true,
'isEqual': true,
'lt': true,
'lte': true,
'matchesProperty': true,
'merge': true,
'multiply': true,
'overArgs': true,
'partial': true,
'partialRight': true,
'random': true,
'range': true,
'rangeRight': true,
'subtract': true,
'without': true,
'zip': true,
'zipObject': true
};
/***/ },
/* 3 */
/***/ function(module, exports) {
/**
* The default argument placeholder value for methods.
*
* @type {Object}
*/
module.exports = {};
/***/ }
/******/ ])
});
;

16
dist/lodash.fp.min.js vendored Normal file
View File

@@ -0,0 +1,16 @@
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.fp=e():t.fp=e()}(this,function(){return function(t){function e(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return t[n].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var r={};return e.m=t,e.c=r,e.p="",e(0)}([function(t,e,r){function n(t,e){return i(t,t,e)}var i=r(1);"function"==typeof _&&(_=n(_.runInContext())),
t.exports=n},function(t,e,r){function n(t,e){return 2==e?function(e,r){return t.apply(void 0,arguments)}:function(e){return t.apply(void 0,arguments)}}function i(t,e){return 2==e?function(e,r){return t(e,r)}:function(e){return t(e)}}function a(t){for(var e=t?t.length:0,r=Array(e);e--;)r[e]=t[e];return r}function o(t){return function(e){return t({},e)}}function s(t,e){return function(){var r=arguments.length;if(!r)return i;for(var n=Array(r);r--;)n[r]=arguments[r];var i=n[0]=e.apply(void 0,n);return t.apply(void 0,n),
i}}function u(t,e,r,d){function f(t,e){e=F(e);for(var r=-1,n=e.length,i=n-1,a=M(Object(t)),o=a;null!=o&&++r<n;){var s=e[r],u=o[s];null!=u&&(o[e[r]]=M(r==i?u:Object(u))),o=o[s]}return a}function h(t){return N.runInContext.convert(t)(void 0)}function y(t,e){var r=d;return function(n){var i=R?B:j,a=R?B[t]:e,o=w(w({},r),n);return u(i,t,a,o)}}function g(t,e){return v(t,function(t){return"function"==typeof t?i(t,e):t})}function m(t,e){return v(t,function(t){var r=e.length;return n(L(i(t,r),e),r)})}function v(t,e){
return function(){var r=arguments.length;if(!r)return t();for(var n=Array(r);r--;)n[r]=arguments[r];var i=I.rearg?0:r-1;return n[i]=e(n[i]),t.apply(void 0,n)}}function x(t,e){t=p.aliasToReal[t]||t;var r,n=e,i=_[t];return i?n=i(e):I.immutable&&(l.array[t]?n=s(e,a):l.object[t]?n=s(e,o(e)):l.set[t]&&(n=s(e,f))),P(T,function(e){return P(p.aryMethod[e],function(i){if(t==i){var a=!R&&p.iterateeAry[t],o=p.iterateeRearg[t],s=p.methodSpread[t];return r=n,!I.fixed||!k&&p.skipFixed[t]||(r=void 0===s?C(r,e):D(r,s)),
I.rearg&&e>1&&(E||!p.skipRearg[t])&&(r=L(r,p.methodRearg[t]||p.aryRearg[e])),I.cap&&(o?r=m(r,o):a&&(r=g(r,a))),(b||I.curry&&e>1)&&(b&&console.log(b,t),r=q(r,e)),!1}}),!r}),r||(r=n),r==e&&(r=b?q(r,1):function(){return e.apply(this,arguments)}),r.convert=y(t,e),p.placeholder[t]&&(W=!0,r.placeholder=e.placeholder=O),r}var W,R="function"==typeof e,A=e===Object(e);if(A&&(d=r,r=e,e=void 0),null==r)throw new TypeError;d||(d={});var I={cap:"cap"in d?d.cap:!0,curry:"curry"in d?d.curry:!0,fixed:"fixed"in d?d.fixed:!0,
immutable:"immutable"in d?d.immutable:!0,rearg:"rearg"in d?d.rearg:!0},b="curry"in d&&d.curry,k="fixed"in d&&d.fixed,E="rearg"in d&&d.rearg,O=R?r:c,B=R?r.runInContext():void 0,j=R?r:{ary:t.ary,assign:t.assign,clone:t.clone,curry:t.curry,forEach:t.forEach,isArray:t.isArray,isFunction:t.isFunction,iteratee:t.iteratee,keys:t.keys,rearg:t.rearg,spread:t.spread,toPath:t.toPath},C=j.ary,w=j.assign,M=j.clone,q=j.curry,P=j.forEach,S=j.isArray,z=j.isFunction,K=j.keys,L=j.rearg,D=j.spread,F=j.toPath,T=K(p.aryMethod),_={
castArray:function(t){return function(){var e=arguments[0];return S(e)?t(a(e)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var e=arguments[0],r=arguments[1],n=t(e,r),a=n.length;return I.cap&&"number"==typeof r?(r=r>2?r-2:1,a&&r>=a?n:i(n,r)):n}},mixin:function(t){return function(e){var r=this;if(!z(r))return t(r,Object(e));var n=[];return P(K(e),function(t){z(e[t])&&n.push([t,r.prototype[t]])}),t(r,Object(e)),P(n,function(t){var e=t[1];z(e)?r.prototype[t[0]]=e:delete r.prototype[t[0]];
}),r}},runInContext:function(e){return function(r){return u(t,e(r),d)}}};if(!A)return x(e,r);var N=r,V=[];return P(T,function(t){P(p.aryMethod[t],function(t){var e=N[p.remap[t]||t];e&&V.push([t,x(t,e)])})}),P(K(N),function(t){var e=N[t];if("function"==typeof e){for(var r=V.length;r--;)if(V[r][0]==t)return;e.convert=y(t,e),V.push([t,e])}}),P(V,function(t){N[t[0]]=t[1]}),N.convert=h,W&&(N.placeholder=O),P(K(N),function(t){P(p.realToAlias[t]||[],function(e){N[e]=N[t]})}),N}var p=r(2),l=p.mutate,c=r(3);
t.exports=u},function(t,e){e.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendWith:"assignInWith",first:"head",__:"placeholder",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",equals:"isEqual",identical:"eq",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",
nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",unapply:"rest",unnest:"flatten",useWith:"overArgs",whereEq:"filter",zipObj:"zipObject"},e.aryMethod={1:["attempt","castArray","ceil","create","curry","curryRight","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","methodOf","mixin","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words"],
2:["add","after","ary","assign","assignIn","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],
3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","getOr","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},e.aryRearg={2:[1,0],3:[2,0,1],
4:[3,2,0,1]},e.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findIndex:1,findKey:1,findLast:1,findLastIndex:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},e.iterateeRearg={mapKeys:[1]},e.methodRearg={assignInWith:[1,2,0],assignWith:[1,2,0],getOr:[2,1,0],isEqualWith:[1,2,0],
isMatchWith:[2,1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],updateWith:[3,1,2,0],zipWith:[1,2,0]},e.methodSpread={invokeArgs:2,invokeArgsMap:2,partial:1,partialRight:1,without:1},e.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignIn:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsDeep:!0,
merge:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},e.placeholder={bind:!0,bindKey:!0,curry:!0,curryRight:!0,partial:!0,partialRight:!0},e.realToAlias=function(){var t=Object.prototype.hasOwnProperty,r=e.aliasToReal,n={};for(var i in r){var a=r[i];t.call(n,a)?n[a].push(i):n[a]=[i]}return n}(),e.remap={curryN:"curry",curryRightN:"curryRight",getOr:"get",invokeArgs:"invoke",invokeArgsMap:"invokeMap",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",restFrom:"rest",
spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart"},e.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,runInContext:!0},e.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,without:!0,zip:!0,zipObject:!0}},function(t,e){t.exports={}}])});

16242
dist/lodash.js vendored Normal file

File diff suppressed because it is too large Load Diff

125
dist/lodash.min.js vendored Normal file
View File

@@ -0,0 +1,125 @@
/**
* @license
* lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
*/
;(function(){function t(t,n){return t.set(n[0],n[1]),t}function n(t,n){return t.add(n),t}function r(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}function e(t,n,r,e){for(var u=-1,o=t.length;++u<o;){var i=t[u];n(e,i,r(i),t)}return e}function u(t,n){for(var r=-1,e=t.length;++r<e&&false!==n(t[r],r,t););return t}function o(t,n){for(var r=t.length;r--&&false!==n(t[r],r,t););return t}function i(t,n){
for(var r=-1,e=t.length;++r<e;)if(!n(t[r],r,t))return false;return true}function f(t,n){for(var r=-1,e=t.length,u=0,o=[];++r<e;){var i=t[r];n(i,r,t)&&(o[u++]=i)}return o}function c(t,n){return!!t.length&&-1<d(t,n,0)}function a(t,n,r){for(var e=-1,u=t.length;++e<u;)if(r(n,t[e]))return true;return false}function l(t,n){for(var r=-1,e=t.length,u=Array(e);++r<e;)u[r]=n(t[r],r,t);return u}function s(t,n){for(var r=-1,e=n.length,u=t.length;++r<e;)t[u+r]=n[r];return t}function h(t,n,r,e){var u=-1,o=t.length;for(e&&o&&(r=t[++u]);++u<o;)r=n(r,t[u],u,t);
return r}function p(t,n,r,e){var u=t.length;for(e&&u&&(r=t[--u]);u--;)r=n(r,t[u],u,t);return r}function _(t,n){for(var r=-1,e=t.length;++r<e;)if(n(t[r],r,t))return true;return false}function v(t,n,r,e){var u;return r(t,function(t,r,o){return n(t,r,o)?(u=e?r:t,false):void 0}),u}function g(t,n,r){for(var e=t.length,u=r?e:-1;r?u--:++u<e;)if(n(t[u],u,t))return u;return-1}function d(t,n,r){if(n!==n)return M(t,r);--r;for(var e=t.length;++r<e;)if(t[r]===n)return r;return-1}function y(t,n,r,e){--r;for(var u=t.length;++r<u;)if(e(t[r],n))return r;
return-1}function b(t,n){var r=t?t.length:0;return r?w(t,n)/r:V}function x(t,n,r,e,u){return u(t,function(t,u,o){r=e?(e=false,t):n(r,t,u,o)}),r}function j(t,n){var r=t.length;for(t.sort(n);r--;)t[r]=t[r].c;return t}function w(t,n){for(var r,e=-1,u=t.length;++e<u;){var o=n(t[e]);o!==T&&(r=r===T?o:r+o)}return r}function m(t,n){for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);return e}function A(t,n){return l(n,function(n){return[n,t[n]]})}function O(t){return function(n){return t(n)}}function k(t,n){return l(n,function(n){
return t[n]})}function E(t,n){return t.has(n)}function I(t,n){for(var r=-1,e=t.length;++r<e&&-1<d(n,t[r],0););return r}function S(t,n){for(var r=t.length;r--&&-1<d(n,t[r],0););return r}function R(t){return t&&t.Object===Object?t:null}function W(t){return zt[t]}function B(t){return Ut[t]}function L(t){return"\\"+$t[t]}function M(t,n,r){var e=t.length;for(n+=r?0:-1;r?n--:++n<e;){var u=t[n];if(u!==u)return n}return-1}function C(t){var n=false;if(null!=t&&typeof t.toString!="function")try{n=!!(t+"")}catch(r){}
return n}function z(t){for(var n,r=[];!(n=t.next()).done;)r.push(n.value);return r}function U(t){var n=-1,r=Array(t.size);return t.forEach(function(t,e){r[++n]=[e,t]}),r}function D(t,n){for(var r=-1,e=t.length,u=0,o=[];++r<e;){var i=t[r];i!==n&&"__lodash_placeholder__"!==i||(t[r]="__lodash_placeholder__",o[u++]=r)}return o}function F(t){var n=-1,r=Array(t.size);return t.forEach(function(t){r[++n]=t}),r}function $(t){var n=-1,r=Array(t.size);return t.forEach(function(t){r[++n]=[t,t]}),r}function N(t){
if(!t||!Wt.test(t))return t.length;for(var n=St.lastIndex=0;St.test(t);)n++;return n}function P(t){return Dt[t]}function Z(R){function At(t){if(De(t)&&!ai(t)&&!(t instanceof zt)){if(t instanceof kt)return t;if(wu.call(t,"__wrapped__"))return ie(t)}return new kt(t)}function Ot(){}function kt(t,n){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=T}function zt(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],
this.__takeCount__=4294967295,this.__views__=[]}function Ut(t){var n=-1,r=t?t.length:0;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}function Dt(t){var n=-1,r=t?t.length:0;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}function Ft(t){var n=-1,r=t?t.length:0;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}function $t(t){var n=-1,r=t?t.length:0;for(this.__data__=new Ft;++n<r;)this.add(t[n])}function Zt(t){this.__data__=new Dt(t)}function Tt(t,n,r,e){return t===T||Se(t,bu[r])&&!wu.call(e,r)?n:t;
}function Vt(t,n,r){(r===T||Se(t[n],r))&&(typeof n!="number"||r!==T||n in t)||(t[n]=r)}function Kt(t,n,r){var e=t[n];wu.call(t,n)&&Se(e,r)&&(r!==T||n in t)||(t[n]=r)}function Gt(t,n){for(var r=t.length;r--;)if(Se(t[r][0],n))return r;return-1}function Ht(t,n,r,e){return go(t,function(t,u,o){n(e,t,r(t),o)}),e}function Qt(t,n){return t&&ar(n,nu(n),t)}function Xt(t,n){for(var r=-1,e=null==t,u=n.length,o=Array(u);++r<u;)o[r]=e?T:Xe(t,n[r]);return o}function tn(t,n,r){return t===t&&(r!==T&&(t=r>=t?t:r),
n!==T&&(t=t>=n?t:n)),t}function nn(t,n,r,e,o,i,f){var c;if(e&&(c=i?e(t,o,i,f):e(t)),c!==T)return c;if(!Ue(t))return t;if(o=ai(t)){if(c=Tr(t),!n)return cr(t,c)}else{var a=Pr(t),l="[object Function]"==a||"[object GeneratorFunction]"==a;if(li(t))return er(t,n);if("[object Object]"==a||"[object Arguments]"==a||l&&!i){if(C(t))return i?t:{};if(c=qr(l?{}:t),!n)return lr(t,Qt(c,t))}else{if(!Ct[a])return i?t:{};c=Vr(t,a,nn,n)}}if(f||(f=new Zt),i=f.get(t))return i;if(f.set(t,c),!o)var s=r?vn(t,nu,Nr):nu(t);
return u(s||t,function(u,o){s&&(o=u,u=t[o]),Kt(c,o,nn(u,n,r,e,o,t,f))}),c}function rn(t){var n=nu(t),r=n.length;return function(e){if(null==e)return!r;for(var u=r;u--;){var o=n[u],i=t[o],f=e[o];if(f===T&&!(o in Object(e))||!i(f))return false}return true}}function en(t){return Ue(t)?zu(t):{}}function un(t,n,r){if(typeof t!="function")throw new du("Expected a function");return Du(function(){t.apply(T,r)},n)}function on(t,n,r,e){var u=-1,o=c,i=true,f=t.length,s=[],h=n.length;if(!f)return s;r&&(n=l(n,O(r))),e?(o=a,
i=false):n.length>=200&&(o=E,i=false,n=new $t(n));t:for(;++u<f;){var p=t[u],_=r?r(p):p,p=e||0!==p?p:0;if(i&&_===_){for(var v=h;v--;)if(n[v]===_)continue t;s.push(p)}else o(n,_,e)||s.push(p)}return s}function fn(t,n){var r=true;return go(t,function(t,e,u){return r=!!n(t,e,u)}),r}function cn(t,n,r){for(var e=-1,u=t.length;++e<u;){var o=t[e],i=n(o);if(null!=i&&(f===T?i===i&&!Te(i):r(i,f)))var f=i,c=o}return c}function an(t,n){var r=[];return go(t,function(t,e,u){n(t,e,u)&&r.push(t)}),r}function ln(t,n,r,e,u){
var o=-1,i=t.length;for(r||(r=Gr),u||(u=[]);++o<i;){var f=t[o];n>0&&r(f)?n>1?ln(f,n-1,r,e,u):s(u,f):e||(u[u.length]=f)}return u}function sn(t,n){return t&&bo(t,n,nu)}function hn(t,n){return t&&xo(t,n,nu)}function pn(t,n){return f(n,function(n){return Me(t[n])})}function _n(t,n){n=Qr(n,t)?[n]:nr(n);for(var r=0,e=n.length;null!=t&&e>r;)t=t[ue(n[r++])];return r&&r==e?t:T}function vn(t,n,r){return n=n(t),ai(t)?n:s(n,r(t))}function gn(t,n){return t>n}function dn(t,n){return wu.call(t,n)||typeof t=="object"&&n in t&&null===Pu(Object(t));
}function yn(t,n){return n in Object(t)}function bn(t,n,r){for(var e=r?a:c,u=t[0].length,o=t.length,i=o,f=Array(o),s=1/0,h=[];i--;){var p=t[i];i&&n&&(p=l(p,O(n))),s=Ku(p.length,s),f[i]=!r&&(n||u>=120&&p.length>=120)?new $t(i&&p):T}var p=t[0],_=-1,v=f[0];t:for(;++_<u&&s>h.length;){var g=p[_],d=n?n(g):g,g=r||0!==g?g:0;if(v?!E(v,d):!e(h,d,r)){for(i=o;--i;){var y=f[i];if(y?!E(y,d):!e(t[i],d,r))continue t}v&&v.push(d),h.push(g)}}return h}function xn(t,n,r){var e={};return sn(t,function(t,u,o){n(e,r(t),u,o);
}),e}function jn(t,n,e){return Qr(n,t)||(n=nr(n),t=ee(t,n),n=le(n)),n=null==t?t:t[ue(n)],null==n?T:r(n,t,e)}function wn(t,n,r,e,u){if(t===n)n=true;else if(null==t||null==n||!Ue(t)&&!De(n))n=t!==t&&n!==n;else t:{var o=ai(t),i=ai(n),f="[object Array]",c="[object Array]";o||(f=Pr(t),f="[object Arguments]"==f?"[object Object]":f),i||(c=Pr(n),c="[object Arguments]"==c?"[object Object]":c);var a="[object Object]"==f&&!C(t),i="[object Object]"==c&&!C(n);if((c=f==c)&&!a)u||(u=new Zt),n=o||qe(t)?Lr(t,n,wn,r,e,u):Mr(t,n,f,wn,r,e,u);else{
if(!(2&e)&&(o=a&&wu.call(t,"__wrapped__"),f=i&&wu.call(n,"__wrapped__"),o||f)){t=o?t.value():t,n=f?n.value():n,u||(u=new Zt),n=wn(t,n,r,e,u);break t}if(c)n:if(u||(u=new Zt),o=2&e,f=nu(t),i=f.length,c=nu(n).length,i==c||o){for(a=i;a--;){var l=f[a];if(!(o?l in n:dn(n,l))){n=false;break n}}if(c=u.get(t))n=c==n;else{c=true,u.set(t,n);for(var s=o;++a<i;){var l=f[a],h=t[l],p=n[l];if(r)var _=o?r(p,h,l,n,t,u):r(h,p,l,t,n,u);if(_===T?h!==p&&!wn(h,p,r,e,u):!_){c=false;break}s||(s="constructor"==l)}c&&!s&&(r=t.constructor,
e=n.constructor,r!=e&&"constructor"in t&&"constructor"in n&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(c=false)),u["delete"](t),n=c}}else n=false;else n=false}}return n}function mn(t,n,r,e){var u=r.length,o=u,i=!e;if(null==t)return!o;for(t=Object(t);u--;){var f=r[u];if(i&&f[2]?f[1]!==t[f[0]]:!(f[0]in t))return false}for(;++u<o;){var f=r[u],c=f[0],a=t[c],l=f[1];if(i&&f[2]){if(a===T&&!(c in t))return false}else{if(f=new Zt,e)var s=e(a,l,c,t,n,f);if(s===T?!wn(l,a,e,3,f):!s)return false;
}}return true}function An(t){return typeof t=="function"?t:null==t?cu:typeof t=="object"?ai(t)?Sn(t[0],t[1]):In(t):hu(t)}function On(t){t=null==t?t:Object(t);var n,r=[];for(n in t)r.push(n);return r}function kn(t,n){return n>t}function En(t,n){var r=-1,e=We(t)?Array(t.length):[];return go(t,function(t,u,o){e[++r]=n(t,u,o)}),e}function In(t){var n=Fr(t);return 1==n.length&&n[0][2]?ne(n[0][0],n[0][1]):function(r){return r===t||mn(r,t,n)}}function Sn(t,n){return Qr(t)&&n===n&&!Ue(n)?ne(ue(t),n):function(r){
var e=Xe(r,t);return e===T&&e===n?tu(r,t):wn(n,e,T,3)}}function Rn(t,n,r,e,o){if(t!==n){if(!ai(n)&&!qe(n))var i=ru(n);u(i||n,function(u,f){if(i&&(f=u,u=n[f]),Ue(u)){o||(o=new Zt);var c=f,a=o,l=t[c],s=n[c],h=a.get(s);if(h)Vt(t,c,h);else{var h=e?e(l,s,c+"",t,n,a):T,p=h===T;p&&(h=s,ai(s)||qe(s)?ai(l)?h=l:Be(l)?h=cr(l):(p=false,h=nn(s,true)):Ne(s)||Re(s)?Re(l)?h=He(l):!Ue(l)||r&&Me(l)?(p=false,h=nn(s,true)):h=l:p=false),a.set(s,h),p&&Rn(h,s,r,e,a),a["delete"](s),Vt(t,c,h)}}else c=e?e(t[f],u,f+"",t,n,o):T,c===T&&(c=u),
Vt(t,f,c)})}}function Wn(t,n){var r=t.length;return r?(n+=0>n?r:0,Yr(n,r)?t[n]:T):void 0}function Bn(t,n,r){var e=-1;return n=l(n.length?n:[cu],O(Ur())),t=En(t,function(t){return{a:l(n,function(n){return n(t)}),b:++e,c:t}}),j(t,function(t,n){var e;t:{e=-1;for(var u=t.a,o=n.a,i=u.length,f=r.length;++e<i;){var c=or(u[e],o[e]);if(c){e=e>=f?c:c*("desc"==r[e]?-1:1);break t}}e=t.b-n.b}return e})}function Ln(t,n){return t=Object(t),h(n,function(n,r){return r in t&&(n[r]=t[r]),n},{})}function Mn(t,n){for(var r=-1,e=vn(t,ru,Oo),u=e.length,o={};++r<u;){
var i=e[r],f=t[i];n(f,i)&&(o[i]=f)}return o}function Cn(t){return function(n){return null==n?T:n[t]}}function zn(t){return function(n){return _n(n,t)}}function Un(t,n,r,e){var u=e?y:d,o=-1,i=n.length,f=t;for(r&&(f=l(t,O(r)));++o<i;)for(var c=0,a=n[o],a=r?r(a):a;-1<(c=u(f,a,c,e));)f!==t&&Fu.call(f,c,1),Fu.call(t,c,1);return t}function Dn(t,n){for(var r=t?n.length:0,e=r-1;r--;){var u=n[r];if(r==e||u!==o){var o=u;if(Yr(u))Fu.call(t,u,1);else if(Qr(u,t))delete t[ue(u)];else{var u=nr(u),i=ee(t,u);null!=i&&delete i[ue(le(u))];
}}}}function Fn(t,n){return t+Nu(Ju()*(n-t+1))}function $n(t,n){var r="";if(!t||1>n||n>9007199254740991)return r;do n%2&&(r+=t),(n=Nu(n/2))&&(t+=t);while(n);return r}function Nn(t,n,r,e){n=Qr(n,t)?[n]:nr(n);for(var u=-1,o=n.length,i=o-1,f=t;null!=f&&++u<o;){var c=ue(n[u]);if(Ue(f)){var a=r;if(u!=i){var l=f[c],a=e?e(l,c,f):T;a===T&&(a=null==l?Yr(n[u+1])?[]:{}:l)}Kt(f,c,a)}f=f[c]}return t}function Pn(t,n,r){var e=-1,u=t.length;for(0>n&&(n=-n>u?0:u+n),r=r>u?u:r,0>r&&(r+=u),u=n>r?0:r-n>>>0,n>>>=0,r=Array(u);++e<u;)r[e]=t[e+n];
return r}function Zn(t,n){var r;return go(t,function(t,e,u){return r=n(t,e,u),!r}),!!r}function Tn(t,n,r){var e=0,u=t?t.length:e;if(typeof n=="number"&&n===n&&2147483647>=u){for(;u>e;){var o=e+u>>>1,i=t[o];null!==i&&!Te(i)&&(r?n>=i:n>i)?e=o+1:u=o}return u}return qn(t,n,cu,r)}function qn(t,n,r,e){n=r(n);for(var u=0,o=t?t.length:0,i=n!==n,f=null===n,c=Te(n),a=n===T;o>u;){var l=Nu((u+o)/2),s=r(t[l]),h=s!==T,p=null===s,_=s===s,v=Te(s);(i?e||_:a?_&&(e||h):f?_&&h&&(e||!p):c?_&&h&&!p&&(e||!v):p||v?0:e?n>=s:n>s)?u=l+1:o=l;
}return Ku(o,4294967294)}function Vn(t,n){for(var r=-1,e=t.length,u=0,o=[];++r<e;){var i=t[r],f=n?n(i):i;if(!r||!Se(f,c)){var c=f;o[u++]=0===i?0:i}}return o}function Kn(t){return typeof t=="number"?t:Te(t)?V:+t}function Gn(t){if(typeof t=="string")return t;if(Te(t))return vo?vo.call(t):"";var n=t+"";return"0"==n&&1/t==-q?"-0":n}function Jn(t,n,r){var e=-1,u=c,o=t.length,i=true,f=[],l=f;if(r)i=false,u=a;else if(o>=200){if(u=n?null:wo(t))return F(u);i=false,u=E,l=new $t}else l=n?[]:f;t:for(;++e<o;){var s=t[e],h=n?n(s):s,s=r||0!==s?s:0;
if(i&&h===h){for(var p=l.length;p--;)if(l[p]===h)continue t;n&&l.push(h),f.push(s)}else u(l,h,r)||(l!==f&&l.push(h),f.push(s))}return f}function Yn(t,n,r,e){for(var u=t.length,o=e?u:-1;(e?o--:++o<u)&&n(t[o],o,t););return r?Pn(t,e?0:o,e?o+1:u):Pn(t,e?o+1:0,e?u:o)}function Hn(t,n){var r=t;return r instanceof zt&&(r=r.value()),h(n,function(t,n){return n.func.apply(n.thisArg,s([t],n.args))},r)}function Qn(t,n,r){for(var e=-1,u=t.length;++e<u;)var o=o?s(on(o,t[e],n,r),on(t[e],o,n,r)):t[e];return o&&o.length?Jn(o,n,r):[];
}function Xn(t,n,r){for(var e=-1,u=t.length,o=n.length,i={};++e<u;)r(i,t[e],o>e?n[e]:T);return i}function tr(t){return Be(t)?t:[]}function nr(t){return ai(t)?t:Eo(t)}function rr(t,n,r){var e=t.length;return r=r===T?e:r,!n&&r>=e?t:Pn(t,n,r)}function er(t,n){if(n)return t.slice();var r=new t.constructor(t.length);return t.copy(r),r}function ur(t){var n=new t.constructor(t.byteLength);return new Wu(n).set(new Wu(t)),n}function or(t,n){if(t!==n){var r=t!==T,e=null===t,u=t===t,o=Te(t),i=n!==T,f=null===n,c=n===n,a=Te(n);
if(!f&&!a&&!o&&t>n||o&&i&&c&&!f&&!a||e&&i&&c||!r&&c||!u)return 1;if(!e&&!o&&!a&&n>t||a&&r&&u&&!e&&!o||f&&r&&u||!i&&u||!c)return-1}return 0}function ir(t,n,r,e){var u=-1,o=t.length,i=r.length,f=-1,c=n.length,a=Vu(o-i,0),l=Array(c+a);for(e=!e;++f<c;)l[f]=n[f];for(;++u<i;)(e||o>u)&&(l[r[u]]=t[u]);for(;a--;)l[f++]=t[u++];return l}function fr(t,n,r,e){var u=-1,o=t.length,i=-1,f=r.length,c=-1,a=n.length,l=Vu(o-f,0),s=Array(l+a);for(e=!e;++u<l;)s[u]=t[u];for(l=u;++c<a;)s[l+c]=n[c];for(;++i<f;)(e||o>u)&&(s[l+r[i]]=t[u++]);
return s}function cr(t,n){var r=-1,e=t.length;for(n||(n=Array(e));++r<e;)n[r]=t[r];return n}function ar(t,n,r,e){r||(r={});for(var u=-1,o=n.length;++u<o;){var i=n[u],f=e?e(r[i],t[i],i,r,t):t[i];Kt(r,i,f)}return r}function lr(t,n){return ar(t,Nr(t),n)}function sr(t,n){return function(r,u){var o=ai(r)?e:Ht,i=n?n():{};return o(r,t,Ur(u),i)}}function hr(t){return Ie(function(n,r){var e=-1,u=r.length,o=u>1?r[u-1]:T,i=u>2?r[2]:T,o=t.length>3&&typeof o=="function"?(u--,o):T;for(i&&Hr(r[0],r[1],i)&&(o=3>u?T:o,
u=1),n=Object(n);++e<u;)(i=r[e])&&t(n,i,e,o);return n})}function pr(t,n){return function(r,e){if(null==r)return r;if(!We(r))return t(r,e);for(var u=r.length,o=n?u:-1,i=Object(r);(n?o--:++o<u)&&false!==e(i[o],o,i););return r}}function _r(t){return function(n,r,e){var u=-1,o=Object(n);e=e(n);for(var i=e.length;i--;){var f=e[t?i:++u];if(false===r(o[f],f,o))break}return n}}function vr(t,n,r){function e(){return(this&&this!==Jt&&this instanceof e?o:t).apply(u?r:this,arguments)}var u=1&n,o=yr(t);return e}function gr(t){
return function(n){n=Qe(n);var r=Wt.test(n)?n.match(St):T,e=r?r[0]:n.charAt(0);return n=r?rr(r,1).join(""):n.slice(1),e[t]()+n}}function dr(t){return function(n){return h(iu(ou(n).replace(Et,"")),t,"")}}function yr(t){return function(){var n=arguments;switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3]);case 5:return new t(n[0],n[1],n[2],n[3],n[4]);case 6:return new t(n[0],n[1],n[2],n[3],n[4],n[5]);
case 7:return new t(n[0],n[1],n[2],n[3],n[4],n[5],n[6])}var r=en(t.prototype),n=t.apply(r,n);return Ue(n)?n:r}}function br(t,n,e){function u(){for(var i=arguments.length,f=Array(i),c=i,a=zr(u);c--;)f[c]=arguments[c];return c=3>i&&f[0]!==a&&f[i-1]!==a?[]:D(f,a),i-=c.length,e>i?Sr(t,n,jr,u.placeholder,T,f,c,T,T,e-i):r(this&&this!==Jt&&this instanceof u?o:t,this,f)}var o=yr(t);return u}function xr(t){return Ie(function(n){n=ln(n,1);var r=n.length,e=r,u=kt.prototype.thru;for(t&&n.reverse();e--;){var o=n[e];
if(typeof o!="function")throw new du("Expected a function");if(u&&!i&&"wrapper"==Cr(o))var i=new kt([],true)}for(e=i?e:r;++e<r;)var o=n[e],u=Cr(o),f="wrapper"==u?mo(o):T,i=f&&Xr(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?i[Cr(f[0])].apply(i,f[3]):1==o.length&&Xr(o)?i[u]():i.thru(o);return function(){var t=arguments,e=t[0];if(i&&1==t.length&&ai(e)&&e.length>=200)return i.plant(e).value();for(var u=0,t=r?n[u].apply(this,t):e;++u<r;)t=n[u].call(this,t);return t}})}function jr(t,n,r,e,u,o,i,f,c,a){function l(){
for(var d=arguments.length,y=Array(d),b=d;b--;)y[b]=arguments[b];if(_){var x,j=zr(l),b=y.length;for(x=0;b--;)y[b]===j&&x++}if(e&&(y=ir(y,e,u,_)),o&&(y=fr(y,o,i,_)),d-=x,_&&a>d)return j=D(y,j),Sr(t,n,jr,l.placeholder,r,y,j,f,c,a-d);if(j=h?r:this,b=p?j[t]:t,d=y.length,f){x=y.length;for(var w=Ku(f.length,x),m=cr(y);w--;){var A=f[w];y[w]=Yr(A,x)?m[A]:T}}else v&&d>1&&y.reverse();return s&&d>c&&(y.length=c),this&&this!==Jt&&this instanceof l&&(b=g||yr(b)),b.apply(j,y)}var s=128&n,h=1&n,p=2&n,_=24&n,v=512&n,g=p?T:yr(t);
return l}function wr(t,n){return function(r,e){return xn(r,t,n(e))}}function mr(t){return function(n,r){var e;if(n===T&&r===T)return 0;if(n!==T&&(e=n),r!==T){if(e===T)return r;typeof n=="string"||typeof r=="string"?(n=Gn(n),r=Gn(r)):(n=Kn(n),r=Kn(r)),e=t(n,r)}return e}}function Ar(t){return Ie(function(n){return n=1==n.length&&ai(n[0])?l(n[0],O(Ur())):l(ln(n,1,Jr),O(Ur())),Ie(function(e){var u=this;return t(n,function(t){return r(t,u,e)})})})}function Or(t,n){n=n===T?" ":Gn(n);var r=n.length;return 2>r?r?$n(n,t):n:(r=$n(n,$u(t/N(n))),
Wt.test(n)?rr(r.match(St),0,t).join(""):r.slice(0,t))}function kr(t,n,e,u){function o(){for(var n=-1,c=arguments.length,a=-1,l=u.length,s=Array(l+c),h=this&&this!==Jt&&this instanceof o?f:t;++a<l;)s[a]=u[a];for(;c--;)s[a++]=arguments[++n];return r(h,i?e:this,s)}var i=1&n,f=yr(t);return o}function Er(t){return function(n,r,e){e&&typeof e!="number"&&Hr(n,r,e)&&(r=e=T),n=Ye(n),n=n===n?n:0,r===T?(r=n,n=0):r=Ye(r)||0,e=e===T?r>n?1:-1:Ye(e)||0;var u=-1;r=Vu($u((r-n)/(e||1)),0);for(var o=Array(r);r--;)o[t?r:++u]=n,
n+=e;return o}}function Ir(t){return function(n,r){return typeof n=="string"&&typeof r=="string"||(n=Ye(n),r=Ye(r)),t(n,r)}}function Sr(t,n,r,e,u,o,i,f,c,a){var l=8&n,s=l?i:T;i=l?T:i;var h=l?o:T;return o=l?T:o,n=(n|(l?32:64))&~(l?64:32),4&n||(n&=-4),n=[t,n,u,h,s,o,i,f,c,a],r=r.apply(T,n),Xr(t)&&ko(r,n),r.placeholder=e,r}function Rr(t){var n=vu[t];return function(t,r){if(t=Ye(t),r=Ge(r)){var e=(Qe(t)+"e").split("e"),e=n(e[0]+"e"+(+e[1]+r)),e=(Qe(e)+"e").split("e");return+(e[0]+"e"+(+e[1]-r))}return n(t);
}}function Wr(t){return function(n){var r=Pr(n);return"[object Map]"==r?U(n):"[object Set]"==r?$(n):A(n,t(n))}}function Br(t,n,r,e,u,o,i,f){var c=2&n;if(!c&&typeof t!="function")throw new du("Expected a function");var a=e?e.length:0;if(a||(n&=-97,e=u=T),i=i===T?i:Vu(Ge(i),0),f=f===T?f:Ge(f),a-=u?u.length:0,64&n){var l=e,s=u;e=u=T}var h=c?T:mo(t);return o=[t,n,r,e,u,l,s,o,i,f],h&&(r=o[1],t=h[1],n=r|t,e=128==t&&8==r||128==t&&256==r&&h[8]>=o[7].length||384==t&&h[8]>=h[7].length&&8==r,131>n||e)&&(1&t&&(o[2]=h[2],
n|=1&r?0:4),(r=h[3])&&(e=o[3],o[3]=e?ir(e,r,h[4]):r,o[4]=e?D(o[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=o[5],o[5]=e?fr(e,r,h[6]):r,o[6]=e?D(o[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(o[7]=r),128&t&&(o[8]=null==o[8]?h[8]:Ku(o[8],h[8])),null==o[9]&&(o[9]=h[9]),o[0]=h[0],o[1]=n),t=o[0],n=o[1],r=o[2],e=o[3],u=o[4],f=o[9]=null==o[9]?c?0:t.length:Vu(o[9]-a,0),!f&&24&n&&(n&=-25),(h?jo:ko)(n&&1!=n?8==n||16==n?br(t,n,f):32!=n&&33!=n||u.length?jr.apply(T,o):kr(t,n,r,e):vr(t,n,r),o)}function Lr(t,n,r,e,u,o){
var i=2&u,f=t.length,c=n.length;if(f!=c&&!(i&&c>f))return false;if(c=o.get(t))return c==n;var c=-1,a=true,l=1&u?new $t:T;for(o.set(t,n);++c<f;){var s=t[c],h=n[c];if(e)var p=i?e(h,s,c,n,t,o):e(s,h,c,t,n,o);if(p!==T){if(p)continue;a=false;break}if(l){if(!_(n,function(t,n){return l.has(n)||s!==t&&!r(s,t,e,u,o)?void 0:l.add(n)})){a=false;break}}else if(s!==h&&!r(s,h,e,u,o)){a=false;break}}return o["delete"](t),a}function Mr(t,n,r,e,u,o,i){switch(r){case"[object DataView]":if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)break;
t=t.buffer,n=n.buffer;case"[object ArrayBuffer]":if(t.byteLength!=n.byteLength||!e(new Wu(t),new Wu(n)))break;return true;case"[object Boolean]":case"[object Date]":return+t==+n;case"[object Error]":return t.name==n.name&&t.message==n.message;case"[object Number]":return t!=+t?n!=+n:t==+n;case"[object RegExp]":case"[object String]":return t==n+"";case"[object Map]":var f=U;case"[object Set]":if(f||(f=F),t.size!=n.size&&!(2&o))break;return(r=i.get(t))?r==n:(o|=1,i.set(t,n),Lr(f(t),f(n),e,u,o,i));case"[object Symbol]":
if(_o)return _o.call(t)==_o.call(n)}return false}function Cr(t){for(var n=t.name+"",r=fo[n],e=wu.call(fo,n)?r.length:0;e--;){var u=r[e],o=u.func;if(null==o||o==t)return u.name}return n}function zr(t){return(wu.call(At,"placeholder")?At:t).placeholder}function Ur(){var t=At.iteratee||au,t=t===au?An:t;return arguments.length?t(arguments[0],arguments[1]):t}function Dr(t,n){var r=t.__data__,e=typeof n;return("string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==n:null===n)?r[typeof n=="string"?"string":"hash"]:r.map;
}function Fr(t){t=Ei(t);for(var n=t.length;n--;){var r=t[n][1];t[n][2]=r===r&&!Ue(r)}return t}function $r(t,n){var r=t[n];return Fe(r)?r:T}function Nr(t){return Mu(Object(t))}function Pr(t){return Ou.call(t)}function Zr(t,n,r){n=Qr(n,t)?[n]:nr(n);for(var e,u=-1,o=n.length;++u<o;){var i=ue(n[u]);if(!(e=null!=t&&r(t,i)))break;t=t[i]}return e?e:(o=t?t.length:0,!!o&&ze(o)&&Yr(i,o)&&(ai(t)||Ze(t)||Re(t)))}function Tr(t){var n=t.length,r=t.constructor(n);return n&&"string"==typeof t[0]&&wu.call(t,"index")&&(r.index=t.index,
r.input=t.input),r}function qr(t){return typeof t.constructor!="function"||te(t)?{}:en(Pu(Object(t)))}function Vr(r,e,u,o){var i=r.constructor;switch(e){case"[object ArrayBuffer]":return ur(r);case"[object Boolean]":case"[object Date]":return new i(+r);case"[object DataView]":return e=o?ur(r.buffer):r.buffer,new r.constructor(e,r.byteOffset,r.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":
case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return e=o?ur(r.buffer):r.buffer,new r.constructor(e,r.byteOffset,r.length);case"[object Map]":return e=o?u(U(r),true):U(r),h(e,t,new r.constructor);case"[object Number]":case"[object String]":return new i(r);case"[object RegExp]":return e=new r.constructor(r.source,_t.exec(r)),e.lastIndex=r.lastIndex,e;case"[object Set]":return e=o?u(F(r),true):F(r),h(e,n,new r.constructor);case"[object Symbol]":return _o?Object(_o.call(r)):{};
}}function Kr(t){var n=t?t.length:T;return ze(n)&&(ai(t)||Ze(t)||Re(t))?m(n,String):null}function Gr(t){return ai(t)||Re(t)}function Jr(t){return ai(t)&&!(2==t.length&&!Me(t[0]))}function Yr(t,n){return n=null==n?9007199254740991:n,!!n&&(typeof t=="number"||xt.test(t))&&t>-1&&0==t%1&&n>t}function Hr(t,n,r){if(!Ue(r))return false;var e=typeof n;return("number"==e?We(r)&&Yr(n,r.length):"string"==e&&n in r)?Se(r[n],t):false}function Qr(t,n){if(ai(t))return false;var r=typeof t;return"number"==r||"symbol"==r||"boolean"==r||null==t||Te(t)?true:ut.test(t)||!et.test(t)||null!=n&&t in Object(n);
}function Xr(t){var n=Cr(t),r=At[n];return typeof r=="function"&&n in zt.prototype?t===r?true:(n=mo(r),!!n&&t===n[0]):false}function te(t){var n=t&&t.constructor;return t===(typeof n=="function"&&n.prototype||bu)}function ne(t,n){return function(r){return null==r?false:r[t]===n&&(n!==T||t in Object(r))}}function re(t,n,r,e,u,o){return Ue(t)&&Ue(n)&&Rn(t,n,T,re,o.set(n,t)),t}function ee(t,n){return 1==n.length?t:_n(t,Pn(n,0,-1))}function ue(t){if(typeof t=="string"||Te(t))return t;var n=t+"";return"0"==n&&1/t==-q?"-0":n;
}function oe(t){if(null!=t){try{return ju.call(t)}catch(n){}return t+""}return""}function ie(t){if(t instanceof zt)return t.clone();var n=new kt(t.__wrapped__,t.__chain__);return n.__actions__=cr(t.__actions__),n.__index__=t.__index__,n.__values__=t.__values__,n}function fe(t,n,r){var e=t?t.length:0;return e?(n=r||n===T?1:Ge(n),Pn(t,0>n?0:n,e)):[]}function ce(t,n,r){var e=t?t.length:0;return e?(n=r||n===T?1:Ge(n),n=e-n,Pn(t,0,0>n?0:n)):[]}function ae(t){return t&&t.length?t[0]:T}function le(t){var n=t?t.length:0;
return n?t[n-1]:T}function se(t,n){return t&&t.length&&n&&n.length?Un(t,n):t}function he(t){return t?Hu.call(t):t}function pe(t){if(!t||!t.length)return[];var n=0;return t=f(t,function(t){return Be(t)?(n=Vu(t.length,n),true):void 0}),m(n,function(n){return l(t,Cn(n))})}function _e(t,n){if(!t||!t.length)return[];var e=pe(t);return null==n?e:l(e,function(t){return r(n,T,t)})}function ve(t){return t=At(t),t.__chain__=true,t}function ge(t,n){return n(t)}function de(){return this}function ye(t,n){return(ai(t)?u:go)(t,Ur(n,3));
}function be(t,n){return(ai(t)?o:yo)(t,Ur(n,3))}function xe(t,n){return(ai(t)?l:En)(t,Ur(n,3))}function je(t,n,r){var e=-1,u=Ve(t),o=u.length,i=o-1;for(n=(r?Hr(t,n,r):n===T)?1:tn(Ge(n),0,o);++e<n;)t=Fn(e,i),r=u[t],u[t]=u[e],u[e]=r;return u.length=n,u}function we(t,n,r){return n=r?T:n,n=t&&null==n?t.length:n,Br(t,128,T,T,T,T,n)}function me(t,n){var r;if(typeof n!="function")throw new du("Expected a function");return t=Ge(t),function(){return 0<--t&&(r=n.apply(this,arguments)),1>=t&&(n=T),r}}function Ae(t,n,r){
return n=r?T:n,t=Br(t,8,T,T,T,T,T,n),t.placeholder=Ae.placeholder,t}function Oe(t,n,r){return n=r?T:n,t=Br(t,16,T,T,T,T,T,n),t.placeholder=Oe.placeholder,t}function ke(t,n,r){function e(n){var r=c,e=a;return c=a=T,_=n,s=t.apply(e,r)}function u(t){var r=t-p;return t-=_,!p||r>=n||0>r||g&&t>=l}function o(){var t=Qo();if(u(t))return i(t);var r;r=t-_,t=n-(t-p),r=g?Ku(t,l-r):t,h=Du(o,r)}function i(t){return Bu(h),h=T,d&&c?e(t):(c=a=T,s)}function f(){var t=Qo(),r=u(t);if(c=arguments,a=this,p=t,r){if(h===T)return _=t=p,
h=Du(o,n),v?e(t):s;if(g)return Bu(h),h=Du(o,n),e(p)}return h===T&&(h=Du(o,n)),s}var c,a,l,s,h,p=0,_=0,v=false,g=false,d=true;if(typeof t!="function")throw new du("Expected a function");return n=Ye(n)||0,Ue(r)&&(v=!!r.leading,l=(g="maxWait"in r)?Vu(Ye(r.maxWait)||0,n):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==T&&Bu(h),p=_=0,c=a=h=T},f.flush=function(){return h===T?s:i(Qo())},f}function Ee(t,n){function r(){var e=arguments,u=n?n.apply(this,e):e[0],o=r.cache;return o.has(u)?o.get(u):(e=t.apply(this,e),
r.cache=o.set(u,e),e)}if(typeof t!="function"||n&&typeof n!="function")throw new du("Expected a function");return r.cache=new(Ee.Cache||Ft),r}function Ie(t,n){if(typeof t!="function")throw new du("Expected a function");return n=Vu(n===T?t.length-1:Ge(n),0),function(){for(var e=arguments,u=-1,o=Vu(e.length-n,0),i=Array(o);++u<o;)i[u]=e[n+u];switch(n){case 0:return t.call(this,i);case 1:return t.call(this,e[0],i);case 2:return t.call(this,e[0],e[1],i)}for(o=Array(n+1),u=-1;++u<n;)o[u]=e[u];return o[n]=i,
r(t,this,o)}}function Se(t,n){return t===n||t!==t&&n!==n}function Re(t){return Be(t)&&wu.call(t,"callee")&&(!Uu.call(t,"callee")||"[object Arguments]"==Ou.call(t))}function We(t){return null!=t&&ze(Ao(t))&&!Me(t)}function Be(t){return De(t)&&We(t)}function Le(t){return De(t)?"[object Error]"==Ou.call(t)||typeof t.message=="string"&&typeof t.name=="string":false}function Me(t){return t=Ue(t)?Ou.call(t):"","[object Function]"==t||"[object GeneratorFunction]"==t}function Ce(t){return typeof t=="number"&&t==Ge(t);
}function ze(t){return typeof t=="number"&&t>-1&&0==t%1&&9007199254740991>=t}function Ue(t){var n=typeof t;return!!t&&("object"==n||"function"==n)}function De(t){return!!t&&typeof t=="object"}function Fe(t){return Ue(t)?(Me(t)||C(t)?Eu:yt).test(oe(t)):false}function $e(t){return typeof t=="number"||De(t)&&"[object Number]"==Ou.call(t)}function Ne(t){return!De(t)||"[object Object]"!=Ou.call(t)||C(t)?false:(t=Pu(Object(t)),null===t?true:(t=wu.call(t,"constructor")&&t.constructor,typeof t=="function"&&t instanceof t&&ju.call(t)==Au));
}function Pe(t){return Ue(t)&&"[object RegExp]"==Ou.call(t)}function Ze(t){return typeof t=="string"||!ai(t)&&De(t)&&"[object String]"==Ou.call(t)}function Te(t){return typeof t=="symbol"||De(t)&&"[object Symbol]"==Ou.call(t)}function qe(t){return De(t)&&ze(t.length)&&!!Mt[Ou.call(t)]}function Ve(t){if(!t)return[];if(We(t))return Ze(t)?t.match(St):cr(t);if(Cu&&t[Cu])return z(t[Cu]());var n=Pr(t);return("[object Map]"==n?U:"[object Set]"==n?F:eu)(t)}function Ke(t){return t?(t=Ye(t),t===q||t===-q?1.7976931348623157e308*(0>t?-1:1):t===t?t:0):0===t?t:0;
}function Ge(t){t=Ke(t);var n=t%1;return t===t?n?t-n:t:0}function Je(t){return t?tn(Ge(t),0,4294967295):0}function Ye(t){if(typeof t=="number")return t;if(Te(t))return V;if(Ue(t)&&(t=Me(t.valueOf)?t.valueOf():t,t=Ue(t)?t+"":t),typeof t!="string")return 0===t?t:+t;t=t.replace(ct,"");var n=dt.test(t);return n||bt.test(t)?Pt(t.slice(2),n?2:8):gt.test(t)?V:+t}function He(t){return ar(t,ru(t))}function Qe(t){return null==t?"":Gn(t)}function Xe(t,n,r){return t=null==t?T:_n(t,n),t===T?r:t}function tu(t,n){
return null!=t&&Zr(t,n,yn)}function nu(t){var n=te(t);if(!n&&!We(t))return qu(Object(t));var r,e=Kr(t),u=!!e,e=e||[],o=e.length;for(r in t)!dn(t,r)||u&&("length"==r||Yr(r,o))||n&&"constructor"==r||e.push(r);return e}function ru(t){for(var n=-1,r=te(t),e=On(t),u=e.length,o=Kr(t),i=!!o,o=o||[],f=o.length;++n<u;){var c=e[n];i&&("length"==c||Yr(c,f))||"constructor"==c&&(r||!wu.call(t,c))||o.push(c)}return o}function eu(t){return t?k(t,nu(t)):[]}function uu(t){return zi(Qe(t).toLowerCase())}function ou(t){
return(t=Qe(t))&&t.replace(jt,W).replace(It,"")}function iu(t,n,r){return t=Qe(t),n=r?T:n,n===T&&(n=Bt.test(t)?Rt:st),t.match(n)||[]}function fu(t){return function(){return t}}function cu(t){return t}function au(t){return An(typeof t=="function"?t:nn(t,true))}function lu(t,n,r){var e=nu(n),o=pn(n,e);null!=r||Ue(n)&&(o.length||!e.length)||(r=n,n=t,t=this,o=pn(n,nu(n)));var i=!(Ue(r)&&"chain"in r&&!r.chain),f=Me(t);return u(o,function(r){var e=n[r];t[r]=e,f&&(t.prototype[r]=function(){var n=this.__chain__;
if(i||n){var r=t(this.__wrapped__);return(r.__actions__=cr(this.__actions__)).push({func:e,args:arguments,thisArg:t}),r.__chain__=n,r}return e.apply(t,s([this.value()],arguments))})}),t}function su(){}function hu(t){return Qr(t)?Cn(ue(t)):zn(t)}R=R?Yt.defaults({},R,Yt.pick(Jt,Lt)):Jt;var pu=R.Date,_u=R.Error,vu=R.Math,gu=R.RegExp,du=R.TypeError,yu=R.Array.prototype,bu=R.Object.prototype,xu=R.String.prototype,ju=R.Function.prototype.toString,wu=bu.hasOwnProperty,mu=0,Au=ju.call(Object),Ou=bu.toString,ku=Jt._,Eu=gu("^"+ju.call(wu).replace(it,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Iu=qt?R.Buffer:T,Su=R.Reflect,Ru=R.Symbol,Wu=R.Uint8Array,Bu=R.clearTimeout,Lu=Su?Su.f:T,Mu=Object.getOwnPropertySymbols,Cu=typeof(Cu=Ru&&Ru.iterator)=="symbol"?Cu:T,zu=Object.create,Uu=bu.propertyIsEnumerable,Du=R.setTimeout,Fu=yu.splice,$u=vu.ceil,Nu=vu.floor,Pu=Object.getPrototypeOf,Zu=R.isFinite,Tu=yu.join,qu=Object.keys,Vu=vu.max,Ku=vu.min,Gu=R.parseInt,Ju=vu.random,Yu=xu.replace,Hu=yu.reverse,Qu=xu.split,Xu=$r(R,"DataView"),to=$r(R,"Map"),no=$r(R,"Promise"),ro=$r(R,"Set"),eo=$r(R,"WeakMap"),uo=$r(Object,"create"),oo=eo&&new eo,io=!Uu.call({
valueOf:1},"valueOf"),fo={},co=oe(Xu),ao=oe(to),lo=oe(no),so=oe(ro),ho=oe(eo),po=Ru?Ru.prototype:T,_o=po?po.valueOf:T,vo=po?po.toString:T;At.templateSettings={escape:tt,evaluate:nt,interpolate:rt,variable:"",imports:{_:At}},At.prototype=Ot.prototype,At.prototype.constructor=At,kt.prototype=en(Ot.prototype),kt.prototype.constructor=kt,zt.prototype=en(Ot.prototype),zt.prototype.constructor=zt,Ut.prototype.clear=function(){this.__data__=uo?uo(null):{}},Ut.prototype["delete"]=function(t){return this.has(t)&&delete this.__data__[t];
},Ut.prototype.get=function(t){var n=this.__data__;return uo?(t=n[t],"__lodash_hash_undefined__"===t?T:t):wu.call(n,t)?n[t]:T},Ut.prototype.has=function(t){var n=this.__data__;return uo?n[t]!==T:wu.call(n,t)},Ut.prototype.set=function(t,n){return this.__data__[t]=uo&&n===T?"__lodash_hash_undefined__":n,this},Dt.prototype.clear=function(){this.__data__=[]},Dt.prototype["delete"]=function(t){var n=this.__data__;return t=Gt(n,t),0>t?false:(t==n.length-1?n.pop():Fu.call(n,t,1),true)},Dt.prototype.get=function(t){
var n=this.__data__;return t=Gt(n,t),0>t?T:n[t][1]},Dt.prototype.has=function(t){return-1<Gt(this.__data__,t)},Dt.prototype.set=function(t,n){var r=this.__data__,e=Gt(r,t);return 0>e?r.push([t,n]):r[e][1]=n,this},Ft.prototype.clear=function(){this.__data__={hash:new Ut,map:new(to||Dt),string:new Ut}},Ft.prototype["delete"]=function(t){return Dr(this,t)["delete"](t)},Ft.prototype.get=function(t){return Dr(this,t).get(t)},Ft.prototype.has=function(t){return Dr(this,t).has(t)},Ft.prototype.set=function(t,n){
return Dr(this,t).set(t,n),this},$t.prototype.add=$t.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},$t.prototype.has=function(t){return this.__data__.has(t)},Zt.prototype.clear=function(){this.__data__=new Dt},Zt.prototype["delete"]=function(t){return this.__data__["delete"](t)},Zt.prototype.get=function(t){return this.__data__.get(t)},Zt.prototype.has=function(t){return this.__data__.has(t)},Zt.prototype.set=function(t,n){var r=this.__data__;return r instanceof Dt&&200==r.__data__.length&&(r=this.__data__=new Ft(r.__data__)),
r.set(t,n),this};var go=pr(sn),yo=pr(hn,true),bo=_r(),xo=_r(true);Lu&&!Uu.call({valueOf:1},"valueOf")&&(On=function(t){return z(Lu(t))});var jo=oo?function(t,n){return oo.set(t,n),t}:cu,wo=ro&&1/F(new ro([,-0]))[1]==q?function(t){return new ro(t)}:su,mo=oo?function(t){return oo.get(t)}:su,Ao=Cn("length");Mu||(Nr=function(){return[]});var Oo=Mu?function(t){for(var n=[];t;)s(n,Nr(t)),t=Pu(Object(t));return n}:Nr;(Xu&&"[object DataView]"!=Pr(new Xu(new ArrayBuffer(1)))||to&&"[object Map]"!=Pr(new to)||no&&"[object Promise]"!=Pr(no.resolve())||ro&&"[object Set]"!=Pr(new ro)||eo&&"[object WeakMap]"!=Pr(new eo))&&(Pr=function(t){
var n=Ou.call(t);if(t=(t="[object Object]"==n?t.constructor:T)?oe(t):T)switch(t){case co:return"[object DataView]";case ao:return"[object Map]";case lo:return"[object Promise]";case so:return"[object Set]";case ho:return"[object WeakMap]"}return n});var ko=function(){var t=0,n=0;return function(r,e){var u=Qo(),o=16-(u-n);if(n=u,o>0){if(150<=++t)return r}else t=0;return jo(r,e)}}(),Eo=Ee(function(t){var n=[];return Qe(t).replace(ot,function(t,r,e,u){n.push(e?u.replace(ht,"$1"):r||t)}),n}),Io=Ie(function(t,n){
return Be(t)?on(t,ln(n,1,Be,true)):[]}),So=Ie(function(t,n){var r=le(n);return Be(r)&&(r=T),Be(t)?on(t,ln(n,1,Be,true),Ur(r)):[]}),Ro=Ie(function(t,n){var r=le(n);return Be(r)&&(r=T),Be(t)?on(t,ln(n,1,Be,true),T,r):[]}),Wo=Ie(function(t){var n=l(t,tr);return n.length&&n[0]===t[0]?bn(n):[]}),Bo=Ie(function(t){var n=le(t),r=l(t,tr);return n===le(r)?n=T:r.pop(),r.length&&r[0]===t[0]?bn(r,Ur(n)):[]}),Lo=Ie(function(t){var n=le(t),r=l(t,tr);return n===le(r)?n=T:r.pop(),r.length&&r[0]===t[0]?bn(r,T,n):[]}),Mo=Ie(se),Co=Ie(function(t,n){
n=ln(n,1);var r=t?t.length:0,e=Xt(t,n);return Dn(t,l(n,function(t){return Yr(t,r)?+t:t}).sort(or)),e}),zo=Ie(function(t){return Jn(ln(t,1,Be,true))}),Uo=Ie(function(t){var n=le(t);return Be(n)&&(n=T),Jn(ln(t,1,Be,true),Ur(n))}),Do=Ie(function(t){var n=le(t);return Be(n)&&(n=T),Jn(ln(t,1,Be,true),T,n)}),Fo=Ie(function(t,n){return Be(t)?on(t,n):[]}),$o=Ie(function(t){return Qn(f(t,Be))}),No=Ie(function(t){var n=le(t);return Be(n)&&(n=T),Qn(f(t,Be),Ur(n))}),Po=Ie(function(t){var n=le(t);return Be(n)&&(n=T),
Qn(f(t,Be),T,n)}),Zo=Ie(pe),To=Ie(function(t){var n=t.length,n=n>1?t[n-1]:T,n=typeof n=="function"?(t.pop(),n):T;return _e(t,n)}),qo=Ie(function(t){function n(n){return Xt(n,t)}t=ln(t,1);var r=t.length,e=r?t[0]:0,u=this.__wrapped__;return!(r>1||this.__actions__.length)&&u instanceof zt&&Yr(e)?(u=u.slice(e,+e+(r?1:0)),u.__actions__.push({func:ge,args:[n],thisArg:T}),new kt(u,this.__chain__).thru(function(t){return r&&!t.length&&t.push(T),t})):this.thru(n)}),Vo=sr(function(t,n,r){wu.call(t,r)?++t[r]:t[r]=1;
}),Ko=sr(function(t,n,r){wu.call(t,r)?t[r].push(n):t[r]=[n]}),Go=Ie(function(t,n,e){var u=-1,o=typeof n=="function",i=Qr(n),f=We(t)?Array(t.length):[];return go(t,function(t){var c=o?n:i&&null!=t?t[n]:T;f[++u]=c?r(c,t,e):jn(t,n,e)}),f}),Jo=sr(function(t,n,r){t[r]=n}),Yo=sr(function(t,n,r){t[r?0:1].push(n)},function(){return[[],[]]}),Ho=Ie(function(t,n){if(null==t)return[];var r=n.length;return r>1&&Hr(t,n[0],n[1])?n=[]:r>2&&Hr(n[0],n[1],n[2])&&(n=[n[0]]),n=1==n.length&&ai(n[0])?n[0]:ln(n,1,Jr),Bn(t,n,[]);
}),Qo=pu.now,Xo=Ie(function(t,n,r){var e=1;if(r.length)var u=D(r,zr(Xo)),e=32|e;return Br(t,e,n,r,u)}),ti=Ie(function(t,n,r){var e=3;if(r.length)var u=D(r,zr(ti)),e=32|e;return Br(n,e,t,r,u)}),ni=Ie(function(t,n){return un(t,1,n)}),ri=Ie(function(t,n,r){return un(t,Ye(n)||0,r)});Ee.Cache=Ft;var ei=Ie(function(t,n){n=1==n.length&&ai(n[0])?l(n[0],O(Ur())):l(ln(n,1,Jr),O(Ur()));var e=n.length;return Ie(function(u){for(var o=-1,i=Ku(u.length,e);++o<i;)u[o]=n[o].call(this,u[o]);return r(t,this,u)})}),ui=Ie(function(t,n){
var r=D(n,zr(ui));return Br(t,32,T,n,r)}),oi=Ie(function(t,n){var r=D(n,zr(oi));return Br(t,64,T,n,r)}),ii=Ie(function(t,n){return Br(t,256,T,T,T,ln(n,1))}),fi=Ir(gn),ci=Ir(function(t,n){return t>=n}),ai=Array.isArray,li=Iu?function(t){return t instanceof Iu}:fu(false),si=Ir(kn),hi=Ir(function(t,n){return n>=t}),pi=hr(function(t,n){if(io||te(n)||We(n))ar(n,nu(n),t);else for(var r in n)wu.call(n,r)&&Kt(t,r,n[r])}),_i=hr(function(t,n){if(io||te(n)||We(n))ar(n,ru(n),t);else for(var r in n)Kt(t,r,n[r])}),vi=hr(function(t,n,r,e){
ar(n,ru(n),t,e)}),gi=hr(function(t,n,r,e){ar(n,nu(n),t,e)}),di=Ie(function(t,n){return Xt(t,ln(n,1))}),yi=Ie(function(t){return t.push(T,Tt),r(vi,T,t)}),bi=Ie(function(t){return t.push(T,re),r(Ai,T,t)}),xi=wr(function(t,n,r){t[n]=r},fu(cu)),ji=wr(function(t,n,r){wu.call(t,n)?t[n].push(r):t[n]=[r]},Ur),wi=Ie(jn),mi=hr(function(t,n,r){Rn(t,n,r)}),Ai=hr(function(t,n,r,e){Rn(t,n,r,e)}),Oi=Ie(function(t,n){return null==t?{}:(n=l(ln(n,1),ue),Ln(t,on(vn(t,ru,Oo),n)))}),ki=Ie(function(t,n){return null==t?{}:Ln(t,l(ln(n,1),ue));
}),Ei=Wr(nu),Ii=Wr(ru),Si=dr(function(t,n,r){return n=n.toLowerCase(),t+(r?uu(n):n)}),Ri=dr(function(t,n,r){return t+(r?"-":"")+n.toLowerCase()}),Wi=dr(function(t,n,r){return t+(r?" ":"")+n.toLowerCase()}),Bi=gr("toLowerCase"),Li=dr(function(t,n,r){return t+(r?"_":"")+n.toLowerCase()}),Mi=dr(function(t,n,r){return t+(r?" ":"")+zi(n)}),Ci=dr(function(t,n,r){return t+(r?" ":"")+n.toUpperCase()}),zi=gr("toUpperCase"),Ui=Ie(function(t,n){try{return r(t,T,n)}catch(e){return Le(e)?e:new _u(e)}}),Di=Ie(function(t,n){
return u(ln(n,1),function(n){n=ue(n),t[n]=Xo(t[n],t)}),t}),Fi=xr(),$i=xr(true),Ni=Ie(function(t,n){return function(r){return jn(r,t,n)}}),Pi=Ie(function(t,n){return function(r){return jn(t,r,n)}}),Zi=Ar(l),Ti=Ar(i),qi=Ar(_),Vi=Er(),Ki=Er(true),Gi=mr(function(t,n){return t+n}),Ji=Rr("ceil"),Yi=mr(function(t,n){return t/n}),Hi=Rr("floor"),Qi=mr(function(t,n){return t*n}),Xi=Rr("round"),tf=mr(function(t,n){return t-n});return At.after=function(t,n){if(typeof n!="function")throw new du("Expected a function");
return t=Ge(t),function(){return 1>--t?n.apply(this,arguments):void 0}},At.ary=we,At.assign=pi,At.assignIn=_i,At.assignInWith=vi,At.assignWith=gi,At.at=di,At.before=me,At.bind=Xo,At.bindAll=Di,At.bindKey=ti,At.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return ai(t)?t:[t]},At.chain=ve,At.chunk=function(t,n,r){if(n=(r?Hr(t,n,r):n===T)?1:Vu(Ge(n),0),r=t?t.length:0,!r||1>n)return[];for(var e=0,u=0,o=Array($u(r/n));r>e;)o[u++]=Pn(t,e,e+=n);return o},At.compact=function(t){for(var n=-1,r=t?t.length:0,e=0,u=[];++n<r;){
var o=t[n];o&&(u[e++]=o)}return u},At.concat=function(){for(var t=arguments.length,n=Array(t?t-1:0),r=arguments[0],e=t;e--;)n[e-1]=arguments[e];return t?s(ai(r)?cr(r):[r],ln(n,1)):[]},At.cond=function(t){var n=t?t.length:0,e=Ur();return t=n?l(t,function(t){if("function"!=typeof t[1])throw new du("Expected a function");return[e(t[0]),t[1]]}):[],Ie(function(e){for(var u=-1;++u<n;){var o=t[u];if(r(o[0],this,e))return r(o[1],this,e)}})},At.conforms=function(t){return rn(nn(t,true))},At.constant=fu,At.countBy=Vo,
At.create=function(t,n){var r=en(t);return n?Qt(r,n):r},At.curry=Ae,At.curryRight=Oe,At.debounce=ke,At.defaults=yi,At.defaultsDeep=bi,At.defer=ni,At.delay=ri,At.difference=Io,At.differenceBy=So,At.differenceWith=Ro,At.drop=fe,At.dropRight=ce,At.dropRightWhile=function(t,n){return t&&t.length?Yn(t,Ur(n,3),true,true):[]},At.dropWhile=function(t,n){return t&&t.length?Yn(t,Ur(n,3),true):[]},At.fill=function(t,n,r,e){var u=t?t.length:0;if(!u)return[];for(r&&typeof r!="number"&&Hr(t,n,r)&&(r=0,e=u),u=t.length,
r=Ge(r),0>r&&(r=-r>u?0:u+r),e=e===T||e>u?u:Ge(e),0>e&&(e+=u),e=r>e?0:Je(e);e>r;)t[r++]=n;return t},At.filter=function(t,n){return(ai(t)?f:an)(t,Ur(n,3))},At.flatMap=function(t,n){return ln(xe(t,n),1)},At.flatMapDeep=function(t,n){return ln(xe(t,n),q)},At.flatMapDepth=function(t,n,r){return r=r===T?1:Ge(r),ln(xe(t,n),r)},At.flatten=function(t){return t&&t.length?ln(t,1):[]},At.flattenDeep=function(t){return t&&t.length?ln(t,q):[]},At.flattenDepth=function(t,n){return t&&t.length?(n=n===T?1:Ge(n),ln(t,n)):[];
},At.flip=function(t){return Br(t,512)},At.flow=Fi,At.flowRight=$i,At.fromPairs=function(t){for(var n=-1,r=t?t.length:0,e={};++n<r;){var u=t[n];e[u[0]]=u[1]}return e},At.functions=function(t){return null==t?[]:pn(t,nu(t))},At.functionsIn=function(t){return null==t?[]:pn(t,ru(t))},At.groupBy=Ko,At.initial=function(t){return ce(t,1)},At.intersection=Wo,At.intersectionBy=Bo,At.intersectionWith=Lo,At.invert=xi,At.invertBy=ji,At.invokeMap=Go,At.iteratee=au,At.keyBy=Jo,At.keys=nu,At.keysIn=ru,At.map=xe,
At.mapKeys=function(t,n){var r={};return n=Ur(n,3),sn(t,function(t,e,u){r[n(t,e,u)]=t}),r},At.mapValues=function(t,n){var r={};return n=Ur(n,3),sn(t,function(t,e,u){r[e]=n(t,e,u)}),r},At.matches=function(t){return In(nn(t,true))},At.matchesProperty=function(t,n){return Sn(t,nn(n,true))},At.memoize=Ee,At.merge=mi,At.mergeWith=Ai,At.method=Ni,At.methodOf=Pi,At.mixin=lu,At.negate=function(t){if(typeof t!="function")throw new du("Expected a function");return function(){return!t.apply(this,arguments)}},At.nthArg=function(t){
return t=Ge(t),Ie(function(n){return Wn(n,t)})},At.omit=Oi,At.omitBy=function(t,n){return n=Ur(n),Mn(t,function(t,r){return!n(t,r)})},At.once=function(t){return me(2,t)},At.orderBy=function(t,n,r,e){return null==t?[]:(ai(n)||(n=null==n?[]:[n]),r=e?T:r,ai(r)||(r=null==r?[]:[r]),Bn(t,n,r))},At.over=Zi,At.overArgs=ei,At.overEvery=Ti,At.overSome=qi,At.partial=ui,At.partialRight=oi,At.partition=Yo,At.pick=ki,At.pickBy=function(t,n){return null==t?{}:Mn(t,Ur(n))},At.property=hu,At.propertyOf=function(t){
return function(n){return null==t?T:_n(t,n)}},At.pull=Mo,At.pullAll=se,At.pullAllBy=function(t,n,r){return t&&t.length&&n&&n.length?Un(t,n,Ur(r)):t},At.pullAllWith=function(t,n,r){return t&&t.length&&n&&n.length?Un(t,n,T,r):t},At.pullAt=Co,At.range=Vi,At.rangeRight=Ki,At.rearg=ii,At.reject=function(t,n){var r=ai(t)?f:an;return n=Ur(n,3),r(t,function(t,r,e){return!n(t,r,e)})},At.remove=function(t,n){var r=[];if(!t||!t.length)return r;var e=-1,u=[],o=t.length;for(n=Ur(n,3);++e<o;){var i=t[e];n(i,e,t)&&(r.push(i),
u.push(e))}return Dn(t,u),r},At.rest=Ie,At.reverse=he,At.sampleSize=je,At.set=function(t,n,r){return null==t?t:Nn(t,n,r)},At.setWith=function(t,n,r,e){return e=typeof e=="function"?e:T,null==t?t:Nn(t,n,r,e)},At.shuffle=function(t){return je(t,4294967295)},At.slice=function(t,n,r){var e=t?t.length:0;return e?(r&&typeof r!="number"&&Hr(t,n,r)?(n=0,r=e):(n=null==n?0:Ge(n),r=r===T?e:Ge(r)),Pn(t,n,r)):[]},At.sortBy=Ho,At.sortedUniq=function(t){return t&&t.length?Vn(t):[]},At.sortedUniqBy=function(t,n){
return t&&t.length?Vn(t,Ur(n)):[]},At.split=function(t,n,r){return r&&typeof r!="number"&&Hr(t,n,r)&&(n=r=T),r=r===T?4294967295:r>>>0,r?(t=Qe(t))&&(typeof n=="string"||null!=n&&!Pe(n))&&(n=Gn(n),""==n&&Wt.test(t))?rr(t.match(St),0,r):Qu.call(t,n,r):[]},At.spread=function(t,n){if(typeof t!="function")throw new du("Expected a function");return n=n===T?0:Vu(Ge(n),0),Ie(function(e){var u=e[n];return e=rr(e,0,n),u&&s(e,u),r(t,this,e)})},At.tail=function(t){return fe(t,1)},At.take=function(t,n,r){return t&&t.length?(n=r||n===T?1:Ge(n),
Pn(t,0,0>n?0:n)):[]},At.takeRight=function(t,n,r){var e=t?t.length:0;return e?(n=r||n===T?1:Ge(n),n=e-n,Pn(t,0>n?0:n,e)):[]},At.takeRightWhile=function(t,n){return t&&t.length?Yn(t,Ur(n,3),false,true):[]},At.takeWhile=function(t,n){return t&&t.length?Yn(t,Ur(n,3)):[]},At.tap=function(t,n){return n(t),t},At.throttle=function(t,n,r){var e=true,u=true;if(typeof t!="function")throw new du("Expected a function");return Ue(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),ke(t,n,{leading:e,maxWait:n,
trailing:u})},At.thru=ge,At.toArray=Ve,At.toPairs=Ei,At.toPairsIn=Ii,At.toPath=function(t){return ai(t)?l(t,ue):Te(t)?[t]:cr(Eo(t))},At.toPlainObject=He,At.transform=function(t,n,r){var e=ai(t)||qe(t);if(n=Ur(n,4),null==r)if(e||Ue(t)){var o=t.constructor;r=e?ai(t)?new o:[]:Me(o)?en(Pu(Object(t))):{}}else r={};return(e?u:sn)(t,function(t,e,u){return n(r,t,e,u)}),r},At.unary=function(t){return we(t,1)},At.union=zo,At.unionBy=Uo,At.unionWith=Do,At.uniq=function(t){return t&&t.length?Jn(t):[]},At.uniqBy=function(t,n){
return t&&t.length?Jn(t,Ur(n)):[]},At.uniqWith=function(t,n){return t&&t.length?Jn(t,T,n):[]},At.unset=function(t,n){var r;if(null==t)r=true;else{r=t;var e=n,e=Qr(e,r)?[e]:nr(e);r=ee(r,e),e=ue(le(e)),r=!(null!=r&&dn(r,e))||delete r[e]}return r},At.unzip=pe,At.unzipWith=_e,At.update=function(t,n,r){return null==t?t:Nn(t,n,(typeof r=="function"?r:cu)(_n(t,n)),void 0)},At.updateWith=function(t,n,r,e){return e=typeof e=="function"?e:T,null!=t&&(t=Nn(t,n,(typeof r=="function"?r:cu)(_n(t,n)),e)),t},At.values=eu,
At.valuesIn=function(t){return null==t?[]:k(t,ru(t))},At.without=Fo,At.words=iu,At.wrap=function(t,n){return n=null==n?cu:n,ui(n,t)},At.xor=$o,At.xorBy=No,At.xorWith=Po,At.zip=Zo,At.zipObject=function(t,n){return Xn(t||[],n||[],Kt)},At.zipObjectDeep=function(t,n){return Xn(t||[],n||[],Nn)},At.zipWith=To,At.entries=Ei,At.entriesIn=Ii,At.extend=_i,At.extendWith=vi,lu(At,At),At.add=Gi,At.attempt=Ui,At.camelCase=Si,At.capitalize=uu,At.ceil=Ji,At.clamp=function(t,n,r){return r===T&&(r=n,n=T),r!==T&&(r=Ye(r),
r=r===r?r:0),n!==T&&(n=Ye(n),n=n===n?n:0),tn(Ye(t),n,r)},At.clone=function(t){return nn(t,false,true)},At.cloneDeep=function(t){return nn(t,true,true)},At.cloneDeepWith=function(t,n){return nn(t,true,true,n)},At.cloneWith=function(t,n){return nn(t,false,true,n)},At.deburr=ou,At.divide=Yi,At.endsWith=function(t,n,r){t=Qe(t),n=Gn(n);var e=t.length;return r=r===T?e:tn(Ge(r),0,e),r-=n.length,r>=0&&t.indexOf(n,r)==r},At.eq=Se,At.escape=function(t){return(t=Qe(t))&&X.test(t)?t.replace(H,B):t},At.escapeRegExp=function(t){
return(t=Qe(t))&&ft.test(t)?t.replace(it,"\\$&"):t},At.every=function(t,n,r){var e=ai(t)?i:fn;return r&&Hr(t,n,r)&&(n=T),e(t,Ur(n,3))},At.find=function(t,n){if(n=Ur(n,3),ai(t)){var r=g(t,n);return r>-1?t[r]:T}return v(t,n,go)},At.findIndex=function(t,n){return t&&t.length?g(t,Ur(n,3)):-1},At.findKey=function(t,n){return v(t,Ur(n,3),sn,true)},At.findLast=function(t,n){if(n=Ur(n,3),ai(t)){var r=g(t,n,true);return r>-1?t[r]:T}return v(t,n,yo)},At.findLastIndex=function(t,n){return t&&t.length?g(t,Ur(n,3),true):-1;
},At.findLastKey=function(t,n){return v(t,Ur(n,3),hn,true)},At.floor=Hi,At.forEach=ye,At.forEachRight=be,At.forIn=function(t,n){return null==t?t:bo(t,Ur(n,3),ru)},At.forInRight=function(t,n){return null==t?t:xo(t,Ur(n,3),ru)},At.forOwn=function(t,n){return t&&sn(t,Ur(n,3))},At.forOwnRight=function(t,n){return t&&hn(t,Ur(n,3))},At.get=Xe,At.gt=fi,At.gte=ci,At.has=function(t,n){return null!=t&&Zr(t,n,dn)},At.hasIn=tu,At.head=ae,At.identity=cu,At.includes=function(t,n,r,e){return t=We(t)?t:eu(t),r=r&&!e?Ge(r):0,
e=t.length,0>r&&(r=Vu(e+r,0)),Ze(t)?e>=r&&-1<t.indexOf(n,r):!!e&&-1<d(t,n,r)},At.indexOf=function(t,n,r){var e=t?t.length:0;return e?(r=Ge(r),0>r&&(r=Vu(e+r,0)),d(t,n,r)):-1},At.inRange=function(t,n,r){return n=Ye(n)||0,r===T?(r=n,n=0):r=Ye(r)||0,t=Ye(t),t>=Ku(n,r)&&t<Vu(n,r)},At.invoke=wi,At.isArguments=Re,At.isArray=ai,At.isArrayBuffer=function(t){return De(t)&&"[object ArrayBuffer]"==Ou.call(t)},At.isArrayLike=We,At.isArrayLikeObject=Be,At.isBoolean=function(t){return true===t||false===t||De(t)&&"[object Boolean]"==Ou.call(t);
},At.isBuffer=li,At.isDate=function(t){return De(t)&&"[object Date]"==Ou.call(t)},At.isElement=function(t){return!!t&&1===t.nodeType&&De(t)&&!Ne(t)},At.isEmpty=function(t){if(We(t)&&(ai(t)||Ze(t)||Me(t.splice)||Re(t)||li(t)))return!t.length;if(De(t)){var n=Pr(t);if("[object Map]"==n||"[object Set]"==n)return!t.size}for(var r in t)if(wu.call(t,r))return false;return!(io&&nu(t).length)},At.isEqual=function(t,n){return wn(t,n)},At.isEqualWith=function(t,n,r){var e=(r=typeof r=="function"?r:T)?r(t,n):T;return e===T?wn(t,n,r):!!e;
},At.isError=Le,At.isFinite=function(t){return typeof t=="number"&&Zu(t)},At.isFunction=Me,At.isInteger=Ce,At.isLength=ze,At.isMap=function(t){return De(t)&&"[object Map]"==Pr(t)},At.isMatch=function(t,n){return t===n||mn(t,n,Fr(n))},At.isMatchWith=function(t,n,r){return r=typeof r=="function"?r:T,mn(t,n,Fr(n),r)},At.isNaN=function(t){return $e(t)&&t!=+t},At.isNative=Fe,At.isNil=function(t){return null==t},At.isNull=function(t){return null===t},At.isNumber=$e,At.isObject=Ue,At.isObjectLike=De,At.isPlainObject=Ne,
At.isRegExp=Pe,At.isSafeInteger=function(t){return Ce(t)&&t>=-9007199254740991&&9007199254740991>=t},At.isSet=function(t){return De(t)&&"[object Set]"==Pr(t)},At.isString=Ze,At.isSymbol=Te,At.isTypedArray=qe,At.isUndefined=function(t){return t===T},At.isWeakMap=function(t){return De(t)&&"[object WeakMap]"==Pr(t)},At.isWeakSet=function(t){return De(t)&&"[object WeakSet]"==Ou.call(t)},At.join=function(t,n){return t?Tu.call(t,n):""},At.kebabCase=Ri,At.last=le,At.lastIndexOf=function(t,n,r){var e=t?t.length:0;
if(!e)return-1;var u=e;if(r!==T&&(u=Ge(r),u=(0>u?Vu(e+u,0):Ku(u,e-1))+1),n!==n)return M(t,u,true);for(;u--;)if(t[u]===n)return u;return-1},At.lowerCase=Wi,At.lowerFirst=Bi,At.lt=si,At.lte=hi,At.max=function(t){return t&&t.length?cn(t,cu,gn):T},At.maxBy=function(t,n){return t&&t.length?cn(t,Ur(n),gn):T},At.mean=function(t){return b(t,cu)},At.meanBy=function(t,n){return b(t,Ur(n))},At.min=function(t){return t&&t.length?cn(t,cu,kn):T},At.minBy=function(t,n){return t&&t.length?cn(t,Ur(n),kn):T},At.multiply=Qi,
At.nth=function(t,n){return t&&t.length?Wn(t,Ge(n)):T},At.noConflict=function(){return Jt._===this&&(Jt._=ku),this},At.noop=su,At.now=Qo,At.pad=function(t,n,r){t=Qe(t);var e=(n=Ge(n))?N(t):0;return!n||e>=n?t:(n=(n-e)/2,Or(Nu(n),r)+t+Or($u(n),r))},At.padEnd=function(t,n,r){t=Qe(t);var e=(n=Ge(n))?N(t):0;return n&&n>e?t+Or(n-e,r):t},At.padStart=function(t,n,r){t=Qe(t);var e=(n=Ge(n))?N(t):0;return n&&n>e?Or(n-e,r)+t:t},At.parseInt=function(t,n,r){return r||null==n?n=0:n&&(n=+n),t=Qe(t).replace(ct,""),
Gu(t,n||(vt.test(t)?16:10))},At.random=function(t,n,r){if(r&&typeof r!="boolean"&&Hr(t,n,r)&&(n=r=T),r===T&&(typeof n=="boolean"?(r=n,n=T):typeof t=="boolean"&&(r=t,t=T)),t===T&&n===T?(t=0,n=1):(t=Ye(t)||0,n===T?(n=t,t=0):n=Ye(n)||0),t>n){var e=t;t=n,n=e}return r||t%1||n%1?(r=Ju(),Ku(t+r*(n-t+Nt("1e-"+((r+"").length-1))),n)):Fn(t,n)},At.reduce=function(t,n,r){var e=ai(t)?h:x,u=3>arguments.length;return e(t,Ur(n,4),r,u,go)},At.reduceRight=function(t,n,r){var e=ai(t)?p:x,u=3>arguments.length;return e(t,Ur(n,4),r,u,yo);
},At.repeat=function(t,n,r){return n=(r?Hr(t,n,r):n===T)?1:Ge(n),$n(Qe(t),n)},At.replace=function(){var t=arguments,n=Qe(t[0]);return 3>t.length?n:Yu.call(n,t[1],t[2])},At.result=function(t,n,r){n=Qr(n,t)?[n]:nr(n);var e=-1,u=n.length;for(u||(t=T,u=1);++e<u;){var o=null==t?T:t[ue(n[e])];o===T&&(e=u,o=r),t=Me(o)?o.call(t):o}return t},At.round=Xi,At.runInContext=Z,At.sample=function(t){t=We(t)?t:eu(t);var n=t.length;return n>0?t[Fn(0,n-1)]:T},At.size=function(t){if(null==t)return 0;if(We(t)){var n=t.length;
return n&&Ze(t)?N(t):n}return De(t)&&(n=Pr(t),"[object Map]"==n||"[object Set]"==n)?t.size:nu(t).length},At.snakeCase=Li,At.some=function(t,n,r){var e=ai(t)?_:Zn;return r&&Hr(t,n,r)&&(n=T),e(t,Ur(n,3))},At.sortedIndex=function(t,n){return Tn(t,n)},At.sortedIndexBy=function(t,n,r){return qn(t,n,Ur(r))},At.sortedIndexOf=function(t,n){var r=t?t.length:0;if(r){var e=Tn(t,n);if(r>e&&Se(t[e],n))return e}return-1},At.sortedLastIndex=function(t,n){return Tn(t,n,true)},At.sortedLastIndexBy=function(t,n,r){return qn(t,n,Ur(r),true);
},At.sortedLastIndexOf=function(t,n){if(t&&t.length){var r=Tn(t,n,true)-1;if(Se(t[r],n))return r}return-1},At.startCase=Mi,At.startsWith=function(t,n,r){return t=Qe(t),r=tn(Ge(r),0,t.length),t.lastIndexOf(Gn(n),r)==r},At.subtract=tf,At.sum=function(t){return t&&t.length?w(t,cu):0},At.sumBy=function(t,n){return t&&t.length?w(t,Ur(n)):0},At.template=function(t,n,r){var e=At.templateSettings;r&&Hr(t,n,r)&&(n=T),t=Qe(t),n=vi({},n,e,Tt),r=vi({},n.imports,e.imports,Tt);var u,o,i=nu(r),f=k(r,i),c=0;r=n.interpolate||wt;
var a="__p+='";r=gu((n.escape||wt).source+"|"+r.source+"|"+(r===rt?pt:wt).source+"|"+(n.evaluate||wt).source+"|$","g");var l="sourceURL"in n?"//# sourceURL="+n.sourceURL+"\n":"";if(t.replace(r,function(n,r,e,i,f,l){return e||(e=i),a+=t.slice(c,l).replace(mt,L),r&&(u=true,a+="'+__e("+r+")+'"),f&&(o=true,a+="';"+f+";\n__p+='"),e&&(a+="'+((__t=("+e+"))==null?'':__t)+'"),c=l+n.length,n}),a+="';",(n=n.variable)||(a="with(obj){"+a+"}"),a=(o?a.replace(K,""):a).replace(G,"$1").replace(J,"$1;"),a="function("+(n||"obj")+"){"+(n?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+a+"return __p}",
n=Ui(function(){return Function(i,l+"return "+a).apply(T,f)}),n.source=a,Le(n))throw n;return n},At.times=function(t,n){if(t=Ge(t),1>t||t>9007199254740991)return[];var r=4294967295,e=Ku(t,4294967295);for(n=Ur(n),t-=4294967295,e=m(e,n);++r<t;)n(r);return e},At.toFinite=Ke,At.toInteger=Ge,At.toLength=Je,At.toLower=function(t){return Qe(t).toLowerCase()},At.toNumber=Ye,At.toSafeInteger=function(t){return tn(Ge(t),-9007199254740991,9007199254740991)},At.toString=Qe,At.toUpper=function(t){return Qe(t).toUpperCase();
},At.trim=function(t,n,r){return(t=Qe(t))&&(r||n===T)?t.replace(ct,""):t&&(n=Gn(n))?(t=t.match(St),n=n.match(St),rr(t,I(t,n),S(t,n)+1).join("")):t},At.trimEnd=function(t,n,r){return(t=Qe(t))&&(r||n===T)?t.replace(lt,""):t&&(n=Gn(n))?(t=t.match(St),n=S(t,n.match(St))+1,rr(t,0,n).join("")):t},At.trimStart=function(t,n,r){return(t=Qe(t))&&(r||n===T)?t.replace(at,""):t&&(n=Gn(n))?(t=t.match(St),n=I(t,n.match(St)),rr(t,n).join("")):t},At.truncate=function(t,n){var r=30,e="...";if(Ue(n))var u="separator"in n?n.separator:u,r="length"in n?Ge(n.length):r,e="omission"in n?Gn(n.omission):e;
t=Qe(t);var o=t.length;if(Wt.test(t))var i=t.match(St),o=i.length;if(r>=o)return t;if(o=r-N(e),1>o)return e;if(r=i?rr(i,0,o).join(""):t.slice(0,o),u===T)return r+e;if(i&&(o+=r.length-o),Pe(u)){if(t.slice(o).search(u)){var f=r;for(u.global||(u=gu(u.source,Qe(_t.exec(u))+"g")),u.lastIndex=0;i=u.exec(f);)var c=i.index;r=r.slice(0,c===T?o:c)}}else t.indexOf(Gn(u),o)!=o&&(u=r.lastIndexOf(u),u>-1&&(r=r.slice(0,u)));return r+e},At.unescape=function(t){return(t=Qe(t))&&Q.test(t)?t.replace(Y,P):t},At.uniqueId=function(t){
var n=++mu;return Qe(t)+n},At.upperCase=Ci,At.upperFirst=zi,At.each=ye,At.eachRight=be,At.first=ae,lu(At,function(){var t={};return sn(At,function(n,r){wu.call(At.prototype,r)||(t[r]=n)}),t}(),{chain:false}),At.VERSION="4.12.0",u("bind bindKey curry curryRight partial partialRight".split(" "),function(t){At[t].placeholder=At}),u(["drop","take"],function(t,n){zt.prototype[t]=function(r){var e=this.__filtered__;if(e&&!n)return new zt(this);r=r===T?1:Vu(Ge(r),0);var u=this.clone();return e?u.__takeCount__=Ku(r,u.__takeCount__):u.__views__.push({
size:Ku(r,4294967295),type:t+(0>u.__dir__?"Right":"")}),u},zt.prototype[t+"Right"]=function(n){return this.reverse()[t](n).reverse()}}),u(["filter","map","takeWhile"],function(t,n){var r=n+1,e=1==r||3==r;zt.prototype[t]=function(t){var n=this.clone();return n.__iteratees__.push({iteratee:Ur(t,3),type:r}),n.__filtered__=n.__filtered__||e,n}}),u(["head","last"],function(t,n){var r="take"+(n?"Right":"");zt.prototype[t]=function(){return this[r](1).value()[0]}}),u(["initial","tail"],function(t,n){var r="drop"+(n?"":"Right");
zt.prototype[t]=function(){return this.__filtered__?new zt(this):this[r](1)}}),zt.prototype.compact=function(){return this.filter(cu)},zt.prototype.find=function(t){return this.filter(t).head()},zt.prototype.findLast=function(t){return this.reverse().find(t)},zt.prototype.invokeMap=Ie(function(t,n){return typeof t=="function"?new zt(this):this.map(function(r){return jn(r,t,n)})}),zt.prototype.reject=function(t){return t=Ur(t,3),this.filter(function(n){return!t(n)})},zt.prototype.slice=function(t,n){
t=Ge(t);var r=this;return r.__filtered__&&(t>0||0>n)?new zt(r):(0>t?r=r.takeRight(-t):t&&(r=r.drop(t)),n!==T&&(n=Ge(n),r=0>n?r.dropRight(-n):r.take(n-t)),r)},zt.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},zt.prototype.toArray=function(){return this.take(4294967295)},sn(zt.prototype,function(t,n){var r=/^(?:filter|find|map|reject)|While$/.test(n),e=/^(?:head|last)$/.test(n),u=At[e?"take"+("last"==n?"Right":""):n],o=e||/^find/.test(n);u&&(At.prototype[n]=function(){
function n(t){return t=u.apply(At,s([t],f)),e&&h?t[0]:t}var i=this.__wrapped__,f=e?[1]:arguments,c=i instanceof zt,a=f[0],l=c||ai(i);l&&r&&typeof a=="function"&&1!=a.length&&(c=l=false);var h=this.__chain__,p=!!this.__actions__.length,a=o&&!h,c=c&&!p;return!o&&l?(i=c?i:new zt(this),i=t.apply(i,f),i.__actions__.push({func:ge,args:[n],thisArg:T}),new kt(i,h)):a&&c?t.apply(this,f):(i=this.thru(n),a?e?i.value()[0]:i.value():i)})}),u("pop push shift sort splice unshift".split(" "),function(t){var n=yu[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",e=/^(?:pop|shift)$/.test(t);
At.prototype[t]=function(){var t=arguments;if(e&&!this.__chain__){var u=this.value();return n.apply(ai(u)?u:[],t)}return this[r](function(r){return n.apply(ai(r)?r:[],t)})}}),sn(zt.prototype,function(t,n){var r=At[n];if(r){var e=r.name+"";(fo[e]||(fo[e]=[])).push({name:n,func:r})}}),fo[jr(T,2).name]=[{name:"wrapper",func:T}],zt.prototype.clone=function(){var t=new zt(this.__wrapped__);return t.__actions__=cr(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=cr(this.__iteratees__),
t.__takeCount__=this.__takeCount__,t.__views__=cr(this.__views__),t},zt.prototype.reverse=function(){if(this.__filtered__){var t=new zt(this);t.__dir__=-1,t.__filtered__=true}else t=this.clone(),t.__dir__*=-1;return t},zt.prototype.value=function(){var t,n=this.__wrapped__.value(),r=this.__dir__,e=ai(n),u=0>r,o=e?n.length:0;t=o;for(var i=this.__views__,f=0,c=-1,a=i.length;++c<a;){var l=i[c],s=l.size;switch(l.type){case"drop":f+=s;break;case"dropRight":t-=s;break;case"take":t=Ku(t,f+s);break;case"takeRight":
f=Vu(f,t-s)}}if(t={start:f,end:t},i=t.start,f=t.end,t=f-i,u=u?f:i-1,i=this.__iteratees__,f=i.length,c=0,a=Ku(t,this.__takeCount__),!e||200>o||o==t&&a==t)return Hn(n,this.__actions__);e=[];t:for(;t--&&a>c;){for(u+=r,o=-1,l=n[u];++o<f;){var h=i[o],s=h.type,h=(0,h.iteratee)(l);if(2==s)l=h;else if(!h){if(1==s)continue t;break t}}e[c++]=l}return e},At.prototype.at=qo,At.prototype.chain=function(){return ve(this)},At.prototype.commit=function(){return new kt(this.value(),this.__chain__)},At.prototype.next=function(){
this.__values__===T&&(this.__values__=Ve(this.value()));var t=this.__index__>=this.__values__.length,n=t?T:this.__values__[this.__index__++];return{done:t,value:n}},At.prototype.plant=function(t){for(var n,r=this;r instanceof Ot;){var e=ie(r);e.__index__=0,e.__values__=T,n?u.__wrapped__=e:n=e;var u=e,r=r.__wrapped__}return u.__wrapped__=t,n},At.prototype.reverse=function(){var t=this.__wrapped__;return t instanceof zt?(this.__actions__.length&&(t=new zt(this)),t=t.reverse(),t.__actions__.push({func:ge,
args:[he],thisArg:T}),new kt(t,this.__chain__)):this.thru(he)},At.prototype.toJSON=At.prototype.valueOf=At.prototype.value=function(){return Hn(this.__wrapped__,this.__actions__)},Cu&&(At.prototype[Cu]=de),At}var T,q=1/0,V=NaN,K=/\b__p\+='';/g,G=/\b(__p\+=)''\+/g,J=/(__e\(.*?\)|\b__t\))\+'';/g,Y=/&(?:amp|lt|gt|quot|#39|#96);/g,H=/[&<>"'`]/g,Q=RegExp(Y.source),X=RegExp(H.source),tt=/<%-([\s\S]+?)%>/g,nt=/<%([\s\S]+?)%>/g,rt=/<%=([\s\S]+?)%>/g,et=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ut=/^\w*$/,ot=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g,it=/[\\^$.*+?()[\]{}|]/g,ft=RegExp(it.source),ct=/^\s+|\s+$/g,at=/^\s+/,lt=/\s+$/,st=/[a-zA-Z0-9]+/g,ht=/\\(\\)?/g,pt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,_t=/\w*$/,vt=/^0x/i,gt=/^[-+]0x[0-9a-f]+$/i,dt=/^0b[01]+$/i,yt=/^\[object .+?Constructor\]$/,bt=/^0o[0-7]+$/i,xt=/^(?:0|[1-9]\d*)$/,jt=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,wt=/($^)/,mt=/['\n\r\u2028\u2029\\]/g,At="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?)*",Ot="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+At,kt="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]?|[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",Et=RegExp("['\u2019]","g"),It=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]","g"),St=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+kt+At,"g"),Rt=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d+",Ot].join("|"),"g"),Wt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),Bt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Lt="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise Reflect RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Mt={};
Mt["[object Float32Array]"]=Mt["[object Float64Array]"]=Mt["[object Int8Array]"]=Mt["[object Int16Array]"]=Mt["[object Int32Array]"]=Mt["[object Uint8Array]"]=Mt["[object Uint8ClampedArray]"]=Mt["[object Uint16Array]"]=Mt["[object Uint32Array]"]=true,Mt["[object Arguments]"]=Mt["[object Array]"]=Mt["[object ArrayBuffer]"]=Mt["[object Boolean]"]=Mt["[object DataView]"]=Mt["[object Date]"]=Mt["[object Error]"]=Mt["[object Function]"]=Mt["[object Map]"]=Mt["[object Number]"]=Mt["[object Object]"]=Mt["[object RegExp]"]=Mt["[object Set]"]=Mt["[object String]"]=Mt["[object WeakMap]"]=false;
var Ct={};Ct["[object Arguments]"]=Ct["[object Array]"]=Ct["[object ArrayBuffer]"]=Ct["[object DataView]"]=Ct["[object Boolean]"]=Ct["[object Date]"]=Ct["[object Float32Array]"]=Ct["[object Float64Array]"]=Ct["[object Int8Array]"]=Ct["[object Int16Array]"]=Ct["[object Int32Array]"]=Ct["[object Map]"]=Ct["[object Number]"]=Ct["[object Object]"]=Ct["[object RegExp]"]=Ct["[object Set]"]=Ct["[object String]"]=Ct["[object Symbol]"]=Ct["[object Uint8Array]"]=Ct["[object Uint8ClampedArray]"]=Ct["[object Uint16Array]"]=Ct["[object Uint32Array]"]=true,
Ct["[object Error]"]=Ct["[object Function]"]=Ct["[object WeakMap]"]=false;var zt={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O",
"\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss"},Ut={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},Dt={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&#96;":"`"},Ft={"function":true,object:true},$t={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"
},Nt=parseFloat,Pt=parseInt,Zt=Ft[typeof exports]&&exports&&!exports.nodeType?exports:T,Tt=Ft[typeof module]&&module&&!module.nodeType?module:T,qt=Tt&&Tt.exports===Zt?Zt:T,Vt=R(Ft[typeof self]&&self),Kt=R(Ft[typeof window]&&window),Gt=R(Ft[typeof this]&&this),Jt=R(Zt&&Tt&&typeof global=="object"&&global)||Kt!==(Gt&&Gt.window)&&Kt||Vt||Gt||Function("return this")(),Yt=Z();(Kt||Vt||{})._=Yt,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return Yt}):Zt&&Tt?(qt&&((Tt.exports=Yt)._=Yt),
Zt._=Yt):Jt._=Yt}).call(this);

352
dist/mapping.fp.js vendored Normal file
View File

@@ -0,0 +1,352 @@
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["mapping"] = factory();
else
root["mapping"] = factory();
})(this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports) {
/** Used to map aliases to their real names. */
exports.aliasToReal = {
// Lodash aliases.
'each': 'forEach',
'eachRight': 'forEachRight',
'entries': 'toPairs',
'entriesIn': 'toPairsIn',
'extend': 'assignIn',
'extendWith': 'assignInWith',
'first': 'head',
// Ramda aliases.
'__': 'placeholder',
'all': 'every',
'allPass': 'overEvery',
'always': 'constant',
'any': 'some',
'anyPass': 'overSome',
'apply': 'spread',
'assoc': 'set',
'assocPath': 'set',
'complement': 'negate',
'compose': 'flowRight',
'contains': 'includes',
'dissoc': 'unset',
'dissocPath': 'unset',
'equals': 'isEqual',
'identical': 'eq',
'init': 'initial',
'invertObj': 'invert',
'juxt': 'over',
'omitAll': 'omit',
'nAry': 'ary',
'path': 'get',
'pathEq': 'matchesProperty',
'pathOr': 'getOr',
'paths': 'at',
'pickAll': 'pick',
'pipe': 'flow',
'pluck': 'map',
'prop': 'get',
'propEq': 'matchesProperty',
'propOr': 'getOr',
'props': 'at',
'unapply': 'rest',
'unnest': 'flatten',
'useWith': 'overArgs',
'whereEq': 'filter',
'zipObj': 'zipObject'
};
/** Used to map ary to method names. */
exports.aryMethod = {
'1': [
'attempt', 'castArray', 'ceil', 'create', 'curry', 'curryRight', 'floor',
'flow', 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method',
'methodOf', 'mixin', 'over', 'overEvery', 'overSome', 'rest', 'reverse',
'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',
'uniqueId', 'words'
],
'2': [
'add', 'after', 'ary', 'assign', 'assignIn', 'at', 'before', 'bind', 'bindAll',
'bindKey', 'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
'curryRightN', 'debounce', 'defaults', 'defaultsDeep', 'delay', 'difference',
'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith',
'eq', 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast',
'findLastIndex', 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth',
'forEach', 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight',
'get', 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf',
'intersection', 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch',
'join', 'keyBy', 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues',
'matchesProperty', 'maxBy', 'meanBy', 'merge', 'minBy', 'multiply', 'nth',
'omit', 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt',
'partial', 'partialRight', 'partition', 'pick', 'pickBy', 'pull', 'pullAll',
'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight',
'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars',
'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith',
'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject',
'zipObjectDeep'
],
'3': [
'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
'getOr', 'inRange', 'intersectionBy', 'intersectionWith', 'invokeArgs',
'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth', 'mergeWith',
'orderBy', 'padChars', 'padCharsEnd', 'padCharsStart', 'pullAllBy',
'pullAllWith', 'reduce', 'reduceRight', 'replace', 'set', 'slice',
'sortedIndexBy', 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith',
'update', 'xorBy', 'xorWith', 'zipWith'
],
'4': [
'fill', 'setWith', 'updateWith'
]
};
/** Used to map ary to rearg configs. */
exports.aryRearg = {
'2': [1, 0],
'3': [2, 0, 1],
'4': [3, 2, 0, 1]
};
/** Used to map method names to their iteratee ary. */
exports.iterateeAry = {
'dropRightWhile': 1,
'dropWhile': 1,
'every': 1,
'filter': 1,
'find': 1,
'findIndex': 1,
'findKey': 1,
'findLast': 1,
'findLastIndex': 1,
'findLastKey': 1,
'flatMap': 1,
'flatMapDeep': 1,
'flatMapDepth': 1,
'forEach': 1,
'forEachRight': 1,
'forIn': 1,
'forInRight': 1,
'forOwn': 1,
'forOwnRight': 1,
'map': 1,
'mapKeys': 1,
'mapValues': 1,
'partition': 1,
'reduce': 2,
'reduceRight': 2,
'reject': 1,
'remove': 1,
'some': 1,
'takeRightWhile': 1,
'takeWhile': 1,
'times': 1,
'transform': 2
};
/** Used to map method names to iteratee rearg configs. */
exports.iterateeRearg = {
'mapKeys': [1]
};
/** Used to map method names to rearg configs. */
exports.methodRearg = {
'assignInWith': [1, 2, 0],
'assignWith': [1, 2, 0],
'getOr': [2, 1, 0],
'isEqualWith': [1, 2, 0],
'isMatchWith': [2, 1, 0],
'mergeWith': [1, 2, 0],
'padChars': [2, 1, 0],
'padCharsEnd': [2, 1, 0],
'padCharsStart': [2, 1, 0],
'pullAllBy': [2, 1, 0],
'pullAllWith': [2, 1, 0],
'setWith': [3, 1, 2, 0],
'sortedIndexBy': [2, 1, 0],
'sortedLastIndexBy': [2, 1, 0],
'updateWith': [3, 1, 2, 0],
'zipWith': [1, 2, 0]
};
/** Used to map method names to spread configs. */
exports.methodSpread = {
'invokeArgs': 2,
'invokeArgsMap': 2,
'partial': 1,
'partialRight': 1,
'without': 1
};
/** Used to identify methods which mutate arrays or objects. */
exports.mutate = {
'array': {
'fill': true,
'pull': true,
'pullAll': true,
'pullAllBy': true,
'pullAllWith': true,
'pullAt': true,
'remove': true,
'reverse': true
},
'object': {
'assign': true,
'assignIn': true,
'assignInWith': true,
'assignWith': true,
'defaults': true,
'defaultsDeep': true,
'merge': true,
'mergeWith': true
},
'set': {
'set': true,
'setWith': true,
'unset': true,
'update': true,
'updateWith': true
}
};
/** Used to track methods with placeholder support */
exports.placeholder = {
'bind': true,
'bindKey': true,
'curry': true,
'curryRight': true,
'partial': true,
'partialRight': true
};
/** Used to map real names to their aliases. */
exports.realToAlias = (function() {
var hasOwnProperty = Object.prototype.hasOwnProperty,
object = exports.aliasToReal,
result = {};
for (var key in object) {
var value = object[key];
if (hasOwnProperty.call(result, value)) {
result[value].push(key);
} else {
result[value] = [key];
}
}
return result;
}());
/** Used to map method names to other names. */
exports.remap = {
'curryN': 'curry',
'curryRightN': 'curryRight',
'getOr': 'get',
'invokeArgs': 'invoke',
'invokeArgsMap': 'invokeMap',
'padChars': 'pad',
'padCharsEnd': 'padEnd',
'padCharsStart': 'padStart',
'restFrom': 'rest',
'spreadFrom': 'spread',
'trimChars': 'trim',
'trimCharsEnd': 'trimEnd',
'trimCharsStart': 'trimStart'
};
/** Used to track methods that skip fixing their arity. */
exports.skipFixed = {
'castArray': true,
'flow': true,
'flowRight': true,
'iteratee': true,
'mixin': true,
'runInContext': true
};
/** Used to track methods that skip rearranging arguments. */
exports.skipRearg = {
'add': true,
'assign': true,
'assignIn': true,
'bind': true,
'bindKey': true,
'concat': true,
'difference': true,
'divide': true,
'eq': true,
'gt': true,
'gte': true,
'isEqual': true,
'lt': true,
'lte': true,
'matchesProperty': true,
'merge': true,
'multiply': true,
'overArgs': true,
'partial': true,
'partialRight': true,
'random': true,
'range': true,
'rangeRight': true,
'subtract': true,
'without': true,
'zip': true,
'zipObject': true
};
/***/ }
/******/ ])
});
;

File diff suppressed because it is too large Load Diff

View File

@@ -1,35 +0,0 @@
<?php
// cleanup requested filepath
$file = isset($_GET['f']) ? $_GET['f'] : 'lodash';
$file = preg_replace('#(\.*[\/])+#', '', $file);
$file .= preg_match('/\.[a-z]+$/', $file) ? '' : '.js';
// output filename
if (isset($_GET['o'])) {
$output = $_GET['o'];
} else if (isset($_SERVER['argv'][1])) {
$output = $_SERVER['argv'][1];
} else {
$output = basename($file);
}
/*--------------------------------------------------------------------------*/
require('../vendor/docdown/docdown.php');
// generate Markdown
$markdown = docdown(array(
'path' => '../' . $file,
'title' => 'Lo-Dash <sup>v0.4.1</sup>',
'url' => 'https://github.com/bestiejs/lodash/blob/master/lodash.js'
));
// save to a .md file
file_put_contents($output . '.md', $markdown);
// print
header('Content-Type: text/plain;charset=utf-8');
echo $markdown . PHP_EOL;
?>

466
fp/_baseConvert.js Normal file
View File

@@ -0,0 +1,466 @@
var mapping = require('./_mapping'),
mutateMap = mapping.mutate,
fallbackHolder = require('./placeholder');
/**
* Creates a function, with an arity of `n`, that invokes `func` with the
* arguments it receives.
*
* @private
* @param {Function} func The function to wrap.
* @param {number} n The arity of the new function.
* @returns {Function} Returns the new function.
*/
function baseArity(func, n) {
return n == 2
? function(a, b) { return func.apply(undefined, arguments); }
: function(a) { return func.apply(undefined, arguments); };
}
/**
* Creates a function that invokes `func`, with up to `n` arguments, ignoring
* any additional arguments.
*
* @private
* @param {Function} func The function to cap arguments for.
* @param {number} n The arity cap.
* @returns {Function} Returns the new function.
*/
function baseAry(func, n) {
return n == 2
? function(a, b) { return func(a, b); }
: function(a) { return func(a); };
}
/**
* Creates a clone of `array`.
*
* @private
* @param {Array} array The array to clone.
* @returns {Array} Returns the cloned array.
*/
function cloneArray(array) {
var length = array ? array.length : 0,
result = Array(length);
while (length--) {
result[length] = array[length];
}
return result;
}
/**
* Creates a function that clones a given object using the assignment `func`.
*
* @private
* @param {Function} func The assignment function.
* @returns {Function} Returns the new cloner function.
*/
function createCloner(func) {
return function(object) {
return func({}, object);
};
}
/**
* Creates a function that wraps `func` and uses `cloner` to clone the first
* argument it receives.
*
* @private
* @param {Function} func The function to wrap.
* @param {Function} cloner The function to clone arguments.
* @returns {Function} Returns the new immutable function.
*/
function immutWrap(func, cloner) {
return function() {
var length = arguments.length;
if (!length) {
return result;
}
var args = Array(length);
while (length--) {
args[length] = arguments[length];
}
var result = args[0] = cloner.apply(undefined, args);
func.apply(undefined, args);
return result;
};
}
/**
* The base implementation of `convert` which accepts a `util` object of methods
* required to perform conversions.
*
* @param {Object} util The util object.
* @param {string} name The name of the function to convert.
* @param {Function} func The function to convert.
* @param {Object} [options] The options object.
* @param {boolean} [options.cap=true] Specify capping iteratee arguments.
* @param {boolean} [options.curry=true] Specify currying.
* @param {boolean} [options.fixed=true] Specify fixed arity.
* @param {boolean} [options.immutable=true] Specify immutable operations.
* @param {boolean} [options.rearg=true] Specify rearranging arguments.
* @returns {Function|Object} Returns the converted function or object.
*/
function baseConvert(util, name, func, options) {
var setPlaceholder,
isLib = typeof name == 'function',
isObj = name === Object(name);
if (isObj) {
options = func;
func = name;
name = undefined;
}
if (func == null) {
throw new TypeError;
}
options || (options = {});
var config = {
'cap': 'cap' in options ? options.cap : true,
'curry': 'curry' in options ? options.curry : true,
'fixed': 'fixed' in options ? options.fixed : true,
'immutable': 'immutable' in options ? options.immutable : true,
'rearg': 'rearg' in options ? options.rearg : true
};
var forceCurry = ('curry' in options) && options.curry,
forceFixed = ('fixed' in options) && options.fixed,
forceRearg = ('rearg' in options) && options.rearg,
placeholder = isLib ? func : fallbackHolder,
pristine = isLib ? func.runInContext() : undefined;
var helpers = isLib ? func : {
'ary': util.ary,
'assign': util.assign,
'clone': util.clone,
'curry': util.curry,
'forEach': util.forEach,
'isArray': util.isArray,
'isFunction': util.isFunction,
'iteratee': util.iteratee,
'keys': util.keys,
'rearg': util.rearg,
'spread': util.spread,
'toPath': util.toPath
};
var ary = helpers.ary,
assign = helpers.assign,
clone = helpers.clone,
curry = helpers.curry,
each = helpers.forEach,
isArray = helpers.isArray,
isFunction = helpers.isFunction,
keys = helpers.keys,
rearg = helpers.rearg,
spread = helpers.spread,
toPath = helpers.toPath;
var aryMethodKeys = keys(mapping.aryMethod);
var wrappers = {
'castArray': function(castArray) {
return function() {
var value = arguments[0];
return isArray(value)
? castArray(cloneArray(value))
: castArray.apply(undefined, arguments);
};
},
'iteratee': function(iteratee) {
return function() {
var func = arguments[0],
arity = arguments[1],
result = iteratee(func, arity),
length = result.length;
if (config.cap && typeof arity == 'number') {
arity = arity > 2 ? (arity - 2) : 1;
return (length && length <= arity) ? result : baseAry(result, arity);
}
return result;
};
},
'mixin': function(mixin) {
return function(source) {
var func = this;
if (!isFunction(func)) {
return mixin(func, Object(source));
}
var pairs = [];
each(keys(source), function(key) {
if (isFunction(source[key])) {
pairs.push([key, func.prototype[key]]);
}
});
mixin(func, Object(source));
each(pairs, function(pair) {
var value = pair[1];
if (isFunction(value)) {
func.prototype[pair[0]] = value;
} else {
delete func.prototype[pair[0]];
}
});
return func;
};
},
'runInContext': function(runInContext) {
return function(context) {
return baseConvert(util, runInContext(context), options);
};
}
};
/*--------------------------------------------------------------------------*/
/**
* Creates a clone of `object` by `path`.
*
* @private
* @param {Object} object The object to clone.
* @param {Array|string} path The path to clone by.
* @returns {Object} Returns the cloned object.
*/
function cloneByPath(object, path) {
path = toPath(path);
var index = -1,
length = path.length,
lastIndex = length - 1,
result = clone(Object(object)),
nested = result;
while (nested != null && ++index < length) {
var key = path[index],
value = nested[key];
if (value != null) {
nested[path[index]] = clone(index == lastIndex ? value : Object(value));
}
nested = nested[key];
}
return result;
}
/**
* Converts `lodash` to an immutable auto-curried iteratee-first data-last
* version with conversion `options` applied.
*
* @param {Object} [options] The options object. See `baseConvert` for more details.
* @returns {Function} Returns the converted `lodash`.
*/
function convertLib(options) {
return _.runInContext.convert(options)(undefined);
}
/**
* Create a converter function for `func` of `name`.
*
* @param {string} name The name of the function to convert.
* @param {Function} func The function to convert.
* @returns {Function} Returns the new converter function.
*/
function createConverter(name, func) {
var oldOptions = options;
return function(options) {
var newUtil = isLib ? pristine : helpers,
newFunc = isLib ? pristine[name] : func,
newOptions = assign(assign({}, oldOptions), options);
return baseConvert(newUtil, name, newFunc, newOptions);
};
}
/**
* Creates a function that wraps `func` to invoke its iteratee, with up to `n`
* arguments, ignoring any additional arguments.
*
* @private
* @param {Function} func The function to cap iteratee arguments for.
* @param {number} n The arity cap.
* @returns {Function} Returns the new function.
*/
function iterateeAry(func, n) {
return overArg(func, function(func) {
return typeof func == 'function' ? baseAry(func, n) : func;
});
}
/**
* Creates a function that wraps `func` to invoke its iteratee with arguments
* arranged according to the specified `indexes` where the argument value at
* the first index is provided as the first argument, the argument value at
* the second index is provided as the second argument, and so on.
*
* @private
* @param {Function} func The function to rearrange iteratee arguments for.
* @param {number[]} indexes The arranged argument indexes.
* @returns {Function} Returns the new function.
*/
function iterateeRearg(func, indexes) {
return overArg(func, function(func) {
var n = indexes.length;
return baseArity(rearg(baseAry(func, n), indexes), n);
});
}
/**
* Creates a function that invokes `func` with its first argument passed
* thru `transform`.
*
* @private
* @param {Function} func The function to wrap.
* @param {...Function} transform The functions to transform the first argument.
* @returns {Function} Returns the new function.
*/
function overArg(func, transform) {
return function() {
var length = arguments.length;
if (!length) {
return func();
}
var args = Array(length);
while (length--) {
args[length] = arguments[length];
}
var index = config.rearg ? 0 : (length - 1);
args[index] = transform(args[index]);
return func.apply(undefined, args);
};
}
/**
* Creates a function that wraps `func` and applys the conversions
* rules by `name`.
*
* @private
* @param {string} name The name of the function to wrap.
* @param {Function} func The function to wrap.
* @returns {Function} Returns the converted function.
*/
function wrap(name, func) {
name = mapping.aliasToReal[name] || name;
var result,
wrapped = func,
wrapper = wrappers[name];
if (wrapper) {
wrapped = wrapper(func);
}
else if (config.immutable) {
if (mutateMap.array[name]) {
wrapped = immutWrap(func, cloneArray);
}
else if (mutateMap.object[name]) {
wrapped = immutWrap(func, createCloner(func));
}
else if (mutateMap.set[name]) {
wrapped = immutWrap(func, cloneByPath);
}
}
each(aryMethodKeys, function(aryKey) {
each(mapping.aryMethod[aryKey], function(otherName) {
if (name == otherName) {
var aryN = !isLib && mapping.iterateeAry[name],
reargIndexes = mapping.iterateeRearg[name],
spreadStart = mapping.methodSpread[name];
result = wrapped;
if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {
result = spreadStart === undefined
? ary(result, aryKey)
: spread(result, spreadStart);
}
if (config.rearg && aryKey > 1 && (forceRearg || !mapping.skipRearg[name])) {
result = rearg(result, mapping.methodRearg[name] || mapping.aryRearg[aryKey]);
}
if (config.cap) {
if (reargIndexes) {
result = iterateeRearg(result, reargIndexes);
} else if (aryN) {
result = iterateeAry(result, aryN);
}
}
if (forceCurry || (config.curry && aryKey > 1)) {
forceCurry && console.log(forceCurry, name);
result = curry(result, aryKey);
}
return false;
}
});
return !result;
});
result || (result = wrapped);
if (result == func) {
result = forceCurry ? curry(result, 1) : function() {
return func.apply(this, arguments);
};
}
result.convert = createConverter(name, func);
if (mapping.placeholder[name]) {
setPlaceholder = true;
result.placeholder = func.placeholder = placeholder;
}
return result;
}
/*--------------------------------------------------------------------------*/
if (!isObj) {
return wrap(name, func);
}
var _ = func;
// Convert methods by ary cap.
var pairs = [];
each(aryMethodKeys, function(aryKey) {
each(mapping.aryMethod[aryKey], function(key) {
var func = _[mapping.remap[key] || key];
if (func) {
pairs.push([key, wrap(key, func)]);
}
});
});
// Convert remaining methods.
each(keys(_), function(key) {
var func = _[key];
if (typeof func == 'function') {
var length = pairs.length;
while (length--) {
if (pairs[length][0] == key) {
return;
}
}
func.convert = createConverter(key, func);
pairs.push([key, func]);
}
});
// Assign to `_` leaving `_.prototype` unchanged to allow chaining.
each(pairs, function(pair) {
_[pair[0]] = pair[1];
});
_.convert = convertLib;
if (setPlaceholder) {
_.placeholder = placeholder;
}
// Assign aliases.
each(keys(_), function(key) {
each(mapping.realToAlias[key] || [], function(alias) {
_[alias] = _[key];
});
});
return _;
}
module.exports = baseConvert;

18
fp/_convertBrowser.js Normal file
View File

@@ -0,0 +1,18 @@
var baseConvert = require('./_baseConvert');
/**
* Converts `lodash` to an immutable auto-curried iteratee-first data-last
* version with conversion `options` applied.
*
* @param {Function} lodash The lodash function to convert.
* @param {Object} [options] The options object. See `baseConvert` for more details.
* @returns {Function} Returns the converted `lodash`.
*/
function browserConvert(lodash, options) {
return baseConvert(lodash, lodash, options);
}
if (typeof _ == 'function') {
_ = browserConvert(_.runInContext());
}
module.exports = browserConvert;

290
fp/_mapping.js Normal file
View File

@@ -0,0 +1,290 @@
/** Used to map aliases to their real names. */
exports.aliasToReal = {
// Lodash aliases.
'each': 'forEach',
'eachRight': 'forEachRight',
'entries': 'toPairs',
'entriesIn': 'toPairsIn',
'extend': 'assignIn',
'extendWith': 'assignInWith',
'first': 'head',
// Ramda aliases.
'__': 'placeholder',
'all': 'every',
'allPass': 'overEvery',
'always': 'constant',
'any': 'some',
'anyPass': 'overSome',
'apply': 'spread',
'assoc': 'set',
'assocPath': 'set',
'complement': 'negate',
'compose': 'flowRight',
'contains': 'includes',
'dissoc': 'unset',
'dissocPath': 'unset',
'equals': 'isEqual',
'identical': 'eq',
'init': 'initial',
'invertObj': 'invert',
'juxt': 'over',
'omitAll': 'omit',
'nAry': 'ary',
'path': 'get',
'pathEq': 'matchesProperty',
'pathOr': 'getOr',
'paths': 'at',
'pickAll': 'pick',
'pipe': 'flow',
'pluck': 'map',
'prop': 'get',
'propEq': 'matchesProperty',
'propOr': 'getOr',
'props': 'at',
'unapply': 'rest',
'unnest': 'flatten',
'useWith': 'overArgs',
'whereEq': 'filter',
'zipObj': 'zipObject'
};
/** Used to map ary to method names. */
exports.aryMethod = {
'1': [
'attempt', 'castArray', 'ceil', 'create', 'curry', 'curryRight', 'floor',
'flow', 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method',
'methodOf', 'mixin', 'over', 'overEvery', 'overSome', 'rest', 'reverse',
'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',
'uniqueId', 'words'
],
'2': [
'add', 'after', 'ary', 'assign', 'assignIn', 'at', 'before', 'bind', 'bindAll',
'bindKey', 'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
'curryRightN', 'debounce', 'defaults', 'defaultsDeep', 'delay', 'difference',
'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith',
'eq', 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast',
'findLastIndex', 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth',
'forEach', 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight',
'get', 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf',
'intersection', 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch',
'join', 'keyBy', 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues',
'matchesProperty', 'maxBy', 'meanBy', 'merge', 'minBy', 'multiply', 'nth',
'omit', 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt',
'partial', 'partialRight', 'partition', 'pick', 'pickBy', 'pull', 'pullAll',
'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight',
'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars',
'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith',
'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject',
'zipObjectDeep'
],
'3': [
'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
'getOr', 'inRange', 'intersectionBy', 'intersectionWith', 'invokeArgs',
'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth', 'mergeWith',
'orderBy', 'padChars', 'padCharsEnd', 'padCharsStart', 'pullAllBy',
'pullAllWith', 'reduce', 'reduceRight', 'replace', 'set', 'slice',
'sortedIndexBy', 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith',
'update', 'xorBy', 'xorWith', 'zipWith'
],
'4': [
'fill', 'setWith', 'updateWith'
]
};
/** Used to map ary to rearg configs. */
exports.aryRearg = {
'2': [1, 0],
'3': [2, 0, 1],
'4': [3, 2, 0, 1]
};
/** Used to map method names to their iteratee ary. */
exports.iterateeAry = {
'dropRightWhile': 1,
'dropWhile': 1,
'every': 1,
'filter': 1,
'find': 1,
'findIndex': 1,
'findKey': 1,
'findLast': 1,
'findLastIndex': 1,
'findLastKey': 1,
'flatMap': 1,
'flatMapDeep': 1,
'flatMapDepth': 1,
'forEach': 1,
'forEachRight': 1,
'forIn': 1,
'forInRight': 1,
'forOwn': 1,
'forOwnRight': 1,
'map': 1,
'mapKeys': 1,
'mapValues': 1,
'partition': 1,
'reduce': 2,
'reduceRight': 2,
'reject': 1,
'remove': 1,
'some': 1,
'takeRightWhile': 1,
'takeWhile': 1,
'times': 1,
'transform': 2
};
/** Used to map method names to iteratee rearg configs. */
exports.iterateeRearg = {
'mapKeys': [1]
};
/** Used to map method names to rearg configs. */
exports.methodRearg = {
'assignInWith': [1, 2, 0],
'assignWith': [1, 2, 0],
'getOr': [2, 1, 0],
'isEqualWith': [1, 2, 0],
'isMatchWith': [2, 1, 0],
'mergeWith': [1, 2, 0],
'padChars': [2, 1, 0],
'padCharsEnd': [2, 1, 0],
'padCharsStart': [2, 1, 0],
'pullAllBy': [2, 1, 0],
'pullAllWith': [2, 1, 0],
'setWith': [3, 1, 2, 0],
'sortedIndexBy': [2, 1, 0],
'sortedLastIndexBy': [2, 1, 0],
'updateWith': [3, 1, 2, 0],
'zipWith': [1, 2, 0]
};
/** Used to map method names to spread configs. */
exports.methodSpread = {
'invokeArgs': 2,
'invokeArgsMap': 2,
'partial': 1,
'partialRight': 1,
'without': 1
};
/** Used to identify methods which mutate arrays or objects. */
exports.mutate = {
'array': {
'fill': true,
'pull': true,
'pullAll': true,
'pullAllBy': true,
'pullAllWith': true,
'pullAt': true,
'remove': true,
'reverse': true
},
'object': {
'assign': true,
'assignIn': true,
'assignInWith': true,
'assignWith': true,
'defaults': true,
'defaultsDeep': true,
'merge': true,
'mergeWith': true
},
'set': {
'set': true,
'setWith': true,
'unset': true,
'update': true,
'updateWith': true
}
};
/** Used to track methods with placeholder support */
exports.placeholder = {
'bind': true,
'bindKey': true,
'curry': true,
'curryRight': true,
'partial': true,
'partialRight': true
};
/** Used to map real names to their aliases. */
exports.realToAlias = (function() {
var hasOwnProperty = Object.prototype.hasOwnProperty,
object = exports.aliasToReal,
result = {};
for (var key in object) {
var value = object[key];
if (hasOwnProperty.call(result, value)) {
result[value].push(key);
} else {
result[value] = [key];
}
}
return result;
}());
/** Used to map method names to other names. */
exports.remap = {
'curryN': 'curry',
'curryRightN': 'curryRight',
'getOr': 'get',
'invokeArgs': 'invoke',
'invokeArgsMap': 'invokeMap',
'padChars': 'pad',
'padCharsEnd': 'padEnd',
'padCharsStart': 'padStart',
'restFrom': 'rest',
'spreadFrom': 'spread',
'trimChars': 'trim',
'trimCharsEnd': 'trimEnd',
'trimCharsStart': 'trimStart'
};
/** Used to track methods that skip fixing their arity. */
exports.skipFixed = {
'castArray': true,
'flow': true,
'flowRight': true,
'iteratee': true,
'mixin': true,
'runInContext': true
};
/** Used to track methods that skip rearranging arguments. */
exports.skipRearg = {
'add': true,
'assign': true,
'assignIn': true,
'bind': true,
'bindKey': true,
'concat': true,
'difference': true,
'divide': true,
'eq': true,
'gt': true,
'gte': true,
'isEqual': true,
'lt': true,
'lte': true,
'matchesProperty': true,
'merge': true,
'multiply': true,
'overArgs': true,
'partial': true,
'partialRight': true,
'random': true,
'range': true,
'rangeRight': true,
'subtract': true,
'without': true,
'zip': true,
'zipObject': true
};

6
fp/placeholder.js Normal file
View File

@@ -0,0 +1,6 @@
/**
* The default argument placeholder value for methods.
*
* @type {Object}
*/
module.exports = {};

71
lib/common/file.js Normal file
View File

@@ -0,0 +1,71 @@
'use strict';
var _ = require('lodash'),
fs = require('fs-extra'),
glob = require('glob'),
path = require('path');
var minify = require('../common/minify.js');
/*----------------------------------------------------------------------------*/
/**
* Creates a [fs.copy](https://github.com/jprichardson/node-fs-extra#copy)
* function with `srcPath` and `destPath` partially applied.
*
* @memberOf file
* @param {string} srcPath The path of the file to copy.
* @param {string} destPath The path to copy the file to.
* @returns {Function} Returns the partially applied function.
*/
function copy(srcPath, destPath) {
return _.partial(fs.copy, srcPath, destPath);
}
/**
* Creates an object of compiled template and base name pairs that match `pattern`.
*
* @memberOf file
* @param {string} pattern The glob pattern to be match.
* @returns {Object} Returns the object of compiled templates.
*/
function globTemplate(pattern) {
return _.transform(glob.sync(pattern), function(result, filePath) {
var key = path.basename(filePath, path.extname(filePath));
result[key] = _.template(fs.readFileSync(filePath, 'utf8'));
}, {});
}
/**
* Creates a `minify` function with `srcPath` and `destPath` partially applied.
*
* @memberOf file
* @param {string} srcPath The path of the file to minify.
* @param {string} destPath The path to write the file to.
* @returns {Function} Returns the partially applied function.
*/
function min(srcPath, destPath) {
return _.partial(minify, srcPath, destPath);
}
/**
* Creates a [fs.writeFile](https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback)
* function with `filePath` and `data` partially applied.
*
* @memberOf file
* @param {string} destPath The path to write the file to.
* @param {string} data The data to write to the file.
* @returns {Function} Returns the partially applied function.
*/
function write(destPath, data) {
return _.partial(fs.writeFile, destPath, data);
}
/*----------------------------------------------------------------------------*/
module.exports = {
'copy': copy,
'globTemplate': globTemplate,
'min': min,
'write': write
};

9
lib/common/mapping.js Normal file
View File

@@ -0,0 +1,9 @@
'use strict';
var _mapping = require('../../fp/_mapping'),
util = require('./util'),
Hash = util.Hash;
/*----------------------------------------------------------------------------*/
module.exports = new Hash(_mapping);

39
lib/common/minify.js Normal file
View File

@@ -0,0 +1,39 @@
'use strict';
var _ = require('lodash'),
fs = require('fs-extra'),
uglify = require('uglify-js');
var uglifyOptions = require('./uglify.options');
/*----------------------------------------------------------------------------*/
/**
* Asynchronously minifies the file at `srcPath`, writes it to `destPath`, and
* invokes `callback` upon completion. The callback is invoked with one argument:
* (error).
*
* If unspecified, `destPath` is `srcPath` with an extension of `.min.js`. For
* example, a `srcPath` of `path/to/foo.js` would have a `destPath` of `path/to/foo.min.js`.
*
* @param {string} srcPath The path of the file to minify.
* @param {string} [destPath] The path to write the file to.
* @param {Function} callback The function invoked upon completion.
* @param {Object} [option] The UglifyJS options object.
*/
function minify(srcPath, destPath, callback, options) {
if (_.isFunction(destPath)) {
if (_.isObject(callback)) {
options = callback;
}
callback = destPath;
destPath = undefined;
}
if (!destPath) {
destPath = srcPath.replace(/(?=\.js$)/, '.min');
}
var output = uglify.minify(srcPath, _.defaults(options || {}, uglifyOptions));
fs.writeFile(destPath, output.code, 'utf-8', callback);
}
module.exports = minify;

View File

@@ -0,0 +1,23 @@
'use strict';
/**
* The UglifyJS options object for
* [compress](https://github.com/mishoo/UglifyJS2#compressor-options),
* [mangle](https://github.com/mishoo/UglifyJS2#mangler-options), and
* [output](https://github.com/mishoo/UglifyJS2#beautifier-options) options.
*/
module.exports = {
'compress': {
'pure_getters': true,
'unsafe': true,
'warnings': false
},
'mangle': {
'except': ['define']
},
'output': {
'ascii_only': true,
'comments': /^!|@cc_on|@license|@preserve/i,
'max_line_len': 500
}
};

27
lib/common/util.js Normal file
View File

@@ -0,0 +1,27 @@
'use strict';
var _ = require('lodash');
/*----------------------------------------------------------------------------*/
/**
* Creates a hash object. If a `properties` object is provided, its own
* enumerable properties are assigned to the created object.
*
* @memberOf util
* @param {Object} [properties] The properties to assign to the object.
* @returns {Object} Returns the new hash object.
*/
function Hash(properties) {
return _.transform(properties, function(result, value, key) {
result[key] = (_.isPlainObject(value) && !(value instanceof Hash))
? new Hash(value)
: value;
}, this);
}
Hash.prototype = Object.create(null);
module.exports = {
'Hash': Hash
};

55
lib/fp/build-dist.js Normal file
View File

@@ -0,0 +1,55 @@
'use strict';
var _ = require('lodash'),
async = require('async'),
path = require('path'),
webpack = require('webpack');
var file = require('../common/file');
var basePath = path.join(__dirname, '..', '..'),
distPath = path.join(basePath, 'dist'),
fpPath = path.join(basePath, 'fp'),
filename = 'lodash.fp.js';
var fpConfig = {
'entry': path.join(fpPath, '_convertBrowser.js'),
'output': {
'path': distPath,
'filename': filename,
'library': 'fp',
'libraryTarget': 'umd'
},
'plugins': [
new webpack.optimize.OccurenceOrderPlugin,
new webpack.optimize.DedupePlugin
]
};
var mappingConfig = {
'entry': path.join(fpPath, '_mapping.js'),
'output': {
'path': distPath,
'filename': 'mapping.fp.js',
'library': 'mapping',
'libraryTarget': 'umd'
}
};
/*----------------------------------------------------------------------------*/
function onComplete(error) {
if (error) {
throw error;
}
}
function build() {
async.series([
_.partial(webpack, mappingConfig),
_.partial(webpack, fpConfig),
file.min(path.join(distPath, filename))
], onComplete);
}
build();

65
lib/fp/build-doc.js Normal file
View File

@@ -0,0 +1,65 @@
'use strict';
var _ = require('lodash'),
fs = require('fs-extra'),
path = require('path');
var file = require('../common/file'),
mapping = require('../common/mapping');
var templatePath = path.join(__dirname, 'template/doc'),
template = file.globTemplate(path.join(templatePath, '*.jst'));
var argNames = ['a', 'b', 'c', 'd'];
var templateData = {
'mapping': mapping,
'toArgOrder': toArgOrder,
'toFuncList': toFuncList
};
function toArgOrder(array) {
var reordered = [];
_.each(array, function(newIndex, index) {
reordered[newIndex] = argNames[index];
});
return '`(' + reordered.join(', ') + ')`';
}
function toFuncList(array) {
var chunks = _.chunk(array.slice().sort(), 5),
lastChunk = _.last(chunks),
last = lastChunk ? lastChunk.pop() : undefined;
chunks = _.reject(chunks, _.isEmpty);
lastChunk = _.last(chunks);
var result = '`' + _.map(chunks, function(chunk) {
return chunk.join('`, `') + '`';
}).join(',\n`');
if (last == null) {
return result;
}
if (_.size(chunks) > 1 || _.size(lastChunk) > 1) {
result += ',';
}
result += ' &';
result += _.size(lastChunk) < 5 ? ' ' : '\n';
return result + '`' + last + '`';
}
/*----------------------------------------------------------------------------*/
function onComplete(error) {
if (error) {
throw error;
}
}
function build(target) {
target = path.resolve(target);
fs.writeFile(target, template.wiki(templateData), onComplete);
}
build(_.last(process.argv));

120
lib/fp/build-modules.js Normal file
View File

@@ -0,0 +1,120 @@
'use strict';
var _ = require('lodash'),
async = require('async'),
glob = require('glob'),
path = require('path');
var file = require('../common/file'),
mapping = require('../common/mapping');
var templatePath = path.join(__dirname, 'template/modules'),
template = file.globTemplate(path.join(templatePath, '*.jst'));
var aryMethods = _.union(
mapping.aryMethod[1],
mapping.aryMethod[2],
mapping.aryMethod[3],
mapping.aryMethod[4]
);
var categories = [
'array',
'collection',
'date',
'function',
'lang',
'math',
'number',
'object',
'seq',
'string',
'util'
];
var ignored = [
'_*.js',
'core.js',
'core.min.js',
'fp.js',
'index.js',
'lodash.js',
'lodash.min.js'
];
function isAlias(funcName) {
return _.has(mapping.aliasToReal, funcName);
}
function isCategory(funcName) {
return _.includes(categories, funcName);
}
function isThru(funcName) {
return !_.includes(aryMethods, funcName);
}
function getTemplate(moduleName) {
var data = {
'name': _.result(mapping.aliasToReal, moduleName, moduleName),
'mapping': mapping
};
if (isAlias(moduleName)) {
return template.alias(data);
}
if (isCategory(moduleName)) {
return template.category(data);
}
if (isThru(moduleName)) {
return template.thru(data);
}
return template.module(data);
}
/*----------------------------------------------------------------------------*/
function onComplete(error) {
if (error) {
throw error;
}
}
function build(target) {
target = path.resolve(target);
var fpPath = path.join(target, 'fp');
// Glob existing lodash module paths.
var modulePaths = glob.sync(path.join(target, '*.js'), {
'nodir': true,
'ignore': ignored.map(function(filename) {
return path.join(target, filename);
})
});
// Add FP alias and remapped module paths.
_.each([mapping.aliasToReal, mapping.remap], function(data) {
_.forOwn(data, function(realName, alias) {
var modulePath = path.join(target, alias + '.js');
if (!_.includes(modulePaths, modulePath)) {
modulePaths.push(modulePath);
}
});
});
var actions = modulePaths.map(function(modulePath) {
var moduleName = path.basename(modulePath, '.js');
return file.write(path.join(fpPath, moduleName + '.js'), getTemplate(moduleName));
});
actions.unshift(file.copy(path.join(__dirname, '../../fp'), fpPath));
actions.push(file.write(path.join(fpPath, '_falseOptions.js'), template._falseOptions()));
actions.push(file.write(path.join(fpPath, '_util.js'), template._util()));
actions.push(file.write(path.join(target, 'fp.js'), template.fp()));
actions.push(file.write(path.join(fpPath, 'convert.js'), template.convert()));
async.series(actions, onComplete);
}
build(_.last(process.argv));

View File

@@ -0,0 +1,227 @@
## lodash/fp
The `lodash/fp` module promotes a more
[functional programming](https://en.wikipedia.org/wiki/Functional_programming)
(FP) friendly style by exporting an instance of `lodash` with its methods wrapped
to produce immutable auto-curried iteratee-first data-last methods.
## Installation
In a browser:
```html
<script src='path/to/lodash.js'></script>
<script src='path/to/lodash.fp.js'></script>
<script>
// Loading `lodash.fp.js` converts `_` to its fp variant.
_.defaults({ 'a': 2, 'b': 2 })({ 'a': 1 });
// → { 'a: 1, 'b': 2 }
// Use `noConflict` to restore the pre-fp variant.
var fp = _.noConflict();
_.defaults({ 'a': 1 }, { 'a': 2, 'b': 2 });
// → { 'a: 1, 'b': 2 }
fp.defaults({ 'a': 2, 'b': 2 })({ 'a': 1 });
// → { 'a: 1, 'b': 2 }
</script>
```
In Node.js:
```js
// Load the fp build.
var fp = require('lodash/fp');
// Load a method category.
var object = require('lodash/fp/object');
// Load a single method for smaller builds with browserify/rollup/webpack.
var extend = require('lodash/fp/extend');
```
## Mapping
Immutable auto-curried iteratee-first data-last methods sound great, but what
does that really mean for each method? Below is a breakdown of the mapping used
to convert each method.
#### Capped Iteratee Arguments
Iteratee arguments are capped to avoid gotchas with variadic iteratees.
```js
// The `lodash/map` iteratee receives three arguments:
// (value, index|key, collection)
_.map(['6', '8', '10'], parseInt);
// → [6, NaN, 2]
// The `lodash/fp/map` iteratee is capped at one argument:
// (value)
fp.map(parseInt)(['6', '8', '10']);
// → [6, 8, 10]
```
Methods that cap iteratees to one argument:<br>
<%= toFuncList(_.keys(_.pickBy(mapping.iterateeAry, _.partial(_.eq, _, 1)))) %>
Methods that cap iteratees to two arguments:<br>
<%= toFuncList(_.keys(_.pickBy(mapping.iterateeAry, _.partial(_.eq, _, 2)))) %>
The iteratee of `mapKeys` is invoked with one argument: (key)
#### Fixed Arity
Methods have fixed arities to support auto-currying.
```js
// `lodash/padStart` accepts an optional `chars` param.
_.padStart('a', 3, '-')
// → '--a'
// `lodash/fp/padStart` does not.
fp.padStart(3)('a');
// → ' a'
fp.padCharsStart('-')(3)('a');
// → '--a'
```
Methods with a fixed arity of one:<br>
<%= toFuncList(_.difference(mapping.aryMethod[1], _.keys(mapping.skipFixed))) %>
Methods with a fixed arity of two:<br>
<%= toFuncList(_.difference(mapping.aryMethod[2], _.keys(mapping.skipFixed))) %>
Methods with a fixed arity of three:<br>
<%= toFuncList(_.difference(mapping.aryMethod[3], _.keys(mapping.skipFixed))) %>
Methods with a fixed arity of four:<br>
<%= toFuncList(_.difference(mapping.aryMethod[4], _.keys(mapping.skipFixed))) %>
#### Rearranged Arguments
Method arguments are rearranged to make composition easier.
```js
// `lodash/filter` is data-first iteratee-last:
// (collection, iteratee)
var compact = _.partial(_.filter, _, Boolean);
compact(['a', null, 'c']);
// → ['a', 'c']
// `lodash/fp/filter` is iteratee-first data-last:
// (iteratee, collection)
var compact = fp.filter(Boolean);
compact(['a', null, 'c']);
// → ['a', 'c']
```
##### Most methods follow these rules
A fixed arity of two has an argument order of:<br>
<%= toArgOrder(mapping.aryRearg[2]) %>
A fixed arity of three has an argument order of:<br>
<%= toArgOrder(mapping.aryRearg[3]) %>
A fixed arity of four has an argument order of:<br>
<%= toArgOrder(mapping.aryRearg[4]) %>
##### Exceptions to the rules
Methods that accept an array of arguments as their second parameter:<br>
<%= toFuncList(_.keys(mapping.methodSpread)) %>
Methods with unchanged argument orders:<br>
<%= toFuncList(_.keys(mapping.skipRearg)) %>
Methods with custom argument orders:<br>
<%= _.map(_.keys(mapping.methodRearg), function(methodName) {
var orders = mapping.methodRearg[methodName];
return ' * `_.' + methodName + '` has an order of ' + toArgOrder(orders);
}).join('\n') %>
#### New Methods
Not all variadic methods have corresponding new method variants. Feel free to
[request](https://github.com/lodash/lodash/blob/master/.github/CONTRIBUTING.md#feature-requests)
any additions.
Methods created to accommodate Lodashs variadic methods:<br>
<%= toFuncList(_.keys(mapping.remap)) %>
#### Aliases
There are <%= _.size(mapping.aliasToReal) %> method aliases:<br>
<%= _.map(_.keys(mapping.aliasToReal).sort(), function(alias) {
var realName = mapping.aliasToReal[alias];
return ' * `_.' + alias + '` is an alias of `_.' + realName + '`';
}).join('\n') %>
## Placeholders
The placeholder argument, which defaults to `_`, may be used to fill in method
arguments in a different order. Placeholders are filled by the first available
arguments of the curried returned function.
```js
// The equivalent of `2 > 5`.
_.gt(2)(5);
// → false
// The equivalent of `_.gt(5, 2)` or `5 > 2`.
_.gt(_, 2)(5);
// → true
```
## Chaining
The `lodash/fp` module **does not** convert chain sequence methods. See
[Izaak Schroeders article](https://medium.com/making-internets/why-using-chain-is-a-mistake-9bc1f80d51ba)
on using functional composition as an alternative to method chaining.
## Convert
Although `lodash/fp` & its method modules come pre-converted, there are times
when you may want to customize the conversion. Thats when the `convert` method
comes in handy.
```js
// Every option is `true` by default.
var _fp = fp.convert({
// Specify capping iteratee arguments.
'cap': true,
// Specify currying.
'curry': true,
// Specify fixed arity.
'fixed': true,
// Specify immutable operations.
'immutable': true,
// Specify rearranging arguments.
'rearg': true
});
// The `convert` method is available on each method too.
var mapValuesWithKey = fp.mapValues.convert({ 'cap': false });
// Heres an example of disabling iteratee argument caps to access the `key` param.
mapValuesWithKey(function(value, key) {
return key == 'a' ? -1 : value;
})({ 'a': 1, 'b': 1 });
// => { 'a': -1, 'b': 1 }
```
Manual conversions are also possible with the `convert` module.
```js
var convert = require('lodash/fp/convert');
// Convert by name.
var assign = convert('assign', require('lodash.assign'));
// Convert by object.
var fp = convert({
'assign': require('lodash.assign'),
'chunk': require('lodash.chunk')
});
// Convert by `lodash` instance.
var fp = convert(lodash.runInContext());
```
## Tooling
Use [eslint-plugin-lodash-fp](https://www.npmjs.com/package/eslint-plugin-lodash-fp)
to help use `lodash/fp` more efficiently.

View File

@@ -0,0 +1,7 @@
module.exports = {
'cap': false,
'curry': false,
'fixed': false,
'immutable': false,
'rearg': false
};

View File

@@ -0,0 +1,14 @@
module.exports = {
'ary': require('../ary'),
'assign': require('../_baseAssign'),
'clone': require('../clone'),
'curry': require('../curry'),
'forEach': require('../_arrayEach'),
'isArray': require('../isArray'),
'isFunction': require('../isFunction'),
'iteratee': require('../iteratee'),
'keys': require('../_baseKeys'),
'rearg': require('../rearg'),
'spread': require('../spread'),
'toPath': require('../toPath')
};

View File

@@ -0,0 +1 @@
module.exports = require('./<%= name %>');

View File

@@ -0,0 +1,2 @@
var convert = require('./convert');
module.exports = convert(require('../<%= name %>'));

View File

@@ -0,0 +1,18 @@
var baseConvert = require('./_baseConvert'),
util = require('./_util');
/**
* Converts `func` of `name` to an immutable auto-curried iteratee-first data-last
* version with conversion `options` applied. If `name` is an object its methods
* will be converted.
*
* @param {string} name The name of the function to wrap.
* @param {Function} [func] The function to wrap.
* @param {Object} [options] The options object. See `baseConvert` for more details.
* @returns {Function|Object} Returns the converted function or object.
*/
function convert(name, func, options) {
return baseConvert(util, name, func, options);
}
module.exports = convert;

View File

@@ -0,0 +1,2 @@
var _ = require('./lodash.min').runInContext();
module.exports = require('./fp/_baseConvert')(_, _);

View File

@@ -0,0 +1,5 @@
var convert = require('./convert'),
func = convert('<%= name %>', require('../<%= _.result(mapping.remap, name, name) %>'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -0,0 +1,5 @@
var convert = require('./convert'),
func = convert('<%= name %>', require('../<%= _.result(mapping.remap, name, name) %>'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

30
lib/main/build-dist.js Normal file
View File

@@ -0,0 +1,30 @@
'use strict';
var async = require('async'),
path = require('path');
var file = require('../common/file');
var basePath = path.join(__dirname, '..', '..'),
distPath = path.join(basePath, 'dist'),
filename = 'lodash.js';
var baseLodash = path.join(basePath, filename),
distLodash = path.join(distPath, filename);
/*----------------------------------------------------------------------------*/
function onComplete(error) {
if (error) {
throw error;
}
}
function build() {
async.series([
file.copy(baseLodash, distLodash),
file.min(distLodash)
], onComplete);
}
build();

60
lib/main/build-doc.js Normal file
View File

@@ -0,0 +1,60 @@
'use strict';
var _ = require('lodash'),
docdown = require('docdown'),
fs = require('fs-extra'),
path = require('path');
var basePath = path.join(__dirname, '..', '..'),
docPath = path.join(basePath, 'doc'),
readmePath = path.join(docPath, 'README.md');
var pkg = require('../../package.json'),
version = pkg.version;
var config = {
'base': {
'entryLinks': [
'<% if (name == "templateSettings" || !/^(?:methods|properties|seq)$/i.test(category)) {' +
'print("[&#x24C3;](https://www.npmjs.com/package/lodash." + name.toLowerCase() + " \\"See the npm package\\")")' +
'} %>'
],
'path': path.join(basePath, 'lodash.js'),
'title': '<a href="https://lodash.com/">lodash</a> <span>v' + version + '</span>',
'toc': 'categories',
'url': 'https://github.com/lodash/lodash/blob/' + version + '/lodash.js'
},
'github': {
'hash': 'github'
},
'site': {
'tocLink': '#docs'
}
};
function postprocess(string) {
// Fix docdown bugs.
return string
// Repair the default value of `chars`.
// See https://github.com/eslint/doctrine/issues/157 for more details.
.replace(/\bchars=''/g, "chars=' '")
// Wrap symbol property identifiers in brackets.
.replace(/\.(Symbol\.(?:[a-z]+[A-Z]?)+)/g, '[$1]');
}
/*----------------------------------------------------------------------------*/
function onComplete(error) {
if (error) {
throw error;
}
}
function build(type) {
var options = _.defaults({}, config.base, config[type]),
markdown = docdown(options);
fs.writeFile(readmePath, postprocess(markdown), onComplete);
}
build(_.last(process.argv));

34
lib/main/build-modules.js Normal file
View File

@@ -0,0 +1,34 @@
'use strict';
var _ = require('lodash'),
async = require('async'),
path = require('path');
var file = require('../common/file');
var basePath = path.join(__dirname, '..', '..'),
distPath = path.join(basePath, 'dist');
var filePairs = [
[path.join(distPath, 'lodash.core.js'), 'core.js'],
[path.join(distPath, 'lodash.core.min.js'), 'core.min.js'],
[path.join(distPath, 'lodash.min.js'), 'lodash.min.js']
];
/*----------------------------------------------------------------------------*/
function onComplete(error) {
if (error) {
throw error;
}
}
function build(target) {
var actions = _.map(filePairs, function(pair) {
return file.copy(pair[0], path.join(target, pair[1]));
});
async.series(actions, onComplete);
}
build(_.last(process.argv));

19625
lodash.js

File diff suppressed because it is too large Load Diff

35
lodash.min.js vendored
View File

@@ -1,35 +0,0 @@
/*!
Lo-Dash 0.4.1 lodash.com/license
Underscore.js 1.3.3 github.com/documentcloud/underscore/blob/master/LICENSE
*/
;(function(e,t){"use strict";function s(e){return new o(e)}function o(e){if(e&&e._wrapped)return e;this._wrapped=e}function u(){for(var e,t,n,s=-1,o=arguments.length,u={e:"",f:"",j:"",q:"",c:{d:""},n:{d:""}};++s<o;)for(t in e=arguments[s],e)n=(n=e[t])==r?"":n,/d|i/.test(t)?("string"==typeof n&&(n={b:n,m:n}),u.c[t]=n.b,u.n[t]=n.m):u[t]=n;e=u.a,t=/^[^,]+/.exec(e)[0],u.l=u.l||t,u.g=t,u.h=vt,u.k=bt,u.p=$,u.r=u.r!==i,"o"in u||(u.o=gt),u.f||(u.f="if(!"+t+")return A");if("f"!=t||!u.c.i)u.c=r;t="var A",u.
j&&(t+="="+u.j),t+=";"+u.f+";"+u.q+";var l,n="+u.l+";",u.c&&(t+="var p=n.length;l=-1;",u.n&&(t+="if(p===p>>>0){"),u.o&&(t+="if(I.call(n)==F){n=n.split('')}"),t+=u.c.d+";while(++l<p){"+u.c.i+"}",u.n&&(t+="}"));if(u.n){u.c&&(t+="else{"),u.h||(t+="var B=typeof n=='function'&&z.call(n,'prototype');"),u.k&&u.r?t+="var x=r(n),w=-1,p=x.length;"+u.n.d+";while(++w<p){l=x[w];if(!(B&&l=='prototype')){"+u.n.i+"}}":(t+=u.n.d+";for(l in n){",u.h?(u.r&&(t+="if(j.call(n,l)){"),t+=u.n.i+";",u.r&&(t+="}")):(t+="if(!(B&&l=='prototype')"
,u.r&&(t+="&&j.call(n,l)"),t+="){"+u.n.i+"}"),t+="}");if(u.h){t+="var h=n.constructor;";for(n=0;7>n;n++)t+="l='"+u.p[n]+"';if(","constructor"==u.p[n]&&(t+="!(h&&h.prototype===n)&&"),t+="j.call(n,l)){"+u.n.i+"}"}u.c&&(t+="}")}return t+=u.e+";return A",Function("c,g,i,j,k,o,u,r,z,C,F,I",'"use strict";return function('+e+"){"+t+"}")(ot,a,ft,G,k,h,Et,st,Z,et,ht,tt)}function a(e,n){return e=e.a,n=n.a,e===t?1:n===t?-1:e<n?-1:e>n?1:0}function f(e,t){return K[t]}function l(e){return"\\"+St[e]}function c(
e){return wt[e]}function h(e,t){return function(n,r,i){return e.call(t,n,r,i)}}function p(){}function d(e,t){if(F.test(t))return"<e%-"+t+"%>";var n=K.length;return K[n]="'+__e("+t+")+'",J+n}function v(e,t,n,r){return e=K.length,t?K[e]="';"+t+";__p+='":n?K[e]="'+__e("+n+")+'":r&&(K[e]="'+((__t=("+r+"))==null?'':__t)+'"),J+e}function m(e,t){if(F.test(t))return"<e%="+t+"%>";var n=K.length;return K[n]="'+((__t=("+t+"))==null?'':__t)+'",J+n}function g(e,t,n,r){if(!e)return n;var i=e.length,s=3>arguments
.length;r&&(t=h(t,r));if(i===i>>>0){var o=gt&&tt.call(e)==ht?e.split(""):e;for(i&&s&&(n=o[--i]);i--;)n=t(n,o[i],i,e);return n}o=Gt(e);for((i=o.length)&&s&&(n=e[o[--i]]);i--;)s=o[i],n=t(n,e[s],s,e);return n}function y(e,t,n){if(e)return t==r||n?e[0]:et.call(e,0,t)}function b(e,t){var n=[];if(!e)return n;for(var r,i=-1,s=e.length;++i<s;)r=e[i],Kt(r)?Y.apply(n,t?r:b(r)):n.push(r);return n}function w(e,t,n){if(!e)return-1;var r=-1,i=e.length;if(n){if("number"!=typeof n)return r=x(e,t),e[r]===t?r:-1;r=
(0>n?Math.max(0,i+n):n)-1}for(;++r<i;)if(e[r]===t)return r;return-1}function E(e,t,n){var r=-Infinity,i=r;if(!e)return i;var s=-1,o=e.length;if(!t){for(;++s<o;)e[s]>i&&(i=e[s]);return i}for(n&&(t=h(t,n));++s<o;)n=t(e[s],s,e),n>r&&(r=n,i=e[s]);return i}function S(e,t,n){return e?et.call(e,t==r||n?1:t):[]}function x(e,t,n,r){if(!e)return 0;var i=0,s=e.length;if(n){r&&(n=N(n,r));for(t=n(t);i<s;)r=i+s>>>1,n(e[r])<t?i=r+1:s=r}else for(;i<s;)r=i+s>>>1,e[r]<t?i=r+1:s=r;return i}function T(e,t,n,r){var s=
[];if(!e)return s;var o=-1,u=e.length,a=[];"function"==typeof t&&(r=n,n=t,t=i);for(n?r&&(n=h(n,r)):n=k;++o<u;)if(r=n(e[o],o,e),t?!o||a[a.length-1]!==r:0>w(a,r))a.push(r),s.push(e[o]);return s}function N(e,t){function n(){var o=arguments,u=t;return i||(e=t[r]),s.length&&(o=o.length?Q.apply(s,o):s),this instanceof n?(p.prototype=e.prototype,u=new p,(o=e.apply(u,o))&&Et[typeof o]?o:u):e.apply(u,o)}var r,i=tt.call(e)==ft;if(i){if(yt||nt&&2<arguments.length)return nt.call.apply(nt,arguments)}else r=t,
t=e;var s=et.call(arguments,2);return n}function C(e,t,s){s||(s=[]);if(e===t)return 0!==e||1/e==1/t;if(e==r||t==r)return e===t;e._chain&&(e=e._wrapped),t._chain&&(t=t._wrapped);if(e.isEqual&&tt.call(e.isEqual)==ft)return e.isEqual(t);if(t.isEqual&&tt.call(t.isEqual)==ft)return t.isEqual(e);var o=tt.call(e);if(o!=tt.call(t))return i;switch(o){case ht:return e==""+t;case lt:return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case ut:case at:return+e==+t;case ct:return e.source==t.source&&e.global==t.global&&e.multiline==
t.multiline&&e.ignoreCase==t.ignoreCase}if("object"!=typeof e||"object"!=typeof t)return i;for(var u=s.length;u--;)if(s[u]==e)return n;var u=-1,a=n,f=0;s.push(e);if(o==ot){if(f=e.length,a=f==t.length)for(;f--&&(a=C(e[f],t[f],s)););}else{if("constructor"in e!="constructor"in t||e.constructor!=t.constructor)return i;for(var l in e)if(G.call(e,l)&&(f++,!(a=G.call(t,l)&&C(e[l],t[l],s))))break;if(a){for(l in t)if(G.call(t,l)&&!(f--))break;a=!f}if(a&&vt)for(;7>++u&&(l=$[u],!G.call(e,l)||!!(a=G.call(t,l
)&&C(e[l],t[l],s))););}return s.pop(),a}function k(e){return e}function L(e){Ht(Jt(e),function(t){var r=s[t]=e[t];o.prototype[t]=function(){var e=[this._wrapped];return arguments.length&&Y.apply(e,arguments),e=r.apply(s,e),this._chain&&(e=new o(e),e._chain=n),e}})}var n=!0,r=null,i=!1,A,O,M,_,D="object"==typeof exports&&exports&&("object"==typeof global&&global&&global==global.global&&(e=global),exports),P=Array.prototype,H=Object.prototype,B=0,j=e._,F=/[-+=!~*%&^<>|{(\/]|\[\D|\b(?:delete|in|instanceof|new|typeof|void)\b/
,I=/\b__p\+='';/g,q=/\b(__p\+=)''\+/g,R=/(__e\(.*?\)|\b__t\))\+'';/g,U=/(?:__e|__t=)\(\s*(?![\d\s"']|this\.)/g,z=RegExp("^"+(H.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),W=/__token__(\d+)/g,X=/[&<"']/g,V=/['\n\r\t\u2028\u2029\\]/g,$="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),J="__token__",K=[],Q=P.concat,G=H.hasOwnProperty,Y=P.push,Z=H.propertyIsEnumerable,et=P.slice,tt=H.toString
,nt=z.test(nt=et.bind)&&nt,rt=z.test(rt=Array.isArray)&&rt,it=e.isFinite,st=z.test(st=Object.keys)&&st,ot="[object Array]",ut="[object Boolean]",at="[object Date]",ft="[object Function]",lt="[object Number]",ct="[object RegExp]",ht="[object String]",pt=e.clearTimeout,dt=e.setTimeout,vt=!Z.call({valueOf:0},"valueOf"),mt="x"!=et.call("x")[0],gt="xx"!="x"[0]+Object("x")[0],yt=nt&&/\n|Opera/.test(nt+tt.call(e.opera)),bt=st&&/^.+$|true/.test(st+!!e.attachEvent),wt={"&":"&amp;","<":"&lt;",'"':"&quot;","'"
:"&#x27;"},Et={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i},St={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"};s.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:"obj"};var xt={a:"f,d,H",j:"f",q:"if(!d){d=k}else if(H)d=o(d,H)",i:"d(n[l],l,f)"},Tt={j:"true",i:"if(!d(n[l],l,f))return!A"},Nt={a:"t",j:"t",q:"for(var D,E=1,p=arguments.length;E<p;E++){D=arguments[E];"+(vt?"if(D){":""),l:"D"
,r:i,i:"A[l]=n[l]",e:(vt?"}":"")+"}"},Ct={j:"[]",i:"d(n[l],l,f)&&A.push(n[l])"},kt={q:"if(H)d=o(d,H)"},Lt={i:{m:xt.i}},At={j:"",f:"if(!f)return[]",d:{b:"A=Array(p)",m:"A="+(bt?"Array(p)":"[]")},i:{b:"A[l]=d(n[l],l,f)",m:"A"+(bt?"[w]=":".push")+"(d(n[l],l,f))"}},Ot=u({a:"t",f:"if(!(t&&u[typeof t]))throw TypeError()",j:"[]",i:"A.push(l)"}),Mt=u({a:"f,G",j:"false",o:i,d:{b:"if(I.call(n)==F)return f.indexOf(G)>-1"},i:"if(n[l]===G)return true"}),_t=u(xt,Tt),Dt=u(xt,Ct),Pt=u(xt,kt,{j:"",i:"if(d(n[l],l,f))return n[l]"
}),Ht=u(xt,kt),Bt=u(xt,{j:"{}",q:"var v,m=typeof d=='function';if(m&&H)d=o(d,H)",i:"v=m?d(n[l],l,f):n[l][d];(j.call(A,v)?A[v]:A[v]=[]).push(n[l])"}),jt=u(At,{a:"f,q",q:"var b=C.call(arguments,2),m=typeof q=='function'",i:{b:"A[l]=(m?q:n[l][q]).apply(n[l],b)",m:"A"+(bt?"[w]=":".push")+"((m?q:n[l][q]).apply(n[l],b))"}}),Ft=u(xt,At),It=u(At,{a:"f,y",i:{b:"A[l]=n[l][y]",m:"A"+(bt?"[w]=":".push")+"(n[l][y])"}}),qt=u({a:"f,d,a,H",j:"a",q:"var s=arguments.length<3;if(H)d=o(d,H)",d:{b:"if(s)A=f[++l]"},i:
{b:"A=d(A,n[l],l,f)",m:"A=s?(s=false,n[l]):d(A,n[l],l,f)"}}),Rt=u(xt,Ct,{i:"!"+Ct.i}),Ut=u(xt,Tt,{j:"false",i:Tt.i.replace("!","")}),zt=u(xt,At,{q:"if(typeof d=='string'){var v=d;d=function(f){return f[v]}}else if(H)d=o(d,H)",i:{b:"A[l]={a:d(n[l],l,f),b:n[l]}",m:"A"+(bt?"[w]=":".push")+"({a:d(n[l],l,f),b:n[l]})"},e:"A.sort(g);p=A.length;while(p--){A[p]=A[p].b}"}),Wt=u(Nt,{i:"if(A[l]==null)"+Nt.i}),Xt=u(Nt),Vt=u(xt,kt,Lt,{r:i}),$t=u(xt,kt,Lt),Jt=u({a:"t",j:"[]",r:i,i:"if(I.call(n[l])==i)A.push(l)"
,e:"A.sort()"});Ht({Arguments:"[object Arguments]",Date:at,Function:ft,Number:lt,RegExp:ct,String:ht},function(e,t){s["is"+t]=function(t){return tt.call(t)==e}}),s.isArguments(arguments)||(s.isArguments=function(e){return!!e&&!!G.call(e,"callee")});var Kt=rt||function(e){return tt.call(e)==ot},Qt=u({a:"J",j:"true",q:"var e=I.call(J);if(e==c||e==F)return!J.length",i:{m:"return false"}}),Gt=st?function(e){return"function"==typeof e&&Z.call(e,"prototype")?Ot(e):st(e)}:Ot,Yt=u({a:"t",j:"[]",i:"A.push(n[l])"
});s.VERSION="0.4.1",s.after=function(e,t){return 1>e?t():function(){if(1>--e)return t.apply(this,arguments)}},s.bind=N,s.bindAll=function(e){var t=arguments,n=1;1==t.length&&(n=0,t=Jt(e));for(var r=t.length;n<r;n++)e[t[n]]=N(e[t[n]],e);return e},s.chain=function(e){return e=new o(e),e._chain=n,e},s.clone=function(e){return e&&Et[typeof e]?Kt(e)?e.slice():Xt({},e):e},s.compact=function(e){var t=[];if(!e)return t;for(var n=-1,r=e.length;++n<r;)e[n]&&t.push(e[n]);return t},s.compose=function(){var e=
arguments;return function(){for(var t=arguments,n=e.length;n--;)t=[e[n].apply(this,t)];return t[0]}},s.contains=Mt,s.debounce=function(e,t,n){function i(){a=r,n||e.apply(u,s)}var s,o,u,a;return function(){var r=n&&!a;return s=arguments,u=this,pt(a),a=dt(i,t),r&&(o=e.apply(u,s)),o}},s.defaults=Wt,s.defer=function(e){var n=et.call(arguments,1);return dt(function(){return e.apply(t,n)},1)},s.delay=function(e,n){var r=et.call(arguments,2);return dt(function(){return e.apply(t,r)},n)},s.difference=function(
e){var t=[];if(!e)return t;for(var n=-1,r=e.length,i=Q.apply(t,arguments);++n<r;)0>w(i,e[n],r)&&t.push(e[n]);return t},s.escape=function(e){return e==r?"":(e+"").replace(X,c)},s.every=_t,s.extend=Xt,s.filter=Dt,s.find=Pt,s.first=y,s.flatten=b,s.forEach=Ht,s.forIn=Vt,s.forOwn=$t,s.functions=Jt,s.groupBy=Bt,s.has=function(e,t){return G.call(e,t)},s.identity=k,s.indexOf=w,s.initial=function(e,t,n){return e?et.call(e,0,-(t==r||n?1:t)):[]},s.intersection=function(e){var t=[];if(!e)return t;for(var n,r=-1
,i=e.length,s=et.call(arguments,1);++r<i;)n=e[r],0>w(t,n)&&_t(s,function(e){return-1<w(e,n)})&&t.push(n);return t},s.invoke=jt,s.isArray=Kt,s.isBoolean=function(e){return e===n||e===i||tt.call(e)==ut},s.isElement=function(e){return!!e&&1==e.nodeType},s.isEmpty=Qt,s.isEqual=C,s.isFinite=function(e){return it(e)&&tt.call(e)==lt},s.isNaN=function(e){return tt.call(e)==lt&&e!=+e},s.isNull=function(e){return e===r},s.isObject=function(e){return e&&Et[typeof e]},s.isUndefined=function(e){return e===t},
s.keys=Gt,s.last=function(e,t,n){if(e){var i=e.length;return t==r||n?e[i-1]:et.call(e,-t||i)}},s.lastIndexOf=function(e,t,n){if(!e)return-1;var r=e.length;for(n&&"number"==typeof n&&(r=(0>n?Math.max(0,r+n):Math.min(n,r-1))+1);r--;)if(e[r]===t)return r;return-1},s.map=Ft,s.max=E,s.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return G.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},s.min=function(e,t,n){var r=Infinity,i=r;if(!e)return i;var s=-1,o=e.length
;if(!t){for(;++s<o;)e[s]<i&&(i=e[s]);return i}for(n&&(t=h(t,n));++s<o;)n=t(e[s],s,e),n<r&&(r=n,i=e[s]);return i},s.mixin=L,s.noConflict=function(){return e._=j,this},s.once=function(e){var t,r=i;return function(){return r?t:(r=n,t=e.apply(this,arguments))}},s.partial=function(e){var t=et.call(arguments,1),n=t.length;return function(){var r;return r=arguments,r.length&&(t.length=n,Y.apply(t,r)),r=1==t.length?e.call(this,t[0]):e.apply(this,t),t.length=n,r}},s.pick=function(e){for(var t,n=0,r=Q.apply
(P,arguments),i=r.length,s={};++n<i;)t=r[n],t in e&&(s[t]=e[t]);return s},s.pluck=It,s.range=function(e,t,n){n||(n=1),t==r&&(t=e||0,e=0);for(var i=-1,t=Math.max(0,Math.ceil((t-e)/n)),s=Array(t);++i<t;)s[i]=e,e+=n;return s},s.reduce=qt,s.reduceRight=g,s.reject=Rt,s.rest=S,s.result=function(e,t){if(!e)return r;var n=e[t];return tt.call(n)==ft?e[t]():n},s.shuffle=function(e){if(!e)return[];for(var t,n=-1,r=e.length,i=Array(r);++n<r;)t=Math.floor(Math.random()*(n+1)),i[n]=i[t],i[t]=e[n];return i},s.size=
function(e){if(!e)return 0;var t=e.length;return t===t>>>0?e.length:Gt(e).length},s.some=Ut,s.sortBy=zt,s.sortedIndex=x,s.tap=function(e,t){return t(e),e},s.template=function(e,t,n){n||(n={});var i,o;i=n.escape;var u=n.evaluate,a=n.interpolate,c=s.templateSettings,n=n.variable;i==r&&(i=c.escape),u==r&&(u=c.evaluate),a==r&&(a=c.interpolate),i&&(e=e.replace(i,d)),a&&(e=e.replace(a,m)),u!=A&&(A=u,_=RegExp((u?u.source:"($^)")+"|<e%-([\\s\\S]+?)%>|<e%=([\\s\\S]+?)%>","g")),i=K.length,e=e.replace(_,v),
i=i!=K.length,e="__p += '"+e.replace(V,l).replace(W,f)+"';",K.length=0,n||(n=c.variable||O||"obj",i?e="with("+n+"){"+e+"}":(n!=O&&(O=n,M=RegExp("(\\(\\s*)"+n+"\\."+n+"\\b","g")),e=e.replace(U,"$&"+n+".").replace(M,"$1__d"))),e=(i?e.replace(I,""):e).replace(q,"$1").replace(R,"$1;"),e="function("+n+"){"+n+"||("+n+"={});var __t,__p='',__e=_.escape"+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":",__d="+n+"."+n+"||"+n+";")+e+"return __p}";try{o=Function("_","return "+e)(
s)}catch(h){o=function(){throw h}}return t?o(t):(o.source=e,o)},s.throttle=function(e,t){function n(){a=new Date,u=r,e.apply(o,i)}var i,s,o,u,a=0;return function(){var r=new Date,f=t-(r-a);return i=arguments,o=this,0>=f?(a=r,s=e.apply(o,i)):u||(u=dt(n,f)),s}},s.times=function(e,t,n){var r=-1;if(n)for(;++r<e;)t.call(n,r);else for(;++r<e;)t(r)},s.toArray=function(e){if(!e)return[];if(e.toArray&&tt.call(e.toArray)==ft)return e.toArray();var t=e.length;return t===t>>>0?(mt?tt.call(e)==ht:"string"==typeof
e)?e.split(""):et.call(e):Yt(e)},s.union=function(){for(var e=-1,t=[],n=Q.apply(t,arguments),r=n.length;++e<r;)0>w(t,n[e])&&t.push(n[e]);return t},s.uniq=T,s.uniqueId=function(e){var t=B++;return e?e+t:t},s.values=Yt,s.without=function(e){var t=[];if(!e)return t;for(var n=-1,r=e.length;++n<r;)0>w(arguments,e[n],1)&&t.push(e[n]);return t},s.wrap=function(e,t){return function(){var n=[e];return arguments.length&&Y.apply(n,arguments),t.apply(this,n)}},s.zip=function(e){if(!e)return[];for(var t=-1,n=
E(It(arguments,"length")),r=Array(n);++t<n;)r[t]=It(arguments,t);return r},s.zipObject=function(e,t){if(!e)return{};var n=-1,r=e.length,i={};for(t||(t=[]);++n<r;)i[e[n]]=t[n];return i},s.all=_t,s.any=Ut,s.collect=Ft,s.detect=Pt,s.each=Ht,s.foldl=qt,s.foldr=g,s.head=y,s.include=Mt,s.inject=qt,s.methods=Jt,s.select=Dt,s.tail=S,s.take=y,s.unique=T,o.prototype=s.prototype,L(s),o.prototype.chain=function(){return this._chain=n,this},o.prototype.value=function(){return this._wrapped},Ht("pop push reverse shift sort splice unshift"
.split(" "),function(e){var t=P[e];o.prototype[e]=function(){var e=this._wrapped;return t.apply(e,arguments),e.length===0&&delete e[0],this._chain&&(e=new o(e),e._chain=n),e}}),Ht(["concat","join","slice"],function(e){var t=P[e];o.prototype[e]=function(){var e=t.apply(this._wrapped,arguments);return this._chain&&(e=new o(e),e._chain=n),e}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(e._=s,define(function(){return s})):D?"object"==typeof module&&module&&module.s==D?(module
.s=s)._=s:D._=s:e._=s})(this);

View File

@@ -1,49 +1,54 @@
{
"name": "lodash",
"version": "0.4.1",
"description": "A drop-in replacement for Underscore.js that delivers performance improvements, bug fixes, and additional features.",
"homepage": "http://lodash.com",
"main": "lodash",
"keywords": [
"browser",
"client",
"functional",
"performance",
"server",
"speed",
"util"
],
"licenses": [
{
"type": "MIT",
"url": "http://lodash.com/license"
}
],
"author": {
"name": "John-David Dalton",
"email": "john@fusejs.com",
"web": "http://allyoucanleet.com/"
},
"bugs": {
"url": "https://github.com/bestiejs/lodash/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/bestiejs/lodash.git"
},
"bin": {
"lodash": "./build.js"
},
"directories": {
"doc": "./doc",
"test": "./test"
},
"engines": [
"node",
"rhino"
],
"version": "4.12.0",
"license": "MIT",
"private": true,
"main": "lodash.js",
"scripts": {
"build": "node build",
"test": "node test/test"
"build": "npm run build:main && npm run build:fp",
"build:fp": "node lib/fp/build-dist.js",
"build:fp-modules": "node lib/fp/build-modules.js",
"build:main": "node lib/main/build-dist.js",
"build:main-modules": "node lib/main/build-modules.js",
"doc": "node lib/main/build-doc github && npm run test:doc",
"doc:fp": "node lib/fp/build-doc",
"doc:site": "node lib/main/build-doc site",
"pretest": "npm run build",
"style": "npm run style:main && npm run style:fp && npm run style:perf && npm run style:test",
"style:fp": "jscs fp/*.js lib/**/*.js",
"style:main": "jscs lodash.js",
"style:perf": "jscs perf/*.js perf/**/*.js",
"style:test": "jscs test/*.js test/**/*.js",
"test": "npm run test:main && npm run test:fp",
"test:doc": "markdown-doctest",
"test:fp": "node test/test-fp",
"test:main": "node test/test",
"validate": "npm run style && npm run test"
},
"devDependencies": {
"async": "^1.5.2",
"benchmark": "^2.1.0",
"chalk": "^1.1.3",
"codecov.io": "~0.1.6",
"coveralls": "^2.11.9",
"curl-amd": "~0.8.12",
"docdown": "~0.5.1",
"dojo": "^1.11.1",
"ecstatic": "^1.4.0",
"fs-extra": "~0.30.0",
"glob": "^7.0.3",
"istanbul": "0.4.3",
"jquery": "^2.2.3",
"jscs": "^3.0.1",
"lodash": "4.11.2",
"markdown-doctest": "^0.4.0",
"platform": "^1.3.1",
"qunit-extras": "^2.0.0",
"qunitjs": "~1.23.1",
"request": "^2.69.0",
"requirejs": "^2.2.0",
"sauce-tunnel": "^2.4.0",
"uglify-js": "2.6.2",
"webpack": "^1.12.15"
}
}

131
perf/asset/perf-ui.js Normal file
View File

@@ -0,0 +1,131 @@
;(function(window) {
'use strict';
/** The base path of the lodash builds. */
var basePath = '../';
/** The lodash build to load. */
var build = (build = /build=([^&]+)/.exec(location.search)) && decodeURIComponent(build[1]);
/** The other library to load. */
var other = (other = /other=([^&]+)/.exec(location.search)) && decodeURIComponent(other[1]);
/** The `ui` object. */
var ui = {};
/*--------------------------------------------------------------------------*/
/**
* Registers an event listener on an element.
*
* @private
* @param {Element} element The element.
* @param {string} eventName The name of the event.
* @param {Function} handler The event handler.
* @returns {Element} The element.
*/
function addListener(element, eventName, handler) {
if (typeof element.addEventListener != 'undefined') {
element.addEventListener(eventName, handler, false);
} else if (typeof element.attachEvent != 'undefined') {
element.attachEvent('on' + eventName, handler);
}
}
/*--------------------------------------------------------------------------*/
// Initialize controls.
addListener(window, 'load', function() {
function eventHandler(event) {
var buildIndex = buildList.selectedIndex,
otherIndex = otherList.selectedIndex,
search = location.search.replace(/^\?|&?(?:build|other)=[^&]*&?/g, '');
if (event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true;
}
location.href =
location.href.split('?')[0] + '?' +
(search ? search + '&' : '') +
'build=' + (buildIndex < 0 ? build : buildList[buildIndex].value) + '&' +
'other=' + (otherIndex < 0 ? other : otherList[otherIndex].value);
}
var span1 = document.createElement('span');
span1.style.cssText = 'float:right';
span1.innerHTML =
'<label for="perf-build">Build: </label>' +
'<select id="perf-build">' +
'<option value="lodash">lodash</option>' +
'</select>';
var span2 = document.createElement('span');
span2.style.cssText = 'float:right';
span2.innerHTML =
'<label for="perf-other">Other Library: </label>' +
'<select id="perf-other">' +
'<option value="underscore-dev">Underscore (development)</option>' +
'<option value="underscore">Underscore (production)</option>' +
'<option value="lodash">lodash</option>' +
'</select>';
var buildList = span1.lastChild,
otherList = span2.lastChild,
toolbar = document.getElementById('perf-toolbar');
toolbar.appendChild(span2);
toolbar.appendChild(span1);
buildList.selectedIndex = (function() {
switch (build) {
case 'lodash':
case null: return 0;
}
return -1;
}());
otherList.selectedIndex = (function() {
switch (other) {
case 'underscore-dev': return 0;
case 'lodash': return 2;
case 'underscore':
case null: return 1;
}
return -1;
}());
addListener(buildList, 'change', eventHandler);
addListener(otherList, 'change', eventHandler);
});
// The lodash build file path.
ui.buildPath = (function() {
var result;
switch (build) {
case null: build = 'lodash';
case 'lodash': result = 'dist/lodash.min.js'; break;
default: return build;
}
return basePath + result;
}());
// The other library file path.
ui.otherPath = (function() {
var result;
switch (other) {
case 'lodash': result = 'dist/lodash.min.js'; break;
case 'underscore-dev': result = 'vendor/underscore/underscore.js'; break;
case null: other = 'underscore';
case 'underscore': result = 'vendor/underscore/underscore-min.js'; break;
default: return other;
}
return basePath + result;
}());
ui.urlParams = { 'build': build, 'other': other };
window.ui = ui;
}(this));

View File

@@ -1,48 +1,69 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Lo-Dash Performance Suite</title>
<style>
html, body {
margin: 0;
padding: 0;
height: 100%;
}
applet {
position: absolute;
left: -9999em;
}
</style>
</head>
<body>
<script src="../lodash.min.js"></script>
<script>
var lodash = _.noConflict();
</script>
<script src="../vendor/underscore/underscore.js"></script>
<script src="../vendor/benchmark.js/benchmark.js"></script>
<script src="../vendor/firebug-lite/src/firebug-lite-debug.js"></script>
<script>
(function() {
if (!/[?&]nojava=true(?:&|$)/.test(location.search)) {
// using innerHTML avoids an alert in some versions of IE6
var div = document.createElement('div');
div.innerHTML = '<applet code=nano archive="../vendor/benchmark.js/nano.jar">';
document.body.insertBefore(div.lastChild, document.body.firstChild);
}
}());
<head>
<meta charset="utf-8">
<title>lodash Performance Suite</title>
<style>
html, body {
margin: 0;
padding: 0;
height: 100%;
}
#FirebugUI {
top: 2em;
}
#perf-toolbar {
background-color: #EEE;
color: #5E740B;
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
font-size: small;
padding: 0.5em 0 0.5em 2em;
overflow: hidden;
}
</style>
</head>
<body>
<div id="perf-toolbar"></div>
<script src="../lodash.js"></script>
<script src="../node_modules/platform/platform.js"></script>
<script src="../node_modules/benchmark/benchmark.js"></script>
<script src="../vendor/firebug-lite/src/firebug-lite-debug.js"></script>
<script src="./asset/perf-ui.js"></script>
<script>
document.write('<script src="' + ui.buildPath + '"><\/script>');
</script>
<script>
var lodash = _.noConflict();
</script>
<script>
document.write('<script src="' + ui.otherPath + '"><\/script>');
</script>
<script src="perf.js"></script>
<script>
(function() {
var measured,
perfNow,
begin = new Date;
window.onload = function() {
var fbUI = document.getElementById('FirebugUI'),
fbDoc = (fbDoc = fbUI.contentWindow || fbUI.contentDocument).document || fbDoc,
sibling = document.getElementsByTagName('script')[0],
script = document.createElement('script');
function init() {
var fbUI = document.getElementById('FirebugUI'),
fbDoc = fbUI && (fbDoc = fbUI.contentWindow || fbUI.contentDocument).document || fbDoc,
fbCommandLine = fbDoc && fbDoc.getElementById('fbCommandLine');
fbUI.style.height = fbDoc.body.style.height = fbDoc.documentElement.style.height = '100%';
script.src = 'perf.js?t=' + (+new Date);
sibling.parentNode.insertBefore(script, sibling);
};
</script>
</body>
if (!fbCommandLine) {
return setTimeout(init, 15);
}
fbUI.style.height = (
Math.max(document.documentElement.clientHeight, document.body.clientHeight) -
document.getElementById('perf-toolbar').clientHeight
) + 'px';
fbDoc.body.style.height = fbDoc.documentElement.style.height = '100%';
setTimeout(run, 15);
}
window.onload = init;
}());
</script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +0,0 @@
cd "$(dirname "$0")"
for cmd in node narwhal ringo rhino; do
echo ""
echo "Running performance suite in $cmd..."
$cmd perf.js
done
echo ""
echo "Running performance suite in a browser..."
open index.html

170
test/asset/test-ui.js Normal file
View File

@@ -0,0 +1,170 @@
;(function(window) {
'use strict';
/** The base path of the lodash builds. */
var basePath = '../';
/** The lodash build to load. */
var build = (build = /build=([^&]+)/.exec(location.search)) && decodeURIComponent(build[1]);
/** The module loader to use. */
var loader = (loader = /loader=([^&]+)/.exec(location.search)) && decodeURIComponent(loader[1]);
/** The `ui` object. */
var ui = {};
/*--------------------------------------------------------------------------*/
/**
* Registers an event listener on an element.
*
* @private
* @param {Element} element The element.
* @param {string} eventName The name of the event.
* @param {Function} handler The event handler.
* @returns {Element} The element.
*/
function addListener(element, eventName, handler) {
if (typeof element.addEventListener != 'undefined') {
element.addEventListener(eventName, handler, false);
} else if (typeof element.attachEvent != 'undefined') {
element.attachEvent('on' + eventName, handler);
}
}
/*--------------------------------------------------------------------------*/
// Initialize controls.
addListener(window, 'load', function() {
function eventHandler(event) {
var buildIndex = buildList.selectedIndex,
loaderIndex = loaderList.selectedIndex,
search = location.search.replace(/^\?|&?(?:build|loader)=[^&]*&?/g, '');
if (event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true;
}
location.href =
location.href.split('?')[0] + '?' +
(search ? search + '&' : '') +
'build=' + (buildIndex < 0 ? build : buildList[buildIndex].value) + '&' +
'loader=' + (loaderIndex < 0 ? loader : loaderList[loaderIndex].value);
}
function init() {
var toolbar = document.getElementById('qunit-testrunner-toolbar');
if (!toolbar) {
setTimeout(init, 15);
return;
}
toolbar.appendChild(span1);
toolbar.appendChild(span2);
buildList.selectedIndex = (function() {
switch (build) {
case 'lodash': return 1;
case 'lodash-core-dev': return 2;
case 'lodash-core': return 3;
case 'lodash-dev':
case null: return 0;
}
return -1;
}());
loaderList.selectedIndex = (function() {
switch (loader) {
case 'curl': return 1;
case 'dojo': return 2;
case 'requirejs': return 3;
case 'none':
case null: return 0;
}
return -1;
}());
addListener(buildList, 'change', eventHandler);
addListener(loaderList, 'change', eventHandler);
}
var span1 = document.createElement('span');
span1.style.cssText = 'float:right';
span1.innerHTML =
'<label for="qunit-build">Build: </label>' +
'<select id="qunit-build">' +
'<option value="lodash-dev">lodash (development)</option>' +
'<option value="lodash">lodash (production)</option>' +
'<option value="lodash-core-dev">lodash-core (development)</option>' +
'<option value="lodash-core">lodash-core (production)</option>' +
'</select>';
var span2 = document.createElement('span');
span2.style.cssText = 'float:right';
span2.innerHTML =
'<label for="qunit-loader">Loader: </label>' +
'<select id="qunit-loader">' +
'<option value="none">None</option>' +
'<option value="curl">Curl</option>' +
'<option value="dojo">Dojo</option>' +
'<option value="requirejs">RequireJS</option>' +
'</select>';
var buildList = span1.lastChild,
loaderList = span2.lastChild;
setTimeout(function() {
ui.timing.loadEventEnd = +new Date;
}, 1);
init();
});
// The lodash build file path.
ui.buildPath = (function() {
var result;
switch (build) {
case 'lodash': result = 'dist/lodash.min.js'; break;
case 'lodash-core-dev': result = 'dist/lodash.core.js'; break;
case 'lodash-core': result = 'dist/lodash.core.min.js'; break;
case null: build = 'lodash-dev';
case 'lodash-dev': result = 'lodash.js'; break;
default: return build;
}
return basePath + result;
}());
// The module loader file path.
ui.loaderPath = (function() {
var result;
switch (loader) {
case 'curl': result = 'node_modules/curl-amd/dist/curl-kitchen-sink/curl.js'; break;
case 'dojo': result = 'node_modules/dojo/dojo.js'; break;
case 'requirejs': result = 'node_modules/requirejs/require.js'; break;
case null: loader = 'none'; return '';
default: return loader;
}
return basePath + result;
}());
// Used to indicate testing a core build.
ui.isCore = /\bcore(\.min)?\.js\b/.test(ui.buildPath);
// Used to indicate testing a foreign file.
ui.isForeign = RegExp('^(\\w+:)?//').test(build);
// Used to indicate testing a modularized build.
ui.isModularize = /\b(?:amd|commonjs|es|node|npm|(index|main)\.js)\b/.test([location.pathname, location.search]);
// Used to indicate testing in Sauce Labs' automated test cloud.
ui.isSauceLabs = location.port == '9001';
// Used to indicate that lodash is in strict mode.
ui.isStrict = /\bes\b/.test([location.pathname, location.search]);
ui.urlParams = { 'build': build, 'loader': loader };
ui.timing = { 'loadEventEnd': 0 };
window.ui = ui;
}(this));

15
test/asset/worker.js Normal file
View File

@@ -0,0 +1,15 @@
self.console || (self.console = { 'log': function() {} });
addEventListener('message', function(e) {
if (e.data) {
try {
importScripts('../' + e.data);
} catch (e) {
var lineNumber = e.lineNumber,
message = (lineNumber == null ? '' : (lineNumber + ': ')) + e.message;
self._ = { 'VERSION': message };
}
postMessage(_.VERSION);
}
}, false);

View File

@@ -1,41 +1,170 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Backbone Test Suite</title>
<link rel="stylesheet" href="../vendor/backbone/test/vendor/qunit.css">
<style>
body > #qunit-header {
display: none;
}
#jslitmus {
display: none;
}
</style>
</head>
<body>
<div id="qunit"></div>
<h1 id="qunit-header"><a href="#">Backbone Speed Suite</a></h1>
<div id="qunit-fixture">
<div id='testElement'>
<h1>Test</h1>
</div>
</div>
<script src="../vendor/backbone/test/vendor/json2.js"></script>
<script src="../vendor/backbone/test/vendor/jquery-1.7.1.js"></script>
<script src="../vendor/backbone/test/vendor/qunit.js"></script>
<script src="../vendor/backbone/test/vendor/jslitmus.js"></script>
<script src="test-ui.js"></script>
<script>
document.write('<script src="../' + QUnit.config.lodashFilename + '.js"><\/script>');
</script>
<script src="../vendor/backbone/backbone.js"></script>
<script src="../vendor/backbone/test/noconflict.js"></script>
<script src="../vendor/backbone/test/events.js"></script>
<script src="../vendor/backbone/test/model.js"></script>
<script src="../vendor/backbone/test/collection.js"></script>
<script src="../vendor/backbone/test/router.js"></script>
<script src="../vendor/backbone/test/view.js"></script>
<script src="../vendor/backbone/test/sync.js"></script>
</body>
<head>
<meta charset="utf-8">
<title>Backbone Test Suite</title>
<link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css">
</head>
<body>
<script>
// Avoid reporting tests to Sauce Labs when script errors occur.
if (location.port == '9001') {
window.onerror = function(message) {
if (window.QUnit) {
QUnit.config.done.length = 0;
}
global_test_results = { 'message': message };
};
}
</script>
<script src="../node_modules/qunitjs/qunit/qunit.js"></script>
<script src="../node_modules/qunit-extras/qunit-extras.js"></script>
<script src="../vendor/json-js/json2.js"></script>
<script src="../node_modules/platform/platform.js"></script>
<script src="./asset/test-ui.js"></script>
<script src="../lodash.js"></script>
<script>
QUnit.config.asyncRetries = 10;
QUnit.config.hidepassed = true;
var mixinPrereqs = (function() {
var aliasToReal = {
'indexBy': 'keyBy',
'invoke': 'invokeMap'
};
var keyMap = {
'rest': 'tail'
};
var lodash = _.noConflict();
return function(_) {
lodash.defaultsDeep(_, { 'templateSettings': lodash.templateSettings });
lodash.mixin(_, lodash.pick(lodash, lodash.difference([
'countBy',
'debounce',
'difference',
'find',
'findIndex',
'findLastIndex',
'groupBy',
'includes',
'invert',
'invokeMap',
'keyBy',
'omit',
'partition',
'reduceRight',
'reject',
'sample',
'without'
], lodash.functions(_))));
lodash.forOwn(keyMap, function(realName, otherName) {
_[otherName] = lodash[realName];
_.prototype[otherName] = lodash.prototype[realName];
});
lodash.forOwn(aliasToReal, function(realName, alias) {
_[alias] = _[realName];
_.prototype[alias] = _.prototype[realName];
});
};
}());
// Load prerequisite scripts.
document.write(ui.urlParams.loader == 'none'
? '<script src="' + ui.buildPath + '"><\/script>'
: '<script data-dojo-config="async:1" src="' + ui.loaderPath + '"><\/script>'
);
</script>
<script>
if (ui.urlParams.loader == 'none') {
mixinPrereqs(_);
document.write([
'<script src="../node_modules/jquery/dist/jquery.js"><\/script>',
'<script src="../vendor/backbone/backbone.js"><\/script>',
'<script src="../vendor/backbone/test/setup/dom-setup.js"><\/script>',
'<script src="../vendor/backbone/test/setup/environment.js"><\/script>',
'<script src="../vendor/backbone/test/noconflict.js"><\/script>',
'<script src="../vendor/backbone/test/events.js"><\/script>',
'<script src="../vendor/backbone/test/model.js"><\/script>',
'<script src="../vendor/backbone/test/collection.js"><\/script>',
'<script src="../vendor/backbone/test/router.js"><\/script>',
'<script src="../vendor/backbone/test/view.js"><\/script>',
'<script src="../vendor/backbone/test/sync.js"><\/script>'
].join('\n'));
}
</script>
<script>
(function() {
if (window.curl) {
curl.config({ 'apiName': 'require' });
}
if (!window.require) {
return;
}
var reBasename = /[\w.-]+$/,
basePath = ('//' + location.host + location.pathname.replace(reBasename, '')).replace(/\btest\/$/, ''),
modulePath = ui.buildPath.replace(/\.js$/, ''),
locationPath = modulePath.replace(reBasename, '').replace(/^\/|\/$/g, ''),
moduleMain = modulePath.match(reBasename)[0],
uid = +new Date;
function getConfig() {
var result = {
'baseUrl': './',
'urlArgs': 't=' + uid++,
'waitSeconds': 0,
'paths': {
'backbone': '../vendor/backbone/backbone',
'jquery': '../node_modules/jquery/dist/jquery'
},
'packages': [{
'name': 'test',
'location': '../vendor/backbone/test',
'config': {
// Work around no global being exported.
'exports': 'QUnit',
'loader': 'curl/loader/legacy'
}
}]
};
if (ui.isModularize) {
result.packages.push({
'name': 'underscore',
'location': locationPath,
'main': moduleMain
});
} else {
result.paths.underscore = modulePath;
}
return result;
}
QUnit.config.autostart = false;
require(getConfig(), ['underscore'], function(lodash) {
mixinPrereqs(lodash);
require(getConfig(), ['backbone'], function() {
require(getConfig(), [
'test/setup/dom-setup',
'test/setup/environment',
'test/noconflict',
'test/events',
'test/model',
'test/collection',
'test/router',
'test/view',
'test/sync'
], function() {
QUnit.start();
});
});
});
}());
</script>
</body>
</html>

41
test/fp.html Normal file
View File

@@ -0,0 +1,41 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>lodash-fp Test Suite</title>
<link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css">
</head>
<body>
<script>
// Avoid reporting tests to Sauce Labs when script errors occur.
if (location.port == '9001') {
window.onerror = function(message) {
if (window.QUnit) {
QUnit.config.done.length = 0;
}
global_test_results = { 'message': message };
};
}
</script>
<script src="../lodash.js"></script>
<script src="../dist/lodash.fp.js"></script>
<script src="../dist/mapping.fp.js"></script>
<script src="../node_modules/qunitjs/qunit/qunit.js"></script>
<script src="../node_modules/qunit-extras/qunit-extras.js"></script>
<script src="../node_modules/platform/platform.js"></script>
<script src="./test-fp.js"></script>
<div id="qunit"></div>
<script>
// Set a more readable browser name.
window.onload = function() {
var timeoutId = setInterval(function() {
var ua = document.getElementById('qunit-userAgent');
if (ua) {
ua.innerHTML = platform;
clearInterval(timeoutId);
}
}, 16);
};
</script>
</body>
</html>

View File

@@ -1,64 +1,351 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Lo-Dash Test Suite</title>
<link rel="stylesheet" href="../vendor/qunit/qunit/qunit.css">
</head>
<body>
<div id="qunit"></div>
<script src="../vendor/qunit/qunit/qunit.js"></script>
<script src="test-ui.js"></script>
<script>
// set a bad shim
Object._keys = Object.keys;
Object.keys = function() { return []; };
<head>
<meta charset="utf-8">
<title>lodash Test Suite</title>
<link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css">
<style>
#exports, #module {
display: none;
}
</style>
</head>
<body>
<script>
// Avoid reporting tests to Sauce Labs when script errors occur.
if (location.port == '9001') {
window.onerror = function(message) {
if (window.QUnit) {
QUnit.config.done.length = 0;
}
global_test_results = { 'message': message };
};
}
</script>
<script src="../node_modules/lodash/lodash.js"></script>
<script>var lodashStable = _.noConflict();</script>
<script src="../node_modules/qunitjs/qunit/qunit.js"></script>
<script src="../node_modules/qunit-extras/qunit-extras.js"></script>
<script src="../node_modules/platform/platform.js"></script>
<script src="./asset/test-ui.js"></script>
<div id="qunit"></div>
<div id="exports"></div>
<div id="module"></div>
<script>
function setProperty(object, key, value) {
try {
Object.defineProperty(object, key, {
'configurable': true,
'enumerable': false,
'writable': true,
'value': value
});
} catch (e) {
object[key] = value;
}
return object;
}
// load Lo-Dash and expose it to the bad `Object.keys` shim
document.write('<script src="../' + QUnit.config.lodashFilename + '.js"><\/script>');
</script>
<script>
// store Lo-Dash to test for bad shim detection
var lodashBadShim = _;
function addBizarroMethods() {
var funcProto = Function.prototype,
objectProto = Object.prototype;
// restore nativeKeys
Object.keys = Object._keys;
delete Object._keys;
var hasOwnProperty = objectProto.hasOwnProperty,
fnToString = funcProto.toString,
nativeString = fnToString.call(objectProto.toString),
noop = function() {},
propertyIsEnumerable = objectProto.propertyIsEnumerable,
reToString = /toString/g;
// set to test `_.noConflict`
_ = 1;
function constant(value) {
return function() {
return value;
};
}
// load Lo-Dash again to overwrite the existing `_` value
document.write('<script src="../' + QUnit.config.lodashFilename + '.js"><\/script>');
function createToString(funcName) {
return constant(nativeString.replace(reToString, funcName));
}
// load test.js if not using require.js
document.write(QUnit.urlParams.norequire
? '<script src="test.js"><\/script>'
: '<script src="../vendor/requirejs/require.js"><\/script>'
);
</script>
<script>
// load Lo-Dash as a module
var lodashModule,
underscoreModule;
// Allow bypassing native checks.
setProperty(funcProto, 'toString', (function() {
function wrapper() {
setProperty(funcProto, 'toString', fnToString);
var result = hasOwnProperty.call(this, 'toString') ? this.toString() : fnToString.call(this);
setProperty(funcProto, 'toString', wrapper);
return result;
}
return wrapper;
}()));
window.require && require({
'baseUrl': '../vendor/requirejs/',
'urlArgs': 't=' + (+new Date),
'paths': {
'lodash': '../../' + QUnit.config.lodashFilename,
'underscore': './../../' + QUnit.config.lodashFilename
}
},
['lodash', 'underscore'], function(lodash, underscore) {
lodashModule = lodash.noConflict();
lodashModule.moduleName = 'lodash';
// Add prototype extensions.
funcProto._method = noop;
underscoreModule = underscore.noConflict();
underscoreModule.moduleName = 'underscore';
// Set bad shims.
setProperty(Object, '_create', Object.create);
setProperty(Object, 'create', (function() {
function object() {}
return function(prototype) {
if (prototype === Object(prototype)) {
object.prototype = prototype;
var result = new object;
object.prototype = undefined;
}
return result || {};
};
}()));
require(['test.js']);
});
</script>
</body>
setProperty(Object, '_getOwnPropertySymbols', Object.getOwnPropertySymbols);
setProperty(Object, 'getOwnPropertySymbols', undefined);
setProperty(objectProto, '_propertyIsEnumerable', propertyIsEnumerable);
setProperty(objectProto, 'propertyIsEnumerable', function(key) {
return !(key == 'valueOf' && this && this.valueOf === 1) && _propertyIsEnumerable.call(this, key);
});
setProperty(window, '_Map', window.Map);
if (_Map) {
setProperty(window, 'Map', (function(Map) {
var count = 0;
return function() {
if (count++) {
return new Map;
}
var result = {};
setProperty(window, 'Map', Map);
return result;
};
}(_Map)));
setProperty(Map, 'toString', createToString('Map'));
}
setProperty(window, '_Promise', window.Promise);
setProperty(window, 'Promise', noop);
setProperty(window, '_Set', window.Set);
setProperty(window, 'Set', noop);
setProperty(window, '_Symbol', window.Symbol);
setProperty(window, 'Symbol', undefined);
setProperty(window, '_WeakMap', window.WeakMap);
setProperty(window, 'WeakMap', noop);
// Fake `WinRTError`.
setProperty(window, 'WinRTError', Error);
// Fake free variable `global`.
setProperty(window, 'exports', window);
setProperty(window, 'global', window);
setProperty(window, 'module', {});
}
function removeBizarroMethods() {
var funcProto = Function.prototype,
objectProto = Object.prototype;
setProperty(objectProto, 'propertyIsEnumerable', objectProto._propertyIsEnumerable);
if (Object._create) {
Object.create = Object._create;
} else {
delete Object.create;
}
if (Object._getOwnPropertySymbols) {
Object.getOwnPropertySymbols = Object._getOwnPropertySymbols;
} else {
delete Object.getOwnPropertySymbols;
}
if (_Map) {
Map = _Map;
} else {
setProperty(window, 'Map', undefined);
}
if (_Promise) {
Promise = _Promise;
} else {
setProperty(window, 'Promise', undefined);
}
if (_Set) {
Set = _Set;
} else {
setProperty(window, 'Set', undefined);
}
if (_Symbol) {
Symbol = _Symbol;
}
if (_WeakMap) {
WeakMap = _WeakMap;
} else {
setProperty(window, 'WeakMap', undefined);
}
setProperty(window, '_Map', undefined);
setProperty(window, '_Promise', undefined);
setProperty(window, '_Set', undefined);
setProperty(window, '_Symbol', undefined);
setProperty(window, '_WeakMap', undefined);
setProperty(window, 'WinRTError', undefined);
setProperty(window, 'exports', document.getElementById('exports'));
setProperty(window, 'global', undefined);
setProperty(window, 'module', document.getElementById('module'));
delete funcProto._method;
delete Object._create;
delete Object._getOwnPropertySymbols;
delete objectProto._propertyIsEnumerable;
}
// Load lodash to expose it to the bad extensions/shims.
if (!ui.isModularize) {
addBizarroMethods();
document.write('<script src="' + ui.buildPath + '"><\/script>');
}
</script>
<script>
// Store lodash to test for bad extensions/shims.
if (!ui.isModularize) {
var lodashBizarro = window._;
window._ = undefined;
removeBizarroMethods();
}
// Load test scripts.
document.write((ui.isForeign || ui.urlParams.loader == 'none')
? '<script src="' + ui.buildPath + '"><\/script><script src="test.js"><\/script>'
: '<script data-dojo-config="async:1" src="' + ui.loaderPath + '"><\/script>'
);
</script>
<script>
var lodashModule,
shimmedModule,
underscoreModule;
(function() {
if (window.curl) {
curl.config({ 'apiName': 'require' });
}
if (ui.isForeign || !window.require) {
return;
}
var reBasename = /[\w.-]+$/,
basePath = ('//' + location.host + location.pathname.replace(reBasename, '')).replace(/\btest\/$/, ''),
modulePath = ui.buildPath.replace(/\.js$/, ''),
moduleMain = modulePath.match(reBasename)[0],
locationPath = modulePath.replace(reBasename, '').replace(/^\/|\/$/g, ''),
shimmedLocationPath = './abc/../' + locationPath,
underscoreLocationPath = './xyz/../' + locationPath,
uid = +new Date;
function getConfig() {
var result = {
'baseUrl': './',
'urlArgs': 't=' + uid++,
'waitSeconds': 0,
'paths': {},
'packages': [{
'name': 'test',
'location': basePath + 'test',
'main': 'test',
'config': {
// Work around no global being exported.
'exports': 'QUnit',
'loader': 'curl/loader/legacy'
}
}],
'shim': {
'shimmed': {
'exports': '_'
}
}
};
if (ui.isModularize) {
result.packages.push({
'name': 'lodash',
'location': locationPath,
'main': moduleMain
}, {
'name': 'shimmed',
'location': shimmedLocationPath,
'main': moduleMain
}, {
'name': 'underscore',
'location': underscoreLocationPath,
'main': moduleMain
});
} else {
result.paths.lodash = modulePath;
result.paths.shimmed = shimmedLocationPath + '/' + moduleMain;
result.paths.underscore = underscoreLocationPath + '/' + moduleMain;
}
return result;
}
function loadTests() {
require(getConfig(), ['test'], function() {
QUnit.start();
});
}
function loadModulesAndTests() {
require(getConfig(), ['lodash', 'shimmed', 'underscore'], function(lodash, shimmed, underscore) {
lodashModule = lodash;
lodashModule.moduleName = 'lodash';
if (shimmed) {
shimmedModule = shimmed.result(shimmed, 'noConflict') || shimmed;
shimmedModule.moduleName = 'shimmed';
}
if (underscore) {
underscoreModule = underscore.result(underscore, 'noConflict') || underscore;
underscoreModule.moduleName = 'underscore';
}
window._ = lodash;
if (ui.isModularize) {
require(getConfig(), [
'lodash/_baseEach',
'lodash/_isIndex',
'lodash/_isIterateeCall'
], function(baseEach, isIndex, isIterateeCall) {
lodash._baseEach = baseEach;
lodash._isIndex = isIndex;
lodash._isIterateeCall = isIterateeCall;
loadTests();
});
} else {
loadTests();
}
});
}
QUnit.config.autostart = false;
if (window.requirejs) {
addBizarroMethods();
require(getConfig(), ['lodash'], function(lodash) {
lodashBizarro = lodash.result(lodash, 'noConflict') || lodash;
delete requirejs.s.contexts._;
removeBizarroMethods();
loadModulesAndTests();
});
} else {
loadModulesAndTests();
}
}());
// Set a more readable browser name.
window.onload = function() {
var timeoutId = setInterval(function() {
var ua = document.getElementById('qunit-userAgent');
if (ua) {
ua.innerHTML = platform;
clearInterval(timeoutId);
}
}, 16);
};
</script>
</body>
</html>

27
test/remove.js Normal file
View File

@@ -0,0 +1,27 @@
#!/usr/bin/env node
'use strict';
var _ = require('../lodash'),
fs = require('fs'),
path = require('path');
var args = (args = process.argv)
.slice((args[0] === process.execPath || args[0] === 'node') ? 2 : 0);
var filePath = path.resolve(args[1]),
reLine = /.*/gm;
var pattern = (function() {
var result = args[0],
delimiter = result.charAt(0),
lastIndex = result.lastIndexOf(delimiter);
return RegExp(result.slice(1, lastIndex), result.slice(lastIndex + 1));
}());
/*----------------------------------------------------------------------------*/
fs.writeFileSync(filePath, fs.readFileSync(filePath, 'utf8').replace(pattern, function(match) {
var snippet = _.slice(arguments, -3, -2)[0];
return match.replace(snippet, snippet.replace(reLine, ''));
}));

View File

@@ -1,9 +0,0 @@
cd "$(dirname "$0")"
for cmd in rhino ringo narwhal node; do
echo ""
echo "Testing in $cmd..."
$cmd test.js
done
echo ""
echo "Testing in a browser..."
open index.html

914
test/saucelabs.js Normal file
View File

@@ -0,0 +1,914 @@
#!/usr/bin/env node
'use strict';
/** Environment shortcut. */
var env = process.env;
if (env.TRAVIS_SECURE_ENV_VARS == 'false') {
console.log('Skipping Sauce Labs jobs; secure environment variables are unavailable');
process.exit(0);
}
/** Load Node.js modules. */
var EventEmitter = require('events').EventEmitter,
http = require('http'),
path = require('path'),
url = require('url'),
util = require('util');
/** Load other modules. */
var _ = require('../lodash.js'),
chalk = require('chalk'),
ecstatic = require('ecstatic'),
request = require('request'),
SauceTunnel = require('sauce-tunnel');
/** Used for Sauce Labs credentials. */
var accessKey = env.SAUCE_ACCESS_KEY,
username = env.SAUCE_USERNAME;
/** Used as the default maximum number of times to retry a job and tunnel. */
var maxJobRetries = 3,
maxTunnelRetries = 3;
/** Used as the static file server middleware. */
var mount = ecstatic({
'cache': 'no-cache',
'root': process.cwd()
});
/** Used as the list of ports supported by Sauce Connect. */
var ports = [
80, 443, 888, 2000, 2001, 2020, 2109, 2222, 2310, 3000, 3001, 3030, 3210,
3333, 4000, 4001, 4040, 4321, 4502, 4503, 4567, 5000, 5001, 5050, 5555, 5432,
6000, 6001, 6060, 6666, 6543, 7000, 7070, 7774, 7777, 8000, 8001, 8003, 8031,
8080, 8081, 8765, 8777, 8888, 9000, 9001, 9080, 9090, 9876, 9877, 9999, 49221,
55001
];
/** Used by `logInline` to clear previously logged messages. */
var prevLine = '';
/** Method shortcut. */
var push = Array.prototype.push;
/** Used to detect error messages. */
var reError = /(?:\be|E)rror\b/;
/** Used to detect valid job ids. */
var reJobId = /^[a-z0-9]{32}$/;
/** Used to display the wait throbber. */
var throbberDelay = 500,
waitCount = -1;
/**
* Used as Sauce Labs config values.
* See the [Sauce Labs documentation](https://docs.saucelabs.com/reference/test-configuration/)
* for more details.
*/
var advisor = getOption('advisor', false),
build = getOption('build', (env.TRAVIS_COMMIT || '').slice(0, 10)),
commandTimeout = getOption('commandTimeout', 90),
compatMode = getOption('compatMode', null),
customData = Function('return {' + getOption('customData', '').replace(/^\{|}$/g, '') + '}')(),
deviceOrientation = getOption('deviceOrientation', 'portrait'),
framework = getOption('framework', 'qunit'),
idleTimeout = getOption('idleTimeout', 60),
jobName = getOption('name', 'unit tests'),
maxDuration = getOption('maxDuration', 180),
port = ports[Math.min(_.sortedIndex(ports, getOption('port', 9001)), ports.length - 1)],
publicAccess = getOption('public', true),
queueTimeout = getOption('queueTimeout', 240),
recordVideo = getOption('recordVideo', true),
recordScreenshots = getOption('recordScreenshots', false),
runner = getOption('runner', 'test/index.html').replace(/^\W+/, ''),
runnerUrl = getOption('runnerUrl', 'http://localhost:' + port + '/' + runner),
statusInterval = getOption('statusInterval', 5),
tags = getOption('tags', []),
throttled = getOption('throttled', 10),
tunneled = getOption('tunneled', true),
tunnelId = getOption('tunnelId', 'tunnel_' + (env.TRAVIS_JOB_ID || 0)),
tunnelTimeout = getOption('tunnelTimeout', 120),
videoUploadOnPass = getOption('videoUploadOnPass', false);
/** Used to convert Sauce Labs browser identifiers to their formal names. */
var browserNameMap = {
'googlechrome': 'Chrome',
'iehta': 'Internet Explorer',
'ipad': 'iPad',
'iphone': 'iPhone',
'microsoftedge': 'Edge'
};
/** List of platforms to load the runner on. */
var platforms = [
['Linux', 'android', '5.1'],
['Windows 10', 'chrome', '50'],
['Windows 10', 'chrome', '49'],
['Windows 10', 'firefox', '46'],
['Windows 10', 'firefox', '45'],
['Windows 10', 'microsoftedge', '13'],
['Windows 10', 'internet explorer', '11'],
['Windows 8', 'internet explorer', '10'],
['Windows 7', 'internet explorer', '9'],
// ['OS X 10.10', 'ipad', '9.1'],
['OS X 10.11', 'safari', '9'],
['OS X 10.10', 'safari', '8']
];
/** Used to tailor the `platforms` array. */
var isAMD = _.includes(tags, 'amd'),
isBackbone = _.includes(tags, 'backbone'),
isModern = _.includes(tags, 'modern');
// The platforms to test IE compatibility modes.
if (compatMode) {
platforms = [
['Windows 10', 'internet explorer', '11'],
['Windows 8', 'internet explorer', '10'],
['Windows 7', 'internet explorer', '9'],
['Windows 7', 'internet explorer', '8']
];
}
// The platforms for AMD tests.
if (isAMD) {
platforms = _.filter(platforms, function(platform) {
var browser = browserName(platform[1]),
version = +platform[2];
switch (browser) {
case 'Android': return version >= 4.4;
case 'Opera': return version >= 10;
}
return true;
});
}
// The platforms for Backbone tests.
if (isBackbone) {
platforms = _.filter(platforms, function(platform) {
var browser = browserName(platform[1]),
version = +platform[2];
switch (browser) {
case 'Firefox': return version >= 4;
case 'Internet Explorer': return version >= 7;
case 'iPad': return version >= 5;
case 'Opera': return version >= 12;
}
return true;
});
}
// The platforms for modern builds.
if (isModern) {
platforms = _.filter(platforms, function(platform) {
var browser = browserName(platform[1]),
version = +platform[2];
switch (browser) {
case 'Android': return version >= 4.1;
case 'Firefox': return version >= 10;
case 'Internet Explorer': return version >= 9;
case 'iPad': return version >= 6;
case 'Opera': return version >= 12;
case 'Safari': return version >= 6;
}
return true;
});
}
/** Used as the default `Job` options object. */
var jobOptions = {
'build': build,
'command-timeout': commandTimeout,
'custom-data': customData,
'device-orientation': deviceOrientation,
'framework': framework,
'idle-timeout': idleTimeout,
'max-duration': maxDuration,
'name': jobName,
'public': publicAccess,
'platforms': platforms,
'record-screenshots': recordScreenshots,
'record-video': recordVideo,
'sauce-advisor': advisor,
'tags': tags,
'url': runnerUrl,
'video-upload-on-pass': videoUploadOnPass
};
if (publicAccess === true) {
jobOptions['public'] = 'public';
}
if (tunneled) {
jobOptions['tunnel-identifier'] = tunnelId;
}
/*----------------------------------------------------------------------------*/
/**
* Resolves the formal browser name for a given Sauce Labs browser identifier.
*
* @private
* @param {string} identifier The browser identifier.
* @returns {string} Returns the formal browser name.
*/
function browserName(identifier) {
return browserNameMap[identifier] || _.startCase(identifier);
}
/**
* Gets the value for the given option name. If no value is available the
* `defaultValue` is returned.
*
* @private
* @param {string} name The name of the option.
* @param {*} defaultValue The default option value.
* @returns {*} Returns the option value.
*/
function getOption(name, defaultValue) {
var isArr = _.isArray(defaultValue);
return _.reduce(process.argv, function(result, value) {
if (isArr) {
value = optionToArray(name, value);
return _.isEmpty(value) ? result : value;
}
value = optionToValue(name, value);
return value == null ? result : value;
}, defaultValue);
}
/**
* Checks if `value` is a job ID.
*
* @private
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a job ID, else `false`.
*/
function isJobId(value) {
return reJobId.test(value);
}
/**
* Writes an inline message to standard output.
*
* @private
* @param {string} [text=''] The text to log.
*/
function logInline(text) {
var blankLine = _.repeat(' ', _.size(prevLine));
prevLine = text = _.truncate(text, { 'length': 40 });
process.stdout.write(text + blankLine.slice(text.length) + '\r');
}
/**
* Writes the wait throbber to standard output.
*
* @private
*/
function logThrobber() {
logInline('Please wait' + _.repeat('.', (++waitCount % 3) + 1));
}
/**
* Converts a comma separated option value into an array.
*
* @private
* @param {string} name The name of the option to inspect.
* @param {string} string The options string.
* @returns {Array} Returns the new converted array.
*/
function optionToArray(name, string) {
return _.compact(_.invokeMap((optionToValue(name, string) || '').split(/, */), 'trim'));
}
/**
* Extracts the option value from an option string.
*
* @private
* @param {string} name The name of the option to inspect.
* @param {string} string The options string.
* @returns {string|undefined} Returns the option value, else `undefined`.
*/
function optionToValue(name, string) {
var result = string.match(RegExp('^' + name + '(?:=([\\s\\S]+))?$'));
if (result) {
result = _.result(result, 1);
result = result ? _.trim(result) : true;
}
if (result === 'false') {
return false;
}
return result || undefined;
}
/*----------------------------------------------------------------------------*/
/**
* The `Job#remove` and `Tunnel#stop` callback used by `Jobs#restart`
* and `Tunnel#restart` respectively.
*
* @private
*/
function onGenericRestart() {
this.restarting = false;
this.emit('restart');
this.start();
}
/**
* The `request.put` and `SauceTunnel#stop` callback used by `Jobs#stop`
* and `Tunnel#stop` respectively.
*
* @private
* @param {Object} [error] The error object.
*/
function onGenericStop(error) {
this.running = this.stopping = false;
this.emit('stop', error);
}
/**
* The `request.del` callback used by `Jobs#remove`.
*
* @private
*/
function onJobRemove(error, res, body) {
this.id = this.taskId = this.url = null;
this.removing = false;
this.emit('remove');
}
/**
* The `Job#remove` callback used by `Jobs#reset`.
*
* @private
*/
function onJobReset() {
this.attempts = 0;
this.failed = this.resetting = false;
this._pollerId = this.id = this.result = this.taskId = this.url = null;
this.emit('reset');
}
/**
* The `request.post` callback used by `Jobs#start`.
*
* @private
* @param {Object} [error] The error object.
* @param {Object} res The response data object.
* @param {Object} body The response body JSON object.
*/
function onJobStart(error, res, body) {
this.starting = false;
if (this.stopping) {
return;
}
var statusCode = _.result(res, 'statusCode'),
taskId = _.first(_.result(body, 'js tests'));
if (error || !taskId || statusCode != 200) {
if (this.attempts < this.retries) {
this.restart();
return;
}
var na = 'unavailable',
bodyStr = _.isObject(body) ? '\n' + JSON.stringify(body) : na,
statusStr = _.isFinite(statusCode) ? statusCode : na;
logInline();
console.error('Failed to start job; status: %s, body: %s', statusStr, bodyStr);
if (error) {
console.error(error);
}
this.failed = true;
this.emit('complete');
return;
}
this.running = true;
this.taskId = taskId;
this.timestamp = _.now();
this.emit('start');
this.status();
}
/**
* The `request.post` callback used by `Job#status`.
*
* @private
* @param {Object} [error] The error object.
* @param {Object} res The response data object.
* @param {Object} body The response body JSON object.
*/
function onJobStatus(error, res, body) {
this.checking = false;
if (!this.running || this.stopping) {
return;
}
var completed = _.result(body, 'completed', false),
data = _.first(_.result(body, 'js tests')),
elapsed = (_.now() - this.timestamp) / 1000,
jobId = _.result(data, 'job_id', null),
jobResult = _.result(data, 'result', null),
jobStatus = _.result(data, 'status', ''),
jobUrl = _.result(data, 'url', null),
expired = (elapsed >= queueTimeout && !_.includes(jobStatus, 'in progress')),
options = this.options,
platform = options.platforms[0];
if (_.isObject(jobResult)) {
var message = _.result(jobResult, 'message');
} else {
if (typeof jobResult == 'string') {
message = jobResult;
}
jobResult = null;
}
if (isJobId(jobId)) {
this.id = jobId;
this.result = jobResult;
this.url = jobUrl;
} else {
completed = false;
}
this.emit('status', jobStatus);
if (!completed && !expired) {
this._pollerId = _.delay(_.bind(this.status, this), this.statusInterval * 1000);
return;
}
var description = browserName(platform[1]) + ' ' + platform[2] + ' on ' + _.startCase(platform[0]),
errored = !jobResult || !jobResult.passed || reError.test(message) || reError.test(jobStatus),
failures = _.result(jobResult, 'failed'),
label = options.name + ':',
tunnel = this.tunnel;
if (errored || failures) {
if (errored && this.attempts < this.retries) {
this.restart();
return;
}
var details = 'See ' + jobUrl + ' for details.';
this.failed = true;
logInline();
if (failures) {
console.error(label + ' %s ' + chalk.red('failed') + ' %d test' + (failures > 1 ? 's' : '') + '. %s', description, failures, details);
}
else if (tunnel.attempts < tunnel.retries) {
tunnel.restart();
return;
}
else {
if (typeof message == 'undefined') {
message = 'Results are unavailable. ' + details;
}
console.error(label, description, chalk.red('failed') + ';', message);
}
}
else {
logInline();
console.log(label, description, chalk.green('passed'));
}
this.running = false;
this.emit('complete');
}
/**
* The `SauceTunnel#start` callback used by `Tunnel#start`.
*
* @private
* @param {boolean} success The connection success indicator.
*/
function onTunnelStart(success) {
this.starting = false;
if (this._timeoutId) {
clearTimeout(this._timeoutId);
this._timeoutId = null;
}
if (!success) {
if (this.attempts < this.retries) {
this.restart();
return;
}
logInline();
console.error('Failed to open Sauce Connect tunnel');
process.exit(2);
}
logInline();
console.log('Sauce Connect tunnel opened');
var jobs = this.jobs;
push.apply(jobs.queue, jobs.all);
this.running = true;
this.emit('start');
console.log('Starting jobs...');
this.dequeue();
}
/*----------------------------------------------------------------------------*/
/**
* The Job constructor.
*
* @private
* @param {Object} [properties] The properties to initialize a job with.
*/
function Job(properties) {
EventEmitter.call(this);
this.options = {};
_.merge(this, properties);
_.defaults(this.options, _.cloneDeep(jobOptions));
this.attempts = 0;
this.checking = this.failed = this.removing = this.resetting = this.restarting = this.running = this.starting = this.stopping = false;
this._pollerId = this.id = this.result = this.taskId = this.url = null;
}
util.inherits(Job, EventEmitter);
/**
* Removes the job.
*
* @memberOf Job
* @param {Function} callback The function called once the job is removed.
* @param {Object} Returns the job instance.
*/
Job.prototype.remove = function(callback) {
this.once('remove', _.iteratee(callback));
if (this.removing) {
return this;
}
this.removing = true;
return this.stop(function() {
var onRemove = _.bind(onJobRemove, this);
if (!this.id) {
_.defer(onRemove);
return;
}
request.del(_.template('https://saucelabs.com/rest/v1/${user}/jobs/${id}')(this), {
'auth': { 'user': this.user, 'pass': this.pass }
}, onRemove);
});
};
/**
* Resets the job.
*
* @memberOf Job
* @param {Function} callback The function called once the job is reset.
* @param {Object} Returns the job instance.
*/
Job.prototype.reset = function(callback) {
this.once('reset', _.iteratee(callback));
if (this.resetting) {
return this;
}
this.resetting = true;
return this.remove(onJobReset);
};
/**
* Restarts the job.
*
* @memberOf Job
* @param {Function} callback The function called once the job is restarted.
* @param {Object} Returns the job instance.
*/
Job.prototype.restart = function(callback) {
this.once('restart', _.iteratee(callback));
if (this.restarting) {
return this;
}
this.restarting = true;
var options = this.options,
platform = options.platforms[0],
description = browserName(platform[1]) + ' ' + platform[2] + ' on ' + _.startCase(platform[0]),
label = options.name + ':';
logInline();
console.log('%s %s restart %d of %d', label, description, ++this.attempts, this.retries);
return this.remove(onGenericRestart);
};
/**
* Starts the job.
*
* @memberOf Job
* @param {Function} callback The function called once the job is started.
* @param {Object} Returns the job instance.
*/
Job.prototype.start = function(callback) {
this.once('start', _.iteratee(callback));
if (this.starting || this.running) {
return this;
}
this.starting = true;
request.post(_.template('https://saucelabs.com/rest/v1/${user}/js-tests')(this), {
'auth': { 'user': this.user, 'pass': this.pass },
'json': this.options
}, _.bind(onJobStart, this));
return this;
};
/**
* Checks the status of a job.
*
* @memberOf Job
* @param {Function} callback The function called once the status is resolved.
* @param {Object} Returns the job instance.
*/
Job.prototype.status = function(callback) {
this.once('status', _.iteratee(callback));
if (this.checking || this.removing || this.resetting || this.restarting || this.starting || this.stopping) {
return this;
}
this._pollerId = null;
this.checking = true;
request.post(_.template('https://saucelabs.com/rest/v1/${user}/js-tests/status')(this), {
'auth': { 'user': this.user, 'pass': this.pass },
'json': { 'js tests': [this.taskId] }
}, _.bind(onJobStatus, this));
return this;
};
/**
* Stops the job.
*
* @memberOf Job
* @param {Function} callback The function called once the job is stopped.
* @param {Object} Returns the job instance.
*/
Job.prototype.stop = function(callback) {
this.once('stop', _.iteratee(callback));
if (this.stopping) {
return this;
}
this.stopping = true;
if (this._pollerId) {
clearTimeout(this._pollerId);
this._pollerId = null;
this.checking = false;
}
var onStop = _.bind(onGenericStop, this);
if (!this.running || !this.id) {
_.defer(onStop);
return this;
}
request.put(_.template('https://saucelabs.com/rest/v1/${user}/jobs/${id}/stop')(this), {
'auth': { 'user': this.user, 'pass': this.pass }
}, onStop);
return this;
};
/*----------------------------------------------------------------------------*/
/**
* The Tunnel constructor.
*
* @private
* @param {Object} [properties] The properties to initialize the tunnel with.
*/
function Tunnel(properties) {
EventEmitter.call(this);
_.merge(this, properties);
var active = [],
queue = [];
var all = _.map(this.platforms, _.bind(function(platform) {
return new Job(_.merge({
'user': this.user,
'pass': this.pass,
'tunnel': this,
'options': { 'platforms': [platform] }
}, this.job));
}, this));
var completed = 0,
restarted = [],
success = true,
total = all.length,
tunnel = this;
_.invokeMap(all, 'on', 'complete', function() {
_.pull(active, this);
if (success) {
success = !this.failed;
}
if (++completed == total) {
tunnel.stop(_.partial(tunnel.emit, 'complete', success));
return;
}
tunnel.dequeue();
});
_.invokeMap(all, 'on', 'restart', function() {
if (!_.includes(restarted, this)) {
restarted.push(this);
}
// Restart tunnel if all active jobs have restarted.
var threshold = Math.min(all.length, _.isFinite(throttled) ? throttled : 3);
if (tunnel.attempts < tunnel.retries &&
active.length >= threshold && _.isEmpty(_.difference(active, restarted))) {
tunnel.restart();
}
});
this.on('restart', function() {
completed = 0;
success = true;
restarted.length = 0;
});
this._timeoutId = null;
this.attempts = 0;
this.restarting = this.running = this.starting = this.stopping = false;
this.jobs = { 'active': active, 'all': all, 'queue': queue };
this.connection = new SauceTunnel(this.user, this.pass, this.id, this.tunneled, ['-P', '0']);
}
util.inherits(Tunnel, EventEmitter);
/**
* Restarts the tunnel.
*
* @memberOf Tunnel
* @param {Function} callback The function called once the tunnel is restarted.
*/
Tunnel.prototype.restart = function(callback) {
this.once('restart', _.iteratee(callback));
if (this.restarting) {
return this;
}
this.restarting = true;
logInline();
console.log('Tunnel %s: restart %d of %d', this.id, ++this.attempts, this.retries);
var jobs = this.jobs,
active = jobs.active,
all = jobs.all;
var reset = _.after(all.length, _.bind(this.stop, this, onGenericRestart)),
stop = _.after(active.length, _.partial(_.invokeMap, all, 'reset', reset));
if (_.isEmpty(active)) {
_.defer(stop);
}
if (_.isEmpty(all)) {
_.defer(reset);
}
_.invokeMap(active, 'stop', function() {
_.pull(active, this);
stop();
});
if (this._timeoutId) {
clearTimeout(this._timeoutId);
this._timeoutId = null;
}
return this;
};
/**
* Starts the tunnel.
*
* @memberOf Tunnel
* @param {Function} callback The function called once the tunnel is started.
* @param {Object} Returns the tunnel instance.
*/
Tunnel.prototype.start = function(callback) {
this.once('start', _.iteratee(callback));
if (this.starting || this.running) {
return this;
}
this.starting = true;
logInline();
console.log('Opening Sauce Connect tunnel...');
var onStart = _.bind(onTunnelStart, this);
if (this.timeout) {
this._timeoutId = _.delay(onStart, this.timeout * 1000, false);
}
this.connection.start(onStart);
return this;
};
/**
* Removes jobs from the queue and starts them.
*
* @memberOf Tunnel
* @param {Object} Returns the tunnel instance.
*/
Tunnel.prototype.dequeue = function() {
var count = 0,
jobs = this.jobs,
active = jobs.active,
queue = jobs.queue,
throttled = this.throttled;
while (queue.length && (active.length < throttled)) {
var job = queue.shift();
active.push(job);
_.delay(_.bind(job.start, job), ++count * 1000);
}
return this;
};
/**
* Stops the tunnel.
*
* @memberOf Tunnel
* @param {Function} callback The function called once the tunnel is stopped.
* @param {Object} Returns the tunnel instance.
*/
Tunnel.prototype.stop = function(callback) {
this.once('stop', _.iteratee(callback));
if (this.stopping) {
return this;
}
this.stopping = true;
logInline();
console.log('Shutting down Sauce Connect tunnel...');
var jobs = this.jobs,
active = jobs.active;
var stop = _.after(active.length, _.bind(function() {
var onStop = _.bind(onGenericStop, this);
if (this.running) {
this.connection.stop(onStop);
} else {
onStop();
}
}, this));
jobs.queue.length = 0;
if (_.isEmpty(active)) {
_.defer(stop);
}
_.invokeMap(active, 'stop', function() {
_.pull(active, this);
stop();
});
if (this._timeoutId) {
clearTimeout(this._timeoutId);
this._timeoutId = null;
}
return this;
};
/*----------------------------------------------------------------------------*/
// Cleanup any inline logs when exited via `ctrl+c`.
process.on('SIGINT', function() {
logInline();
process.exit();
});
// Create a web server for the current working directory.
http.createServer(function(req, res) {
// See http://msdn.microsoft.com/en-us/library/ff955275(v=vs.85).aspx.
if (compatMode && path.extname(url.parse(req.url).pathname) == '.html') {
res.setHeader('X-UA-Compatible', 'IE=' + compatMode);
}
mount(req, res);
}).listen(port);
// Setup Sauce Connect so we can use this server from Sauce Labs.
var tunnel = new Tunnel({
'user': username,
'pass': accessKey,
'id': tunnelId,
'job': { 'retries': maxJobRetries, 'statusInterval': statusInterval },
'platforms': platforms,
'retries': maxTunnelRetries,
'throttled': throttled,
'tunneled': tunneled,
'timeout': tunnelTimeout
});
tunnel.on('complete', function(success) {
process.exit(success ? 0 : 1);
});
tunnel.start();
setInterval(logThrobber, throbberDelay);

1799
test/test-fp.js Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,90 +0,0 @@
;(function(window) {
'use strict';
/** `QUnit.addEvent` shortcut */
var addEvent = QUnit.addEvent;
/** The Lo-Dash build to load */
var build = (/build=([^&]+)/.exec(location.search) || [])[1];
/** A flag to determine if RequireJS should be loaded */
var norequire = /[?&]norequire=true(?:&|$)/.test(location.search);
/*--------------------------------------------------------------------------*/
// assign `QUnit.config` properties
QUnit.config.lodashFilename = (function() {
switch (build) {
case 'prod': return 'lodash.min';
case 'custom': return 'lodash.custom.min';
case 'custom-debug': return 'lodash.custom';
}
return 'lodash';
}());
// assign `QUnit.urlParams` properties
QUnit.extend(QUnit.urlParams, {
'build': build,
'norequire': norequire
});
// initialize the build dropdown
addEvent(window, 'load', function() {
function eventHandler(event) {
var search = location.search.replace(/^\?|&?(?:build|norequire)=[^&]*&?/g, '');
if (event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true;
}
location.href =
location.href.split('?')[0] + '?' +
(search ? search + '&' : '') + 'build=' +
dropdown[dropdown.selectedIndex].value +
(checkbox.checked ? '&norequire=true' : '');
}
function init() {
var header = document.getElementById('qunit-header');
if (header) {
header.appendChild(label1);
header.appendChild(label2);
dropdown.selectedIndex = (function() {
switch (build) {
case 'prod': return 1;
case 'custom': return 2;
case 'custom-debug': return 3;
}
return 0;
}());
checkbox.checked = norequire;
addEvent(checkbox, 'click', eventHandler);
addEvent(dropdown, 'change', eventHandler);
}
else {
setTimeout(init, 15);
}
}
var label1 = document.createElement('label');
label1.innerHTML =
'<input name="norequire" type="checkbox">norequire</label>';
var label2 = document.createElement('label');
label2.innerHTML =
'<select name="build">' +
'<option value="dev">developement</option>' +
'<option value="prod">production</option>' +
'<option value="custom">custom</option>' +
'<option value="custom-debug">custom (debug)</option>' +
'</select>build';
var checkbox = label1.firstChild,
dropdown = label2.firstChild;
init();
});
}(this));

26383
test/test.js

File diff suppressed because it is too large Load Diff

View File

@@ -1,42 +1,484 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Underscore Test Suite</title>
<link rel="stylesheet" href="../vendor/underscore/test/vendor/qunit.css">
<style>
#jslitmus, iframe {
display: none;
}
</style>
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture">
<div id="map-test">
<div id="id1"></div>
<div id="id2"></div>
</div>
</div>
<script src="../vendor/backbone/test/vendor/json2.js"></script>
<script src="../vendor/underscore/test/vendor/jquery.js"></script>
<script src="../vendor/underscore/test/vendor/qunit.js"></script>
<script src="../vendor/underscore/test/vendor/jslitmus.js"></script>
<script src="test-ui.js"></script>
<script>
document.write('<script src="../' + QUnit.config.lodashFilename + '.js"><\/script>');
</script>
<script src="../vendor/underscore/test/collections.js"></script>
<script src="../vendor/underscore/test/arrays.js"></script>
<script src="../vendor/underscore/test/functions.js"></script>
<script src="../vendor/underscore/test/objects.js"></script>
<script src="../vendor/underscore/test/utility.js"></script>
<script src="../vendor/underscore/test/chaining.js"></script>
<script type="text/html" id="template">
<%
// a comment
if (data) { data += 12345; }; %>
<li><%= data %></li>
</script>
</body>
<head>
<meta charset="utf-8">
<title>Underscore Test Suite</title>
<link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css">
</head>
<body>
<div id="qunit"></div>
<script>
// Avoid reporting tests to Sauce Labs when script errors occur.
if (location.port == '9001') {
window.onerror = function(message) {
if (window.QUnit) {
QUnit.config.done.length = 0;
}
global_test_results = { 'message': message };
};
}
</script>
<script src="../node_modules/qunitjs/qunit/qunit.js"></script>
<script src="../node_modules/qunit-extras/qunit-extras.js"></script>
<script src="../node_modules/jquery/dist/jquery.js"></script>
<script src="../node_modules/platform/platform.js"></script>
<script src="./asset/test-ui.js"></script>
<script src="../lodash.js"></script>
<script>
QUnit.config.asyncRetries = 10;
QUnit.config.hidepassed = true;
QUnit.config.excused = {
'Arrays': {
'chunk': [
'defaults to empty array (chunk size 0)'
],
'difference': [
'can perform an OO-style difference'
],
'drop': [
'is an alias for rest'
],
'first': [
'returns an empty array when n <= 0 (0 case)',
'returns an empty array when n <= 0 (negative case)',
'can fetch the first n elements',
'returns the whole array if n > length'
],
'findIndex': [
'called with context'
],
'findLastIndex': [
'called with context'
],
'flatten': [
'supports empty arrays',
'can flatten nested arrays',
'works on an arguments object',
'can handle very deep arrays'
],
'head': [
'is an alias for first'
],
'indexOf': [
"sorted indexOf doesn't uses binary search",
'0'
],
'initial': [
'returns all but the last n elements',
'returns an empty array when n > length',
'works on an arguments object'
],
'intersection': [
'can perform an OO-style intersection'
],
'last': [
'returns an empty array when n <= 0 (0 case)',
'returns an empty array when n <= 0 (negative case)',
'can fetch the last n elements',
'returns the whole array if n > length'
],
'lastIndexOf': [
'should treat falsey `fromIndex` values, except `0` and `NaN`, as `array.length`',
'should treat non-number `fromIndex` values as `array.length`',
'[0,-1,-1]'
],
'object': [
'an array of pairs zipped together into an object',
'an object converted to pairs and back to an object'
],
'range': [
'range with two arguments a &amp; b, b&lt;a generates an empty array'
],
'rest': [
'returns the whole array when index is 0',
'returns elements starting at the given index',
'works on an arguments object'
],
'sortedIndex': [
'2',
'3'
],
'tail': [
'is an alias for rest'
],
'take': [
'is an alias for first'
],
'uniq': [
'uses the result of `iterator` for uniqueness comparisons (unsorted case)',
'`sorted` argument defaults to false when omitted',
'when `iterator` is a string, uses that key for comparisons (unsorted case)',
'uses the result of `iterator` for uniqueness comparisons (sorted case)',
'when `iterator` is a string, uses that key for comparisons (sorted case)',
'can use falsey pluck like iterator'
],
'union': [
'can perform an OO-style union'
]
},
'Chaining': {
'pop': true,
'shift': true,
'splice': true,
'reverse/concat/unshift/pop/map': [
'can chain together array functions.'
]
},
'Collections': {
'lookupIterator with contexts': true,
'Iterating objects with sketchy length properties': true,
'Resistant to collection length and properties changing while iterating': true,
'countBy': [
'true'
],
'each': [
'context object property accessed'
],
'every': [
'Can be called with object',
'Died on test #15',
'context works'
],
'filter': [
'given context',
'[{"a":1,"b":2},{"a":1,"b":3},{"a":1,"b":4}]',
'[{"a":1,"b":2},{"a":2,"b":2}]',
'Empty object accepts all items',
'OO-filter'
],
'find': [
'{"a":1,"b":4}',
'undefined when not found',
'undefined when searching empty list',
'works on objects',
'undefined',
'called with context'
],
'findWhere': [
'checks properties given function'
],
'groupBy': [
'true'
],
'includes': [
"doesn't delegate to binary search"
],
'invoke': [
'handles null & undefined'
],
'map': [
'tripled numbers with context',
'OO-style doubled numbers'
],
'max': [
'can handle null/undefined',
'can perform a computation-based max',
'Maximum value of an empty object',
'Maximum value of an empty array',
'Maximum value of a non-numeric collection',
'Finds correct max in array starting with num and containing a NaN',
'Finds correct max in array starting with NaN',
'Respects iterator return value of -Infinity',
'String keys use property iterator',
'Iterator context',
'Lookup falsy iterator'
],
'min': [
'can handle null/undefined',
'can perform a computation-based min',
'Minimum value of an empty object',
'Minimum value of an empty array',
'Minimum value of a non-numeric collection',
'Finds correct min in array starting with NaN',
'Respects iterator return value of Infinity',
'String keys use property iterator',
'Iterator context',
'Lookup falsy iterator'
],
'partition': [
'can reference the array index',
'Died on test #8',
'partition takes a context argument',
'function(a){[code]}'
],
'pluck': [
'[1]'
],
'reduce': [
'can reduce with a context object'
],
'reject': [
'Returns empty list given empty array'
],
'sample': [
'behaves correctly on negative n',
'Died on test #3'
],
'some': [
'Can be called with object',
'Died on test #17',
'context works'
],
'where': [
'checks properties given function'
],
'Can use various collection methods on NodeLists': [
'<span id="id2"></span>',
'<span id="id1"></span>'
]
},
'Functions': {
'debounce asap': true,
'debounce asap cancel': true,
'debounce after system time is set backwards': true,
'debounce asap recursively': true,
'throttle repeatedly with results': true,
'more throttle does not trigger leading call when leading is set to false': true,
'throttle does not trigger trailing call when trailing is set to false': true,
'before': [
'stores a memo to the last value',
'provides context'
],
'bind': [
'Died on test #2'
],
'bindAll': [
'throws an error for bindAll with no functions named'
],
'memoize': [
'{"bar":"BAR","foo":"FOO"}',
'Died on test #8'
],
'partial':[
'can partially apply with placeholders',
'accepts more arguments than the number of placeholders',
'accepts fewer arguments than the number of placeholders',
'unfilled placeholders are undefined',
'keeps prototype',
'allows the placeholder to be swapped out'
]
},
'Objects': {
'#1929 Typed Array constructors are functions': true,
'allKeys': [
'is not fooled by sparse arrays; see issue #95',
'is not fooled by sparse arrays with additional properties',
'[]'
],
'defaults': [
'defaults skips nulls',
'defaults skips undefined'
],
'extend': [
'extending null results in null',
'extending undefined results in undefined'
],
'extendOwn': [
'extending non-objects results in returning the non-object value',
'extending undefined results in undefined'
],
'functions': [
'also looks up functions on the prototype'
],
'isEqual': [
'`0` is not equal to `-0`',
'Commutative equality is implemented for `0` and `-0`',
'`new Number(0)` and `-0` are not equal',
'Commutative equality is implemented for `new Number(0)` and `-0`',
'false'
],
'isFinite': [
'Numeric strings are numbers',
'Number instances can be finite'
],
'isMatch': [
'doesnt falsey match constructor on undefined/null'
],
'isSet': [
'Died on test #9'
],
'findKey': [
'called with context'
],
'keys': [
'is not fooled by sparse arrays; see issue #95',
'[]'
],
'mapObject': [
'keep context',
'called with context',
'mapValue identity'
],
'matcher': [
'null matches null',
'treats primitives as empty'
],
'omit': [
'can accept a predicate',
'function is given context'
],
'pick': [
'can accept a predicate and context',
'function is given context'
]
},
'Utility': {
'noConflict (node vm)': true,
'now': [
'Produces the correct time in milliseconds'
],
'times': [
'works as a wrapper'
]
}
};
var mixinPrereqs = (function() {
var aliasToReal = {
'all': 'every',
'allKeys': 'keysIn',
'any': 'some',
'collect': 'map',
'compose': 'flowRight',
'contains': 'includes',
'detect': 'find',
'extendOwn': 'assign',
'findWhere': 'find',
'foldl': 'reduce',
'foldr': 'reduceRight',
'include': 'includes',
'indexBy': 'keyBy',
'inject': 'reduce',
'invoke': 'invokeMap',
'mapObject': 'mapValues',
'matcher': 'matches',
'methods': 'functions',
'object': 'zipObject',
'pairs': 'toPairs',
'pluck': 'map',
'restParam': 'restArgs',
'select': 'filter',
'unique': 'uniq',
'where': 'filter'
};
var keyMap = {
'rest': 'tail',
'restArgs': 'rest'
};
var lodash = _.noConflict();
return function(_) {
lodash.defaultsDeep(_, { 'templateSettings': lodash.templateSettings });
lodash.mixin(_, lodash.pick(lodash, lodash.difference(lodash.functions(lodash), lodash.functions(_))));
lodash.forOwn(keyMap, function(realName, otherName) {
_[otherName] = lodash[realName];
_.prototype[otherName] = lodash.prototype[realName];
});
lodash.forOwn(aliasToReal, function(realName, alias) {
_[alias] = _[realName];
_.prototype[alias] = _.prototype[realName];
});
};
}());
// Only excuse in Sauce Labs.
if (!ui.isSauceLabs) {
delete QUnit.config.excused.Functions['throttle does not trigger trailing call when trailing is set to false'];
delete QUnit.config.excused.Utility.now;
}
// Load prerequisite scripts.
document.write(ui.urlParams.loader == 'none'
? '<script src="' + ui.buildPath + '"><\/script>'
: '<script data-dojo-config="async:1" src="' + ui.loaderPath + '"><\/script>'
);
</script>
<script>
if (ui.urlParams.loader == 'none') {
mixinPrereqs(_);
document.write([
'<script src="../vendor/underscore/test/collections.js"><\/script>',
'<script src="../vendor/underscore/test/arrays.js"><\/script>',
'<script src="../vendor/underscore/test/functions.js"><\/script>',
'<script src="../vendor/underscore/test/objects.js"><\/script>',
'<script src="../vendor/underscore/test/cross-document.js"><\/script>',
'<script src="../vendor/underscore/test/utility.js"><\/script>',
'<script src="../vendor/underscore/test/chaining.js"><\/script>'
].join('\n'));
}
</script>
<script>
(function() {
if (window.curl) {
curl.config({ 'apiName': 'require' });
}
if (!window.require) {
return;
}
// Wrap to work around tests assuming Node `require` use.
require = (function(func) {
return function() {
return arguments[0] === '..' ? window._ : func.apply(null, arguments);
};
}(require));
var reBasename = /[\w.-]+$/,
basePath = ('//' + location.host + location.pathname.replace(reBasename, '')).replace(/\btest\/$/, ''),
modulePath = ui.buildPath.replace(/\.js$/, ''),
locationPath = modulePath.replace(reBasename, '').replace(/^\/|\/$/g, ''),
moduleId = /\bunderscore\b/i.test(ui.buildPath) ? 'underscore' : 'lodash',
moduleMain = modulePath.match(reBasename)[0],
uid = +new Date;
function getConfig() {
var result = {
'baseUrl': './',
'urlArgs': 't=' + uid++,
'waitSeconds': 0,
'paths': {},
'packages': [{
'name': 'test',
'location': '../vendor/underscore/test',
'config': {
// Work around no global being exported.
'exports': 'QUnit',
'loader': 'curl/loader/legacy'
}
}]
};
if (ui.isModularize) {
result.packages.push({
'name': moduleId,
'location': locationPath,
'main': moduleMain
});
} else {
result.paths[moduleId] = modulePath;
}
return result;
}
QUnit.config.autostart = false;
require(getConfig(), [moduleId], function(lodash) {
mixinPrereqs(lodash);
require(getConfig(), [
'test/collections',
'test/arrays',
'test/functions',
'test/objects',
'test/cross-document',
'test/utility',
'test/chaining'
], function() {
QUnit.start();
});
});
}());
</script>
</body>
</html>

View File

@@ -1,4 +1,4 @@
Copyright (c) 2010-2012 Jeremy Ashkenas, DocumentCloud
Copyright (c) 2010-2016 Jeremy Ashkenas, DocumentCloud
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
@@ -19,4 +19,4 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -1,26 +0,0 @@
____ __ __
/\ _`\ /\ \ /\ \ __
\ \ \ \ \ __ ___\ \ \/'\\ \ \____ ___ ___ __ /\_\ ____
\ \ _ <' /'__`\ /'___\ \ , < \ \ '__`\ / __`\ /' _ `\ /'__`\ \/\ \ /',__\
\ \ \ \ \/\ \ \.\_/\ \__/\ \ \\`\\ \ \ \ \/\ \ \ \/\ \/\ \/\ __/ __ \ \ \/\__, `\
\ \____/\ \__/.\_\ \____\\ \_\ \_\ \_,__/\ \____/\ \_\ \_\ \____\/\_\_\ \ \/\____/
\/___/ \/__/\/_/\/____/ \/_/\/_/\/___/ \/___/ \/_/\/_/\/____/\/_/\ \_\ \/___/
\ \____/
\/___/
(_'_______________________________________________________________________________'_)
(_.———————————————————————————————————————————————————————————————————————————————._)
Backbone supplies structure to JavaScript-heavy applications by providing models key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing application over a RESTful JSON interface.
For Docs, License, Tests, pre-packed downloads, and everything else, really, see:
http://backbonejs.org
To suggest a feature, report a bug, or general discussion:
http://github.com/documentcloud/backbone/issues/
All contributors are listed here:
http://github.com/documentcloud/backbone/contributors
Special thanks to Robert Kieffer for the original philosophy behind Backbone.
http://github.com/broofa

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,79 +1,394 @@
$(document).ready(function() {
(function() {
module("Backbone.Events");
QUnit.module('Backbone.Events');
test("Events: on and trigger", 2, function() {
var obj = { counter: 0 };
_.extend(obj,Backbone.Events);
QUnit.test('on and trigger', function(assert) {
assert.expect(2);
var obj = {counter: 0};
_.extend(obj, Backbone.Events);
obj.on('event', function() { obj.counter += 1; });
obj.trigger('event');
equal(obj.counter,1,'counter should be incremented.');
assert.equal(obj.counter, 1, 'counter should be incremented.');
obj.trigger('event');
obj.trigger('event');
obj.trigger('event');
obj.trigger('event');
equal(obj.counter, 5, 'counter should be incremented five times.');
assert.equal(obj.counter, 5, 'counter should be incremented five times.');
});
test("Events: binding and triggering multiple events", 4, function() {
var obj = { counter: 0 };
_.extend(obj,Backbone.Events);
QUnit.test('binding and triggering multiple events', function(assert) {
assert.expect(4);
var obj = {counter: 0};
_.extend(obj, Backbone.Events);
obj.on('a b c', function() { obj.counter += 1; });
obj.trigger('a');
equal(obj.counter, 1);
assert.equal(obj.counter, 1);
obj.trigger('a b');
equal(obj.counter, 3);
assert.equal(obj.counter, 3);
obj.trigger('c');
equal(obj.counter, 4);
assert.equal(obj.counter, 4);
obj.off('a c');
obj.trigger('a b c');
equal(obj.counter, 5);
assert.equal(obj.counter, 5);
});
test("Events: trigger all for each event", 3, function() {
var a, b, obj = { counter: 0 };
QUnit.test('binding and triggering with event maps', function(assert) {
var obj = {counter: 0};
_.extend(obj, Backbone.Events);
var increment = function() {
this.counter += 1;
};
obj.on({
a: increment,
b: increment,
c: increment
}, obj);
obj.trigger('a');
assert.equal(obj.counter, 1);
obj.trigger('a b');
assert.equal(obj.counter, 3);
obj.trigger('c');
assert.equal(obj.counter, 4);
obj.off({
a: increment,
c: increment
}, obj);
obj.trigger('a b c');
assert.equal(obj.counter, 5);
});
QUnit.test('binding and triggering multiple event names with event maps', function(assert) {
var obj = {counter: 0};
_.extend(obj, Backbone.Events);
var increment = function() {
this.counter += 1;
};
obj.on({
'a b c': increment
});
obj.trigger('a');
assert.equal(obj.counter, 1);
obj.trigger('a b');
assert.equal(obj.counter, 3);
obj.trigger('c');
assert.equal(obj.counter, 4);
obj.off({
'a c': increment
});
obj.trigger('a b c');
assert.equal(obj.counter, 5);
});
QUnit.test('binding and trigger with event maps context', function(assert) {
assert.expect(2);
var obj = {counter: 0};
var context = {};
_.extend(obj, Backbone.Events);
obj.on({
a: function() {
assert.strictEqual(this, context, 'defaults `context` to `callback` param');
}
}, context).trigger('a');
obj.off().on({
a: function() {
assert.strictEqual(this, context, 'will not override explicit `context` param');
}
}, this, context).trigger('a');
});
QUnit.test('listenTo and stopListening', function(assert) {
assert.expect(1);
var a = _.extend({}, Backbone.Events);
var b = _.extend({}, Backbone.Events);
a.listenTo(b, 'all', function(){ assert.ok(true); });
b.trigger('anything');
a.listenTo(b, 'all', function(){ assert.ok(false); });
a.stopListening();
b.trigger('anything');
});
QUnit.test('listenTo and stopListening with event maps', function(assert) {
assert.expect(4);
var a = _.extend({}, Backbone.Events);
var b = _.extend({}, Backbone.Events);
var cb = function(){ assert.ok(true); };
a.listenTo(b, {event: cb});
b.trigger('event');
a.listenTo(b, {event2: cb});
b.on('event2', cb);
a.stopListening(b, {event2: cb});
b.trigger('event event2');
a.stopListening();
b.trigger('event event2');
});
QUnit.test('stopListening with omitted args', function(assert) {
assert.expect(2);
var a = _.extend({}, Backbone.Events);
var b = _.extend({}, Backbone.Events);
var cb = function() { assert.ok(true); };
a.listenTo(b, 'event', cb);
b.on('event', cb);
a.listenTo(b, 'event2', cb);
a.stopListening(null, {event: cb});
b.trigger('event event2');
b.off();
a.listenTo(b, 'event event2', cb);
a.stopListening(null, 'event');
a.stopListening();
b.trigger('event2');
});
QUnit.test('listenToOnce', function(assert) {
assert.expect(2);
// Same as the previous test, but we use once rather than having to explicitly unbind
var obj = {counterA: 0, counterB: 0};
_.extend(obj, Backbone.Events);
var incrA = function(){ obj.counterA += 1; obj.trigger('event'); };
var incrB = function(){ obj.counterB += 1; };
obj.listenToOnce(obj, 'event', incrA);
obj.listenToOnce(obj, 'event', incrB);
obj.trigger('event');
assert.equal(obj.counterA, 1, 'counterA should have only been incremented once.');
assert.equal(obj.counterB, 1, 'counterB should have only been incremented once.');
});
QUnit.test('listenToOnce and stopListening', function(assert) {
assert.expect(1);
var a = _.extend({}, Backbone.Events);
var b = _.extend({}, Backbone.Events);
a.listenToOnce(b, 'all', function() { assert.ok(true); });
b.trigger('anything');
b.trigger('anything');
a.listenToOnce(b, 'all', function() { assert.ok(false); });
a.stopListening();
b.trigger('anything');
});
QUnit.test('listenTo, listenToOnce and stopListening', function(assert) {
assert.expect(1);
var a = _.extend({}, Backbone.Events);
var b = _.extend({}, Backbone.Events);
a.listenToOnce(b, 'all', function() { assert.ok(true); });
b.trigger('anything');
b.trigger('anything');
a.listenTo(b, 'all', function() { assert.ok(false); });
a.stopListening();
b.trigger('anything');
});
QUnit.test('listenTo and stopListening with event maps', function(assert) {
assert.expect(1);
var a = _.extend({}, Backbone.Events);
var b = _.extend({}, Backbone.Events);
a.listenTo(b, {change: function(){ assert.ok(true); }});
b.trigger('change');
a.listenTo(b, {change: function(){ assert.ok(false); }});
a.stopListening();
b.trigger('change');
});
QUnit.test('listenTo yourself', function(assert) {
assert.expect(1);
var e = _.extend({}, Backbone.Events);
e.listenTo(e, 'foo', function(){ assert.ok(true); });
e.trigger('foo');
});
QUnit.test('listenTo yourself cleans yourself up with stopListening', function(assert) {
assert.expect(1);
var e = _.extend({}, Backbone.Events);
e.listenTo(e, 'foo', function(){ assert.ok(true); });
e.trigger('foo');
e.stopListening();
e.trigger('foo');
});
QUnit.test('stopListening cleans up references', function(assert) {
assert.expect(12);
var a = _.extend({}, Backbone.Events);
var b = _.extend({}, Backbone.Events);
var fn = function() {};
b.on('event', fn);
a.listenTo(b, 'event', fn).stopListening();
assert.equal(_.size(a._listeningTo), 0);
assert.equal(_.size(b._events.event), 1);
assert.equal(_.size(b._listeners), 0);
a.listenTo(b, 'event', fn).stopListening(b);
assert.equal(_.size(a._listeningTo), 0);
assert.equal(_.size(b._events.event), 1);
assert.equal(_.size(b._listeners), 0);
a.listenTo(b, 'event', fn).stopListening(b, 'event');
assert.equal(_.size(a._listeningTo), 0);
assert.equal(_.size(b._events.event), 1);
assert.equal(_.size(b._listeners), 0);
a.listenTo(b, 'event', fn).stopListening(b, 'event', fn);
assert.equal(_.size(a._listeningTo), 0);
assert.equal(_.size(b._events.event), 1);
assert.equal(_.size(b._listeners), 0);
});
QUnit.test('stopListening cleans up references from listenToOnce', function(assert) {
assert.expect(12);
var a = _.extend({}, Backbone.Events);
var b = _.extend({}, Backbone.Events);
var fn = function() {};
b.on('event', fn);
a.listenToOnce(b, 'event', fn).stopListening();
assert.equal(_.size(a._listeningTo), 0);
assert.equal(_.size(b._events.event), 1);
assert.equal(_.size(b._listeners), 0);
a.listenToOnce(b, 'event', fn).stopListening(b);
assert.equal(_.size(a._listeningTo), 0);
assert.equal(_.size(b._events.event), 1);
assert.equal(_.size(b._listeners), 0);
a.listenToOnce(b, 'event', fn).stopListening(b, 'event');
assert.equal(_.size(a._listeningTo), 0);
assert.equal(_.size(b._events.event), 1);
assert.equal(_.size(b._listeners), 0);
a.listenToOnce(b, 'event', fn).stopListening(b, 'event', fn);
assert.equal(_.size(a._listeningTo), 0);
assert.equal(_.size(b._events.event), 1);
assert.equal(_.size(b._listeners), 0);
});
QUnit.test('listenTo and off cleaning up references', function(assert) {
assert.expect(8);
var a = _.extend({}, Backbone.Events);
var b = _.extend({}, Backbone.Events);
var fn = function() {};
a.listenTo(b, 'event', fn);
b.off();
assert.equal(_.size(a._listeningTo), 0);
assert.equal(_.size(b._listeners), 0);
a.listenTo(b, 'event', fn);
b.off('event');
assert.equal(_.size(a._listeningTo), 0);
assert.equal(_.size(b._listeners), 0);
a.listenTo(b, 'event', fn);
b.off(null, fn);
assert.equal(_.size(a._listeningTo), 0);
assert.equal(_.size(b._listeners), 0);
a.listenTo(b, 'event', fn);
b.off(null, null, a);
assert.equal(_.size(a._listeningTo), 0);
assert.equal(_.size(b._listeners), 0);
});
QUnit.test('listenTo and stopListening cleaning up references', function(assert) {
assert.expect(2);
var a = _.extend({}, Backbone.Events);
var b = _.extend({}, Backbone.Events);
a.listenTo(b, 'all', function(){ assert.ok(true); });
b.trigger('anything');
a.listenTo(b, 'other', function(){ assert.ok(false); });
a.stopListening(b, 'other');
a.stopListening(b, 'all');
assert.equal(_.size(a._listeningTo), 0);
});
QUnit.test('listenToOnce without context cleans up references after the event has fired', function(assert) {
assert.expect(2);
var a = _.extend({}, Backbone.Events);
var b = _.extend({}, Backbone.Events);
a.listenToOnce(b, 'all', function(){ assert.ok(true); });
b.trigger('anything');
assert.equal(_.size(a._listeningTo), 0);
});
QUnit.test('listenToOnce with event maps cleans up references', function(assert) {
assert.expect(2);
var a = _.extend({}, Backbone.Events);
var b = _.extend({}, Backbone.Events);
a.listenToOnce(b, {
one: function() { assert.ok(true); },
two: function() { assert.ok(false); }
});
b.trigger('one');
assert.equal(_.size(a._listeningTo), 1);
});
QUnit.test('listenToOnce with event maps binds the correct `this`', function(assert) {
assert.expect(1);
var a = _.extend({}, Backbone.Events);
var b = _.extend({}, Backbone.Events);
a.listenToOnce(b, {
one: function() { assert.ok(this === a); },
two: function() { assert.ok(false); }
});
b.trigger('one');
});
QUnit.test("listenTo with empty callback doesn't throw an error", function(assert) {
assert.expect(1);
var e = _.extend({}, Backbone.Events);
e.listenTo(e, 'foo', null);
e.trigger('foo');
assert.ok(true);
});
QUnit.test('trigger all for each event', function(assert) {
assert.expect(3);
var a, b, obj = {counter: 0};
_.extend(obj, Backbone.Events);
obj.on('all', function(event) {
obj.counter++;
if (event == 'a') a = true;
if (event == 'b') b = true;
if (event === 'a') a = true;
if (event === 'b') b = true;
})
.trigger('a b');
ok(a);
ok(b);
equal(obj.counter, 2);
assert.ok(a);
assert.ok(b);
assert.equal(obj.counter, 2);
});
test("Events: on, then unbind all functions", 1, function() {
var obj = { counter: 0 };
_.extend(obj,Backbone.Events);
QUnit.test('on, then unbind all functions', function(assert) {
assert.expect(1);
var obj = {counter: 0};
_.extend(obj, Backbone.Events);
var callback = function() { obj.counter += 1; };
obj.on('event', callback);
obj.trigger('event');
obj.off('event');
obj.trigger('event');
equal(obj.counter, 1, 'counter should have only been incremented once.');
assert.equal(obj.counter, 1, 'counter should have only been incremented once.');
});
test("Events: bind two callbacks, unbind only one", 2, function() {
var obj = { counterA: 0, counterB: 0 };
_.extend(obj,Backbone.Events);
QUnit.test('bind two callbacks, unbind only one', function(assert) {
assert.expect(2);
var obj = {counterA: 0, counterB: 0};
_.extend(obj, Backbone.Events);
var callback = function() { obj.counterA += 1; };
obj.on('event', callback);
obj.on('event', function() { obj.counterB += 1; });
obj.trigger('event');
obj.off('event', callback);
obj.trigger('event');
equal(obj.counterA, 1, 'counterA should have only been incremented once.');
equal(obj.counterB, 2, 'counterB should have been incremented twice.');
assert.equal(obj.counterA, 1, 'counterA should have only been incremented once.');
assert.equal(obj.counterB, 2, 'counterB should have been incremented twice.');
});
test("Events: unbind a callback in the midst of it firing", 1, function() {
QUnit.test('unbind a callback in the midst of it firing', function(assert) {
assert.expect(1);
var obj = {counter: 0};
_.extend(obj, Backbone.Events);
var callback = function() {
@@ -84,12 +399,13 @@ $(document).ready(function() {
obj.trigger('event');
obj.trigger('event');
obj.trigger('event');
equal(obj.counter, 1, 'the callback should have been unbound.');
assert.equal(obj.counter, 1, 'the callback should have been unbound.');
});
test("Events: two binds that unbind themeselves", 2, function() {
var obj = { counterA: 0, counterB: 0 };
_.extend(obj,Backbone.Events);
QUnit.test('two binds that unbind themeselves', function(assert) {
assert.expect(2);
var obj = {counterA: 0, counterB: 0};
_.extend(obj, Backbone.Events);
var incrA = function(){ obj.counterA += 1; obj.off('event', incrA); };
var incrB = function(){ obj.counterB += 1; obj.off('event', incrB); };
obj.on('event', incrA);
@@ -97,49 +413,64 @@ $(document).ready(function() {
obj.trigger('event');
obj.trigger('event');
obj.trigger('event');
equal(obj.counterA, 1, 'counterA should have only been incremented once.');
equal(obj.counterB, 1, 'counterB should have only been incremented once.');
assert.equal(obj.counterA, 1, 'counterA should have only been incremented once.');
assert.equal(obj.counterB, 1, 'counterB should have only been incremented once.');
});
test("Events: bind a callback with a supplied context", 1, function () {
var TestClass = function () {
return this;
};
TestClass.prototype.assertTrue = function () {
ok(true, '`this` was bound to the callback');
};
QUnit.test('bind a callback with a default context when none supplied', function(assert) {
assert.expect(1);
var obj = _.extend({
assertTrue: function() {
assert.equal(this, obj, '`this` was bound to the callback');
}
}, Backbone.Events);
var obj = _.extend({},Backbone.Events);
obj.on('event', function () { this.assertTrue(); }, (new TestClass));
obj.once('event', obj.assertTrue);
obj.trigger('event');
});
test("Events: nested trigger with unbind", 1, function () {
var obj = { counter: 0 };
QUnit.test('bind a callback with a supplied context', function(assert) {
assert.expect(1);
var TestClass = function() {
return this;
};
TestClass.prototype.assertTrue = function() {
assert.ok(true, '`this` was bound to the callback');
};
var obj = _.extend({}, Backbone.Events);
obj.on('event', function() { this.assertTrue(); }, new TestClass);
obj.trigger('event');
});
QUnit.test('nested trigger with unbind', function(assert) {
assert.expect(1);
var obj = {counter: 0};
_.extend(obj, Backbone.Events);
var incr1 = function(){ obj.counter += 1; obj.off('event', incr1); obj.trigger('event'); };
var incr2 = function(){ obj.counter += 1; };
obj.on('event', incr1);
obj.on('event', incr2);
obj.trigger('event');
equal(obj.counter, 3, 'counter should have been incremented three times');
assert.equal(obj.counter, 3, 'counter should have been incremented three times');
});
test("Events: callback list is not altered during trigger", 2, function () {
QUnit.test('callback list is not altered during trigger', function(assert) {
assert.expect(2);
var counter = 0, obj = _.extend({}, Backbone.Events);
var incr = function(){ counter++; };
obj.on('event', function(){ obj.on('event', incr).on('all', incr); })
.trigger('event');
equal(counter, 0, 'bind does not alter callback list');
obj.off()
.on('event', function(){ obj.off('event', incr).off('all', incr); })
.on('event', incr)
.on('all', incr)
.trigger('event');
equal(counter, 2, 'unbind does not alter callback list');
var incrOn = function(){ obj.on('event all', incr); };
var incrOff = function(){ obj.off('event all', incr); };
obj.on('event all', incrOn).trigger('event');
assert.equal(counter, 0, 'on does not alter callback list');
obj.off().on('event', incrOff).on('event all', incr).trigger('event');
assert.equal(counter, 2, 'off does not alter callback list');
});
test("#1282 - 'all' callback list is retrieved after each event.", 1, function() {
QUnit.test("#1282 - 'all' callback list is retrieved after each event.", function(assert) {
assert.expect(1);
var counter = 0;
var obj = _.extend({}, Backbone.Events);
var incr = function(){ counter++; };
@@ -147,49 +478,229 @@ $(document).ready(function() {
obj.on('y', incr).on('all', incr);
})
.trigger('x y');
strictEqual(counter, 2);
assert.strictEqual(counter, 2);
});
test("if no callback is provided, `on` is a noop", 0, function() {
QUnit.test('if no callback is provided, `on` is a noop', function(assert) {
assert.expect(0);
_.extend({}, Backbone.Events).on('test').trigger('test');
});
test("remove all events for a specific context", 4, function() {
QUnit.test('if callback is truthy but not a function, `on` should throw an error just like jQuery', function(assert) {
assert.expect(1);
var view = _.extend({}, Backbone.Events).on('test', 'noop');
assert.raises(function() {
view.trigger('test');
});
});
QUnit.test('remove all events for a specific context', function(assert) {
assert.expect(4);
var obj = _.extend({}, Backbone.Events);
obj.on('x y all', function() { ok(true); });
obj.on('x y all', function() { ok(false); }, obj);
obj.on('x y all', function() { assert.ok(true); });
obj.on('x y all', function() { assert.ok(false); }, obj);
obj.off(null, null, obj);
obj.trigger('x y');
});
test("remove all events for a specific callback", 4, function() {
QUnit.test('remove all events for a specific callback', function(assert) {
assert.expect(4);
var obj = _.extend({}, Backbone.Events);
var success = function() { ok(true); };
var fail = function() { ok(false); };
var success = function() { assert.ok(true); };
var fail = function() { assert.ok(false); };
obj.on('x y all', success);
obj.on('x y all', fail);
obj.off(null, fail);
obj.trigger('x y');
});
test("off is chainable", 3, function() {
QUnit.test('#1310 - off does not skip consecutive events', function(assert) {
assert.expect(0);
var obj = _.extend({}, Backbone.Events);
// With no events
ok(obj.off() === obj);
// When removing all events
obj.on('event', function(){}, obj);
ok(obj.off() === obj);
// When removing some events
obj.on('event', function(){}, obj);
ok(obj.off('event') === obj);
});
test("#1310 - off does not skip consecutive events", 0, function() {
var obj = _.extend({}, Backbone.Events);
obj.on('event', function() { ok(false); }, obj);
obj.on('event', function() { ok(false); }, obj);
obj.on('event', function() { assert.ok(false); }, obj);
obj.on('event', function() { assert.ok(false); }, obj);
obj.off(null, null, obj);
obj.trigger('event');
});
});
QUnit.test('once', function(assert) {
assert.expect(2);
// Same as the previous test, but we use once rather than having to explicitly unbind
var obj = {counterA: 0, counterB: 0};
_.extend(obj, Backbone.Events);
var incrA = function(){ obj.counterA += 1; obj.trigger('event'); };
var incrB = function(){ obj.counterB += 1; };
obj.once('event', incrA);
obj.once('event', incrB);
obj.trigger('event');
assert.equal(obj.counterA, 1, 'counterA should have only been incremented once.');
assert.equal(obj.counterB, 1, 'counterB should have only been incremented once.');
});
QUnit.test('once variant one', function(assert) {
assert.expect(3);
var f = function(){ assert.ok(true); };
var a = _.extend({}, Backbone.Events).once('event', f);
var b = _.extend({}, Backbone.Events).on('event', f);
a.trigger('event');
b.trigger('event');
b.trigger('event');
});
QUnit.test('once variant two', function(assert) {
assert.expect(3);
var f = function(){ assert.ok(true); };
var obj = _.extend({}, Backbone.Events);
obj
.once('event', f)
.on('event', f)
.trigger('event')
.trigger('event');
});
QUnit.test('once with off', function(assert) {
assert.expect(0);
var f = function(){ assert.ok(true); };
var obj = _.extend({}, Backbone.Events);
obj.once('event', f);
obj.off('event', f);
obj.trigger('event');
});
QUnit.test('once with event maps', function(assert) {
var obj = {counter: 0};
_.extend(obj, Backbone.Events);
var increment = function() {
this.counter += 1;
};
obj.once({
a: increment,
b: increment,
c: increment
}, obj);
obj.trigger('a');
assert.equal(obj.counter, 1);
obj.trigger('a b');
assert.equal(obj.counter, 2);
obj.trigger('c');
assert.equal(obj.counter, 3);
obj.trigger('a b c');
assert.equal(obj.counter, 3);
});
QUnit.test('bind a callback with a supplied context using once with object notation', function(assert) {
assert.expect(1);
var obj = {counter: 0};
var context = {};
_.extend(obj, Backbone.Events);
obj.once({
a: function() {
assert.strictEqual(this, context, 'defaults `context` to `callback` param');
}
}, context).trigger('a');
});
QUnit.test('once with off only by context', function(assert) {
assert.expect(0);
var context = {};
var obj = _.extend({}, Backbone.Events);
obj.once('event', function(){ assert.ok(false); }, context);
obj.off(null, null, context);
obj.trigger('event');
});
QUnit.test('Backbone object inherits Events', function(assert) {
assert.ok(Backbone.on === Backbone.Events.on);
});
QUnit.test('once with asynchronous events', function(assert) {
var done = assert.async();
assert.expect(1);
var func = _.debounce(function() { assert.ok(true); done(); }, 50);
var obj = _.extend({}, Backbone.Events).once('async', func);
obj.trigger('async');
obj.trigger('async');
});
QUnit.test('once with multiple events.', function(assert) {
assert.expect(2);
var obj = _.extend({}, Backbone.Events);
obj.once('x y', function() { assert.ok(true); });
obj.trigger('x y');
});
QUnit.test('Off during iteration with once.', function(assert) {
assert.expect(2);
var obj = _.extend({}, Backbone.Events);
var f = function(){ this.off('event', f); };
obj.on('event', f);
obj.once('event', function(){});
obj.on('event', function(){ assert.ok(true); });
obj.trigger('event');
obj.trigger('event');
});
QUnit.test('`once` on `all` should work as expected', function(assert) {
assert.expect(1);
Backbone.once('all', function() {
assert.ok(true);
Backbone.trigger('all');
});
Backbone.trigger('all');
});
QUnit.test('once without a callback is a noop', function(assert) {
assert.expect(0);
_.extend({}, Backbone.Events).once('event').trigger('event');
});
QUnit.test('listenToOnce without a callback is a noop', function(assert) {
assert.expect(0);
var obj = _.extend({}, Backbone.Events);
obj.listenToOnce(obj, 'event').trigger('event');
});
QUnit.test('event functions are chainable', function(assert) {
var obj = _.extend({}, Backbone.Events);
var obj2 = _.extend({}, Backbone.Events);
var fn = function() {};
assert.equal(obj, obj.trigger('noeventssetyet'));
assert.equal(obj, obj.off('noeventssetyet'));
assert.equal(obj, obj.stopListening('noeventssetyet'));
assert.equal(obj, obj.on('a', fn));
assert.equal(obj, obj.once('c', fn));
assert.equal(obj, obj.trigger('a'));
assert.equal(obj, obj.listenTo(obj2, 'a', fn));
assert.equal(obj, obj.listenToOnce(obj2, 'b', fn));
assert.equal(obj, obj.off('a c'));
assert.equal(obj, obj.stopListening(obj2, 'a'));
assert.equal(obj, obj.stopListening());
});
QUnit.test('#3448 - listenToOnce with space-separated events', function(assert) {
assert.expect(2);
var one = _.extend({}, Backbone.Events);
var two = _.extend({}, Backbone.Events);
var count = 1;
one.listenToOnce(two, 'x y', function(n) { assert.ok(n === count++); });
two.trigger('x', 1);
two.trigger('x', 1);
two.trigger('y', 2);
two.trigger('y', 2);
});
})();

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +1,13 @@
$(document).ready(function() {
(function() {
module("Backbone.noConflict");
QUnit.module('Backbone.noConflict');
test('Backbone.noConflict', 2, function() {
QUnit.test('noConflict', function(assert) {
assert.expect(2);
var noconflictBackbone = Backbone.noConflict();
equal(window.Backbone, undefined, 'Returned window.Backbone');
assert.equal(window.Backbone, undefined, 'Returned window.Backbone');
window.Backbone = noconflictBackbone;
equal(window.Backbone, noconflictBackbone, 'Backbone is still pointing to the original Backbone');
assert.equal(window.Backbone, noconflictBackbone, 'Backbone is still pointing to the original Backbone');
});
});
})();

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
$('body').append(
'<div id="qunit"></div>' +
'<div id="qunit-fixture"></div>'
);

View File

@@ -0,0 +1,45 @@
(function() {
var sync = Backbone.sync;
var ajax = Backbone.ajax;
var emulateHTTP = Backbone.emulateHTTP;
var emulateJSON = Backbone.emulateJSON;
var history = window.history;
var pushState = history.pushState;
var replaceState = history.replaceState;
QUnit.config.noglobals = true;
QUnit.testStart(function() {
var env = QUnit.config.current.testEnvironment;
// We never want to actually call these during tests.
history.pushState = history.replaceState = function(){};
// Capture ajax settings for comparison.
Backbone.ajax = function(settings) {
env.ajaxSettings = settings;
};
// Capture the arguments to Backbone.sync for comparison.
Backbone.sync = function(method, model, options) {
env.syncArgs = {
method: method,
model: model,
options: options
};
sync.apply(this, arguments);
};
});
QUnit.testDone(function() {
Backbone.sync = sync;
Backbone.ajax = ajax;
Backbone.emulateHTTP = emulateHTTP;
Backbone.emulateJSON = emulateJSON;
history.pushState = pushState;
history.replaceState = replaceState;
});
})();

View File

@@ -1,160 +1,239 @@
$(document).ready(function() {
var ajax = Backbone.ajax;
var lastRequest = null;
(function() {
var Library = Backbone.Collection.extend({
url : function() { return '/library'; }
url: function() { return '/library'; }
});
var library;
var attrs = {
title : "The Tempest",
author : "Bill Shakespeare",
length : 123
title: 'The Tempest',
author: 'Bill Shakespeare',
length: 123
};
module("Backbone.sync", {
QUnit.module('Backbone.sync', {
setup : function() {
library = new Library();
Backbone.ajax = function(obj) {
lastRequest = obj;
};
beforeEach: function(assert) {
library = new Library;
library.create(attrs, {wait: false});
},
teardown: function() {
Backbone.ajax = ajax;
afterEach: function(assert) {
Backbone.emulateHTTP = false;
}
});
test("sync: read", 4, function() {
QUnit.test('read', function(assert) {
assert.expect(4);
library.fetch();
equal(lastRequest.url, '/library');
equal(lastRequest.type, 'GET');
equal(lastRequest.dataType, 'json');
ok(_.isEmpty(lastRequest.data));
assert.equal(this.ajaxSettings.url, '/library');
assert.equal(this.ajaxSettings.type, 'GET');
assert.equal(this.ajaxSettings.dataType, 'json');
assert.ok(_.isEmpty(this.ajaxSettings.data));
});
test("sync: passing data", 3, function() {
QUnit.test('passing data', function(assert) {
assert.expect(3);
library.fetch({data: {a: 'a', one: 1}});
equal(lastRequest.url, '/library');
equal(lastRequest.data.a, 'a');
equal(lastRequest.data.one, 1);
assert.equal(this.ajaxSettings.url, '/library');
assert.equal(this.ajaxSettings.data.a, 'a');
assert.equal(this.ajaxSettings.data.one, 1);
});
test("sync: create", 6, function() {
equal(lastRequest.url, '/library');
equal(lastRequest.type, 'POST');
equal(lastRequest.dataType, 'json');
var data = JSON.parse(lastRequest.data);
equal(data.title, 'The Tempest');
equal(data.author, 'Bill Shakespeare');
equal(data.length, 123);
QUnit.test('create', function(assert) {
assert.expect(6);
assert.equal(this.ajaxSettings.url, '/library');
assert.equal(this.ajaxSettings.type, 'POST');
assert.equal(this.ajaxSettings.dataType, 'json');
var data = JSON.parse(this.ajaxSettings.data);
assert.equal(data.title, 'The Tempest');
assert.equal(data.author, 'Bill Shakespeare');
assert.equal(data.length, 123);
});
test("sync: update", 7, function() {
QUnit.test('update', function(assert) {
assert.expect(7);
library.first().save({id: '1-the-tempest', author: 'William Shakespeare'});
equal(lastRequest.url, '/library/1-the-tempest');
equal(lastRequest.type, 'PUT');
equal(lastRequest.dataType, 'json');
var data = JSON.parse(lastRequest.data);
equal(data.id, '1-the-tempest');
equal(data.title, 'The Tempest');
equal(data.author, 'William Shakespeare');
equal(data.length, 123);
assert.equal(this.ajaxSettings.url, '/library/1-the-tempest');
assert.equal(this.ajaxSettings.type, 'PUT');
assert.equal(this.ajaxSettings.dataType, 'json');
var data = JSON.parse(this.ajaxSettings.data);
assert.equal(data.id, '1-the-tempest');
assert.equal(data.title, 'The Tempest');
assert.equal(data.author, 'William Shakespeare');
assert.equal(data.length, 123);
});
test("sync: update with emulateHTTP and emulateJSON", 7, function() {
Backbone.emulateHTTP = Backbone.emulateJSON = true;
library.first().save({id: '2-the-tempest', author: 'Tim Shakespeare'});
equal(lastRequest.url, '/library/2-the-tempest');
equal(lastRequest.type, 'POST');
equal(lastRequest.dataType, 'json');
equal(lastRequest.data._method, 'PUT');
var data = JSON.parse(lastRequest.data.model);
equal(data.id, '2-the-tempest');
equal(data.author, 'Tim Shakespeare');
equal(data.length, 123);
Backbone.emulateHTTP = Backbone.emulateJSON = false;
QUnit.test('update with emulateHTTP and emulateJSON', function(assert) {
assert.expect(7);
library.first().save({id: '2-the-tempest', author: 'Tim Shakespeare'}, {
emulateHTTP: true,
emulateJSON: true
});
assert.equal(this.ajaxSettings.url, '/library/2-the-tempest');
assert.equal(this.ajaxSettings.type, 'POST');
assert.equal(this.ajaxSettings.dataType, 'json');
assert.equal(this.ajaxSettings.data._method, 'PUT');
var data = JSON.parse(this.ajaxSettings.data.model);
assert.equal(data.id, '2-the-tempest');
assert.equal(data.author, 'Tim Shakespeare');
assert.equal(data.length, 123);
});
test("sync: update with just emulateHTTP", 6, function() {
Backbone.emulateHTTP = true;
library.first().save({id: '2-the-tempest', author: 'Tim Shakespeare'});
equal(lastRequest.url, '/library/2-the-tempest');
equal(lastRequest.type, 'POST');
equal(lastRequest.contentType, 'application/json');
var data = JSON.parse(lastRequest.data);
equal(data.id, '2-the-tempest');
equal(data.author, 'Tim Shakespeare');
equal(data.length, 123);
Backbone.emulateHTTP = false;
QUnit.test('update with just emulateHTTP', function(assert) {
assert.expect(6);
library.first().save({id: '2-the-tempest', author: 'Tim Shakespeare'}, {
emulateHTTP: true
});
assert.equal(this.ajaxSettings.url, '/library/2-the-tempest');
assert.equal(this.ajaxSettings.type, 'POST');
assert.equal(this.ajaxSettings.contentType, 'application/json');
var data = JSON.parse(this.ajaxSettings.data);
assert.equal(data.id, '2-the-tempest');
assert.equal(data.author, 'Tim Shakespeare');
assert.equal(data.length, 123);
});
test("sync: update with just emulateJSON", 6, function() {
Backbone.emulateJSON = true;
library.first().save({id: '2-the-tempest', author: 'Tim Shakespeare'});
equal(lastRequest.url, '/library/2-the-tempest');
equal(lastRequest.type, 'PUT');
equal(lastRequest.contentType, 'application/x-www-form-urlencoded');
var data = JSON.parse(lastRequest.data.model);
equal(data.id, '2-the-tempest');
equal(data.author, 'Tim Shakespeare');
equal(data.length, 123);
Backbone.emulateJSON = false;
QUnit.test('update with just emulateJSON', function(assert) {
assert.expect(6);
library.first().save({id: '2-the-tempest', author: 'Tim Shakespeare'}, {
emulateJSON: true
});
assert.equal(this.ajaxSettings.url, '/library/2-the-tempest');
assert.equal(this.ajaxSettings.type, 'PUT');
assert.equal(this.ajaxSettings.contentType, 'application/x-www-form-urlencoded');
var data = JSON.parse(this.ajaxSettings.data.model);
assert.equal(data.id, '2-the-tempest');
assert.equal(data.author, 'Tim Shakespeare');
assert.equal(data.length, 123);
});
test("sync: read model", 3, function() {
QUnit.test('read model', function(assert) {
assert.expect(3);
library.first().save({id: '2-the-tempest', author: 'Tim Shakespeare'});
library.first().fetch();
equal(lastRequest.url, '/library/2-the-tempest');
equal(lastRequest.type, 'GET');
ok(_.isEmpty(lastRequest.data));
assert.equal(this.ajaxSettings.url, '/library/2-the-tempest');
assert.equal(this.ajaxSettings.type, 'GET');
assert.ok(_.isEmpty(this.ajaxSettings.data));
});
test("sync: destroy", 3, function() {
QUnit.test('destroy', function(assert) {
assert.expect(3);
library.first().save({id: '2-the-tempest', author: 'Tim Shakespeare'});
library.first().destroy({wait: true});
equal(lastRequest.url, '/library/2-the-tempest');
equal(lastRequest.type, 'DELETE');
equal(lastRequest.data, null);
assert.equal(this.ajaxSettings.url, '/library/2-the-tempest');
assert.equal(this.ajaxSettings.type, 'DELETE');
assert.equal(this.ajaxSettings.data, null);
});
test("sync: destroy with emulateHTTP", 3, function() {
QUnit.test('destroy with emulateHTTP', function(assert) {
assert.expect(3);
library.first().save({id: '2-the-tempest', author: 'Tim Shakespeare'});
Backbone.emulateHTTP = Backbone.emulateJSON = true;
library.first().destroy();
equal(lastRequest.url, '/library/2-the-tempest');
equal(lastRequest.type, 'POST');
equal(JSON.stringify(lastRequest.data), '{"_method":"DELETE"}');
Backbone.emulateHTTP = Backbone.emulateJSON = false;
library.first().destroy({
emulateHTTP: true,
emulateJSON: true
});
assert.equal(this.ajaxSettings.url, '/library/2-the-tempest');
assert.equal(this.ajaxSettings.type, 'POST');
assert.equal(JSON.stringify(this.ajaxSettings.data), '{"_method":"DELETE"}');
});
test("sync: urlError", 2, function() {
QUnit.test('urlError', function(assert) {
assert.expect(2);
var model = new Backbone.Model();
raises(function() {
assert.raises(function() {
model.fetch();
});
model.fetch({url: '/one/two'});
equal(lastRequest.url, '/one/two');
assert.equal(this.ajaxSettings.url, '/one/two');
});
test("#1052 - `options` is optional.", 0, function() {
QUnit.test('#1052 - `options` is optional.', function(assert) {
assert.expect(0);
var model = new Backbone.Model();
model.url = '/test';
Backbone.sync('create', model);
});
test("Backbone.ajax", 1, function() {
QUnit.test('Backbone.ajax', function(assert) {
assert.expect(1);
Backbone.ajax = function(settings){
strictEqual(settings.url, '/test');
assert.strictEqual(settings.url, '/test');
};
var model = new Backbone.Model();
model.url = '/test';
Backbone.sync('create', model);
});
});
QUnit.test('Call provided error callback on error.', function(assert) {
assert.expect(1);
var model = new Backbone.Model;
model.url = '/test';
Backbone.sync('read', model, {
error: function() { assert.ok(true); }
});
this.ajaxSettings.error();
});
QUnit.test('Use Backbone.emulateHTTP as default.', function(assert) {
assert.expect(2);
var model = new Backbone.Model;
model.url = '/test';
Backbone.emulateHTTP = true;
model.sync('create', model);
assert.strictEqual(this.ajaxSettings.emulateHTTP, true);
Backbone.emulateHTTP = false;
model.sync('create', model);
assert.strictEqual(this.ajaxSettings.emulateHTTP, false);
});
QUnit.test('Use Backbone.emulateJSON as default.', function(assert) {
assert.expect(2);
var model = new Backbone.Model;
model.url = '/test';
Backbone.emulateJSON = true;
model.sync('create', model);
assert.strictEqual(this.ajaxSettings.emulateJSON, true);
Backbone.emulateJSON = false;
model.sync('create', model);
assert.strictEqual(this.ajaxSettings.emulateJSON, false);
});
QUnit.test('#1756 - Call user provided beforeSend function.', function(assert) {
assert.expect(4);
Backbone.emulateHTTP = true;
var model = new Backbone.Model;
model.url = '/test';
var xhr = {
setRequestHeader: function(header, value) {
assert.strictEqual(header, 'X-HTTP-Method-Override');
assert.strictEqual(value, 'DELETE');
}
};
model.sync('delete', model, {
beforeSend: function(_xhr) {
assert.ok(_xhr === xhr);
return false;
}
});
assert.strictEqual(this.ajaxSettings.beforeSend(xhr), false);
});
QUnit.test('#2928 - Pass along `textStatus` and `errorThrown`.', function(assert) {
assert.expect(2);
var model = new Backbone.Model;
model.url = '/test';
model.on('error', function(m, xhr, options) {
assert.strictEqual(options.textStatus, 'textStatus');
assert.strictEqual(options.errorThrown, 'errorThrown');
});
model.fetch();
this.ajaxSettings.error({}, 'textStatus', 'errorThrown');
});
})();

File diff suppressed because it is too large Load Diff

View File

@@ -1,649 +0,0 @@
// JSLitmus.js
//
// Copyright (c) 2010, Robert Kieffer, http://broofa.com
// Available under MIT license (http://en.wikipedia.org/wiki/MIT_License)
(function() {
// Private methods and state
// Get platform info but don't go crazy trying to recognize everything
// that's out there. This is just for the major platforms and OSes.
var platform = 'unknown platform', ua = navigator.userAgent;
// Detect OS
var oses = ['Windows','iPhone OS','(Intel |PPC )?Mac OS X','Linux'].join('|');
var pOS = new RegExp('((' + oses + ') [^ \);]*)').test(ua) ? RegExp.$1 : null;
if (!pOS) pOS = new RegExp('((' + oses + ')[^ \);]*)').test(ua) ? RegExp.$1 : null;
// Detect browser
var pName = /(Chrome|MSIE|Safari|Opera|Firefox)/.test(ua) ? RegExp.$1 : null;
// Detect version
var vre = new RegExp('(Version|' + pName + ')[ \/]([^ ;]*)');
var pVersion = (pName && vre.test(ua)) ? RegExp.$2 : null;
var platform = (pOS && pName && pVersion) ? pName + ' ' + pVersion + ' on ' + pOS : 'unknown platform';
/**
* A smattering of methods that are needed to implement the JSLitmus testbed.
*/
var jsl = {
/**
* Enhanced version of escape()
*/
escape: function(s) {
s = s.replace(/,/g, '\\,');
s = escape(s);
s = s.replace(/\+/g, '%2b');
s = s.replace(/ /g, '+');
return s;
},
/**
* Get an element by ID.
*/
$: function(id) {
return document.getElementById(id);
},
/**
* Null function
*/
F: function() {},
/**
* Set the status shown in the UI
*/
status: function(msg) {
var el = jsl.$('jsl_status');
if (el) el.innerHTML = msg || '';
},
/**
* Convert a number to an abbreviated string like, "15K" or "10M"
*/
toLabel: function(n) {
if (n == Infinity) {
return 'Infinity';
} else if (n > 1e9) {
n = Math.round(n/1e8);
return n/10 + 'B';
} else if (n > 1e6) {
n = Math.round(n/1e5);
return n/10 + 'M';
} else if (n > 1e3) {
n = Math.round(n/1e2);
return n/10 + 'K';
}
return n;
},
/**
* Copy properties from src to dst
*/
extend: function(dst, src) {
for (var k in src) dst[k] = src[k]; return dst;
},
/**
* Like Array.join(), but for the key-value pairs in an object
*/
join: function(o, delimit1, delimit2) {
if (o.join) return o.join(delimit1); // If it's an array
var pairs = [];
for (var k in o) pairs.push(k + delimit1 + o[k]);
return pairs.join(delimit2);
},
/**
* Array#indexOf isn't supported in IE, so we use this as a cross-browser solution
*/
indexOf: function(arr, o) {
if (arr.indexOf) return arr.indexOf(o);
for (var i = 0; i < this.length; i++) if (arr[i] === o) return i;
return -1;
}
};
/**
* Test manages a single test (created with
* JSLitmus.test())
*
* @private
*/
var Test = function (name, f) {
if (!f) throw new Error('Undefined test function');
if (!/function[^\(]*\(([^,\)]*)/.test(f.toString())) {
throw new Error('"' + name + '" test: Test is not a valid Function object');
}
this.loopArg = RegExp.$1;
this.name = name;
this.f = f;
};
jsl.extend(Test, /** @lends Test */ {
/** Calibration tests for establishing iteration loop overhead */
CALIBRATIONS: [
new Test('calibrating loop', function(count) {while (count--);}),
new Test('calibrating function', jsl.F)
],
/**
* Run calibration tests. Returns true if calibrations are not yet
* complete (in which case calling code should run the tests yet again).
* onCalibrated - Callback to invoke when calibrations have finished
*/
calibrate: function(onCalibrated) {
for (var i = 0; i < Test.CALIBRATIONS.length; i++) {
var cal = Test.CALIBRATIONS[i];
if (cal.running) return true;
if (!cal.count) {
cal.isCalibration = true;
cal.onStop = onCalibrated;
//cal.MIN_TIME = .1; // Do calibrations quickly
cal.run(2e4);
return true;
}
}
return false;
}
});
jsl.extend(Test.prototype, {/** @lends Test.prototype */
/** Initial number of iterations */
INIT_COUNT: 10,
/** Max iterations allowed (i.e. used to detect bad looping functions) */
MAX_COUNT: 1e9,
/** Minimum time a test should take to get valid results (secs) */
MIN_TIME: .5,
/** Callback invoked when test state changes */
onChange: jsl.F,
/** Callback invoked when test is finished */
onStop: jsl.F,
/**
* Reset test state
*/
reset: function() {
delete this.count;
delete this.time;
delete this.running;
delete this.error;
},
/**
* Run the test (in a timeout). We use a timeout to make sure the browser
* has a chance to finish rendering any UI changes we've made, like
* updating the status message.
*/
run: function(count) {
count = count || this.INIT_COUNT;
jsl.status(this.name + ' x ' + count);
this.running = true;
var me = this;
setTimeout(function() {me._run(count);}, 200);
},
/**
* The nuts and bolts code that actually runs a test
*/
_run: function(count) {
var me = this;
// Make sure calibration tests have run
if (!me.isCalibration && Test.calibrate(function() {me.run(count);})) return;
this.error = null;
try {
var start, f = this.f, now, i = count;
// Start the timer
start = new Date();
// Now for the money shot. If this is a looping function ...
if (this.loopArg) {
// ... let it do the iteration itself
f(count);
} else {
// ... otherwise do the iteration for it
while (i--) f();
}
// Get time test took (in secs)
this.time = Math.max(1,new Date() - start)/1000;
// Store iteration count and per-operation time taken
this.count = count;
this.period = this.time/count;
// Do we need to do another run?
this.running = this.time <= this.MIN_TIME;
// ... if so, compute how many times we should iterate
if (this.running) {
// Bump the count to the nearest power of 2
var x = this.MIN_TIME/this.time;
var pow = Math.pow(2, Math.max(1, Math.ceil(Math.log(x)/Math.log(2))));
count *= pow;
if (count > this.MAX_COUNT) {
throw new Error('Max count exceeded. If this test uses a looping function, make sure the iteration loop is working properly.');
}
}
} catch (e) {
// Exceptions are caught and displayed in the test UI
this.reset();
this.error = e;
}
// Figure out what to do next
if (this.running) {
me.run(count);
} else {
jsl.status('');
me.onStop(me);
}
// Finish up
this.onChange(this);
},
/**
* Get the number of operations per second for this test.
*
* @param normalize if true, iteration loop overhead taken into account
*/
getHz: function(/**Boolean*/ normalize) {
var p = this.period;
// Adjust period based on the calibration test time
if (normalize && !this.isCalibration) {
var cal = Test.CALIBRATIONS[this.loopArg ? 0 : 1];
// If the period is within 20% of the calibration time, then zero the
// it out
p = p < cal.period*1.2 ? 0 : p - cal.period;
}
return Math.round(1/p);
},
/**
* Get a friendly string describing the test
*/
toString: function() {
return this.name + ' - ' + this.time/this.count + ' secs';
}
});
// CSS we need for the UI
var STYLESHEET = '<style> \
#jslitmus {font-family:sans-serif; font-size: 12px;} \
#jslitmus a {text-decoration: none;} \
#jslitmus a:hover {text-decoration: underline;} \
#jsl_status { \
margin-top: 10px; \
font-size: 10px; \
color: #888; \
} \
A IMG {border:none} \
#test_results { \
margin-top: 10px; \
font-size: 12px; \
font-family: sans-serif; \
border-collapse: collapse; \
border-spacing: 0px; \
} \
#test_results th, #test_results td { \
border: solid 1px #ccc; \
vertical-align: top; \
padding: 3px; \
} \
#test_results th { \
vertical-align: bottom; \
background-color: #ccc; \
padding: 1px; \
font-size: 10px; \
} \
#test_results #test_platform { \
color: #444; \
text-align:center; \
} \
#test_results .test_row { \
color: #006; \
cursor: pointer; \
} \
#test_results .test_nonlooping { \
border-left-style: dotted; \
border-left-width: 2px; \
} \
#test_results .test_looping { \
border-left-style: solid; \
border-left-width: 2px; \
} \
#test_results .test_name {white-space: nowrap;} \
#test_results .test_pending { \
} \
#test_results .test_running { \
font-style: italic; \
} \
#test_results .test_done {} \
#test_results .test_done { \
text-align: right; \
font-family: monospace; \
} \
#test_results .test_error {color: #600;} \
#test_results .test_error .error_head {font-weight:bold;} \
#test_results .test_error .error_body {font-size:85%;} \
#test_results .test_row:hover td { \
background-color: #ffc; \
text-decoration: underline; \
} \
#chart { \
margin: 10px 0px; \
width: 250px; \
} \
#chart img { \
border: solid 1px #ccc; \
margin-bottom: 5px; \
} \
#chart #tiny_url { \
height: 40px; \
width: 250px; \
} \
#jslitmus_credit { \
font-size: 10px; \
color: #888; \
margin-top: 8px; \
} \
</style>';
// HTML markup for the UI
var MARKUP = '<div id="jslitmus"> \
<button onclick="JSLitmus.runAll(event)">Run Tests</button> \
<button id="stop_button" disabled="disabled" onclick="JSLitmus.stop()">Stop Tests</button> \
<br \> \
<br \> \
<input type="checkbox" style="vertical-align: middle" id="test_normalize" checked="checked" onchange="JSLitmus.renderAll()""> Normalize results \
<table id="test_results"> \
<colgroup> \
<col /> \
<col width="100" /> \
</colgroup> \
<tr><th id="test_platform" colspan="2">' + platform + '</th></tr> \
<tr><th>Test</th><th>Ops/sec</th></tr> \
<tr id="test_row_template" class="test_row" style="display:none"> \
<td class="test_name"></td> \
<td class="test_result">Ready</td> \
</tr> \
</table> \
<div id="jsl_status"></div> \
<div id="chart" style="display:none"> \
<a id="chart_link" target="_blank"><img id="chart_image"></a> \
TinyURL (for chart): \
<iframe id="tiny_url" frameBorder="0" scrolling="no" src=""></iframe> \
</div> \
<a id="jslitmus_credit" title="JSLitmus home page" href="http://code.google.com/p/jslitmus" target="_blank">Powered by JSLitmus</a> \
</div>';
/**
* The public API for creating and running tests
*/
window.JSLitmus = {
/** The list of all tests that have been registered with JSLitmus.test */
_tests: [],
/** The queue of tests that need to be run */
_queue: [],
/**
* The parsed query parameters the current page URL. This is provided as a
* convenience for test functions - it's not used by JSLitmus proper
*/
params: {},
/**
* Initialize
*/
_init: function() {
// Parse query params into JSLitmus.params[] hash
var match = (location + '').match(/([^?#]*)(#.*)?$/);
if (match) {
var pairs = match[1].split('&');
for (var i = 0; i < pairs.length; i++) {
var pair = pairs[i].split('=');
if (pair.length > 1) {
var key = pair.shift();
var value = pair.length > 1 ? pair.join('=') : pair[0];
this.params[key] = value;
}
}
}
// Write out the stylesheet. We have to do this here because IE
// doesn't honor sheets written after the document has loaded.
document.write(STYLESHEET);
// Setup the rest of the UI once the document is loaded
if (window.addEventListener) {
window.addEventListener('load', this._setup, false);
} else if (document.addEventListener) {
document.addEventListener('load', this._setup, false);
} else if (window.attachEvent) {
window.attachEvent('onload', this._setup);
}
return this;
},
/**
* Set up the UI
*/
_setup: function() {
var el = jsl.$('jslitmus_container');
if (!el) document.body.appendChild(el = document.createElement('div'));
el.innerHTML = MARKUP;
// Render the UI for all our tests
for (var i=0; i < JSLitmus._tests.length; i++)
JSLitmus.renderTest(JSLitmus._tests[i]);
},
/**
* (Re)render all the test results
*/
renderAll: function() {
for (var i = 0; i < JSLitmus._tests.length; i++)
JSLitmus.renderTest(JSLitmus._tests[i]);
JSLitmus.renderChart();
},
/**
* (Re)render the chart graphics
*/
renderChart: function() {
var url = JSLitmus.chartUrl();
jsl.$('chart_link').href = url;
jsl.$('chart_image').src = url;
jsl.$('chart').style.display = '';
// Update the tiny URL
jsl.$('tiny_url').src = 'http://tinyurl.com/api-create.php?url='+escape(url);
},
/**
* (Re)render the results for a specific test
*/
renderTest: function(test) {
// Make a new row if needed
if (!test._row) {
var trow = jsl.$('test_row_template');
if (!trow) return;
test._row = trow.cloneNode(true);
test._row.style.display = '';
test._row.id = '';
test._row.onclick = function() {JSLitmus._queueTest(test);};
test._row.title = 'Run ' + test.name + ' test';
trow.parentNode.appendChild(test._row);
test._row.cells[0].innerHTML = test.name;
}
var cell = test._row.cells[1];
var cns = [test.loopArg ? 'test_looping' : 'test_nonlooping'];
if (test.error) {
cns.push('test_error');
cell.innerHTML =
'<div class="error_head">' + test.error + '</div>' +
'<ul class="error_body"><li>' +
jsl.join(test.error, ': ', '</li><li>') +
'</li></ul>';
} else {
if (test.running) {
cns.push('test_running');
cell.innerHTML = 'running';
} else if (jsl.indexOf(JSLitmus._queue, test) >= 0) {
cns.push('test_pending');
cell.innerHTML = 'pending';
} else if (test.count) {
cns.push('test_done');
var hz = test.getHz(jsl.$('test_normalize').checked);
cell.innerHTML = hz != Infinity ? hz : '&infin;';
cell.title = 'Looped ' + test.count + ' times in ' + test.time + ' seconds';
} else {
cell.innerHTML = 'ready';
}
}
cell.className = cns.join(' ');
},
/**
* Create a new test
*/
test: function(name, f) {
// Create the Test object
var test = new Test(name, f);
JSLitmus._tests.push(test);
// Re-render if the test state changes
test.onChange = JSLitmus.renderTest;
// Run the next test if this one finished
test.onStop = function(test) {
if (JSLitmus.onTestFinish) JSLitmus.onTestFinish(test);
JSLitmus.currentTest = null;
JSLitmus._nextTest();
};
// Render the new test
this.renderTest(test);
},
/**
* Add all tests to the run queue
*/
runAll: function(e) {
e = e || window.event;
var reverse = e && e.shiftKey, len = JSLitmus._tests.length;
for (var i = 0; i < len; i++) {
JSLitmus._queueTest(JSLitmus._tests[!reverse ? i : (len - i - 1)]);
}
},
/**
* Remove all tests from the run queue. The current test has to finish on
* it's own though
*/
stop: function() {
while (JSLitmus._queue.length) {
var test = JSLitmus._queue.shift();
JSLitmus.renderTest(test);
}
},
/**
* Run the next test in the run queue
*/
_nextTest: function() {
if (!JSLitmus.currentTest) {
var test = JSLitmus._queue.shift();
if (test) {
jsl.$('stop_button').disabled = false;
JSLitmus.currentTest = test;
test.run();
JSLitmus.renderTest(test);
if (JSLitmus.onTestStart) JSLitmus.onTestStart(test);
} else {
jsl.$('stop_button').disabled = true;
JSLitmus.renderChart();
}
}
},
/**
* Add a test to the run queue
*/
_queueTest: function(test) {
if (jsl.indexOf(JSLitmus._queue, test) >= 0) return;
JSLitmus._queue.push(test);
JSLitmus.renderTest(test);
JSLitmus._nextTest();
},
/**
* Generate a Google Chart URL that shows the data for all tests
*/
chartUrl: function() {
var n = JSLitmus._tests.length, markers = [], data = [];
var d, min = 0, max = -1e10;
var normalize = jsl.$('test_normalize').checked;
// Gather test data
for (var i=0; i < JSLitmus._tests.length; i++) {
var test = JSLitmus._tests[i];
if (test.count) {
var hz = test.getHz(normalize);
var v = hz != Infinity ? hz : 0;
data.push(v);
markers.push('t' + jsl.escape(test.name + '(' + jsl.toLabel(hz)+ ')') + ',000000,0,' +
markers.length + ',10');
max = Math.max(v, max);
}
}
if (markers.length <= 0) return null;
// Build chart title
var title = document.getElementsByTagName('title');
title = (title && title.length) ? title[0].innerHTML : null;
var chart_title = [];
if (title) chart_title.push(title);
chart_title.push('Ops/sec (' + platform + ')');
// Build labels
var labels = [jsl.toLabel(min), jsl.toLabel(max)];
var w = 250, bw = 15;
var bs = 5;
var h = markers.length*(bw + bs) + 30 + chart_title.length*20;
var params = {
chtt: escape(chart_title.join('|')),
chts: '000000,10',
cht: 'bhg', // chart type
chd: 't:' + data.join(','), // data set
chds: min + ',' + max, // max/min of data
chxt: 'x', // label axes
chxl: '0:|' + labels.join('|'), // labels
chsp: '0,1',
chm: markers.join('|'), // test names
chbh: [bw, 0, bs].join(','), // bar widths
// chf: 'bg,lg,0,eeeeee,0,eeeeee,.5,ffffff,1', // gradient
chs: w + 'x' + h
};
return 'http://chart.apis.google.com/chart?' + jsl.join(params, '=', '&');
}
};
JSLitmus._init();
})();

View File

@@ -1,236 +0,0 @@
/**
* QUnit v1.8.0 - A JavaScript Unit Testing Framework
*
* http://docs.jquery.com/QUnit
*
* Copyright (c) 2012 John Resig, Jörn Zaefferer
* Dual licensed under the MIT (MIT-LICENSE.txt)
* or GPL (GPL-LICENSE.txt) licenses.
*/
/** Font Family and Sizes */
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
}
#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
#qunit-tests { font-size: smaller; }
/** Resets */
#qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult {
margin: 0;
padding: 0;
}
/** Header */
#qunit-header {
padding: 0.5em 0 0.5em 1em;
color: #8699a4;
background-color: #0d3349;
font-size: 1.5em;
line-height: 1em;
font-weight: normal;
border-radius: 15px 15px 0 0;
-moz-border-radius: 15px 15px 0 0;
-webkit-border-top-right-radius: 15px;
-webkit-border-top-left-radius: 15px;
}
#qunit-header a {
text-decoration: none;
color: #c2ccd1;
}
#qunit-header a:hover,
#qunit-header a:focus {
color: #fff;
}
#qunit-header label {
display: inline-block;
padding-left: 0.5em;
}
#qunit-banner {
height: 5px;
}
#qunit-testrunner-toolbar {
padding: 0.5em 0 0.5em 2em;
color: #5E740B;
background-color: #eee;
}
#qunit-userAgent {
padding: 0.5em 0 0.5em 2.5em;
background-color: #2b81af;
color: #fff;
text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
}
/** Tests: Pass/Fail */
#qunit-tests {
list-style-position: inside;
}
#qunit-tests li {
padding: 0.4em 0.5em 0.4em 2.5em;
border-bottom: 1px solid #fff;
list-style-position: inside;
}
#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
display: none;
}
#qunit-tests li strong {
cursor: pointer;
}
#qunit-tests li a {
padding: 0.5em;
color: #c2ccd1;
text-decoration: none;
}
#qunit-tests li a:hover,
#qunit-tests li a:focus {
color: #000;
}
#qunit-tests ol {
margin-top: 0.5em;
padding: 0.5em;
background-color: #fff;
border-radius: 15px;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
box-shadow: inset 0px 2px 13px #999;
-moz-box-shadow: inset 0px 2px 13px #999;
-webkit-box-shadow: inset 0px 2px 13px #999;
}
#qunit-tests table {
border-collapse: collapse;
margin-top: .2em;
}
#qunit-tests th {
text-align: right;
vertical-align: top;
padding: 0 .5em 0 0;
}
#qunit-tests td {
vertical-align: top;
}
#qunit-tests pre {
margin: 0;
white-space: pre-wrap;
word-wrap: break-word;
}
#qunit-tests del {
background-color: #e0f2be;
color: #374e0c;
text-decoration: none;
}
#qunit-tests ins {
background-color: #ffcaca;
color: #500;
text-decoration: none;
}
/*** Test Counts */
#qunit-tests b.counts { color: black; }
#qunit-tests b.passed { color: #5E740B; }
#qunit-tests b.failed { color: #710909; }
#qunit-tests li li {
margin: 0.5em;
padding: 0.4em 0.5em 0.4em 0.5em;
background-color: #fff;
border-bottom: none;
list-style-position: inside;
}
/*** Passing Styles */
#qunit-tests li li.pass {
color: #5E740B;
background-color: #fff;
border-left: 26px solid #C6E746;
}
#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
#qunit-tests .pass .test-name { color: #366097; }
#qunit-tests .pass .test-actual,
#qunit-tests .pass .test-expected { color: #999999; }
#qunit-banner.qunit-pass { background-color: #C6E746; }
/*** Failing Styles */
#qunit-tests li li.fail {
color: #710909;
background-color: #fff;
border-left: 26px solid #EE5757;
white-space: pre;
}
#qunit-tests > li:last-child {
border-radius: 0 0 15px 15px;
-moz-border-radius: 0 0 15px 15px;
-webkit-border-bottom-right-radius: 15px;
-webkit-border-bottom-left-radius: 15px;
}
#qunit-tests .fail { color: #000000; background-color: #EE5757; }
#qunit-tests .fail .test-name,
#qunit-tests .fail .module-name { color: #000000; }
#qunit-tests .fail .test-actual { color: #EE5757; }
#qunit-tests .fail .test-expected { color: green; }
#qunit-banner.qunit-fail { background-color: #EE5757; }
/** Result */
#qunit-testresult {
padding: 0.5em 0.5em 0.5em 2.5em;
color: #2b81af;
background-color: #D2E0E6;
border-bottom: 1px solid white;
}
#qunit-testresult .module-name {
font-weight: bold;
}
/** Fixture */
#qunit-fixture {
position: absolute;
top: -10000px;
left: -10000px;
width: 1000px;
height: 1000px;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,230 +1,495 @@
$(document).ready(function() {
(function() {
var view;
module("Backbone.View", {
QUnit.module('Backbone.View', {
beforeEach: function(assert) {
$('#qunit-fixture').append(
'<div id="testElement"><h1>Test</h1></div>'
);
setup: function() {
view = new Backbone.View({
id : 'test-view',
className : 'test-view'
id: 'test-view',
className: 'test-view',
other: 'non-special-option'
});
},
afterEach: function() {
$('#testElement').remove();
$('#test-view').remove();
}
});
test("View: constructor", 4, function() {
equal(view.el.id, 'test-view');
equal(view.el.className, 'test-view');
equal(view.options.id, 'test-view');
equal(view.options.className, 'test-view');
QUnit.test('constructor', function(assert) {
assert.expect(3);
assert.equal(view.el.id, 'test-view');
assert.equal(view.el.className, 'test-view');
assert.equal(view.el.other, void 0);
});
test("View: jQuery", 2, function() {
view.setElement(document.body);
ok(view.$('#qunit-header a').get(0).innerHTML.match(/Backbone Test Suite/));
ok(view.$('#qunit-header a').get(1).innerHTML.match(/Backbone Speed Suite/));
QUnit.test('$', function(assert) {
assert.expect(2);
var myView = new Backbone.View;
myView.setElement('<p><a><b>test</b></a></p>');
var result = myView.$('a b');
assert.strictEqual(result[0].innerHTML, 'test');
assert.ok(result.length === +result.length);
});
test("View: make", 3, function() {
var div = view.make('div', {id: 'test-div'}, "one two three");
equal(div.tagName.toLowerCase(), 'div');
equal(div.id, 'test-div');
equal($(div).text(), 'one two three');
QUnit.test('$el', function(assert) {
assert.expect(3);
var myView = new Backbone.View;
myView.setElement('<p><a><b>test</b></a></p>');
assert.strictEqual(myView.el.nodeType, 1);
assert.ok(myView.$el instanceof Backbone.$);
assert.strictEqual(myView.$el[0], myView.el);
});
test("View: make can take falsy values for content", 2, function() {
var div = view.make('div', {id: 'test-div'}, 0);
equal($(div).text(), '0');
var div = view.make('div', {id: 'test-div'}, '');
equal($(div).text(), '');
});
test("View: initialize", 1, function() {
QUnit.test('initialize', function(assert) {
assert.expect(1);
var View = Backbone.View.extend({
initialize: function() {
this.one = 1;
}
});
var view = new View;
equal(view.one, 1);
assert.strictEqual(new View().one, 1);
});
test("View: delegateEvents", 6, function() {
var counter = 0;
var counter2 = 0;
view.setElement(document.body);
view.increment = function(){ counter++; };
view.$el.bind('click', function(){ counter2++; });
var events = {"click #qunit-banner": "increment"};
view.delegateEvents(events);
$('#qunit-banner').trigger('click');
equal(counter, 1);
equal(counter2, 1);
$('#qunit-banner').trigger('click');
equal(counter, 2);
equal(counter2, 2);
view.delegateEvents(events);
$('#qunit-banner').trigger('click');
equal(counter, 3);
equal(counter2, 3);
QUnit.test('render', function(assert) {
assert.expect(1);
var myView = new Backbone.View;
assert.equal(myView.render(), myView, '#render returns the view instance');
});
test("View: delegateEvents allows functions for callbacks", 3, function() {
view.counter = 0;
view.setElement("#qunit-banner");
var events = {"click": function() { this.counter++; }};
view.delegateEvents(events);
$('#qunit-banner').trigger('click');
equal(view.counter, 1);
$('#qunit-banner').trigger('click');
equal(view.counter, 2);
view.delegateEvents(events);
$('#qunit-banner').trigger('click');
equal(view.counter, 3);
QUnit.test('delegateEvents', function(assert) {
assert.expect(6);
var counter1 = 0, counter2 = 0;
var myView = new Backbone.View({el: '#testElement'});
myView.increment = function(){ counter1++; };
myView.$el.on('click', function(){ counter2++; });
var events = {'click h1': 'increment'};
myView.delegateEvents(events);
myView.$('h1').trigger('click');
assert.equal(counter1, 1);
assert.equal(counter2, 1);
myView.$('h1').trigger('click');
assert.equal(counter1, 2);
assert.equal(counter2, 2);
myView.delegateEvents(events);
myView.$('h1').trigger('click');
assert.equal(counter1, 3);
assert.equal(counter2, 3);
});
test("View: undelegateEvents", 6, function() {
var counter = 0;
var counter2 = 0;
view.setElement(document.body);
view.increment = function(){ counter++; };
$(view.el).unbind('click');
$(view.el).bind('click', function(){ counter2++; });
var events = {"click #qunit-userAgent": "increment"};
view.delegateEvents(events);
$('#qunit-userAgent').trigger('click');
equal(counter, 1);
equal(counter2, 1);
view.undelegateEvents();
$('#qunit-userAgent').trigger('click');
equal(counter, 1);
equal(counter2, 2);
view.delegateEvents(events);
$('#qunit-userAgent').trigger('click');
equal(counter, 2);
equal(counter2, 3);
QUnit.test('delegate', function(assert) {
assert.expect(3);
var myView = new Backbone.View({el: '#testElement'});
myView.delegate('click', 'h1', function() {
assert.ok(true);
});
myView.delegate('click', function() {
assert.ok(true);
});
myView.$('h1').trigger('click');
assert.equal(myView.delegate(), myView, '#delegate returns the view instance');
});
test("View: _ensureElement with DOM node el", 1, function() {
var ViewClass = Backbone.View.extend({
QUnit.test('delegateEvents allows functions for callbacks', function(assert) {
assert.expect(3);
var myView = new Backbone.View({el: '<p></p>'});
myView.counter = 0;
var events = {
click: function() {
this.counter++;
}
};
myView.delegateEvents(events);
myView.$el.trigger('click');
assert.equal(myView.counter, 1);
myView.$el.trigger('click');
assert.equal(myView.counter, 2);
myView.delegateEvents(events);
myView.$el.trigger('click');
assert.equal(myView.counter, 3);
});
QUnit.test('delegateEvents ignore undefined methods', function(assert) {
assert.expect(0);
var myView = new Backbone.View({el: '<p></p>'});
myView.delegateEvents({'click': 'undefinedMethod'});
myView.$el.trigger('click');
});
QUnit.test('undelegateEvents', function(assert) {
assert.expect(7);
var counter1 = 0, counter2 = 0;
var myView = new Backbone.View({el: '#testElement'});
myView.increment = function(){ counter1++; };
myView.$el.on('click', function(){ counter2++; });
var events = {'click h1': 'increment'};
myView.delegateEvents(events);
myView.$('h1').trigger('click');
assert.equal(counter1, 1);
assert.equal(counter2, 1);
myView.undelegateEvents();
myView.$('h1').trigger('click');
assert.equal(counter1, 1);
assert.equal(counter2, 2);
myView.delegateEvents(events);
myView.$('h1').trigger('click');
assert.equal(counter1, 2);
assert.equal(counter2, 3);
assert.equal(myView.undelegateEvents(), myView, '#undelegateEvents returns the view instance');
});
QUnit.test('undelegate', function(assert) {
assert.expect(1);
var myView = new Backbone.View({el: '#testElement'});
myView.delegate('click', function() { assert.ok(false); });
myView.delegate('click', 'h1', function() { assert.ok(false); });
myView.undelegate('click');
myView.$('h1').trigger('click');
myView.$el.trigger('click');
assert.equal(myView.undelegate(), myView, '#undelegate returns the view instance');
});
QUnit.test('undelegate with passed handler', function(assert) {
assert.expect(1);
var myView = new Backbone.View({el: '#testElement'});
var listener = function() { assert.ok(false); };
myView.delegate('click', listener);
myView.delegate('click', function() { assert.ok(true); });
myView.undelegate('click', listener);
myView.$el.trigger('click');
});
QUnit.test('undelegate with selector', function(assert) {
assert.expect(2);
var myView = new Backbone.View({el: '#testElement'});
myView.delegate('click', function() { assert.ok(true); });
myView.delegate('click', 'h1', function() { assert.ok(false); });
myView.undelegate('click', 'h1');
myView.$('h1').trigger('click');
myView.$el.trigger('click');
});
QUnit.test('undelegate with handler and selector', function(assert) {
assert.expect(2);
var myView = new Backbone.View({el: '#testElement'});
myView.delegate('click', function() { assert.ok(true); });
var handler = function(){ assert.ok(false); };
myView.delegate('click', 'h1', handler);
myView.undelegate('click', 'h1', handler);
myView.$('h1').trigger('click');
myView.$el.trigger('click');
});
QUnit.test('tagName can be provided as a string', function(assert) {
assert.expect(1);
var View = Backbone.View.extend({
tagName: 'span'
});
assert.equal(new View().el.tagName, 'SPAN');
});
QUnit.test('tagName can be provided as a function', function(assert) {
assert.expect(1);
var View = Backbone.View.extend({
tagName: function() {
return 'p';
}
});
assert.ok(new View().$el.is('p'));
});
QUnit.test('_ensureElement with DOM node el', function(assert) {
assert.expect(1);
var View = Backbone.View.extend({
el: document.body
});
var view = new ViewClass;
equal(view.el, document.body);
assert.equal(new View().el, document.body);
});
test("View: _ensureElement with string el", 3, function() {
var ViewClass = Backbone.View.extend({
el: "body"
QUnit.test('_ensureElement with string el', function(assert) {
assert.expect(3);
var View = Backbone.View.extend({
el: 'body'
});
var view = new ViewClass;
strictEqual(view.el, document.body);
assert.strictEqual(new View().el, document.body);
ViewClass = Backbone.View.extend({
el: "#testElement > h1"
View = Backbone.View.extend({
el: '#testElement > h1'
});
view = new ViewClass;
strictEqual(view.el, $("#testElement > h1").get(0));
assert.strictEqual(new View().el, $('#testElement > h1').get(0));
ViewClass = Backbone.View.extend({
el: "#nonexistent"
View = Backbone.View.extend({
el: '#nonexistent'
});
view = new ViewClass;
ok(!view.el);
assert.ok(!new View().el);
});
test("View: with attributes", 2, function() {
var view = new Backbone.View({attributes : {'class': 'one', id: 'two'}});
equal(view.el.className, 'one');
equal(view.el.id, 'two');
QUnit.test('with className and id functions', function(assert) {
assert.expect(2);
var View = Backbone.View.extend({
className: function() {
return 'className';
},
id: function() {
return 'id';
}
});
assert.strictEqual(new View().el.className, 'className');
assert.strictEqual(new View().el.id, 'id');
});
test("View: with attributes as a function", 1, function() {
var viewClass = Backbone.View.extend({
QUnit.test('with attributes', function(assert) {
assert.expect(2);
var View = Backbone.View.extend({
attributes: {
'id': 'id',
'class': 'class'
}
});
assert.strictEqual(new View().el.className, 'class');
assert.strictEqual(new View().el.id, 'id');
});
QUnit.test('with attributes as a function', function(assert) {
assert.expect(1);
var View = Backbone.View.extend({
attributes: function() {
return {'class': 'dynamic'};
}
});
equal((new viewClass).el.className, 'dynamic');
assert.strictEqual(new View().el.className, 'dynamic');
});
test("View: multiple views per element", 3, function() {
var count = 0, ViewClass = Backbone.View.extend({
el: $("body"),
events: {
"click": "click"
},
click: function() {
count++;
QUnit.test('should default to className/id properties', function(assert) {
assert.expect(4);
var View = Backbone.View.extend({
className: 'backboneClass',
id: 'backboneId',
attributes: {
'class': 'attributeClass',
'id': 'attributeId'
}
});
var view1 = new ViewClass;
$("body").trigger("click");
equal(1, count);
var myView = new View;
assert.strictEqual(myView.el.className, 'backboneClass');
assert.strictEqual(myView.el.id, 'backboneId');
assert.strictEqual(myView.$el.attr('class'), 'backboneClass');
assert.strictEqual(myView.$el.attr('id'), 'backboneId');
});
var view2 = new ViewClass;
$("body").trigger("click");
equal(3, count);
QUnit.test('multiple views per element', function(assert) {
assert.expect(3);
var count = 0;
var $el = $('<p></p>');
var View = Backbone.View.extend({
el: $el,
events: {
click: function() {
count++;
}
}
});
var view1 = new View;
$el.trigger('click');
assert.equal(1, count);
var view2 = new View;
$el.trigger('click');
assert.equal(3, count);
view1.delegateEvents();
$("body").trigger("click");
equal(5, count);
$el.trigger('click');
assert.equal(5, count);
});
test("View: custom events, with namespaces", 2, function() {
var count = 0;
var ViewClass = Backbone.View.extend({
QUnit.test('custom events', function(assert) {
assert.expect(2);
var View = Backbone.View.extend({
el: $('body'),
events: function() {
return {"fake$event.namespaced": "run"};
},
run: function() {
count++;
events: {
fake$event: function() { assert.ok(true); }
}
});
var view = new ViewClass;
var myView = new View;
$('body').trigger('fake$event').trigger('fake$event');
equal(count, 2);
$('body').unbind('.namespaced');
$('body').off('fake$event');
$('body').trigger('fake$event');
equal(count, 2);
});
test("#1048 - setElement uses provided object.", 2, function() {
QUnit.test('#1048 - setElement uses provided object.', function(assert) {
assert.expect(2);
var $el = $('body');
var view = new Backbone.View({el: $el});
ok(view.$el === $el);
view.setElement($el = $($el));
ok(view.$el === $el);
var myView = new Backbone.View({el: $el});
assert.ok(myView.$el === $el);
myView.setElement($el = $($el));
assert.ok(myView.$el === $el);
});
test("#986 - Undelegate before changing element.", 1, function() {
var a = $('<button></button>');
var b = $('<button></button>');
QUnit.test('#986 - Undelegate before changing element.', function(assert) {
assert.expect(1);
var button1 = $('<button></button>');
var button2 = $('<button></button>');
var View = Backbone.View.extend({
events: {click: function(e) { ok(view.el === e.target); }}
events: {
click: function(e) {
assert.ok(myView.el === e.target);
}
}
});
var view = new View({el: a});
view.setElement(b);
a.trigger('click');
b.trigger('click');
var myView = new View({el: button1});
myView.setElement(button2);
button1.trigger('click');
button2.trigger('click');
});
test("#1172 - Clone attributes object", 2, function() {
var View = Backbone.View.extend({attributes: {foo: 'bar'}});
var v1 = new View({id: 'foo'});
strictEqual(v1.el.id, 'foo');
var v2 = new View();
ok(!v2.el.id);
QUnit.test('#1172 - Clone attributes object', function(assert) {
assert.expect(2);
var View = Backbone.View.extend({
attributes: {foo: 'bar'}
});
var view1 = new View({id: 'foo'});
assert.strictEqual(view1.el.id, 'foo');
var view2 = new View();
assert.ok(!view2.el.id);
});
test("#1228 - tagName can be provided as a function", 1, function() {
var View = Backbone.View.extend({tagName: function(){ return 'p'; }});
ok(new View().$el.is('p'));
QUnit.test('views stopListening', function(assert) {
assert.expect(0);
var View = Backbone.View.extend({
initialize: function() {
this.listenTo(this.model, 'all x', function(){ assert.ok(false); });
this.listenTo(this.collection, 'all x', function(){ assert.ok(false); });
}
});
var myView = new View({
model: new Backbone.Model,
collection: new Backbone.Collection
});
myView.stopListening();
myView.model.trigger('x');
myView.collection.trigger('x');
});
});
QUnit.test('Provide function for el.', function(assert) {
assert.expect(2);
var View = Backbone.View.extend({
el: function() {
return '<p><a></a></p>';
}
});
var myView = new View;
assert.ok(myView.$el.is('p'));
assert.ok(myView.$el.has('a'));
});
QUnit.test('events passed in options', function(assert) {
assert.expect(1);
var counter = 0;
var View = Backbone.View.extend({
el: '#testElement',
increment: function() {
counter++;
}
});
var myView = new View({
events: {
'click h1': 'increment'
}
});
myView.$('h1').trigger('click').trigger('click');
assert.equal(counter, 2);
});
QUnit.test('remove', function(assert) {
assert.expect(2);
var myView = new Backbone.View;
document.body.appendChild(view.el);
myView.delegate('click', function() { assert.ok(false); });
myView.listenTo(myView, 'all x', function() { assert.ok(false); });
assert.equal(myView.remove(), myView, '#remove returns the view instance');
myView.$el.trigger('click');
myView.trigger('x');
// In IE8 and below, parentNode still exists but is not document.body.
assert.notEqual(myView.el.parentNode, document.body);
});
QUnit.test('setElement', function(assert) {
assert.expect(3);
var myView = new Backbone.View({
events: {
click: function() { assert.ok(false); }
}
});
myView.events = {
click: function() { assert.ok(true); }
};
var oldEl = myView.el;
var $oldEl = myView.$el;
myView.setElement(document.createElement('div'));
$oldEl.click();
myView.$el.click();
assert.notEqual(oldEl, myView.el);
assert.notEqual($oldEl, myView.$el);
});
})();

View File

@@ -1,132 +0,0 @@
# Benchmark.js <sup>v1.0.0-pre</sup>
A [robust](http://calendar.perfplanet.com/2010/bulletproof-javascript-benchmarks/ "Bulletproof JavaScript benchmarks") benchmarking library that works on nearly all JavaScript platforms<sup><a name="fnref1" href="#fn1">1</a></sup>, supports high-resolution timers, and returns statistically significant results. As seen on [jsPerf](http://jsperf.com/).
## BestieJS
Benchmark.js is part of the BestieJS *"Best in Class"* module collection. This means we promote solid browser/environment support, ES5 precedents, unit testing, and plenty of documentation.
## Documentation
The documentation for Benchmark.js can be viewed here: <http://benchmarkjs.com/docs>
For a list of upcoming features, check out our [roadmap](https://github.com/bestiejs/benchmark.js/wiki/Roadmap).
## Installation and usage
In a browser or Adobe AIR:
~~~ html
<script src="benchmark.js"></script>
~~~
Optionally, expose Javas nanosecond timer by adding the `nano` applet to the `<body>`:
~~~ html
<applet code="nano" archive="nano.jar"></applet>
~~~
Or enable Chromes microsecond timer by using the [command line switch](http://peter.sh/experiments/chromium-command-line-switches/#enable-benchmarking):
--enable-benchmarking
Via [npm](http://npmjs.org/):
~~~ bash
npm install benchmark
~~~
In [Node.js](http://nodejs.org/) and [RingoJS v0.8.0+](http://ringojs.org/):
~~~ js
var Benchmark = require('benchmark');
~~~
Optionally, use the [microtime module](https://github.com/wadey/node-microtime) by Wade Simmons:
~~~ bash
npm install microtime
~~~
In [Narwhal](http://narwhaljs.org/) and [RingoJS v0.7.0-](http://ringojs.org/):
~~~ js
var Benchmark = require('benchmark').Benchmark;
~~~
In [Rhino](http://www.mozilla.org/rhino/):
~~~ js
load('benchmark.js');
~~~
In an AMD loader like [RequireJS](http://requirejs.org/):
~~~ js
require({
'paths': {
'benchmark': 'path/to/benchmark'
}
},
['benchmark'], function(Benchmark) {
console.log(Benchmark.version);
});
// or with platform.js
// https://github.com/bestiejs/platform.js
require({
'paths': {
'benchmark': 'path/to/benchmark',
'platform': 'path/to/platform'
}
},
['benchmark', 'platform'], function(Benchmark, platform) {
Benchmark.platform = platform;
console.log(Benchmark.platform.name);
});
~~~
Usage example:
~~~ js
var suite = new Benchmark.Suite;
// add tests
suite.add('RegExp#test', function() {
/o/.test('Hello World!');
})
.add('String#indexOf', function() {
'Hello World!'.indexOf('o') > -1;
})
// add listeners
.on('cycle', function(event) {
console.log(String(event.target));
})
.on('complete', function() {
console.log('Fastest is ' + this.filter('fastest').pluck('name'));
})
// run async
.run({ 'async': true });
// logs:
// > RegExp#test x 4,161,532 +-0.99% (59 cycles)
// > String#indexOf x 6,139,623 +-1.00% (131 cycles)
// > Fastest is String#indexOf
~~~
## Footnotes
1. Benchmark.js has been tested in at least Adobe AIR 2.6, Chrome 5-15, Firefox 1.5-8, IE 6-10, Opera 9.25-11.52, Safari 2-5.1.1, Node.js 0.4.8-0.6.1, Narwhal 0.3.2, RingoJS 0.7-0.8, and Rhino 1.7RC3.
<a name="fn1" title="Jump back to footnote 1 in the text." href="#fnref1">&#8617;</a>
## Authors
* [Mathias Bynens](http://mathiasbynens.be/)
[![twitter/mathias](http://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter")
* [John-David Dalton](http://allyoucanleet.com/)
[![twitter/jdalton](http://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](https://twitter.com/jdalton "Follow @jdalton on Twitter")
## Contributors
* [Kit Cambridge](http://kitcambridge.github.com/)
[![twitter/kitcambridge](http://gravatar.com/avatar/6662a1d02f351b5ef2f8b4d815804661?s=70)](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter")

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,20 +0,0 @@
Copyright 2011-2012 John-David Dalton <http://allyoucanleet.com/>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -1,44 +0,0 @@
# Docdown <sup>v1.0.0-pre</sup>
A simple JSDoc to Markdown documentation generator.
## Documentation
The documentation for Docdown can be viewed here: [/doc/README.md](https://github.com/jdalton/docdown/blob/master/doc/README.md#readme)
For a list of upcoming features, check out our [roadmap](https://github.com/jdalton/docdown/wiki/Roadmap).
## Installation and usage
Usage example:
~~~ php
require("docdown.php");
// generate Markdown
$markdown = docdown(array(
"path" => $filepath,
"url" => "https://github.com/username/project/blob/master/my.js"
));
~~~
## Cloning this repo
To clone this repository just use:
~~~ bash
git clone https://github.com/docdown/docdown.git
cd docdown
~~~
Feel free to fork and send pull requests if you see improvements!
## Author
* [John-David Dalton](http://allyoucanleet.com/)
[![twitter/jdalton](http://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](https://twitter.com/jdalton "Follow @jdalton on Twitter")
## Contributors
* [Mathias Bynens](http://mathiasbynens.be/)
[![twitter/mathias](http://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter")

View File

@@ -1,38 +0,0 @@
<?php
/*!
* Docdown v1.0.0-pre
* Copyright 2011-2012 John-David Dalton <http://allyoucanleet.com/>
* Available under MIT license <http://mths.be/mit>
*/
require(dirname(__FILE__) . '/src/DocDown/Generator.php');
/**
* Generates Markdown from JSDoc entries in a given file.
*
* @param {Array} [$options=array()] The options array.
* @returns {String} The generated Markdown.
* @example
*
* // specify a file path
* $markdown = docdown(array(
* // path to js file
* 'path' => $filepath,
* // url used to reference line numbers in code
* 'url' => 'https://github.com/username/project/blob/master/my.js'
* ));
*
* // or pass raw js
* $markdown = docdown(array(
* // raw JavaScript source
* 'source' => $rawJS,
* // documentation title
* 'title' => 'My API Documentation',
* // url used to reference line numbers in code
* 'url' => 'https://github.com/username/project/blob/master/my.js'
* ));
*/
function docdown( $options = array() ) {
$gen = new Generator($options);
return $gen->generate();
}
?>

View File

@@ -1,304 +0,0 @@
<?php
/**
* A class to simplify parsing a single JSDoc entry.
*/
class Entry {
/**
* The documentation entry.
*
* @memberOf Entry
* @type String
*/
public $entry = '';
/**
* The language highlighter used for code examples.
*
* @memberOf Entry
* @type String
*/
public $lang = '';
/**
* The source code.
*
* @memberOf Entry
* @type String
*/
public $source = '';
/*--------------------------------------------------------------------------*/
/**
* The Entry constructor.
*
* @constructor
* @param {String} $entry The documentation entry to analyse.
* @param {String} $source The source code.
* @param {String} $lang The language highlighter used for code examples.
*/
public function __construct( $entry, $source, $lang = 'js' ) {
$this->entry = $entry;
$this->lang = $lang;
$this->source = str_replace(PHP_EOL, "\n", $source);
}
/*--------------------------------------------------------------------------*/
/**
* Extracts the documentation entries from source code.
*
* @static
* @memberOf Entry
* @param {String} $source The source code.
* @returns {Array} The array of entries.
*/
public static function getEntries( $source ) {
preg_match_all('#/\*\*(?![-!])[\s\S]*?\*/\s*[^\n]+#', $source, $result);
return array_pop($result);
}
/*--------------------------------------------------------------------------*/
/**
* Checks if the entry is a function reference.
*
* @private
* @memberOf Entry
* @returns {Boolean} Returns `true` if the entry is a function reference, else `false`.
*/
private function isFunction() {
return !!(
$this->isCtor() ||
count($this->getParams()) ||
count($this->getReturns()) ||
preg_match('/\*\s*@function\b/', $this->entry)
);
}
/*--------------------------------------------------------------------------*/
/**
* Extracts the function call from the entry.
*
* @memberOf Entry
* @returns {String} The function call.
*/
public function getCall() {
preg_match('#\*/\s*(?:function ([^(]*)|(.*?)(?=[:=,]|return\b))#', $this->entry, $result);
if ($result = array_pop($result)) {
$result = array_pop(explode('var ', trim(trim(array_pop(explode('.', $result))), "'")));
}
// resolve name
// avoid $this->getName() because it calls $this->getCall()
preg_match('#\*\s*@name\s+([^\n]+)#', $this->entry, $name);
if (count($name)) {
$name = trim($name[1]);
} else {
$name = $result;
}
// compile function call syntax
if ($this->isFunction()) {
// compose parts
$result = array($result);
$params = $this->getParams();
foreach ($params as $param) {
$result[] = $param[1];
}
// format
$result = $name .'('. implode(array_slice($result, 1), ', ') .')';
$result = str_replace(', [', ' [, ', str_replace('], [', ', ', $result));
}
return $result ? $result : $name;
}
/**
* Extracts the entry description.
*
* @memberOf Entry
* @returns {String} The entry description.
*/
public function getDesc() {
preg_match('#/\*\*(?:\s*\*)?([\s\S]*?)(?=\*\s\@[a-z]|\*/)#', $this->entry, $result);
if (count($result)) {
$type = $this->getType();
$result = trim(preg_replace('/(?:^|\n)\s*\* ?/', ' ', $result[1]));
$result = ($type == 'Function' ? '' : '(' . str_replace('|', ', ', trim($type, '{}')) . '): ') . $result;
}
return $result;
}
/**
* Extracts the entry `example` data.
*
* @memberOf Entry
* @returns {String} The entry `example` data.
*/
public function getExample() {
preg_match('#\*\s*@example\s+([\s\S]*?)(?=\*\s\@[a-z]|\*/)#', $this->entry, $result);
if (count($result)) {
$result = trim(preg_replace('/(?:^|\n)\s*\* ?/', "\n", $result[1]));
$result = '~~~ ' . $this->lang . "\n" . $result . "\n~~~";
}
return $result;
}
/**
* Resolves the line number of the entry.
*
* @memberOf Entry
* @returns {Number} The line number.
*/
public function getLineNumber() {
preg_match_all('/\n/', substr($this->source, 0, strrpos($this->source, $this->entry) + strlen($this->entry)), $lines);
return count(array_pop($lines)) + 1;
}
/**
* Extracts the entry `member` data.
*
* @memberOf Entry
* @param {Number} $index The index of the array value to return.
* @returns {Array|String} The entry `member` data.
*/
public function getMembers( $index = null ) {
preg_match('#\*\s*@member(?:Of)?\s+([^\n]+)#', $this->entry, $result);
if (count($result)) {
$result = trim(preg_replace('/(?:^|\n)\s*\* ?/', ' ', $result[1]));
$result = preg_split('/,\s*/', $result);
}
return $index !== null ? @$result[$index] : $result;
}
/**
* Extracts the entry `name` data.
*
* @memberOf Entry
* @returns {String} The entry `name` data.
*/
public function getName() {
preg_match('#\*\s*@name\s+([^\n]+)#', $this->entry, $result);
if (count($result)) {
$result = trim(preg_replace('/(?:^|\n)\s*\* ?/', ' ', $result[1]));
} else {
$result = array_shift(explode('(', $this->getCall()));
}
return $result;
}
/**
* Extracts the entry `param` data.
*
* @memberOf Entry
* @param {Number} $index The index of the array value to return.
* @returns {Array} The entry `param` data.
*/
public function getParams( $index = null ) {
preg_match_all('#\*\s*@param\s+\{([^}]+)\}\s+(\[[^]]+\]|[$\w]+)\s+([\s\S]*?)(?=\*\s\@[a-z]|\*/)#i', $this->entry, $result);
if (count($result = array_filter(array_slice($result, 1)))) {
// repurpose array
foreach ($result as $param) {
foreach ($param as $key => $value) {
if (!is_array($result[0][$key])) {
$result[0][$key] = array();
}
$result[0][$key][] = trim(preg_replace('/(?:^|\n)\s*\* ?/', ' ', $value));
}
}
$result = $result[0];
}
return $index !== null ? @$result[$index] : $result;
}
/**
* Extracts the entry `returns` data.
*
* @memberOf Entry
* @returns {String} The entry `returns` data.
*/
public function getReturns() {
preg_match('#\*\s*@returns\s+\{([^}]+)\}\s+([\s\S]*?)(?=\*\s\@[a-z]|\*/)#', $this->entry, $result);
if (count($result)) {
$result = array_map('trim', array_slice($result, 1));
$result[0] = str_replace('|', ', ', $result[0]);
$result[1] = preg_replace('/(?:^|\n)\s*\* ?/', ' ', $result[1]);
}
return $result;
}
/**
* Extracts the entry `type` data.
*
* @memberOf Entry
* @returns {String} The entry `type` data.
*/
public function getType() {
preg_match('#\*\s*@type\s+([^\n]+)#', $this->entry, $result);
if (count($result)) {
$result = trim(preg_replace('/(?:^|\n)\s*\* ?/', ' ', $result[1]));
} else {
$result = $this->isFunction() ? 'Function' : 'Unknown';
}
return $result;
}
/**
* Checks if an entry is a constructor.
*
* @memberOf Entry
* @returns {Boolean} Returns true if a constructor, else false.
*/
public function isCtor() {
return !!preg_match('/\*\s*@constructor\b/', $this->entry);
}
/**
* Checks if an entry *is* assigned to a prototype.
*
* @memberOf Entry
* @returns {Boolean} Returns true if assigned to a prototype, else false.
*/
public function isPlugin() {
return !$this->isCtor() && !$this->isPrivate() && !$this->isStatic();
}
/**
* Checks if an entry is private.
*
* @memberOf Entry
* @returns {Boolean} Returns true if private, else false.
*/
public function isPrivate() {
return !!preg_match('/\*\s*@private\b/', $this->entry) || strrpos($this->entry, '@') === false;
}
/**
* Checks if an entry is *not* assigned to a prototype.
*
* @memberOf Entry
* @returns {Boolean} Returns true if not assigned to a prototype, else false.
*/
public function isStatic() {
$public = !$this->isPrivate();
$result = $public && !!preg_match('/\*\s*@static\b/', $this->entry);
// set in cases where it isn't explicitly stated
if ($public && !$result) {
if ($parent = array_pop(preg_split('/[#.]/', $this->getMembers(0)))) {
foreach (Entry::getEntries($this->source) as $entry) {
$entry = new Entry($entry, $this->source);
if ($entry->getName() == $parent) {
$result = !$entry->isCtor();
break;
}
}
} else {
$result = true;
}
}
return $result;
}
}
?>

View File

@@ -1,410 +0,0 @@
<?php
require(dirname(__FILE__) . "/Entry.php");
/**
* Generates Markdown from JSDoc entries.
*/
class Generator {
/**
* An array of JSDoc entries.
*
* @memberOf Generator
* @type Array
*/
public $entries = array();
/**
* An options array used to configure the generator.
*
* @memberOf Generator
* @type Array
*/
public $options = array();
/**
* The entire file's source code.
*
* @memberOf Generator
* @type String
*/
public $source = '';
/*--------------------------------------------------------------------------*/
/**
* The Generator constructor.
*
* @constructor
* @param {String} $source The source code to parse.
* @param {Array} $options The options array.
*/
public function __construct( $source, $options = array() ) {
// juggle arguments
if (is_array($source)) {
$options = $source;
} else {
$options['source'] = $source;
}
if (isset($options['source']) && realpath($options['source'])) {
$options['path'] = $options['source'];
}
if (isset($options['path'])) {
preg_match('/(?<=\.)[a-z]+$/', $options['path'], $ext);
$options['source'] = file_get_contents($options['path']);
$ext = array_pop($ext);
if (!isset($options['lang']) && $ext) {
$options['lang'] = $ext;
}
if (!isset($options['title'])) {
$options['title'] = ucfirst(basename($options['path'])) . ' API documentation';
}
}
if (!isset($options['lang'])) {
$options['lang'] = 'js';
}
$this->options = $options;
$this->source = str_replace(PHP_EOL, "\n", $options['source']);
$this->entries = Entry::getEntries($this->source);
foreach ($this->entries as $index => $value) {
$this->entries[$index] = new Entry($value, $this->source, $options['lang']);
}
}
/*--------------------------------------------------------------------------*/
/**
* Performs common string formatting operations.
*
* @private
* @static
* @memberOf Generator
* @param {String} $string The string to format.
* @returns {String} The formatted string.
*/
private static function format($string) {
$counter = 0;
// tokenize inline code snippets
preg_match_all('/`[^`]+`/', $string, $tokenized);
$tokenized = $tokenized[0];
foreach ($tokenized as $snippet) {
$string = str_replace($snippet, '__token' . ($counter++) .'__', $string);
}
// italicize parentheses
$string = preg_replace('/(^|\s)(\([^)]+\))/', '$1*$2*', $string);
// mark numbers as inline code
$string = preg_replace('/ (-?\d+(?:.\d+)?)(?!\.[^\n])/', ' `$1`', $string);
// detokenize inline code snippets
$counter = 0;
foreach ($tokenized as $snippet) {
$string = str_replace('__token' . ($counter++) . '__', $snippet, $string);
}
return trim($string);
}
/**
* Modify a string by replacing named tokens with matching assoc. array values.
*
* @private
* @static
* @memberOf Generator
* @param {String} $string The string to modify.
* @param {Array|Object} $object The template object.
* @returns {String} The modified string.
*/
private static function interpolate($string, $object) {
preg_match_all('/#\{([^}]+)\}/', $string, $tokens);
$tokens = array_unique(array_pop($tokens));
foreach ($tokens as $token) {
$pattern = '/#\{' . $token . '\}/';
$replacement = '';
if (is_object($object)) {
preg_match('/\(([^)]+?)\)$/', $token, $args);
$args = preg_split('/,\s*/', array_pop($args));
$method = 'get' . ucfirst(str_replace('/\([^)]+?\)$/', '', $token));
if (method_exists($object, $method)) {
$replacement = (string) call_user_func_array(array($object, $method), $args);
} else if (isset($object->{$token})) {
$replacement = (string) $object->{$token};
}
} else if (isset($object[$token])) {
$replacement = (string) $object[$token];
}
$string = preg_replace($pattern, trim($replacement), $string);
}
return Generator::format($string);
}
/*--------------------------------------------------------------------------*/
/**
* Resolves the entry's hash used to navigate the documentation.
*
* @private
* @memberOf Generator
* @param {Number|Object} $entry The entry object.
* @param {String} $member The name of the member.
* @returns {String} The url hash.
*/
private function getHash( $entry, $member = '' ) {
$entry = is_numeric($entry) ? $this->entries[$entry] : $entry;
$member = !$member ? $entry->getMembers(0) : $member;
$result = ($member ? $member . ($entry->isPlugin() ? 'prototype' : '') : '') . $entry->getCall();
$result = preg_replace('/\(\[|\[\]/', '', $result);
$result = preg_replace('/[ =\'"{}.()\]]/', '', $result);
$result = preg_replace('/[[#,]/', '-', $result);
return strtolower($result);
}
/**
* Resolves the entry's url for the specific line number.
*
* @private
* @memberOf Generator
* @param {Number|Object} $entry The entry object.
* @returns {String} The url.
*/
private function getLineUrl( $entry ) {
$entry = is_numeric($entry) ? $this->entries($entry) : $entry;
return $this->options['url'] . '#L' . $entry->getLineNumber();
}
/**
* Extracts the character used to separate the entry's name from its member.
*
* @private
* @memberOf Generator
* @param {Number|Object} $entry The entry object.
* @returns {String} The separator.
*/
private function getSeparator( $entry ) {
$entry = is_numeric($entry) ? $this->entries($entry) : $entry;
return $entry->isPlugin() ? '.prototype.' : '.';
}
/*--------------------------------------------------------------------------*/
/**
* Generates Markdown from JSDoc entries.
*
* @memberOf Generator
* @returns {String} The rendered Markdown.
*/
public function generate() {
$api = array();
$compiling = false;
$openTag = "\n<!-- div -->\n";
$closeTag = "\n<!-- /div -->\n";
$result = array('# ' . $this->options['title']);
// initialize $api array
foreach ($this->entries as $entry) {
if (!$entry->isPrivate()) {
$name = $entry->getName();
$members = $entry->getMembers();
$members = count($members) ? $members : array('');
foreach ($members as $member) {
// create api category arrays
if (!isset($api[$member]) && $member) {
$api[$member] = new Entry('', '', $entry->lang);
$api[$member]->static = array();
$api[$member]->plugin = array();
}
// append entry to api category
if (!$member || $entry->isCtor() || ($entry->getType() == 'Object' &&
!preg_match('/[=:]\s*null\s*[,;]?$/', $entry->entry))) {
$member = ($member ? $member . ($entry->isPlugin() ? '#' : '.') : '') . $name;
$entry->static = @$api[$member] ? $api[$member]->static : array();
$entry->plugin = @$api[$member] ? $api[$member]->plugin : array();
$api[$member] = $entry;
}
else if ($entry->isStatic()) {
$api[$member]->static[] = $entry;
} else if (!$entry->isCtor()) {
$api[$member]->plugin[] = $entry;
}
}
}
}
/*------------------------------------------------------------------------*/
// custom sort for root level entries
// TODO: see how well it handles deeper namespace traversal
function sortCompare($a, $b) {
$score = array( 'a' => 0, 'b' => 0);
foreach (array( 'a' => $a, 'b' => $b) as $key => $value) {
// capitalized keys that represent constructor properties are last
if (preg_match('/[#.][A-Z]/', $value)) {
$score[$key] = 0;
}
// lowercase keys with prototype properties are next to last
else if (preg_match('/#[a-z]/', $value)) {
$score[$key] = 1;
}
// lowercase keys with static properties next to first
else if (preg_match('/\.[a-z]/', $value)) {
$score[$key] = 2;
}
// lowercase keys with no properties are first
else if (preg_match('/^[^#.]+$/', $value)) {
$score[$key] = 3;
}
}
$score = $score['b'] - $score['a'];
return $score ? $score : strcasecmp($a, $b);
}
uksort($api, 'sortCompare');
// sort static and plugin sub-entries
foreach ($api as $entry) {
foreach (array('static', 'plugin') as $kind) {
$sortBy = array( 'a' => array(), 'b' => array(), 'c' => array() );
foreach ($entry->{$kind} as $subentry) {
$name = $subentry->getName();
// functions w/o ALL-CAPs names are last
$sortBy['a'][] = $subentry->getType() == 'Function' && !preg_match('/^[A-Z_]+$/', $name);
// ALL-CAPs properties first
$sortBy['b'][] = preg_match('/^[A-Z_]+$/', $name);
// lowercase alphanumeric sort
$sortBy['c'][] = strtolower($name);
}
array_multisort($sortBy['a'], SORT_ASC, $sortBy['b'], SORT_DESC, $sortBy['c'], SORT_ASC, $entry->{$kind});
}
}
/*------------------------------------------------------------------------*/
// compile TOC
$result[] = $openTag;
foreach ($api as $key => $entry) {
$entry->hash = $this->getHash($entry);
$entry->href = $this->getLineUrl($entry);
$member = $entry->getMembers(0);
$member = ($member ? $member . ($entry->isPlugin() ? '.prototype.' : '.') : '') . $entry->getName();
$entry->member = preg_replace('/' . $entry->getName() . '$/', '', $member);
$compiling = $compiling ? ($result[] = $closeTag) : true;
// add root entry
array_push(
$result,
$openTag, '## ' . (count($result) == 2 ? '<a id="toc"></a>' : '') . '`' . $member . '`',
Generator::interpolate('* [`' . $member . '`](##{hash})', $entry)
);
// add static and plugin sub-entries
foreach (array('static', 'plugin') as $kind) {
if ($kind == 'plugin' && count($entry->plugin)) {
array_push(
$result,
$closeTag,
$openTag,
'## `' . $member . ($entry->isCtor() ? '.prototype`' : '`')
);
}
foreach ($entry->{$kind} as $subentry) {
$subentry->hash = $this->getHash($subentry);
$subentry->href = $this->getLineUrl($subentry);
$subentry->member = $member;
$subentry->separator = $this->getSeparator($subentry);
$result[] = Generator::interpolate('* [`#{member}#{separator}#{name}`](##{hash})', $subentry);
}
}
}
array_push($result, $closeTag, $closeTag);
/*------------------------------------------------------------------------*/
// compile content
$compiling = false;
$result[] = $openTag;
foreach ($api as $entry) {
// add root entry
$member = $entry->member . $entry->getName();
$compiling = $compiling ? ($result[] = $closeTag) : true;
array_push($result, $openTag, '## `' . $member . '`');
foreach (array($entry, 'static', 'plugin') as $kind) {
$subentries = is_string($kind) ? $entry->{$kind} : array($kind);
// title
if ($kind != 'static' && $entry->getType() != 'Object' &&
count($subentries) && $subentries[0] != $kind) {
if ($kind == 'plugin') {
$result[] = $closeTag;
}
array_push(
$result,
$openTag,
'## `' . $member . ($kind == 'plugin' ? '.prototype`' : '`')
);
}
// body
foreach ($subentries as $subentry) {
// description
array_push(
$result,
$openTag,
Generator::interpolate("### <a id=\"#{hash}\"></a>`#{member}#{separator}#{call}`\n<a href=\"##{hash}\">#</a> [&#x24C8;](#{href} \"View in source\") [&#x24C9;][1]\n\n#{desc}", $subentry)
);
// @param
if (count($params = $subentry->getParams())) {
array_push($result, '', '#### Arguments');
foreach ($params as $index => $param) {
$result[] = Generator::interpolate('#{num}. `#{name}` (#{type}): #{desc}', array(
'desc' => $param[2],
'name' => $param[1],
'num' => $index + 1,
'type' => $param[0]
));
}
}
// @returns
if (count($returns = $subentry->getReturns())) {
array_push(
$result, '',
'#### Returns',
Generator::interpolate('(#{type}): #{desc}', array('desc' => $returns[1], 'type' => $returns[0]))
);
}
// @example
if ($example = $subentry->getExample()) {
array_push($result, '', '#### Example', $example);
}
array_push($result, "\n* * *", $closeTag);
}
}
}
// close tags add TOC link reference
array_push($result, $closeTag, $closeTag, '', ' [1]: #toc "Jump back to the TOC."');
// cleanup whitespace
return trim(preg_replace('/ +\n/', "\n", join($result, "\n")));
}
}
?>

File diff suppressed because it is too large Load Diff

View File

@@ -1,331 +1,331 @@
/* See license.txt for terms of usage */
.panelNode-script {
overflow: hidden;
font-family: monospace;
}
/************************************************************************************************/
.scriptTooltip {
position: fixed;
z-index: 2147483647;
padding: 2px 3px;
border: 1px solid #CBE087;
background: LightYellow;
font-family: monospace;
color: #000000;
}
/************************************************************************************************/
.sourceBox {
/* TODO: xxxpedro problem with sourceBox and scrolling elements */
/*overflow: scroll; /* see issue 1479 */
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
.sourceRow {
white-space: nowrap;
-moz-user-select: text;
}
.sourceRow.hovered {
background-color: #EEEEEE;
}
/************************************************************************************************/
.sourceLine {
-moz-user-select: none;
margin-right: 10px;
border-right: 1px solid #CCCCCC;
padding: 0px 4px 0 20px;
background: #EEEEEE no-repeat 2px 0px;
color: #888888;
white-space: pre;
font-family: monospace; /* see issue 2953 */
}
.noteInToolTip { /* below sourceLine, so it overrides it */
background-color: #FFD472;
}
.useA11y .sourceBox .sourceViewport:focus .sourceLine {
background-color: #FFFFC0;
color: navy;
border-right: 1px solid black;
}
.useA11y .sourceBox .sourceViewport:focus {
outline: none;
}
.a11y1emSize {
width: 1em;
height: 1em;
position: absolute;
}
.useA11y .panelStatusLabel:focus {
outline-offset: -2px !important;
}
.sourceBox > .sourceRow > .sourceLine {
cursor: pointer;
}
.sourceLine:hover {
text-decoration: none;
}
.sourceRowText {
white-space: pre;
}
.sourceRow[exe_line="true"] {
outline: 1px solid #D9D9B6;
margin-right: 1px;
background-color: lightgoldenrodyellow;
}
.sourceRow[executable="true"] > .sourceLine {
content: "-";
color: #4AA02C; /* Spring Green */
font-weight: bold;
}
.sourceRow[exe_line="true"] > .sourceLine {
background-image: url(chrome://firebug/skin/exe.png);
color: #000000;
}
.sourceRow[breakpoint="true"] > .sourceLine {
background-image: url(chrome://firebug/skin/breakpoint.png);
}
.sourceRow[breakpoint="true"][condition="true"] > .sourceLine {
background-image: url(chrome://firebug/skin/breakpointCondition.png);
}
.sourceRow[breakpoint="true"][disabledBreakpoint="true"] > .sourceLine {
background-image: url(chrome://firebug/skin/breakpointDisabled.png);
}
.sourceRow[breakpoint="true"][exe_line="true"] > .sourceLine {
background-image: url(chrome://firebug/skin/breakpointExe.png);
}
.sourceRow[breakpoint="true"][exe_line="true"][disabledBreakpoint="true"] > .sourceLine {
background-image: url(chrome://firebug/skin/breakpointDisabledExe.png);
}
.sourceLine.editing {
background-image: url(chrome://firebug/skin/breakpoint.png);
}
/************************************************************************************************/
.conditionEditor {
z-index: 2147483647;
position: absolute;
margin-top: 0;
left: 2px;
width: 90%;
}
.conditionEditorInner {
position: relative;
top: -26px;
height: 0;
}
.conditionCaption {
margin-bottom: 2px;
font-family: Lucida Grande, sans-serif;
font-weight: bold;
font-size: 11px;
color: #226679;
}
.conditionInput {
width: 100%;
border: 1px solid #0096C0;
font-family: monospace;
font-size: inherit;
}
.conditionEditorInner1 {
padding-left: 37px;
background: url(condBorders.png) repeat-y;
}
.conditionEditorInner2 {
padding-right: 25px;
background: url(condBorders.png) repeat-y 100% 0;
}
.conditionEditorTop1 {
background: url(condCorners.png) no-repeat 100% 0;
margin-left: 37px;
height: 35px;
}
.conditionEditorTop2 {
position: relative;
left: -37px;
width: 37px;
height: 35px;
background: url(condCorners.png) no-repeat;
}
.conditionEditorBottom1 {
background: url(condCorners.png) no-repeat 100% 100%;
margin-left: 37px;
height: 33px;
}
.conditionEditorBottom2 {
position: relative; left: -37px;
width: 37px;
height: 33px;
background: url(condCorners.png) no-repeat 0 100%;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
.upsideDown {
margin-top: 2px;
}
.upsideDown .conditionEditorInner {
top: -8px;
}
.upsideDown .conditionEditorInner1 {
padding-left: 33px;
background: url(condBordersUps.png) repeat-y;
}
.upsideDown .conditionEditorInner2 {
padding-right: 25px;
background: url(condBordersUps.png) repeat-y 100% 0;
}
.upsideDown .conditionEditorTop1 {
background: url(condCornersUps.png) no-repeat 100% 0;
margin-left: 33px;
height: 25px;
}
.upsideDown .conditionEditorTop2 {
position: relative;
left: -33px;
width: 33px;
height: 25px;
background: url(condCornersUps.png) no-repeat;
}
.upsideDown .conditionEditorBottom1 {
background: url(condCornersUps.png) no-repeat 100% 100%;
margin-left: 33px;
height: 43px;
}
.upsideDown .conditionEditorBottom2 {
position: relative;
left: -33px;
width: 33px;
height: 43px;
background: url(condCornersUps.png) no-repeat 0 100%;
}
/************************************************************************************************/
.breakpointsGroupListBox {
overflow: hidden;
}
.breakpointBlockHead {
position: relative;
padding-top: 4px;
}
.breakpointBlockHead > .checkbox {
margin-right: 4px;
}
.breakpointBlockHead > .objectLink-sourceLink {
top: 4px;
right: 20px;
background-color: #FFFFFF; /* issue 3308 */
}
.breakpointBlockHead > .closeButton {
position: absolute;
top: 2px;
right: 2px;
}
.breakpointCheckbox {
margin-top: 0;
vertical-align: top;
}
.breakpointName {
margin-left: 4px;
font-weight: bold;
}
.breakpointRow[aria-checked="false"] > .breakpointBlockHead > *,
.breakpointRow[aria-checked="false"] > .breakpointCode {
opacity: 0.5;
}
.breakpointRow[aria-checked="false"] .breakpointCheckbox,
.breakpointRow[aria-checked="false"] .objectLink-sourceLink,
.breakpointRow[aria-checked="false"] .closeButton,
.breakpointRow[aria-checked="false"] .breakpointMutationType {
opacity: 1.0 !important;
}
.breakpointCode {
overflow: hidden;
white-space: nowrap;
padding-left: 24px;
padding-bottom: 2px;
border-bottom: 1px solid #D7D7D7;
font-family: monospace;
color: DarkGreen;
}
.breakpointCondition {
white-space: nowrap;
padding-left: 24px;
padding-bottom: 2px;
border-bottom: 1px solid #D7D7D7;
font-family: monospace;
color: Gray;
}
.breakpointBlock-breakpoints > .groupHeader {
display: none;
}
.breakpointBlock-monitors > .breakpointCode {
padding: 0;
}
.breakpointBlock-errorBreakpoints .breakpointCheckbox,
.breakpointBlock-monitors .breakpointCheckbox {
display: none;
}
.breakpointHeader {
margin: 0 !important;
border-top: none !important;
}
/* See license.txt for terms of usage */
.panelNode-script {
overflow: hidden;
font-family: monospace;
}
/************************************************************************************************/
.scriptTooltip {
position: fixed;
z-index: 2147483647;
padding: 2px 3px;
border: 1px solid #CBE087;
background: LightYellow;
font-family: monospace;
color: #000000;
}
/************************************************************************************************/
.sourceBox {
/* TODO: xxxpedro problem with sourceBox and scrolling elements */
/*overflow: scroll; /* see issue 1479 */
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
.sourceRow {
white-space: nowrap;
-moz-user-select: text;
}
.sourceRow.hovered {
background-color: #EEEEEE;
}
/************************************************************************************************/
.sourceLine {
-moz-user-select: none;
margin-right: 10px;
border-right: 1px solid #CCCCCC;
padding: 0px 4px 0 20px;
background: #EEEEEE no-repeat 2px 0px;
color: #888888;
white-space: pre;
font-family: monospace; /* see issue 2953 */
}
.noteInToolTip { /* below sourceLine, so it overrides it */
background-color: #FFD472;
}
.useA11y .sourceBox .sourceViewport:focus .sourceLine {
background-color: #FFFFC0;
color: navy;
border-right: 1px solid black;
}
.useA11y .sourceBox .sourceViewport:focus {
outline: none;
}
.a11y1emSize {
width: 1em;
height: 1em;
position: absolute;
}
.useA11y .panelStatusLabel:focus {
outline-offset: -2px !important;
}
.sourceBox > .sourceRow > .sourceLine {
cursor: pointer;
}
.sourceLine:hover {
text-decoration: none;
}
.sourceRowText {
white-space: pre;
}
.sourceRow[exe_line="true"] {
outline: 1px solid #D9D9B6;
margin-right: 1px;
background-color: lightgoldenrodyellow;
}
.sourceRow[executable="true"] > .sourceLine {
content: "-";
color: #4AA02C; /* Spring Green */
font-weight: bold;
}
.sourceRow[exe_line="true"] > .sourceLine {
background-image: url(chrome://firebug/skin/exe.png);
color: #000000;
}
.sourceRow[breakpoint="true"] > .sourceLine {
background-image: url(chrome://firebug/skin/breakpoint.png);
}
.sourceRow[breakpoint="true"][condition="true"] > .sourceLine {
background-image: url(chrome://firebug/skin/breakpointCondition.png);
}
.sourceRow[breakpoint="true"][disabledBreakpoint="true"] > .sourceLine {
background-image: url(chrome://firebug/skin/breakpointDisabled.png);
}
.sourceRow[breakpoint="true"][exe_line="true"] > .sourceLine {
background-image: url(chrome://firebug/skin/breakpointExe.png);
}
.sourceRow[breakpoint="true"][exe_line="true"][disabledBreakpoint="true"] > .sourceLine {
background-image: url(chrome://firebug/skin/breakpointDisabledExe.png);
}
.sourceLine.editing {
background-image: url(chrome://firebug/skin/breakpoint.png);
}
/************************************************************************************************/
.conditionEditor {
z-index: 2147483647;
position: absolute;
margin-top: 0;
left: 2px;
width: 90%;
}
.conditionEditorInner {
position: relative;
top: -26px;
height: 0;
}
.conditionCaption {
margin-bottom: 2px;
font-family: Lucida Grande, sans-serif;
font-weight: bold;
font-size: 11px;
color: #226679;
}
.conditionInput {
width: 100%;
border: 1px solid #0096C0;
font-family: monospace;
font-size: inherit;
}
.conditionEditorInner1 {
padding-left: 37px;
background: url(condBorders.png) repeat-y;
}
.conditionEditorInner2 {
padding-right: 25px;
background: url(condBorders.png) repeat-y 100% 0;
}
.conditionEditorTop1 {
background: url(condCorners.png) no-repeat 100% 0;
margin-left: 37px;
height: 35px;
}
.conditionEditorTop2 {
position: relative;
left: -37px;
width: 37px;
height: 35px;
background: url(condCorners.png) no-repeat;
}
.conditionEditorBottom1 {
background: url(condCorners.png) no-repeat 100% 100%;
margin-left: 37px;
height: 33px;
}
.conditionEditorBottom2 {
position: relative; left: -37px;
width: 37px;
height: 33px;
background: url(condCorners.png) no-repeat 0 100%;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
.upsideDown {
margin-top: 2px;
}
.upsideDown .conditionEditorInner {
top: -8px;
}
.upsideDown .conditionEditorInner1 {
padding-left: 33px;
background: url(condBordersUps.png) repeat-y;
}
.upsideDown .conditionEditorInner2 {
padding-right: 25px;
background: url(condBordersUps.png) repeat-y 100% 0;
}
.upsideDown .conditionEditorTop1 {
background: url(condCornersUps.png) no-repeat 100% 0;
margin-left: 33px;
height: 25px;
}
.upsideDown .conditionEditorTop2 {
position: relative;
left: -33px;
width: 33px;
height: 25px;
background: url(condCornersUps.png) no-repeat;
}
.upsideDown .conditionEditorBottom1 {
background: url(condCornersUps.png) no-repeat 100% 100%;
margin-left: 33px;
height: 43px;
}
.upsideDown .conditionEditorBottom2 {
position: relative;
left: -33px;
width: 33px;
height: 43px;
background: url(condCornersUps.png) no-repeat 0 100%;
}
/************************************************************************************************/
.breakpointsGroupListBox {
overflow: hidden;
}
.breakpointBlockHead {
position: relative;
padding-top: 4px;
}
.breakpointBlockHead > .checkbox {
margin-right: 4px;
}
.breakpointBlockHead > .objectLink-sourceLink {
top: 4px;
right: 20px;
background-color: #FFFFFF; /* issue 3308 */
}
.breakpointBlockHead > .closeButton {
position: absolute;
top: 2px;
right: 2px;
}
.breakpointCheckbox {
margin-top: 0;
vertical-align: top;
}
.breakpointName {
margin-left: 4px;
font-weight: bold;
}
.breakpointRow[aria-checked="false"] > .breakpointBlockHead > *,
.breakpointRow[aria-checked="false"] > .breakpointCode {
opacity: 0.5;
}
.breakpointRow[aria-checked="false"] .breakpointCheckbox,
.breakpointRow[aria-checked="false"] .objectLink-sourceLink,
.breakpointRow[aria-checked="false"] .closeButton,
.breakpointRow[aria-checked="false"] .breakpointMutationType {
opacity: 1.0 !important;
}
.breakpointCode {
overflow: hidden;
white-space: nowrap;
padding-left: 24px;
padding-bottom: 2px;
border-bottom: 1px solid #D7D7D7;
font-family: monospace;
color: DarkGreen;
}
.breakpointCondition {
white-space: nowrap;
padding-left: 24px;
padding-bottom: 2px;
border-bottom: 1px solid #D7D7D7;
font-family: monospace;
color: Gray;
}
.breakpointBlock-breakpoints > .groupHeader {
display: none;
}
.breakpointBlock-monitors > .breakpointCode {
padding: 0;
}
.breakpointBlock-errorBreakpoints .breakpointCheckbox,
.breakpointBlock-monitors .breakpointCheckbox {
display: none;
}
.breakpointHeader {
margin: 0 !important;
border-top: none !important;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,20 +1,20 @@
/************************************************************************************************/
#fbToolbarSearch {
background-image: url(search.gif) !important;
}
/************************************************************************************************/
.fbErrors {
background-image: url(errorIcon.gif) !important;
}
/************************************************************************************************/
.logRow-info {
background-image: url(infoIcon.gif) !important;
}
.logRow-warning {
background-image: url(warningIcon.gif) !important;
}
.logRow-error {
background-image: url(errorIcon.gif) !important;
}
/************************************************************************************************/
#fbToolbarSearch {
background-image: url(search.gif) !important;
}
/************************************************************************************************/
.fbErrors {
background-image: url(errorIcon.gif) !important;
}
/************************************************************************************************/
.logRow-info {
background-image: url(infoIcon.gif) !important;
}
.logRow-warning {
background-image: url(warningIcon.gif) !important;
}
.logRow-error {
background-image: url(errorIcon.gif) !important;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,215 +1,215 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/DTD/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Firebug Lite</title>
<!-- An empty script to avoid FOUC when loading the stylesheet -->
<script type="text/javascript"></script>
<style type="text/css" media="screen">@import "firebug.css";</style>
<style>html,body{margin:0;padding:0;overflow:hidden;}</style>
</head>
<body class="fbBody">
<table id="fbChrome" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<!-- Interface - Top Area -->
<td id="fbTop" colspan="2">
<!--
<div>
--><!-- <span id="fbToolbarErrors" class="fbErrors">2 errors</span> --><!--
<input type="text" id="fbToolbarSearch" />
</div>
-->
<!-- Window Buttons -->
<div id="fbWindowButtons">
<a id="fbWindow_btDeactivate" class="fbSmallButton fbHover" title="Deactivate Firebug for this web page">&nbsp;</a>
<a id="fbWindow_btDetach" class="fbSmallButton fbHover" title="Open Firebug in popup window">&nbsp;</a>
<a id="fbWindow_btClose" class="fbSmallButton fbHover" title="Minimize Firebug">&nbsp;</a>
</div>
<!-- Toolbar buttons and Status Bar -->
<div id="fbToolbar">
<div id="fbToolbarContent">
<!-- Firebug Button -->
<span id="fbToolbarIcon">
<a id="fbFirebugButton" class="fbIconButton" class="fbHover" target="_blank">&nbsp;</a>
</span>
<!--
<span id="fbLeftToolbarErrors" class="fbErrors">2 errors</span>
-->
<!-- Toolbar Buttons -->
<span id="fbToolbarButtons">
<!-- Fixed Toolbar Buttons -->
<span id="fbFixedButtons">
<a id="fbChrome_btInspect" class="fbButton fbHover" title="Click an element in the page to inspect">Inspect</a>
</span>
<!-- Console Panel Toolbar Buttons -->
<span id="fbConsoleButtons" class="fbToolbarButtons">
<a id="fbConsole_btClear" class="fbButton fbHover" title="Clear the console">Clear</a>
</span>
<!-- HTML Panel Toolbar Buttons -->
<!--
<span id="fbHTMLButtons" class="fbToolbarButtons">
<a id="fbHTML_btEdit" class="fbHover" title="Edit this HTML">Edit</a>
</span>
-->
</span>
<!-- Status Bar -->
<span id="fbStatusBarBox">
<span class="fbToolbarSeparator"></span>
<!-- HTML Panel Status Bar -->
<!--
<span id="fbHTMLStatusBar" class="fbStatusBar fbToolbarButtons">
</span>
-->
</span>
</div>
</div>
<!-- PanelBars -->
<div id="fbPanelBarBox">
<!-- Main PanelBar -->
<div id="fbPanelBar1" class="fbPanelBar">
<a id="fbConsoleTab" class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">Console</span>
<span class="fbTabMenuTarget"></span>
<span class="fbTabR"></span>
</a>
<a id="fbHTMLTab" class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">HTML</span>
<span class="fbTabR"></span>
</a>
<a class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">CSS</span>
<span class="fbTabR"></span>
</a>
<a class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">Script</span>
<span class="fbTabR"></span>
</a>
<a class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">DOM</span>
<span class="fbTabR"></span>
</a>
</div>
<!-- Side PanelBars -->
<div id="fbPanelBar2Box" class="hide">
<div id="fbPanelBar2" class="fbPanelBar">
<!--
<a class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">Style</span>
<span class="fbTabR"></span>
</a>
<a class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">Layout</span>
<span class="fbTabR"></span>
</a>
<a class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">DOM</span>
<span class="fbTabR"></span>
</a>
-->
</div>
</div>
</div>
<!-- Horizontal Splitter -->
<div id="fbHSplitter">&nbsp;</div>
</td>
</tr>
<!-- Interface - Main Area -->
<tr id="fbContent">
<!-- Panels -->
<td id="fbPanelBox1">
<div id="fbPanel1" class="fbFitHeight">
<div id="fbConsole" class="fbPanel"></div>
<div id="fbHTML" class="fbPanel"></div>
</div>
</td>
<!-- Side Panel Box -->
<td id="fbPanelBox2" class="hide">
<!-- VerticalSplitter -->
<div id="fbVSplitter" class="fbVSplitter">&nbsp;</div>
<!-- Side Panels -->
<div id="fbPanel2" class="fbFitHeight">
<!-- HTML Side Panels -->
<div id="fbHTML_Style" class="fbPanel"></div>
<div id="fbHTML_Layout" class="fbPanel"></div>
<div id="fbHTML_DOM" class="fbPanel"></div>
</div>
<!-- Large Command Line -->
<textarea id="fbLargeCommandLine" class="fbFitHeight"></textarea>
<!-- Large Command Line Buttons -->
<div id="fbLargeCommandButtons">
<a id="fbCommand_btRun" class="fbButton fbHover">Run</a>
<a id="fbCommand_btClear" class="fbButton fbHover">Clear</a>
<a id="fbSmallCommandLineIcon" class="fbSmallButton fbHover"></a>
</div>
</td>
</tr>
<!-- Interface - Bottom Area -->
<tr id="fbBottom" class="hide">
<!-- Command Line -->
<td id="fbCommand" colspan="2">
<div id="fbCommandBox">
<div id="fbCommandIcon">&gt;&gt;&gt;</div>
<input id="fbCommandLine" name="fbCommandLine" type="text" />
<a id="fbLargeCommandLineIcon" class="fbSmallButton fbHover"></a>
</div>
</td>
</tr>
</tbody>
</table>
<span id="fbMiniChrome">
<span id="fbMiniContent">
<span id="fbMiniIcon" title="Open Firebug Lite"></span>
<span id="fbMiniErrors" class="fbErrors"><!-- 2 errors --></span>
</span>
</span>
<!--
<div id="fbErrorPopup">
<div id="fbErrorPopupContent">
<div id="fbErrorIndicator" class="fbErrors">2 errors</div>
</div>
</div>
-->
</body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/DTD/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Firebug Lite</title>
<!-- An empty script to avoid FOUC when loading the stylesheet -->
<script type="text/javascript"></script>
<style type="text/css" media="screen">@import "firebug.css";</style>
<style>html,body{margin:0;padding:0;overflow:hidden;}</style>
</head>
<body class="fbBody">
<table id="fbChrome" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<!-- Interface - Top Area -->
<td id="fbTop" colspan="2">
<!--
<div>
--><!-- <span id="fbToolbarErrors" class="fbErrors">2 errors</span> --><!--
<input type="text" id="fbToolbarSearch" />
</div>
-->
<!-- Window Buttons -->
<div id="fbWindowButtons">
<a id="fbWindow_btDeactivate" class="fbSmallButton fbHover" title="Deactivate Firebug for this web page">&nbsp;</a>
<a id="fbWindow_btDetach" class="fbSmallButton fbHover" title="Open Firebug in popup window">&nbsp;</a>
<a id="fbWindow_btClose" class="fbSmallButton fbHover" title="Minimize Firebug">&nbsp;</a>
</div>
<!-- Toolbar buttons and Status Bar -->
<div id="fbToolbar">
<div id="fbToolbarContent">
<!-- Firebug Button -->
<span id="fbToolbarIcon">
<a id="fbFirebugButton" class="fbIconButton" class="fbHover" target="_blank">&nbsp;</a>
</span>
<!--
<span id="fbLeftToolbarErrors" class="fbErrors">2 errors</span>
-->
<!-- Toolbar Buttons -->
<span id="fbToolbarButtons">
<!-- Fixed Toolbar Buttons -->
<span id="fbFixedButtons">
<a id="fbChrome_btInspect" class="fbButton fbHover" title="Click an element in the page to inspect">Inspect</a>
</span>
<!-- Console Panel Toolbar Buttons -->
<span id="fbConsoleButtons" class="fbToolbarButtons">
<a id="fbConsole_btClear" class="fbButton fbHover" title="Clear the console">Clear</a>
</span>
<!-- HTML Panel Toolbar Buttons -->
<!--
<span id="fbHTMLButtons" class="fbToolbarButtons">
<a id="fbHTML_btEdit" class="fbHover" title="Edit this HTML">Edit</a>
</span>
-->
</span>
<!-- Status Bar -->
<span id="fbStatusBarBox">
<span class="fbToolbarSeparator"></span>
<!-- HTML Panel Status Bar -->
<!--
<span id="fbHTMLStatusBar" class="fbStatusBar fbToolbarButtons">
</span>
-->
</span>
</div>
</div>
<!-- PanelBars -->
<div id="fbPanelBarBox">
<!-- Main PanelBar -->
<div id="fbPanelBar1" class="fbPanelBar">
<a id="fbConsoleTab" class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">Console</span>
<span class="fbTabMenuTarget"></span>
<span class="fbTabR"></span>
</a>
<a id="fbHTMLTab" class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">HTML</span>
<span class="fbTabR"></span>
</a>
<a class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">CSS</span>
<span class="fbTabR"></span>
</a>
<a class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">Script</span>
<span class="fbTabR"></span>
</a>
<a class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">DOM</span>
<span class="fbTabR"></span>
</a>
</div>
<!-- Side PanelBars -->
<div id="fbPanelBar2Box" class="hide">
<div id="fbPanelBar2" class="fbPanelBar">
<!--
<a class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">Style</span>
<span class="fbTabR"></span>
</a>
<a class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">Layout</span>
<span class="fbTabR"></span>
</a>
<a class="fbTab fbHover">
<span class="fbTabL"></span>
<span class="fbTabText">DOM</span>
<span class="fbTabR"></span>
</a>
-->
</div>
</div>
</div>
<!-- Horizontal Splitter -->
<div id="fbHSplitter">&nbsp;</div>
</td>
</tr>
<!-- Interface - Main Area -->
<tr id="fbContent">
<!-- Panels -->
<td id="fbPanelBox1">
<div id="fbPanel1" class="fbFitHeight">
<div id="fbConsole" class="fbPanel"></div>
<div id="fbHTML" class="fbPanel"></div>
</div>
</td>
<!-- Side Panel Box -->
<td id="fbPanelBox2" class="hide">
<!-- VerticalSplitter -->
<div id="fbVSplitter" class="fbVSplitter">&nbsp;</div>
<!-- Side Panels -->
<div id="fbPanel2" class="fbFitHeight">
<!-- HTML Side Panels -->
<div id="fbHTML_Style" class="fbPanel"></div>
<div id="fbHTML_Layout" class="fbPanel"></div>
<div id="fbHTML_DOM" class="fbPanel"></div>
</div>
<!-- Large Command Line -->
<textarea id="fbLargeCommandLine" class="fbFitHeight"></textarea>
<!-- Large Command Line Buttons -->
<div id="fbLargeCommandButtons">
<a id="fbCommand_btRun" class="fbButton fbHover">Run</a>
<a id="fbCommand_btClear" class="fbButton fbHover">Clear</a>
<a id="fbSmallCommandLineIcon" class="fbSmallButton fbHover"></a>
</div>
</td>
</tr>
<!-- Interface - Bottom Area -->
<tr id="fbBottom" class="hide">
<!-- Command Line -->
<td id="fbCommand" colspan="2">
<div id="fbCommandBox">
<div id="fbCommandIcon">&gt;&gt;&gt;</div>
<input id="fbCommandLine" name="fbCommandLine" type="text" />
<a id="fbLargeCommandLineIcon" class="fbSmallButton fbHover"></a>
</div>
</td>
</tr>
</tbody>
</table>
<span id="fbMiniChrome">
<span id="fbMiniContent">
<span id="fbMiniIcon" title="Open Firebug Lite"></span>
<span id="fbMiniErrors" class="fbErrors"><!-- 2 errors --></span>
</span>
</span>
<!--
<div id="fbErrorPopup">
<div id="fbErrorPopupContent">
<div id="fbErrorIndicator" class="fbErrors">2 errors</div>
</div>
</div>
-->
</body>
</html>

View File

@@ -1,272 +1,272 @@
/* See license.txt for terms of usage */
.panelNode-html {
-moz-box-sizing: padding-box;
padding: 4px 0 0 2px;
}
.nodeBox {
position: relative;
font-family: Monaco, monospace;
padding-left: 13px;
-moz-user-select: -moz-none;
}
.nodeBox.search-selection {
-moz-user-select: text;
}
.twisty {
position: absolute;
left: 0px;
top: 0px;
width: 14px;
height: 14px;
}
.nodeChildBox {
margin-left: 12px;
display: none;
}
.nodeLabel,
.nodeCloseLabel {
margin: -2px 2px 0 2px;
border: 2px solid transparent;
-moz-border-radius: 3px;
padding: 0 2px;
color: #000088;
}
.nodeCloseLabel {
display: none;
}
.nodeTag {
cursor: pointer;
color: blue;
}
.nodeValue {
color: #FF0000;
font-weight: normal;
}
.nodeText,
.nodeComment {
margin: 0 2px;
vertical-align: top;
}
.nodeText {
color: #333333;
}
.nodeWhiteSpace {
border: 1px solid LightGray;
white-space: pre; /* otherwise the border will be collapsed around zero pixels */
margin-left: 1px;
color: gray;
}
.nodeWhiteSpace_Space {
border: 1px solid #ddd;
}
.nodeTextEntity {
border: 1px solid gray;
white-space: pre; /* otherwise the border will be collapsed around zero pixels */
margin-left: 1px;
}
.nodeComment {
color: DarkGreen;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
.nodeBox.highlightOpen > .nodeLabel {
background-color: #EEEEEE;
}
.nodeBox.highlightOpen > .nodeCloseLabel,
.nodeBox.highlightOpen > .nodeChildBox,
.nodeBox.open > .nodeCloseLabel,
.nodeBox.open > .nodeChildBox {
display: block;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
.nodeBox.selected > .nodeLabel > .nodeLabelBox,
.nodeBox.selected > .nodeLabel {
border-color: Highlight;
background-color: Highlight;
color: HighlightText !important;
}
.nodeBox.selected > .nodeLabel > .nodeLabelBox,
.nodeBox.selected > .nodeLabel > .nodeLabelBox > .nodeTag,
.nodeBox.selected > .nodeLabel > .nodeLabelBox > .nodeAttr > .nodeValue,
.nodeBox.selected > .nodeLabel > .nodeLabelBox > .nodeText {
color: inherit !important;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
.nodeBox.highlighted > .nodeLabel {
border-color: Highlight !important;
background-color: cyan !important;
color: #000000 !important;
}
.nodeBox.highlighted > .nodeLabel > .nodeLabelBox,
.nodeBox.highlighted > .nodeLabel > .nodeLabelBox > .nodeTag,
.nodeBox.highlighted > .nodeLabel > .nodeLabelBox > .nodeAttr > .nodeValue,
.nodeBox.highlighted > .nodeLabel > .nodeLabelBox > .nodeText {
color: #000000 !important;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
.nodeBox.nodeHidden .nodeLabel > .nodeLabelBox,
.nodeBox.nodeHidden .nodeCloseLabel,
.nodeBox.nodeHidden .nodeLabel > .nodeLabelBox > .nodeText,
.nodeBox.nodeHidden .nodeText {
color: #888888;
}
.nodeBox.nodeHidden .nodeLabel > .nodeLabelBox > .nodeTag,
.nodeBox.nodeHidden .nodeCloseLabel > .nodeCloseLabelBox > .nodeTag {
color: #5F82D9;
}
.nodeBox.nodeHidden .nodeLabel > .nodeLabelBox > .nodeAttr > .nodeValue {
color: #D86060;
}
.nodeBox.nodeHidden.selected > .nodeLabel > .nodeLabelBox,
.nodeBox.nodeHidden.selected > .nodeLabel > .nodeLabelBox > .nodeTag,
.nodeBox.nodeHidden.selected > .nodeLabel > .nodeLabelBox > .nodeAttr > .nodeValue,
.nodeBox.nodeHidden.selected > .nodeLabel > .nodeLabelBox > .nodeText {
color: SkyBlue !important;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
.nodeBox.mutated > .nodeLabel,
.nodeAttr.mutated,
.nodeValue.mutated,
.nodeText.mutated,
.nodeBox.mutated > .nodeText {
background-color: #EFFF79;
color: #FF0000 !important;
}
.nodeBox.selected.mutated > .nodeLabel,
.nodeBox.selected.mutated > .nodeLabel > .nodeLabelBox,
.nodeBox.selected > .nodeLabel > .nodeLabelBox > .nodeAttr.mutated > .nodeValue,
.nodeBox.selected > .nodeLabel > .nodeLabelBox > .nodeAttr > .nodeValue.mutated,
.nodeBox.selected > .nodeLabel > .nodeLabelBox > .nodeText.mutated {
background-color: #EFFF79;
border-color: #EFFF79;
color: #FF0000 !important;
}
/************************************************************************************************/
.logRow-dirxml {
padding-left: 0;
}
.soloElement > .nodeBox {
padding-left: 0;
}
.useA11y .nodeLabel.focused {
outline: 2px solid #FF9933;
-moz-outline-radius: 3px;
outline-offset: -2px;
}
.useA11y .nodeLabelBox:focus {
outline: none;
}
/************************************************************************************************/
.breakpointCode .twisty {
display: none;
}
.breakpointCode .nodeBox.containerNodeBox,
.breakpointCode .nodeLabel {
padding-left: 0px;
margin-left: 0px;
font-family: Monaco, monospace !important;
}
.breakpointCode .nodeTag,
.breakpointCode .nodeAttr,
.breakpointCode .nodeText,
.breakpointCode .nodeValue,
.breakpointCode .nodeLabel {
color: DarkGreen !important;
}
.breakpointMutationType {
position: absolute;
top: 4px;
right: 20px;
color: gray;
}
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/* Twisties */
.twisty,
.logRow-errorMessage > .hasTwisty > .errorTitle,
.logRow-log > .objectBox-array.hasTwisty,
.logRow-spy .spyHead .spyTitle,
.logGroup > .logRow,
.memberRow.hasChildren > .memberLabelCell > .memberLabel,
.hasHeaders .netHrefLabel,
.netPageRow > .netCol > .netPageTitle {
background-image: url(twistyClosed.png);
background-repeat: no-repeat;
background-position: 2px 2px;
min-height: 12px;
}
.logRow-errorMessage > .hasTwisty.opened > .errorTitle,
.logRow-log > .objectBox-array.hasTwisty.opened,
.logRow-spy.opened .spyHead .spyTitle,
.logGroup.opened > .logRow,
.memberRow.hasChildren.opened > .memberLabelCell > .memberLabel,
.nodeBox.highlightOpen > .nodeLabel > .twisty,
.nodeBox.open > .nodeLabel > .twisty,
.netRow.opened > .netCol > .netHrefLabel,
.netPageRow.opened > .netCol > .netPageTitle {
background-image: url(twistyOpen.png);
}
.twisty {
background-position: 4px 4px;
/* See license.txt for terms of usage */
.panelNode-html {
-moz-box-sizing: padding-box;
padding: 4px 0 0 2px;
}
.nodeBox {
position: relative;
font-family: Monaco, monospace;
padding-left: 13px;
-moz-user-select: -moz-none;
}
.nodeBox.search-selection {
-moz-user-select: text;
}
.twisty {
position: absolute;
left: 0px;
top: 0px;
width: 14px;
height: 14px;
}
.nodeChildBox {
margin-left: 12px;
display: none;
}
.nodeLabel,
.nodeCloseLabel {
margin: -2px 2px 0 2px;
border: 2px solid transparent;
-moz-border-radius: 3px;
padding: 0 2px;
color: #000088;
}
.nodeCloseLabel {
display: none;
}
.nodeTag {
cursor: pointer;
color: blue;
}
.nodeValue {
color: #FF0000;
font-weight: normal;
}
.nodeText,
.nodeComment {
margin: 0 2px;
vertical-align: top;
}
.nodeText {
color: #333333;
}
.nodeWhiteSpace {
border: 1px solid LightGray;
white-space: pre; /* otherwise the border will be collapsed around zero pixels */
margin-left: 1px;
color: gray;
}
.nodeWhiteSpace_Space {
border: 1px solid #ddd;
}
.nodeTextEntity {
border: 1px solid gray;
white-space: pre; /* otherwise the border will be collapsed around zero pixels */
margin-left: 1px;
}
.nodeComment {
color: DarkGreen;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
.nodeBox.highlightOpen > .nodeLabel {
background-color: #EEEEEE;
}
.nodeBox.highlightOpen > .nodeCloseLabel,
.nodeBox.highlightOpen > .nodeChildBox,
.nodeBox.open > .nodeCloseLabel,
.nodeBox.open > .nodeChildBox {
display: block;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
.nodeBox.selected > .nodeLabel > .nodeLabelBox,
.nodeBox.selected > .nodeLabel {
border-color: Highlight;
background-color: Highlight;
color: HighlightText !important;
}
.nodeBox.selected > .nodeLabel > .nodeLabelBox,
.nodeBox.selected > .nodeLabel > .nodeLabelBox > .nodeTag,
.nodeBox.selected > .nodeLabel > .nodeLabelBox > .nodeAttr > .nodeValue,
.nodeBox.selected > .nodeLabel > .nodeLabelBox > .nodeText {
color: inherit !important;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
.nodeBox.highlighted > .nodeLabel {
border-color: Highlight !important;
background-color: cyan !important;
color: #000000 !important;
}
.nodeBox.highlighted > .nodeLabel > .nodeLabelBox,
.nodeBox.highlighted > .nodeLabel > .nodeLabelBox > .nodeTag,
.nodeBox.highlighted > .nodeLabel > .nodeLabelBox > .nodeAttr > .nodeValue,
.nodeBox.highlighted > .nodeLabel > .nodeLabelBox > .nodeText {
color: #000000 !important;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
.nodeBox.nodeHidden .nodeLabel > .nodeLabelBox,
.nodeBox.nodeHidden .nodeCloseLabel,
.nodeBox.nodeHidden .nodeLabel > .nodeLabelBox > .nodeText,
.nodeBox.nodeHidden .nodeText {
color: #888888;
}
.nodeBox.nodeHidden .nodeLabel > .nodeLabelBox > .nodeTag,
.nodeBox.nodeHidden .nodeCloseLabel > .nodeCloseLabelBox > .nodeTag {
color: #5F82D9;
}
.nodeBox.nodeHidden .nodeLabel > .nodeLabelBox > .nodeAttr > .nodeValue {
color: #D86060;
}
.nodeBox.nodeHidden.selected > .nodeLabel > .nodeLabelBox,
.nodeBox.nodeHidden.selected > .nodeLabel > .nodeLabelBox > .nodeTag,
.nodeBox.nodeHidden.selected > .nodeLabel > .nodeLabelBox > .nodeAttr > .nodeValue,
.nodeBox.nodeHidden.selected > .nodeLabel > .nodeLabelBox > .nodeText {
color: SkyBlue !important;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
.nodeBox.mutated > .nodeLabel,
.nodeAttr.mutated,
.nodeValue.mutated,
.nodeText.mutated,
.nodeBox.mutated > .nodeText {
background-color: #EFFF79;
color: #FF0000 !important;
}
.nodeBox.selected.mutated > .nodeLabel,
.nodeBox.selected.mutated > .nodeLabel > .nodeLabelBox,
.nodeBox.selected > .nodeLabel > .nodeLabelBox > .nodeAttr.mutated > .nodeValue,
.nodeBox.selected > .nodeLabel > .nodeLabelBox > .nodeAttr > .nodeValue.mutated,
.nodeBox.selected > .nodeLabel > .nodeLabelBox > .nodeText.mutated {
background-color: #EFFF79;
border-color: #EFFF79;
color: #FF0000 !important;
}
/************************************************************************************************/
.logRow-dirxml {
padding-left: 0;
}
.soloElement > .nodeBox {
padding-left: 0;
}
.useA11y .nodeLabel.focused {
outline: 2px solid #FF9933;
-moz-outline-radius: 3px;
outline-offset: -2px;
}
.useA11y .nodeLabelBox:focus {
outline: none;
}
/************************************************************************************************/
.breakpointCode .twisty {
display: none;
}
.breakpointCode .nodeBox.containerNodeBox,
.breakpointCode .nodeLabel {
padding-left: 0px;
margin-left: 0px;
font-family: Monaco, monospace !important;
}
.breakpointCode .nodeTag,
.breakpointCode .nodeAttr,
.breakpointCode .nodeText,
.breakpointCode .nodeValue,
.breakpointCode .nodeLabel {
color: DarkGreen !important;
}
.breakpointMutationType {
position: absolute;
top: 4px;
right: 20px;
color: gray;
}
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/* Twisties */
.twisty,
.logRow-errorMessage > .hasTwisty > .errorTitle,
.logRow-log > .objectBox-array.hasTwisty,
.logRow-spy .spyHead .spyTitle,
.logGroup > .logRow,
.memberRow.hasChildren > .memberLabelCell > .memberLabel,
.hasHeaders .netHrefLabel,
.netPageRow > .netCol > .netPageTitle {
background-image: url(twistyClosed.png);
background-repeat: no-repeat;
background-position: 2px 2px;
min-height: 12px;
}
.logRow-errorMessage > .hasTwisty.opened > .errorTitle,
.logRow-log > .objectBox-array.hasTwisty.opened,
.logRow-spy.opened .spyHead .spyTitle,
.logGroup.opened > .logRow,
.memberRow.hasChildren.opened > .memberLabelCell > .memberLabel,
.nodeBox.highlightOpen > .nodeLabel > .twisty,
.nodeBox.open > .nodeLabel > .twisty,
.netRow.opened > .netCol > .netHrefLabel,
.netPageRow.opened > .netCol > .netPageTitle {
background-image: url(twistyOpen.png);
}
.twisty {
background-position: 4px 4px;
}

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg">
<rect fill="white" x="0" y="0" width="100%" height="100%" />
<rect fill="highlight" x="0" y="0" width="100%" height="100%" rx="2px"/>
</svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg">
<rect fill="white" x="0" y="0" width="100%" height="100%" />
<rect fill="highlight" x="0" y="0" width="100%" height="100%" rx="2px"/>
</svg>

Before

Width:  |  Height:  |  Size: 234 B

After

Width:  |  Height:  |  Size: 228 B

View File

@@ -6258,7 +6258,7 @@ FBL.Firebug =
{
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
version: "Firebug Lite 1.4.0",
revision: "$Revision: 11967 $",
revision: "$Revision$",
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
modules: modules,

Some files were not shown because too many files have changed in this diff Show More