Skip to content

Releases: tc39/ecma262

ES2016 Draft 2015-11-03

03 Nov 23:56
Compare
Choose a tag to compare
Pre-release

This release includes a very large number of editorial changes and markup fixes. The most notable include:

  • A new convention for calling ReturnIfAbrupt. Namely, the ? operator can precede a call to an abstract operation and indicates that ReturnIfAbrupt should be applied to the result.
  • Substantial normalization of the usage of ReturnIfAbrupt - many missing calls were added, and many superfluous ones were removed.
  • Many ECMASpeak syntax errors have been fixed.

This release also includes the following normative changes:

  • Add missing ToUint32 coercions to ArrayAccumulation nextIndex and Array Evaluation pad and len.
  • Add invariants for [[IsExtensible]], notably that it must return a Boolean and once it returns false it must always return false.
  • Add %TypedArray%.prototype.toLocaleString to the list of forbidden extensions in clause 16.1 as this is defined in ECMA-402.
  • proto is now allowed as an extension in strict mode code. This aligns the spec with implementation reality.
  • Add missing HasDirectSuper static semantics restrictions to GeneratorDeclaration.
  • RegExp.prototype[@@ split] will no longer attempt to access string elements beyond the string length.
  • Annex B.3.3 semantics now apply to non-top-level functions as well as top-level functions.
  • Date.parse now explicitly specifies that date-only forms without a UTC offset are interpreted as UTC. While not ideal semantics, it is nonetheless required for web compatibility (#138).
  • When removing the sloppy-mode arguments object mapping (due to, say, defining a property on the arguments object), the current value of the binding is assigned to the arguments object before the mapping is removed. This aligns the spec with implementation reality.
  • TypedArray's [[ByteOffset]] can no longer be -0. -0 is coerced to +0.
  • DataView's SetViewValue now coerces value to a number.
  • The length of the proxy revocation function is now 0 (previously unspecified).
  • Add missing PrepareForTailCall to Function.prototype.apply.
  • EvalDeclarationInstantiation now throws TypeErrors where ES5 threw TypeErrors. This also aligns the spec with implementation reality.
  • ModuleDeclarationInstantiation will now only initialize a var binding once even when multiple var bindings of the same name exist.
  • Fix missing completion reform for if and with. Specifically, if the result of evaluating these productions is an abrupt break completion, the completion type is changed to normal with a value of undefined.

Bugzilla bugs fixed: 4538 4489 4477 4469 4505 4504 4495 4494 4420 4471 4455 4434 4433 4427 4419 4371 4544 4536 4523 4521 4520 4519 4511 4506 4502 4501 4490 4488 4486 4485 4483 4480 4472 4462 4540 4541 4442 4466 4468 4478 4499 4509 4512 4513 4518 4543 4445 4460 4461 4475 4441 4444 4446 4447 4449 4450 4451 4452 4453 4454 4458 4459 4463 4464 4470 4473 4476 4479 4481 4491 4493 4517 4524 4527

ES2016 Draft 2015-10-19

19 Oct 23:44
Compare
Choose a tag to compare
Pre-release
  • Annex B semantics for GlobalDeclarationInitialization and EvalDeclarationInitialization. EvalDeclarationInitialization especially needs implementer scrutiny.
  • String.prototype.split has been reverted to ES5 semantics as per July 28 2015 TC39 meeting. The limit parameter is now coerced using ToUint32 instead of ToLength.
  • Number, Boolean, and String prototypes are reverted to ES5 semantics as per July 29 2015 TC39 Meeting. They are now instances of their type.

Many Bugzilla bugs were closed again. Please check Bugzilla bugs you care about since emails don't appear to be working.

Many markup and output improvements have been made. Notably, variables can now be clicked on to highlight all references to them. Additionally, the spec now offers a fuzzy search box that can be used to quickly navigate between clauses, abstract operations, and productions (use the "/" keyboard shortcut to focus search).

ES2016 Draft 2015-10-05

05 Oct 23:42
Compare
Choose a tag to compare
Pre-release

The changes in this draft don't introduce any new semantics. Numerous editorial issues have been fixed and some spec text has been clarified. Details below:

Additionally, over 100 Bugzilla bugs were closed as being already fixed or otherwise no longer valid against the latest version of the spec. If your bug was closed incorrectly as part of this effort, please re-open it on GitHub!

ES2016 Draft 1

22 Sep 23:49
Compare
Choose a tag to compare
ES2016 Draft 1 Pre-release
Pre-release

ECMAScript moves to GitHub

This release marks the beginning of ECMAScript's journey toward version 2016. I am excited to announce that ECMAScript's development has moved to GitHub and ECMAScript's specification has moved from Word to Ecmarkup—a custom dialect of HTML built for writing ECMAScript specifications. This change will make it much easier for the JavaScript community to contribute to its development.

The current specification is simply a conversion from the ES2015 Word document using some awesome tools. This process introduced a number of bugs. These will be worked out in future releases. Please help us by filing bugs for issues you find!

Going forward I will be releasing new drafts of ECMAScript using GitHub releases. Watch this repository to stay up to date!