title: Are Javascript Object Properties assigned in order?
body: <p>Say I have an object which assigns properties based off the return value of a function:</p>
  
  <pre><code>var i = 0;
  
  var f = function() { return ++i; }
  
  var foo = {
              a:f(),
              b:f(),
              c:f()
            };
  </code></pre>
  
  <p>Is it guaranteed that foo.a will be 1, foo.b will be 2, and foo.c will be 3? I know that JS doesn't guarantee order when you iterate over an object, what about assignment?</p>
  
  <p>Is it specified in the JS specification somewhere? I'm only asking for educational reasons. </p>
  
  <p>Thanks.</p>