*/*: update NGINX JavaScript: 0.8.10 -> 0.9.0 (+)

The patches applied to the www/unit are based on
https://github.com/nginx/unit/pull/1611/

Thanks to:	Andrew Clayton <a.clayton@nginx.com>

<ChangeLog>

 Core:

 *) Feature: refactored working with built-in strings, symbols
    and small integers.
    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)

*) Bugfix: fixed regexp undefined value of captured group.

*) Bugfix: fixed GCC 15 build with -Wunterminated-string-initialization.

</ChangeLog>
This commit is contained in:
Sergey A. Osokin
2025-05-10 20:49:23 -04:00
parent ed72607936
commit 641386d44e
11 changed files with 177 additions and 15 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
PORTNAME= libnjs
DISTVERSION= 0.8.10
DISTVERSION= 0.9.0
CATEGORIES= devel www
MAINTAINER= osa@FreeBSD.org
+3 -3
View File
@@ -1,3 +1,3 @@
TIMESTAMP = 1744834488
SHA256 (nginx-njs-0.8.10_GH0.tar.gz) = 0be4bdd79184cd43f55a0377e59107fddfeef33e54f97c890894f0fe72628d26
SIZE (nginx-njs-0.8.10_GH0.tar.gz) = 942446
TIMESTAMP = 1746535107
SHA256 (nginx-njs-0.9.0_GH0.tar.gz) = 7b0446f0b3e0b63b57883e0464d883f0ac4eab82ec7746599d37563dc6808203
SIZE (nginx-njs-0.9.0_GH0.tar.gz) = 942562
+2 -2
View File
@@ -5,6 +5,8 @@ include/njs_array.h
include/njs_array_buffer.h
include/njs_assert.h
include/njs_async.h
include/njs_atom.h
include/njs_atom_defs.h
include/njs_auto_config.h
include/njs_boolean.h
include/njs_buffer.h
@@ -24,7 +26,6 @@ include/njs_generator.h
include/njs_iterator.h
include/njs_json.h
include/njs_lexer.h
include/njs_lexer_tables.h
include/njs_lvlhsh.h
include/njs_main.h
include/njs_malloc.h
@@ -34,7 +35,6 @@ include/njs_mp.h
include/njs_murmur_hash.h
include/njs_number.h
include/njs_object.h
include/njs_object_hash.h
include/njs_object_prop_declare.h
include/njs_parser.h
include/njs_promise.h
+1 -1
View File
@@ -1,5 +1,5 @@
PORTNAME= njs
DISTVERSION= 0.8.10
DISTVERSION= 0.9.0
CATEGORIES= lang www
MAINTAINER= osa@FreeBSD.org
+3 -3
View File
@@ -1,3 +1,3 @@
TIMESTAMP = 1744849432
SHA256 (nginx-njs-0.8.10_GH0.tar.gz) = 0be4bdd79184cd43f55a0377e59107fddfeef33e54f97c890894f0fe72628d26
SIZE (nginx-njs-0.8.10_GH0.tar.gz) = 942446
TIMESTAMP = 1746537031
SHA256 (nginx-njs-0.9.0_GH0.tar.gz) = 7b0446f0b3e0b63b57883e0464d883f0ac4eab82ec7746599d37563dc6808203
SIZE (nginx-njs-0.9.0_GH0.tar.gz) = 942562
+1 -1
View File
@@ -1,6 +1,6 @@
PORTNAME?= nginx
PORTVERSION= 1.28.0
PORTREVISION= 2
PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= https://nginx.org/download/ \
LOCAL/osa
+1 -1
View File
@@ -238,7 +238,7 @@ NAXSI_VARS= DSO_EXTMODS+=naxsi NAXSI_SUBDIR=/naxsi_src
NAXSI_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-naxsi-libinjection__sqli_c \
${PATCHDIR}/extra-patch-naxsi_config
NJS_GH_TUPLE= nginx:njs:0.8.10:njs
NJS_GH_TUPLE= nginx:njs:0.9.0:njs
NJS_CONFIGURE_ON= --with-cc-opt="-I ${LOCALBASE}/include/quickjs"
NJS_LIB_DEPENDS= libquickjs.so:lang/quickjs \
libxml2.so:textproc/libxml2 \
+3 -3
View File
@@ -1,4 +1,4 @@
TIMESTAMP = 1746026197
TIMESTAMP = 1746537167
SHA256 (nginx-1.28.0.tar.gz) = c6b5c6b086c0df9d3ca3ff5e084c1d0ef909e6038279c71c1c3e985f576ff76a
SIZE (nginx-1.28.0.tar.gz) = 1280111
SHA256 (nginx_mogilefs_module-1.0.4.tar.gz) = 7ac230d30907f013dff8d435a118619ea6168aa3714dba62c6962d350c6295ae
@@ -105,8 +105,8 @@ SHA256 (wargio-naxsi-1.7_GH0.tar.gz) = adee817da71913f64a9fb0fca142d9520bb0e5014
SIZE (wargio-naxsi-1.7_GH0.tar.gz) = 1132392
SHA256 (libinjection-libinjection-b9fcaaf_GH0.tar.gz) = 7812e1316b61a7a7d3a65a57a07c6d5235ac40fe35e6edda983f31a44661a38e
SIZE (libinjection-libinjection-b9fcaaf_GH0.tar.gz) = 2218207
SHA256 (nginx-njs-0.8.10_GH0.tar.gz) = 0be4bdd79184cd43f55a0377e59107fddfeef33e54f97c890894f0fe72628d26
SIZE (nginx-njs-0.8.10_GH0.tar.gz) = 942446
SHA256 (nginx-njs-0.9.0_GH0.tar.gz) = 7b0446f0b3e0b63b57883e0464d883f0ac4eab82ec7746599d37563dc6808203
SIZE (nginx-njs-0.9.0_GH0.tar.gz) = 942562
SHA256 (osokin-nginx-otel-3a655df_GH0.tar.gz) = 71ee1561303c289d4562148f8719b60796c36abe16de1b3c10d10b8e6f03a952
SIZE (osokin-nginx-otel-3a655df_GH0.tar.gz) = 27169
SHA256 (konstruxi-ngx_postgres-8aa7359_GH0.tar.gz) = c69ad4495de7c7883ebc23e1e6c4cc83a4ac6a7fddd4d5c12e49d33b65f7c50b
+1
View File
@@ -1,5 +1,6 @@
PORTNAME= unit
PORTVERSION= ${UNIT_VERSION}
PORTREVISION= 1
CATEGORIES= www
MASTER_SITES?= https://unit.nginx.org/download/
DISTFILES?= ${PORTNAME}-${PORTVERSION}.tar.gz
+22
View File
@@ -0,0 +1,22 @@
--- auto/njs.orig 2025-02-27 22:02:21 UTC
+++ auto/njs
@@ -25,8 +25,8 @@ nxt_feature_test="#include <njs.h>
nxt_feature_libs="$NXT_NJS_LIBS $NXT_NJS_AUX_LIBS"
nxt_feature_test="#include <njs.h>
- #if NJS_VERSION_NUMBER < 0x000803
- # error njs < 0.8.3 is not supported.
+ #if NJS_VERSION_NUMBER < 0x000900
+ # error njs < 0.9.0 is not supported.
#endif
int main(void) {
@@ -44,7 +44,7 @@ if [ $nxt_found = no ]; then
if [ $nxt_found = no ]; then
$echo
- $echo $0: error: no njs library \>= 0.8.3 found.
+ $echo $0: error: no njs library \>= 0.9.0 found.
$echo
exit 1;
fi
+139
View File
@@ -0,0 +1,139 @@
--- src/nxt_http_js.c.orig 2025-02-27 22:02:21 UTC
+++ src/nxt_http_js.c
@@ -9,27 +9,31 @@ static njs_int_t nxt_http_js_ext_uri(njs_vm_t *vm, njs
static njs_int_t nxt_http_js_ext_uri(njs_vm_t *vm, njs_object_prop_t *prop,
- njs_value_t *value, njs_value_t *setval, njs_value_t *retval);
+ uint32_t atom_id, njs_value_t *value, njs_value_t *setval,
+ njs_value_t *retval);
static njs_int_t nxt_http_js_ext_host(njs_vm_t *vm, njs_object_prop_t *prop,
- njs_value_t *value, njs_value_t *setval, njs_value_t *retval);
-static njs_int_t nxt_http_js_ext_remote_addr(njs_vm_t *vm,
- njs_object_prop_t *prop, njs_value_t *value, njs_value_t *setval,
+ uint32_t atom_id, njs_value_t *value, njs_value_t *setval,
njs_value_t *retval);
+static njs_int_t nxt_http_js_ext_remote_addr(njs_vm_t *vm,
+ njs_object_prop_t *prop, uint32_t atom_id, njs_value_t *value,
+ njs_value_t *setval, njs_value_t *retval);
static njs_int_t nxt_http_js_ext_get_args(njs_vm_t *vm,
- njs_object_prop_t *prop, njs_value_t *value, njs_value_t *setval,
- njs_value_t *retval);
+ njs_object_prop_t *prop, uint32_t atom_id, njs_value_t *value,
+ njs_value_t *setval, njs_value_t *retval);
static njs_int_t nxt_http_js_ext_get_header(njs_vm_t *vm,
- njs_object_prop_t *prop, njs_value_t *value, njs_value_t *setval,
- njs_value_t *retval);
+ njs_object_prop_t *prop, uint32_t atom_id, njs_value_t *value,
+ njs_value_t *setval, njs_value_t *retval);
static njs_int_t nxt_http_js_ext_keys_header(njs_vm_t *vm,
njs_value_t *value, njs_value_t *keys);
static njs_int_t nxt_http_js_ext_get_cookie(njs_vm_t *vm,
- njs_object_prop_t *prop, njs_value_t *value, njs_value_t *setval,
+ njs_object_prop_t *prop, uint32_t atom_id, njs_value_t *value,
+ njs_value_t *setval,
njs_value_t *retval);
static njs_int_t nxt_http_js_ext_keys_cookie(njs_vm_t *vm, njs_value_t *value,
njs_value_t *keys);
static njs_int_t nxt_http_js_ext_get_var(njs_vm_t *vm, njs_object_prop_t *prop,
- njs_value_t *value, njs_value_t *setval, njs_value_t *retval);
+ uint32_t atom_id, njs_value_t *value, njs_value_t *setval,
+ njs_value_t *retval);
static njs_external_t nxt_http_js_proto[] = {
@@ -109,7 +113,7 @@ static njs_int_t
static njs_int_t
-nxt_http_js_ext_uri(njs_vm_t *vm, njs_object_prop_t *prop,
+nxt_http_js_ext_uri(njs_vm_t *vm, njs_object_prop_t *prop, uint32_t atom_id,
njs_value_t *value, njs_value_t *setval, njs_value_t *retval)
{
nxt_http_request_t *r;
@@ -126,7 +130,7 @@ static njs_int_t
static njs_int_t
-nxt_http_js_ext_host(njs_vm_t *vm, njs_object_prop_t *prop,
+nxt_http_js_ext_host(njs_vm_t *vm, njs_object_prop_t *prop, uint32_t atom_id,
njs_value_t *value, njs_value_t *setval, njs_value_t *retval)
{
nxt_http_request_t *r;
@@ -144,7 +148,8 @@ nxt_http_js_ext_remote_addr(njs_vm_t *vm, njs_object_p
static njs_int_t
nxt_http_js_ext_remote_addr(njs_vm_t *vm, njs_object_prop_t *prop,
- njs_value_t *value, njs_value_t *setval, njs_value_t *retval)
+ uint32_t atom_id, njs_value_t *value, njs_value_t *setval,
+ njs_value_t *retval)
{
nxt_http_request_t *r;
@@ -162,7 +167,8 @@ nxt_http_js_ext_get_args(njs_vm_t *vm, njs_object_prop
static njs_int_t
nxt_http_js_ext_get_args(njs_vm_t *vm, njs_object_prop_t *prop,
- njs_value_t *value, njs_value_t *setval, njs_value_t *retval)
+ uint32_t atom_id, njs_value_t *value, njs_value_t *setval,
+ njs_value_t *retval)
{
u_char *start;
njs_int_t ret;
@@ -193,7 +199,8 @@ nxt_http_js_ext_get_header(njs_vm_t *vm, njs_object_pr
static njs_int_t
nxt_http_js_ext_get_header(njs_vm_t *vm, njs_object_prop_t *prop,
- njs_value_t *value, njs_value_t *setval, njs_value_t *retval)
+ uint32_t atom_id, njs_value_t *value, njs_value_t *setval,
+ njs_value_t *retval)
{
njs_int_t rc;
njs_str_t key;
@@ -206,7 +213,7 @@ nxt_http_js_ext_get_header(njs_vm_t *vm, njs_object_pr
return NJS_DECLINED;
}
- rc = njs_vm_prop_name(vm, prop, &key);
+ rc = njs_vm_prop_name(vm, atom_id, &key);
if (rc != NJS_OK) {
njs_value_undefined_set(retval);
return NJS_DECLINED;
@@ -266,7 +273,8 @@ nxt_http_js_ext_get_cookie(njs_vm_t *vm, njs_object_pr
static njs_int_t
nxt_http_js_ext_get_cookie(njs_vm_t *vm, njs_object_prop_t *prop,
- njs_value_t *value, njs_value_t *setval, njs_value_t *retval)
+ uint32_t atom_id, njs_value_t *value, njs_value_t *setval,
+ njs_value_t *retval)
{
njs_int_t rc;
njs_str_t key;
@@ -280,7 +288,7 @@ nxt_http_js_ext_get_cookie(njs_vm_t *vm, njs_object_pr
return NJS_DECLINED;
}
- rc = njs_vm_prop_name(vm, prop, &key);
+ rc = njs_vm_prop_name(vm, atom_id, &key);
if (rc != NJS_OK) {
njs_value_undefined_set(retval);
return NJS_DECLINED;
@@ -355,7 +363,8 @@ nxt_http_js_ext_get_var(njs_vm_t *vm, njs_object_prop_
static njs_int_t
nxt_http_js_ext_get_var(njs_vm_t *vm, njs_object_prop_t *prop,
- njs_value_t *value, njs_value_t *setval, njs_value_t *retval)
+ uint32_t atom_id, njs_value_t *value, njs_value_t *setval,
+ njs_value_t *retval)
{
njs_int_t rc;
njs_str_t key;
@@ -369,7 +378,7 @@ nxt_http_js_ext_get_var(njs_vm_t *vm, njs_object_prop_
return NJS_DECLINED;
}
- rc = njs_vm_prop_name(vm, prop, &key);
+ rc = njs_vm_prop_name(vm, atom_id, &key);
if (rc != NJS_OK) {
njs_value_undefined_set(retval);
return NJS_DECLINED;