polyfilled event listener