summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabrice Bellard <fabrice@bellard.org>2024-01-13 11:16:02 +0100
committerFabrice Bellard <fabrice@bellard.org>2024-01-13 11:16:02 +0100
commit3f81070e573e3592728dbbbd04c84c498b20d6dc (patch)
tree6e841a87877c1738c2335d62b1563df2d3788a6a
parent6e651e86e5a0b242b5771c25a5f2496f0fdaa68d (diff)
downloadquickjs-3f81070e573e3592728dbbbd04c84c498b20d6dc.tar.gz
quickjs-3f81070e573e3592728dbbbd04c84c498b20d6dc.zip
new release
-rw-r--r--Changelog19
-rw-r--r--VERSION2
-rw-r--r--doc/quickjs.texi31
3 files changed, 36 insertions, 16 deletions
diff --git a/Changelog b/Changelog
index 0ced995..944d96a 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,22 @@
+2024-01-13:
+
+- top-level-await support in modules
+- allow 'await' in the REPL
+- added Array.prototype.{with,toReversed,toSpliced,toSorted} and
+TypedArray.prototype.{with,toReversed,toSorted}
+- added String.prototype.isWellFormed and String.prototype.toWellFormed
+- added Object.groupBy and Map.groupBy
+- added Promise.withResolvers
+- class static block
+- 'in' operator support for private fields
+- optional chaining fixes
+- added RegExp 'd' flag
+- fixed RegExp zero length match logic
+- fixed RegExp case insensitive flag
+- added os.getpid() and os.now()
+- added cosmopolitan build
+- misc bug fixes
+
2023-12-09:
- added Object.hasOwn, {String|Array|TypedArray}.prototype.at,
diff --git a/VERSION b/VERSION
index 08d1222..e89de35 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2023-12-09
+2024-01-13
diff --git a/doc/quickjs.texi b/doc/quickjs.texi
index b064e7d..898d46c 100644
--- a/doc/quickjs.texi
+++ b/doc/quickjs.texi
@@ -19,9 +19,9 @@
@chapter Introduction
-QuickJS is a small and embeddable Javascript engine. It supports the
-ES2020 specification
-@footnote{@url{https://tc39.es/ecma262/}}
+QuickJS is a small and embeddable Javascript engine. It supports most of the
+ES2023 specification
+@footnote{@url{https://tc39.es/ecma262/2023 }}
including modules, asynchronous generators, proxies and BigInt.
It supports mathematical extensions such as big decimal float float
@@ -34,14 +34,14 @@ and operator overloading.
@item Small and easily embeddable: just a few C files, no external dependency, 210 KiB of x86 code for a simple ``hello world'' program.
-@item Fast interpreter with very low startup time: runs the 69000 tests of the ECMAScript Test Suite@footnote{@url{https://github.com/tc39/test262}} in about 95 seconds on a single core of a desktop PC. The complete life cycle of a runtime instance completes in less than 300 microseconds.
+@item Fast interpreter with very low startup time: runs the 77000 tests of the ECMAScript Test Suite@footnote{@url{https://github.com/tc39/test262}} in less than 2 minutes on a single core of a desktop PC. The complete life cycle of a runtime instance completes in less than 300 microseconds.
-@item Almost complete ES2020 support including modules, asynchronous
-generators and full Annex B support (legacy web compatibility). Many
-features from the upcoming ES2021 specification
-@footnote{@url{https://tc39.github.io/ecma262/}} are also supported.
+@item Almost complete ES2023 support including modules, asynchronous
+generators and full Annex B support (legacy web compatibility). Some
+features from the upcoming ES2024 specification
+@footnote{@url{https://tc39.es/ecma262/}} are also supported.
-@item Passes nearly 100% of the ECMAScript Test Suite tests when selecting the ES2020 features.
+@item Passes nearly 100% of the ECMAScript Test Suite tests when selecting the ES2023 features.
@item Compile Javascript sources to executables with no external dependency.
@@ -270,9 +270,9 @@ about 100 seconds).
@section Language support
-@subsection ES2020 support
+@subsection ES2023 support
-The ES2020 specification is almost fully supported including the Annex
+The ES2023 specification is almost fully supported including the Annex
B (legacy web compatibility) and the Unicode related features.
The following features are not supported yet:
@@ -281,6 +281,10 @@ The following features are not supported yet:
@item Tail calls@footnote{We believe the current specification of tails calls is too complicated and presents limited practical interests.}
+@item WeakRef and FinalizationRegistry objects
+
+@item Symbols as WeakMap keys
+
@end itemize
@subsection ECMA402
@@ -1075,7 +1079,7 @@ stack holds the Javascript parameters and local variables.
@section RegExp
A specific regular expression engine was developed. It is both small
-and efficient and supports all the ES2020 features including the
+and efficient and supports all the ES2023 features including the
Unicode properties. As the Javascript compiler, it directly generates
bytecode without a parse tree.
@@ -1083,9 +1087,6 @@ Backtracking with an explicit stack is used so that there is no
recursion on the system stack. Simple quantifiers are specifically
optimized to avoid recursions.
-Infinite recursions coming from quantifiers with empty terms are
-avoided.
-
The full regexp library weights about 15 KiB (x86 code), excluding the
Unicode library.