Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js/src
diff options
context:
space:
mode:
authorAleksander Machniak <machniak@kolabsys.com>2022-06-30 22:52:47 +0300
committerGitHub <noreply@github.com>2022-06-30 22:52:47 +0300
commit505e0235b91052e7b9e4e542d8cd5639cba03de6 (patch)
tree8bceea060fe997ccff5f416c0c413e0fc838bcc6 /js/src
parent4082a3b52d0803efe8414abdf07d57f340a27225 (diff)
Fix interoperability issue regarding Event properties (#36386)
* Fix interoperability issue regarding Event properties - make possible to re-set read-only event properties - use hydrateObj() to set delegateTarget property Fixes #36207 Co-authored-by: GeoSot <geo.sotis@gmail.com> Co-authored-by: Julien Déramond <julien.deramond@orange.com>
Diffstat (limited to 'js/src')
-rw-r--r--js/src/dom/event-handler.js19
1 files changed, 12 insertions, 7 deletions
diff --git a/js/src/dom/event-handler.js b/js/src/dom/event-handler.js
index 87f936b41d..0aa628c66d 100644
--- a/js/src/dom/event-handler.js
+++ b/js/src/dom/event-handler.js
@@ -89,7 +89,7 @@ function getElementEvents(element) {
function bootstrapHandler(element, fn) {
return function handler(event) {
- event.delegateTarget = element
+ hydrateObj(event, { delegateTarget: element })
if (handler.oneOff) {
EventHandler.off(element, event.type, fn)
@@ -109,7 +109,7 @@ function bootstrapDelegationHandler(element, selector, fn) {
continue
}
- event.delegateTarget = target
+ hydrateObj(event, { delegateTarget: target })
if (handler.oneOff) {
EventHandler.off(element, event.type, selector, fn)
@@ -302,11 +302,16 @@ const EventHandler = {
function hydrateObj(obj, meta) {
for (const [key, value] of Object.entries(meta || {})) {
- Object.defineProperty(obj, key, {
- get() {
- return value
- }
- })
+ try {
+ obj[key] = value
+ } catch {
+ Object.defineProperty(obj, key, {
+ configurable: true,
+ get() {
+ return value
+ }
+ })
+ }
}
return obj