Mercurial > hg > nginx-site
diff xml/en/docs/njs/changes.xml @ 2246:32ba43abf9cd
Renamed njs API, njs Changes.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Mon, 24 Sep 2018 19:24:04 +0300 |
parents | xml/en/docs/njs/njs_changes.xml@5268c13196f2 |
children | a314f4aeb199 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xml/en/docs/njs/changes.xml Mon Sep 24 19:24:04 2018 +0300 @@ -0,0 +1,1209 @@ +<?xml version="1.0"?> + +<!-- + Copyright (C) Nginx, Inc. + --> + +<!DOCTYPE article SYSTEM "../../../../dtd/article.dtd"> + +<article name="Changes" + link="/en/docs/njs/changes.html" + lang="en" + rev="8" + toc="no"> + +<section id="njs0.2.4" name="Changes with 0.2.4"> + +<para> +Release Date: +18 September 2018 +</para> + +<para> +nginx modules: +<list type="bullet"> + +<listitem> +<para> +Change: +stream module handlers refactored. +</para> + +<para> +New methods and properties: +<link doc="njs_api.xml" id="s_on">s.on()</link>, +<link doc="njs_api.xml" id="s_off">s.off()</link>, +<link doc="njs_api.xml" id="s_allow">s.allow()</link>, +<link doc="njs_api.xml" id="s_done">s.done()</link>, +<link doc="njs_api.xml" id="s_decline">s.decline()</link>, +<link doc="njs_api.xml" id="s_deny">s.deny()</link>. +</para> + +<para> +Removed properties of the +<link doc="njs_api.xml" id="stream">Stream</link> object: +<literal>s.OK</literal>, +<literal>s.ABORT</literal>, +<literal>s.AGAIN</literal>, +<literal>s.DECLINED</literal>, +<literal>s.ERROR</literal> +(replaced with +<link doc="njs_api.xml" id="s_allow">s.allow()</link>, +<link doc="njs_api.xml" id="s_done">s.done()</link>, +<link doc="njs_api.xml" id="s_deny">s.deny()</link>). +</para> + +<para> +<literal>s.buffer</literal> +(for reading replaced with data argument of +the corresponding callback, for writing use +<link doc="njs_api.xml" id="s_send">s.send()</link>). +</para> + +<para> +<literal>s.fromUpstream</literal> +(replaced with a callback for a corresponding event). +</para> + +<para> +<literal>s.eof</literal> +(replaced with <literal></literal> +<link doc="njs_api.xml" id="s_on_callback_last">flags.last</link>). +</para> + +</listitem> + +</list> +</para> + +<para> +Core: +<list type="bullet"> + +<listitem> +<para> +Feature: +added <literal>Function.prototype.length</literal>. +</para> +</listitem> + +<listitem> +<para> +Feature: +introduced sandboxing mode. +</para> +</listitem> + +<listitem> +<para> +Improvement: +added exception strings where appropriate. +</para> +</listitem> + +<listitem> +<para> +Improvement: +improved wording for primitive type conversion exception. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +throwing <literal>TypeError</literal> +for attempts to change frozen properties. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed <literal>Object.defineProperty()</literal> for existing properties. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +respecting the enumerable attribute while iterating by for in. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +respecting writable attribute for property handlers. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed exception handling in arguments of a function. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed <literal>Object.prototype.toString</literal> for different value types. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed <literal>Object()</literal> constructor for object types arguments. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed comparison of objects and strings. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed <literal>String.slice()</literal> for undefined arguments. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +miscellaneous additional bugs have been fixed. +</para> +</listitem> + +</list> +</para> + +</section> + + +<section id="njs0.2.3" name="Changes with 0.2.3"> + +<para> +Release Date: +31 July 2018 +</para> + +<para> +nginx modules: +<list type="bullet"> + +<listitem> +<para> +Bugfix: +making a subrequest from a <literal>Reply</literal> object caused +a segmentation fault. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +getting the parent property of the main +<link doc="njs_api.xml" id="http">HTTP Request</link> +object caused a segmentation fault. +</para> +</listitem> + +</list> +</para> + +<para> +Core: +<list type="bullet"> + +<listitem> +<para> +Feature: +added the pretty string representation for values. +</para> +</listitem> + +<listitem> +<para> +Feature: +correctly printing floating point numbers. +</para> +</listitem> + +<listitem> +<para> +Feature: +correctly parsing floating point numbers. +</para> +</listitem> + +<listitem> +<para> +Feature: +<link doc="njs_api.xml" id="string_bytesfrom">String.bytesFrom()</link> method +(decoding <literal>hex</literal>, +<literal>base64</literal>, +<literal>base64url</literal> into a byte string). +</para> +</listitem> + +<listitem> +<para> +Feature: +<link doc="njs_api.xml" id="string_padstart">String.padStart()</link> and +<link doc="njs_api.xml" id="string_padend">String.padEnd()</link> methods. +</para> +</listitem> + +<listitem> +<para> +Feature: +added support of binary literals. +</para> +</listitem> + +<listitem> +<para> +Improvement: +added information about illegal token in number parsing. +</para> +</listitem> + +<listitem> +<para> +Improvement: +allowed uppercased <literal>O</literal> in octal literal values. +</para> +</listitem> + +<listitem> +<para> +Improvement: +added support for multiple arguments in <literal>console.log()</literal>. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed applying <literal>call()</literal> to methods of external values. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed addition operator applied to an object. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed exception handling in <literal>njs_vm_value_to_ext_string()</literal>. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed <literal>Number()</literal> with boolean, null and undefined arguments. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed error handling of setting non-numeric <literal>Array.length</literal>. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed autocompletion for global objects. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +miscellaneous additional bugs have been fixed. +</para> +</listitem> + +</list> +</para> + +</section> + + +<section id="njs0.2.2" name="Changes with 0.2.2"> + +<para> +Release Date: +19 June 2018 +</para> + +<para> +nginx modules: +<list type="bullet"> + +<listitem> +<para> +Change: +merged HTTP <literal>Response</literal> and <literal>Reply</literal> +into <link doc="njs_api.xml" id="http">HTTP Request</link>. +New members of <literal>Request</literal>: + +<list type="bullet"> + +<listitem> +<para> +<literal>req.status</literal> (<literal>res.status</literal>) +</para> +</listitem> + +<listitem> +<para> +<literal>req.parent</literal> (<literal>reply.parent</literal>) +</para> +</listitem> + +<listitem> +<para> +<literal>req.requestBody</literal> (<literal>req.body</literal>) +</para> +</listitem> + +<listitem> +<para> +<literal>req.responseBody</literal> (<literal>reply.body</literal>) +</para> +</listitem> + +<listitem> +<para> +<literal>req.headersIn</literal> (<literal>req.headers</literal>) +</para> +</listitem> + +<listitem> +<para> +<literal>req.headersOut</literal> (<literal>res.headers</literal>) +</para> +</listitem> + +<listitem> +<para> +<literal>req.sendHeader()</literal> (<literal>res.sendHeader()</literal>) +</para> +</listitem> + +<listitem> +<para> +<literal>req.send()</literal> (<literal>res.send()</literal>) +</para> +</listitem> + +<listitem> +<para> +<literal>req.finish()</literal> (<literal>res.finish()</literal>) +</para> +</listitem> + +<listitem> +<para> +<literal>req.return()</literal> (<literal>res.return()</literal>) +</para> +</listitem> + +</list> +Deprecated members of <literal>Request</literal>: + +<list type="bullet"> + +<listitem> +<para> +<literal>req.body</literal> (use <literal>req.requestBody</literal> +or <literal>req.responseBody</literal>) +</para> +</listitem> + +<listitem> +<para> +<literal>req.headers</literal> (use <literal>req.headersIn</literal> +or <literal>req.headersOut</literal>) +</para> +</listitem> + +<listitem> +<para> +<literal>req.response</literal> +</para> +</listitem> + +</list> +The deprecated properties will be removed in next releases. +</para> +</listitem> + +<listitem> +<para> +Feature: +HTTP <link doc="njs_api.xml" id="r_internal_redirect">internalRedirect()</link> +method. +</para> +</listitem> + +</list> +</para> + +<para> +Core: +<list type="bullet"> + +<listitem> +<para> +Bugfix: +fixed heap-buffer-overflow in <literal>crypto.createHmac()</literal>. +</para> +</listitem> + +</list> +</para> + +</section> + + +<section id="njs0.2.1" name="Changes with 0.2.1"> + +<para> +Release Date: +31 May 2018 +</para> + +<para> +nginx modules: +<list type="bullet"> + +<listitem> +<para> +Feature: +HTTP request body getter. +</para> +</listitem> + +<listitem> +<para> +Improvement: +moved njs vm to the <literal>main</literal> configuration. +</para> +</listitem> + +<listitem> +<para> +Improvement: +improved logging for +<link doc="../http/ngx_http_js_module.xml" id="js_set"/> and +<link doc="../http/ngx_http_js_module.xml" id="js_content"/> directives. +</para> +</listitem> + +<listitem> +<para> +Improvement: +setting status code to 500 by default in the +<link doc="../http/ngx_http_js_module.xml" id="js_content"/> handler +</para> +</listitem> + +<listitem> +<para> +Improvement: +added the debug for the returned status code in +<link doc="../http/ngx_http_js_module.xml" id="js_content"/> handler +</para> +</listitem> + +<listitem> +<para> +Bugfix: fixed error logging in +<link doc="../http/ngx_http_js_module.xml" id="js_include"/>. +</para> +</listitem> + +</list> +</para> + +<para> +Core: +<list type="bullet"> + +<listitem> +<para> +Feature: +added array length setter. +</para> +</listitem> + +<listitem> +<para> +Improvement: +public header <literal>cleanup. njscript.h</literal> is renamed to +<literal>njs.h</literal>. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed crypto <literal>update()</literal> method after +<literal>digest()</literal> is called. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed <literal>crypto.createHmac()</literal> for keys with size <= alg size +and > 64. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed <literal>JSON.stringify()</literal> for arrays with empty cells. +</para> +</listitem> + +<listitem> +<para> + Bugfix: +fixed exception type for unsupported types in +<literal>JSON.stringify()</literal>. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed handling of undefined arguments of functions. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed handling of missing <literal>arg</literal> of +<literal>Object.getOwnPropertyDescriptor()</literal>. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed handling of properties in +<literal>Object.getOwnPropertyDescriptor()</literal>. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed the writeable flag of <literal>Array.length</literal> property. +</para> +</listitem> + +<listitem> +<para> +Bugfix: fixed return value type of <literal>clearTimeout()</literal>. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +fixed <literal>njs_vm_external_bind()</literal>. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +miscellaneous additional bugs have been fixed. +</para> +</listitem> + +</list> +</para> + +</section> + + +<section id="njs0.2.0" name="Changes with 0.2.0"> + +<para> +Release Date: +3 Apr 2018 +</para> + +<para> +<list type="bullet"> + +<listitem> +<para> +Feature: +reporting njs version by CLI. +</para> +</listitem> + +<listitem> +<para> +Feature: +textual description for type converting exceptions. +</para> +</listitem> + +<listitem> +Feature: +<literal>setTimeout()</literal> and +<literal>clearTimeout()</literal> methods. +</listitem> + +<listitem> +<para> +Feature: +Byte string to +<literal>hex</literal>, +<literal>base64</literal>, +<literal>base64url</literal> encodings. +</para> +</listitem> + +<listitem> +<para> +Feature: +<link url="https://nodejs.org/api/crypto.html#crypto_class_hash">Node.js style</link> +<literal>Crypto</literal> methods. +</para> +</listitem> + +<listitem> +<para> +Feature: +HTTP and stream +<literal>warn()</literal> and +<literal>error()</literal> methods. +</para> +</listitem> + +<listitem> +<para> +Feature: +HTTP <literal>subrequest()</literal> method. +</para> +</listitem> + +<listitem> +<para> +Feature: +HTTP <literal>return()</literal> method. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +miscellaneous bugs have been fixed in the core and +interactive shell. +</para> +</listitem> + +</list> +</para> + +</section> + +<section id="njs0.1.15" name="Changes with 0.1.15"> + +<para> +Release Date: +20 Nov 2017 +</para> + +<para> +<list type="bullet"> + +<listitem> +<para> +Feature: +<literal>Error</literal>, +<literal>EvalError</literal>, +<literal>InternalError</literal>, +<literal>RangeError</literal>, +<literal>ReferenceError</literal>, +<literal>SyntaxError</literal>, +<literal>TypeError</literal>, +<literal>URIError</literal> objects. +</para> +</listitem> + +<listitem> +<para> +Feature: +octal literals support. +</para> +</listitem> + +<listitem> +<para> +Feature: +<link url="https://nodejs.org/api/fs.html#fs_file_system">Node.js style</link> +<literal>File system</literal> access methods: +<literal>fs.readFile()</literal>, +<literal>fs.readFileSync()</literal>, +<literal>fs.appendFile()</literal>, +<literal>fs.appendFileSync()</literal>, +<literal>fs.writeFile()</literal>, +<literal>fs.writeFileSync()</literal>. +</para> +</listitem> + +<listitem> +<para> +Feature: +nginx modules print backtrace on exception. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +miscellaneous bugs have been fixed. +</para> +</listitem> + +</list> +</para> + +</section> + + +<section id="njs0.1.14" name="Changes with 0.1.14"> + +<para> +Release Date: +09 Oct 2017 +</para> + +<para> +<list type="bullet"> + +<listitem> +<para> +Feature: +JSON object. +</para> +</listitem> + +<listitem> +<para> +Feature: +object level completions in interactive shell. +</para> +</listitem> + +<listitem> +<para> +Feature: +various configure improvements. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +miscellaneous bugs have been fixed in the core and +interactive shell. +</para> +</listitem> + +</list> +</para> + +</section> + + +<section id="njs0.1.13" name="Changes with 0.1.13"> + +<para> +Release Date: +31 Aug 2017 +</para> + +<para> +<list type="bullet"> + +<listitem> +<para> +Feature: +<literal>console.log()</literal> and +<literal>console.help()</literal> +methods in interactive shell. +</para> +</listitem> + +<listitem> +<para> +Feature: +interactive shell prints backtrace on exception. +</para> +</listitem> + +<listitem> +<para> +Feature: +interactive shell by default +if <literal>libedit</literal> is available. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +processing of large files from +<literal>stdin</literal> in command line mode. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +improved <literal>editline</literal> detection. +</para> +</listitem> + +</list> +</para> + +</section> + + +<section id="njs0.1.12" name="Changes with 0.1.12"> + +<para> +Release Date: +08 Aug 2017 +</para> + +<para> +<list type="bullet"> + +<listitem> +<para> +Feature: +Interactive shell. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +in <literal>Object.isSealed()</literal>. +</para> +</listitem> + +</list> +</para> + +</section> + + +<section id="njs0.1.11" name="Changes with 0.1.11"> + +<para> +Release Date: +27 Jun 2017 +</para> + +<para> +<list type="bullet"> + +<listitem> +<para> +Feature: +<literal>Object.keys()</literal>, +<literal>Object.prototype.hasOwnProperty()</literal> +methods. +</para> +</listitem> + +<listitem> +<para> +Feature: +<literal>Object.defineProperty()</literal>, +<literal>Object.defineProperties()</literal>, +<literal>Object.getOwnPropertyDescriptor()</literal> +methods. +</para> +</listitem> + +<listitem> +<para> +Feature: +<literal>Object.getPrototypeOf()</literal>, +<literal>Object.prototype.isPrototypeOf()</literal> +methods. +</para> +</listitem> + +<listitem> +<para> +Feature: +<literal>Object.preventExtensions()</literal>, +<literal>Object.isExtensible()</literal>, +<literal>Object.freeze()</literal>, +<literal>Object.isFrozen()</literal>, +<literal>Object.seal()</literal>, +<literal>Object.isSealed()</literal> +methods. +</para> +</listitem> + +<listitem> +<para> +Feature: +scientific notation (<literal>3.35e10</literal>) literals support. +</para> +</listitem> + +<listitem> +<para> +Feature: +hexadecimal (<literal>0x1123</literal>) literals support. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +processing of large array indexes. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +in <literal>parseInt()</literal> and +<literal>Date.parse()</literal>. +</para> +</listitem> + +</list> +</para> + +</section> + + +<section id="njs0.1.10" name="Changes with 0.1.10"> + +<para> +Release Date: +04 Apr 2017 +</para> + +<para> +<list type="bullet"> + +<listitem> +<para> +Feature: +nested functions and function closures. +</para> +</listitem> + +<listitem> +<para> +Feature: +<literal>Array.of()</literal>, +<literal>Array.prototype.fill()</literal>, +<literal>Array.prototype.find()</literal>, +<literal>Array.prototype.findIndex()</literal> +methods. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +miscellaneous bugs and segmentation faults have been fixed. +</para> +</listitem> + +</list> +</para> + +</section> + + +<section id="njs0.1.9" name="Changes with 0.1.9"> + +<para> +Release Date: +01 Feb 2017 +</para> + +<para> +<list type="bullet"> + +<listitem> +<para> +Bugfix: +global variables were not initialized when njs was used +in nginx. +</para> +</listitem> + +</list> +</para> + +</section> + + +<section id="njs0.1.8" name="Changes with 0.1.8"> + +<para> +Release Date: +24 Jan 2017 +</para> + +<para> +<list type="bullet"> + +<listitem> +<para> +Change: +the <literal>strict</literal> mode is enforced, +variables must be explicitly declared. +</para> +</listitem> + + +<listitem> +<para> +Feature: +<literal>for</literal> and +<literal>for-in</literal> loops support variable declaration. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +global and function scopes have been fixed. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +now <literal>for-in</literal> loop does not discard the last value +of property variable. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +miscellaneous bugs and segmentation faults have been fixed. +</para> +</listitem> + +</list> +</para> + +</section> + + +<section id="njs0.1.7" name="Changes with 0.1.7"> + +<para> +Release Date: +27 Dec 2016 +</para> + +<para> +<list type="bullet"> + +<listitem> +<para> +Change: +the <link doc="../http/ngx_http_js_module.xml" id="js_include"/> directive +has been disabled at server and location levels. +</para> +</listitem> + +<listitem> +<para> +Feature: +exponentiation operators. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +miscellaneous bugs and segmentation faults have been fixed. +</para> +</listitem> + +</list> +</para> + +</section> + + +<section id="njs0.1.6" name="Changes with 0.1.6"> + +<para> +Release Date: +13 Dec 2016 +</para> + +<para> +<list type="bullet"> + +<listitem> +<para> +Change: +the <link doc="../http/ngx_http_js_module.xml" id="js_set"/> directive +has been disabled at server and location levels. +</para> +</listitem> + +<listitem> +<para> +Feature: +ES6 <literal>Math</literal> methods. +</para> +</listitem> + +<listitem> +<para> +Bugfix: +miscellaneous bugs and segmentation faults have been fixed. +</para> +</listitem> + +</list> +</para> + +</section> + +</article>