]>
git.kaiwu.me - njs.git/log
hongzhidao [Sat, 9 Feb 2019 08:26:08 +0000 (16:26 +0800)]
Improved njs_parser_property_token().
Dmitry Volyntsev [Fri, 8 Feb 2019 17:22:28 +0000 (20:22 +0300)]
Removing unused argument of njs_parser_property_name().
Dmitry Volyntsev [Fri, 8 Feb 2019 17:14:55 +0000 (20:14 +0300)]
Shell: avoid reporting filenames in exception is quiet mode.
Dmitry Volyntsev [Fri, 8 Feb 2019 17:06:05 +0000 (20:06 +0300)]
Updated list of reserved keywords.
Dmitry Volyntsev [Thu, 7 Feb 2019 17:05:16 +0000 (20:05 +0300)]
HTTP: skipping deleted elements while iterating over headers.
Dmitry Volyntsev [Thu, 7 Feb 2019 17:05:14 +0000 (20:05 +0300)]
HTTP: added support for delete operation in r.headersOut.
This closes #64 issue on Github.
Dmitry Volyntsev [Wed, 6 Feb 2019 16:52:54 +0000 (19:52 +0300)]
HTTP: improved setting empty headers.
Treating empty value as deleting.
Dmitry Volyntsev [Wed, 6 Feb 2019 16:22:18 +0000 (19:22 +0300)]
HTTP: improved setting of special response headers.
Dmitry Volyntsev [Wed, 6 Feb 2019 12:50:03 +0000 (15:50 +0300)]
Modules: reporting njs filenames in exceptions.
hongzhidao [Wed, 6 Feb 2019 04:27:41 +0000 (12:27 +0800)]
Shell: improved filenames reporting in exceptions.
Dmitry Volyntsev [Tue, 5 Feb 2019 16:27:24 +0000 (19:27 +0300)]
HTTP: setting default content type in sendHeader().
hongzhidao [Mon, 4 Feb 2019 17:07:45 +0000 (01:07 +0800)]
Reporting filename in runtime errors.
hongzhidao [Mon, 4 Feb 2019 16:53:18 +0000 (00:53 +0800)]
Reporting filename in generator errors.
hongzhidao [Mon, 4 Feb 2019 15:00:25 +0000 (23:00 +0800)]
Using nxt_sprintf() instead of sprintf() in backtraces.
Sergey Kandaurov [Mon, 4 Feb 2019 13:30:27 +0000 (16:30 +0300)]
Removed a surplus argument to the parser exception macro.
While here, fixed nearby style.
Dmitry Volyntsev [Mon, 4 Feb 2019 08:45:24 +0000 (11:45 +0300)]
Fixed building with Apple clang.
This closes #89 issue on Github.
hongzhidao [Sun, 3 Feb 2019 22:22:51 +0000 (06:22 +0800)]
Renaming njs_exception_error_create() with njs_error_fmt_new().
hongzhidao [Sun, 3 Feb 2019 21:33:19 +0000 (05:33 +0800)]
Reporting filename in parser errors.
hongzhidao [Sun, 3 Feb 2019 21:26:42 +0000 (05:26 +0800)]
Improved exception creation.
hongzhidao [Sat, 2 Feb 2019 08:01:39 +0000 (16:01 +0800)]
Introduced njs_vm_invoke().
hongzhidao [Sat, 2 Feb 2019 06:21:26 +0000 (14:21 +0800)]
Improved njs_parser_statement_chain().
Dmitry Volyntsev [Fri, 1 Feb 2019 15:26:18 +0000 (18:26 +0300)]
Improved parsing object literals.
Dmitry Volyntsev [Fri, 1 Feb 2019 15:09:02 +0000 (18:09 +0300)]
Fixed parsing object literals.
hongzhidao [Fri, 1 Feb 2019 11:48:30 +0000 (19:48 +0800)]
Simplified parser builtin function.
hongzhidao [Tue, 29 Jan 2019 08:30:13 +0000 (16:30 +0800)]
Simplified parser tree building.
Dmitry Volyntsev [Wed, 30 Jan 2019 15:50:33 +0000 (18:50 +0300)]
Unifying quotes usage in exceptions.
Dmitry Volyntsev [Wed, 30 Jan 2019 15:49:33 +0000 (18:49 +0300)]
Replacing vsprintf with nxt_vsprintf in exceptions.
Dmitry Volyntsev [Wed, 30 Jan 2019 15:49:16 +0000 (18:49 +0300)]
Fixed SyntaxError message for unterminated regexp token.
Dmitry Volyntsev [Wed, 30 Jan 2019 15:48:23 +0000 (18:48 +0300)]
Fixed lexer->text state for the last token.
Dmitry Volyntsev [Wed, 30 Jan 2019 15:47:59 +0000 (18:47 +0300)]
Imported nxt_sprintf.c.
hongzhidao [Mon, 28 Jan 2019 17:30:04 +0000 (01:30 +0800)]
Style.
Dmitry Volyntsev [Tue, 29 Jan 2019 15:15:03 +0000 (18:15 +0300)]
Fixed parsing multiline comments.
Dmitry Volyntsev [Tue, 29 Jan 2019 13:49:36 +0000 (16:49 +0300)]
Added support for multiline tests.
hongzhidao [Sat, 26 Jan 2019 21:21:32 +0000 (05:21 +0800)]
Improved next index allocation.
Dmitry Volyntsev [Mon, 28 Jan 2019 18:18:43 +0000 (21:18 +0300)]
Renaming nxt_mem_cache_pool_t related structures and fields.
nxt_mem_cache_pool_t -> nxt_mp_t.
nxt_mem_cache_* -> nxt_mp_*.
vm->mem_cache_pool -> vm->mem_pool.
Dmitry Volyntsev [Mon, 28 Jan 2019 13:17:42 +0000 (16:17 +0300)]
HTTP: removed response object deprecated in 0.2.2.
hongzhidao [Wed, 23 Jan 2019 16:48:19 +0000 (19:48 +0300)]
Simplified function parsing.
Avoid creating phony parser structures while parsing
function bodies.
Dmitry Volyntsev [Tue, 22 Jan 2019 15:08:47 +0000 (18:08 +0300)]
Improved setting vm->trace.
Dmitry Volyntsev [Fri, 18 Jan 2019 12:28:17 +0000 (15:28 +0300)]
Removed unused vm->scratch field.
Dmitry Volyntsev [Fri, 18 Jan 2019 11:50:50 +0000 (14:50 +0300)]
Style.
Dmitry Volyntsev [Thu, 17 Jan 2019 14:01:22 +0000 (17:01 +0300)]
Setting exit index for try_return instruction is simplified.
Dmitry Volyntsev [Thu, 17 Jan 2019 13:12:46 +0000 (16:12 +0300)]
Fixed comments "try" instructions.
Dmitry Volyntsev [Thu, 17 Jan 2019 13:11:52 +0000 (16:11 +0300)]
Fixed try_break instruction.
Dmitry Volyntsev [Wed, 16 Jan 2019 15:58:23 +0000 (18:58 +0300)]
Making generator block for block statements.
Dmitry Volyntsev [Wed, 16 Jan 2019 15:55:16 +0000 (18:55 +0300)]
Fixed heap-use-after-free introduced in
045ba10db769 .
hongzhidao [Fri, 11 Jan 2019 11:20:38 +0000 (19:20 +0800)]
Improved an argument name of njs_function_frame().
hongzhidao [Fri, 11 Jan 2019 10:57:57 +0000 (18:57 +0800)]
Refactored njs_function_lambda_call().
Dmitry Volyntsev [Thu, 10 Jan 2019 17:18:27 +0000 (20:18 +0300)]
Making njs_function_frame_alloc() static.
hongzhidao [Tue, 8 Jan 2019 00:41:40 +0000 (08:41 +0800)]
Introduced njs_function_frame().
hongzhidao [Mon, 7 Jan 2019 23:04:24 +0000 (07:04 +0800)]
Renamed functions related to lambda.
hongzhidao [Mon, 7 Jan 2019 22:14:36 +0000 (06:14 +0800)]
Refactored out njs_function_apply().
As a variant of njs_function_activate().
hongzhidao [Mon, 7 Jan 2019 22:14:36 +0000 (06:14 +0800)]
Fixed njs_vm_call().
hongzhidao [Mon, 7 Jan 2019 21:02:20 +0000 (05:02 +0800)]
Simplified njs_vm_call().
hongzhidao [Mon, 7 Jan 2019 20:11:51 +0000 (04:11 +0800)]
Making njs_function_activate() more generic.
Dmitry Volyntsev [Thu, 10 Jan 2019 14:30:30 +0000 (17:30 +0300)]
Inlined njs_function_previous_frame().
hongzhidao [Mon, 7 Jan 2019 20:04:02 +0000 (04:04 +0800)]
Moving njs_normalize_args() into njs_function_native_call().
hongzhidao [Mon, 7 Jan 2019 14:14:17 +0000 (22:14 +0800)]
Introduced njs_function_native_call().
hongzhidao [Mon, 7 Jan 2019 09:42:00 +0000 (17:42 +0800)]
Refactored njs_function_frame_free.
hongzhidao [Mon, 7 Jan 2019 09:40:48 +0000 (17:40 +0800)]
Fixed vmcode function call.
This closes #82 issue on Github.
Dmitry Volyntsev [Wed, 9 Jan 2019 15:21:31 +0000 (18:21 +0300)]
2019 year.
hongzhidao [Sat, 29 Dec 2018 14:35:31 +0000 (22:35 +0800)]
Improved function naming in variable code.
Renaming:
1) njs_variable_get() to njs_variable_resolve().
2) njs_variable_find() to njs_variable_reference_resolve().
To better reflect what they do.
hongzhidao [Sat, 29 Dec 2018 08:03:57 +0000 (16:03 +0800)]
Improved working with scope indexes of variables.
Dmitry Volyntsev [Sat, 29 Dec 2018 12:16:59 +0000 (15:16 +0300)]
Removed dead code in njs_set_timer().
Found by Coverity (CID
1442096 ).
hongzhidao [Fri, 28 Dec 2018 17:43:44 +0000 (01:43 +0800)]
Removed duplicate njs_variable_reference() declaration.
hongzhidao [Fri, 28 Dec 2018 17:43:44 +0000 (01:43 +0800)]
Variables handling during code generation is improved.
All the necessary fields related to a variable are moved into
njs_variable_reference_t.
hongzhidao [Fri, 28 Dec 2018 17:43:44 +0000 (01:43 +0800)]
Improved njs_generate_typeof_operation().
njs_variable_typeof() cannot fail.
Dmitry Volyntsev [Fri, 28 Dec 2018 16:36:24 +0000 (19:36 +0300)]
Interactive shell: immediate events support.
This closes #66 issue on Github.
Dmitry Volyntsev [Fri, 28 Dec 2018 12:39:59 +0000 (15:39 +0300)]
Fixed grammar in njs_vm.h.
Dmitry Volyntsev [Fri, 28 Dec 2018 09:44:56 +0000 (12:44 +0300)]
Added setImmediate().
Dmitry Volyntsev [Fri, 28 Dec 2018 09:43:36 +0000 (12:43 +0300)]
Interactive shell: initial support of posted events.
Dmitry Volyntsev [Fri, 28 Dec 2018 09:43:22 +0000 (12:43 +0300)]
njs_vm_pending() is split in njs_vm_posted() and njs_vm_waiting().
There are two types of events in njs:
Posted - are ready to be executed by njs_vm_run().
Waiting - await external async events.
Dmitry Volyntsev [Fri, 28 Dec 2018 09:42:29 +0000 (12:42 +0300)]
njs_vm_run() is rectified.
Previously, both njs_vm_call() and njs_vm_run() can be used to run njs
code. njs_vm_call() was used to invoke a single function, while
njs_vm_run() was used to run global code as well to process the events.
At first invocation njs_vm_run() executed global code, all the next
invocations it processed pending events.
The solution is splitting njs_vm_run() into two functions. One for
events processing and another for running the global code.
Dmitry Volyntsev [Thu, 27 Dec 2018 07:35:07 +0000 (10:35 +0300)]
Improved naming in njs_variables_scope_resolve().
Thanks to 洪志道 (Hong Zhi Dao).
Dmitry Volyntsev [Thu, 27 Dec 2018 07:27:46 +0000 (10:27 +0300)]
Style.
Dmitry Volyntsev [Wed, 26 Dec 2018 16:57:41 +0000 (19:57 +0300)]
Refactored functions related to variables.
1) njs_builtin_add() is refactored out as a minor variant of
njs_variable_add().
2) parser is refactored out from arguments of the functions.
Dmitry Volyntsev [Wed, 26 Dec 2018 13:05:23 +0000 (16:05 +0300)]
Added support of native function calls in njs_vm_call().
Dmitry Volyntsev [Wed, 26 Dec 2018 10:23:16 +0000 (13:23 +0300)]
Fixed exit instructions inside try blocks.
Fixed instructions: continue, break, return.
Dmitry Volyntsev [Tue, 25 Dec 2018 06:53:27 +0000 (09:53 +0300)]
Version bump.
Dmitry Volyntsev [Tue, 25 Dec 2018 06:51:02 +0000 (09:51 +0300)]
Added tag 0.2.7 for changeset
4624ba4f6497
Dmitry Volyntsev [Tue, 25 Dec 2018 06:49:52 +0000 (09:49 +0300)]
Version 0.2.7.
Dmitry Volyntsev [Mon, 24 Dec 2018 10:59:27 +0000 (13:59 +0300)]
Removed surplus for loop.
Left over after simplifications in
4e62b7a295e0 .
Found by Coverity (CID
1441823 ).
Alexander Pyshchev [Mon, 17 Dec 2018 19:13:02 +0000 (21:13 +0200)]
Added the rest parameters support.
This closes #21 issue on Github.
Dmitry Volyntsev [Fri, 7 Dec 2018 15:58:27 +0000 (18:58 +0300)]
Style.
Dmitry Volyntsev [Fri, 7 Dec 2018 15:54:59 +0000 (18:54 +0300)]
Removing unused "size" field from njs_parser_operation_t.
Thanks to 洪志道 (Hong Zhi Dao).
This closes #68 issue on Github.
Dmitry Volyntsev [Fri, 7 Dec 2018 15:33:52 +0000 (18:33 +0300)]
Freeing code buffer after is was reallocated.
Thanks to 洪志道 (Hong Zhi Dao).
Dmitry Volyntsev [Fri, 7 Dec 2018 14:15:21 +0000 (17:15 +0300)]
Code generator is separated from parser structure.
Dmitry Volyntsev [Fri, 7 Dec 2018 14:11:33 +0000 (17:11 +0300)]
Code generator refactored.
Previously, the code size had to be calculated before code generation
phase because raw pointers to instruction were used to determine proper
jump offsets. It introduced unnecessary coupling between parser and
generator as well as complicated the parser because it had to know in
advance what instructions will be generated.
The solution is the dynamic reallocation of the code during generation
phase and the usage of relative offsets when calculating jump instructions.
Igor Sysoev [Wed, 5 Dec 2018 12:38:33 +0000 (15:38 +0300)]
Fixed building on paltforms without librt.
Dmitry Volyntsev [Tue, 4 Dec 2018 18:13:13 +0000 (21:13 +0300)]
Fixed type of iteration variable in for-in with array values.
Valentin Bartenev [Mon, 3 Dec 2018 16:23:27 +0000 (19:23 +0300)]
Object.entries() method.
Valentin Bartenev [Mon, 3 Dec 2018 16:20:58 +0000 (19:20 +0300)]
Object.values() method.
Valentin Bartenev [Sat, 1 Dec 2018 19:32:33 +0000 (22:32 +0300)]
Slightly optimized njs_object_keys_array().
There is no need to iterate over the object properties second time if after
the first attempt we know that it contains no enumerable properties.
Also removed surplus conditions.
Dmitry Volyntsev [Fri, 30 Nov 2018 14:52:02 +0000 (17:52 +0300)]
Fixed comparison of Byte and UTF8 strings.
Dmitry Volyntsev [Thu, 29 Nov 2018 18:01:59 +0000 (21:01 +0300)]
Using acosh(0) to get NaN in runtime.
macOS clang 10 optimizes sqrt(-1) out using garbage value
instead.
Artem S. Povalyukhin [Wed, 28 Nov 2018 18:56:19 +0000 (21:56 +0300)]
Improved accuracy of console.time()/console.timeEnd().
Artem S. Povalyukhin [Wed, 28 Nov 2018 18:50:28 +0000 (21:50 +0300)]
Added nxt_time().
Returns the current high-resolution real time.
Dmitry Volyntsev [Thu, 29 Nov 2018 15:14:12 +0000 (18:14 +0300)]
Fixed conversion of NAN and INF to uint32_t on some platforms.
Dmitry Volyntsev [Wed, 28 Nov 2018 12:47:05 +0000 (15:47 +0300)]
Fixed assignment expression from compound assignment.
Dmitry Volyntsev [Tue, 27 Nov 2018 15:58:30 +0000 (18:58 +0300)]
Fixed automatic semicolon insertion.
Dmitry Volyntsev [Tue, 27 Nov 2018 15:58:26 +0000 (18:58 +0300)]
Version bump.