Why should it throw if there's no [[Get]]?
Consider let {x} = o as short for let x = o.x (with o evaluated once and
first, in the general case, of course). Then the empty object pattern
does nothing and should not throw.
This seem best for generated code purposes, it gives a more general
basis case.
/be
Axel Rauschmayer wrote:
If I understand the spec correctly, destructuring works as follows:
```js
let {} = undefined; // OK???
let {x} = undefined; // TypeError
let [] = undefined; // TypeError
let [y] = undefined; // TypeError
```
Destructuring `undefined` (or `null`) via `{}` does not throw an
exception (as per first rule inside [1]). Shouldn’t it throw one?
Thanks!
Axel
[1]
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-runtime-semantics-destructuringassignmentevaluation
<https://people.mozilla.org/%7Ejorendorff/es6-draft.html#sec-runtime-semantics-destructuringassignmentevaluation>
--
Dr. Axel Rauschmayer
[email protected] <mailto:[email protected]>
rauschma.de
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss