@André Bargull Are there any reasons for these restrictions? It confuses me. If I can for-of over string, so why can't I destructuring it?
On Fri, Apr 11, 2014 at 3:10 PM, André Bargull <andre.barg...@udo.edu>wrote: > Hi Erop, > > > On Fri, Apr 11, 2014 at 12:35 PM, Егор Николаев <termi1uc1 at gmail.com > <https://mail.mozilla.org/listinfo/es-discuss>> wrote: > > >* 1. Should the AssignmentExpression of DestructuringAssignment always to be > * > >* the Object type? > *>* ```javascript > *>* let {length} = "123"; > *>* assert(length, 3); > *>* ``` > *>* Is this valid? > *> > Yes. > > > No. > > 13.2.1.4 Runtime Semantics: Evaluation, > LexicalBinding : BindingPattern Initializer, step 4 > > > https://people.mozilla.org/~jorendorff/es6-draft.html#sec-let-and-const-declarations-runtime-semantics-evaluation > > > > >>* If it is: > *>* 2. Should the result of Get(obj, name) always be the Object type if > *>* DestructuringAssignmentTarget is an ObjectLiteral or an ArrayLiteral? > *>* According the spec 12.14.5.4 step 4.b this expression is invalid: > *>* ```javascript > *>* let {text: {length}} = {text: "123"}; > *>* assert(length, 3); > *>* ``` > *> > Yes. > > > No. > > 13.2.3.7 Runtime Semantics: KeyedBindingInitialization > BindingElement : BindingPattern Initializeropt, step 4 > > > https://people.mozilla.org/~jorendorff/es6-draft.html#sec-runtime-semantics-keyedbindinginitialization > > > You can test this in the web console in a Nightly or Aurora build of > Firefox. > > > You can test this in traceur or my test implementation [ > https://github.com/anba/es6draft]. ;-) > > Maybe the final draft will revert this restriction, it was originally > introduced in rev17. It is somewhat annoying, especially for the string > type, because the restriction also applies to spread array elements and > spread calls. For example `[..."abc"]` must now be written as `[...new > String("abc")]` to get the array of code points. > > - André > >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss