The compass example depends on the requestPermission method which currently has limited browser support. On other browsers/devices either no extra permissions are needed or a request is triggered by window.addEventListener('deviceorientation'). A more generic solution which maintains the existing structure might look like
if (window.DeviceOrientationEvent) {
locate.addEventListener('click', function () {
Promise.resolve(
typeof DeviceOrientationEvent.requestPermission === 'function'
? DeviceOrientationEvent.requestPermission()
: ''
)