From dd6be80fcaf7b80ecfb8e0a1133a297bcdbf9b04 Mon Sep 17 00:00:00 2001 From: Jeremy Ashkenas Date: Sat, 13 Feb 2010 08:50:29 -0500 Subject: [PATCH] Use _.extend instead of the hand-rolled merge --- lib/coffee_script/nodes.js | 23 +++++------------------ src/nodes.coffee | 9 ++++----- 2 files changed, 9 insertions(+), 23 deletions(-) diff --git a/lib/coffee_script/nodes.js b/lib/coffee_script/nodes.js index bf135e02..3961bb7c 100644 --- a/lib/coffee_script/nodes.js +++ b/lib/coffee_script/nodes.js @@ -25,24 +25,11 @@ return memo; }; // Merge objects. - merge = function merge(src, dest) { - var __a, __b, fresh, key, val; - fresh = {}; - __a = src; - for (key in __a) { - val = __a[key]; - if (__hasProp.call(__a, key)) { - ((fresh[key] = val)); - } - } - __b = dest; - for (key in __b) { - val = __b[key]; - if (__hasProp.call(__b, key)) { - ((fresh[key] = val)); - } - } - return fresh; + merge = function merge(options, overrides) { + return _.tap({}, function(fresh) { + _.extend(fresh, options); + return _.extend(fresh, overrides); + }); }; // Delete a key from an object, returning the value. del = function del(obj, key) { diff --git a/src/nodes.coffee b/src/nodes.coffee index 9cb4bec7..a44662b4 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -20,11 +20,10 @@ flatten: (list) -> memo # Merge objects. -merge: (src, dest) -> - fresh: {} - (fresh[key]: val) for key, val of src - (fresh[key]: val) for key, val of dest - fresh +merge: (options, overrides) -> + _.tap {}, (fresh) -> + _.extend fresh, options + _.extend fresh, overrides # Delete a key from an object, returning the value. del: (obj, key) ->