You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ag...@apache.org on 2013/01/16 22:34:10 UTC
[2/4] js commit: [all] Tweaks to builder.js
[all] Tweaks to builder.js
- Export clobber and recursiveMerge functions
- Eliminated a dead-code branch (never have !clobber && merge)
- Fix the case where sub-objects could not be merged as new properties
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/1e4e198a
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/1e4e198a
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/1e4e198a
Branch: refs/heads/symbolmapping
Commit: 1e4e198a7b202b4bc79f46748fbe46de6009aa38
Parents: 54c0553
Author: Andrew Grieve <ag...@chromium.org>
Authored: Wed Jan 16 16:24:26 2013 -0500
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Wed Jan 16 16:33:47 2013 -0500
----------------------------------------------------------------------
lib/common/builder.js | 17 +++++++----------
1 files changed, 7 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/1e4e198a/lib/common/builder.js
----------------------------------------------------------------------
diff --git a/lib/common/builder.js b/lib/common/builder.js
index 2eac76a..38760d7 100644
--- a/lib/common/builder.js
+++ b/lib/common/builder.js
@@ -72,10 +72,6 @@ function include(parent, objects, clobber, merge) {
// Overwrite if not currently defined.
if (typeof parent[key] == 'undefined') {
assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated);
- } else if (merge && typeof obj.path !== 'undefined') {
- // If merging, merge parent onto result
- recursiveMerge(result, parent[key]);
- parent[key] = result;
} else {
// Set result to what already exists, so we can build children into it if they exist.
result = parent[key];
@@ -101,19 +97,18 @@ function include(parent, objects, clobber, merge) {
function recursiveMerge(target, src) {
for (var prop in src) {
if (src.hasOwnProperty(prop)) {
- if (typeof target.prototype !== 'undefined' && target.prototype.constructor === target) {
+ if (target.prototype && target.prototype.constructor === target) {
// If the target object is a constructor override off prototype.
- target.prototype[prop] = src[prop];
+ clobber(target.prototype, prop, src[prop]);
} else {
- if (typeof src[prop] === 'object') {
- target[prop] = recursiveMerge(target[prop], src[prop]);
+ if (typeof src[prop] === 'object' && typeof target[prop] === 'object') {
+ recursiveMerge(target[prop], src[prop]);
} else {
clobber(target, prop, src[prop]);
}
}
}
}
- return target;
}
module.exports = {
@@ -125,5 +120,7 @@ module.exports = {
},
buildIntoAndMerge: function(objects, target) {
include(target, objects, true, true);
- }
+ },
+ recursiveMerge: recursiveMerge,
+ clobber: clobber
};