comparison 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
comparison
equal deleted inserted replaced
2245:87a0e2c73a25 2246:32ba43abf9cd
1 <?xml version="1.0"?>
2
3 <!--
4 Copyright (C) Nginx, Inc.
5 -->
6
7 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd">
8
9 <article name="Changes"
10 link="/en/docs/njs/changes.html"
11 lang="en"
12 rev="8"
13 toc="no">
14
15 <section id="njs0.2.4" name="Changes with 0.2.4">
16
17 <para>
18 Release Date:
19 18 September 2018
20 </para>
21
22 <para>
23 nginx modules:
24 <list type="bullet">
25
26 <listitem>
27 <para>
28 Change:
29 stream module handlers refactored.
30 </para>
31
32 <para>
33 New methods and properties:
34 <link doc="njs_api.xml" id="s_on">s.on()</link>,
35 <link doc="njs_api.xml" id="s_off">s.off()</link>,
36 <link doc="njs_api.xml" id="s_allow">s.allow()</link>,
37 <link doc="njs_api.xml" id="s_done">s.done()</link>,
38 <link doc="njs_api.xml" id="s_decline">s.decline()</link>,
39 <link doc="njs_api.xml" id="s_deny">s.deny()</link>.
40 </para>
41
42 <para>
43 Removed properties of the
44 <link doc="njs_api.xml" id="stream">Stream</link> object:
45 <literal>s.OK</literal>,
46 <literal>s.ABORT</literal>,
47 <literal>s.AGAIN</literal>,
48 <literal>s.DECLINED</literal>,
49 <literal>s.ERROR</literal>
50 (replaced with
51 <link doc="njs_api.xml" id="s_allow">s.allow()</link>,
52 <link doc="njs_api.xml" id="s_done">s.done()</link>,
53 <link doc="njs_api.xml" id="s_deny">s.deny()</link>).
54 </para>
55
56 <para>
57 <literal>s.buffer</literal>
58 (for reading replaced with data argument of
59 the corresponding callback, for writing use
60 <link doc="njs_api.xml" id="s_send">s.send()</link>).
61 </para>
62
63 <para>
64 <literal>s.fromUpstream</literal>
65 (replaced with a callback for a corresponding event).
66 </para>
67
68 <para>
69 <literal>s.eof</literal>
70 (replaced with <literal></literal>
71 <link doc="njs_api.xml" id="s_on_callback_last">flags.last</link>).
72 </para>
73
74 </listitem>
75
76 </list>
77 </para>
78
79 <para>
80 Core:
81 <list type="bullet">
82
83 <listitem>
84 <para>
85 Feature:
86 added <literal>Function.prototype.length</literal>.
87 </para>
88 </listitem>
89
90 <listitem>
91 <para>
92 Feature:
93 introduced sandboxing mode.
94 </para>
95 </listitem>
96
97 <listitem>
98 <para>
99 Improvement:
100 added exception strings where appropriate.
101 </para>
102 </listitem>
103
104 <listitem>
105 <para>
106 Improvement:
107 improved wording for primitive type conversion exception.
108 </para>
109 </listitem>
110
111 <listitem>
112 <para>
113 Bugfix:
114 throwing <literal>TypeError</literal>
115 for attempts to change frozen properties.
116 </para>
117 </listitem>
118
119 <listitem>
120 <para>
121 Bugfix:
122 fixed <literal>Object.defineProperty()</literal> for existing properties.
123 </para>
124 </listitem>
125
126 <listitem>
127 <para>
128 Bugfix:
129 respecting the enumerable attribute while iterating by for in.
130 </para>
131 </listitem>
132
133 <listitem>
134 <para>
135 Bugfix:
136 respecting writable attribute for property handlers.
137 </para>
138 </listitem>
139
140 <listitem>
141 <para>
142 Bugfix:
143 fixed exception handling in arguments of a function.
144 </para>
145 </listitem>
146
147 <listitem>
148 <para>
149 Bugfix:
150 fixed <literal>Object.prototype.toString</literal> for different value types.
151 </para>
152 </listitem>
153
154 <listitem>
155 <para>
156 Bugfix:
157 fixed <literal>Object()</literal> constructor for object types arguments.
158 </para>
159 </listitem>
160
161 <listitem>
162 <para>
163 Bugfix:
164 fixed comparison of objects and strings.
165 </para>
166 </listitem>
167
168 <listitem>
169 <para>
170 Bugfix:
171 fixed <literal>String.slice()</literal> for undefined arguments.
172 </para>
173 </listitem>
174
175 <listitem>
176 <para>
177 Bugfix:
178 miscellaneous additional bugs have been fixed.
179 </para>
180 </listitem>
181
182 </list>
183 </para>
184
185 </section>
186
187
188 <section id="njs0.2.3" name="Changes with 0.2.3">
189
190 <para>
191 Release Date:
192 31 July 2018
193 </para>
194
195 <para>
196 nginx modules:
197 <list type="bullet">
198
199 <listitem>
200 <para>
201 Bugfix:
202 making a subrequest from a <literal>Reply</literal> object caused
203 a segmentation fault.
204 </para>
205 </listitem>
206
207 <listitem>
208 <para>
209 Bugfix:
210 getting the parent property of the main
211 <link doc="njs_api.xml" id="http">HTTP Request</link>
212 object caused a segmentation fault.
213 </para>
214 </listitem>
215
216 </list>
217 </para>
218
219 <para>
220 Core:
221 <list type="bullet">
222
223 <listitem>
224 <para>
225 Feature:
226 added the pretty string representation for values.
227 </para>
228 </listitem>
229
230 <listitem>
231 <para>
232 Feature:
233 correctly printing floating point numbers.
234 </para>
235 </listitem>
236
237 <listitem>
238 <para>
239 Feature:
240 correctly parsing floating point numbers.
241 </para>
242 </listitem>
243
244 <listitem>
245 <para>
246 Feature:
247 <link doc="njs_api.xml" id="string_bytesfrom">String.bytesFrom()</link> method
248 (decoding <literal>hex</literal>,
249 <literal>base64</literal>,
250 <literal>base64url</literal> into a byte string).
251 </para>
252 </listitem>
253
254 <listitem>
255 <para>
256 Feature:
257 <link doc="njs_api.xml" id="string_padstart">String.padStart()</link> and
258 <link doc="njs_api.xml" id="string_padend">String.padEnd()</link> methods.
259 </para>
260 </listitem>
261
262 <listitem>
263 <para>
264 Feature:
265 added support of binary literals.
266 </para>
267 </listitem>
268
269 <listitem>
270 <para>
271 Improvement:
272 added information about illegal token in number parsing.
273 </para>
274 </listitem>
275
276 <listitem>
277 <para>
278 Improvement:
279 allowed uppercased <literal>O</literal> in octal literal values.
280 </para>
281 </listitem>
282
283 <listitem>
284 <para>
285 Improvement:
286 added support for multiple arguments in <literal>console.log()</literal>.
287 </para>
288 </listitem>
289
290 <listitem>
291 <para>
292 Bugfix:
293 fixed applying <literal>call()</literal> to methods of external values.
294 </para>
295 </listitem>
296
297 <listitem>
298 <para>
299 Bugfix:
300 fixed addition operator applied to an object.
301 </para>
302 </listitem>
303
304 <listitem>
305 <para>
306 Bugfix:
307 fixed exception handling in <literal>njs_vm_value_to_ext_string()</literal>.
308 </para>
309 </listitem>
310
311 <listitem>
312 <para>
313 Bugfix:
314 fixed <literal>Number()</literal> with boolean, null and undefined arguments.
315 </para>
316 </listitem>
317
318 <listitem>
319 <para>
320 Bugfix:
321 fixed error handling of setting non-numeric <literal>Array.length</literal>.
322 </para>
323 </listitem>
324
325 <listitem>
326 <para>
327 Bugfix:
328 fixed autocompletion for global objects.
329 </para>
330 </listitem>
331
332 <listitem>
333 <para>
334 Bugfix:
335 miscellaneous additional bugs have been fixed.
336 </para>
337 </listitem>
338
339 </list>
340 </para>
341
342 </section>
343
344
345 <section id="njs0.2.2" name="Changes with 0.2.2">
346
347 <para>
348 Release Date:
349 19 June 2018
350 </para>
351
352 <para>
353 nginx modules:
354 <list type="bullet">
355
356 <listitem>
357 <para>
358 Change:
359 merged HTTP <literal>Response</literal> and <literal>Reply</literal>
360 into <link doc="njs_api.xml" id="http">HTTP Request</link>.
361 New members of <literal>Request</literal>:
362
363 <list type="bullet">
364
365 <listitem>
366 <para>
367 <literal>req.status</literal> (<literal>res.status</literal>)
368 </para>
369 </listitem>
370
371 <listitem>
372 <para>
373 <literal>req.parent</literal> (<literal>reply.parent</literal>)
374 </para>
375 </listitem>
376
377 <listitem>
378 <para>
379 <literal>req.requestBody</literal> (<literal>req.body</literal>)
380 </para>
381 </listitem>
382
383 <listitem>
384 <para>
385 <literal>req.responseBody</literal> (<literal>reply.body</literal>)
386 </para>
387 </listitem>
388
389 <listitem>
390 <para>
391 <literal>req.headersIn</literal> (<literal>req.headers</literal>)
392 </para>
393 </listitem>
394
395 <listitem>
396 <para>
397 <literal>req.headersOut</literal> (<literal>res.headers</literal>)
398 </para>
399 </listitem>
400
401 <listitem>
402 <para>
403 <literal>req.sendHeader()</literal> (<literal>res.sendHeader()</literal>)
404 </para>
405 </listitem>
406
407 <listitem>
408 <para>
409 <literal>req.send()</literal> (<literal>res.send()</literal>)
410 </para>
411 </listitem>
412
413 <listitem>
414 <para>
415 <literal>req.finish()</literal> (<literal>res.finish()</literal>)
416 </para>
417 </listitem>
418
419 <listitem>
420 <para>
421 <literal>req.return()</literal> (<literal>res.return()</literal>)
422 </para>
423 </listitem>
424
425 </list>
426 Deprecated members of <literal>Request</literal>:
427
428 <list type="bullet">
429
430 <listitem>
431 <para>
432 <literal>req.body</literal> (use <literal>req.requestBody</literal>
433 or <literal>req.responseBody</literal>)
434 </para>
435 </listitem>
436
437 <listitem>
438 <para>
439 <literal>req.headers</literal> (use <literal>req.headersIn</literal>
440 or <literal>req.headersOut</literal>)
441 </para>
442 </listitem>
443
444 <listitem>
445 <para>
446 <literal>req.response</literal>
447 </para>
448 </listitem>
449
450 </list>
451 The deprecated properties will be removed in next releases.
452 </para>
453 </listitem>
454
455 <listitem>
456 <para>
457 Feature:
458 HTTP <link doc="njs_api.xml" id="r_internal_redirect">internalRedirect()</link>
459 method.
460 </para>
461 </listitem>
462
463 </list>
464 </para>
465
466 <para>
467 Core:
468 <list type="bullet">
469
470 <listitem>
471 <para>
472 Bugfix:
473 fixed heap-buffer-overflow in <literal>crypto.createHmac()</literal>.
474 </para>
475 </listitem>
476
477 </list>
478 </para>
479
480 </section>
481
482
483 <section id="njs0.2.1" name="Changes with 0.2.1">
484
485 <para>
486 Release Date:
487 31 May 2018
488 </para>
489
490 <para>
491 nginx modules:
492 <list type="bullet">
493
494 <listitem>
495 <para>
496 Feature:
497 HTTP request body getter.
498 </para>
499 </listitem>
500
501 <listitem>
502 <para>
503 Improvement:
504 moved njs vm to the <literal>main</literal> configuration.
505 </para>
506 </listitem>
507
508 <listitem>
509 <para>
510 Improvement:
511 improved logging for
512 <link doc="../http/ngx_http_js_module.xml" id="js_set"/> and
513 <link doc="../http/ngx_http_js_module.xml" id="js_content"/> directives.
514 </para>
515 </listitem>
516
517 <listitem>
518 <para>
519 Improvement:
520 setting status code to 500 by default in the
521 <link doc="../http/ngx_http_js_module.xml" id="js_content"/> handler
522 </para>
523 </listitem>
524
525 <listitem>
526 <para>
527 Improvement:
528 added the debug for the returned status code in
529 <link doc="../http/ngx_http_js_module.xml" id="js_content"/> handler
530 </para>
531 </listitem>
532
533 <listitem>
534 <para>
535 Bugfix: fixed error logging in
536 <link doc="../http/ngx_http_js_module.xml" id="js_include"/>.
537 </para>
538 </listitem>
539
540 </list>
541 </para>
542
543 <para>
544 Core:
545 <list type="bullet">
546
547 <listitem>
548 <para>
549 Feature:
550 added array length setter.
551 </para>
552 </listitem>
553
554 <listitem>
555 <para>
556 Improvement:
557 public header <literal>cleanup. njscript.h</literal> is renamed to
558 <literal>njs.h</literal>.
559 </para>
560 </listitem>
561
562 <listitem>
563 <para>
564 Bugfix:
565 fixed crypto <literal>update()</literal> method after
566 <literal>digest()</literal> is called.
567 </para>
568 </listitem>
569
570 <listitem>
571 <para>
572 Bugfix:
573 fixed <literal>crypto.createHmac()</literal> for keys with size &lt;= alg size
574 and &gt; 64.
575 </para>
576 </listitem>
577
578 <listitem>
579 <para>
580 Bugfix:
581 fixed <literal>JSON.stringify()</literal> for arrays with empty cells.
582 </para>
583 </listitem>
584
585 <listitem>
586 <para>
587 Bugfix:
588 fixed exception type for unsupported types in
589 <literal>JSON.stringify()</literal>.
590 </para>
591 </listitem>
592
593 <listitem>
594 <para>
595 Bugfix:
596 fixed handling of undefined arguments of functions.
597 </para>
598 </listitem>
599
600 <listitem>
601 <para>
602 Bugfix:
603 fixed handling of missing <literal>arg</literal> of
604 <literal>Object.getOwnPropertyDescriptor()</literal>.
605 </para>
606 </listitem>
607
608 <listitem>
609 <para>
610 Bugfix:
611 fixed handling of properties in
612 <literal>Object.getOwnPropertyDescriptor()</literal>.
613 </para>
614 </listitem>
615
616 <listitem>
617 <para>
618 Bugfix:
619 fixed the writeable flag of <literal>Array.length</literal> property.
620 </para>
621 </listitem>
622
623 <listitem>
624 <para>
625 Bugfix: fixed return value type of <literal>clearTimeout()</literal>.
626 </para>
627 </listitem>
628
629 <listitem>
630 <para>
631 Bugfix:
632 fixed <literal>njs_vm_external_bind()</literal>.
633 </para>
634 </listitem>
635
636 <listitem>
637 <para>
638 Bugfix:
639 miscellaneous additional bugs have been fixed.
640 </para>
641 </listitem>
642
643 </list>
644 </para>
645
646 </section>
647
648
649 <section id="njs0.2.0" name="Changes with 0.2.0">
650
651 <para>
652 Release Date:
653 3 Apr 2018
654 </para>
655
656 <para>
657 <list type="bullet">
658
659 <listitem>
660 <para>
661 Feature:
662 reporting njs version by CLI.
663 </para>
664 </listitem>
665
666 <listitem>
667 <para>
668 Feature:
669 textual description for type converting exceptions.
670 </para>
671 </listitem>
672
673 <listitem>
674 Feature:
675 <literal>setTimeout()</literal> and
676 <literal>clearTimeout()</literal> methods.
677 </listitem>
678
679 <listitem>
680 <para>
681 Feature:
682 Byte string to
683 <literal>hex</literal>,
684 <literal>base64</literal>,
685 <literal>base64url</literal> encodings.
686 </para>
687 </listitem>
688
689 <listitem>
690 <para>
691 Feature:
692 <link url="https://nodejs.org/api/crypto.html#crypto_class_hash">Node.js style</link>
693 <literal>Crypto</literal> methods.
694 </para>
695 </listitem>
696
697 <listitem>
698 <para>
699 Feature:
700 HTTP and stream
701 <literal>warn()</literal> and
702 <literal>error()</literal> methods.
703 </para>
704 </listitem>
705
706 <listitem>
707 <para>
708 Feature:
709 HTTP <literal>subrequest()</literal> method.
710 </para>
711 </listitem>
712
713 <listitem>
714 <para>
715 Feature:
716 HTTP <literal>return()</literal> method.
717 </para>
718 </listitem>
719
720 <listitem>
721 <para>
722 Bugfix:
723 miscellaneous bugs have been fixed in the core and
724 interactive shell.
725 </para>
726 </listitem>
727
728 </list>
729 </para>
730
731 </section>
732
733 <section id="njs0.1.15" name="Changes with 0.1.15">
734
735 <para>
736 Release Date:
737 20 Nov 2017
738 </para>
739
740 <para>
741 <list type="bullet">
742
743 <listitem>
744 <para>
745 Feature:
746 <literal>Error</literal>,
747 <literal>EvalError</literal>,
748 <literal>InternalError</literal>,
749 <literal>RangeError</literal>,
750 <literal>ReferenceError</literal>,
751 <literal>SyntaxError</literal>,
752 <literal>TypeError</literal>,
753 <literal>URIError</literal> objects.
754 </para>
755 </listitem>
756
757 <listitem>
758 <para>
759 Feature:
760 octal literals support.
761 </para>
762 </listitem>
763
764 <listitem>
765 <para>
766 Feature:
767 <link url="https://nodejs.org/api/fs.html#fs_file_system">Node.js style</link>
768 <literal>File system</literal> access methods:
769 <literal>fs.readFile()</literal>,
770 <literal>fs.readFileSync()</literal>,
771 <literal>fs.appendFile()</literal>,
772 <literal>fs.appendFileSync()</literal>,
773 <literal>fs.writeFile()</literal>,
774 <literal>fs.writeFileSync()</literal>.
775 </para>
776 </listitem>
777
778 <listitem>
779 <para>
780 Feature:
781 nginx modules print backtrace on exception.
782 </para>
783 </listitem>
784
785 <listitem>
786 <para>
787 Bugfix:
788 miscellaneous bugs have been fixed.
789 </para>
790 </listitem>
791
792 </list>
793 </para>
794
795 </section>
796
797
798 <section id="njs0.1.14" name="Changes with 0.1.14">
799
800 <para>
801 Release Date:
802 09 Oct 2017
803 </para>
804
805 <para>
806 <list type="bullet">
807
808 <listitem>
809 <para>
810 Feature:
811 JSON object.
812 </para>
813 </listitem>
814
815 <listitem>
816 <para>
817 Feature:
818 object level completions in interactive shell.
819 </para>
820 </listitem>
821
822 <listitem>
823 <para>
824 Feature:
825 various configure improvements.
826 </para>
827 </listitem>
828
829 <listitem>
830 <para>
831 Bugfix:
832 miscellaneous bugs have been fixed in the core and
833 interactive shell.
834 </para>
835 </listitem>
836
837 </list>
838 </para>
839
840 </section>
841
842
843 <section id="njs0.1.13" name="Changes with 0.1.13">
844
845 <para>
846 Release Date:
847 31 Aug 2017
848 </para>
849
850 <para>
851 <list type="bullet">
852
853 <listitem>
854 <para>
855 Feature:
856 <literal>console.log()</literal> and
857 <literal>console.help()</literal>
858 methods in interactive shell.
859 </para>
860 </listitem>
861
862 <listitem>
863 <para>
864 Feature:
865 interactive shell prints backtrace on exception.
866 </para>
867 </listitem>
868
869 <listitem>
870 <para>
871 Feature:
872 interactive shell by default
873 if <literal>libedit</literal> is available.
874 </para>
875 </listitem>
876
877 <listitem>
878 <para>
879 Bugfix:
880 processing of large files from
881 <literal>stdin</literal> in command line mode.
882 </para>
883 </listitem>
884
885 <listitem>
886 <para>
887 Bugfix:
888 improved <literal>editline</literal> detection.
889 </para>
890 </listitem>
891
892 </list>
893 </para>
894
895 </section>
896
897
898 <section id="njs0.1.12" name="Changes with 0.1.12">
899
900 <para>
901 Release Date:
902 08 Aug 2017
903 </para>
904
905 <para>
906 <list type="bullet">
907
908 <listitem>
909 <para>
910 Feature:
911 Interactive shell.
912 </para>
913 </listitem>
914
915 <listitem>
916 <para>
917 Bugfix:
918 in <literal>Object.isSealed()</literal>.
919 </para>
920 </listitem>
921
922 </list>
923 </para>
924
925 </section>
926
927
928 <section id="njs0.1.11" name="Changes with 0.1.11">
929
930 <para>
931 Release Date:
932 27 Jun 2017
933 </para>
934
935 <para>
936 <list type="bullet">
937
938 <listitem>
939 <para>
940 Feature:
941 <literal>Object.keys()</literal>,
942 <literal>Object.prototype.hasOwnProperty()</literal>
943 methods.
944 </para>
945 </listitem>
946
947 <listitem>
948 <para>
949 Feature:
950 <literal>Object.defineProperty()</literal>,
951 <literal>Object.defineProperties()</literal>,
952 <literal>Object.getOwnPropertyDescriptor()</literal>
953 methods.
954 </para>
955 </listitem>
956
957 <listitem>
958 <para>
959 Feature:
960 <literal>Object.getPrototypeOf()</literal>,
961 <literal>Object.prototype.isPrototypeOf()</literal>
962 methods.
963 </para>
964 </listitem>
965
966 <listitem>
967 <para>
968 Feature:
969 <literal>Object.preventExtensions()</literal>,
970 <literal>Object.isExtensible()</literal>,
971 <literal>Object.freeze()</literal>,
972 <literal>Object.isFrozen()</literal>,
973 <literal>Object.seal()</literal>,
974 <literal>Object.isSealed()</literal>
975 methods.
976 </para>
977 </listitem>
978
979 <listitem>
980 <para>
981 Feature:
982 scientific notation (<literal>3.35e10</literal>) literals support.
983 </para>
984 </listitem>
985
986 <listitem>
987 <para>
988 Feature:
989 hexadecimal (<literal>0x1123</literal>) literals support.
990 </para>
991 </listitem>
992
993 <listitem>
994 <para>
995 Bugfix:
996 processing of large array indexes.
997 </para>
998 </listitem>
999
1000 <listitem>
1001 <para>
1002 Bugfix:
1003 in <literal>parseInt()</literal> and
1004 <literal>Date.parse()</literal>.
1005 </para>
1006 </listitem>
1007
1008 </list>
1009 </para>
1010
1011 </section>
1012
1013
1014 <section id="njs0.1.10" name="Changes with 0.1.10">
1015
1016 <para>
1017 Release Date:
1018 04 Apr 2017
1019 </para>
1020
1021 <para>
1022 <list type="bullet">
1023
1024 <listitem>
1025 <para>
1026 Feature:
1027 nested functions and function closures.
1028 </para>
1029 </listitem>
1030
1031 <listitem>
1032 <para>
1033 Feature:
1034 <literal>Array.of()</literal>,
1035 <literal>Array.prototype.fill()</literal>,
1036 <literal>Array.prototype.find()</literal>,
1037 <literal>Array.prototype.findIndex()</literal>
1038 methods.
1039 </para>
1040 </listitem>
1041
1042 <listitem>
1043 <para>
1044 Bugfix:
1045 miscellaneous bugs and segmentation faults have been fixed.
1046 </para>
1047 </listitem>
1048
1049 </list>
1050 </para>
1051
1052 </section>
1053
1054
1055 <section id="njs0.1.9" name="Changes with 0.1.9">
1056
1057 <para>
1058 Release Date:
1059 01 Feb 2017
1060 </para>
1061
1062 <para>
1063 <list type="bullet">
1064
1065 <listitem>
1066 <para>
1067 Bugfix:
1068 global variables were not initialized when njs was used
1069 in nginx.
1070 </para>
1071 </listitem>
1072
1073 </list>
1074 </para>
1075
1076 </section>
1077
1078
1079 <section id="njs0.1.8" name="Changes with 0.1.8">
1080
1081 <para>
1082 Release Date:
1083 24 Jan 2017
1084 </para>
1085
1086 <para>
1087 <list type="bullet">
1088
1089 <listitem>
1090 <para>
1091 Change:
1092 the <literal>strict</literal> mode is enforced,
1093 variables must be explicitly declared.
1094 </para>
1095 </listitem>
1096
1097
1098 <listitem>
1099 <para>
1100 Feature:
1101 <literal>for</literal> and
1102 <literal>for-in</literal> loops support variable declaration.
1103 </para>
1104 </listitem>
1105
1106 <listitem>
1107 <para>
1108 Bugfix:
1109 global and function scopes have been fixed.
1110 </para>
1111 </listitem>
1112
1113 <listitem>
1114 <para>
1115 Bugfix:
1116 now <literal>for-in</literal> loop does not discard the last value
1117 of property variable.
1118 </para>
1119 </listitem>
1120
1121 <listitem>
1122 <para>
1123 Bugfix:
1124 miscellaneous bugs and segmentation faults have been fixed.
1125 </para>
1126 </listitem>
1127
1128 </list>
1129 </para>
1130
1131 </section>
1132
1133
1134 <section id="njs0.1.7" name="Changes with 0.1.7">
1135
1136 <para>
1137 Release Date:
1138 27 Dec 2016
1139 </para>
1140
1141 <para>
1142 <list type="bullet">
1143
1144 <listitem>
1145 <para>
1146 Change:
1147 the <link doc="../http/ngx_http_js_module.xml" id="js_include"/> directive
1148 has been disabled at server and location levels.
1149 </para>
1150 </listitem>
1151
1152 <listitem>
1153 <para>
1154 Feature:
1155 exponentiation operators.
1156 </para>
1157 </listitem>
1158
1159 <listitem>
1160 <para>
1161 Bugfix:
1162 miscellaneous bugs and segmentation faults have been fixed.
1163 </para>
1164 </listitem>
1165
1166 </list>
1167 </para>
1168
1169 </section>
1170
1171
1172 <section id="njs0.1.6" name="Changes with 0.1.6">
1173
1174 <para>
1175 Release Date:
1176 13 Dec 2016
1177 </para>
1178
1179 <para>
1180 <list type="bullet">
1181
1182 <listitem>
1183 <para>
1184 Change:
1185 the <link doc="../http/ngx_http_js_module.xml" id="js_set"/> directive
1186 has been disabled at server and location levels.
1187 </para>
1188 </listitem>
1189
1190 <listitem>
1191 <para>
1192 Feature:
1193 ES6 <literal>Math</literal> methods.
1194 </para>
1195 </listitem>
1196
1197 <listitem>
1198 <para>
1199 Bugfix:
1200 miscellaneous bugs and segmentation faults have been fixed.
1201 </para>
1202 </listitem>
1203
1204 </list>
1205 </para>
1206
1207 </section>
1208
1209 </article>