On Jun 12, 2012, at 3:26 PM, John Tamplin wrote:

> On Tue, Jun 12, 2012 at 3:09 PM, Brendan Eich <[email protected]> wrote:
> And (to be clear) the semantics for
> 
> LeftHandSideExpression ?= AssignmentExpression
> 
> are roughly
> 
> Let lref = evaluate A.
> Let lval = GetValue(lref).
> Let rref = evaluate B.
> Let rval = GetValue(rref).
> Throw a SyntaxError exception if the following conditions are all true:
> • Type(lref) is Reference is true
> • IsStrictReference(lref) is true
> • Type(GetBase(lref)) is Environment Record
> • GetReferencedName(lref) is either "eval" or "arguments"
> If lval is undefined, call PutValue(lref, rval).
> 
> to assign the default value if and only if the left-hand side's current value 
> is undefined.
> 
> Wouldn't you want B to be evaluated only if A is undefined? 

Yes, that makes it consistent with the semantics of ? :

Allen


_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to