title: Object literal (hash) with Promise.all
body: <p>I have a situation where it would be quite convenient to use <code>Promise.all</code> like so <code>Promise.all({})</code> instead of the more standard Promise.all([]).</p>
  
  <p>but this doesn't seem to work</p>
  
  <pre><code>Promise.all({a:1,b:2}).then(function(val){
     console.log('val:',val);
  });
  </code></pre>
  
  <p>whilst this does of course</p>
  
  <pre><code>Promise.all([1,2,3]).then(function(val){
     console.log('val:',val);
  });
  </code></pre>
  
  <p>(what I would expect would be for Promise.all to map the values of the Object literal, but leave the keys intact.)</p>
  
  <p>But <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all" rel="noreferrer">the MDN docs for Promise</a> seem to indicate that Promise all will work for any iterable. To my knowledge, an object literal <code>{}</code> is an iterable. So what am I missing?</p>