New: Rev26 ES6 draft now available

# Allen Wirfs-Brock (10 years ago)

The Rev26, July 18, 2014 ES6 Draft Specification is now available at: 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 ecmascript#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
# Jason Orendorff (10 years ago)

On Fri, Jul 18, 2014 at 4:08 PM, Allen Wirfs-Brock <allen at wirfs-brock.com> wrote:

The Rev26, July 18, 2014 ES6 Draft Specification is now available at: harmony:specification_drafts#july_18_2014_draft_rev_26

The HTML version is now posted at: people.mozilla.org/~jorendorff/es6-draft.html

As always, please enjoy the ES6 draft responsibly.