]> git.kaiwu.me - njs.git/log
njs.git
8 years agoMore scientific notation tests.
Andrey Zelenkov [Wed, 7 Jun 2017 13:36:17 +0000 (16:36 +0300)]
More scientific notation tests.

8 years agoFixed zero basis handling for scientific notation.
Andrey Zelenkov [Wed, 7 Jun 2017 13:36:13 +0000 (16:36 +0300)]
Fixed zero basis handling for scientific notation.

8 years agoFixed building by GCC 4.2.
Dmitry Volyntsev [Wed, 7 Jun 2017 12:45:01 +0000 (15:45 +0300)]
Fixed building by GCC 4.2.

8 years agoObject.keys() method.
Dmitry Volyntsev [Wed, 7 Jun 2017 11:12:23 +0000 (14:12 +0300)]
Object.keys() method.

8 years agoAdded support of scientific notation literals.
Dmitry Volyntsev [Mon, 5 Jun 2017 11:59:28 +0000 (14:59 +0300)]
Added support of scientific notation literals.

8 years agoFixed possible buffer overrun during numbers parsing.
Dmitry Volyntsev [Wed, 31 May 2017 17:42:15 +0000 (20:42 +0300)]
Fixed possible buffer overrun during numbers parsing.

8 years agoFixed parseInt() leading white space ignoring.
Andrey Zelenkov [Wed, 31 May 2017 17:36:01 +0000 (20:36 +0300)]
Fixed parseInt() leading white space ignoring.

8 years agoFixed parseInt() zero radix parsing.
Andrey Zelenkov [Wed, 31 May 2017 17:25:44 +0000 (20:25 +0300)]
Fixed parseInt() zero radix parsing.

8 years agoAdded support of hex literals.
Dmitry Volyntsev [Tue, 30 May 2017 16:35:08 +0000 (19:35 +0300)]
Added support of hex literals.

8 years agoA fix of bug introduced in changeset 7f1f3dcb278f.
Igor Sysoev [Mon, 29 May 2017 19:13:21 +0000 (22:13 +0300)]
A fix of bug introduced in changeset 7f1f3dcb278f.

8 years agoA small rbtree delete fixup optimization.
Igor Sysoev [Mon, 29 May 2017 07:17:36 +0000 (10:17 +0300)]
A small rbtree delete fixup optimization.

Setting node color to black is not required here because
it is already black.  Besides in the original algorithm
the node pointer is discarded and the node is set to tree
root just to quit the loop.

Thanks to 洪志道 (Hong Zhi Dao).

8 years agoUnicode code point parsing optimization.
Igor Sysoev [Sat, 27 May 2017 15:02:09 +0000 (18:02 +0300)]
Unicode code point parsing optimization.

8 years agoA small rbtree insert fixup optimization.
Igor Sysoev [Fri, 26 May 2017 17:10:22 +0000 (20:10 +0300)]
A small rbtree insert fixup optimization.

Thanks to 洪志道 (Hong Zhi Dao).

8 years agoparseInt() did not test invalid values.
Igor Sysoev [Fri, 26 May 2017 17:07:24 +0000 (20:07 +0300)]
parseInt() did not test invalid values.

8 years agoparseInt() fixed for hexadecimal literals.
Dmitry Volyntsev [Thu, 25 May 2017 11:16:31 +0000 (14:16 +0300)]
parseInt() fixed for hexadecimal literals.

9 years agoFixed parsing ISO 8601 format in Date.parse().
Andrey Zelenkov [Wed, 19 Apr 2017 14:48:56 +0000 (17:48 +0300)]
Fixed parsing ISO 8601 format in Date.parse().

Fixed parsing in case milliseconds are not specified.
Added converting to local time in case "Z" suffix is not specified.
Also minor style fixes included.

9 years agoAdded tag 0.1.10 for changeset b1456ef3e002
Igor Sysoev [Tue, 4 Apr 2017 10:24:09 +0000 (13:24 +0300)]
Added tag 0.1.10 for changeset b1456ef3e002

9 years agoVersion 0.1.10. 0.1.10
Igor Sysoev [Tue, 4 Apr 2017 10:23:11 +0000 (13:23 +0300)]
Version 0.1.10.

9 years agoStyle fixes and small miscellaneous changes.
Igor Sysoev [Tue, 4 Apr 2017 10:23:10 +0000 (13:23 +0300)]
Style fixes and small miscellaneous changes.

9 years agoMoving njs_array_prototype_fill() to appropriate place.
Igor Sysoev [Tue, 4 Apr 2017 08:00:49 +0000 (11:00 +0300)]
Moving njs_array_prototype_fill() to appropriate place.

9 years agoMoving common code to njs_array_iterator_args().
Igor Sysoev [Tue, 4 Apr 2017 07:56:33 +0000 (10:56 +0300)]
Moving common code to njs_array_iterator_args().

9 years agoAdding CHANGES to a release archive.
Igor Sysoev [Tue, 4 Apr 2017 07:52:24 +0000 (10:52 +0300)]
Adding CHANGES to a release archive.

9 years agoGlobal variables may be accessed incorrectly by nested functions.
Igor Sysoev [Tue, 4 Apr 2017 07:47:02 +0000 (10:47 +0300)]
Global variables may be accessed incorrectly by nested functions.

9 years agoFunction declaration should return "undefined".
Igor Sysoev [Tue, 4 Apr 2017 07:47:12 +0000 (10:47 +0300)]
Function declaration should return "undefined".

9 years agoArray.prototype.findIndex() method.
Andrey Zelenkov [Tue, 4 Apr 2017 03:16:49 +0000 (06:16 +0300)]
Array.prototype.findIndex() method.

9 years agoArray.prototype.find() method.
Andrey Zelenkov [Tue, 4 Apr 2017 03:10:10 +0000 (06:10 +0300)]
Array.prototype.find() method.

Also introduced njs_array_iterator_sparse_apply() function.

9 years agoVariables may be accessed incorrectly by nested functions.
Igor Sysoev [Sun, 2 Apr 2017 09:36:05 +0000 (12:36 +0300)]
Variables may be accessed incorrectly by nested functions.

9 years agoArray iterators optimizations.
Igor Sysoev [Sun, 2 Apr 2017 09:35:11 +0000 (12:35 +0300)]
Array iterators optimizations.

9 years agoLarge indexes processing has been fixed in
Igor Sysoev [Sat, 1 Apr 2017 12:32:04 +0000 (15:32 +0300)]
Large indexes processing has been fixed in
Array.prototype.reduceRight().

9 years agoStyle fixes.
Andrey Zelenkov [Fri, 31 Mar 2017 11:05:44 +0000 (14:05 +0300)]
Style fixes.

9 years agoFixed Number.prototype.toString() method.
Andrey Zelenkov [Fri, 31 Mar 2017 11:02:38 +0000 (14:02 +0300)]
Fixed Number.prototype.toString() method.

Found with afl-fuzz.

9 years agoArray.of() method.
Andrey Zelenkov [Thu, 30 Mar 2017 19:01:17 +0000 (22:01 +0300)]
Array.of() method.

9 years agoA small Array.prototype.sort() optimization.
Igor Sysoev [Wed, 29 Mar 2017 12:54:37 +0000 (15:54 +0300)]
A small Array.prototype.sort() optimization.

9 years agoLarge indexes processing has been fixed in array iterator
Igor Sysoev [Wed, 29 Mar 2017 12:54:33 +0000 (15:54 +0300)]
Large indexes processing has been fixed in array iterator
functions.

9 years agoClosures support.
Igor Sysoev [Tue, 28 Mar 2017 04:50:05 +0000 (07:50 +0300)]
Closures support.

9 years agoThe "typeof" operation changes.
Igor Sysoev [Sat, 25 Mar 2017 10:42:40 +0000 (13:42 +0300)]
The "typeof" operation changes.

9 years agoThe njs_vm_trap_value() macro.
Igor Sysoev [Tue, 21 Mar 2017 13:35:36 +0000 (16:35 +0300)]
The njs_vm_trap_value() macro.

9 years agoThe njs_vm_continuation() macro.
Igor Sysoev [Tue, 21 Mar 2017 13:35:22 +0000 (16:35 +0300)]
The njs_vm_continuation() macro.

9 years agoMiscellaneous changes.
Igor Sysoev [Tue, 21 Mar 2017 13:14:16 +0000 (16:14 +0300)]
Miscellaneous changes.

9 years agoThe undefined values must be equal.
Igor Sysoev [Tue, 21 Mar 2017 13:09:09 +0000 (16:09 +0300)]
The undefined values must be equal.

9 years agoFixed building on modern Linux.
Igor Sysoev [Tue, 21 Mar 2017 13:02:03 +0000 (16:02 +0300)]
Fixed building on modern Linux.

9 years agoArray.prototype.fill() method.
Andrey Zelenkov [Fri, 17 Mar 2017 15:18:01 +0000 (18:18 +0300)]
Array.prototype.fill() method.

9 years agoMiscellaneous non-functional changes in nxt_mem_cache_pool.
Igor Sysoev [Mon, 13 Mar 2017 13:32:40 +0000 (16:32 +0300)]
Miscellaneous non-functional changes in nxt_mem_cache_pool.

9 years agoUsing nxt_rbtree_destroy_next() iterator for nxt_mem_cache_pool
Igor Sysoev [Sun, 12 Mar 2017 19:40:13 +0000 (22:40 +0300)]
Using nxt_rbtree_destroy_next() iterator for nxt_mem_cache_pool
destruction without rbtree rebalancing.

9 years agoAdded tag 0.1.9 for changeset 5bd283398822
Igor Sysoev [Wed, 1 Feb 2017 08:33:05 +0000 (11:33 +0300)]
Added tag 0.1.9 for changeset 5bd283398822

9 years agoVersion 0.1.9. 0.1.9
Igor Sysoev [Wed, 1 Feb 2017 08:29:47 +0000 (11:29 +0300)]
Version 0.1.9.

9 years ago2017 year.
Igor Sysoev [Wed, 1 Feb 2017 07:06:28 +0000 (10:06 +0300)]
2017 year.

9 years agoSupport of undefined return from stream body filter.
Roman Arutyunyan [Tue, 31 Jan 2017 17:22:01 +0000 (20:22 +0300)]
Support of undefined return from stream body filter.

9 years agoInitialize global variables in njs virtual machines.
Roman Arutyunyan [Fri, 27 Jan 2017 13:45:34 +0000 (16:45 +0300)]
Initialize global variables in njs virtual machines.

Previously, global variables in njs code remained uninitialized even if an
initializer existed in njs code.  To fix this, njs_vm_run() function is called
right after a virtual machine is cloned.  This call initializes global
variables.

9 years agoRemoved obsolete function call interface.
Igor Sysoev [Fri, 27 Jan 2017 13:01:31 +0000 (16:01 +0300)]
Removed obsolete function call interface.

9 years agoAdded tag 0.1.8 for changeset a29f29d48112
Igor Sysoev [Tue, 24 Jan 2017 11:38:59 +0000 (14:38 +0300)]
Added tag 0.1.8 for changeset a29f29d48112

9 years agoVersion 0.1.8. 0.1.8
Igor Sysoev [Tue, 24 Jan 2017 11:38:48 +0000 (14:38 +0300)]
Version 0.1.8.

9 years agoA small rbtree insert fixup optimization.
Igor Sysoev [Fri, 20 Jan 2017 13:10:48 +0000 (16:10 +0300)]
A small rbtree insert fixup optimization.

Thanks to 洪志道 (Hong Zhi Dao).

9 years agoA scope has been added to literal nodes.
Igor Sysoev [Mon, 16 Jan 2017 15:14:01 +0000 (18:14 +0300)]
A scope has been added to literal nodes.

Found with afl-fuzz.

9 years agoComprehensive test of "return" statement location.
Igor Sysoev [Mon, 16 Jan 2017 14:32:10 +0000 (17:32 +0300)]
Comprehensive test of "return" statement location.

Found with afl-fuzz.

9 years agoFixed parsing semicolons.
Igor Sysoev [Mon, 16 Jan 2017 11:51:29 +0000 (14:51 +0300)]
Fixed parsing semicolons.

Found with AddressSanitizer.

9 years agoRemoved unused things.
Igor Sysoev [Thu, 5 Jan 2017 12:55:52 +0000 (15:55 +0300)]
Removed unused things.

9 years agoFunctions were not exported.
Igor Sysoev [Thu, 5 Jan 2017 12:55:49 +0000 (15:55 +0300)]
Functions were not exported.

The bug was introduced in 4337ed48d6d6.

9 years agoLogical "or" and "and" operations should store result in a
Igor Sysoev [Tue, 3 Jan 2017 16:38:17 +0000 (19:38 +0300)]
Logical "or" and "and" operations should store result in a
temporary destination because they are actually branch operations.

9 years agoFixed code generation for "in" operation with side effect.
Igor Sysoev [Mon, 2 Jan 2017 19:59:33 +0000 (22:59 +0300)]
Fixed code generation for "in" operation with side effect.

9 years agoFor-in loop does not discard the last value of property variable.
Igor Sysoev [Mon, 2 Jan 2017 19:59:31 +0000 (22:59 +0300)]
For-in loop does not discard the last value of property variable.

9 years agoFor and for-in loops support variable declaration.
Igor Sysoev [Mon, 2 Jan 2017 19:59:29 +0000 (22:59 +0300)]
For and for-in loops support variable declaration.

9 years agoGlobal and function scopes have been fixed. Implicitly declared
Igor Sysoev [Mon, 2 Jan 2017 19:59:24 +0000 (22:59 +0300)]
Global and function scopes have been fixed. Implicitly declared
variables are not supported anymore.

9 years agoStyle and small miscellaneous fixes.
Igor Sysoev [Sun, 1 Jan 2017 17:45:59 +0000 (20:45 +0300)]
Style and small miscellaneous fixes.

9 years agoAdded tag 0.1.7 for changeset 15dc54100400
Igor Sysoev [Tue, 27 Dec 2016 07:40:08 +0000 (10:40 +0300)]
Added tag 0.1.7 for changeset 15dc54100400

9 years agoVersion 0.1.7. 0.1.7
Igor Sysoev [Tue, 27 Dec 2016 07:39:53 +0000 (10:39 +0300)]
Version 0.1.7.

9 years agoTest for right-associativity of exponential operator.
Valentin Bartenev [Fri, 23 Dec 2016 16:42:15 +0000 (19:42 +0300)]
Test for right-associativity of exponential operator.

9 years agoExponentiation operators.
Valentin Bartenev [Mon, 19 Dec 2016 11:19:59 +0000 (14:19 +0300)]
Exponentiation operators.

9 years agoThe nxt_expect() macro.
Valentin Bartenev [Mon, 19 Dec 2016 11:19:43 +0000 (14:19 +0300)]
The nxt_expect() macro.

9 years agoMath.pow() method fix.
Valentin Bartenev [Fri, 16 Dec 2016 14:52:15 +0000 (17:52 +0300)]
Math.pow() method fix.

9 years agoReplaced README contents with online documentation links.
Roman Arutyunyan [Tue, 13 Dec 2016 14:50:06 +0000 (17:50 +0300)]
Replaced README contents with online documentation links.

9 years agoDisabled js_include at server{} and location{} levels.
Roman Arutyunyan [Tue, 13 Dec 2016 14:17:25 +0000 (17:17 +0300)]
Disabled js_include at server{} and location{} levels.

9 years agoAdded tag 0.1.6 for changeset 44b524f7e313
Igor Sysoev [Tue, 13 Dec 2016 11:18:40 +0000 (14:18 +0300)]
Added tag 0.1.6 for changeset 44b524f7e313

9 years agoVersion 0.1.6. 0.1.6
Igor Sysoev [Tue, 13 Dec 2016 11:18:11 +0000 (14:18 +0300)]
Version 0.1.6.

9 years agoDisabled js_set at server{} and location{} levels.
Roman Arutyunyan [Tue, 13 Dec 2016 11:04:46 +0000 (14:04 +0300)]
Disabled js_set at server{} and location{} levels.

9 years agoMath.pow() method fix.
Valentin Bartenev [Wed, 7 Dec 2016 22:52:41 +0000 (01:52 +0300)]
Math.pow() method fix.

9 years agoFixed building with CFLAGS=-DNXT_DEBUG_MEMORY=1 by some compilers.
Igor Sysoev [Thu, 8 Dec 2016 16:50:03 +0000 (19:50 +0300)]
Fixed building with CFLAGS=-DNXT_DEBUG_MEMORY=1 by some compilers.

9 years agoNXT_DEBUG_MEMORY macro.
Valentin Bartenev [Thu, 8 Dec 2016 16:29:40 +0000 (19:29 +0300)]
NXT_DEBUG_MEMORY macro.

It allows to turn off accumulation of small pool allocations into a big
preallocated chunk of memory.  This is useful for debugging memory access
with sanitizer, since such accumulation can cover buffer overruns from
being detected.

9 years agoArray and object literals did not support assignment expressions.
Igor Sysoev [Thu, 8 Dec 2016 14:15:54 +0000 (17:15 +0300)]
Array and object literals did not support assignment expressions.

Thanks to 洪志道 (Hong Zhi Dao).

9 years agoA user defined object method called as constructor did not
Igor Sysoev [Wed, 7 Dec 2016 16:34:48 +0000 (19:34 +0300)]
A user defined object method called as constructor did not
create correct prototype links in created objects.

Thanks to 洪志道 (Hong Zhi Dao).

9 years agoFixed "return" usage in a true branch of an "if" statement.
Igor Sysoev [Wed, 7 Dec 2016 12:02:00 +0000 (15:02 +0300)]
Fixed "return" usage in a true branch of an "if" statement.

9 years agoRegExp.prototype.toString() should be applied only to RegExp.
Igor Sysoev [Mon, 5 Dec 2016 14:47:00 +0000 (17:47 +0300)]
RegExp.prototype.toString() should be applied only to RegExp.

9 years agoNative methods called with Function.prototype.call() and
Igor Sysoev [Mon, 5 Dec 2016 14:45:02 +0000 (17:45 +0300)]
Native methods called with Function.prototype.call() and
Functon.prototype.apply() should run via continuation to
normilize arguments.

9 years agoNative methods called by iterators should run via continuation
Igor Sysoev [Mon, 5 Dec 2016 14:35:33 +0000 (17:35 +0300)]
Native methods called by iterators should run via continuation
to normilize arguments.

9 years agoFixed a unit test for Math.acosh().
Valentin Bartenev [Fri, 2 Dec 2016 14:11:57 +0000 (17:11 +0300)]
Fixed a unit test for Math.acosh().

9 years agoUsing short string values where they are enough.
Igor Sysoev [Thu, 1 Dec 2016 16:45:19 +0000 (19:45 +0300)]
Using short string values where they are enough.

9 years agoMaximum call stack size is limited by 16M.
Igor Sysoev [Thu, 1 Dec 2016 15:56:35 +0000 (18:56 +0300)]
Maximum call stack size is limited by 16M.

9 years agoAdded more dependencies on nxt_auto_config.h.
Igor Sysoev [Wed, 30 Nov 2016 11:53:15 +0000 (14:53 +0300)]
Added more dependencies on nxt_auto_config.h.

9 years agoFixed nginx modules building introduced in 9b37882ad552.
Igor Sysoev [Wed, 30 Nov 2016 11:10:49 +0000 (14:10 +0300)]
Fixed nginx modules building introduced in 9b37882ad552.
Removed old third party module addition method.

9 years agoMath.clz32 method.
Valentin Bartenev [Mon, 21 Nov 2016 21:06:46 +0000 (00:06 +0300)]
Math.clz32 method.

9 years agoOptimized conversion of negative numbers to integer.
Valentin Bartenev [Sat, 19 Nov 2016 19:20:06 +0000 (22:20 +0300)]
Optimized conversion of negative numbers to integer.

There is no reason to use fmod() for all negative numbers.
The numbers in range [-2^53, 2^53] can be converted directly
to int64_t.

9 years agoMath.imul() method.
Valentin Bartenev [Sat, 19 Nov 2016 19:20:06 +0000 (22:20 +0300)]
Math.imul() method.

9 years agoImproved unit test for Math.exp(1).
Valentin Bartenev [Fri, 18 Nov 2016 14:25:45 +0000 (17:25 +0300)]
Improved unit test for Math.exp(1).

9 years agoMore Math methods from ES6.
Valentin Bartenev [Fri, 18 Nov 2016 14:25:25 +0000 (17:25 +0300)]
More Math methods from ES6.

9 years agoA workround for Solaris bugs in acos() and asin().
Igor Sysoev [Wed, 16 Nov 2016 12:21:07 +0000 (15:21 +0300)]
A workround for Solaris bugs in acos() and asin().

9 years agoFixed unit tests on FreeBSD.
Igor Sysoev [Wed, 16 Nov 2016 12:21:03 +0000 (15:21 +0300)]
Fixed unit tests on FreeBSD.

9 years agoRemoved checking for range errors in Math.hypot().
Valentin Bartenev [Wed, 16 Nov 2016 09:49:53 +0000 (12:49 +0300)]
Removed checking for range errors in Math.hypot().

It seems other interpreters do not return an exception in this case.

9 years agoRefactored Math methods.
Valentin Bartenev [Wed, 16 Nov 2016 09:49:53 +0000 (12:49 +0300)]
Refactored Math methods.

9 years agoUnit tests for all Math methods.
Valentin Bartenev [Wed, 16 Nov 2016 09:49:52 +0000 (12:49 +0300)]
Unit tests for all Math methods.

9 years agoAdded tag 0.1.5 for changeset 9c813c2bb2ac
Igor Sysoev [Tue, 15 Nov 2016 15:28:35 +0000 (18:28 +0300)]
Added tag 0.1.5 for changeset 9c813c2bb2ac