master
QuickJS: add missing btoa() and atob() and improve njs version
Version bump
Added a target to generate pkg-config file.
Fixed PTR macro compatibility with newer BFD library.
Added native function symbolizer for function tracing in debug.
Fixed freeing of array created using njs_arr_create().
Fixed Array.prototype.sort() according to the specification.
Fix Array.prototype.slice() of large arrays in the non-fast keys path
Introduced flat hash.
Fixed ArrayBuffer with detached buffers.
Shell: added $262 as external in CLI.
Fixed njs_assert() macro.
Attach JS stack trace for exceptions thrown by C code.
Fixed heap-buffer-overflow in atom hash caused by Symbol().
Refactored atom hash into orthogonal find and add operations.
Added Object.hasOwn().
Refactored working with built-in strings, symbols and small integers.
Refactored object type initialization.
Buffer: fix infinite loop when filling from a zero-length typed array
Make Error.stack faster.
Add optional per-chain byte cap in chained buffers
Using printing and parsing library from QuickJS.
Fixed --debug=YES build after d4cedc0.
Added njs_date_alloc().
Fixed call argument evaluation.
Moving all common headers into njs_main.h.
Refactored file hierarchy.
Added missing detached array checks.
Introduced TextEncoder/TextDecoder implementation.
Improved error stack frame handling.
Align SyntaxError reporting with other JS engines.
Refactored asynchronous events.
Removed remnants of level hash.
Fixed frame saving for awaited function with closures.
Fixed call argument value snapshotting.
Tests: introduced OPCODE debug.
WebCrypto: module is rewritten using public API.
Cap string-producing chb chains in core builtins
Added support for ??= operator.
Parser: isolate optional preserve wrapper details.
Lexer refactoring.
Separating private from public headers.
Replace per-VM indexed array for modules with hash-based lookup.
Fixed Array.prototype.sort() with --debug=YES and --debug-memory=YES.
Added njs.memoryStats object.
Fixed object enumeration cleanup
Fixed atom string fallback handling
Optimized memory consumption by object hash.
Parser: fixed string escape lookahead bounds
Parser: allow await expressions in tagged templates.
Attach stack in error constructors.
Added API to work with promises.
Random: prioritise CCRandomGenerateBytes over getentropy on macOs.
Introduced PCRE2 RegExp backend.
Improved memory footprint of RegExp.prototype.test().
RegExp: improved source string treatment.
Fixed string offset map corruption in scope values hash.
Removed not used njs_scope_create_index_value().
Fixed GCC 15 build with -Wunterminated-string-initialization.
Public header cleanup.
Introduced WebCrypto API according to W3C spec.
Fixed memory overlap checks
Added Symbol.toPrimitive to Date and Symbol prototypes.
Added Symbol.for() and Symbol.keyfor().
Removing njs_stub.h.
Honor source view offset in same-type copies
Avoiding explicit length calculation for strings.
Unicode case tables updated to version 14.0.0 (May 2021).
Improved population of process.env object.
Improved readability of surrogate pairs handling.
Introduced UTF-16 according to WHATWG encoding spec.
Avoiding arithmetic operations with NULL pointer in TextDecoder().
Fixed ‘ctx.codepoint’ may be used uninitialized.
Added remaining methods for %TypedArray%.prototype.
Fixed misaligned reading and writing.
Fixed stack attaching by stringifying function addresses in place.
Ensuring string values are zero-terminated.
Parser: fixed function scope checks
Parser: simplifed working with function variables.
Fix typo in njs_vm_value_enumerate()
QuickJS: fix nginx configure with not configured njs module.