From e618981f945770d04a3452c5485575e91cd538f2 Mon Sep 17 00:00:00 2001 From: bsorrentino Date: Fri, 10 May 2024 17:03:19 +0200 Subject: [PATCH] fix: in fireEvent copy provided data in a new Event's property 'data' for backward compatibility copy the data's properties to Event skipping the ones already present in Event itself solve #67 --- www/broadcaster.js | 9 ++++++--- www/broadcaster.ts | 11 +++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/www/broadcaster.js b/www/broadcaster.js index 2668e47..18539b0 100644 --- a/www/broadcaster.js +++ b/www/broadcaster.js @@ -75,11 +75,14 @@ var Broadcaster = /** @class */ (function () { Broadcaster.prototype.fireEvent = function (type, data) { if (!this._channelExists(type)) return; - var event = document.createEvent('Event'); - event.initEvent(type, false, false); + // const event = document.createEvent('Event'); + // event.initEvent(type, false, false); + var event = new Event(type, { bubbles: false, cancelable: false }); if (data) { + event['data'] = data; // fix #67 + // for backward compatibility for (var i in data) { - if (data.hasOwnProperty(i)) { + if (data.hasOwnProperty(i) && event[i] === undefined) { event[i] = data[i]; } } diff --git a/www/broadcaster.ts b/www/broadcaster.ts index 30f04fe..baf2041 100644 --- a/www/broadcaster.ts +++ b/www/broadcaster.ts @@ -106,12 +106,15 @@ class Broadcaster { { if( !this._channelExists(type) ) return; - const event = document.createEvent('Event'); - event.initEvent(type, false, false); + // const event = document.createEvent('Event'); + // event.initEvent(type, false, false); + const event:any = new Event( type, { bubbles: false, cancelable: false}) if (data) { + event['data'] = data // fix #67 + // for backward compatibility for (var i in data) { - if (data.hasOwnProperty(i)) { - (event)[i] = (data)[i]; + if (data.hasOwnProperty(i) && event[i] === undefined ) { + event[i] = (data)[i]; } } }