Mercurial > hg > nginx-site
view xml/en/docs/njs/compatibility.xml @ 2718:fb41de2d765a
Added default_server to ssl_reject_handshake example.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Tue, 04 May 2021 20:50:55 +0100 |
parents | e203e1106fb2 |
children | d874ae125c3c |
line wrap: on
line source
<?xml version="1.0"?> <!-- Copyright (C) Nginx, Inc. --> <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd"> <article name="Compatibility" link="/en/docs/njs/compatibility.html" lang="en" rev="29" toc="no"> <section> <para> njs is created in compliance with <link url="http://www.ecma-international.org/ecma-262/5.1/">ECMAScript 5.1</link> (strict mode) with some <link url="http://www.ecma-international.org/ecma-262/6.0/">ECMAScript 6</link> and later extensions. The compliance is still evolving. </para> <para> Definitions of njs specific properties and methods not compliant with ECMAScript can be found in <link doc="reference.xml">Reference</link>. Definitions of njs properties and methods compliant with ECMAScript can be found in <link url="http://www.ecma-international.org/ecma-262/">ECMAScript specification</link>. </para> <para> </para> </section> <section id="supported" name="What is currently supported"> <para> <list type="bullet" compact="no"> <listitem> Boolean values, numbers, strings, objects, arrays, functions, function constructors (<link doc="changes.xml" id="njs0.3.6">0.3.6</link>), and regular expressions </listitem> <listitem> ES5.1 operators, ES7 exponentiation operators </listitem> <listitem> ES5.1 statements: <literal>break</literal>, <literal>catch</literal>, <literal>continue</literal>, <literal>do while</literal>, <literal>else</literal>, <literal>finally</literal>, <literal>for</literal>, <literal>for in</literal>, <literal>if</literal>, <literal>return</literal>, <literal>switch</literal>, <literal>throw</literal>, <literal>try</literal>, <literal>var</literal>, <literal>while</literal>, labeled statements (<link doc="changes.xml" id="njs0.2.8">0.2.8</link>) </listitem> <listitem> <literal>Math</literal> properties: <list type="bullet"> <listitem> ES6: <literal>E</literal>, <literal>LN10</literal>, <literal>LN2</literal>, <literal>LOG10E</literal>, <literal>LOG2E</literal>, <literal>PI</literal>, <literal>SQRT1_2</literal>, <literal>SQRT2</literal> </listitem> </list> </listitem> <listitem> <literal>Math</literal> methods: <list type="bullet"> <listitem> ES6: <literal>abs</literal>, <literal>acos</literal>, <literal>acosh</literal>, <literal>asin</literal>, <literal>asinh</literal>, <literal>atan</literal>, <literal>atan2</literal>, <literal>atanh</literal>, <literal>cbrt</literal>, <literal>ceil</literal>, <literal>clz32</literal>, <literal>cos</literal>, <literal>cosh</literal>, <literal>exp</literal>, <literal>expm1</literal>, <literal>floor</literal>, <literal>fround</literal>, <literal>hypot</literal>, <literal>imul</literal>, <literal>log</literal>, <literal>log10</literal>, <literal>log1p</literal>, <literal>log2</literal>, <literal>max</literal>, <literal>min</literal>, <literal>pow</literal>, <literal>random</literal>, <literal>round</literal>, <literal>sign</literal>, <literal>sin</literal>, <literal>sinh</literal>, <literal>sqrt</literal>, <literal>tan</literal>, <literal>tanh</literal>, <literal>trunc</literal> </listitem> </list> </listitem> <listitem> <literal>Number</literal> properties: <list type="bullet"> <listitem> ES6: <literal>EPSILON</literal>, <literal>MAX_SAFE_INTEGER</literal>, <literal>MAX_VALUE</literal>, <literal>MIN_SAFE_INTEGER</literal>, <literal>MIN_VALUE</literal>, <literal>NEGATIVE_INFINITY</literal>, <literal>NaN</literal>, <literal>POSITIVE_INFINITY</literal> </listitem> </list> </listitem> <listitem> <literal>Number</literal> methods: <list type="bullet"> <listitem> ES6: <literal>isFinite</literal>, <literal>isInteger</literal>, <literal>isNaN</literal>, <literal>isSafeInteger</literal>, <literal>parseFloat</literal>, <literal>parseInt</literal> </listitem> </list> </listitem> <listitem> <literal>Number</literal> instance methods: <list type="bullet"> <listitem> ES6: <literal>toExponential</literal> (<link doc="changes.xml" id="njs0.3.6">0.3.6</link>), <literal>toFixed</literal> (<link doc="changes.xml" id="njs0.3.6">0.3.6</link>), <literal>toPrecision</literal> (<link doc="changes.xml" id="njs0.3.6">0.3.6</link>) </listitem> </list> </listitem> <listitem> <literal>String</literal> methods: <list type="bullet"> <listitem> ES5.1: <literal>fromCharCode</literal> </listitem> <listitem> ES6: <literal>fromCodePoint</literal> </listitem> </list> </listitem> <listitem> <literal>String</literal> instance methods: <list type="bullet"> <listitem> ES5.1: <literal>charAt</literal>, <literal>concat</literal>, <literal>indexOf</literal>, <literal>lastIndexOf</literal>, <literal>match</literal>, <literal>replace</literal>, <literal>search</literal>, <literal>slice</literal>, <literal>split</literal>, <literal>substr</literal>, <literal>substring</literal>, <literal>toLowerCase</literal>, <literal>trim</literal>, <literal>toUpperCase</literal> </listitem> <listitem> ES6: <literal>codePointAt</literal>, <literal>endsWith</literal>, <literal>includes</literal>, <literal>repeat</literal>, <literal>startsWith</literal> </listitem> <listitem> ES8: <literal>padEnd</literal>, <literal>padStart</literal> </listitem> <listitem> ES9: <literal>trimEnd</literal> (<link doc="changes.xml" id="njs0.3.4">0.3.4</link>), <literal>trimStart</literal> (<link doc="changes.xml" id="njs0.3.4">0.3.4</link>) </listitem> <listitem> non-standard: <link doc="reference.xml" id="string_bytesfrom"><literal>bytesFrom</literal></link> (<link doc="changes.xml" id="njs0.2.3">0.2.3</link>), <link doc="reference.xml" id="string_frombytes"><literal>fromBytes</literal></link>, <link doc="reference.xml" id="string_fromutf8"><literal>fromUTF8</literal></link>, <link doc="reference.xml" id="string_tobytes"><literal>toBytes</literal></link>, <link doc="reference.xml" id="string_toutf8"><literal>toUTF8</literal></link> </listitem> </list> </listitem> <listitem> <literal>Object</literal> methods: <list type="bullet"> <listitem> ES5.1: <literal>create</literal> (support without properties list), <literal>defineProperties</literal> (accessor descriptors support since <link doc="changes.xml" id="njs0.3.3">0.3.3</link>), <literal>defineProperty</literal> (accessor descriptors support since <link doc="changes.xml" id="njs0.3.3">0.3.3</link>), <literal>freeze</literal>, <literal>getOwnPropertyDescriptor</literal>, <literal>getOwnPropertyDescriptors</literal> (<link doc="changes.xml" id="njs0.3.1">0.3.1</link>), <literal>getOwnPropertyNames</literal> (<link doc="changes.xml" id="njs0.3.1">0.3.1</link>), <literal>getPrototypeOf</literal>, <literal>isExtensible</literal>, <literal>isFrozen</literal>, <literal>isSealed</literal>, <literal>keys</literal>, <literal>preventExtensions</literal>, <literal>seal</literal> </listitem> <listitem> ES6: <literal>assign</literal> (<link doc="changes.xml" id="njs0.3.7">0.3.7</link>) </listitem> <listitem> ES8: <literal>entries</literal> (<link doc="changes.xml" id="njs0.2.7">0.2.7</link>), <literal>values</literal> (<link doc="changes.xml" id="njs0.2.7">0.2.7</link>) </listitem> </list> </listitem> <listitem> <literal>Object</literal> instance methods: <list type="bullet"> <listitem> ES5.1: <literal>hasOwnProperty</literal>, <literal>isPrototypeOf</literal>, (<link doc="changes.xml" id="njs0.3.0">0.3.0</link>), <literal>propertyIsEnumerable</literal>, <literal>toString</literal>, <literal>valueOf</literal> </listitem> <listitem> ES6: <literal>is</literal> (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>), <literal>setPrototypeOf</literal> (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>) </listitem> </list> </listitem> <listitem> <literal>Array</literal> methods: <list type="bullet"> <listitem> ES5.1: <literal>isArray</literal> </listitem> <listitem> ES6: <literal>of</literal> </listitem> </list> </listitem> <listitem> <literal>Array</literal> instance methods: <list type="bullet"> <listitem> ES5.1: <literal>concat</literal>, <literal>every</literal>, <literal>filter</literal>, <literal>forEach</literal>, <literal>indexOf</literal>, <literal>join</literal>, <literal>lastIndexOf</literal>, <literal>map</literal>, <literal>pop</literal>, <literal>push</literal>, <literal>reduce</literal>, <literal>reduceRight</literal>, <literal>reverse</literal>, <literal>shift</literal>, <literal>slice</literal>, <literal>some</literal>, <literal>sort</literal>, <literal>splice</literal>, <literal>unshift</literal> </listitem> <listitem> ES6: <literal>copyWithin</literal> (<link doc="changes.xml" id="njs0.3.7">0.3.7</link>), <literal>fill</literal>, <literal>find</literal>, <literal>findIndex</literal> </listitem> <listitem> ES7: <literal>includes</literal> </listitem> </list> </listitem> <listitem> <literal>ArrayBuffer</literal> methods (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>): <list type="bullet"> <listitem> ES6: <literal>isView</literal> </listitem> </list> </listitem> <listitem> <literal>ArrayBuffer</literal> instance methods (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>): <list type="bullet"> <listitem> ES6: <literal>slice</literal> </listitem> </list> </listitem> <listitem> <literal>Typed-array</literal> constructors (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>): <list type="bullet"> <listitem> ES6: <literal>Int8Array</literal>, <literal>Uint8Array</literal>, <literal>Uint8ClampedArray</literal>, <literal>Int16Array</literal>, <literal>Uint16Array</literal>, <literal>Int32Array</literal>, <literal>Uint32Array</literal>, <literal>Float32Array</literal>, <literal>Float64Array</literal> </listitem> </list> </listitem> <listitem> <literal>Typed-array</literal> instance methods (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>): <list type="bullet"> <listitem> ES6: <literal>copyWithin</literal>, <literal>every</literal> (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>), <literal>fill</literal>, <literal>filter</literal> (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>), <literal>find</literal> (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>), <literal>findIndex</literal> (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>), <literal>forEach</literal> (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>), <literal>includes</literal> (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>), <literal>indexOf</literal> (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>), <literal>join</literal>, <literal>lastIndexOf</literal> (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>), <literal>map</literal> (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>), <literal>reduce</literal> (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>), <literal>reduceRight</literal> (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>), <literal>reverse</literal> (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>), <literal>set</literal>, <literal>slice</literal>, <literal>some</literal> (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>), <literal>sort</literal> (<link doc="changes.xml" id="njs0.4.2">0.4.2</link>), <literal>subarray</literal>, <literal>toString</literal> </listitem> </list> </listitem> <listitem> <literal>Buffer</literal> methods (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>): <list type="bullet"> <listitem> <link doc="reference.xml" id="buffer_alloc"><literal>alloc</literal></link>, <link doc="reference.xml" id="buffer_alloc_unsafe"><literal>allocUnsafe</literal></link>, <link doc="reference.xml" id="buffer_bytelength"><literal>byteLength</literal></link>, <link doc="reference.xml" id="buffer_compare"><literal>compare</literal></link>, <link doc="reference.xml" id="buffer_concat"><literal>concat</literal></link>, <link doc="reference.xml" id="buffer_from_array"><literal>from</literal></link>, <link doc="reference.xml" id="buffer_is_buffer"><literal>isBuffer</literal></link>, <link doc="reference.xml" id="buffer_is_encoding"><literal>isEncoding</literal></link> </listitem> </list> </listitem> <listitem> <literal>Buffer</literal> instance methods: (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>): <list type="bullet"> <listitem> <link doc="reference.xml" id="buf_compare"><literal>compare</literal></link>, <link doc="reference.xml" id="buf_copy"><literal>copy</literal></link>, <link doc="reference.xml" id="buf_equals"><literal>equals</literal></link>, <link doc="reference.xml" id="buf_fill"><literal>fill</literal></link>, <link doc="reference.xml" id="buf_includes"><literal>includes</literal></link>, <link doc="reference.xml" id="buf_indexof"><literal>indexOf</literal></link>, <link doc="reference.xml" id="buf_lastindexof"><literal>lastIndexOf</literal></link>, <link doc="reference.xml" id="buf_readintbe"><literal>readIntBE</literal></link>, <literal>readInt8</literal>, <literal>readInt16BE</literal>, <literal>readInt32BE</literal>, <link doc="reference.xml" id="buf_readintle"><literal>readIntLE</literal></link>, <literal>readInt8</literal>, <literal>readInt16LE</literal>, <literal>readInt32LE</literal>, <link doc="reference.xml" id="buf_readuintbe"><literal>readUIntBE</literal></link>, <literal>readUInt8</literal>, <literal>readUInt16BE</literal>, <literal>readUInt32BE</literal>, <link doc="reference.xml" id="buf_readuintle"><literal>readUIntLE</literal></link>, <literal>readUInt8</literal>, <literal>readUInt16LE</literal>, <literal>readUInt32LE</literal>, <link doc="reference.xml" id="buf_readdobulebe"><literal>readDoubleBE</literal></link>, <link doc="reference.xml" id="buf_readdobulele"><literal>readDoubleLE</literal></link>, <link doc="reference.xml" id="buf_readfloatbe"><literal>readFloatBE</literal></link>, <link doc="reference.xml" id="buf_readfloatle"><literal>readFloatLE</literal></link>, <link doc="reference.xml" id="buf_subarray"><literal>subarray</literal></link>, <link doc="reference.xml" id="buf_slice"><literal>slice</literal></link>, <link doc="reference.xml" id="buf_swap16"><literal>swap16</literal></link>, <link doc="reference.xml" id="buf_swap32"><literal>swap32</literal></link>, <link doc="reference.xml" id="buf_swap64"><literal>swap64</literal></link>, <link doc="reference.xml" id="buf_tojson"><literal>toJSON</literal></link>, <link doc="reference.xml" id="buf_tostring"><literal>toString</literal></link>, <link doc="reference.xml" id="buf_write"><literal>write</literal></link>, <link doc="reference.xml" id="buf_writeintbe"><literal>writeIntBE</literal></link>, <literal>writeInt8</literal>, <literal>writeInt16BE</literal>, <literal>writeInt32BE</literal>, <link doc="reference.xml" id="buf_writeintle"><literal>writeIntLE</literal></link>, <literal>writeInt8</literal>, <literal>writeInt16LE</literal>, <literal>writeInt32LE</literal>, <link doc="reference.xml" id="buf_writeuintbe"><literal>writeUIntBE</literal></link>, <literal>writeUInt8</literal>, <literal>writeUInt16BE</literal>, <literal>writeUInt32BE</literal>, <link doc="reference.xml" id="buf_writeuintle"><literal>writeUIntLE</literal></link>, <literal>writeUInt8</literal>, <literal>writeUInt16LE</literal>, <literal>writeUInt32LE</literal>, <link doc="reference.xml" id="buf_writedoublebe"><literal>writeDoubleBE</literal></link>, <link doc="reference.xml" id="buf_writedoublele"><literal>writeDoubleLE</literal></link>, <link doc="reference.xml" id="buf_writefloatbe"><literal>writeFloatBE</literal></link>, <link doc="reference.xml" id="buf_writefloatle"><literal>writeFloatLE</literal></link> </listitem> </list> </listitem> <listitem> <literal>Promise</literal> methods (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>): <list type="bullet"> <listitem> ES6: <literal>reject</literal>, <literal>resolve</literal> </listitem> </list> </listitem> <listitem> <literal>Promise</literal> instance methods (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>): <list type="bullet"> <listitem> ES6: <literal>catch</literal>, <literal>finally</literal>, <literal>then</literal> </listitem> </list> </listitem> <listitem> <literal>Function</literal> instance methods: <list type="bullet"> <listitem> ES5.1: <literal>apply</literal>, <literal>bind</literal>, <literal>call</literal> </listitem> </list> </listitem> <listitem> <literal>RegExp</literal> instance methods: <list type="bullet"> <listitem> ES5.1: <literal>exec</literal>, <literal>test</literal>, <literal>toString</literal> </listitem> </list> </listitem> <listitem> <literal>RegExp</literal> ES9 named capture groups (<link doc="changes.xml" id="njs0.3.2">0.3.2</link>) </listitem> <listitem> <literal>DataView</literal> instance methods (<link doc="changes.xml" id="njs0.4.4">0.4.4</link>): <list type="bullet"> <listitem> ES6: <literal>getFloat32</literal>, <literal>getFloat64</literal>, <literal>getInt16</literal>, <literal>getInt32</literal>, <literal>getInt8</literal>, <literal>getUint16</literal>, <literal>getUint32</literal>, <literal>getUint8</literal>, <literal>setFloat32</literal>, <literal>setFloat64</literal>, <literal>setInt16</literal>, <literal>setInt32</literal>, <literal>setInt8</literal>, <literal>setUint16</literal>, <literal>setUint32</literal>, <literal>setUint8</literal> </listitem> </list> </listitem> <listitem> <literal>Date</literal> methods: <list type="bullet"> <listitem> ES5.1: <literal>now</literal>, <literal>parse</literal>, <literal>UTC</literal> </listitem> </list> </listitem> <listitem> <literal>Date</literal> instance methods: <list type="bullet"> <listitem> ES5.1: <literal>getDate</literal>, <literal>getDay</literal>, <literal>getFullYear</literal>, <literal>getHours</literal>, <literal>getMilliseconds</literal>, <literal>getMinutes</literal>, <literal>getMonth</literal>, <literal>getSeconds</literal>, <literal>getTime</literal>, <literal>getTimezoneOffset</literal>, <literal>getUTCDate</literal>, <literal>getUTCDay</literal>, <literal>getUTCFullYear</literal>, <literal>getUTCHours</literal>, <literal>getUTCMilliseconds</literal>, <literal>getUTCMinutes</literal>, <literal>getUTCMonth</literal>, <literal>getUTCSeconds</literal>, <literal>toDateString</literal>, <literal>toISOString</literal>, <literal>toLocaleDateString</literal>, <literal>toLocaleString</literal>, <literal>toLocaleTimeString</literal>, <literal>toTimeString</literal>, <literal>toUTCString</literal>, <literal>setDate</literal>, <literal>setFullYear</literal>, <literal>setHours</literal>, <literal>setMinutes</literal>, <literal>setMilliseconds</literal>, <literal>setMonth</literal>, <literal>setSeconds</literal>, <literal>setTime</literal>, <literal>setUTCDate</literal>, <literal>setUTCFullYear</literal>, <literal>setUTCHours</literal>, <literal>setUTCMilliseconds</literal>, <literal>setUTCMinutes</literal>, <literal>setUTCMonth</literal>, <literal>setUTCSeconds</literal> </listitem> </list> </listitem> <listitem> <literal>JSON</literal> methods: <list type="bullet"> <listitem> ES5.1: <literal>parse</literal> <literal>stringify</literal> </listitem> </list> </listitem> <listitem> ES5.1 <literal>arguments</literal> object (<link doc="changes.xml" id="njs0.2.5">0.2.5</link>) </listitem> <listitem> ES6 rest parameters syntax (without destructuring support) (<link doc="changes.xml" id="njs0.2.7">0.2.7</link>) </listitem> <listitem> ES5.1 global functions: <literal>decodeURI</literal>, <literal>decodeURIComponent</literal>, <literal>encodeURI</literal>, <literal>encodeURIComponent</literal>, <literal>isFinite</literal>, <literal>isNaN</literal>, <literal>parseFloat</literal>, <literal>parseInt</literal> </listitem> <listitem> <literal>Error</literal> objects: <literal>Error</literal>, <literal>EvalError</literal>, <literal>InternalError</literal>, <literal>RangeError</literal>, <literal>ReferenceError</literal>, <literal>SyntaxError</literal>, <literal>TypeError</literal>, <literal>URIError</literal> </listitem> <listitem> <link doc="reference.xml" id="cleartimeout"><literal>clearTimeout</literal></link> and <link doc="reference.xml" id="settimeout"><literal>setTimeout</literal></link> functions (<link doc="changes.xml" id="njs0.2.0">0.2.0</link>) </listitem> <listitem> <literal>File system</literal> methods: <link doc="reference.xml" id="fs_accesssync"><literal>fs.accessSync</literal></link> (<link doc="changes.xml" id="njs0.3.9">0.3.9</link>), <link doc="reference.xml" id="appendfilesync"><literal>fs.appendFileSync</literal></link>, <link doc="reference.xml" id="fs_mkdirsync"><literal>fs.mkdirSync</literal></link> (<link doc="changes.xml" id="njs0.4.2">0.4.2</link>), <link doc="reference.xml" id="fs_readdirsync"><literal>fs.readdirSync</literal></link> (<link doc="changes.xml" id="njs0.4.2">0.4.2</link>), <link doc="reference.xml" id="readfilesync"><literal>fs.readFileSync</literal></link>, <link doc="reference.xml" id="fs_realpathsync"><literal>fs.realpathSync</literal></link> (<link doc="changes.xml" id="njs0.3.9">0.3.9</link>), <link doc="reference.xml" id="fs_renamesync"><literal>fs.renameSync</literal></link> (<link doc="changes.xml" id="njs0.3.4">0.3.4</link>), <link doc="reference.xml" id="fs_rmdirsync"><literal>fs.rmdirSync</literal></link> (<link doc="changes.xml" id="njs0.4.2">0.4.2</link>), <link doc="reference.xml" id="fs_symlinksync"><literal>fs.symlinkSync</literal></link> (<link doc="changes.xml" id="njs0.3.9">0.3.9</link>), <link doc="reference.xml" id="fs_unlinksync"><literal>fs.unlinkSync</literal></link> (<link doc="changes.xml" id="njs0.3.9">0.3.9</link>), <link doc="reference.xml" id="fs_writefilesync"><literal>fs.writeFileSync</literal></link> </listitem> <listitem> <literal>fs.promises</literal> API (<link doc="changes.xml" id="njs0.3.9">0.3.9</link>), asynchronous version of file system methods. </listitem> <listitem> <literal>Crypto</literal> methods (<link doc="changes.xml" id="njs0.2.0">0.2.0</link>): <link doc="reference.xml" id="crypto_createhash"><literal>crypto.createHash</literal></link>, <link doc="reference.xml" id="crypto_createhmac"><literal>crypto.createHmac</literal></link> </listitem> <listitem id="querysting"> <link doc="reference.xml" id="querystring"><literal>Query String</literal></link> methods (<link doc="changes.xml" id="njs0.4.3">0.4.3</link>): <link doc="reference.xml" id="querystring_decode"><literal>querystring.decode</literal></link>, <link doc="reference.xml" id="querystring_encode"><literal>querystring.encode</literal></link>, <link doc="reference.xml" id="querystring_escape"><literal>querystring.escape</literal></link>, <link doc="reference.xml" id="querystring_parse"><literal>querystring.parse</literal></link>, <link doc="reference.xml" id="querystring_stringify"><literal>querystring.stringify</literal></link>, <link doc="reference.xml" id="querystring_unescape"><literal>querystring.unescape</literal></link> </listitem> <listitem id="textdecoder"> <link doc="reference.xml" id="textdecoder"><literal>TextDecoder</literal></link> methods (<link doc="changes.xml" id="njs0.4.3">0.4.3</link>): <link doc="reference.xml" id="textdecoder_encoding"><literal>encoding</literal></link>, <link doc="reference.xml" id="textdecoder_fatal"><literal>fatal</literal></link>, <link doc="reference.xml" id="textdecoder_ignorebom"><literal>ignoreBOM</literal></link>, <link doc="reference.xml" id="textdecoder_ignorebom"><literal>decode</literal></link> </listitem> <listitem id="textencoder"> <link doc="reference.xml" id="textencoder"><literal>TextEncoder</literal></link> methods (<link doc="changes.xml" id="njs0.4.3">0.4.3</link>): <link doc="reference.xml" id="textencoder_encode"><literal>encode</literal></link>, <link doc="reference.xml" id="textencoder_encodeinto"><literal>encodeInto</literal></link> </listitem> <listitem> ES6 modules support: default <literal>export</literal> and default <literal>import</literal> statements (<link doc="changes.xml" id="njs0.3.0">0.3.0</link>) </listitem> <listitem> ES6 arrow functions (<link doc="changes.xml" id="njs0.3.1">0.3.1</link>) </listitem> <listitem> Template literals: multiline strings, expression interpolation, nesting templates (<link doc="changes.xml" id="njs0.3.2">0.3.2</link>) </listitem> <listitem> Global objects (<link doc="changes.xml" id="njs0.3.3">0.3.3</link>): <list type="bullet"> <listitem> <literal>globalThis</literal> alias (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>), </listitem> <listitem> <link doc="reference.xml" id="process"><literal>process</literal></link> </listitem> </list> </listitem> </list> </para> </section> </article>