[gjs/wip/ptomato/mozjs52: 45/45] docs: Overview of SpiderMonkey 52 features in NEWS
- From: Philip Chimento <pchimento src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gjs/wip/ptomato/mozjs52: 45/45] docs: Overview of SpiderMonkey 52 features in NEWS
- Date: Sun, 18 Jun 2017 23:44:14 +0000 (UTC)
commit 07d992037600520b3fd5d2a42442a787ed114ce1
Author: Philip Chimento <philip chimento gmail com>
Date: Sun Jun 18 16:33:48 2017 -0700
docs: Overview of SpiderMonkey 52 features in NEWS
Distilled from Mozilla's documentation.
NEWS | 50 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 45 insertions(+), 5 deletions(-)
---
diff --git a/NEWS b/NEWS
index b6d9458..2599695 100644
--- a/NEWS
+++ b/NEWS
@@ -1,33 +1,57 @@
NEXT
----
-- New JavaScript features! This version of GJS is based on SpiderMonkey 45, an
+- New JavaScript features! This version of GJS is based on SpiderMonkey 52, an
upgrade from the previous ESR (Extended Support Release) of SpiderMonkey 38.
- Our plans are to continue upgrading to subsequent ESRs as maintainer
- availability allows. Here are the highlights of the new JavaScript features.
+ GJS now uses the latest ESR in its engine and the plan is to upgrade again
+ when SpiderMonkey 59 is released in March 2018, pending maintainer
+ availability. Here are the highlights of the new JavaScript features.
For more information, look them up on MDN or devdocs.io.
* New language features
+ ES6 classes
+ + Async functions and await operator
+ Reflect - built-in object with methods for interceptable operations
* New syntax
+ + Exponentiation operator: `**`
+ Variable-length Unicode code point escapes: `"\u{1f369}"`
+ Destructured default arguments: `function f([x, y]=[1, 2], {z: z}={z: 3})`
+ + Destructured rest parameters: `function f(...[a, b, c])`
+ `new.target` allows a constructor access to the original constructor that
was invoked
+ + Unicode (u) flag for regular expressions, and corresponding RegExp.unicode
+ property
+ + Trailing comma in function parameter lists now allowed
* New APIs
+ New Array, String, and TypedArray method: includes()
+ + TypedArray sort(), toLocaleString(), and toString() methods, to correspond
+ with regular arrays
+ + New Object.getOwnPropertyDescriptors() and Object.values() methods
+ + New Proxy traps: getPrototypeOf() and setPrototypeOf()
+ [Symbol.toPrimitive] property specifying how to convert an object to a
primitive value
+ [Symbol.species] property allowing to override the default constructor
for objects
- + [Symbol.match] property allowing to customize matching behaviour in RegExp
- subclasses
+ + [Symbol.match], [Symbol.replace], [Symbol.search], and [Symbol.split]
+ properties allowing to customize matching behaviour in RegExp subclasses
+ + [Symbol.hasInstance] property allowing to customize the behaviour of
+ the instanceof operator for objects
+ + [Symbol.toStringTag] property allowing to customize the message printed
+ by Object.toString() without overriding it
+ + [Symbol.isConcatSpreadable] property allowing to control the behaviour of
+ an array subclass in an argument list to Array.concat()
+ + [Symbol.unscopables] property allowing to control which object properties
+ are lifted into the scope of a with statement
+ + New Intl.getCanonicalLocales() method
+ Date.toString() and RegExp.toString() generic methods
+ + Typed arrays can now be constructed from any iterable object
+ + Array.toLocaleString() gained optional locales and options arguments, to
+ correspond with other toLocaleString() methods
* New behaviour
+ + The "arguments" object is now iterable
+ Date.prototype, WeakMap.prototype, and WeakSet.prototype are now ordinary
objects, not instances
+ Full ES6-compliant implementation of let keyword
@@ -39,10 +63,19 @@ NEXT
followed by `new f` will not work)
+ It is now required to construct ArrayBuffer, TypedArray, Map, Set, and
WeakMap with the new operator
+ + Block-level functions (e.g. `{ function foo() {} }`) are now allowed in
+ strict mode; they are scoped to their block
+ + The options.timeZone argument to Date.toLocaleDateString(),
+ Date.toLocaleString(), Date.toLocaleTimeString(), and the constructor of
+ Intl.DateTimeFormat now understands IANA time zone names (such as
+ "America/Vancouver")
* Backwards-incompatible changes
+ Non-standard "let expressions" and "let blocks" (e.g.,
`let (x = 5) { use(x) }`) are not supported any longer
+ + Non-standard flags argument to String.match(), String.replace(), and
+ String.search() (e.g. `str.replace('foo', 'bar', 'g')`) is now ignored
+ + Non-standard WeakSet.clear() method has been removed
+ Variables declared with let and const are now 'global lexical bindings',
as per the ES6 standard, meaning that they will not be exported in
modules. If you cannot find symbols in your imported modules after the
@@ -50,6 +83,13 @@ NEXT
your module file. For more information, read
https://blog.mozilla.org/addons/2015/10/14/breaking-changes-let-const-firefox-nightly-44/
+ * Experimental features
+ + String.padEnd(), String.padStart() methods (proposed in ES2017)
+ + Intl.DateTimeFormat.formatToParts() method (proposed in ES2017)
+ + Object.entries() method (proposed in ES2017)
+ + Atomics, SharedArrayBuffer, and WebAssembly are disabled by default, but
+ can be enabled if you compile mozjs yourself.
+
Version 1.48.4
--------------
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]