Re: Uniform block scoping

2014-07-18 Thread Andreas Rossberg
On 17 July 2014 19:29, Brendan Eich bren...@mozilla.org wrote:
 Andreas Rossberg wrote:

 On 16 July 2014 18:38, Allen Wirfs-Brockal...@wirfs-brock.com  wrote:

   (Note that this topic is on the agenda for this month's TC39 meeting)


 Unfortunately, I won't be at the meeting. Do you think we can afford
 to defer this untilSeptember?

 We should discuss at this meeting and try to reach agreement. I can proxy
 for you, since I agree with you :-).

OK, thanks. (If it can be scheduled for Thursday morning, I might even
be able to call in.)

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


Re: Uniform block scoping

2014-07-18 Thread Mark S. Miller
Does anyone see any impediment to scheduling this Thursday morning? If not,
we will do so.



On Fri, Jul 18, 2014 at 1:33 AM, Andreas Rossberg rossb...@google.com
wrote:

 On 17 July 2014 19:29, Brendan Eich bren...@mozilla.org wrote:
  Andreas Rossberg wrote:
 
  On 16 July 2014 18:38, Allen Wirfs-Brockal...@wirfs-brock.com  wrote:
 
(Note that this topic is on the agenda for this month's TC39
 meeting)
 
 
  Unfortunately, I won't be at the meeting. Do you think we can afford
  to defer this untilSeptember?
 
  We should discuss at this meeting and try to reach agreement. I can proxy
  for you, since I agree with you :-).

 OK, thanks. (If it can be scheduled for Thursday morning, I might even
 be able to call in.)

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




-- 
Cheers,
--MarkM
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


New: Rev26 ES6 draft now available

2014-07-18 Thread Allen Wirfs-Brock
The Rev26, July 18, 2014 ES6 Draft Specification is now available at: 
http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#july_18_2014_draft_rev_26
 

 Changes include:

Terminology change: “Task” is replaced by “Job”.
GetMethod now treats null and undefined equivalently as meaning no method 
available.
Eliminated the ability of Proxy handlers to extend the set of property 
descriptor attributes they expose vis [[GetOwnProperty]]
Added invariant checks for Proxy [[OwnPropertyNames]] internal method
Revisited @@unscopable support in Object Environment Records
Updated Annex C (strict mode summary) WRT ES 6 changes and extensions.
Eliminated duplicate property name restrictions on object literals and class 
definitions
For-of now throws if iterable value is null or undefined (also reverted 
comprehensions to throwing for that case)
Date.prototype.toString now uses NaN as its time value when applied to an 
object with out a [[DateValue]]
Function poision-pill caller and arguments properties are now configurable
await is a FutureReservedWord when parsing and Module is the syntactic grammar 
goal symbol
Better integration of O.p.toLocaleString and String.p.toLocaleString with 
Ecma-402
Annex B support for function declarations in IfStatmentClauses
Annex B (and 13.12) support for legacy labelled FunctionDeclarations.
Another round of updates to 9.2.13 FunctionDeclarationInstanations to fix 
various scoping bugs.
Updated Symbol conversions: aSym == “not a symbol” produces false. var 
s=Symbol(); s==Object(s) produces true. foo”+aSymbol or aSymbol+”foo” throws 
TypeError. Symbol @@toPrimitive returns the wrappered symbol value. 
ToNumber(aSymbol) throws.
Spread now works on strings: var codeUnits = [...”this is a string”];
yield * now works with strings: function * getchars(str) {yield * str}
Added name property for bound functions in F.p.bind. Fixed bugs in generating 
length property in F.p.bind
Tweaked Script GlobalDeclarationInstantiations to deal with error situations 
that could arise from misusing proxies for the global object.
Added an informative generator function based definition for ordinary object 
[[Enumerate]]
Changed handling of NaN returned from a sort comparefn to match web reality. 
See bug https://bugs.ecmascript.org/show_bug.cgi?id=2978
Generator object return method/For-of/in loops use return method on generators
Resolved bugs: 3010, 3004-3000, 2992, 2990-2988, 2984-2983, 2981-2980, 
2978-2977, 2975, 2971-2948, 2946-2937, 2935-2922, 2919, 2917, 2915, 2910-2891, 
2888-2884, 2880, 2875, 2840, 2828, 2813, 2811, 2803, 2799, 2778-2777, 
2721-2720, 2718-2717, 2682, 2636, 2634, 2594-2592, 2590-2589, 2587, 2564, 2488, 
2411, 2365, 2360, 2324, 2315, 2080, 2053, 2049, 1797, 1789, 1762, 1459, 
1444-1443, 1341, 1267-1266, 1142, 977, 944, 522, 519

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


Body-level inner function declarations interaction with the let temporal dead zone

2014-07-18 Thread Shu-yu Guo
Hi all,

Am I correct in understanding that body-level inner functions hoist both 
declaration *and* initialization to the top of the outer function?

That is, given the following snippet:

Listing 1
-
function outer() {
  let x;
  function inner() {
x = 2;
  }
}

Is it equivalent to the following?

Listing 2
-
function outer() {
  var inner = function inner() {
x = 2;
  };
  let x;
}

If so, that means in inner functions, all free uses of let-declared variables 
from outer lexical scopes are in the ES6 temporal dead zone. More 
problematically, it means that there is no-easy-to-compute dominance relation 
(i.e., at parse time) to omit the dead zone checks for any upvar uses of let 
bindings, even though textually, listing 1 looks like the initialization 
dominates all uses.

-- 
shu

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