overriding default Window functions

https://stackoverflow.com/questions/45168610/having-trouble-overriding-the-native-windows-addeventlistener

by Vivek Athalye

HTML

<button id="btn">
Open new window
</button>

JavaScript

window.open = function (open) {
        return function (url, name, opts) {
            var windowObj = open.call(window, url, name, opts);

            windowObj.addEventListener = function(ael) {
							return function (eventName, callback, useCapture) {
									alert(1); // some wrapper code
									ael(eventName, callback, useCapture); // call native window's addEventListener
							};
						}(windowObj.addEventListener);

            return windowObj;
        };
}(window.open);

var b = document.getElementById("btn");
b.addEventListener("click", function() {
		var myWindow = window.open("about:blank", "childWin", "");
		myWindow.addEventListener("click", function(){
			alert(2);
		});
});