]> git.kaiwu.me - njs.git/log
njs.git
6 years agoRemoved retval from njs_vmcode_t.
hongzhidao [Sun, 28 Jul 2019 07:28:03 +0000 (03:28 -0400)]
Removed retval from njs_vmcode_t.

6 years agoMoving ctor from njs_vmcode_t to corresponding structure.
hongzhidao [Sun, 28 Jul 2019 06:26:23 +0000 (02:26 -0400)]
Moving ctor from njs_vmcode_t to corresponding structure.

6 years agoStyle.
hongzhidao [Sat, 27 Jul 2019 03:01:38 +0000 (23:01 -0400)]
Style.

6 years agoRemoved dead store assignment in njs_vmcode_interpreter().
Dmitry Volyntsev [Mon, 29 Jul 2019 13:22:39 +0000 (16:22 +0300)]
Removed dead store assignment in njs_vmcode_interpreter().

6 years agoFixed undefined behaviour in left shift of negative numbers.
Valentin Bartenev [Sun, 28 Jul 2019 14:19:51 +0000 (17:19 +0300)]
Fixed undefined behaviour in left shift of negative numbers.

Now it's implementation defined.

6 years agoSlight improvements to njs_vmcode_interpreter().
Valentin Bartenev [Sun, 28 Jul 2019 12:00:40 +0000 (15:00 +0300)]
Slight improvements to njs_vmcode_interpreter().

No functional changes.

6 years agoAdded String.prototype.trimStrart() and String.prototype.trimEnd().
Valentin Bartenev [Sun, 28 Jul 2019 10:19:03 +0000 (13:19 +0300)]
Added String.prototype.trimStrart() and String.prototype.trimEnd().

6 years agoUpdated the list of space separators in String.prototype.trim().
Valentin Bartenev [Sun, 28 Jul 2019 10:17:13 +0000 (13:17 +0300)]
Updated the list of space separators in String.prototype.trim().

According to the specification it must include all Unicode code points listed
in the "Space_Separator" (Zs) category.

6 years agoFixed String.fromCodePoint(), broken after 0b82f1c9268c.
Valentin Bartenev [Sat, 27 Jul 2019 18:12:32 +0000 (21:12 +0300)]
Fixed String.fromCodePoint(), broken after 0b82f1c9268c.

As it turned out, fromCodePoint() has shared the same handler with
fromCharCode(), but according to the specification these functions
have different semantics.  As a result, before 0b82f1c9268c both
functions had behaviour of fromCodePoint(), while after the change
they had behaviour of fromCharCode().

So, the fix is to revert back the code used before the change,
but only for fromCodePoint().

6 years agoFixed String.toLowerCase() and String.toUpperCase().
Valentin Bartenev [Sat, 27 Jul 2019 14:03:02 +0000 (17:03 +0300)]
Fixed String.toLowerCase() and String.toUpperCase().

Previously these functions didn't took into account that the size of
a string may change during case transformation resulting in buffer
underflow or overflow.

6 years agoFixed String.fromCharCode() for code points > 65535 and NaN.
Valentin Bartenev [Sat, 27 Jul 2019 13:12:26 +0000 (16:12 +0300)]
Fixed String.fromCharCode() for code points > 65535 and NaN.

According to the specification the code units must be truncated to uint16.

6 years agoFixed Array.length setter.
Artem S. Povalyukhin [Fri, 26 Jul 2019 04:24:36 +0000 (07:24 +0300)]
Fixed Array.length setter.

This closes #26 and closes #27 issues on Github.

6 years agoRemoved function call flag.
hongzhidao [Sat, 27 Jul 2019 02:37:38 +0000 (22:37 -0400)]
Removed function call flag.

6 years agoUnicode case tables updated to version 12.1 (May 2019).
Valentin Bartenev [Sat, 27 Jul 2019 00:51:48 +0000 (03:51 +0300)]
Unicode case tables updated to version 12.1 (May 2019).

6 years agoStyle in nxt_unicode_upper_case.pl and nxt_unicode_upper_case.h.
Valentin Bartenev [Sat, 27 Jul 2019 00:51:48 +0000 (03:51 +0300)]
Style in nxt_unicode_upper_case.pl and nxt_unicode_upper_case.h.

6 years agoRefactored njs_vmcode_interpreter() for performance.
Dmitry Volyntsev [Fri, 26 Jul 2019 17:37:13 +0000 (20:37 +0300)]
Refactored njs_vmcode_interpreter() for performance.

    1) opcodes are rewritten using switch table.
    2) often-used opcodes are prioritized and
       inlined.
    3) similar opcodes are combined into unified
       handlers.
    4) njs_vmcode_interpreter() return NJS_OK on
       success. NJS_STOP return code is removed.

6 years agoOptimized nxt_dec_count() using bisection.
Valentin Bartenev [Thu, 25 Jul 2019 19:07:57 +0000 (22:07 +0300)]
Optimized nxt_dec_count() using bisection.

Previously, the number of comparisons required to count decimal numbers
was equal to decimal numbers count.

Now only 3 comparsions are needed for numbers with 1, 2, 3, 4, 5, or 6
decimal digits, and 4 comparsions are needed for numbers with 7, 8, 9,
and 10 decimal digits.

6 years agoFixed one byte overread in njs_string_to_c_string().
Valentin Bartenev [Thu, 25 Jul 2019 17:17:42 +0000 (20:17 +0300)]
Fixed one byte overread in njs_string_to_c_string().

Short strings are packed quite tight in njs_value_t, so there's
no one more byte to test.

    struct {
        njs_value_type_t              type:8;

        uint8_t                       size:4;
        uint8_t                       length:4;

        u_char                        start[14];
    } short_string;

With 14 bytes string this occupies 16 bytes, which is equal
to sizeof(njs_value_t).

6 years agoMoving njs.c functions into njs_vm.c and njs_value.c
Dmitry Volyntsev [Tue, 23 Jul 2019 16:42:25 +0000 (19:42 +0300)]
Moving njs.c functions into njs_vm.c and njs_value.c

NO functional changes.

6 years agoSplitting vmcode functionality from njs_vm.c into njs_vmcode.c
Dmitry Volyntsev [Tue, 23 Jul 2019 14:53:00 +0000 (17:53 +0300)]
Splitting vmcode functionality from njs_vm.c into njs_vmcode.c

No functional changes.

6 years agoFixed property setter lookup.
Artem S. Povalyukhin [Sat, 20 Jul 2019 10:31:59 +0000 (13:31 +0300)]
Fixed property setter lookup.

6 years agoAdded Object shorthand methods and computed property names.
hongzhidao [Wed, 3 Jul 2019 02:24:11 +0000 (22:24 -0400)]
Added Object shorthand methods and computed property names.

This closes #182 issue on Github.

6 years agoInlining call to hash function in njs_property_query().
Dmitry Volyntsev [Fri, 19 Jul 2019 20:27:53 +0000 (23:27 +0300)]
Inlining call to hash function in njs_property_query().

6 years agoAdded njs_set_int32() and njs_set_uint32() intrinsics.
Dmitry Volyntsev [Fri, 19 Jul 2019 19:05:34 +0000 (22:05 +0300)]
Added njs_set_int32() and njs_set_uint32() intrinsics.

6 years agoRefactored working with function calls.
hongzhidao [Wed, 17 Jul 2019 02:44:16 +0000 (22:44 -0400)]
Refactored working with function calls.

    1) njs_continuation_t is removed (appropriate functions
       are rewritten).
    2) all function calls are made syncronous.

    This closes #190 issue on Github.

6 years agoRefactored working with non-primitive types.
Dmitry Volyntsev [Fri, 5 Jul 2019 18:45:28 +0000 (21:45 +0300)]
Refactored working with non-primitive types.

Traps mechanism is remove.

6 years agoFixed njs_string_slice().
Dmitry Volyntsev [Thu, 18 Jul 2019 18:12:25 +0000 (21:12 +0300)]
Fixed njs_string_slice().

Previously, njs_string_slice() when slice->start == slice->string_length
may call njs_string_offset() with invalid index.

This might result in invalid memory access in njs_string_offset()
for native functions which use njs_string_slice():

    String.prototype.substring()

6 years agoFixed typo in njs_parser_string_create() introduced in f1a70d67646d.
Alexander Borisov [Thu, 18 Jul 2019 13:18:19 +0000 (16:18 +0300)]
Fixed typo in njs_parser_string_create() introduced in f1a70d67646d.

6 years agoAdded support '$&' substitution in String.prototype.replace().
Alexander Borisov [Wed, 17 Jul 2019 11:24:00 +0000 (14:24 +0300)]
Added support '$&' substitution in String.prototype.replace().

6 years agoUsing hand-written nxt_explicit_memzero() with memory-sanitizer.
Dmitry Volyntsev [Wed, 17 Jul 2019 13:28:30 +0000 (16:28 +0300)]
Using hand-written nxt_explicit_memzero() with memory-sanitizer.

To avoid false-positive results.

6 years agoFixed String.prototype.substring() with empty substring.
Alexander Borisov [Tue, 16 Jul 2019 14:32:12 +0000 (17:32 +0300)]
Fixed String.prototype.substring() with empty substring.

6 years agoFixed parsing of "$&" substitutions in String.prototype.replace().
Alexander Borisov [Tue, 16 Jul 2019 14:32:11 +0000 (17:32 +0300)]
Fixed parsing of "$&" substitutions in String.prototype.replace().

6 years agoFixed String.prototype.match() for byte strings with regex arg.
Alexander Borisov [Tue, 16 Jul 2019 14:32:11 +0000 (17:32 +0300)]
Fixed String.prototype.match() for byte strings with regex arg.

6 years agoFixed String.prototype.replace() for byte strings with regex arg.
Alexander Borisov [Tue, 16 Jul 2019 14:32:10 +0000 (17:32 +0300)]
Fixed String.prototype.replace() for byte strings with regex arg.

6 years agoAvoiding aligned attribute detection skip on ppc64le platforms.
Dmitry Volyntsev [Tue, 16 Jul 2019 09:57:29 +0000 (12:57 +0300)]
Avoiding aligned attribute detection skip on ppc64le platforms.

6 years agoUnifying makefile target names.
Dmitry Volyntsev [Mon, 15 Jul 2019 16:20:55 +0000 (19:20 +0300)]
Unifying makefile target names.

6 years agoAdded unit_test target.
Dmitry Volyntsev [Mon, 15 Jul 2019 15:46:31 +0000 (18:46 +0300)]
Added unit_test target.

6 years agoAdded memory-sanitizer support.
Dmitry Volyntsev [Mon, 15 Jul 2019 14:46:37 +0000 (17:46 +0300)]
Added memory-sanitizer support.

6 years agoFixed incorrect optimization in njs_string_to_c_string().
Alexander Borisov [Mon, 15 Jul 2019 14:45:23 +0000 (17:45 +0300)]
Fixed incorrect optimization in njs_string_to_c_string().

6 years agoTests: reporting unit tests statistics.
Dmitry Volyntsev [Mon, 15 Jul 2019 13:20:41 +0000 (16:20 +0300)]
Tests: reporting unit tests statistics.

6 years agoTests: passing unit tests options in a struct.
Dmitry Volyntsev [Mon, 15 Jul 2019 12:54:41 +0000 (15:54 +0300)]
Tests: passing unit tests options in a struct.

6 years agoImproved typeof for internal types.
Dmitry Volyntsev [Fri, 12 Jul 2019 20:30:22 +0000 (23:30 +0300)]
Improved typeof for internal types.

6 years agoAllowing to configure ar binary.
Dmitry Volyntsev [Fri, 12 Jul 2019 18:18:30 +0000 (21:18 +0300)]
Allowing to configure ar binary.

6 years agoFixed Array.prototype.lastIndexOf() with undefined arguments.
Dmitry Volyntsev [Thu, 11 Jul 2019 18:29:59 +0000 (21:29 +0300)]
Fixed Array.prototype.lastIndexOf() with undefined arguments.

6 years agoOptimized inlining of njs_values_strict_equal().
Valentin Bartenev [Thu, 11 Jul 2019 13:10:33 +0000 (16:10 +0300)]
Optimized inlining of njs_values_strict_equal().

This function is often called inside loops and basically it does only a few cmp
instructions that can be inlined.

The more complex part related to comparing of two strings is functionally
identical to njs_string_eq(), but contains an optimization that avoids memcmp()
when strings have different lengths.  This optimization has been merged into
njs_string_eq().

No functional changes.

6 years agoFixed used of uninitialized memory in String.prototype.match().
Alexander Borisov [Thu, 11 Jul 2019 12:42:33 +0000 (15:42 +0300)]
Fixed used of uninitialized memory in String.prototype.match().

6 years agoFixed Object.values() and Object.entries() for shared objects.
Dmitry Volyntsev [Thu, 11 Jul 2019 12:33:40 +0000 (15:33 +0300)]
Fixed Object.values() and Object.entries() for shared objects.

Previously, there was a mismatch between
njs_object_enumerate_object_length() and
njs_object_own_enumerate_object() in the way they enumerated
values.

This closes #194, #195, #196 issues on Github.

6 years agoFixed UTF-8 character escaping.
Alexander Borisov [Wed, 10 Jul 2019 18:54:33 +0000 (21:54 +0300)]
Fixed UTF-8 character escaping.

6 years agoAdded UTF8 validation for string literals.
Alexander Borisov [Wed, 10 Jul 2019 11:20:53 +0000 (14:20 +0300)]
Added UTF8 validation for string literals.

All bad UTF-8 characters are replaced by '\uFFFD'
(REPLACEMENT CHARACTER).

6 years agoUsing njs_set_regexp() and njs_regexp() where approprite.
Dmitry Volyntsev [Mon, 8 Jul 2019 14:51:58 +0000 (17:51 +0300)]
Using njs_set_regexp() and njs_regexp() where approprite.

6 years agoUsing njs_function() and njs_set_function() where applicable.
Dmitry Volyntsev [Mon, 8 Jul 2019 14:51:35 +0000 (17:51 +0300)]
Using njs_function() and njs_set_function() where applicable.

6 years agoUsing njs_object() macro where applicable.
Dmitry Volyntsev [Mon, 8 Jul 2019 14:49:43 +0000 (17:49 +0300)]
Using njs_object() macro where applicable.

6 years agoUsing njs_number() and njs_set_number() everywhere.
Dmitry Volyntsev [Mon, 8 Jul 2019 14:49:14 +0000 (17:49 +0300)]
Using njs_number() and njs_set_number() everywhere.

6 years agoAdded njs_date() and njs_set_date() macros.
Dmitry Volyntsev [Mon, 8 Jul 2019 12:31:39 +0000 (15:31 +0300)]
Added njs_date() and njs_set_date() macros.

6 years agoMoving value methods to njs_value.c.
hongzhidao [Sat, 6 Jul 2019 14:27:14 +0000 (10:27 -0400)]
Moving value methods to njs_value.c.

6 years agoSplitting njs_vm_value_to_ext_string().
hongzhidao [Wed, 3 Jul 2019 02:18:56 +0000 (22:18 -0400)]
Splitting njs_vm_value_to_ext_string().

Into njs_vm_value_to_string() and njs_vm_backtrace_dump().

6 years agoIntroduced njs_function_lambda_alloc().
hongzhidao [Wed, 3 Jul 2019 02:10:19 +0000 (22:10 -0400)]
Introduced njs_function_lambda_alloc().

6 years agoFixed heap-buffer-overflow while importing module.
Dmitry Volyntsev [Wed, 3 Jul 2019 15:30:59 +0000 (18:30 +0300)]
Fixed heap-buffer-overflow while importing module.

This closes #187 issue on Github.

6 years agoFixed Array.prototype.slice() for primitive types.
Dmitry Volyntsev [Wed, 3 Jul 2019 14:16:40 +0000 (17:16 +0300)]
Fixed Array.prototype.slice() for primitive types.

This closes #188 issue on Github.

6 years agoRefactored functions inlining.
Dmitry Volyntsev [Tue, 2 Jul 2019 18:37:10 +0000 (21:37 +0300)]
Refactored functions inlining.

Allowing compiler to decide whether inline a function or not by
removing most of nxt_noinline prefixes.

Inlining simple functions.

Splitting public function getters from njs internal value getters.

6 years agoFixed String.prototype.replace() for '$0' replacement string.
Alexander Borisov [Tue, 2 Jul 2019 15:14:47 +0000 (18:14 +0300)]
Fixed String.prototype.replace() for '$0' replacement string.

For example:
'0'.replace(/^/g, "$0")

6 years agoReduced nesting level of branches in njs_string_replace_regexp().
Valentin Bartenev [Mon, 1 Jul 2019 19:44:14 +0000 (22:44 +0300)]
Reduced nesting level of branches in njs_string_replace_regexp().

No functional changes.

6 years agoCrypto: zeroing the context after usage.
David Carlier [Tue, 18 Jun 2019 15:02:57 +0000 (15:02 +0000)]
Crypto: zeroing the context after usage.

Regardless of the compiler optimisation.

This closes #181 pull request.

6 years agoAdded support for functions in regexp with global match.
Alexander Borisov [Mon, 1 Jul 2019 16:57:34 +0000 (19:57 +0300)]
Added support for functions in regexp with global match.

This closes #183 issue on GitHub.

6 years agoFixed using of uninitialized value in String.prototype.padStart().
Dmitry Volyntsev [Mon, 1 Jul 2019 16:24:10 +0000 (19:24 +0300)]
Fixed using of uninitialized value in String.prototype.padStart().

6 years agoRemoved unused nxt_lvlhsh_ctx_t structure.
Valentin Bartenev [Thu, 27 Jun 2019 15:55:34 +0000 (18:55 +0300)]
Removed unused nxt_lvlhsh_ctx_t structure.

6 years agoRemoved unused nalloc parameter from lvlhsh allocation functions.
Valentin Bartenev [Thu, 27 Jun 2019 15:55:34 +0000 (18:55 +0300)]
Removed unused nalloc parameter from lvlhsh allocation functions.

6 years agoVersion bump.
Valentin Bartenev [Thu, 27 Jun 2019 15:54:21 +0000 (18:54 +0300)]
Version bump.

6 years agoAdded tag 0.3.3 for changeset c65a4be9867d
Dmitry Volyntsev [Tue, 25 Jun 2019 11:44:55 +0000 (14:44 +0300)]
Added tag 0.3.3 for changeset c65a4be9867d

6 years agoVersion 0.3.3. 0.3.3
Dmitry Volyntsev [Tue, 25 Jun 2019 11:43:56 +0000 (14:43 +0300)]
Version 0.3.3.

6 years agoAdded signed zero support in njs.dump().
Artem S. Povalyukhin [Mon, 24 Jun 2019 21:06:12 +0000 (00:06 +0300)]
Added signed zero support in njs.dump().

This closes #184 issue on Github.

6 years agoFixed parseInt('-0').
Artem S. Povalyukhin [Sat, 22 Jun 2019 20:35:52 +0000 (23:35 +0300)]
Fixed parseInt('-0').

6 years agoFixed use-of-uninitialized-value in njs_string_replace_join().
Dmitry Volyntsev [Thu, 20 Jun 2019 12:20:34 +0000 (15:20 +0300)]
Fixed use-of-uninitialized-value in njs_string_replace_join().

6 years agoGetting rid of lexer property and property_token.
hongzhidao [Thu, 20 Jun 2019 11:36:57 +0000 (07:36 -0400)]
Getting rid of lexer property and property_token.

6 years agoAdded property getter/setter support in Object.defineProperty().
hongzhidao [Tue, 11 Jun 2019 02:23:56 +0000 (22:23 -0400)]
Added property getter/setter support in Object.defineProperty().

In collaboration with Dmitry Volyntsev.

6 years agoStyle.
Dmitry Volyntsev [Tue, 18 Jun 2019 17:27:39 +0000 (20:27 +0300)]
Style.

6 years agoChanged njs_object_prop_define() prototype.
Dmitry Volyntsev [Tue, 18 Jun 2019 17:27:25 +0000 (20:27 +0300)]
Changed njs_object_prop_define() prototype.

6 years agoAdded process global object.
Dmitry Volyntsev [Tue, 18 Jun 2019 14:57:38 +0000 (17:57 +0300)]
Added process global object.

process object properties:
    argv - an array containing the command line arguments
    env - an object containing the user environment
    pid - process PID
    ppid - process parent PID

This closes #84 issue on Github.

6 years agoFixed uninitialized field in njs_vm_value_dump().
Dmitry Volyntsev [Tue, 18 Jun 2019 14:57:22 +0000 (17:57 +0300)]
Fixed uninitialized field in njs_vm_value_dump().

MemorySanitizer: use-of-uninitialized-value in
njs_json_push_stringify_state().

6 years agoFixed njs_run expect tests.
Dmitry Volyntsev [Fri, 14 Jun 2019 18:20:25 +0000 (21:20 +0300)]
Fixed njs_run expect tests.

Using exec instead of spawn to get the njs output
synchronously.

6 years agoImproved njs_object_own_enumerate().
Dmitry Volyntsev [Fri, 14 Jun 2019 18:19:52 +0000 (21:19 +0300)]
Improved njs_object_own_enumerate().

Enumerating enumerable shared_hash entries even if all is false.

6 years agoFixed truth value of JSON numbers in JSON.parse().
Dmitry Volyntsev [Tue, 11 Jun 2019 14:34:59 +0000 (17:34 +0300)]
Fixed truth value of JSON numbers in JSON.parse().

This closes #180 issue on Github.

6 years agoStyle.
hongzhidao [Tue, 11 Jun 2019 01:40:11 +0000 (21:40 -0400)]
Style.

6 years agoMoving object property methods to njs_object_property.c.
hongzhidao [Tue, 11 Jun 2019 01:30:29 +0000 (21:30 -0400)]
Moving object property methods to njs_object_property.c.

6 years agoImproved object property attributes.
hongzhidao [Wed, 5 Jun 2019 14:13:47 +0000 (22:13 +0800)]
Improved object property attributes.

6 years agoFixed Object.defineProperty() for shared descriptors.
Dmitry Volyntsev [Tue, 4 Jun 2019 16:38:50 +0000 (19:38 +0300)]
Fixed Object.defineProperty() for shared descriptors.

This closes #172 issue on Github.

6 years agoHTTP: support for null as a second argument of r.subrequest().
Dmitry Volyntsev [Tue, 4 Jun 2019 13:07:14 +0000 (16:07 +0300)]
HTTP: support for null as a second argument of r.subrequest().

This closes #173 issue on Github.

6 years agoHandling zero byte characters inside RegExp pattern strings.
Dmitry Volyntsev [Tue, 4 Jun 2019 09:45:06 +0000 (12:45 +0300)]
Handling zero byte characters inside RegExp pattern strings.

Fixed heap-buffer-overflow in RegExp.prototype.source.
This closes #168 issue on Github.

6 years agoEscaping lone closing square brackets in RegExp() constructor.
Dmitry Volyntsev [Thu, 30 May 2019 17:05:14 +0000 (20:05 +0300)]
Escaping lone closing square brackets in RegExp() constructor.

This correctly fixes #157. As in 88263426432d this was done only
for regexp literals.

6 years agoFixed String.prototype.toBytes() for ASCII strings.
Dmitry Volyntsev [Fri, 31 May 2019 12:11:39 +0000 (15:11 +0300)]
Fixed String.prototype.toBytes() for ASCII strings.

This closes #155 issue on Github.

6 years agoFixed heap-buffer-overflow in toUpperCase() and toLowerCase().
Dmitry Volyntsev [Thu, 30 May 2019 13:46:26 +0000 (16:46 +0300)]
Fixed heap-buffer-overflow in toUpperCase() and toLowerCase().

In String.prototype. This closes #162 issue on Github.

6 years agoMoving test added in ab5d059e4ef8 to a conditional list.
Dmitry Volyntsev [Thu, 30 May 2019 13:16:22 +0000 (16:16 +0300)]
Moving test added in ab5d059e4ef8 to a conditional list.

As it can fail on older libpcre versions (pcre-7.8 for example).

6 years agoRemoving possible ignored regexp compilation error.
Dmitry Volyntsev [Thu, 30 May 2019 11:17:59 +0000 (14:17 +0300)]
Removing possible ignored regexp compilation error.

6 years agoImproved processing of invalid surrogate pairs in JSON strings.
Alexander Borisov [Tue, 28 May 2019 17:51:24 +0000 (20:51 +0300)]
Improved processing of invalid surrogate pairs in JSON strings.

Previously, an exception was thrown on invalid surrogate pairs.
Now, all such pairs are converted to replacement character.

6 years agoImproved processing of invalid surrogate pairs in strings.
Alexander Borisov [Tue, 28 May 2019 17:49:58 +0000 (20:49 +0300)]
Improved processing of invalid surrogate pairs in strings.

Previously, an exception was thrown on invalid surrogate pairs.
Now, all such pairs are converted to replacement character.

This closes #170 issue on GitHub.

6 years agoAdded generic implementation of Array.prototype.fill().
Alexander Borisov [Thu, 23 May 2019 15:03:46 +0000 (18:03 +0300)]
Added generic implementation of Array.prototype.fill().

According to ES6: 22.1.3.6.

This closes #72 issue on GitHub.

6 years agoStream: fixed processing empty output chain in body filter.
Dmitry Volyntsev [Tue, 28 May 2019 14:04:40 +0000 (17:04 +0300)]
Stream: fixed processing empty output chain in body filter.

This closes #1735 on trac.

6 years agoHTTP: improved working with unknown methods in subrequest().
Dmitry Volyntsev [Tue, 28 May 2019 14:04:33 +0000 (17:04 +0300)]
HTTP: improved working with unknown methods in subrequest().

6 years agoHTTP: improved getting of special response headers.
Dmitry Volyntsev [Tue, 28 May 2019 12:57:35 +0000 (15:57 +0300)]
HTTP: improved getting of special response headers.

6 years agoAdded njs_value_property_set() function.
Alexander Borisov [Thu, 23 May 2019 14:39:22 +0000 (17:39 +0300)]
Added njs_value_property_set() function.