Skip to content

Commit 399d609

Browse files
author
llgoer
committed
更新到2019-12-21版本
1 parent eb34626 commit 399d609

26 files changed

+1085
-721
lines changed

Changelog

+12
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
2019-12-21:
2+
3+
- added nullish coalescing operator (ES2020)
4+
- added optional chaining (ES2020)
5+
- removed recursions in garbage collector
6+
- test stack overflow in the parser
7+
- improved backtrace logic
8+
- added JS_SetHostPromiseRejectionTracker()
9+
- allow exotic constructors
10+
- improved c++ compatibility
11+
- misc bug fixes
12+
113
2019-10-27:
214

315
- added example of C class in a module (examples/test_point.js)

Makefile

+5-5
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ doc/%.html: doc/%.html.pre
411411
# tests
412412

413413
ifndef CONFIG_DARWIN
414-
test: tests/bjson.so
414+
test: tests/bjson.so examples/point.so
415415
endif
416416

417417
test: qjs qjsbn
@@ -481,12 +481,12 @@ test2-check: run-test262
481481
time ./run-test262 -m -c test262.conf -E -a
482482

483483
# Test262 + BigInt tests
484-
test2bn-default: run-test262-bn
485-
time ./run-test262-bn -m -c test262bn.conf
486-
487484
test2bn: run-test262-bn
488485
time ./run-test262-bn -m -c test262bn.conf -a
489486

487+
test2bn-update: run-test262-bn
488+
time ./run-test262-bn -u -c test262bn.conf -a
489+
490490
test2bn-32: run-test262-bn32
491491
time ./run-test262-bn32 -m -c test262bn.conf -a
492492

@@ -496,7 +496,7 @@ testall-32: all test-32 microbench-32 test2o-32 test2-32 test2bn-32
496496

497497
testall-complete: testall testall-32
498498

499-
bench-v8: qjs qjs32
499+
bench-v8: qjs
500500
make -C tests/bench-v8
501501
./qjs -d tests/bench-v8/combined.js
502502

TODO

+9-10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
- 64-bit atoms in 64-bit mode?
1+
Misc:
2+
- make BigInt available by default
3+
- use custom printf to avoid C library compatibility issues
24
- rename CONFIG_ALL_UNICODE, CONFIG_BIGNUM, CONFIG_ATOMICS, CONFIG_CHECK_JSVALUE ?
35
- unify coding style and naming conventions
46
- use names from the ECMA spec in library implementation
@@ -10,6 +12,7 @@
1012
- use 2 bytecode DynBufs in JSFunctionDef, one for reading, one for writing
1113
and use the same wrappers in all phases
1214
- use more generic method for line numbers in resolve_variables and resolve_labels
15+
- use custom timezone support to avoid C library compatibility issues
1316

1417
Memory:
1518
- test border cases for max number of atoms, object properties, string length
@@ -21,6 +24,7 @@ Memory:
2124
- improve JS_ComputeMemoryUsage() with more info
2225

2326
Optimizations:
27+
- 64-bit atoms in 64-bit mode ?
2428
- use auto-init properties for more global objects
2529
- reuse stack slots for disjoint scopes, if strip
2630
- optimize `for of` iterator for built-in array objects
@@ -44,27 +48,22 @@ Optimizations:
4448
- convert slow array to fast array when all properties != length are numeric
4549
- optimize destructuring assignments for global and local variables
4650
- implement some form of tail-call-optimization
47-
- debugger keyword support
4851
- optimize OP_apply
4952
- optimize f(...b)
5053

5154
Extensions:
5255
- support more features in [features] section
5356
- add built-in preprocessor in compiler, get rid of jscompress
5457
handle #if, #ifdef, #line, limited support for #define
55-
- limited support for web assembly
5658
- get rid of __loadScript, use more common name
5759
- BSD sockets
5860
- Workers
59-
- use custom printf to avoid C library compatibility issues
60-
- use custom timezone support to avoid C library compatibility issues
6161

6262
REPL:
63-
- strip internal functions from stack trace
63+
- debugger
6464
- readline: support MS Windows terminal
6565
- readline: handle dynamic terminal resizing
6666
- multiline editing
67-
- debugger
6867
- runtime object and function inspectors
6968
- interactive object browser
7069
- use more generic approach to display evaluation results
@@ -75,6 +74,6 @@ REPL:
7574
Test262o: 0/11262 errors, 463 excluded
7675
Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch)
7776

78-
Test262: 2/67433 errors, 901 excluded, 1658 skipped
79-
Test262bn: 2/69536 errors, 834 excluded, 670 skipped
80-
test262 commit: 21195de94cfc36eadbde00a825ca7efb3d9c3dde
77+
Test262: 4/67619 errors, 913 excluded, 1660 skipped
78+
Test262bn: 4/69722 errors, 846 excluded, 672 skipped
79+
test262 commit: 19fd4bea797646ae9bbfc9d325f14052ca370b54

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2019-10-27
1+
2019-12-21

doc/jsbignum.html

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

doc/jsbignum.pdf

1 Byte
Binary file not shown.

doc/jsbignum.texi

+4-4
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ language while being 100% backward compatible:
2828
@itemize
2929

3030
@item Overloading of the standard operators
31-
to support new types such as complex numbers, fractions or matrixes.
31+
to support new types such as complex numbers, fractions or matrices.
3232

3333
@item Bigint mode where arbitrarily large integers are available by default (no @code{n} suffix is necessary as in the TC39 BigInt proposal@footnote{@url{https://tc39.github.io/proposal-bigint/}}).
3434

@@ -417,7 +417,7 @@ It is a normal object.
417417
@subsection @code{Number} constructor
418418

419419
The number constructor returns its argument rounded to a Float using
420-
the global floating point environement. In bigint mode, the Number
420+
the global floating point environment. In bigint mode, the Number
421421
constructor returns a Float. In standard mode, it returns a SmallInt
422422
if the value fits it, otherwise a Float.
423423

@@ -723,9 +723,9 @@ Read-only integer. Round to nearest, with ties away from zero rounding mode.
723723
@item RNDNU
724724
Read-only integer. Round to nearest, with ties to +Infinity rounding mode.
725725

726-
@item RNDF@footnote{Could be removed in case a deterministic behvior for floating point operations is required.}
726+
@item RNDF@footnote{Could be removed in case a deterministic behavior for floating point operations is required.}
727727
Read-only integer. Faithful rounding mode. The result is
728-
non-deterministicly rounded to -Infinity or +Infinity. This rounding
728+
non-deterministically rounded to -Infinity or +Infinity. This rounding
729729
mode usually gives a faster and deterministic running time for the
730730
floating point operations.
731731

doc/quickjs.html

+24-15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

doc/quickjs.pdf

244 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)