comparison xml/en/docs/njs/changes.xml @ 2569:2edc64c05b0e

Removed ECMAScript methods from njs Reference.
author Yaroslav Zhuravlev <yar@nginx.com>
date Tue, 14 Jul 2020 16:44:46 +0100
parents ca1ccafab5ef
children 44792f1ee284
comparison
equal deleted inserted replaced
2568:aa015272ea32 2569:2edc64c05b0e
7 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd"> 7 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd">
8 8
9 <article name="Changes" 9 <article name="Changes"
10 link="/en/docs/njs/changes.html" 10 link="/en/docs/njs/changes.html"
11 lang="en" 11 lang="en"
12 rev="33" 12 rev="34"
13 toc="no"> 13 toc="no">
14 14
15 <section id="njs0.4.2" name="Changes with njs 0.4.2"> 15 <section id="njs0.4.2" name="Changes with njs 0.4.2">
16 16
17 <para> 17 <para>
80 80
81 <listitem> 81 <listitem>
82 <para> 82 <para>
83 Bugfix: 83 Bugfix:
84 fixed 84 fixed
85 <link doc="reference.xml" id="string_repeat"><literal>String.prototype.repeat()</literal></link> 85 <literal>String.prototype.repeat()</literal>
86 according to the specification. 86 according to the specification.
87 </para> 87 </para>
88 </listitem> 88 </listitem>
89 89
90 <listitem> 90 <listitem>
91 <para> 91 <para>
92 Bugfix: 92 Bugfix:
93 fixed 93 fixed
94 <link doc="reference.xml" id="string_replace"><literal>String.prototype.replace()</literal></link> 94 <literal>String.prototype.replace()</literal>
95 according to the specification. 95 according to the specification.
96 </para> 96 </para>
97 </listitem> 97 </listitem>
98 98
99 <listitem> 99 <listitem>
306 306
307 <listitem> 307 <listitem>
308 <para> 308 <para>
309 Bugfix: 309 Bugfix:
310 fixed 310 fixed
311 <link doc="reference.xml" id="string_replace"><literal>String.prototype.replace()</literal></link> 311 <literal>String.prototype.replace()</literal>
312 when function returns non-string. 312 when function returns non-string.
313 </para> 313 </para>
314 </listitem> 314 </listitem>
315 315
316 <listitem> 316 <listitem>
427 427
428 <listitem> 428 <listitem>
429 <para> 429 <para>
430 Bugfix: 430 Bugfix:
431 fixed 431 fixed
432 <link doc="reference.xml" id="encodeuri"><literal>encodeURI()</literal></link> 432 <literal>encodeURI()</literal>
433 and 433 and
434 <link doc="reference.xml" id="decodeuri"><literal>decodeURI()</literal></link> 434 <literal>decodeURI()</literal>
435 according to the specification. 435 according to the specification.
436 </para> 436 </para>
437 </listitem> 437 </listitem>
438 438
439 <listitem> 439 <listitem>
445 445
446 <listitem> 446 <listitem>
447 <para> 447 <para>
448 Bugfix: 448 Bugfix:
449 fixed handling of space argument in 449 fixed handling of space argument in
450 <link doc="reference.xml" id="core_json_stringify"><literal>JSON.stringify()</literal></link>. 450 <literal>JSON.stringify()</literal>.
451 </para> 451 </para>
452 </listitem> 452 </listitem>
453 453
454 <listitem> 454 <listitem>
455 <para> 455 <para>
456 Bugfix: 456 Bugfix:
457 fixed 457 fixed
458 <link doc="reference.xml" id="core_json_stringify"><literal>JSON.stringify()</literal></link> 458 <literal>JSON.stringify()</literal>
459 with 459 with
460 <literal>Number()</literal> and 460 <literal>Number()</literal> and
461 <literal>String()</literal> 461 <literal>String()</literal>
462 objects. 462 objects.
463 </para> 463 </para>
465 465
466 <listitem> 466 <listitem>
467 <para> 467 <para>
468 Bugfix: 468 Bugfix:
469 fixed Unicode Escaping in 469 fixed Unicode Escaping in
470 <link doc="reference.xml" id="core_json_stringify"><literal>JSON.stringify()</literal></link> 470 <literal>JSON.stringify()</literal>
471 according to specification. 471 according to specification.
472 </para> 472 </para>
473 </listitem> 473 </listitem>
474 474
475 <listitem> 475 <listitem>
574 574
575 <listitem> 575 <listitem>
576 <para> 576 <para>
577 Feature: 577 Feature:
578 added externals support for 578 added externals support for
579 <link doc="reference.xml" id="core_json_stringify"><literal>JSON.stringify()</literal></link>. 579 <literal>JSON.stringify()</literal>.
580 </para> 580 </para>
581 </listitem> 581 </listitem>
582 582
583 <listitem> 583 <listitem>
584 <para> 584 <para>
623 623
624 <listitem> 624 <listitem>
625 <para> 625 <para>
626 Bugfix: 626 Bugfix:
627 fixed 627 fixed
628 <link doc="reference.xml" id="core_json_stringify"><literal>JSON.stringify()</literal></link> 628 <literal>JSON.stringify()</literal>
629 with unprintable values and replacer function. 629 with unprintable values and replacer function.
630 </para> 630 </para>
631 </listitem> 631 </listitem>
632 632
633 <listitem> 633 <listitem>
1010 1010
1011 <listitem> 1011 <listitem>
1012 <para> 1012 <para>
1013 Bugfix: 1013 Bugfix:
1014 fixed 1014 fixed
1015 <link doc="reference.xml" id="string_replace"><literal>String.prototype.replace()</literal></link> 1015 <literal>String.prototype.replace()</literal>
1016 when first argument is not a string. 1016 when first argument is not a string.
1017 </para> 1017 </para>
1018 </listitem> 1018 </listitem>
1019 1019
1020 <listitem> 1020 <listitem>
1068 </listitem> 1068 </listitem>
1069 1069
1070 <listitem> 1070 <listitem>
1071 <para> 1071 <para>
1072 Bugfix: 1072 Bugfix:
1073 fixed <literal>Date.UTC()</literal> according to the specification. 1073 fixed
1074 </para> 1074 <literal>Date.UTC()</literal>
1075 </listitem> 1075 according to the specification.
1076 1076 </para>
1077 <listitem> 1077 </listitem>
1078 <para> 1078
1079 Bugfix: 1079 <listitem>
1080 fixed <literal>Date()</literal> constructor according to the specification. 1080 <para>
1081 </para> 1081 Bugfix:
1082 </listitem> 1082 fixed
1083 1083 <literal>Date()</literal> constructor
1084 <listitem> 1084 according to the specification.
1085 <para> 1085 </para>
1086 Bugfix: 1086 </listitem>
1087 fixed type of <literal>Date.prototype</literal>. 1087
1088 <listitem>
1089 <para>
1090 Bugfix:
1091 fixed type of
1092 <literal>Date.prototype</literal>.
1088 Thanks to Artem S. Povalyukhin. 1093 Thanks to Artem S. Povalyukhin.
1089 </para> 1094 </para>
1090 </listitem> 1095 </listitem>
1091 1096
1092 <listitem> 1097 <listitem>
1093 <para> 1098 <para>
1094 Bugfix: 1099 Bugfix:
1095 fixed <literal>Date.prototype.setTime()</literal>. 1100 fixed
1101 <literal>Date.prototype.setTime()</literal>.
1096 Thanks to Artem S. Povalyukhin. 1102 Thanks to Artem S. Povalyukhin.
1097 </para> 1103 </para>
1098 </listitem> 1104 </listitem>
1099 1105
1100 <listitem> 1106 <listitem>
1105 </listitem> 1111 </listitem>
1106 1112
1107 <listitem> 1113 <listitem>
1108 <para> 1114 <para>
1109 Bugfix: 1115 Bugfix:
1110 fixed <literal>caller</literal> and <literal>arguments</literal> 1116 fixed
1117 <literal>caller</literal> and
1118 <literal>arguments</literal>
1111 properties of a function instance. 1119 properties of a function instance.
1112 Thanks to Artem S. Povalyukhin. 1120 Thanks to Artem S. Povalyukhin.
1113 </para> 1121 </para>
1114 </listitem> 1122 </listitem>
1115 1123
1139 </listitem> 1147 </listitem>
1140 1148
1141 <listitem> 1149 <listitem>
1142 <para> 1150 <para>
1143 Bugfix: 1151 Bugfix:
1144 fixed <literal>[[SetPrototypeOf]]</literal>. 1152 fixed
1153 <literal>[[SetPrototypeOf]]</literal>.
1145 </para> 1154 </para>
1146 </listitem> 1155 </listitem>
1147 1156
1148 </list> 1157 </list>
1149 </para> 1158 </para>
1163 <list type="bullet"> 1172 <list type="bullet">
1164 1173
1165 <listitem> 1174 <listitem>
1166 <para> 1175 <para>
1167 Feature: 1176 Feature:
1168 added <literal>Object</literal> shorthand methods and computed property names. 1177 added
1178 <literal>Object</literal>
1179 shorthand methods and computed property names.
1169 Thanks to 洪志道 (Hong Zhi Dao) and Artem S. Povalyukhin. 1180 Thanks to 洪志道 (Hong Zhi Dao) and Artem S. Povalyukhin.
1170 </para> 1181 </para>
1171 </listitem> 1182 </listitem>
1172 1183
1173 <listitem> 1184 <listitem>
1188 1199
1189 <listitem> 1200 <listitem>
1190 <para> 1201 <para>
1191 Feature: 1202 Feature:
1192 added 1203 added
1193 <link doc="reference.xml" id="string_trimend"><literal>String.prototype.trimEnd()</literal></link> 1204 <literal>String.prototype.trimEnd()</literal>
1194 and 1205 and
1195 <link doc="reference.xml" id="string_trimstart"><literal>String.prototype.trimStart()</literal></link>. 1206 <literal>String.prototype.trimStart()</literal>.
1196 </para> 1207 </para>
1197 </listitem> 1208 </listitem>
1198 1209
1199 <listitem> 1210 <listitem>
1200 <para> 1211 <para>
1227 1238
1228 <listitem> 1239 <listitem>
1229 <para> 1240 <para>
1230 Bugfix: 1241 Bugfix:
1231 extended the list of space separators in 1242 extended the list of space separators in
1232 <link doc="reference.xml" id="string_trim"><literal>String.prototype.trim()</literal></link>. 1243 <literal>String.prototype.trim()</literal>.
1233 </para> 1244 </para>
1234 </listitem> 1245 </listitem>
1235 1246
1236 <listitem> 1247 <listitem>
1237 <para> 1248 <para>
1238 Bugfix: 1249 Bugfix:
1239 fixed using of uninitialized value in 1250 fixed using of uninitialized value in
1240 <link doc="reference.xml" id="string_padstart"><literal>String.prototype.padStart()</literal></link>. 1251 <literal>String.prototype.padStart()</literal>.
1241 </para> 1252 </para>
1242 </listitem> 1253 </listitem>
1243 1254
1244 <listitem> 1255 <listitem>
1245 <para> 1256 <para>
1246 Bugfix: 1257 Bugfix:
1247 fixed 1258 fixed
1248 <link doc="reference.xml" id="string_replace"><literal>String.prototype.replace()</literal></link> for <literal>$0</literal> and <literal>$&amp;</literal> replacement string. 1259 <literal>String.prototype.replace()</literal>
1249 </para> 1260 for <literal>$0</literal> and <literal>$&amp;</literal> replacement string.
1250 </listitem> 1261 </para>
1251 1262 </listitem>
1252 <listitem> 1263
1253 <para> 1264 <listitem>
1254 Bugfix: 1265 <para>
1255 fixed 1266 Bugfix:
1256 <link doc="reference.xml" id="string_replace"><literal>String.prototype.replace()</literal></link> 1267 fixed
1268 <literal>String.prototype.replace()</literal>
1257 for byte strings with regex argument. 1269 for byte strings with regex argument.
1258 </para> 1270 </para>
1259 </listitem> 1271 </listitem>
1260 1272
1261 <listitem> 1273 <listitem>
1262 <para> 1274 <para>
1263 Bugfix: 1275 Bugfix:
1264 fixed global match in 1276 fixed global match in
1265 <link doc="reference.xml" id="string_replace"><literal>String.prototype.replace()</literal></link> 1277 <literal>String.prototype.replace()</literal>
1266 with regexp argument. 1278 with regexp argument.
1267 </para> 1279 </para>
1268 </listitem> 1280 </listitem>
1269 1281
1270 <listitem> 1282 <listitem>
1292 1304
1293 <listitem> 1305 <listitem>
1294 <para> 1306 <para>
1295 Bugfix: 1307 Bugfix:
1296 fixed 1308 fixed
1297 <link doc="reference.xml" id="object_values"><literal>Object.values()</literal></link> 1309 <literal>Object.values()</literal>
1298 and 1310 and
1299 <link doc="reference.xml" id="object_entries"><literal>Object.entries()</literal></link> 1311 <literal>Object.entries()</literal>
1300 for shared objects. 1312 for shared objects.
1301 </para> 1313 </para>
1302 </listitem> 1314 </listitem>
1303 1315
1304 <listitem> 1316 <listitem>
1305 <para> 1317 <para>
1306 Bugfix: 1318 Bugfix:
1307 fixed uninitialized memory access in 1319 fixed uninitialized memory access in
1308 <link doc="reference.xml" id="string_match"><literal>String.prototype.match()</literal></link>. 1320 <literal>String.prototype.match()</literal>.
1309 </para> 1321 </para>
1310 </listitem> 1322 </listitem>
1311 1323
1312 <listitem> 1324 <listitem>
1313 <para> 1325 <para>
1314 Bugfix: 1326 Bugfix:
1315 fixed 1327 fixed
1316 <link doc="reference.xml" id="string_match"><literal>String.prototype.match()</literal></link> 1328 <literal>String.prototype.match()</literal>
1317 for byte strings with regex argument. 1329 for byte strings with regex argument.
1318 </para> 1330 </para>
1319 </listitem> 1331 </listitem>
1320 1332
1321 <listitem> 1333 <listitem>
1329 1341
1330 <listitem> 1342 <listitem>
1331 <para> 1343 <para>
1332 Bugfix: 1344 Bugfix:
1333 fixed 1345 fixed
1334 <link doc="reference.xml" id="string_substring"><literal>String.prototype.substring()</literal></link> 1346 <literal>String.prototype.substring()</literal>
1335 with empty substring. 1347 with empty substring.
1336 </para> 1348 </para>
1337 </listitem> 1349 </listitem>
1338 1350
1339 <listitem> 1351 <listitem>
1340 <para> 1352 <para>
1341 Bugfix: 1353 Bugfix:
1342 fixed invalid memory access in 1354 fixed invalid memory access in
1343 <link doc="reference.xml" id="string_substring"><literal>String.prototype.substring()</literal></link>. 1355 <literal>String.prototype.substring()</literal>.
1344 </para> 1356 </para>
1345 </listitem> 1357 </listitem>
1346 1358
1347 <listitem> 1359 <listitem>
1348 <para> 1360 <para>
1349 Bugfix: 1361 Bugfix:
1350 fixed 1362 fixed
1351 <link doc="reference.xml" id="string_fromcharcode"><literal>String.fromCharCode()</literal></link> 1363 <literal>String.fromCharCode()</literal>
1352 for code points more than <literal>65535</literal> and <literal>NaN</literal>. 1364 for code points more than <literal>65535</literal> and <literal>NaN</literal>.
1353 </para> 1365 </para>
1354 </listitem> 1366 </listitem>
1355 1367
1356 <listitem> 1368 <listitem>
1357 <para> 1369 <para>
1358 Bugfix: 1370 Bugfix:
1359 fixed 1371 fixed
1360 <link doc="reference.xml" id="string_tolowercase"><literal>String.prototype.toLowerCase()</literal></link> 1372 <literal>String.prototype.toLowerCase()</literal>
1361 and 1373 and
1362 <link doc="reference.xml" id="string_touppercase"><literal>String.prototype.toUpperCase()</literal></link>. 1374 <literal>String.prototype.toUpperCase()</literal>.
1363 </para> 1375 </para>
1364 </listitem> 1376 </listitem>
1365 1377
1366 <listitem> 1378 <listitem>
1367 <para> 1379 <para>
1368 Bugfix: 1380 Bugfix:
1369 fixed <literal>Error()</literal> constructor with no arguments. 1381 fixed
1370 </para> 1382 <literal>Error()</literal>
1371 </listitem> 1383 constructor with no arguments.
1372 1384 </para>
1373 <listitem> 1385 </listitem>
1374 <para> 1386
1375 Bugfix: 1387 <listitem>
1376 fixed <literal>in</literal> operator for values with accessor descriptors. 1388 <para>
1389 Bugfix:
1390 fixed
1391 <literal>in</literal>
1392 operator for values with accessor descriptors.
1377 </para> 1393 </para>
1378 </listitem> 1394 </listitem>
1379 1395
1380 <listitem> 1396 <listitem>
1381 <para> 1397 <para>
1493 1509
1494 <listitem> 1510 <listitem>
1495 <para> 1511 <para>
1496 Bugfix: 1512 Bugfix:
1497 fixed integer-overflow in 1513 fixed integer-overflow in
1498 <link doc="reference.xml" id="string_concat"><literal>String.prototype.concat()</literal></link>. 1514 <literal>String.prototype.concat()</literal>.
1499 </para> 1515 </para>
1500 </listitem> 1516 </listitem>
1501 1517
1502 <listitem> 1518 <listitem>
1503 <para> 1519 <para>
1545 1561
1546 <listitem> 1562 <listitem>
1547 <para> 1563 <para>
1548 Bugfix: 1564 Bugfix:
1549 fixed heap-buffer-overflow in 1565 fixed heap-buffer-overflow in
1550 <link doc="reference.xml" id="string_touppercase"><literal>toUpperCase()</literal></link> 1566 <literal>toUpperCase()</literal>
1551 and 1567 and
1552 <link doc="reference.xml" id="string_touppercase"><literal>toLowerCase()</literal></link>. 1568 <literal>toLowerCase()</literal>.
1553 </para> 1569 </para>
1554 </listitem> 1570 </listitem>
1555 1571
1556 <listitem> 1572 <listitem>
1557 <para> 1573 <para>
1570 1586
1571 <listitem> 1587 <listitem>
1572 <para> 1588 <para>
1573 Bugfix: 1589 Bugfix:
1574 fixed 1590 fixed
1575 <link doc="reference.xml" id="string_tobytes"><literal>String.prototype.toBytes()</literal></link> 1591 <literal>String.prototype.toBytes()</literal>
1576 for ASCII strings. 1592 for ASCII strings.
1577 </para> 1593 </para>
1578 </listitem> 1594 </listitem>
1579 1595
1580 <listitem> 1596 <listitem>
1581 <para> 1597 <para>
1582 Bugfix: 1598 Bugfix:
1583 fixed truth value of JSON numbers in 1599 fixed truth value of JSON numbers in
1584 <link doc="reference.xml" id="core_json_parse"><literal>JSON.parse()</literal></link>. 1600 <literal>JSON.parse()</literal>.
1585 </para> 1601 </para>
1586 </listitem> 1602 </listitem>
1587 1603
1588 <listitem> 1604 <listitem>
1589 <para> 1605 <para>
1672 </listitem> 1688 </listitem>
1673 1689
1674 <listitem> 1690 <listitem>
1675 <para> 1691 <para>
1676 Bugfix: 1692 Bugfix:
1677 fixed <literal>Regexp.prototype.exec()</literal> for Unicode-only regexps. 1693 fixed
1678 </para> 1694 <literal>Regexp.prototype.exec()</literal>
1679 </listitem> 1695 for Unicode-only regexps.
1680 1696 </para>
1681 <listitem> 1697 </listitem>
1682 <para> 1698
1683 Bugfix: 1699 <listitem>
1684 fixed <literal>njs_vm_value_dump()</literal> for empty string values. 1700 <para>
1701 Bugfix:
1702 fixed
1703 <literal>njs_vm_value_dump()</literal>
1704 for empty string values.
1685 </para> 1705 </para>
1686 </listitem> 1706 </listitem>
1687 1707
1688 <listitem> 1708 <listitem>
1689 <para> 1709 <para>
1700 </listitem> 1720 </listitem>
1701 1721
1702 <listitem> 1722 <listitem>
1703 <para> 1723 <para>
1704 Bugfix: 1724 Bugfix:
1705 fixed overflow in <literal>Array.prototype.concat()</literal>. 1725 fixed overflow in
1726 <literal>Array.prototype.concat()</literal>.
1706 </para> 1727 </para>
1707 </listitem> 1728 </listitem>
1708 1729
1709 <listitem> 1730 <listitem>
1710 <para> 1731 <para>
1729 </listitem> 1750 </listitem>
1730 1751
1731 <listitem> 1752 <listitem>
1732 <para> 1753 <para>
1733 Bugfix: 1754 Bugfix:
1734 fixed <literal>Date()</literal> constructor with one argument. 1755 fixed
1756 <literal>Date()</literal>
1757 constructor with one argument.
1735 </para> 1758 </para>
1736 </listitem> 1759 </listitem>
1737 1760
1738 <listitem> 1761 <listitem>
1739 <para> 1762 <para>
1790 </listitem> 1813 </listitem>
1791 1814
1792 <listitem> 1815 <listitem>
1793 <para> 1816 <para>
1794 Bugfix: 1817 Bugfix:
1795 fixed <literal>Array.prototype.slice()</literal> for UTF8-invalid byte strings. 1818 fixed
1796 </para> 1819 <literal>Array.prototype.slice()</literal>
1797 </listitem> 1820 for UTF8-invalid byte strings.
1798 1821 </para>
1799 <listitem> 1822 </listitem>
1800 <para> 1823
1801 Bugfix: 1824 <listitem>
1802 fixed <literal>String.prototype.split()</literal> for UTF8-invalid byte strings. 1825 <para>
1826 Bugfix:
1827 fixed
1828 <literal>String.prototype.split()</literal>
1829 for UTF8-invalid byte strings.
1803 </para> 1830 </para>
1804 </listitem> 1831 </listitem>
1805 1832
1806 <listitem> 1833 <listitem>
1807 <para> 1834 <para>
1836 </listitem> 1863 </listitem>
1837 1864
1838 <listitem> 1865 <listitem>
1839 <para> 1866 <para>
1840 Feature: 1867 Feature:
1841 added <literal>Object.getOwnPropertyNames()</literal>. 1868 added
1869 <literal>Object.getOwnPropertyNames()</literal>.
1842 Thanks to Artem S. Povalyukhin. 1870 Thanks to Artem S. Povalyukhin.
1843 </para> 1871 </para>
1844 </listitem> 1872 </listitem>
1845 1873
1846 <listitem> 1874 <listitem>
1847 <para> 1875 <para>
1848 Feature: 1876 Feature:
1849 added <literal>Object.getOwnPropertyDescriptors()</literal>. 1877 added
1878 <literal>Object.getOwnPropertyDescriptors()</literal>.
1850 Thanks to Artem S. Povalyukhin. 1879 Thanks to Artem S. Povalyukhin.
1851 </para> 1880 </para>
1852 </listitem> 1881 </listitem>
1853 1882
1854 <listitem> 1883 <listitem>
1882 </listitem> 1911 </listitem>
1883 1912
1884 <listitem> 1913 <listitem>
1885 <para> 1914 <para>
1886 Bugfix: 1915 Bugfix:
1887 fixed <literal>Function.prototype.bind()</literal>. 1916 fixed
1917 <literal>Function.prototype.bind()</literal>.
1888 Thanks to 洪志道 (Hong Zhi Dao). 1918 Thanks to 洪志道 (Hong Zhi Dao).
1889 </para> 1919 </para>
1890 </listitem> 1920 </listitem>
1891 1921
1892 <listitem> 1922 <listitem>
2013 </listitem> 2043 </listitem>
2014 2044
2015 <listitem> 2045 <listitem>
2016 <para> 2046 <para>
2017 Feature: 2047 Feature:
2018 added <literal>Object.prototype.propertyIsEnumerable()</literal>. 2048 added
2049 <literal>Object.prototype.propertyIsEnumerable()</literal>.
2019 </para> 2050 </para>
2020 </listitem> 2051 </listitem>
2021 2052
2022 <listitem> 2053 <listitem>
2023 <para> 2054 <para>
2050 </listitem> 2081 </listitem>
2051 2082
2052 <listitem> 2083 <listitem>
2053 <para> 2084 <para>
2054 Bugfix: 2085 Bugfix:
2055 fixed <literal>nxt_file_dirname()</literal> for paths with no dir component. 2086 fixed
2087 <literal>nxt_file_dirname()</literal> for paths with no dir component.
2056 </para> 2088 </para>
2057 </listitem> 2089 </listitem>
2058 2090
2059 </list> 2091 </list>
2060 </para> 2092 </para>
2128 </listitem> 2160 </listitem>
2129 2161
2130 <listitem> 2162 <listitem>
2131 <para> 2163 <para>
2132 Feature: 2164 Feature:
2133 added <literal>setImmediate()</literal> method. 2165 added
2166 <literal>setImmediate()</literal> method.
2134 </para> 2167 </para>
2135 </listitem> 2168 </listitem>
2136 2169
2137 <listitem> 2170 <listitem>
2138 <para> 2171 <para>
2142 </listitem> 2175 </listitem>
2143 2176
2144 <listitem> 2177 <listitem>
2145 <para> 2178 <para>
2146 Bugfix: 2179 Bugfix:
2147 fixed <literal>Function.prototype.bind()</literal>. 2180 fixed
2181 <literal>Function.prototype.bind()</literal>.
2148 </para> 2182 </para>
2149 </listitem> 2183 </listitem>
2150 2184
2151 <listitem> 2185 <listitem>
2152 <para> 2186 <para>
2172 <listitem> 2206 <listitem>
2173 <para> 2207 <para>
2174 Bugfix: 2208 Bugfix:
2175 fixed 2209 fixed
2176 setting special response headers in 2210 setting special response headers in
2177 <link doc="reference.xml" id="string_split"><literal>String.prototype.split()</literal></link> 2211 <literal>String.prototype.split()</literal>
2178 for Unicode strings. 2212 for Unicode strings.
2179 </para> 2213 </para>
2180 </listitem> 2214 </listitem>
2181 2215
2182 <listitem> 2216 <listitem>
2183 <para> 2217 <para>
2184 Bugfix: 2218 Bugfix:
2185 fixed heap-buffer-overflow in 2219 fixed heap-buffer-overflow in
2186 <link doc="reference.xml" id="string_split"><literal>String.prototype.split()</literal></link>. 2220 <literal>String.prototype.split()</literal>.
2187 </para> 2221 </para>
2188 </listitem> 2222 </listitem>
2189 2223
2190 <listitem> 2224 <listitem>
2191 <para> 2225 <para>
2192 Bugfix: 2226 Bugfix:
2193 fixed <literal>Array.prototype.fill()</literal>. 2227 fixed
2228 <literal>Array.prototype.fill()</literal>.
2194 Thanks to Artem S. Povalyukhin. 2229 Thanks to Artem S. Povalyukhin.
2195 </para> 2230 </para>
2196 </listitem> 2231 </listitem>
2197 2232
2198 <listitem> 2233 <listitem>
2252 2287
2253 <listitem> 2288 <listitem>
2254 <para> 2289 <para>
2255 Feature: 2290 Feature:
2256 added 2291 added
2257 <link doc="reference.xml" id="object_entries"><literal>Object.entries()</literal></link> 2292 <literal>Object.entries()</literal>
2258 method. 2293 method.
2259 </para> 2294 </para>
2260 </listitem> 2295 </listitem>
2261 2296
2262 <listitem> 2297 <listitem>
2263 <para> 2298 <para>
2264 Feature: 2299 Feature:
2265 added 2300 added
2266 <link doc="reference.xml" id="object_values"><literal>Object.values()</literal></link> 2301 <literal>Object.values()</literal>
2267 method. 2302 method.
2268 </para> 2303 </para>
2269 </listitem> 2304 </listitem>
2270 2305
2271 <listitem> 2306 <listitem>
2413 </listitem> 2448 </listitem>
2414 2449
2415 <listitem> 2450 <listitem>
2416 <para> 2451 <para>
2417 Bugfix: 2452 Bugfix:
2418 fixed handling non-object values in <literal>Object.keys()</literal>. 2453 fixed handling non-object values in
2419 </para> 2454 <literal>Object.keys()</literal>.
2420 </listitem> 2455 </para>
2421 2456 </listitem>
2422 <listitem> 2457
2423 <para> 2458 <listitem>
2424 Bugfix: 2459 <para>
2425 fixed parsing of throw statement inside <literal>if</literal> statement. 2460 Bugfix:
2461 fixed parsing of throw statement inside
2462 <literal>if</literal> statement.
2426 </para> 2463 </para>
2427 </listitem> 2464 </listitem>
2428 2465
2429 <listitem> 2466 <listitem>
2430 <para> 2467 <para>
2488 </listitem> 2525 </listitem>
2489 2526
2490 <listitem> 2527 <listitem>
2491 <para> 2528 <para>
2492 Bugfix: 2529 Bugfix:
2493 fixed <literal>s.off()</literal> in stream module. 2530 fixed
2494 </para> 2531 <literal>s.off()</literal> in stream module.
2495 </listitem> 2532 </para>
2496 2533 </listitem>
2497 <listitem> 2534
2498 <para> 2535 <listitem>
2499 Bugfix: 2536 <para>
2500 fixed processing of data chunks in <literal>js_filter</literal> in stream module. 2537 Bugfix:
2501 </para> 2538 fixed processing of data chunks in
2502 </listitem> 2539 <literal>js_filter</literal> in stream module.
2503 2540 </para>
2504 <listitem> 2541 </listitem>
2505 <para> 2542
2506 Bugfix: 2543 <listitem>
2507 fixed http <literal>status</literal> and 2544 <para>
2508 <literal>contentType</literal> getter in http module. 2545 Bugfix:
2546 fixed http
2547 <literal>status</literal> and
2548 <literal>contentType</literal>
2549 getter in http module.
2509 </para> 2550 </para>
2510 </listitem> 2551 </listitem>
2511 2552
2512 <listitem> 2553 <listitem>
2513 <para> 2554 <para>
2538 </listitem> 2579 </listitem>
2539 2580
2540 <listitem> 2581 <listitem>
2541 <para> 2582 <para>
2542 Improvement: 2583 Improvement:
2543 handling non-array values in <literal>Array.prototype.slice()</literal>. 2584 handling non-array values in
2544 </para> 2585 <literal>Array.prototype.slice()</literal>.
2545 </listitem> 2586 </para>
2546 2587 </listitem>
2547 <listitem> 2588
2548 <para> 2589 <listitem>
2549 Bugfix: 2590 <para>
2550 fixed <literal>Array.prototype.length</literal> setter 2591 Bugfix:
2551 </para> 2592 fixed
2552 </listitem> 2593 <literal>Array.prototype.length</literal> setter
2553 2594 </para>
2554 <listitem> 2595 </listitem>
2555 <para> 2596
2556 Bugfix: 2597 <listitem>
2557 fixed <literal>njs_array_alloc()</literal> for length > 2**31. 2598 <para>
2558 </para> 2599 Bugfix:
2559 </listitem> 2600 fixed
2560 2601 <literal>njs_array_alloc()</literal> for length > 2**31.
2561 <listitem> 2602 </para>
2562 <para> 2603 </listitem>
2563 Bugfix: 2604
2564 handling int overflow in <literal>njs_array_alloc()</literal> on 32bit archs. 2605 <listitem>
2606 <para>
2607 Bugfix:
2608 handling int overflow in
2609 <literal>njs_array_alloc()</literal> on 32bit archs.
2565 </para> 2610 </para>
2566 </listitem> 2611 </listitem>
2567 2612
2568 <listitem> 2613 <listitem>
2569 <para> 2614 <para>
2580 </listitem> 2625 </listitem>
2581 2626
2582 <listitem> 2627 <listitem>
2583 <para> 2628 <para>
2584 Bugfix: 2629 Bugfix:
2585 fixed <literal>Object.getOwnPropertyDescriptor()</literal> for complex object 2630 fixed
2586 (inherited from <literal>Array</literal> and <literal>string</literal> values). 2631 <literal>Object.getOwnPropertyDescriptor()</literal>
2587 </para> 2632 for complex object (inherited from
2588 </listitem> 2633 <literal>Array</literal> and
2589 2634 <literal>string</literal> values).
2590 <listitem> 2635 </para>
2591 <para> 2636 </listitem>
2592 Bugfix: 2637
2593 fixed <literal>Object.prototype.hasOwnProperty()</literal> 2638 <listitem>
2639 <para>
2640 Bugfix:
2641 fixed
2642 <literal>Object.prototype.hasOwnProperty()</literal>
2594 for non-object properties 2643 for non-object properties
2595 </para> 2644 </para>
2596 </listitem> 2645 </listitem>
2597 2646
2598 <listitem> 2647 <listitem>
2625 stream module handlers refactored. 2674 stream module handlers refactored.
2626 </para> 2675 </para>
2627 2676
2628 <para> 2677 <para>
2629 New methods and properties: 2678 New methods and properties:
2630 <link doc="reference.xml" id="s_on">s.on()</link>, 2679 <link doc="reference.xml" id="s_on"><literal>s.on()</literal></link>,
2631 <link doc="reference.xml" id="s_off">s.off()</link>, 2680 <link doc="reference.xml" id="s_off"><literal>s.off()</literal></link>,
2632 <link doc="reference.xml" id="s_allow">s.allow()</link>, 2681 <link doc="reference.xml" id="s_allow"><literal>s.allow()</literal></link>,
2633 <link doc="reference.xml" id="s_done">s.done()</link>, 2682 <link doc="reference.xml" id="s_done"><literal>s.done()</literal></link>,
2634 <link doc="reference.xml" id="s_decline">s.decline()</link>, 2683 <link doc="reference.xml" id="s_decline"><literal>s.decline()</literal></link>,
2635 <link doc="reference.xml" id="s_deny">s.deny()</link>. 2684 <link doc="reference.xml" id="s_deny"><literal>s.deny()</literal></link>.
2636 </para> 2685 </para>
2637 2686
2638 <para> 2687 <para>
2639 Removed properties of the 2688 Removed properties of the
2640 <link doc="reference.xml" id="stream">Stream</link> object: 2689 <link doc="reference.xml" id="stream">Stream</link> object:
2642 <literal>s.ABORT</literal>, 2691 <literal>s.ABORT</literal>,
2643 <literal>s.AGAIN</literal>, 2692 <literal>s.AGAIN</literal>,
2644 <literal>s.DECLINED</literal>, 2693 <literal>s.DECLINED</literal>,
2645 <literal>s.ERROR</literal> 2694 <literal>s.ERROR</literal>
2646 (replaced with 2695 (replaced with
2647 <link doc="reference.xml" id="s_allow">s.allow()</link>, 2696 <link doc="reference.xml" id="s_allow"><literal>s.allow()</literal></link>,
2648 <link doc="reference.xml" id="s_done">s.done()</link>, 2697 <link doc="reference.xml" id="s_done"><literal>s.done()</literal></link>,
2649 <link doc="reference.xml" id="s_deny">s.deny()</link>). 2698 <link doc="reference.xml" id="s_deny"><literal>s.deny()</literal></link>).
2650 </para> 2699 </para>
2651 2700
2652 <para> 2701 <para>
2653 <literal>s.buffer</literal> 2702 <literal>s.buffer</literal>
2654 (for reading replaced with data argument of 2703 (for reading replaced with data argument of
2655 the corresponding callback, for writing use 2704 the corresponding callback, for writing use
2656 <link doc="reference.xml" id="s_send">s.send()</link>). 2705 <link doc="reference.xml" id="s_send"><literal>s.send()</literal></link>).
2657 </para> 2706 </para>
2658 2707
2659 <para> 2708 <para>
2660 <literal>s.fromUpstream</literal> 2709 <literal>s.fromUpstream</literal>
2661 (replaced with a callback for a corresponding event). 2710 (replaced with a callback for a corresponding event).
2662 </para> 2711 </para>
2663 2712
2664 <para> 2713 <para>
2665 <literal>s.eof</literal> 2714 <literal>s.eof</literal>
2666 (replaced with <literal></literal> 2715 (replaced with <literal></literal>
2667 <link doc="reference.xml" id="s_on_callback_last">flags.last</link>). 2716 <link doc="reference.xml" id="s_on_callback_last"><literal>flags.last</literal></link>).
2668 </para> 2717 </para>
2669 2718
2670 </listitem> 2719 </listitem>
2671 2720
2672 </list> 2721 </list>
2677 <list type="bullet"> 2726 <list type="bullet">
2678 2727
2679 <listitem> 2728 <listitem>
2680 <para> 2729 <para>
2681 Feature: 2730 Feature:
2682 added <literal>Function.prototype.length</literal>. 2731 added
2732 <literal>Function.prototype.length</literal>.
2683 </para> 2733 </para>
2684 </listitem> 2734 </listitem>
2685 2735
2686 <listitem> 2736 <listitem>
2687 <para> 2737 <para>
2713 </listitem> 2763 </listitem>
2714 2764
2715 <listitem> 2765 <listitem>
2716 <para> 2766 <para>
2717 Bugfix: 2767 Bugfix:
2718 fixed <literal>Object.defineProperty()</literal> for existing properties. 2768 fixed
2769 <literal>Object.defineProperty()</literal> for existing properties.
2719 </para> 2770 </para>
2720 </listitem> 2771 </listitem>
2721 2772
2722 <listitem> 2773 <listitem>
2723 <para> 2774 <para>
2741 </listitem> 2792 </listitem>
2742 2793
2743 <listitem> 2794 <listitem>
2744 <para> 2795 <para>
2745 Bugfix: 2796 Bugfix:
2746 fixed <literal>Object.prototype.toString</literal> for different value types. 2797 fixed
2747 </para> 2798 <literal>Object.prototype.toString</literal>
2748 </listitem> 2799 for different value types.
2749 2800 </para>
2750 <listitem> 2801 </listitem>
2751 <para> 2802
2752 Bugfix: 2803 <listitem>
2753 fixed <literal>Object()</literal> constructor for object types arguments. 2804 <para>
2805 Bugfix:
2806 fixed
2807 <literal>Object()</literal>
2808 constructor for object types arguments.
2754 </para> 2809 </para>
2755 </listitem> 2810 </listitem>
2756 2811
2757 <listitem> 2812 <listitem>
2758 <para> 2813 <para>
2762 </listitem> 2817 </listitem>
2763 2818
2764 <listitem> 2819 <listitem>
2765 <para> 2820 <para>
2766 Bugfix: 2821 Bugfix:
2767 fixed <literal>String.slice()</literal> for undefined arguments. 2822 fixed
2823 <literal>String.slice()</literal>
2824 for undefined arguments.
2768 </para> 2825 </para>
2769 </listitem> 2826 </listitem>
2770 2827
2771 <listitem> 2828 <listitem>
2772 <para> 2829 <para>
2793 <list type="bullet"> 2850 <list type="bullet">
2794 2851
2795 <listitem> 2852 <listitem>
2796 <para> 2853 <para>
2797 Bugfix: 2854 Bugfix:
2798 making a subrequest from a <literal>Reply</literal> object caused 2855 making a subrequest from a
2799 a segmentation fault. 2856 <literal>Reply</literal>
2857 object caused a segmentation fault.
2800 </para> 2858 </para>
2801 </listitem> 2859 </listitem>
2802 2860
2803 <listitem> 2861 <listitem>
2804 <para> 2862 <para>
2838 </listitem> 2896 </listitem>
2839 2897
2840 <listitem> 2898 <listitem>
2841 <para> 2899 <para>
2842 Feature: 2900 Feature:
2843 <link doc="reference.xml" id="string_bytesfrom">String.bytesFrom()</link> method 2901 <link doc="reference.xml" id="string_bytesfrom"><literal>String.bytesFrom()</literal></link> method
2844 (decoding <literal>hex</literal>, 2902 (decoding <literal>hex</literal>,
2845 <literal>base64</literal>, 2903 <literal>base64</literal>,
2846 <literal>base64url</literal> into a byte string). 2904 <literal>base64url</literal> into a byte string).
2847 </para> 2905 </para>
2848 </listitem> 2906 </listitem>
2849 2907
2850 <listitem> 2908 <listitem>
2851 <para> 2909 <para>
2852 Feature: 2910 Feature:
2853 <link doc="reference.xml" id="string_padstart">String.padStart()</link> and 2911 <literal>String.padStart()</literal> and
2854 <link doc="reference.xml" id="string_padend">String.padEnd()</link> methods. 2912 <literal>String.padEnd()</literal>
2913 methods.
2855 </para> 2914 </para>
2856 </listitem> 2915 </listitem>
2857 2916
2858 <listitem> 2917 <listitem>
2859 <para> 2918 <para>
2898 </listitem> 2957 </listitem>
2899 2958
2900 <listitem> 2959 <listitem>
2901 <para> 2960 <para>
2902 Bugfix: 2961 Bugfix:
2903 fixed exception handling in <literal>njs_vm_value_to_ext_string()</literal>. 2962 fixed exception handling in
2904 </para> 2963 <literal>njs_vm_value_to_ext_string()</literal>.
2905 </listitem> 2964 </para>
2906 2965 </listitem>
2907 <listitem> 2966
2908 <para> 2967 <listitem>
2909 Bugfix: 2968 <para>
2910 fixed <literal>Number()</literal> with boolean, null and undefined arguments. 2969 Bugfix:
2970 fixed
2971 <literal>Number()</literal> with boolean, null and undefined arguments.
2911 </para> 2972 </para>
2912 </listitem> 2973 </listitem>
2913 2974
2914 <listitem> 2975 <listitem>
2915 <para> 2976 <para>
3083 <list type="bullet"> 3144 <list type="bullet">
3084 3145
3085 <listitem> 3146 <listitem>
3086 <para> 3147 <para>
3087 Bugfix: 3148 Bugfix:
3088 fixed heap-buffer-overflow in <literal>crypto.createHmac()</literal>. 3149 fixed heap-buffer-overflow in
3150 <literal>crypto.createHmac()</literal>.
3089 </para> 3151 </para>
3090 </listitem> 3152 </listitem>
3091 3153
3092 </list> 3154 </list>
3093 </para> 3155 </para>
3175 </listitem> 3237 </listitem>
3176 3238
3177 <listitem> 3239 <listitem>
3178 <para> 3240 <para>
3179 Bugfix: 3241 Bugfix:
3180 fixed crypto <literal>update()</literal> method after 3242 fixed crypto <literal>update()</literal> method after
3181 <literal>digest()</literal> is called. 3243 <literal>digest()</literal> is called.
3182 </para> 3244 </para>
3183 </listitem> 3245 </listitem>
3184 3246
3185 <listitem> 3247 <listitem>