]> git.kaiwu.me - njs.git/commit
Parser: compact array literal elements
authorDmitry Volyntsev <xeioex@nginx.com>
Thu, 3 Sep 2026 00:39:41 +0000 (17:39 -0700)
committerDmitry Volyntsev <xeioexception@gmail.com>
Thu, 10 Sep 2026 03:11:04 +0000 (20:11 -0700)
commit019bfd90fcf25490b6522f0ce6bf415892f41646
tree8ed6ae50ca2bfc2533761969254a089e198c720b
parent3557c57ddef00b286f2147a21bc02c92135e7a02
Parser: compact array literal elements

The generic object-property lowering used six parser nodes and several
generator continuations for each array element.  Store array values and indexes
in compact records and emit a dedicated immediate-index initializer instead.

This also avoids interning numeric element indexes and generates elements in
source order with constant continuation depth.  Keep template backing arrays
flat because template concatenation requires contiguous storage.
src/njs_disassembler.c
src/njs_generator.c
src/njs_parser.c
src/njs_parser.h
src/njs_vmcode.c
src/njs_vmcode.h
src/test/njs_unit_test.c