diff --git a/test/objects.js b/test/objects.js index 71e46bdb6..d93d72616 100644 --- a/test/objects.js +++ b/test/objects.js @@ -11,7 +11,7 @@ $(document).ready(function() { }); test("objects: functions", function() { - var expected = ["alias", "all", "any", "bind", "bindAll", "breakLoop", "buildLookup", "clone", "compact", + var expected = ["all", "any", "bind", "bindAll", "breakLoop", "buildLookup", "clone", "compact", "compose","defer", "delay", "detect", "each", "every", "extend", "filter", "first", "flatten", "foldl", "foldr", "forEach", "functions", "head", "identity", "include", "indexOf", "inject", "intersect", "invoke", "isArguments", "isArray", "isDate", "isElement", "isEmpty", "isEqual", @@ -19,7 +19,7 @@ $(document).ready(function() { "methods", "min", "noConflict", "pluck", "range", "reduce", "reduceRight", "reject", "rest", "select", "size", "some", "sortBy", "sortedIndex", "tail", "tap", "template", "times", "toArray", "uniq", "uniqueId", "values", "without", "wrap", "zip"]; - ok(_(expected).isEqual(_.methods(_)), 'provides a sorted list of functions'); + same(expected, _.methods(_), 'provides a sorted list of functions'); var obj = {a : 'dash', b : _.map, c : (/yo/), d : _.reduce}; ok(_.isEqual(['b', 'd'], _.functions(obj)), 'can grab the function names of any passed-in object'); }); @@ -185,19 +185,4 @@ $(document).ready(function() { value(); ok(returned == 6 && intercepted == 6, 'can use tapped objects in a chain'); }); - - - test("objects: alias", function() { - _.alias('isEqual', 'isTheSame'); - ok(_.isTheSame(9, 9), 'by default aliases methods on underscore'); - delete _.isTheSame; - // - var o = { hi: function () {return 9;} }; - _.alias(o, 'hi', 'ho'); - equals(o.ho(), 9, 'can add an alias on another object'); - _.alias(o, 'hi', 'there', 'sir'); - ok(o.hi==o.sir, 'can add multiple aliases'); - }); - - }); diff --git a/underscore.js b/underscore.js index 609e5b567..8fae4566d 100644 --- a/underscore.js +++ b/underscore.js @@ -470,31 +470,6 @@ return obj; }; - // Alias a method on an object to another name(s). - // If the first argument is NOT an object, then the object is assumed to - // be underscore. - // The first string argument is the existing method name, any following - // strings will be aliased to that name. - // Returns the object for chainability. - // - // Examples: - // - // Alias isEquals to isSame and eql on underscore: - // _.alias('isEqual', 'isSame', 'eql'); - // - // Alias `toString` to `to_s` on a given object: - // _.alias({}, 'toString', 'to_s') - // - // Implementation: explicitly cast arguments to array as calling mutating - // array methods on arguments object has strange behavior (at least in FF 3.6) - _.alias = function () { - var args = _.toArray(arguments), - obj = (typeof args[0] === 'string')? _ : args.shift(), - fn = obj[args.shift()]; - each(args, function (alias) { obj[alias] = fn; }); - return obj; - }; - // Perform a deep comparison to check if two objects are equal. _.isEqual = function(a, b) { // Check object identity. @@ -658,15 +633,15 @@ // ------------------------------- Aliases ---------------------------------- - _.alias('forEach', 'each'). - alias('reduce', 'foldl', 'inject'). - alias('reduceRight', 'foldr'). - alias('filter', 'select'). - alias('every', 'all'). - alias('some', 'any'). - alias('first', 'head'). - alias('rest', 'tail'). - alias('functions', 'methods'); + _.each = _.forEach; + _.foldl = _.inject = _.reduce; + _.foldr = _.reduceRight; + _.select = _.filter; + _.all = _.every; + _.any = _.some; + _.head = _.first; + _.tail = _.rest; + _.methods = _.functions; // ------------------------ Setup the OOP Wrapper: --------------------------