Remove old project files
This commit is contained in:
parent
c4e732e049
commit
d6a334233c
5 changed files with 5 additions and 376 deletions
148
Changelog
148
Changelog
|
@ -1,148 +0,0 @@
|
||||||
2021-03-27:
|
|
||||||
|
|
||||||
- faster Array.prototype.push and Array.prototype.unshift
|
|
||||||
- added JS_UpdateStackTop()
|
|
||||||
- fixed Windows console
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2020-11-08:
|
|
||||||
|
|
||||||
- improved function parameter initializers
|
|
||||||
- added std.setenv(), std.unsetenv() and std.getenviron()
|
|
||||||
- added JS_EvalThis()
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2020-09-06:
|
|
||||||
|
|
||||||
- added logical assignment operators
|
|
||||||
- added IsHTMLDDA support
|
|
||||||
- faster for-of loops
|
|
||||||
- os.Worker now takes a module filename as parameter
|
|
||||||
- qjsc: added -D option to compile dynamically loaded modules or workers
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2020-07-05:
|
|
||||||
|
|
||||||
- modified JS_GetPrototype() to return a live value
|
|
||||||
- REPL: support unicode characters larger than 16 bits
|
|
||||||
- added os.Worker
|
|
||||||
- improved object serialization
|
|
||||||
- added std.parseExtJSON
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2020-04-12:
|
|
||||||
|
|
||||||
- added cross realm support
|
|
||||||
- added AggregateError and Promise.any
|
|
||||||
- added env, uid and gid options in os.exec()
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2020-03-16:
|
|
||||||
|
|
||||||
- reworked error handling in std and os libraries: suppressed I/O
|
|
||||||
exceptions in std FILE functions and return a positive errno value
|
|
||||||
when it is explicit
|
|
||||||
- output exception messages to stderr
|
|
||||||
- added std.loadFile(), std.strerror(), std.FILE.prototype.tello()
|
|
||||||
- added JS_GetRuntimeOpaque(), JS_SetRuntimeOpaque(), JS_NewUint32()
|
|
||||||
- updated to Unicode 13.0.0
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2020-01-19:
|
|
||||||
|
|
||||||
- keep CONFIG_BIGNUM in the makefile
|
|
||||||
- added os.chdir()
|
|
||||||
- qjs: added -I option
|
|
||||||
- more memory checks in the bignum operations
|
|
||||||
- modified operator overloading semantics to be closer to the TC39
|
|
||||||
proposal
|
|
||||||
- suppressed "use bigint" mode. Simplified "use math" mode
|
|
||||||
- BigDecimal: changed suffix from 'd' to 'm'
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2020-01-05:
|
|
||||||
|
|
||||||
- always compile the bignum code. Added '--bignum' option to qjs.
|
|
||||||
- added BigDecimal
|
|
||||||
- added String.prototype.replaceAll
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2019-12-21:
|
|
||||||
|
|
||||||
- added nullish coalescing operator (ES2020)
|
|
||||||
- added optional chaining (ES2020)
|
|
||||||
- removed recursions in garbage collector
|
|
||||||
- test stack overflow in the parser
|
|
||||||
- improved backtrace logic
|
|
||||||
- added JS_SetHostPromiseRejectionTracker()
|
|
||||||
- allow exotic constructors
|
|
||||||
- improved c++ compatibility
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2019-10-27:
|
|
||||||
|
|
||||||
- added example of C class in a module (examples/test_point.js)
|
|
||||||
- added JS_GetTypedArrayBuffer()
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2019-09-18:
|
|
||||||
|
|
||||||
- added os.exec and other system calls
|
|
||||||
- exported JS_ValueToAtom()
|
|
||||||
- qjsc: added 'qjsc_' prefix to the generated C identifiers
|
|
||||||
- added cross-compilation support
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2019-09-01:
|
|
||||||
|
|
||||||
- added globalThis
|
|
||||||
- documented JS_EVAL_FLAG_COMPILE_ONLY
|
|
||||||
- added import.meta.url and import.meta.main
|
|
||||||
- added 'debugger' statement
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2019-08-18:
|
|
||||||
|
|
||||||
- added os.realpath, os.getcwd, os.mkdir, os.stat, os.lstat,
|
|
||||||
os.readlink, os.readdir, os.utimes, std.popen
|
|
||||||
- module autodetection
|
|
||||||
- added import.meta
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2019-08-10:
|
|
||||||
|
|
||||||
- added public class fields and private class fields, methods and
|
|
||||||
accessors (TC39 proposal)
|
|
||||||
- changed JS_ToCStringLen() prototype
|
|
||||||
- qjsc: handle '-' in module names and modules with the same filename
|
|
||||||
- added std.urlGet
|
|
||||||
- exported JS_GetOwnPropertyNames() and JS_GetOwnProperty()
|
|
||||||
- exported some bigint C functions
|
|
||||||
- added support for eshost in run-test262
|
|
||||||
- misc bug fixes
|
|
||||||
|
|
||||||
2019-07-28:
|
|
||||||
|
|
||||||
- added dynamic import
|
|
||||||
- added Promise.allSettled
|
|
||||||
- added String.prototype.matchAll
|
|
||||||
- added Object.fromEntries
|
|
||||||
- reduced number of ticks in await
|
|
||||||
- added BigInt support in Atomics
|
|
||||||
- exported JS_NewPromiseCapability()
|
|
||||||
- misc async function and async generator fixes
|
|
||||||
- enabled hashbang support by default
|
|
||||||
|
|
||||||
2019-07-21:
|
|
||||||
|
|
||||||
- updated test262 tests
|
|
||||||
- updated to Unicode version 12.1.0
|
|
||||||
- fixed missing Date object in qjsc
|
|
||||||
- fixed multi-context creation
|
|
||||||
- misc ES2020 related fixes
|
|
||||||
- simplified power and division operators in bignum extension
|
|
||||||
- fixed several crash conditions
|
|
||||||
|
|
||||||
2019-07-09:
|
|
||||||
|
|
||||||
- first public release
|
|
5
README.md
Normal file
5
README.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# ⚡️ QuickJS - A mighty JavaScript engine
|
||||||
|
|
||||||
|
Friendly [QuickJS](https://bellard.org/quickjs) fork focused on reigniting the project.
|
||||||
|
|
||||||
|
🚧 Work in progress.
|
70
TODO
70
TODO
|
@ -1,70 +0,0 @@
|
||||||
Bugs:
|
|
||||||
- modules: better error handling with cyclic module references
|
|
||||||
|
|
||||||
Misc ideas:
|
|
||||||
- use custom printf to avoid compatibility issues with floating point numbers
|
|
||||||
- consistent naming for preprocessor defines
|
|
||||||
- unify coding style and naming conventions
|
|
||||||
- use names from the ECMA spec in library implementation
|
|
||||||
- use byte code emitters with typed arguments (for clarity)
|
|
||||||
- use 2 bytecode DynBufs in JSFunctionDef, one for reading, one for writing
|
|
||||||
and use the same wrappers in all phases
|
|
||||||
- use more generic method for line numbers in resolve_variables and resolve_labels
|
|
||||||
- use custom timezone support to avoid C library compatibility issues
|
|
||||||
|
|
||||||
Memory:
|
|
||||||
- use memory pools for objects, etc?
|
|
||||||
- test border cases for max number of atoms, object properties, string length
|
|
||||||
- add emergency malloc mode for out of memory exceptions.
|
|
||||||
- test all DynBuf memory errors
|
|
||||||
- test all js_realloc memory errors
|
|
||||||
- improve JS_ComputeMemoryUsage() with more info
|
|
||||||
|
|
||||||
Built-in standard library:
|
|
||||||
- BSD sockets
|
|
||||||
- modules: use realpath in module name normalizer and put it in quickjs-libc
|
|
||||||
- modules: if no ".", use a well known module loading path ?
|
|
||||||
- get rid of __loadScript, use more common name
|
|
||||||
|
|
||||||
REPL:
|
|
||||||
- debugger
|
|
||||||
- readline: support MS Windows terminal
|
|
||||||
- readline: handle dynamic terminal resizing
|
|
||||||
- readline: handle double width unicode characters
|
|
||||||
- multiline editing
|
|
||||||
- runtime object and function inspectors
|
|
||||||
- interactive object browser
|
|
||||||
- use more generic approach to display evaluation results
|
|
||||||
- improve directive handling: dispatch, colorize, completion...
|
|
||||||
- save history
|
|
||||||
- close all predefined methods in repl.js and jscalc.js
|
|
||||||
|
|
||||||
Optimization ideas:
|
|
||||||
- 64-bit atoms in 64-bit mode ?
|
|
||||||
- 64-bit small bigint in 64-bit mode ?
|
|
||||||
- reuse stack slots for disjoint scopes, if strip
|
|
||||||
- add heuristic to avoid some cycles in closures
|
|
||||||
- small String (0-2 charcodes) with immediate storage
|
|
||||||
- perform static string concatenation at compile time
|
|
||||||
- optimize string concatenation with ropes or miniropes?
|
|
||||||
- add implicit numeric strings for Uint32 numbers?
|
|
||||||
- optimize `s += a + b`, `s += a.b` and similar simple expressions
|
|
||||||
- ensure string canonical representation and optimise comparisons and hashes?
|
|
||||||
- remove JSObject.first_weak_ref, use bit+context based hashed array for weak references
|
|
||||||
- property access optimization on the global object, functions,
|
|
||||||
prototypes and special non extensible objects.
|
|
||||||
- create object literals with the correct length by backpatching length argument
|
|
||||||
- remove redundant set_loc_uninitialized/check_uninitialized opcodes
|
|
||||||
- peephole optim: push_atom_value, to_propkey -> push_atom_value
|
|
||||||
- peephole optim: put_loc x, get_loc_check x -> set_loc x
|
|
||||||
- convert slow array to fast array when all properties != length are numeric
|
|
||||||
- optimize destructuring assignments for global and local variables
|
|
||||||
- implement some form of tail-call-optimization
|
|
||||||
- optimize OP_apply
|
|
||||||
- optimize f(...b)
|
|
||||||
|
|
||||||
Test262o: 0/11262 errors, 463 excluded
|
|
||||||
Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch)
|
|
||||||
|
|
||||||
Result: 35/75280 errors, 909 excluded, 585 skipped
|
|
||||||
Test262 commit: 31126581e7290f9233c29cefd93f66c6ac78f1c9
|
|
|
@ -1 +0,0 @@
|
||||||
The main documentation is in doc/quickjs.pdf or doc/quickjs.html.
|
|
157
release.sh
157
release.sh
|
@ -1,157 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# Release the QuickJS source code
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
version=`cat VERSION`
|
|
||||||
|
|
||||||
if [ "$1" = "-h" ] ; then
|
|
||||||
echo "release.sh [release_list]"
|
|
||||||
echo ""
|
|
||||||
echo "release_list: extras binary win_binary quickjs"
|
|
||||||
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
release_list="extras binary win_binary quickjs"
|
|
||||||
|
|
||||||
if [ "$1" != "" ] ; then
|
|
||||||
release_list="$1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#################################################"
|
|
||||||
# extras
|
|
||||||
|
|
||||||
if echo $release_list | grep -w -q extras ; then
|
|
||||||
|
|
||||||
d="quickjs-${version}"
|
|
||||||
name="quickjs-extras-${version}"
|
|
||||||
outdir="/tmp/${d}"
|
|
||||||
|
|
||||||
rm -rf $outdir
|
|
||||||
mkdir -p $outdir $outdir/unicode $outdir/tests
|
|
||||||
|
|
||||||
cp unicode/* $outdir/unicode
|
|
||||||
cp -a tests/bench-v8 $outdir/tests
|
|
||||||
|
|
||||||
( cd /tmp && tar Jcvf /tmp/${name}.tar.xz ${d} )
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
#################################################"
|
|
||||||
# Windows binary release
|
|
||||||
|
|
||||||
if echo $release_list | grep -w -q win_binary ; then
|
|
||||||
|
|
||||||
# win64
|
|
||||||
|
|
||||||
dlldir=/usr/x86_64-w64-mingw32/sys-root/mingw/bin
|
|
||||||
cross_prefix="x86_64-w64-mingw32-"
|
|
||||||
d="quickjs-win-x86_64-${version}"
|
|
||||||
outdir="/tmp/${d}"
|
|
||||||
|
|
||||||
rm -rf $outdir
|
|
||||||
mkdir -p $outdir
|
|
||||||
|
|
||||||
make CONFIG_WIN32=y qjs.exe
|
|
||||||
cp qjs.exe $outdir
|
|
||||||
${cross_prefix}strip $outdir/qjs.exe
|
|
||||||
cp $dlldir/libwinpthread-1.dll $outdir
|
|
||||||
|
|
||||||
( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . )
|
|
||||||
|
|
||||||
make CONFIG_WIN32=y clean
|
|
||||||
|
|
||||||
# win32
|
|
||||||
|
|
||||||
dlldir=/usr/i686-w64-mingw32/sys-root/mingw/bin
|
|
||||||
cross_prefix="i686-w64-mingw32-"
|
|
||||||
d="quickjs-win-i686-${version}"
|
|
||||||
outdir="/tmp/${d}"
|
|
||||||
|
|
||||||
rm -rf $outdir
|
|
||||||
mkdir -p $outdir
|
|
||||||
|
|
||||||
make clean
|
|
||||||
make CONFIG_WIN32=y clean
|
|
||||||
|
|
||||||
make CONFIG_WIN32=y CONFIG_M32=y qjs.exe
|
|
||||||
cp qjs.exe $outdir
|
|
||||||
${cross_prefix}strip $outdir/qjs.exe
|
|
||||||
cp $dlldir/libwinpthread-1.dll $outdir
|
|
||||||
|
|
||||||
( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . )
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
#################################################"
|
|
||||||
# Linux binary release
|
|
||||||
|
|
||||||
if echo $release_list | grep -w -q binary ; then
|
|
||||||
|
|
||||||
make clean
|
|
||||||
make CONFIG_WIN32=y clean
|
|
||||||
make -j4 qjs run-test262
|
|
||||||
make -j4 CONFIG_M32=y qjs32 run-test262-32
|
|
||||||
strip qjs run-test262 qjs32 run-test262-32
|
|
||||||
|
|
||||||
d="quickjs-linux-x86_64-${version}"
|
|
||||||
outdir="/tmp/${d}"
|
|
||||||
|
|
||||||
rm -rf $outdir
|
|
||||||
mkdir -p $outdir
|
|
||||||
|
|
||||||
cp qjs run-test262 $outdir
|
|
||||||
|
|
||||||
( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . )
|
|
||||||
|
|
||||||
d="quickjs-linux-i686-${version}"
|
|
||||||
outdir="/tmp/${d}"
|
|
||||||
|
|
||||||
rm -rf $outdir
|
|
||||||
mkdir -p $outdir
|
|
||||||
|
|
||||||
cp qjs32 $outdir/qjs
|
|
||||||
cp run-test262-32 $outdir/run-test262
|
|
||||||
|
|
||||||
( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . )
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
#################################################"
|
|
||||||
# quickjs
|
|
||||||
|
|
||||||
if echo $release_list | grep -w -q quickjs ; then
|
|
||||||
|
|
||||||
make build_doc
|
|
||||||
|
|
||||||
d="quickjs-${version}"
|
|
||||||
outdir="/tmp/${d}"
|
|
||||||
|
|
||||||
rm -rf $outdir
|
|
||||||
mkdir -p $outdir $outdir/doc $outdir/tests $outdir/examples
|
|
||||||
|
|
||||||
cp Makefile VERSION TODO Changelog readme.txt LICENSE \
|
|
||||||
release.sh unicode_download.sh \
|
|
||||||
qjs.c qjsc.c qjscalc.js repl.js \
|
|
||||||
quickjs.c quickjs.h quickjs-atom.h \
|
|
||||||
quickjs-libc.c quickjs-libc.h quickjs-opcode.h \
|
|
||||||
cutils.c cutils.h list.h \
|
|
||||||
libregexp.c libregexp.h libregexp-opcode.h \
|
|
||||||
libunicode.c libunicode.h libunicode-table.h \
|
|
||||||
libbf.c libbf.h \
|
|
||||||
unicode_gen.c unicode_gen_def.h \
|
|
||||||
run-test262.c test262o.conf test262.conf \
|
|
||||||
test262o_errors.txt test262_errors.txt \
|
|
||||||
$outdir
|
|
||||||
|
|
||||||
cp tests/*.js tests/*.patch tests/bjson.c $outdir/tests
|
|
||||||
|
|
||||||
cp examples/*.js examples/*.c $outdir/examples
|
|
||||||
|
|
||||||
cp doc/quickjs.texi doc/quickjs.pdf doc/quickjs.html \
|
|
||||||
$outdir/doc
|
|
||||||
|
|
||||||
( cd /tmp && tar Jcvf /tmp/${d}.tar.xz ${d} )
|
|
||||||
|
|
||||||
fi
|
|
Loading…
Reference in a new issue