]>
git.kaiwu.me - njs.git/log
Igor Sysoev [Tue, 24 Jan 2017 11:38:48 +0000 (14:38 +0300)]
Version 0.1.8.
Igor Sysoev [Fri, 20 Jan 2017 13:10:48 +0000 (16:10 +0300)]
A small rbtree insert fixup optimization.
Thanks to 洪志道 (Hong Zhi Dao).
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.
Igor Sysoev [Mon, 16 Jan 2017 14:32:10 +0000 (17:32 +0300)]
Comprehensive test of "return" statement location.
Found with afl-fuzz.
Igor Sysoev [Mon, 16 Jan 2017 11:51:29 +0000 (14:51 +0300)]
Fixed parsing semicolons.
Found with AddressSanitizer.
Igor Sysoev [Thu, 5 Jan 2017 12:55:52 +0000 (15:55 +0300)]
Removed unused things.
Igor Sysoev [Thu, 5 Jan 2017 12:55:49 +0000 (15:55 +0300)]
Functions were not exported.
The bug was introduced in
4337ed48d6d6 .
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.
Igor Sysoev [Mon, 2 Jan 2017 19:59:33 +0000 (22:59 +0300)]
Fixed code generation for "in" operation with side effect.
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.
Igor Sysoev [Mon, 2 Jan 2017 19:59:29 +0000 (22:59 +0300)]
For and for-in loops support variable declaration.
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.
Igor Sysoev [Sun, 1 Jan 2017 17:45:59 +0000 (20:45 +0300)]
Style and small miscellaneous fixes.
Igor Sysoev [Tue, 27 Dec 2016 07:40:08 +0000 (10:40 +0300)]
Added tag 0.1.7 for changeset
15dc54100400
Igor Sysoev [Tue, 27 Dec 2016 07:39:53 +0000 (10:39 +0300)]
Version 0.1.7.
Valentin Bartenev [Fri, 23 Dec 2016 16:42:15 +0000 (19:42 +0300)]
Test for right-associativity of exponential operator.
Valentin Bartenev [Mon, 19 Dec 2016 11:19:59 +0000 (14:19 +0300)]
Exponentiation operators.
Valentin Bartenev [Mon, 19 Dec 2016 11:19:43 +0000 (14:19 +0300)]
The nxt_expect() macro.
Valentin Bartenev [Fri, 16 Dec 2016 14:52:15 +0000 (17:52 +0300)]
Math.pow() method fix.
Roman Arutyunyan [Tue, 13 Dec 2016 14:50:06 +0000 (17:50 +0300)]
Replaced README contents with online documentation links.
Roman Arutyunyan [Tue, 13 Dec 2016 14:17:25 +0000 (17:17 +0300)]
Disabled js_include at server{} and location{} levels.
Igor Sysoev [Tue, 13 Dec 2016 11:18:40 +0000 (14:18 +0300)]
Added tag 0.1.6 for changeset
44b524f7e313
Igor Sysoev [Tue, 13 Dec 2016 11:18:11 +0000 (14:18 +0300)]
Version 0.1.6.
Roman Arutyunyan [Tue, 13 Dec 2016 11:04:46 +0000 (14:04 +0300)]
Disabled js_set at server{} and location{} levels.
Valentin Bartenev [Wed, 7 Dec 2016 22:52:41 +0000 (01:52 +0300)]
Math.pow() method fix.
Igor Sysoev [Thu, 8 Dec 2016 16:50:03 +0000 (19:50 +0300)]
Fixed building with CFLAGS=-DNXT_DEBUG_MEMORY=1 by some compilers.
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.
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).
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).
Igor Sysoev [Wed, 7 Dec 2016 12:02:00 +0000 (15:02 +0300)]
Fixed "return" usage in a true branch of an "if" statement.
Igor Sysoev [Mon, 5 Dec 2016 14:47:00 +0000 (17:47 +0300)]
RegExp.prototype.toString() should be applied only to RegExp.
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.
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.
Valentin Bartenev [Fri, 2 Dec 2016 14:11:57 +0000 (17:11 +0300)]
Fixed a unit test for Math.acosh().
Igor Sysoev [Thu, 1 Dec 2016 16:45:19 +0000 (19:45 +0300)]
Using short string values where they are enough.
Igor Sysoev [Thu, 1 Dec 2016 15:56:35 +0000 (18:56 +0300)]
Maximum call stack size is limited by 16M.
Igor Sysoev [Wed, 30 Nov 2016 11:53:15 +0000 (14:53 +0300)]
Added more dependencies on nxt_auto_config.h.
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.
Valentin Bartenev [Mon, 21 Nov 2016 21:06:46 +0000 (00:06 +0300)]
Math.clz32 method.
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.
Valentin Bartenev [Sat, 19 Nov 2016 19:20:06 +0000 (22:20 +0300)]
Math.imul() method.
Valentin Bartenev [Fri, 18 Nov 2016 14:25:45 +0000 (17:25 +0300)]
Improved unit test for Math.exp(1).
Valentin Bartenev [Fri, 18 Nov 2016 14:25:25 +0000 (17:25 +0300)]
More Math methods from ES6.
Igor Sysoev [Wed, 16 Nov 2016 12:21:07 +0000 (15:21 +0300)]
A workround for Solaris bugs in acos() and asin().
Igor Sysoev [Wed, 16 Nov 2016 12:21:03 +0000 (15:21 +0300)]
Fixed unit tests on FreeBSD.
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.
Valentin Bartenev [Wed, 16 Nov 2016 09:49:53 +0000 (12:49 +0300)]
Refactored Math methods.
Valentin Bartenev [Wed, 16 Nov 2016 09:49:52 +0000 (12:49 +0300)]
Unit tests for all Math methods.
Igor Sysoev [Tue, 15 Nov 2016 15:28:35 +0000 (18:28 +0300)]
Added tag 0.1.5 for changeset
9c813c2bb2ac
Igor Sysoev [Tue, 15 Nov 2016 15:28:18 +0000 (18:28 +0300)]
Version 0.1.5.
Igor Sysoev [Tue, 15 Nov 2016 14:43:05 +0000 (17:43 +0300)]
Native methods and non-constructor functions must throw
TypeError exception if they are called as constructor.
Igor Sysoev [Fri, 11 Nov 2016 15:12:13 +0000 (18:12 +0300)]
Removed irrelevant overhead in clone/destroy benchmark.
Igor Sysoev [Fri, 11 Nov 2016 14:28:47 +0000 (17:28 +0300)]
Now the empty regexp pattern is created on compile stage only.
This speeds up njs_vm_clone() operation twice.
Valentin Bartenev [Thu, 10 Nov 2016 16:09:13 +0000 (19:09 +0300)]
Moved njs_string_offset_map_init() closer to its usage.
No functional changes.
Valentin Bartenev [Thu, 10 Nov 2016 15:54:28 +0000 (18:54 +0300)]
On-demand initialization of UTF-8 strings offset map.
Valentin Bartenev [Thu, 10 Nov 2016 15:45:10 +0000 (18:45 +0300)]
Improved UTF-8 offset map related macros (no functional changes).
Valentin Bartenev [Thu, 10 Nov 2016 13:47:52 +0000 (16:47 +0300)]
Removed misused __attribute__((malloc)).
According to the documentation:
| This tells the compiler that a function is malloc-like, i.e., that the
| pointer P returned by the function cannot alias any other pointer valid
| when the function returns, and moreover no pointers to valid objects
| occur in any storage addressed by P.
The njs_string_alloc() allocates a storage for a string and makes the
storage accessible via the passed "value" argument. The function also
returns an intermediate pointer which is used only for string content
initialization and then discarded. Since the pointer is not stored
anywhere after the initialization, GCC with -O or higher optimisation
levels rightfully optimizes out the initialization.
Valentin Bartenev [Thu, 10 Nov 2016 13:19:13 +0000 (16:19 +0300)]
Fixed building on Solaris after
d8b1e2576409 .
Valentin Bartenev [Thu, 10 Nov 2016 12:33:02 +0000 (15:33 +0300)]
Fixed building with GCC ASan.
Igor Sysoev [Wed, 9 Nov 2016 12:04:40 +0000 (15:04 +0300)]
Style and small miscellaneous fixes.
Valentin Bartenev [Wed, 9 Nov 2016 11:34:32 +0000 (14:34 +0300)]
String.indexOf() and String.includes() simplification.
Valentin Bartenev [Tue, 8 Nov 2016 19:09:40 +0000 (22:09 +0300)]
Math.hypot() method.
Valentin Bartenev [Wed, 9 Nov 2016 09:37:59 +0000 (12:37 +0300)]
String.startsWith() and String.endsWith() methods.
Valentin Bartenev [Sun, 6 Nov 2016 13:03:29 +0000 (16:03 +0300)]
Various Number methods.
Valentin Bartenev [Sun, 6 Nov 2016 13:03:03 +0000 (16:03 +0300)]
Various Number constants.
Igor Sysoev [Fri, 4 Nov 2016 20:45:35 +0000 (23:45 +0300)]
Function expressions did not have prototypes.
Valentin Bartenev [Fri, 4 Nov 2016 15:25:55 +0000 (18:25 +0300)]
Removed redefinition of isinf() and isnan().
Valentin Bartenev [Fri, 4 Nov 2016 15:25:55 +0000 (18:25 +0300)]
Removed redefinition of NAN and INFINITY macros.
Valentin Bartenev [Fri, 4 Nov 2016 15:25:55 +0000 (18:25 +0300)]
More precise Math constants.
Igor Sysoev [Fri, 4 Nov 2016 13:22:56 +0000 (16:22 +0300)]
String.prototype.repeat() did not check the count parameter
for single character strings. The count parameter should be
checked also for empty string.
In collaboration with Andrey Zelenkov and Valentin Bartenev.
Andrey Zelenkov [Thu, 3 Nov 2016 15:12:10 +0000 (18:12 +0300)]
String.prototype.repeat method fix.
Found with afl-fuzz.
Valentin Bartenev [Mon, 31 Oct 2016 13:28:12 +0000 (16:28 +0300)]
Math.sign() method.
Valentin Bartenev [Mon, 31 Oct 2016 13:25:54 +0000 (16:25 +0300)]
Math.trunc() method.
Igor Sysoev [Mon, 31 Oct 2016 12:56:49 +0000 (15:56 +0300)]
A surplus check has been removed.
Found by Coverity Scan.
Igor Sysoev [Mon, 31 Oct 2016 12:51:12 +0000 (15:51 +0300)]
A possible memory leak has been fixed.
Thanks to 洪志道 (Hong Zhi Dao).
Igor Sysoev [Fri, 28 Oct 2016 21:04:29 +0000 (00:04 +0300)]
Fixed building on modern Linux kernels.
Piotr Sikora [Fri, 28 Oct 2016 16:29:38 +0000 (19:29 +0300)]
Added missing <nxt_auto_config.h> includes.
Previously, most objects were compiled without any
features detected by the ./configure script.
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Valentin Bartenev [Fri, 28 Oct 2016 11:20:23 +0000 (14:20 +0300)]
String.prototype.repeat() method.
Igor Sysoev [Fri, 28 Oct 2016 10:32:33 +0000 (13:32 +0300)]
String.prototype.trim() method.
In collaboration with Valentin Bartenev.
Igor Sysoev [Thu, 27 Oct 2016 13:38:05 +0000 (16:38 +0300)]
String.prototype.lastIndexOf() method fix.
In collaboration with Valentin Bartenev.
Igor Sysoev [Thu, 27 Oct 2016 08:14:46 +0000 (11:14 +0300)]
String.prototypes.includes() method.
Igor Sysoev [Thu, 27 Oct 2016 07:56:54 +0000 (10:56 +0300)]
String.prototype.lastIndexOf() method fixes and optimizations.
In collaboration with Valentin Bartenev.
Igor Sysoev [Thu, 27 Oct 2016 07:47:48 +0000 (10:47 +0300)]
String.prototype.indexOf() method fixes.
Igor Sysoev [Tue, 25 Oct 2016 14:52:18 +0000 (17:52 +0300)]
Array.prototypes.includes() method.
Andrey Zelenkov [Mon, 24 Oct 2016 16:02:31 +0000 (19:02 +0300)]
Array.prototype.lastIndexOf() and Array.prototype.indexOf() fixes.
The fromIndex parameter processing in lastIndexOf() has been fixed.
The lastIndexOf() search algorithm has been optimized.
The njs_array_index_of() function has been removed.
In collaboration with Valentin Bartenev.
Igor Sysoev [Mon, 24 Oct 2016 15:27:31 +0000 (18:27 +0300)]
Incomplete non-recursive parser has been removed.
Igor Sysoev [Mon, 24 Oct 2016 14:29:27 +0000 (17:29 +0300)]
Style unification of configure feature tests.
Igor Sysoev [Mon, 24 Oct 2016 14:23:00 +0000 (17:23 +0300)]
A build with -Werror=return-type has been fixed.
Patch by Piotr Sikora.
Igor Sysoev [Mon, 24 Oct 2016 14:16:10 +0000 (17:16 +0300)]
A build with -Werror=old-style-definition has been fixed.
Patch by Piotr Sikora.
Igor Sysoev [Mon, 24 Oct 2016 12:04:57 +0000 (15:04 +0300)]
Added tag 0.1.4 for changeset
508689c1fb94
Igor Sysoev [Mon, 24 Oct 2016 12:04:50 +0000 (15:04 +0300)]
Version 0.1.4.
Igor Sysoev [Mon, 24 Oct 2016 11:56:28 +0000 (14:56 +0300)]
njs_array_realloc() has been changed to njs_array_expand().
Igor Sysoev [Mon, 24 Oct 2016 11:12:12 +0000 (14:12 +0300)]
Array creation and reallocation optimizations.
Igor Sysoev [Sat, 22 Oct 2016 17:24:32 +0000 (20:24 +0300)]
A fix in decodeURI() and decodeURIComponent() functions.
Found with afl-fuzz.
Igor Sysoev [Fri, 21 Oct 2016 20:03:02 +0000 (23:03 +0300)]
A fix in Array.prototype.splice() function.
Found with afl-fuzz.
Andrey Zelenkov [Thu, 20 Oct 2016 14:12:42 +0000 (17:12 +0300)]
A fix in typeof function.
Found with afl-fuzz.
Igor Sysoev [Tue, 18 Oct 2016 14:44:01 +0000 (17:44 +0300)]
Array.indexOf() and Array.lastIndexOf() have been fixed.
Igor Sysoev [Tue, 18 Oct 2016 12:48:22 +0000 (15:48 +0300)]
Invalid Unicode code point processing has been fixed.
Igor Sysoev [Tue, 18 Oct 2016 12:48:19 +0000 (15:48 +0300)]
A fix of function name usage.
Igor Sysoev [Tue, 18 Oct 2016 12:48:13 +0000 (15:48 +0300)]
Fixes in generating "continue" and "break" statements.