Hello, I'm glad to announce a new release of NGINX JavaScript module (njs). This release proceeds to extend the coverage of ECMAScript specifications. Notable new features: - Function constructor: : > var sum = new Function('a, b', 'return a + b'); : undefined : > sum(2, 3) : 5 You can learn more about njs: - Overview and introduction: http://nginx.org/en/docs/njs/ - Presentation: https://youtu.be/Jc_L6UffFOs Feel free to try it and give us feedback on: - Github: https://github.com/nginx/njs/issues - Mailing list: http://mailman.nginx.org/mailman/listinfo/nginx-devel Changes with njs 0.3.6 22 Oct 2019 nginx modules: *) Improvement: getting special headers from r.headersIn. Core: *) Feature: added new Function() support. *) Feature: added Number.prototype.toFixed(). *) Feature: added Number.prototype.toPrecision(). *) Feature: added Number.prototype.toExponential(). *) Improvement: making "prototype" property of function instances writable. *) Improvement: limiting recursion depth while compiling. *) Improvement: moving global functions to the global object. *) Bugfix: fixed prototype mutation for object literals. *) Bugfix: fixed heap-buffer-overflow while parsing regexp literals. *) Bugfix: fixed integer-overflow while parsing exponent of number literals. *) Bugfix: fixed parseFloat(). *) Bugfix: fixed Array.prototype functions according to the specification. The following functions were fixed: every, includes, indexOf, filter, find, findIndex, forEach, lastIndexOf, map, pop, push, reduce, reduceRight, shift, some, unshift. *) Bugfix: fixed handing of accessor descriptors in Object.freeze(). *) Bugfix: fixed String.prototype.replace() when first argument is not a string. *) Bugfix: fixed stack-use-after-scope in Array.prototype.map(). *) Bugfix: Date.prototype.toUTCString() format was aligned to ES9. *) Bugfix: fixed buffer overflow in Number.prototype.toString(radix). *) Bugfix: fixed Regexp.prototype.test() for regexps with backreferences. *) Bugfix: fixed Array.prototype.map() for objects with nonexistent values. *) Bugfix: fixed Array.prototype.pop() and shift() for sparse objects. *) Bugfix: fixed Date.UTC() according to the specification. *) Bugfix: fixed Date() constructor according to the specification. *) Bugfix: fixed type of Date.prototype. Thanks to Artem S. Povalyukhin. *) Bugfix: fixed Date.prototype.setTime(). Thanks to Artem S. Povalyukhin. *) Bugfix: fixed default number of arguments expected by built-in functions. *) Bugfix: fixed "caller" and "arguments" properties of a function instance. Thanks to Artem S. Povalyukhin.