title: for..in loop over an Array iterates also over the prototype functions
body: <p>I've got a serious bug, which I've never seen before. First of all I've a simple Array:</p>
  
  <pre><code>var myArray = ["123", "456", "789"]
  </code></pre>
  
  <p>Now I want to iterate over this Array with a for..in - loop:</p>
  
  <pre><code>function mapData(list) {
  for ( var i in list) {
      var item = list[i];
      if (item) {
        // do something
      }
    }
  }
  </code></pre>
  
  <p>After calling the method with mapData(myArray), firebug shows in the debugger this:</p>
  
  <blockquote>
    <ol>
    <li>Loop:  i = 0;  item = 123;</li>
    <li>Loop:    i = 1;  item = 456;</li>
    <li>Loop:    i = 2;  item = 789;</li>
    <li>Loop:    i = compare;</li>
    <li>Loop:    i = union;</li>
    <li>Loop:    i = remove;</li>
    <li>Loop:    i = select;</li>
    <li>Loop:    i = contains;</li>
    </ol>
  </blockquote>
  
  <p>So I think that are the prototype functions. But why? Any Ideas?</p>
  
  <p>As I mentioned, I've never seen this before...</p>