title: How to destructure and initializing missing, nested fields in the same expression?
body: <p>I've been trying to figure out if nested ES6 destructuring supports this functionality. I would like to assign <code>a</code> as an empty object if it doesn't exist, and subsequently assign it's property name <code>b</code> to a scope variable <code>b</code>.</p>
  
  <pre><code>var {
    a = {},
    a: {
      b = 2,
    },
  } = {};
  
  VM40:4 Uncaught TypeError: Cannot destructure property `b` of 'undefined' or 'null'.
      at &lt;anonymous&gt;:6:5
  </code></pre>
  
  <p>It seems I can't really nest destructuring without assuming the objects format. The following works, but I'm looking for a more concise method where you can easily see the nested layout of the original object.</p>
  
  <pre><code>var {
    a = {},
  } = {};
  
  var {
    b = 2,
  } = a;
  
  // works as expected
  // starts to look crazy when 'forking' branches that may or may not exist
  </code></pre>