From fb97ef1e86593f374fdf32b03064c2f364d23228 Mon Sep 17 00:00:00 2001 From: Brad Dunbar Date: Mon, 30 Jan 2012 13:57:00 -0500 Subject: [PATCH] one more refactor... --- backbone.js | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/backbone.js b/backbone.js index 8ac51624..f652cff1 100644 --- a/backbone.js +++ b/backbone.js @@ -395,16 +395,13 @@ // You can also pass an attributes object to diff against the model, // determining if there *would be* a change. changedAttributes: function(diff) { - if (diff) { - var val, changed = false, old = this._previousAttributes; - for (var attr in diff) { - if (_.isEqual(old[attr], (val = diff[attr]))) continue; - (changed || (changed = {}))[attr] = val; - } - return changed; + if (!diff) return this.hasChanged() ? _.clone(this._changed) : false; + var val, changed = false, old = this._previousAttributes; + for (var attr in diff) { + if (_.isEqual(old[attr], (val = diff[attr]))) continue; + (changed || (changed = {}))[attr] = val; } - if (!this.hasChanged()) return false; - return _.clone(this._changed); + return changed; }, // Get the previous value of an attribute, recorded at the time the last