title: The order of looping through an object may be broken only during iteration?
body: <p>I guess the preferred way of looping through an object is this:</p>
  
  <pre><code>for (var prop in obj) {
    if( obj.hasOwnProperty( prop ) ) {
      console.log("obj." + prop + " = " + obj[prop]);
    } 
  }
  </code></pre>
  
  <p>MDN says that </p>
  
  <blockquote>
    <p><strong>Deleted, added or modified properties</strong>
    A for...in loop iterates over the properties of an object in an <strong>arbitrary order</strong> (see the delete operator for more on why one cannot depend on the seeming orderliness of iteration, at least in a cross-browser setting). </p>
  </blockquote>
  
  <p>So if I don't modify object properties during iteration I can be guaranteed the correct order i.e. the order in which keys/properties appear in an object or this statement means something else?</p>