title: JavaScript: What dangers are in extending Array.prototype?
body: <p>Google JavaScript Style Guide <a href="https://google.github.io/styleguide/jsguide.html#disallowed-features-modifying-builtin-objects" rel="noreferrer">advises against extending the <code>Array.prototype</code></a>.
  However, I used <code>Array.prototype.filter = Array.prototype.filter || function(...) {...}</code> as a way to have it (and similar methods) in browsers where they do not exist. MDN actually provides <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter#Compatibility" rel="noreferrer">similar example</a>.</p>
  
  <p>I am aware about <code>Object.prototype</code> issues, but <code>Array</code> is not a hash table.</p>
  
  <p>What issues may arise while extending <code>Array.prototype</code> that made Google advise against it?  </p>