Blame view

node_modules/es5-ext/CHANGES 27.3 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
  For recent changelog see CHANGELOG.md
  
  -----
  
  v0.10.15  --  2017.03.20
  * Fix Object.isValue (it was actually isNotValue)
  
  v0.10.14  --  2017.03.15
  * Object.isValue util
  
  v0.10.13  --  2017.03.13
  * Introduce JSON.safeStringify
  * Improve message handling in error/custom
  * Fix Array#concat shim
  * Improve Array#flatten algorithm so it's stack trace friendly
  * Make Object.isObject ES3 compatible
  
  v0.10.12  --  2016.07.01
  * Ensure symbols are copied in Object.mixin
  * Prevent RangeError errors in array#flatten
  * Do not validate invalidate dates in validDate
  
  v0.10.11  --  2015.12.18
  * Ensure that check for implementation of RegExp flags doesn't crash in V8 (thanks @mathiasbynens)
  
  v0.10.10  --  2015.12.11
  * Add Object.isNumberValue util
  
  v0.10.9  --  2015.12.01
  * Add Object.ensureNaturalNumber and Object.ensureNaturalNumberValue
  
  v0.10.8  --  2015.10.02
  * Add Number.isNatural
  * Add Object.find and Object.findKey
  * Support arrays in Object.copyDeep
  * Fix iteration issue in forEachRight and someRight
  * Fix detection of native sinh
  * Depend on es6-symbol v3
  
  v0.10.7  --  2015.04.22
  * New utlitities. They're convention differs from v0.10, as they were supposed to land in v1.
    Still they're non breaking and start the conventions to be used in v1
    * Object.validateArrayLike
    * Object.validateArrayLikeObject
    * Object.validateStringifiable
    * Object.validateStringifiableValue
    * Universal utilities for array-like/iterable objects
      * Iterable.is
      * Iterable.validate
      * Iterable.validateObject
      * Iterable.forEach
  * Fix camelToHyphen resolution, it must be absolutely reversable by hyphenToCamel
  * Fix calculations of large numbers in Math.tanh
  * Fix algorithm of Math.sinh
  * Fix indexes to not use real symbols
  * Fix length of String.fromCodePoint
  * Fix tests of Array#copyWithin
  * Update Travis CI configuration
  
  v0.10.6  --  2015.02.02
  * Fix handling of infinite values in Math.trunc
  * Fix handling of getters in Object.normalizeOptions
  
  v0.10.5  --  2015.01.20
  * Add Function#toStringTokens
  * Add Object.serialize and Object.unserialize
  * Add String.randomUniq
  * Fix Strin#camelToHyphen issue with tokens that end with digit
  * Optimise Number.isInteger logic
  * Improve documentation
  * Configure lint scripts
  * Fix spelling of LICENSE
  
  v0.10.4  --  2014.04.30
  * Assure maximum spec compliance of Array.of and Array.from (thanks @mathiasbynens)
  * Improve documentations
  
  v0.10.3  --  2014.04.29
  Provide accurate iterators handling:
  * Array.from improvements:
    * Assure right unicode symbols resolution when processing strings in Array.from
    * Rely on ES6 symbol shim and use native @@iterator Symbol if provided by environment
  * Add methods:
    * Array.prototype.entries
    * Array.prototype.keys
    * Array.prototype.values
    * Array.prototype[@@iterator]
    * String.prototype[@@iterator]
  
  Improve documentation
  
  v0.10.2  --  2014.04.24
  - Simplify and deprecate `isCallable`. It seems in ES5 based engines there are
    no callable objects which are `typeof obj !== 'function'`
  - Update Array.from map callback signature (up to latest resolution of TC39)
  - Improve documentation
  
  v0.10.1  --  2014.04.14
  Bump version for npm
  (Workaround for accidental premature publish & unpublish of v0.10.0 a while ago)
  
  v0.10.0  --  2014.04.13
  Major update:
  - All methods and function specified for ECMAScript 6 are now introduced as
    shims accompanied with functions through which (optionally) they can be
    implementend on native objects
  - Filename convention was changed to shorter and strictly lower case names. e.g.
    `lib/String/prototype/starts-with` became `string/#/starts-with`
  - Generated functions are guaranteed to have expected length
  - Objects with null prototype (created via `Object.create(null)`) are widely
    supported (older version have crashed due to implied `obj.hasOwnProperty` and
    related invocations)
  - Support array subclasses
  - When handling lists do not limit its length to Uint32 range
  - Use newly introduced `Object.eq` for strict equality in place of `Object.is`
  - Iteration of Object have been improved so properties that were hidden or
    removed after iteration started are not iterated.
  
  Additions:
  - `Array.isPlainArray`
  - `Array.validArray`
  - `Array.prototype.concat` (as updated with ES6)
  - `Array.prototype.copyWithin` (as introduced with ES6)
  - `Array.prototype.fill` (as introduced with ES6)
  - `Array.prototype.filter` (as updated with ES6)
  - `Array.prototype.findIndex` (as introduced with ES6)
  - `Array.prototype.map` (as updated with ES6)
  - `Array.prototype.separate`
  - `Array.prototype.slice` (as updated with ES6)
  - `Array.prototype.splice` (as updated with ES6)
  - `Function.prototype.copy`
  - `Math.acosh` (as introduced with ES6)
  - `Math.atanh` (as introduced with ES6)
  - `Math.cbrt` (as introduced with ES6)
  - `Math.clz32` (as introduced with ES6)
  - `Math.cosh` (as introduced with ES6)
  - `Math.expm1` (as introduced with ES6)
  - `Math.fround` (as introduced with ES6)
  - `Math.hypot` (as introduced with ES6)
  - `Math.imul` (as introduced with ES6)
  - `Math.log2` (as introduced with ES6)
  - `Math.log10` (as introduced with ES6)
  - `Math.log1p` (as introduced with ES6)
  - `Math.sinh` (as introduced with ES6)
  - `Math.tanh` (as introduced with ES6)
  - `Math.trunc` (as introduced with ES6)
  - `Number.EPSILON` (as introduced with ES6)
  - `Number.MIN_SAFE_INTEGER` (as introduced with ES6)
  - `Number.MAX_SAFE_INTEGER` (as introduced with ES6)
  - `Number.isFinite` (as introduced with ES6)
  - `Number.isInteger` (as introduced with ES6)
  - `Number.isSafeInteger` (as introduced with ES6)
  - `Object.create` (with fix for V8 issue which disallows prototype turn of
    objects derived from null
  - `Object.eq` - Less restrictive version of `Object.is` based on SameValueZero
    algorithm
  - `Object.firstKey`
  - `Object.keys` (as updated with ES6)
  - `Object.mixinPrototypes`
  - `Object.primitiveSet`
  - `Object.setPrototypeOf` (as introduced with ES6)
  - `Object.validObject`
  - `RegExp.escape`
  - `RegExp.prototype.match` (as introduced with ES6)
  - `RegExp.prototype.replace` (as introduced with ES6)
  - `RegExp.prototype.search` (as introduced with ES6)
  - `RegExp.prototype.split` (as introduced with ES6)
  - `RegExp.prototype.sticky` (as introduced with ES6)
  - `RegExp.prototype.unicode` (as introduced with ES6)
  - `String.fromCodePoint` (as introduced with ES6)
  - `String.raw` (as introduced with ES6)
  - `String.prototype.at`
  - `String.prototype.codePointAt` (as introduced with ES6)
  - `String.prototype.normalize` (as introduced with ES6)
  - `String.prototype.plainReplaceAll`
  
  Removals:
  - `reserved` set
  - `Array.prototype.commonLeft`
  - `Function.insert`
  - `Function.remove`
  - `Function.prototype.silent`
  - `Function.prototype.wrap`
  - `Object.descriptor` Move to external `d` project.
    See: https://github.com/medikoo/d
  - `Object.diff`
  - `Object.extendDeep`
  - `Object.reduce`
  - `Object.values`
  - `String.prototype.trimCommonLeft`
  
  Renames:
  - `Function.i` into `Function.identity`
  - `Function.k` into `Function.constant`
  - `Number.toInt` into `Number.toInteger`
  - `Number.toUint` into `Number.toPosInteger`
  - `Object.extend` into `Object.assign` (as introduced in ES 6)
  - `Object.extendProperties` into `Object.mixin`, with improved internal
    handling, so it matches temporarily specified `Object.mixin` for ECMAScript 6
  - `Object.isList` into `Object.isArrayLike`
  - `Object.mapToArray` into `Object.toArray` (with fixed function length)
  - `Object.toPlainObject` into `Object.normalizeOptions` (as this is the real
    use case where we use this function)
  - `Function.prototype.chain` into `Function.prototype.compose`
  - `Function.prototype.match` into `Function.prototype.spread`
  - `String.prototype.format` into `String.formatMethod`
  
  Improvements & Fixes:
  - Remove workaround for primitive values handling in object iterators
  - `Array.from`: Update so it follows ES 6 spec
  - `Array.prototype.compact`: filters just null and undefined values
    (not all falsies)
  - `Array.prototype.eIndexOf` and `Array.prototype.eLastIndexOf`: fix position
    handling, improve internals
  - `Array.prototype.find`: return undefined not null, in case of not found
    (follow ES 6)
  - `Array.prototype.remove` fix function length
  - `Error.custom`: simplify, Custom class case is addressed by outer
    `error-create` project -> https://github.com/medikoo/error-create
  - `Error.isError` true only for Error instances (remove detection of host
    Exception objects)
  - `Number.prototype.pad`: Normalize negative pad
  - `Object.clear`: Handle errors same way as in `Object.assign`
  - `Object.compact`: filters just null and undefined values (not all falsies)
  - `Object.compare`: Take into account NaN values
  - `Object.copy`: Split into `Object.copy` and `Object.copyDeep`
  - `Object.isCopy`: Separate into `Object.isCopy` and `Object.isCopyDeep`, where
    `isCopyDeep` handles nested plain objects and plain arrays only
  - `String.prototype.endsWith`: Adjust up to ES6 specification
  - `String.prototype.repeat`: Adjust up to ES6 specification and improve algorithm
  - `String.prototype.simpleReplace`: Rename into `String.prototype.plainReplace`
  - `String.prototype.startsWith`: Adjust up to ES6 specification
  - Update lint rules, and adjust code to that
  - Update Travis CI configuration
  - Remove Makefile (it's cross-env utility)
  
  v0.9.2  --  2013.03.11
  Added:
  * Array.prototype.isCopy
  * Array.prototype.isUniq
  * Error.CustomError
  * Function.validFunction
  * Object.extendDeep
  * Object.descriptor.binder
  * Object.safeTraverse
  * RegExp.validRegExp
  * String.prototype.capitalize
  * String.prototype.simpleReplace
  
  Fixed:
  * Fix Array.prototype.diff for sparse arrays
  * Accept primitive objects as input values in Object iteration methods and
    Object.clear, Object.count, Object.diff, Object.extend,
    Object.getPropertyNames, Object.values
  * Pass expected arguments to callbacks of Object.filter, Object.mapKeys,
    Object.mapToArray, Object.map
  * Improve callable callback support in Object.mapToArray
  
  v0.9.1  --  2012.09.17
  * Object.reduce - reduce for hash-like collections
  * Accapt any callable object as callback in Object.filter, mapKeys and map
  * Convention cleanup
  
  v0.9.0  --  2012.09.13
  We're getting to real solid API
  
  Removed:
  * Function#memoize - it's grown up to be external package, to be soon published
    as 'memoizee'
  * String.guid - it doesn't fit es5-ext (extensions) concept, will be provided as
    external package
  # Function.arguments - obsolete
  # Function.context - obsolete
  # Function#flip - not readable when used, so it was never used
  # Object.clone - obsolete and confusing
  
  Added:
  * String#camelToHyphen - String format convertion
  
  Renamed:
  * String#dashToCamelCase -> String#hyphenToCamel
  
  Fixes:
  * Object.isObject - Quote names in literals that match reserved keywords
    (older implementations crashed on that)
  * String#repeat - Do not accept negative values (coerce them to 1)
  
  Improvements:
  * Array#remove - Accepts many arguments, we can now remove many values at once
  * Object iterators (forEach, map, some) - Compare function invoked with scope
    object bound to this
  * Function#curry - Algorithm cleanup
  * Object.isCopy - Support for all types, not just plain objects
  * Object.isPlainObject - Support for cross-frame objects
  * Do not memoize any of the functions, it shouldn't be decided internally
  * Remove Object.freeze calls in reserved, it's not up to convention
  * Improved documentation
  * Better linting (hard-core approach using both JSLint mod and JSHint)
  * Optional arguments are now documented in funtions signature
  
  v0.8.2  --  2012.06.22
  Fix errors in Array's intersection and exclusion methods, related to improper
  usage of contains method
  
  v0.8.1  --  2012.06.13
  Reorganized internal logic of Function.prototype.memoize. So it's more safe now
  and clears cache properly. Additionally preventCache option was provided.
  
  v0.8.0  --  2012.05.28
  Again, major overhaul. Probably last experimental stuff was trashed, all API
  looks more like standard extensions now.
  
  Changes:
  * Turn all Object.prototype extensions into functions and move them to Object
  namespace. We learned that extending Object.prototype is bad idea in any case.
  * Rename Function.prototype.curry into Function.prototype.partial. This function
    is really doing partial application while currying is slightly different
    concept.
  * Convert Function.prototype.ncurry to new implementation of
    Function.prototype.curry, it now serves real curry concept additionaly it
    covers use cases for aritize and hold, which were removed.
  * Rename Array's peek to last, and provide support for sparse arrays in it
  * Rename Date's monthDaysCount into daysInMonth
  * Simplify object iterators, now order of iteration can be configured with just
    compareFn argument (no extra byKeys option)
  * Rename Object.isDuplicate to Object.isCopy
  * Rename Object.isEqual to Object.is which is compatible with future 'is'
    keyword
  * Function.memoize is now Function.prototype.memoize. Additionally clear cache
    functionality is added, and access to original arguments object.
  * Rename validation functions: assertNotNull to validValue, assertCallable to
    validCallable. validValue was moved to Object namespace. On success they now
    return validated value instead of true, it supports better composition.
    Additionally created Date.validDate and Error.validError
  * All documentation is now held in README.md not in code files.
  * Move guid to String namespace. All guids now start with numbers.
  * Array.generate: fill argument is now optional
  * Object.toArray is now Array.from (as new ES6 specification draft suggests)
  * All methods that rely on indexOf or lastIndexOf, now rely on egal (Object.is)
    versions of them (eIndexOf, eLastIndexOf)
  * Turn all get* functions that returned methods into actuall methods (get*
    functionality can still be achieved with help of Function.prototype.partial).
    So: Date.getFormat is now Date.prototype.format,
    Number.getPad is now Number.prototype.pad,
    String.getFormat is now String.prototype.format,
    String.getIndent is now String.prototype.indent,
    String.getPad is now String.prototype.pad
  * Refactored Object.descriptor, it is now just two functions, main one and
    main.gs, main is for describing values, and gs for describing getters and
    setters. Configuration is passed with first argument as string e.g. 'ce' for
    configurable and enumerable. If no configuration string is provided then by
    default it returns configurable and writable but not enumerable for value or
    configurable but not enumerable for getter/setter
  * Function.prototype.silent now returns prepared function (it was
    expected to be fixed for 0.7)
  * Reserved keywords map (reserved) is now array not hash.
  * Object.merge is now Object.extend (while former Object.extend was completely
    removed) - 'extend' implies that we change object, not creating new one (as
    'merge' may imply). Similarily Object.mergeProperties was renamed to
    Object.extendProperties
  * Position argument support in Array.prototype.contains and
    String.prototype.contains (so it follows ES6 specification draft)
  * endPosition argument support in String.prototype.endsWith and fromPosition
    argument support in String.prototype.startsWith (so it follows ES6
    specification draft)
  * Better and cleaner String.prototype.indent implementation. No default value
    for indent string argument, optional nest value (defaults to 1), remove
    nostart argument
  * Correct length values for most methods (so they reflect length of similar
    methods in standard)
  * Length argument is now optional in number and string pad methods.
  * Improve arguments validation in general, so it adheres to standard conventions
  * Fixed format of package.json
  
  Removed methods and functions:
  * Object.prototype.slice - Object is not ordered collection, so slice doesn't
    make sense.
  * Function's rcurry, rncurry, s - too cumbersome for JS, not many use cases for
    that
  * Function.prototype.aritize and Function.prototype.hold - same functionality
    can be achieved with new Function.prototype.curry
  * Function.prototype.log - provided more generic Function.prototype.wrap for
    same use case
  * getNextIdGenerator - no use case for that (String.guid should be used if
    needed)
  * Object.toObject - Can be now acheived with Object(validValue(x))
  * Array.prototype.someValue - no real use case (personally used once and
    case was already controversial)
  * Date.prototype.duration - moved to external package
  * Number.getAutoincrement - No real use case
  * Object.prototype.extend, Object.prototype.override,
    Object.prototype.plainCreate, Object.prototype.plainExtend - It was probably
    too complex, same should be achieved just with Object.create,
    Object.descriptor and by saving references to super methods in local scope.
  * Object.getCompareBy - Functions should be created individually for each use
    case
  * Object.get, Object.getSet, Object.set, Object.unset - Not many use cases and
    same can be easily achieved with simple inline function
  * String.getPrefixWith - Not real use case for something that can be easily
    achieved with '+' operator
  * Object.isPrimitive - It's just negation of Object.isObject
  * Number.prototype.isLess, Number.prototype.isLessOrEqual - they shouldn't be in
    Number namespace and should rather be addressed with simple inline functions.
  * Number.prototype.subtract - Should rather be addressed with simple inline
    function
  
  New methods and functions:
  * Array.prototype.lastIndex - Returns last declared index in array
  * String.prototype.last - last for strings
  * Function.prototype.wrap - Wrap function with other, it allows to specify
    before and after behavior transform return value or prevent original function
    from being called.
  * Math.sign - Returns sign of a number (already in ES6 specification draft)
  * Number.toInt - Converts value to integer (already in ES6 specification draft)
  * Number.isNaN - Returns true if value is NaN (already in ES6 specification
    draft)
  * Number.toUint - Converts value to unsigned integer
  * Number.toUint32 - Converts value to 32bit unsigned integer
  * Array.prototype.eIndexOf, eLastIndexOf - Egal version (that uses Object.is) of
    standard methods (all methods that were using native indexOf or lastIndexOf
    now uses eIndexOf and elastIndexOf respectively)
  * Array.of - as it's specified for ES6
  
  Fixes:
  * Fixed binarySearch so it always returns valid list index
  * Object.isList - it failed on lists that are callable (e.g. NodeList in Nitro
    engine)
  * Object.map now supports third argument for callback
  
  v0.7.1  --  2012.01.05
  New methods:
  * Array.prototype.firstIndex - returns first valid index of array (for
  	sparse arrays it may not be '0'
  
  Improvements:
  * Array.prototype.first - now returns value for index returned by firstIndex
  * Object.prototype.mapToArray - can be called without callback, then array of
  	key-value pairs is returned
  
  Fixes
  * Array.prototype.forEachRight, object's length read through UInt32 conversion
  
  v0.7.0  --  2011.12.27
  Major update.
  Stepped back from experimental ideas and introduced more standard approach
  taking example from how ES5 methods and functions are designed. One exceptions
  is that, we don’t refrain from declaring methods for Object.prototype - it’s up
  to developer whether how he decides to use it in his context (as function or as
  method).
  
  In general:
  * Removed any method 'functionalization' and functionalize method itself.
  	es5-ext declares plain methods, which can be configured to work as functions
  	with call.bind(method) - see documentation.
  * Removed separation of Object methods for ES5 (with descriptors) and
  	ES3 (plain) - we're following ES5 idea on that, some methods are intended just
  	for enumerable properties and some are for all properties, all are declared
  	for Object.prototype
  * Removed separation of Array generic (collected in List folder) and not generic
  	methods (collected in Array folder). Now all methods are generic and are in
  	Array/prototype folder. This separation also meant, that methods in Array are
  	usually destructive. We don’t do that separation now, there’s generally no use
  	case for destructive iterators, we should be fine with one version of each
  	method, (same as ES5 is fine with  e.g. one, non destructive 'filter' method)
  * Folder structure resembles tree of native ES5 Objects
  * All methods are written with ES5 conventions in mind, it means that most
  	methods are generic and can be run on any object. In more detail:
  	** Array.prototype and Object.prototype methods can be run on any object (any
  		not null or undefined value),
  	** Date.prototype methods should be called only on Date instances.
  	** Function.prototype methods can be called on any callable objects (not
  		necessarily functions)
  	** Number.prototype & String.prototype methods can be called on any value, in
  		case of Number it it’ll be degraded to number, in case of string it’ll be
  		degraded to string.
  * Travis CI support (only for Node v0.6 branch, as v0.4 has buggy V8 version)
  
  Improvements for existing functions and methods:
  * Function.memoize (was Function.cache) is now fully generic, can operate on any
  	type of arguments and it’s NaN safe (all NaN objects are considered equal)
  * Method properties passed to Object.prototype.extend or
  	Object.prototype.override can aside of _super optionally take prototype object
  	via _proto argument
  * Object iterators: forEach, mapToArray and every can now iterate in specified
  	order
  * pluck, invoke and other functions that return reusable functions or methods
  	have now their results memoized.
  
  New methods:
  * Global: assertNotNull, getNextIdGenerator, guid, isEqual, isPrimitive,
  	toObject
  * Array: generate
  * Array.prototype: binarySearch, clear, contains, diff, exclusion, find, first,
  	forEachRight, group, indexesOf, intersection, remove, someRight, someValue
  * Boolean: isBoolean
  * Date: isDate
  * Function: arguments, context, insert, isArguments, remove
  * Function.prototype: not, silent
  * Number: getAutoincrement, isNumber
  * Number.prototype: isLessOrEqual, isLess, subtract
  * Object: assertCallable, descriptor (functions for clean descriptors),
  	getCompareBy, isCallable, isObject
  * Object.prototype: clone (real clone), compact, count, diff, empty,
  	getPropertyNames, get, keyOf, mapKeys, override, plainCreate, plainExtend,
  	slice, some, unset
  * RegExp: isRegExp
  * String: getPrefixWith, isString
  * String.prototype: caseInsensitiveCompare, contains, isNumeric
  
  Renamed methods:
  * Date.clone -> Date.prototype.copy
  * Date.format -> Date.getFormat
  * Date/day/floor -> Date.prototype.floorDay
  * Date/month/floor -> Date.prototype.floorMonth
  * Date/month/year -> Date.prototype.floorYear
  * Function.cache -> Function.memoize
  * Function.getApplyArg -> Function.prototype.match
  * Function.sequence -> Function.prototype.chain
  * List.findSameStartLength -> Array.prototype.commonLeft
  * Number.pad -> Number.getPad
  * Object/plain/clone -> Object.prototype.copy
  * Object/plain/elevate -> Object.prototype.flatten
  * Object/plain/same -> Object.prototype.isDuplicate
  * Object/plain/setValue -> Object.getSet
  * String.format -> String.getFormat
  * String.indent -> String.getIndent
  * String.pad -> String.getPad
  * String.trimLeftStr -> String.prototype.trimCommonLeft
  * Object.merge -> Object.prototype.mergeProperties
  * Object/plain/pluck -> Object.prototype.get
  * Array.clone is now Array.prototype.copy and can be used also on any array-like
  	objects
  * List.isList -> Object.isList
  * List.toArray -> Object.prototype.toArray
  * String/convert/dashToCamelCase -> String.prototype.dashToCamelCase
  
  Removed methods:
  * Array.compact - removed destructive version (that operated on same array), we
  	have now non destructive version as Array.prototype.compact.
  * Function.applyBind -> use apply.bind directly
  * Function.bindBind -> use bind.bind directly
  * Function.callBind -> use call.bind directly
  * Fuction.clone -> no valid use case
  * Function.dscope -> controversial approach, shouldn’t be considered seriously
  * Function.functionalize -> It was experimental but standards are standards
  * List/sort/length -> It can be easy obtained by Object.getCompareBy(‘length’)
  * List.concat -> Concat’s for array-like’s makes no sense, just convert to array
  	first
  * List.every -> Use Array.prototype.every directly
  * List.filter -> Use Array.prototype.filter directly
  * List.forEach -> User Array.prototype.forEach directly
  * List.isListObject -> No valid use case, do: isList(list) && (typeof list ===
  	'object’)
  * List.map -> Use Array.prototype.map directly
  * List.reduce -> Use Array.prototype.reduce directly
  * List.shiftSame -> Use Array.prototype.commonLeft and do slice
  * List.slice -> Use Array.prototype.slice directly
  * List.some -> Use Array.prototype.some directly
  * Object.bindMethods -> it was version that considered descriptors, we have now
  	Object.prototype.bindMethods which operates only on enumerable properties
  * Object.every -> version that considered all properties, we have now
  	Object.prototype.every which iterates only enumerables
  * Object.invoke -> no use case
  * Object.mergeDeep -> no use case
  * Object.pluck -> no use case
  * Object.same -> it considered descriptors, now there’s only Object.isDuplicate
  	which compares only enumerable properties
  * Object.sameType -> no use case
  * Object.toDescriptor and Object.toDescriptors -> replaced by much nicer
  	Object.descriptor functions
  * Object/plain/link -> no use case (it was used internally only by
  	Object/plain/merge)
  * Object/plain/setTrue -> now easily configurable by more universal
  	Object.getSet(true)
  * String.trimRightStr -> Eventually String.prototype.trimCommonRight will be
  	added
  
  v0.6.3  --  2011.12.12
  * Cleared npm warning for misnamed property in package.json
  
  v0.6.2  --  2011.08.12
  * Calling String.indent without scope (global scope then) now treated as calling
    it with null scope, it allows more direct invocations when using default nest
    string: indent().call(str, nest)
  
  v0.6.1  --  2011.08.08
  * Added TAD test suite to devDependencies, configured test commands.
    Tests can be run with 'make test' or 'npm test'
  
  v0.6.0  --  2011.08.07
  New methods:
  * Array: clone, compact (in place)
  * Date: format, duration, clone, monthDaysCount, day.floor, month.floor,
    year.floor
  * Function: getApplyArg, , ncurry, rncurry, hold, cache, log
  * List: findSameStartLength, shiftSame, peek, isListObject
  * Number: pad
  * Object: sameType, toString, mapToArray, mergeDeep, toDescriptor,
    toDescriptors, invoke
  * String: startsWith, endsWith, indent, trimLeftStr, trimRightStr, pad, format
  
  Fixed:
  * Object.extend does now prototypal extend as exptected
  * Object.merge now tries to overwrite only configurable properties
  * Function.flip
  
  Improved:
  * Faster List.toArray
  * Better global retrieval
  * Functionalized all Function methods
  * Renamed bindApply and bindCall to applyBind and callBind
  * Removed Function.inherit (as it's unintuitive curry clone)
  * Straightforward logic in Function.k
  * Fixed naming of some tests files (letter case issue)
  * Renamed Function.saturate into Function.lock
  * String.dashToCamelCase digits support
  * Strings now considered as List objects
  * Improved List.compact
  * Concise logic for List.concat
  * Test wit TAD in clean ES5 context
  
  v0.5.1  --  2011.07.11
  * Function's bindBind, bindCall and bindApply now more versatile
  
  v0.5.0  --  2011.07.07
  * Removed Object.is and List.apply
  * Renamed Object.plain.is to Object.plain.isPlainObject (keep naming convention
    consistent)
  * Improved documentation
  
  v0.4.0  --  2011.07.05
  * Take most functions on Object to Object.plain to keep them away from object
    descriptors
  * Object functions with ES5 standard in mind (object descriptors)
  
  v0.3.0  --  2011.06.24
  * New functions
  * Consistent file naming (dash instead of camelCase)
  
  v0.2.1  --  2011.05.28
  * Renamed Functions.K and Function.S to to lowercase versions (use consistent
    naming)
  
  v0.2.0  --  2011.05.28
  * Renamed Array folder to List (as its generic functions for array-like objects)
  * Added Makefile
  * Added various functions
  
  v0.1.0  --  2011.05.24
  * Initial version