we can cache the fallback and not creating new object each call but it is more *dangerous 

*Object.freeze can do the job in ES5 browsers