Search code examples
javascriptcross-browseroperatorsbit-manipulationpolyfills

Javascript use bitwise or equals operator |= for polyfill creation?


Is there anything wrong with creating polyfills using JavaScript's bitwise1 or equals operator |=?

Date.now |= function() {
    return +new Date;
};


1Bitwise operator reference
2Date.now() reference


Solution

  • Um, yes? There's a major difference between | and ||, and polyfills should use:

    Date.now = Date.now || function() {return +new Date;};
    

    After all, if you used this:

    Date.now = Date.now | function() {return +new Date;};
    

    You'd get the result 0 overwriting the function.