aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Fixed RegExp compilation after 17124c81.HEADmasterDmitry Volyntsev23 hours
| | | | | | | Previously, heap-buffer-overflow happened due to incorrect copying of [...] regexp parts. Found by OSS-Fuzz.
* Removed not used njs_scope_create_index_value().Vadim Zhestikov33 hours
|
* Removed useless njs_value_assign() call.Vadim Zhestikov33 hours
|
* Simplified njs_object_prop_t.Vadim Zhestikov33 hours
| | | | | Removed enum_in_object_hash which is only set when prop->type is NJS_WHITEOUT and this check can be used instead.
* Ignoring previous value in njs_flathsh_insert().Vadim Zhestikov33 hours
| | | | | Previously, fhq->value was set to a previous value if the value existed. This is not used anymore in the code.
* Released temporary template literal memory.Vadim Zhestikov33 hours
|
* Improved memory consumption of String.prototype.concat() with numbers.Vadim Zhestikov33 hours
|
* Improved memory consumption for concatenation of numbers and strings.Vadim Zhestikov33 hours
|
* Fixed regexp compilation of patterns with escaped '[' characters.Dmitry Volyntsev2 days
| | | | This fixes #934 issue on Github.
* Parser: unused strict_semicolon cleanup.Dmitry Volyntsev2025-06-16
|
* Parser: simplifed working with function variables.Dmitry Volyntsev2025-06-16
|
* Fixed frame saving for awaited function with closures.Dmitry Volyntsev2025-06-16
| | | | | | The issue was introduced in 6335367 (0.7.0). This fixes #530 issue on Github.
* Moving child function declaration instantiation to bytecode.Dmitry Volyntsev2025-06-16
| | | | | | | | | | | Children functions need to be hoisted and instantiated at the beginning of a function call. Previously, it was done as a part of C code that implements JS function call. Now, each child function is instantiated by FUNCTION instruction at a function prelude. This makes global and function code similar, which in turn allows to get rid of FUNCTION COPY instruction which was only needed for global code.
* Fixed handling of detached buffer for typed arrays.Dmitry Volyntsev2025-06-13
|
* Fixed %TypedArray%.prototype.slice() with overlapping buffers.Dmitry Volyntsev2025-06-13
|
* Fixed %TypedArray%.from() with buffer is detached by mapper.Dmitry Volyntsev2025-06-13
|
* Fixed compilation with old gcc.Dmitry Volyntsev2025-06-07
| | | | This fixed compilation issues with gcc-4.1.
* Fixed constant is too large for 'long' warning on mips -mabi=n32.Dmitry Volyntsev2025-06-07
| | | | Prodded by Orgad Shaneh.
* Fixed gcc compilation with O3 optimization level.Dmitry Volyntsev2025-06-04
|
* Fixed Function constructor template injection.Dmitry Volyntsev2025-06-03
| | | | | | | | The Function constructor uses a `(function(<args>) {<body>})` template to construct new functions. This approach was vulnerable to template injection where malicious code could close the function body early. This fixes issue #921.
* Fixed segfault at error message in njs_property_query().Vadim Zhestikov2025-05-30
| | | | | The issue was introduced in b28e50b1 (0.9.0). This closes #918 issue on Github.
* Modules: introduced NGX_CHB_CTX_INIT().Dmitry Volyntsev2025-05-22
|
* Add missing null checks for promise code.Dmitry Sviridkin2025-05-15
|
* Fetch: QuickJS support.Zhidao HONG2025-05-09
|
* Version bump.Dmitry Volyntsev2025-05-08
|
* HTTP: fixed GCC 15 build with -Wunterminated-string-initialization.Dmitry Volyntsev2025-05-05
| | | | | | | ngx_http_js_module.c:936:22: error: initializer-string for array of ‘char’ truncates NUL terminator but destination lacks ‘nonstring’ attribute (16 chars into 15 available) [-Werror=unterminated-string-initialization] 936 | .value = "PeriodicSession", | ^~~~~~~~~~~~~~~~~
* Fixed GCC 15 build with -Wunterminated-string-initialization.Dmitry Volyntsev2025-05-01
| | | | | | | | | | In file included from src/njs_main.h:48, from src/njs_diyfp.c:12: src/njs_string.h: In function ‘njs_string_encode’: src/njs_string.h:229:36: error: initializer-string for array of ‘unsigned char’ truncates NUL terminator but destination lacks ‘nonstring’ attribute ( 17 chars into 16 available) [-Werror=unterminated-string-initialization] 229 | static const u_char hex[16] = "0123456789ABCDEF";
* Fixed regexp undefined value of captured group.Vadim Zhestikov2025-04-30
| | | | Found by OSS-Fuzz.
* Using invalid UTF-8 string as atom number 0.Dmitry Volyntsev2025-04-30
| | | | This prevents a clash with possible valid UTF-8 strings.
* Fixed building with --debug=YES after b28e50b1.Dmitry Volyntsev2025-04-30
| | | | | | | | | | | In file included from src/njs_main.h:37, from src/njs_diyfp.c:12: src/njs_atom.h: In function ‘njs_atom_to_value’: src/njs_atom.h:54:31: error: invalid use of incomplete typedef ‘njs_flathsh_descr_t’ {aka ‘struct njs_flathsh_descr_s’} 54 | njs_assert(atom_id < h->elts_count); | ^~ src/njs_assert.h:14:15: note: in definition of macro ‘njs_assert’
* Introduced NJS_VMCODE_PROPERTY_ATOM_SET instruction.Dmitry Volyntsev2025-04-29
|
* Introduced NJS_VMCODE_PROPERTY_ATOM_GET instruction.Dmitry Volyntsev2025-04-29
|
* Refactored working with built-in strings, symbols and small integers.Vadim Zhestikov2025-04-29
| | | | | | | | | | | | | | | | - Implemented atom IDs for strings, symbols and small numbers, enabling equality checks via ID comparison - Optimized string operations for faster property lookups and comparisons - Removed short string inlining from njs_value_t structure Performance improvements (arewefastyet/benchmarks/v8-v7 benchmark): - Richards: +57% (631 → 989) - Crypto: +7% (1445 → 1551) - RayTrace: +37% (562 → 772) - NavierStokes: +20% (2062 → 2465) - Overall score: +29% (1014 → 1307) In collaboration with Dmitry Volyntsev.
* Replaced vm with mp in NJS_CHB_MP_INIT().Zhidao HONG2025-04-22
|
* Version bump.Dmitry Volyntsev2025-04-09
|
* QuickJS: fixed compatibility issues with QuickJS-NG 0.9.0.Dmitry Volyntsev2025-03-27
| | | | This fixes #872 on Github.
* QuickJS: added xml module.Dmitry Volyntsev2025-03-27
|
* QuickJS: fixed compatibility with recent change in upstream.Dmitry Volyntsev2025-03-25
| | | | JS_VALUE_GET_OBJ(v) was made hidden in 156d981.
* QuickJS: introduced qjs_promise_result().Dmitry Volyntsev2025-03-25
|
* QuickJS: using JS_AddIntrinsicBigInt() if detected.Vadim Zhestikov2025-03-19
|
* QuickJS: calling njs_chb_destroy() in qjs_string_create_chb() internally.hongzhidao2025-03-19
| | | | No functional changes.
* QuickJS: fixed njs_qjs_object_completions().hongzhidao2025-03-19
| | | | This commit also exposed qjs_free_prop_enum() as public.
* QuickJS: added error checks in modules initialization.Vadim Zhestikov2025-03-18
|
* QuickJS: crypto module.Vadim Zhestikov2025-03-18
|
* QuickJS: using helper to declare Symbol.toStringTag properties.Dmitry Volyntsev2025-02-25
|
* Fixed typo introduced in 75ca26f.Dmitry Volyntsev2025-02-24
|
* QuickJS: fixed non-NULL terminated strings formatting in exceptions.Dmitry Volyntsev2025-02-18
| | | | | | | | | When "%*s" is specified, the first integer is interpreted as width. Width specifies *minimum* number of characters to output. The next string is expected to be NULL-terminated. When "%.*s" is specified, the first integer is interpreted as precision. Precision specifies *maximum* number of characters to output.
* Add missed syntax error for await in template literal.Vadim Zhestikov2025-02-18
| | | | This fixes issues #836 on github.
* QuickJS: added querystring module.Dmitry Volyntsev2025-02-07
|
* QuickJS: added WebCrypto module.Dmitry Volyntsev2025-01-24
|