You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2019/07/02 07:18:32 UTC
[wicket] 03/04: WICKET-6681 extend must preserve __proto__
This is an automated email from the ASF dual-hosted git repository.
svenmeier pushed a commit to branch feature/WICKET-6681-vanilla-wicket-ajax
in repository https://gitbox.apache.org/repos/asf/wicket.git
commit 6ec1685d1d6a1b82020d272e973892b253e9bfe9
Author: Sven Meier <sv...@apache.org>
AuthorDate: Tue Jul 2 09:05:23 2019 +0200
WICKET-6681 extend must preserve __proto__
---
.../wicket/ajax/res/js/wicket-ajax-vanilla.js | 24 ++++++++++------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-vanilla.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-vanilla.js
index 4396b0d..62555e3 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-vanilla.js
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-vanilla.js
@@ -190,37 +190,35 @@
var extend = function () {
// Variables
- var extended = {};
var deep = false;
var i = 0;
var length = arguments.length;
// Check if a deep merge
if ( Object.prototype.toString.call( arguments[0] ) === '[object Boolean]' ) {
- deep = arguments[0];
+ deep = arguments[i];
i++;
}
- // Merge the object into the extended object
- var merge = function (obj) {
+ var extended = arguments[i];
+ i++;
+
+ // Loop through each object and conduct a merge
+ for ( ; i < length; i++ ) {
+ var obj = arguments[i];
+
for ( var prop in obj ) {
if ( Object.prototype.hasOwnProperty.call( obj, prop ) ) {
// If deep merge and property is an object, merge properties
- if ( deep && Object.prototype.toString.call(obj[prop]) === '[object Object]' ) {
+ if ( deep && Object.prototype.toString.call(obj[prop]) === '[object Object]' && extended[prop]) {
extended[prop] = extend( true, extended[prop], obj[prop] );
} else {
extended[prop] = obj[prop];
}
}
}
- };
-
- // Loop through each object and conduct a merge
- for ( ; i < length; i++ ) {
- var obj = arguments[i];
- merge(obj);
}
-
+
return extended;
};
@@ -1172,7 +1170,7 @@
}
};
- Wicket = extend(true, Wicket, {
+ extend(true, Wicket, {
channelManager: new Wicket.ChannelManager(),