On Oct 18, 2013, at 12:24 PM, BelleveInvis wrote:

> ...this causes an inconsistency that in expression `[f().x] = [g()]`, g is 
> called BEFORE f. That is weird, and differ from `f().x = g()` where g is 
> called after f.

but consider
   [f().x, h().y] = g();  //assume g() evaluates to an array-like object (and 
intentionally removed the RHS array literal)
even if evaluation of the RHS was delayed until after evaluating the first LHS 
element, g() would still be evaluated before h().  You might consider  
evaluating all of the LHS elements to References before evaluating the RHS.  
That could require accumulating an arbitrary large number of pending References 
and it wouldn't work for object destructurings.  For example:

{x:  f().x=_=>{throw "no x"}(),  h().y} = getPoint();

Allen

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to