Mike Frawley
bb250e7205
Much better strategy for calling native Array methods.
...
Compare an object's function with === to the native
version before calling it. That is, don't just assume that
because an object has a 'filter' property thats a function,
that we should call that in _.filter().
Expose the native methods found as _.native
On the way towards being able to turn off native implementations,
though there are tradeoffs...
2010-02-22 15:50:01 -06:00
Mike Frawley
b774bf7ca9
delegate to ECMA5 native Array.isArray if available
2010-02-22 14:37:54 -06:00
Mike Frawley
5a5e14d7a4
add #times utility method.
...
_(3).times(alert)
added tests and internal docs
2010-02-17 10:21:59 -06:00
Mike Frawley
263b1ee92d
add #buildLookup method to turn collection in to a fast lookup hash
...
implement #without in terms of it
add tests and internal docs
2010-02-17 10:12:22 -06:00
Mike Frawley
1b1943b0ca
implement include in terms of detect
2010-02-17 09:53:36 -06:00
Mike Frawley
76bbfddd95
our #reduceRight delegates to #reduce after reversing.
...
no need to reimplement it.
also, reduceRight is worthless :)
2010-02-17 09:51:38 -06:00
Mike Frawley
130e860ecf
improve #isEmpty implementation. add 2 tests
2010-02-17 09:48:29 -06:00
Mike Frawley
c43de549ba
Create #alias method, callable on any object, _ by default.
...
While I'm not a fan of making abstractions where a simpe solution
exists, I think this is good as it makes a public API for extending
underscore, therefore making it "ok" to make your own alias names.
Also give us some future proofing in case we ever add in hooks on
method definition. For example, right now if you add a method
or make an alias in user code, it isn't added to the wrapper prototype.
Added tests and inline docs, no external docs
2010-02-17 09:41:18 -06:00
Mike Frawley
c4daac089b
delegate to native Object.keys in nightlies
2010-02-17 09:26:34 -06:00
Mike Frawley
7ec8d12d6c
rename underscore methods after the native [] method names, aliases for ruby versions
...
Even though the native methods have worse names (forEach, every, some),
since this library is trying to smooth over the native language it makes
more sense to use the native names, and provide aliases for more sensible
names from other languages, not the other way around.
Note this doesn't change any external usage, it just makes more sense.
This should also be useful for abstraction purposes for building underscore
functions, something like:
addFn('some', {has_native: true, our_version: function () {...}})
this way we could feature detect on load for native versions and build a
function, and also have the option to turn off native versions for testing
our implementation.
I Also standardized the comments to look like:
Delegates to JavaScript 1.x's native y if available.
2010-02-17 09:23:38 -06:00
Mike Frawley
59a4f49bfa
Make internal var each = _.each
...
We use it everwhere, so this should be a slight speedup
but make code more readable
2010-02-17 09:05:45 -06:00
Jeremy Ashkenas
5b5ee87c7a
Underscore 0.5.8, with collection functions that once again work on NodeLists and HTMLCollections
2010-01-28 00:55:41 -05:00
Jeremy Ashkenas
30858c50a8
added suggested speed boost for isNumber
2010-01-20 13:50:08 -05:00
Jeremy Ashkenas
52ac3db77c
Underscore 0.5.7 is on the books
2010-01-20 13:17:28 -05:00
Jeremy Ashkenas
7ec091cc55
safer isArguments function -- make sure we're not dealing with strings or functions
2010-01-20 12:45:32 -05:00
Jed Schmidt
4a94246fd1
added obj.calle check to isArguments, to prevent misfiring for typeof String
2010-01-20 10:18:45 -07:00
Jeremy Ashkenas
7d9e603be8
Underscore 0.5.6, with custom template delimiters
2010-01-18 12:45:04 -05:00
noah
94195e661d
Made _.template delimeters customizable
2010-01-15 23:25:52 -05:00
Jeremy Ashkenas
cda9099a21
Underscore 0.5.5, with a fix for OOP-wrapping in MobileSafari, thanks to terrcin.
2010-01-09 19:34:32 -05:00
Jeremy Ashkenas
0a8a4834b2
Underscore 0.5.4 -- bugfix for single quotes in _.template strings
2010-01-05 11:26:14 -05:00
Jeremy Ashkenas
fde8b1f63f
Underscore 0.5.3
2010-01-04 11:34:26 -05:00
Jeremy Ashkenas
75a31fffc5
adding boolean coercions to the faster isType methods
2010-01-04 10:20:46 -05:00
Jeremy Ashkenas
abb0f7f194
_.toArray is just _.values for objects
2010-01-03 22:05:10 -05:00
Jeremy Ashkenas
385404b685
Underscore 0.5.2
2010-01-01 21:32:44 -05:00
Jeremy Ashkenas
4be6a194cd
replacing all isType tests that relied on string comparisons with versions that check for existence of known methods and properties. Less safe, but more than an order of magnitude faster.
2010-01-01 19:05:34 -05:00
Jeremy Ashkenas
d49196f2e7
pulling Evgeniy Dolzhenko's patch to add _.tap, with tests
2009-12-11 09:25:20 -05:00
Jeremy Ashkenas
a418153800
quick fix for 0.5.1 for IE -- need to define functions in the right order
2009-12-09 14:36:19 -05:00
Jeremy Ashkenas
4042a38dc6
Underscore 0.5.1
2009-12-09 14:22:05 -05:00
Jeremy Ashkenas
5c314d206e
adding an isArguments checker and enabling iteration (using each) over JS object hashes that have numeric length properties
2009-12-09 13:41:19 -05:00
Jeremy Ashkenas
225d795836
merging in iamnoah's optimizations for the isType family of functions, and other references to core prototoypes
2009-12-09 12:44:55 -05:00
Jeremy Ashkenas
e863fbf285
Merge branch 'master' of git://github.com/iamnoah/underscore
2009-12-09 12:07:24 -05:00
Jeremy Ashkenas
99564138e8
added an extra check in isEqual to test for falsy against truthy values (so as to short circuit before trying to look for properties on null)
2009-12-09 11:17:30 -05:00
Noah Sloan
37930f92e0
doh. messed up isNumber fix
2009-12-08 16:03:53 -06:00
Noah Sloan
6554c6d976
have to define isNumber before _.each will work in IE
2009-12-08 15:57:04 -06:00
Noah Sloan
a5454d6972
cache hasOwnProperty
2009-12-08 14:24:44 -06:00
Noah Sloan
38cae13d69
cache wrapper methods
2009-12-08 14:21:05 -06:00
Noah Sloan
8c7fcb7781
cache is string and toString to improve performance
2009-12-08 14:11:28 -06:00
Jeremy Ashkenas
0ed4212ec6
adding pervasive safety checks for using Underscore functions on objects that jsut happen to have 'map', 'reduce', or 'filter' etc. properties that aren't functions.
2009-12-08 00:06:34 -05:00
Jeremy Ashkenas
30329c051b
dont try to look at the keys of zero-length arrays or arguments objects when calling each()
2009-12-07 23:41:55 -05:00
Jeremy Ashkenas
2afcffb30a
added guards to _.first and _.rest and tests, they now work as function parameters to _.map
2009-12-07 23:36:31 -05:00
Jeremy Ashkenas
f2670259d1
0.5.0 is out, with variants of grayrest's patches
2009-12-07 00:14:07 -05:00
Jeremy Ashkenas
39001bd029
API changes: _.bindAll now takes the context object as the first parameter, instead of the last, and _.functions (_.methods) now takes an explicitreceiver, returning a list of its methods
2009-12-06 23:54:41 -05:00
Jeremy Ashkenas
66dc6c2ac1
shrunk down all of the 'is' functions into a single generation, added isRegExp, added a regexp equality test to isEqual, after grayrest's patch
2009-12-06 22:48:40 -05:00
Jeremy Ashkenas
4bd535e7f1
Underscore 0.4.7 is done
2009-12-06 14:13:25 -05:00
Jeremy Ashkenas
7a1f92a8c5
documentation for Underscore 0.4.7, with isDate, isNaN, and isNull
2009-12-06 13:43:16 -05:00
Jeremy Ashkenas
86c2ad2b1f
maintain a single reference to the Object.prototype
2009-12-06 13:20:56 -05:00
Jeremy Ashkenas
689cd97e03
pushed all hasOwnProperty checks into _.keys, speeding _.keys up by about 25%, and using it to simplify other functions: _.each, _.isEmpty, _.functions
2009-12-06 13:16:44 -05:00
Jeremy Ashkenas
a97836a175
a couple of grayrest's speed improvements for _.isEqual
2009-12-06 12:55:43 -05:00
Jeremy Ashkenas
79cb7bb17b
stop assigning to arguments object in _.compose
2009-12-06 12:35:11 -05:00
Jeremy Ashkenas
4b2744a75a
0.4.6 is on the books, with kylichuku's range function
2009-11-30 23:20:11 -05:00