Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Fixed RegExp compilation after 17124c81.HEADmaster | Dmitry Volyntsev | 23 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 Zhestikov | 33 hours |
| | |||
* | Removed useless njs_value_assign() call. | Vadim Zhestikov | 33 hours |
| | |||
* | Simplified njs_object_prop_t. | Vadim Zhestikov | 33 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 Zhestikov | 33 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 Zhestikov | 33 hours |
| | |||
* | Improved memory consumption of String.prototype.concat() with numbers. | Vadim Zhestikov | 33 hours |
| | |||
* | Improved memory consumption for concatenation of numbers and strings. | Vadim Zhestikov | 33 hours |
| | |||
* | Fixed regexp compilation of patterns with escaped '[' characters. | Dmitry Volyntsev | 2 days |
| | | | | This fixes #934 issue on Github. | ||
* | Parser: unused strict_semicolon cleanup. | Dmitry Volyntsev | 2025-06-16 |
| | |||
* | Parser: simplifed working with function variables. | Dmitry Volyntsev | 2025-06-16 |
| | |||
* | Fixed frame saving for awaited function with closures. | Dmitry Volyntsev | 2025-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 Volyntsev | 2025-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 Volyntsev | 2025-06-13 |
| | |||
* | Fixed %TypedArray%.prototype.slice() with overlapping buffers. | Dmitry Volyntsev | 2025-06-13 |
| | |||
* | Fixed %TypedArray%.from() with buffer is detached by mapper. | Dmitry Volyntsev | 2025-06-13 |
| | |||
* | Fixed compilation with old gcc. | Dmitry Volyntsev | 2025-06-07 |
| | | | | This fixed compilation issues with gcc-4.1. | ||
* | Fixed constant is too large for 'long' warning on mips -mabi=n32. | Dmitry Volyntsev | 2025-06-07 |
| | | | | Prodded by Orgad Shaneh. | ||
* | Fixed gcc compilation with O3 optimization level. | Dmitry Volyntsev | 2025-06-04 |
| | |||
* | Fixed Function constructor template injection. | Dmitry Volyntsev | 2025-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 Zhestikov | 2025-05-30 |
| | | | | | The issue was introduced in b28e50b1 (0.9.0). This closes #918 issue on Github. | ||
* | Modules: introduced NGX_CHB_CTX_INIT(). | Dmitry Volyntsev | 2025-05-22 |
| | |||
* | Add missing null checks for promise code. | Dmitry Sviridkin | 2025-05-15 |
| | |||
* | Fetch: QuickJS support. | Zhidao HONG | 2025-05-09 |
| | |||
* | Version bump. | Dmitry Volyntsev | 2025-05-08 |
| | |||
* | HTTP: fixed GCC 15 build with -Wunterminated-string-initialization. | Dmitry Volyntsev | 2025-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 Volyntsev | 2025-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 Zhestikov | 2025-04-30 |
| | | | | Found by OSS-Fuzz. | ||
* | Using invalid UTF-8 string as atom number 0. | Dmitry Volyntsev | 2025-04-30 |
| | | | | This prevents a clash with possible valid UTF-8 strings. | ||
* | Fixed building with --debug=YES after b28e50b1. | Dmitry Volyntsev | 2025-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 Volyntsev | 2025-04-29 |
| | |||
* | Introduced NJS_VMCODE_PROPERTY_ATOM_GET instruction. | Dmitry Volyntsev | 2025-04-29 |
| | |||
* | Refactored working with built-in strings, symbols and small integers. | Vadim Zhestikov | 2025-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 HONG | 2025-04-22 |
| | |||
* | Version bump. | Dmitry Volyntsev | 2025-04-09 |
| | |||
* | QuickJS: fixed compatibility issues with QuickJS-NG 0.9.0. | Dmitry Volyntsev | 2025-03-27 |
| | | | | This fixes #872 on Github. | ||
* | QuickJS: added xml module. | Dmitry Volyntsev | 2025-03-27 |
| | |||
* | QuickJS: fixed compatibility with recent change in upstream. | Dmitry Volyntsev | 2025-03-25 |
| | | | | JS_VALUE_GET_OBJ(v) was made hidden in 156d981. | ||
* | QuickJS: introduced qjs_promise_result(). | Dmitry Volyntsev | 2025-03-25 |
| | |||
* | QuickJS: using JS_AddIntrinsicBigInt() if detected. | Vadim Zhestikov | 2025-03-19 |
| | |||
* | QuickJS: calling njs_chb_destroy() in qjs_string_create_chb() internally. | hongzhidao | 2025-03-19 |
| | | | | No functional changes. | ||
* | QuickJS: fixed njs_qjs_object_completions(). | hongzhidao | 2025-03-19 |
| | | | | This commit also exposed qjs_free_prop_enum() as public. | ||
* | QuickJS: added error checks in modules initialization. | Vadim Zhestikov | 2025-03-18 |
| | |||
* | QuickJS: crypto module. | Vadim Zhestikov | 2025-03-18 |
| | |||
* | QuickJS: using helper to declare Symbol.toStringTag properties. | Dmitry Volyntsev | 2025-02-25 |
| | |||
* | Fixed typo introduced in 75ca26f. | Dmitry Volyntsev | 2025-02-24 |
| | |||
* | QuickJS: fixed non-NULL terminated strings formatting in exceptions. | Dmitry Volyntsev | 2025-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 Zhestikov | 2025-02-18 |
| | | | | This fixes issues #836 on github. | ||
* | QuickJS: added querystring module. | Dmitry Volyntsev | 2025-02-07 |
| | |||
* | QuickJS: added WebCrypto module. | Dmitry Volyntsev | 2025-01-24 |
| |