]>
git.kaiwu.me - njs.git/log
Unknown [Tue, 26 Jun 2018 11:27:33 +0000 (18:27 +0700)]
Adding support for multiple arguments in console.log().
Valentin Bartenev [Fri, 29 Jun 2018 19:36:41 +0000 (22:36 +0300)]
String.padStart() and String.padEnd() methods.
Dmitry Volyntsev [Mon, 2 Jul 2018 13:10:52 +0000 (16:10 +0300)]
Fixed autocompletion for global objects.
This fixes #23 issue on GitHub.
Valentin Bartenev [Sun, 1 Jul 2018 07:01:53 +0000 (10:01 +0300)]
Added support of binary literals.
Valentin Bartenev [Sun, 1 Jul 2018 06:59:45 +0000 (09:59 +0300)]
Allowed uppercased O in octal literal values.
Valentin Bartenev [Sat, 30 Jun 2018 17:39:22 +0000 (20:39 +0300)]
Fixed error handling of setting non-numeric Array.length.
Dmitry Volyntsev [Thu, 28 Jun 2018 14:04:18 +0000 (17:04 +0300)]
Adding lib_test to generic test target.
Sergey Kandaurov [Thu, 28 Jun 2018 11:37:25 +0000 (14:37 +0300)]
Fixed building unit tests after nxt_length() expansion.
Valentin Bartenev [Tue, 26 Jun 2018 15:25:22 +0000 (18:25 +0300)]
Introduced nxt_length() macro.
Dmitry Volyntsev [Tue, 19 Jun 2018 11:07:22 +0000 (14:07 +0300)]
Version bump.
Dmitry Volyntsev [Tue, 19 Jun 2018 11:05:18 +0000 (14:05 +0300)]
Added tag 0.2.2 for changeset
4adbb035caa3
Dmitry Volyntsev [Tue, 19 Jun 2018 11:04:59 +0000 (14:04 +0300)]
Version 0.2.2.
Dmitry Volyntsev [Wed, 13 Jun 2018 16:38:47 +0000 (19:38 +0300)]
Fixed heap-buffer-overflow in crypto.createHmac().
Dmitry Volyntsev [Wed, 13 Jun 2018 11:15:43 +0000 (14:15 +0300)]
http internalRedirect() method.
Performs internal redirect to the specified uri.
req.internalRedirect(<uri>):
uri - string. If uri starts with '@' it is considered as a
named location.
Dmitry Volyntsev [Wed, 13 Jun 2018 11:11:58 +0000 (14:11 +0300)]
Merged HTTP Response and Reply into Request.
Splitting HTTP functionality into 3 objects Request, Response and Reply
introduced a lot of confusion as to which method should belong to which object.
New members of Request:
- req.status (res.status)
- req.parent (reply.parent)
- req.requestBody (req.body)
- req.responseBody (reply.body)
- req.headersIn (req.headers)
- req.headersOut (res.headers)
- req.sendHeader() (res.sendHeader())
- req.send() (res.send())
- req.finish() (res.finish())
- req.return() (res.return())
Deprecated members of Request:
- req.body (use req.requestBody or req.responseBody)
- req.headers (use req.headersIn or req.headersOut)
- req.response
Response is remained in place for backward compatibility and will be removed in
the following releases. Reply is replaced with Request in the req.subrequest()
callback. The deprecated properties will be removed in the following releases.
Dmitry Volyntsev [Tue, 5 Jun 2018 12:21:20 +0000 (15:21 +0300)]
Using njs_vm_error() where appropriate.
Dmitry Volyntsev [Thu, 31 May 2018 15:55:35 +0000 (18:55 +0300)]
Version bump.
Dmitry Volyntsev [Thu, 31 May 2018 15:52:45 +0000 (18:52 +0300)]
Added tag 0.2.1 for changeset
2a0a59728b5f
Dmitry Volyntsev [Thu, 31 May 2018 15:52:02 +0000 (18:52 +0300)]
Version 0.2.1.
Dmitry Volyntsev [Thu, 31 May 2018 13:34:36 +0000 (16:34 +0300)]
Renaming remnants of "nJScript" and "njscript" to "njs".
Dmitry Volyntsev [Wed, 30 May 2018 14:17:13 +0000 (17:17 +0300)]
Fixed the format specifier for ctx->status in debug log.
Dmitry Volyntsev [Wed, 30 May 2018 12:07:31 +0000 (15:07 +0300)]
Added the debug for the returned status code in js_content.
Dmitry Volyntsev [Wed, 30 May 2018 12:07:04 +0000 (15:07 +0300)]
Setting status code to 500 by default in js_content handler.
This helps to debug incorrectly written content handlers.
Dmitry Volyntsev [Mon, 28 May 2018 14:05:17 +0000 (17:05 +0300)]
Improved logging for js_set and js_content directives.
Previously, unknown functions were reported under the debug log level
which made the debugging of misconfigured directives harder.
Dmitry Volyntsev [Mon, 28 May 2018 14:05:16 +0000 (17:05 +0300)]
Fixed error logging in js_include.
Previously, ngx_log_error() was used instead of ngx_conf_log_error()
in js_include directive handler. Replacing it with ngx_conf_log_error()
to report the additional information about the location of the directive
in the configuration file.
Sergey Kandaurov [Thu, 24 May 2018 17:32:09 +0000 (20:32 +0300)]
Using getrandom() libc interface.
Available since Glibc 2.25, and FreeBSD 12.0.
Roman Arutyunyan [Mon, 14 May 2018 12:03:29 +0000 (15:03 +0300)]
Style.
Roman Arutyunyan [Tue, 17 Apr 2018 14:15:27 +0000 (17:15 +0300)]
Moved njs vm to the main configuration.
Previously, vm and proto objects were located in the location (server for
stream) configuration. Since there's only one instance of these objects, they
are moved to the main configuration.
Dmitry Volyntsev [Mon, 14 May 2018 11:10:23 +0000 (14:10 +0300)]
Removed the surplus arguments of exception macros.
Dmitry Volyntsev [Mon, 7 May 2018 12:49:02 +0000 (15:49 +0300)]
Removed njscript.c
The file was not deleted during renaming in
71455987b770 .
Dmitry Volyntsev [Fri, 4 May 2018 16:53:19 +0000 (19:53 +0300)]
Usage of njs_opaque_value_t is refactored in public API.
Dmitry Volyntsev [Fri, 4 May 2018 16:25:15 +0000 (19:25 +0300)]
Fixed crypto.createHmac() for keys with size >= alg size and < 64.
Dmitry Volyntsev [Thu, 3 May 2018 15:29:28 +0000 (18:29 +0300)]
Public header cleanup.
Dmitry Volyntsev [Thu, 3 May 2018 15:29:26 +0000 (18:29 +0300)]
Renamed njscript to njs.
njscript.c -> njs.c
njscript.h -> njs.h
njs.c -> njs_shell.c
Dmitry Volyntsev [Fri, 27 Apr 2018 11:21:39 +0000 (14:21 +0300)]
Added njs_core.h
Dmitry Volyntsev [Fri, 27 Apr 2018 11:19:45 +0000 (14:19 +0300)]
Fixed incorrect pointer check in njs_json_parse_string().
Found by Coverity (CID
1435161 ,
1435162 ).
The bug appeared in
29eee021e03e .
Dmitry Volyntsev [Thu, 26 Apr 2018 17:22:04 +0000 (20:22 +0300)]
Fixed njs_vm_external_bind().
Previously, it could result in misaligned values being returned.
Dmitry Volyntsev [Thu, 26 Apr 2018 17:21:46 +0000 (20:21 +0300)]
Fixed return value type of clearTimeout().
Previously, the function may return the "undefined" string.
Dmitry Volyntsev [Thu, 26 Apr 2018 17:21:44 +0000 (20:21 +0300)]
Fixed unit tests exit code.
Previously, 0 was returned regardless of failures.
Dmitry Volyntsev [Thu, 26 Apr 2018 16:58:26 +0000 (19:58 +0300)]
Fixed the writeable flag of Array.length property.
This fixes #6 issue on GitHub.
Dmitry Volyntsev [Thu, 26 Apr 2018 16:53:16 +0000 (19:53 +0300)]
Fixed handling of props in Object.getOwnPropertyDescriptor().
njs_property_query() is moved to njs_object.c without changes.
Dmitry Volyntsev [Thu, 26 Apr 2018 16:24:55 +0000 (19:24 +0300)]
Fixed handling of missing arg of Object.getOwnPropertyDescriptor().
This fixes #5 issue on GitHub.
Dmitry Volyntsev [Thu, 26 Apr 2018 16:20:04 +0000 (19:20 +0300)]
Improved variable names in Object.isPrototypeOf().
Dmitry Volyntsev [Thu, 26 Apr 2018 16:11:29 +0000 (19:11 +0300)]
Fixed return value type for boolean functions.
Previously, the functions returned "true" and "false" strings.
Dmitry Volyntsev [Thu, 26 Apr 2018 16:11:28 +0000 (19:11 +0300)]
Fixed handling of undefined arguments of functions.
This fixes #7 issue on GitHub.
Dmitry Volyntsev [Thu, 26 Apr 2018 16:11:28 +0000 (19:11 +0300)]
Adding const qualifiers to njs_number_dec_parse() and friends.
The functions which call njs_number_dec_parse() and friends are
changed accordingly.
Dmitry Volyntsev [Fri, 20 Apr 2018 13:42:12 +0000 (16:42 +0300)]
Added array length setter.
This fixes #1 issue on GitHub.
Dmitry Volyntsev [Fri, 20 Apr 2018 13:42:10 +0000 (16:42 +0300)]
Making native getters into universal property handlers.
Dmitry Volyntsev [Fri, 20 Apr 2018 13:42:10 +0000 (16:42 +0300)]
Fixed exception type for unsupported types in JSON.stringify().
Dmitry Volyntsev [Fri, 20 Apr 2018 13:42:08 +0000 (16:42 +0300)]
Fixed JSON.stringify() for arrays with empty cells.
Dmitry Volyntsev [Wed, 11 Apr 2018 14:31:53 +0000 (17:31 +0300)]
README: added github as a way to report issues and send patches.
Dmitry Volyntsev [Mon, 9 Apr 2018 18:02:11 +0000 (21:02 +0300)]
HTTP request body getter.
Returns the client request body.
Dmitry Volyntsev [Mon, 9 Apr 2018 18:02:10 +0000 (21:02 +0300)]
Added shortcuts for creating errors from the outside of a VM.
njs_vm_error(), njs_vm_memory_error().
Dmitry Volyntsev [Thu, 5 Apr 2018 16:06:35 +0000 (19:06 +0300)]
Fixed crypto update() method after digest() is called.
Dmitry Volyntsev [Thu, 5 Apr 2018 11:50:45 +0000 (14:50 +0300)]
Checking the number argument of HTTP return() method is valid.
Dmitry Volyntsev [Thu, 5 Apr 2018 11:50:45 +0000 (14:50 +0300)]
Added njs_value_is_valid_number().
Igor Sysoev [Wed, 4 Apr 2018 13:21:09 +0000 (16:21 +0300)]
Using correct code size addition.
Found by Clang Static Analyzer.
Dmitry Volyntsev [Tue, 3 Apr 2018 16:47:57 +0000 (19:47 +0300)]
Fixed surname spelling.
Igor Sysoev [Tue, 3 Apr 2018 14:55:56 +0000 (17:55 +0300)]
Exact values for default switch case expressions.
Igor Sysoev [Tue, 3 Apr 2018 14:55:23 +0000 (17:55 +0300)]
Style fixes.
Igor Sysoev [Tue, 3 Apr 2018 14:55:08 +0000 (17:55 +0300)]
Small optimizations.
Igor Sysoev [Tue, 3 Apr 2018 14:55:04 +0000 (17:55 +0300)]
The typeof operation did not work in functions.
Dmitry Volyntsev [Tue, 3 Apr 2018 11:51:22 +0000 (14:51 +0300)]
2018 year.
Dmitry Volyntsev [Tue, 3 Apr 2018 11:01:06 +0000 (14:01 +0300)]
Version bump.
Dmitry Volyntsev [Tue, 3 Apr 2018 10:58:34 +0000 (13:58 +0300)]
Added tag 0.2.0 for changeset
ddd1b2c9c64b
Dmitry Volyntsev [Tue, 3 Apr 2018 10:57:42 +0000 (13:57 +0300)]
Version 0.2.0.
Dmitry Volyntsev [Tue, 3 Apr 2018 10:56:54 +0000 (13:56 +0300)]
Added global njs object.
Roman Arutyunyan [Mon, 2 Apr 2018 15:01:34 +0000 (18:01 +0300)]
HTTP response return() method.
The method is a shortcut for finalizing an HTTP request and is similar to nginx
return directive.
res.return(code[, text]):
code - numeric status code.
text - response body or redirect URI (for 3xx responses).
Dmitry Volyntsev [Mon, 2 Apr 2018 14:12:52 +0000 (17:12 +0300)]
Added base64url encoding for crypto hash and HMAC digests.
Dmitry Volyntsev [Mon, 2 Apr 2018 11:12:00 +0000 (14:12 +0300)]
Fixed the version of njs.
The version in the code should be above the latest tag version.
Dmitry Volyntsev [Fri, 30 Mar 2018 17:11:10 +0000 (20:11 +0300)]
Removed excessive debug log for HTTP req.send().
Dmitry Volyntsev [Fri, 30 Mar 2018 15:50:38 +0000 (18:50 +0300)]
Nodejs style crypto methods.
var crypto = require('crypto')
var hash = crypto.createHash(<alg>)
available algorithms: 'md5', 'sha1', 'sha256'.
hash.update(<data>)
hash.digest([<encoding>])
available encodings: 'hex', 'base64'.
var hmac = crypto.createHmac(<alg>, <key>)
available algorithms: 'md5', 'sha1', 'sha256'.
hmac.update(<data>)
hmac.digest([<encoding>])
available encodings: 'hex', 'base64'.
Dmitry Volyntsev [Fri, 30 Mar 2018 12:46:40 +0000 (15:46 +0300)]
Renamed njs_value_is_true into njs_value_is_boolean.
Dmitry Volyntsev [Fri, 30 Mar 2018 12:46:39 +0000 (15:46 +0300)]
Byte string to hex, base64, base64url encodings.
Dmitry Volyntsev [Fri, 30 Mar 2018 12:46:38 +0000 (15:46 +0300)]
Added base64 encoding for byte strings.
Dmitry Volyntsev [Fri, 30 Mar 2018 12:46:38 +0000 (15:46 +0300)]
Added hex encoding for byte strings.
Dmitry Volyntsev [Thu, 29 Mar 2018 13:38:02 +0000 (16:38 +0300)]
Added additional log routines for different nginx log levels.
warn(), error().
Dmitry Volyntsev [Tue, 27 Mar 2018 16:11:04 +0000 (19:11 +0300)]
Short exception macros' names.
Dmitry Volyntsev [Fri, 23 Mar 2018 11:03:09 +0000 (14:03 +0300)]
Fixed njs_object_hash_create() for 0 elements.
Dmitry Volyntsev [Fri, 23 Mar 2018 11:02:22 +0000 (14:02 +0300)]
Fixed external_objects cloning.
Dmitry Volyntsev [Fri, 23 Mar 2018 10:53:27 +0000 (13:53 +0300)]
Fixed copying of a garbage value.
Found by Clang Static Analyzer.
Additionally, unnecessary body_arg.length zeroing is removed.
Dmitry Volyntsev [Thu, 22 Mar 2018 12:05:08 +0000 (15:05 +0300)]
Fixed njs_vm_t struct alignment on 32bits platforms.
Dmitry Volyntsev [Thu, 22 Mar 2018 12:05:06 +0000 (15:05 +0300)]
Fixed function frame alignment on 32bits platforms.
Dmitry Volyntsev [Wed, 21 Mar 2018 14:33:13 +0000 (17:33 +0300)]
http subrequest() method.
Creates an nginx's subrequest with the specified arguments and
registers a finalization callback.
req.subrequest(<uri>[, <options>[, <callback>]]):
uri - string.
options - string | object.
string value - uri arguments.
object value can contain:
args, body, method all are string values.
callback - function with the following argument:
reply - the result object with the following properties:
uri, method, status, contentType, contentLength,
headers, args, body, parent.
Dmitry Volyntsev [Wed, 21 Mar 2018 14:33:12 +0000 (17:33 +0300)]
http req.response() method.
Dmitry Volyntsev [Wed, 21 Mar 2018 14:33:12 +0000 (17:33 +0300)]
setTimeout() and clearTimeout() methods.
Public methods are introduced to create and post async events for
a VM instance. njs_vm_add_event() creates an async event for the VM
to wait for. njs_vm_post_event() notifies the VM that the event
occurred. If async events were added njs_vm_run() returns NJS_AGAIN
until there are no remaining pending events.
Dmitry Volyntsev [Thu, 15 Mar 2018 12:15:25 +0000 (15:15 +0300)]
Improved the exception handling in njs_vmcode_method_frame().
Dmitry Volyntsev [Thu, 15 Mar 2018 12:15:24 +0000 (15:15 +0300)]
Making njs_exception_error_create() thread-safe.
Dmitry Volyntsev [Thu, 15 Mar 2018 12:15:24 +0000 (15:15 +0300)]
Fixed a dead store.
Found by Clang Static Analyzer.
Dmitry Volyntsev [Thu, 15 Mar 2018 12:15:23 +0000 (15:15 +0300)]
Fixed RegExp trace handlers.
Found by Clang Static Analyzer.
Igor Sysoev [Wed, 14 Mar 2018 11:32:24 +0000 (14:32 +0300)]
Code simplification.
A dead assignment left after the changeset
6738ff52a2cb was found
by Clang Static Analyzer.
Dmitry Volyntsev [Tue, 13 Mar 2018 17:37:01 +0000 (20:37 +0300)]
Fixed 1 byte heap buffer overflow.
Igor Sysoev [Tue, 13 Mar 2018 16:51:25 +0000 (19:51 +0300)]
Removed unused null proto hash.
Dmitry Volyntsev [Tue, 13 Mar 2018 15:55:24 +0000 (18:55 +0300)]
Handling the NJS_NATIVE_GETTER properties in a single place.
Roman Arutyunyan [Wed, 28 Feb 2018 16:16:25 +0000 (19:16 +0300)]
Skip empty buffers in HTTP response send().
Such buffers lead to send errors and should never be sent.
Igor Sysoev [Wed, 28 Feb 2018 13:20:11 +0000 (16:20 +0300)]
Fixed String.prototype.toUTF8() function.
A byte string returned by String.prototype.toUTF8() had length equal
to its size so the string can be processed later as an ASCII string.
Dmitry Volyntsev [Tue, 27 Feb 2018 11:11:00 +0000 (14:11 +0300)]
Fixed the unit test's output format for a failed test.
Dmitry Volyntsev [Tue, 27 Feb 2018 11:10:36 +0000 (14:10 +0300)]
Fixed memory leak in CLI.
Dmitry Volyntsev [Tue, 20 Feb 2018 16:12:55 +0000 (19:12 +0300)]
Fixed the names of global functions in backtraces.
Previously, they were reported as 'native (native)'.
Dmitry Volyntsev [Tue, 20 Feb 2018 16:12:53 +0000 (19:12 +0300)]
Hiding the unit tests' output under the verbose mode.