From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- js/src/tests/js1_5/Array/11.1.4.js | 68 + js/src/tests/js1_5/Array/array-001.js | 88 + js/src/tests/js1_5/Array/browser.js | 0 js/src/tests/js1_5/Array/regress-101964.js | 86 + js/src/tests/js1_5/Array/regress-107138.js | 177 + js/src/tests/js1_5/Array/regress-108440.js | 77 + js/src/tests/js1_5/Array/regress-154338.js | 90 + js/src/tests/js1_5/Array/regress-157652.js | 122 + js/src/tests/js1_5/Array/regress-178722.js | 130 + js/src/tests/js1_5/Array/regress-255555.js | 32 + js/src/tests/js1_5/Array/regress-299644.js | 27 + js/src/tests/js1_5/Array/regress-300858.js | 21 + js/src/tests/js1_5/Array/regress-310351.js | 54 + js/src/tests/js1_5/Array/regress-311515.js | 20 + js/src/tests/js1_5/Array/regress-313153.js | 18 + js/src/tests/js1_5/Array/regress-315509-01.js | 28 + js/src/tests/js1_5/Array/regress-330812.js | 33 + js/src/tests/js1_5/Array/regress-345961.js | 36 + js/src/tests/js1_5/Array/regress-348810.js | 28 + js/src/tests/js1_5/Array/regress-350256-01.js | 45 + js/src/tests/js1_5/Array/regress-350256-02.js | 47 + js/src/tests/js1_5/Array/regress-360681-01.js | 33 + js/src/tests/js1_5/Array/regress-360681-02.js | 58 + js/src/tests/js1_5/Array/regress-364104.js | 74 + js/src/tests/js1_5/Array/regress-422286.js | 34 + js/src/tests/js1_5/Array/regress-424954.js | 30 + js/src/tests/js1_5/Array/regress-451483.js | 31 + js/src/tests/js1_5/Array/regress-451906.js | 30 + js/src/tests/js1_5/Array/regress-456845.js | 51 + js/src/tests/js1_5/Array/regress-465980-01.js | 35 + js/src/tests/js1_5/Array/regress-465980-02.js | 170 + js/src/tests/js1_5/Array/regress-474529.js | 55 + js/src/tests/js1_5/Array/regress-94257.js | 86 + js/src/tests/js1_5/Array/shell.js | 0 js/src/tests/js1_5/Date/browser.js | 0 js/src/tests/js1_5/Date/regress-188211.js | 27 + js/src/tests/js1_5/Date/regress-301738-01.js | 97 + js/src/tests/js1_5/Date/regress-309925-01.js | 15 + js/src/tests/js1_5/Date/regress-309925-02.js | 15 + js/src/tests/js1_5/Date/regress-346027.js | 30 + js/src/tests/js1_5/Date/regress-346363.js | 31 + js/src/tests/js1_5/Date/shell.js | 0 js/src/tests/js1_5/Error/browser.js | 0 js/src/tests/js1_5/Error/constructor-ordering.js | 17 + js/src/tests/js1_5/Error/regress-354246.js | 37 + js/src/tests/js1_5/Error/regress-412324.js | 17 + js/src/tests/js1_5/Error/regress-465377.js | 81 + js/src/tests/js1_5/Error/shell.js | 0 js/src/tests/js1_5/Exceptions/browser.js | 0 js/src/tests/js1_5/Exceptions/catchguard-002-n.js | 36 + js/src/tests/js1_5/Exceptions/catchguard-003-n.js | 40 + js/src/tests/js1_5/Exceptions/errstack-001.js | 245 + js/src/tests/js1_5/Exceptions/regress-121658.js | 124 + js/src/tests/js1_5/Exceptions/regress-123002.js | 93 + js/src/tests/js1_5/Exceptions/regress-257751.js | 92 + js/src/tests/js1_5/Exceptions/regress-273931.js | 74 + js/src/tests/js1_5/Exceptions/regress-315147.js | 36 + js/src/tests/js1_5/Exceptions/regress-332472.js | 25 + js/src/tests/js1_5/Exceptions/regress-333728.js | 83 + js/src/tests/js1_5/Exceptions/regress-342359.js | 43 + js/src/tests/js1_5/Exceptions/regress-347674.js | 63 + js/src/tests/js1_5/Exceptions/regress-350650-n.js | 31 + js/src/tests/js1_5/Exceptions/regress-350837.js | 46 + js/src/tests/js1_5/Exceptions/shell.js | 0 js/src/tests/js1_5/Expressions/browser.js | 0 js/src/tests/js1_5/Expressions/regress-192288.js | 85 + js/src/tests/js1_5/Expressions/regress-394673.js | 49 + .../js1_5/Expressions/regress-96526-argsub.js | 91 + .../js1_5/Expressions/regress-96526-delelem.js | 91 + .../js1_5/Expressions/regress-96526-noargsub.js | 91 + js/src/tests/js1_5/Expressions/shell.js | 103 + js/src/tests/js1_5/Function/10.1.6-01.js | 29 + js/src/tests/js1_5/Function/10.1.6.js | 23 + js/src/tests/js1_5/Function/browser.js | 0 js/src/tests/js1_5/Function/regress-123371.js | 19 + js/src/tests/js1_5/Function/regress-178389.js | 26 + js/src/tests/js1_5/Function/regress-222029-001.js | 126 + js/src/tests/js1_5/Function/regress-222029-002.js | 135 + js/src/tests/js1_5/Function/regress-292215.js | 37 + js/src/tests/js1_5/Function/regress-338001.js | 42 + js/src/tests/js1_5/Function/regress-338121-01.js | 32 + js/src/tests/js1_5/Function/regress-338121-02.js | 36 + js/src/tests/js1_5/Function/regress-338121-03.js | 38 + js/src/tests/js1_5/Function/regress-344052.js | 30 + js/src/tests/js1_5/Function/regress-364023.js | 40 + js/src/tests/js1_5/Function/shell.js | 0 js/src/tests/js1_5/GC/browser.js | 0 js/src/tests/js1_5/GC/regress-104584.js | 46 + js/src/tests/js1_5/GC/regress-203278-2.js | 79 + js/src/tests/js1_5/GC/regress-203278-3.js | 42 + js/src/tests/js1_5/GC/regress-278725.js | 29 + js/src/tests/js1_5/GC/regress-306788.js | 24 + js/src/tests/js1_5/GC/regress-311497.js | 61 + js/src/tests/js1_5/GC/regress-313276.js | 40 + js/src/tests/js1_5/GC/regress-313479.js | 37 + js/src/tests/js1_5/GC/regress-316885-01.js | 33 + js/src/tests/js1_5/GC/regress-316885-02.js | 42 + js/src/tests/js1_5/GC/regress-316885-03.js | 42 + js/src/tests/js1_5/GC/regress-319980-01.js | 127 + js/src/tests/js1_5/GC/regress-324278.js | 63 + js/src/tests/js1_5/GC/regress-331719.js | 19 + js/src/tests/js1_5/GC/regress-338653.js | 41 + js/src/tests/js1_5/GC/regress-341877-01.js | 40 + js/src/tests/js1_5/GC/regress-341877-02.js | 45 + js/src/tests/js1_5/GC/regress-346794.js | 43 + js/src/tests/js1_5/GC/regress-348532.js | 54 + js/src/tests/js1_5/GC/regress-352606.js | 28 + js/src/tests/js1_5/GC/regress-383269-01.js | 62 + js/src/tests/js1_5/GC/regress-383269-02.js | 66 + js/src/tests/js1_5/GC/regress-390078.js | 36 + js/src/tests/js1_5/GC/regress-418128.js | 40 + js/src/tests/js1_5/GC/regress-440558.js | 37 + js/src/tests/js1_5/GC/shell.js | 0 js/src/tests/js1_5/GetSet/browser.js | 0 js/src/tests/js1_5/GetSet/getset-002.js | 50 + js/src/tests/js1_5/GetSet/regress-353264.js | 18 + js/src/tests/js1_5/GetSet/regress-375976.js | 31 + js/src/tests/js1_5/GetSet/shell.js | 0 js/src/tests/js1_5/LexicalConventions/browser.js | 0 .../tests/js1_5/LexicalConventions/lexical-001.js | 149 + .../js1_5/LexicalConventions/regress-177314.js | 76 + .../js1_5/LexicalConventions/regress-469940.js | 38 + js/src/tests/js1_5/LexicalConventions/shell.js | 0 js/src/tests/js1_5/Object/browser.js | 0 js/src/tests/js1_5/Object/regress-137000.js | 206 + js/src/tests/js1_5/Object/regress-192105.js | 149 + js/src/tests/js1_5/Object/regress-308806-01.js | 20 + js/src/tests/js1_5/Object/regress-338709.js | 74 + js/src/tests/js1_5/Object/regress-362872-01.js | 41 + js/src/tests/js1_5/Object/regress-362872-02.js | 24 + js/src/tests/js1_5/Object/regress-382503.js | 29 + js/src/tests/js1_5/Object/regress-382532.js | 36 + js/src/tests/js1_5/Object/regress-465476.js | 63 + js/src/tests/js1_5/Object/regress-90596-003.js | 278 + js/src/tests/js1_5/Object/shell.js | 0 js/src/tests/js1_5/README | 1 + js/src/tests/js1_5/Regress/browser.js | 0 js/src/tests/js1_5/Regress/regress-102725.js | 64 + js/src/tests/js1_5/Regress/regress-10278.js | 48 + js/src/tests/js1_5/Regress/regress-104077.js | 473 + js/src/tests/js1_5/Regress/regress-106244.js | 39 + js/src/tests/js1_5/Regress/regress-110286.js | 122 + js/src/tests/js1_5/Regress/regress-111557.js | 10931 ++++ js/src/tests/js1_5/Regress/regress-114491.js | 72 + js/src/tests/js1_5/Regress/regress-114493.js | 80 + js/src/tests/js1_5/Regress/regress-115436.js | 24 + js/src/tests/js1_5/Regress/regress-116228.js | 24 + js/src/tests/js1_5/Regress/regress-118849.js | 152 + js/src/tests/js1_5/Regress/regress-119719.js | 26 + js/src/tests/js1_5/Regress/regress-127243.js | 75 + js/src/tests/js1_5/Regress/regress-127557.js | 81 + js/src/tests/js1_5/Regress/regress-131510-001.js | 40 + js/src/tests/js1_5/Regress/regress-139316.js | 46 + js/src/tests/js1_5/Regress/regress-140852.js | 32 + js/src/tests/js1_5/Regress/regress-140974.js | 106 + js/src/tests/js1_5/Regress/regress-146596.js | 124 + js/src/tests/js1_5/Regress/regress-152646.js | 93 + js/src/tests/js1_5/Regress/regress-155081-2.js | 17520 +++++ js/src/tests/js1_5/Regress/regress-155081.js | 17527 +++++ js/src/tests/js1_5/Regress/regress-156354.js | 97 + js/src/tests/js1_5/Regress/regress-159334.js | 95 + js/src/tests/js1_5/Regress/regress-162392.js | 37 + js/src/tests/js1_5/Regress/regress-165201.js | 55 + js/src/tests/js1_5/Regress/regress-167328.js | 26 + js/src/tests/js1_5/Regress/regress-167658.js | 28 + js/src/tests/js1_5/Regress/regress-168347.js | 186 + js/src/tests/js1_5/Regress/regress-170193.js | 77 + js/src/tests/js1_5/Regress/regress-172699.js | 72 + js/src/tests/js1_5/Regress/regress-173067.js | 25 + js/src/tests/js1_5/Regress/regress-174709.js | 69 + js/src/tests/js1_5/Regress/regress-176125.js | 49 + js/src/tests/js1_5/Regress/regress-179524.js | 295 + js/src/tests/js1_5/Regress/regress-185165.js | 67 + js/src/tests/js1_5/Regress/regress-191633.js | 73 + js/src/tests/js1_5/Regress/regress-191668.js | 70 + js/src/tests/js1_5/Regress/regress-192414.js | 88 + js/src/tests/js1_5/Regress/regress-193418.js | 70 + js/src/tests/js1_5/Regress/regress-203278-1.js | 30 + js/src/tests/js1_5/Regress/regress-203402.js | 61 + js/src/tests/js1_5/Regress/regress-203841.js | 130 + js/src/tests/js1_5/Regress/regress-204210.js | 116 + js/src/tests/js1_5/Regress/regress-210682.js | 67 + js/src/tests/js1_5/Regress/regress-211590.js | 54 + js/src/tests/js1_5/Regress/regress-213482.js | 29 + js/src/tests/js1_5/Regress/regress-214761.js | 45 + js/src/tests/js1_5/Regress/regress-216320.js | 1006 + js/src/tests/js1_5/Regress/regress-224956.js | 251 + js/src/tests/js1_5/Regress/regress-229006.js | 65563 +++++++++++++++++++ js/src/tests/js1_5/Regress/regress-230216-1.js | 47 + js/src/tests/js1_5/Regress/regress-230216-2.js | 40 + js/src/tests/js1_5/Regress/regress-230216-3.js | 46 + js/src/tests/js1_5/Regress/regress-233483-2.js | 65 + js/src/tests/js1_5/Regress/regress-233483.js | 51 + js/src/tests/js1_5/Regress/regress-234389.js | 39 + js/src/tests/js1_5/Regress/regress-238881.js | 30 + js/src/tests/js1_5/Regress/regress-238945.js | 18 + js/src/tests/js1_5/Regress/regress-240577.js | 37 + js/src/tests/js1_5/Regress/regress-243174.js | 21 + js/src/tests/js1_5/Regress/regress-243389-n.js | 24 + js/src/tests/js1_5/Regress/regress-243869.js | 38 + js/src/tests/js1_5/Regress/regress-244470.js | 1079 + js/src/tests/js1_5/Regress/regress-244619.js | 32 + js/src/tests/js1_5/Regress/regress-245113.js | 47 + js/src/tests/js1_5/Regress/regress-245308.js | 27 + js/src/tests/js1_5/Regress/regress-246911.js | 30 + js/src/tests/js1_5/Regress/regress-246964.js | 160 + js/src/tests/js1_5/Regress/regress-247179.js | 18 + js/src/tests/js1_5/Regress/regress-248444.js | 31 + js/src/tests/js1_5/Regress/regress-249211.js | 30 + js/src/tests/js1_5/Regress/regress-252892.js | 68 + js/src/tests/js1_5/Regress/regress-253150.js | 90 + js/src/tests/js1_5/Regress/regress-254296.js | 26 + js/src/tests/js1_5/Regress/regress-254974.js | 38 + js/src/tests/js1_5/Regress/regress-256501.js | 38 + js/src/tests/js1_5/Regress/regress-256617.js | 35 + js/src/tests/js1_5/Regress/regress-256798.js | 36 + js/src/tests/js1_5/Regress/regress-259935.js | 43 + js/src/tests/js1_5/Regress/regress-260541.js | 21 + js/src/tests/js1_5/Regress/regress-261886.js | 29 + js/src/tests/js1_5/Regress/regress-261887.js | 37 + js/src/tests/js1_5/Regress/regress-271716-n.js | 27 + js/src/tests/js1_5/Regress/regress-274035.js | 29 + js/src/tests/js1_5/Regress/regress-274888.js | 39 + js/src/tests/js1_5/Regress/regress-275378.js | 47 + js/src/tests/js1_5/Regress/regress-276103.js | 26 + js/src/tests/js1_5/Regress/regress-278873.js | 27 + js/src/tests/js1_5/Regress/regress-280769-1.js | 27 + js/src/tests/js1_5/Regress/regress-280769-2.js | 44 + js/src/tests/js1_5/Regress/regress-280769-3.js | 45 + js/src/tests/js1_5/Regress/regress-280769-4.js | 47 + js/src/tests/js1_5/Regress/regress-280769-5.js | 34 + js/src/tests/js1_5/Regress/regress-280769.js | 39 + js/src/tests/js1_5/Regress/regress-281606.js | 46 + js/src/tests/js1_5/Regress/regress-281930.js | 20 + js/src/tests/js1_5/Regress/regress-283477.js | 27 + js/src/tests/js1_5/Regress/regress-288688.js | 48 + js/src/tests/js1_5/Regress/regress-289094.js | 27 + js/src/tests/js1_5/Regress/regress-290575.js | 57 + js/src/tests/js1_5/Regress/regress-290656.js | 32 + js/src/tests/js1_5/Regress/regress-294191.js | 30 + js/src/tests/js1_5/Regress/regress-294195-01.js | 25 + js/src/tests/js1_5/Regress/regress-294195-02.js | 17 + js/src/tests/js1_5/Regress/regress-294302.js | 24 + js/src/tests/js1_5/Regress/regress-295052.js | 26 + js/src/tests/js1_5/Regress/regress-295666.js | 22 + js/src/tests/js1_5/Regress/regress-299209.js | 23 + js/src/tests/js1_5/Regress/regress-299641.js | 24 + js/src/tests/js1_5/Regress/regress-303213.js | 56 + js/src/tests/js1_5/Regress/regress-306633.js | 35 + js/src/tests/js1_5/Regress/regress-306727.js | 40 + js/src/tests/js1_5/Regress/regress-306794.js | 25 + js/src/tests/js1_5/Regress/regress-308085.js | 569 + js/src/tests/js1_5/Regress/regress-308566.js | 27 + js/src/tests/js1_5/Regress/regress-310295.js | 21 + js/src/tests/js1_5/Regress/regress-310607.js | 29 + js/src/tests/js1_5/Regress/regress-310993.js | 22 + js/src/tests/js1_5/Regress/regress-311071.js | 18 + js/src/tests/js1_5/Regress/regress-311629.js | 22 + js/src/tests/js1_5/Regress/regress-312260.js | 27 + js/src/tests/js1_5/Regress/regress-31255.js | 79 + js/src/tests/js1_5/Regress/regress-312588.js | 27 + js/src/tests/js1_5/Regress/regress-314401.js | 72 + js/src/tests/js1_5/Regress/regress-315990.js | 40 + js/src/tests/js1_5/Regress/regress-317476.js | 31 + js/src/tests/js1_5/Regress/regress-317714-01.js | 19 + js/src/tests/js1_5/Regress/regress-317714-02.js | 20 + js/src/tests/js1_5/Regress/regress-319384.js | 28 + js/src/tests/js1_5/Regress/regress-319391.js | 39 + js/src/tests/js1_5/Regress/regress-320032.js | 27 + js/src/tests/js1_5/Regress/regress-320119.js | 116 + js/src/tests/js1_5/Regress/regress-321757.js | 109 + js/src/tests/js1_5/Regress/regress-321874.js | 207 + js/src/tests/js1_5/Regress/regress-321971.js | 23 + js/src/tests/js1_5/Regress/regress-322430.js | 37 + js/src/tests/js1_5/Regress/regress-323314-1.js | 40 + js/src/tests/js1_5/Regress/regress-325925.js | 19 + js/src/tests/js1_5/Regress/regress-326467.js | 17 + js/src/tests/js1_5/Regress/regress-328012.js | 29 + js/src/tests/js1_5/Regress/regress-328664.js | 31 + js/src/tests/js1_5/Regress/regress-329383.js | 83 + js/src/tests/js1_5/Regress/regress-329530.js | 41 + js/src/tests/js1_5/Regress/regress-330352.js | 35 + js/src/tests/js1_5/Regress/regress-330951.js | 17 + js/src/tests/js1_5/Regress/regress-334807-01.js | 24 + js/src/tests/js1_5/Regress/regress-334807-02.js | 28 + js/src/tests/js1_5/Regress/regress-334807-03.js | 24 + js/src/tests/js1_5/Regress/regress-334807-04.js | 28 + js/src/tests/js1_5/Regress/regress-334807-05.js | 33 + js/src/tests/js1_5/Regress/regress-334807-06.js | 37 + js/src/tests/js1_5/Regress/regress-336100.js | 24 + js/src/tests/js1_5/Regress/regress-338307.js | 29 + js/src/tests/js1_5/Regress/regress-340369.js | 23 + js/src/tests/js1_5/Regress/regress-341360.js | 55 + js/src/tests/js1_5/Regress/regress-343713.js | 21 + js/src/tests/js1_5/Regress/regress-343966.js | 32 + js/src/tests/js1_5/Regress/regress-344711-n.js | 34 + js/src/tests/js1_5/Regress/regress-344804.js | 32 + js/src/tests/js1_5/Regress/regress-344959.js | 36 + js/src/tests/js1_5/Regress/regress-346237.js | 28 + js/src/tests/js1_5/Regress/regress-346801.js | 76 + js/src/tests/js1_5/Regress/regress-349482-01.js | 29 + js/src/tests/js1_5/Regress/regress-349482-02.js | 29 + js/src/tests/js1_5/Regress/regress-349592.js | 28 + js/src/tests/js1_5/Regress/regress-350253.js | 34 + js/src/tests/js1_5/Regress/regress-350268.js | 74 + js/src/tests/js1_5/Regress/regress-350312.js | 80 + js/src/tests/js1_5/Regress/regress-350415.js | 34 + js/src/tests/js1_5/Regress/regress-350529.js | 33 + js/src/tests/js1_5/Regress/regress-350692.js | 38 + js/src/tests/js1_5/Regress/regress-351116.js | 30 + js/src/tests/js1_5/Regress/regress-351515.js | 36 + js/src/tests/js1_5/Regress/regress-352208.js | 44 + js/src/tests/js1_5/Regress/regress-352604.js | 29 + js/src/tests/js1_5/Regress/regress-354924.js | 32 + js/src/tests/js1_5/Regress/regress-355341.js | 29 + js/src/tests/js1_5/Regress/regress-355344.js | 49 + js/src/tests/js1_5/Regress/regress-355556.js | 35 + js/src/tests/js1_5/Regress/regress-355829-01.js | 28 + js/src/tests/js1_5/Regress/regress-355829-02.js | 41 + js/src/tests/js1_5/Regress/regress-355829-03.js | 29 + js/src/tests/js1_5/Regress/regress-356250.js | 44 + js/src/tests/js1_5/Regress/regress-356693.js | 36 + js/src/tests/js1_5/Regress/regress-360969-01.js | 42 + js/src/tests/js1_5/Regress/regress-360969-02.js | 32 + js/src/tests/js1_5/Regress/regress-360969-03.js | 42 + js/src/tests/js1_5/Regress/regress-360969-04.js | 32 + js/src/tests/js1_5/Regress/regress-360969-05.js | 44 + js/src/tests/js1_5/Regress/regress-360969-06.js | 33 + js/src/tests/js1_5/Regress/regress-361467.js | 32 + js/src/tests/js1_5/Regress/regress-361617.js | 35 + js/src/tests/js1_5/Regress/regress-362583.js | 44 + js/src/tests/js1_5/Regress/regress-3649-n.js | 33 + js/src/tests/js1_5/Regress/regress-366122.js | 46 + js/src/tests/js1_5/Regress/regress-366468.js | 34 + js/src/tests/js1_5/Regress/regress-366601.js | 38 + js/src/tests/js1_5/Regress/regress-367561-01.js | 37 + js/src/tests/js1_5/Regress/regress-367561-03.js | 36 + js/src/tests/js1_5/Regress/regress-372364.js | 47 + js/src/tests/js1_5/Regress/regress-379245.js | 39 + js/src/tests/js1_5/Regress/regress-383674.js | 58 + js/src/tests/js1_5/Regress/regress-383682.js | 36 + js/src/tests/js1_5/Regress/regress-385393-06.js | 28 + js/src/tests/js1_5/Regress/regress-387951-01.js | 28 + js/src/tests/js1_5/Regress/regress-387951-02.js | 28 + js/src/tests/js1_5/Regress/regress-387951-03.js | 28 + js/src/tests/js1_5/Regress/regress-39309.js | 76 + js/src/tests/js1_5/Regress/regress-396684.js | 48 + js/src/tests/js1_5/Regress/regress-398085-01.js | 745 + js/src/tests/js1_5/Regress/regress-398085-02.js | 728 + js/src/tests/js1_5/Regress/regress-398609.js | 39 + js/src/tests/js1_5/Regress/regress-404755.js | 50 + js/src/tests/js1_5/Regress/regress-406769.js | 155 + js/src/tests/js1_5/Regress/regress-407024.js | 20 + js/src/tests/js1_5/Regress/regress-407957.js | 30 + js/src/tests/js1_5/Regress/regress-410852.js | 37 + js/src/tests/js1_5/Regress/regress-416737-01.js | 28 + js/src/tests/js1_5/Regress/regress-416737-02.js | 33 + js/src/tests/js1_5/Regress/regress-417893.js | 36 + js/src/tests/js1_5/Regress/regress-418540.js | 62 + js/src/tests/js1_5/Regress/regress-419018.js | 47 + js/src/tests/js1_5/Regress/regress-419803.js | 28 + js/src/tests/js1_5/Regress/regress-420919.js | 37 + js/src/tests/js1_5/Regress/regress-422348.js | 38 + js/src/tests/js1_5/Regress/regress-424311.js | 28 + js/src/tests/js1_5/Regress/regress-425360.js | 42 + js/src/tests/js1_5/Regress/regress-426827.js | 34 + js/src/tests/js1_5/Regress/regress-428366.js | 21 + js/src/tests/js1_5/Regress/regress-438415-01.js | 27 + js/src/tests/js1_5/Regress/regress-438415-02.js | 31 + js/src/tests/js1_5/Regress/regress-440926.js | 31 + js/src/tests/js1_5/Regress/regress-449627.js | 114 + js/src/tests/js1_5/Regress/regress-449666.js | 65 + js/src/tests/js1_5/Regress/regress-450369.js | 310 + js/src/tests/js1_5/Regress/regress-450833.js | 45 + js/src/tests/js1_5/Regress/regress-451322.js | 37 + js/src/tests/js1_5/Regress/regress-451884.js | 34 + js/src/tests/js1_5/Regress/regress-451946.js | 32 + js/src/tests/js1_5/Regress/regress-452008.js | 151 + js/src/tests/js1_5/Regress/regress-452170.js | 29 + js/src/tests/js1_5/Regress/regress-452189.js | 23 + js/src/tests/js1_5/Regress/regress-452333.js | 29 + js/src/tests/js1_5/Regress/regress-452336.js | 29 + js/src/tests/js1_5/Regress/regress-452346.js | 28 + js/src/tests/js1_5/Regress/regress-452495.js | 19 + js/src/tests/js1_5/Regress/regress-452573-01.js | 29 + js/src/tests/js1_5/Regress/regress-452573-02.js | 29 + js/src/tests/js1_5/Regress/regress-452713.js | 29 + js/src/tests/js1_5/Regress/regress-452724-01.js | 29 + js/src/tests/js1_5/Regress/regress-452724-02.js | 29 + js/src/tests/js1_5/Regress/regress-452742-01.js | 51 + js/src/tests/js1_5/Regress/regress-452742-02.js | 56 + js/src/tests/js1_5/Regress/regress-452853.js | 29 + js/src/tests/js1_5/Regress/regress-452884-01.js | 29 + js/src/tests/js1_5/Regress/regress-452884-02.js | 29 + js/src/tests/js1_5/Regress/regress-453024.js | 45 + js/src/tests/js1_5/Regress/regress-453173.js | 31 + js/src/tests/js1_5/Regress/regress-453397.js | 46 + js/src/tests/js1_5/Regress/regress-453701.js | 29 + js/src/tests/js1_5/Regress/regress-453747.js | 37 + js/src/tests/js1_5/Regress/regress-454682.js | 33 + js/src/tests/js1_5/Regress/regress-454981.js | 34 + js/src/tests/js1_5/Regress/regress-455605.js | 30 + js/src/tests/js1_5/Regress/regress-455748.js | 30 + js/src/tests/js1_5/Regress/regress-455758-01.js | 30 + js/src/tests/js1_5/Regress/regress-455758-02.js | 30 + js/src/tests/js1_5/Regress/regress-455775.js | 34 + js/src/tests/js1_5/Regress/regress-456470.js | 38 + js/src/tests/js1_5/Regress/regress-456477-01.js | 30 + js/src/tests/js1_5/Regress/regress-456477-02.js | 30 + js/src/tests/js1_5/Regress/regress-456494.js | 48 + js/src/tests/js1_5/Regress/regress-456540-01.js | 30 + js/src/tests/js1_5/Regress/regress-456540-02.js | 30 + js/src/tests/js1_5/Regress/regress-457065-03.js | 32 + js/src/tests/js1_5/Regress/regress-457456.js | 30 + js/src/tests/js1_5/Regress/regress-457778.js | 30 + js/src/tests/js1_5/Regress/regress-458851.js | 30 + js/src/tests/js1_5/Regress/regress-459085.js | 34 + js/src/tests/js1_5/Regress/regress-459628.js | 34 + js/src/tests/js1_5/Regress/regress-459990.js | 33 + js/src/tests/js1_5/Regress/regress-460024.js | 39 + js/src/tests/js1_5/Regress/regress-460117.js | 45 + js/src/tests/js1_5/Regress/regress-460886-01.js | 28 + js/src/tests/js1_5/Regress/regress-460886-02.js | 28 + js/src/tests/js1_5/Regress/regress-461307.js | 31 + js/src/tests/js1_5/Regress/regress-461723.js | 30 + js/src/tests/js1_5/Regress/regress-462292.js | 34 + js/src/tests/js1_5/Regress/regress-462879.js | 34 + js/src/tests/js1_5/Regress/regress-462989.js | 31 + js/src/tests/js1_5/Regress/regress-463259.js | 27 + js/src/tests/js1_5/Regress/regress-463782.js | 66 + js/src/tests/js1_5/Regress/regress-464334.js | 36 + js/src/tests/js1_5/Regress/regress-464862.js | 123 + js/src/tests/js1_5/Regress/regress-465013.js | 39 + js/src/tests/js1_5/Regress/regress-465132.js | 43 + js/src/tests/js1_5/Regress/regress-465133.js | 33 + js/src/tests/js1_5/Regress/regress-465135.js | 33 + js/src/tests/js1_5/Regress/regress-465136.js | 33 + js/src/tests/js1_5/Regress/regress-465137.js | 33 + js/src/tests/js1_5/Regress/regress-465262.js | 32 + js/src/tests/js1_5/Regress/regress-465272.js | 32 + js/src/tests/js1_5/Regress/regress-465347.js | 52 + js/src/tests/js1_5/Regress/regress-465366.js | 39 + js/src/tests/js1_5/Regress/regress-466262.js | 34 + js/src/tests/js1_5/Regress/regress-466747.js | 59 + js/src/tests/js1_5/Regress/regress-469044.js | 71 + js/src/tests/js1_5/Regress/regress-470061.js | 43 + js/src/tests/js1_5/Regress/regress-470187-01.js | 28 + js/src/tests/js1_5/Regress/regress-470187-02.js | 28 + js/src/tests/js1_5/Regress/regress-470758-01.js | 30 + js/src/tests/js1_5/Regress/regress-470758-02.js | 32 + js/src/tests/js1_5/Regress/regress-472533.js | 28 + js/src/tests/js1_5/Regress/regress-475645-01.js | 47 + js/src/tests/js1_5/Regress/regress-475645-02.js | 54 + js/src/tests/js1_5/Regress/regress-476049.js | 43 + js/src/tests/js1_5/Regress/regress-476192.js | 38 + js/src/tests/js1_5/Regress/regress-477733.js | 42 + js/src/tests/js1_5/Regress/regress-477758.js | 50 + js/src/tests/js1_5/Regress/regress-478314.js | 30 + js/src/tests/js1_5/Regress/regress-479353.js | 28 + js/src/tests/js1_5/Regress/regress-480147.js | 32 + js/src/tests/js1_5/Regress/regress-480244.js | 51 + js/src/tests/js1_5/Regress/regress-481436.js | 38 + js/src/tests/js1_5/Regress/regress-482421.js | 26 + js/src/tests/js1_5/Regress/regress-482783.js | 32 + js/src/tests/js1_5/Regress/regress-483103.js | 33 + js/src/tests/js1_5/Regress/regress-501124.js | 43 + js/src/tests/js1_5/Regress/regress-503860.js | 24 + js/src/tests/js1_5/Regress/regress-504078.js | 51 + js/src/tests/js1_5/Regress/regress-506567.js | 45 + js/src/tests/js1_5/Regress/regress-511859.js | 150 + js/src/tests/js1_5/Regress/regress-57043.js | 79 + js/src/tests/js1_5/Regress/regress-58116.js | 30 + js/src/tests/js1_5/Regress/regress-68498-001.js | 44 + js/src/tests/js1_5/Regress/regress-68498-002.js | 67 + js/src/tests/js1_5/Regress/regress-68498-003.js | 71 + js/src/tests/js1_5/Regress/regress-68498-004.js | 99 + js/src/tests/js1_5/Regress/regress-69607.js | 42 + js/src/tests/js1_5/Regress/regress-71107.js | 46 + js/src/tests/js1_5/Regress/regress-76054.js | 126 + js/src/tests/js1_5/Regress/regress-80981.js | 3111 + js/src/tests/js1_5/Regress/regress-82306.js | 48 + js/src/tests/js1_5/Regress/regress-89443.js | 2119 + js/src/tests/js1_5/Regress/regress-89474.js | 50 + js/src/tests/js1_5/Regress/regress-90445.js | 295 + js/src/tests/js1_5/Regress/regress-96128-n.js | 51 + js/src/tests/js1_5/Regress/regress-96526-001.js | 503 + js/src/tests/js1_5/Regress/regress-96526-002.js | 29 + js/src/tests/js1_5/Regress/regress-96526-003.js | 4404 ++ js/src/tests/js1_5/Regress/regress-98901.js | 3892 ++ js/src/tests/js1_5/Regress/shell.js | 0 js/src/tests/js1_5/Scope/browser.js | 0 js/src/tests/js1_5/Scope/regress-154693.js | 67 + js/src/tests/js1_5/Scope/regress-181834.js | 149 + js/src/tests/js1_5/Scope/regress-184107.js | 93 + js/src/tests/js1_5/Scope/regress-185485.js | 129 + js/src/tests/js1_5/Scope/regress-191276.js | 94 + js/src/tests/js1_5/Scope/regress-192226.js | 91 + js/src/tests/js1_5/Scope/regress-202678-001.js | 102 + js/src/tests/js1_5/Scope/regress-202678-002.js | 103 + js/src/tests/js1_5/Scope/regress-208496-001.js | 140 + js/src/tests/js1_5/Scope/regress-208496-002.js | 132 + js/src/tests/js1_5/Scope/regress-220362.js | 82 + js/src/tests/js1_5/Scope/regress-446026-01.js | 51 + js/src/tests/js1_5/Scope/regress-446026-02.js | 27 + js/src/tests/js1_5/Scope/regress-77578-001.js | 150 + js/src/tests/js1_5/Scope/scope-002.js | 108 + js/src/tests/js1_5/Scope/scope-003.js | 109 + js/src/tests/js1_5/Scope/scope-004.js | 191 + js/src/tests/js1_5/Scope/shell.js | 0 js/src/tests/js1_5/String/browser.js | 0 js/src/tests/js1_5/String/regress-107771.js | 91 + js/src/tests/js1_5/String/regress-112626.js | 18 + js/src/tests/js1_5/String/regress-179068.js | 125 + js/src/tests/js1_5/String/replace-flags.js | 25 + js/src/tests/js1_5/String/shell.js | 0 js/src/tests/js1_5/browser.js | 0 js/src/tests/js1_5/extensions/browser.js | 0 js/src/tests/js1_5/extensions/catchguard-001-n.js | 43 + js/src/tests/js1_5/extensions/catchguard-001.js | 47 + js/src/tests/js1_5/extensions/catchguard-002.js | 43 + js/src/tests/js1_5/extensions/catchguard-003.js | 58 + js/src/tests/js1_5/extensions/getset-001.js | 51 + js/src/tests/js1_5/extensions/getset-003.js | 189 + js/src/tests/js1_5/extensions/getset-004.js | 177 + js/src/tests/js1_5/extensions/getset-005.js | 186 + js/src/tests/js1_5/extensions/getset-006.js | 160 + js/src/tests/js1_5/extensions/regress-104077.js | 196 + js/src/tests/js1_5/extensions/regress-178722.js | 93 + js/src/tests/js1_5/extensions/regress-192465.js | 123 + js/src/tests/js1_5/extensions/regress-225831.js | 162 + js/src/tests/js1_5/extensions/regress-226078.js | 27 + js/src/tests/js1_5/extensions/regress-226507.js | 153 + js/src/tests/js1_5/extensions/regress-231518.js | 101 + js/src/tests/js1_5/extensions/regress-237461.js | 46 + js/src/tests/js1_5/extensions/regress-245148.js | 21 + js/src/tests/js1_5/extensions/regress-245795.js | 31 + js/src/tests/js1_5/extensions/regress-254375.js | 29 + js/src/tests/js1_5/extensions/regress-255245.js | 30 + js/src/tests/js1_5/extensions/regress-291213.js | 48 + js/src/tests/js1_5/extensions/regress-300079.js | 47 + js/src/tests/js1_5/extensions/regress-303277.js | 19 + js/src/tests/js1_5/extensions/regress-304897.js | 20 + js/src/tests/js1_5/extensions/regress-306738.js | 25 + js/src/tests/js1_5/extensions/regress-311161.js | 1438 + js/src/tests/js1_5/extensions/regress-311583.js | 21 + js/src/tests/js1_5/extensions/regress-311792-01.js | 26 + js/src/tests/js1_5/extensions/regress-311792-02.js | 40 + js/src/tests/js1_5/extensions/regress-313763.js | 46 + js/src/tests/js1_5/extensions/regress-313803.js | 24 + js/src/tests/js1_5/extensions/regress-313938.js | 54 + js/src/tests/js1_5/extensions/regress-314874.js | 40 + js/src/tests/js1_5/extensions/regress-315509-02.js | 42 + js/src/tests/js1_5/extensions/regress-319683.js | 31 + js/src/tests/js1_5/extensions/regress-322957.js | 27 + js/src/tests/js1_5/extensions/regress-327608.js | 48 + js/src/tests/js1_5/extensions/regress-328443.js | 32 + js/src/tests/js1_5/extensions/regress-328556.js | 19 + js/src/tests/js1_5/extensions/regress-330569.js | 94 + js/src/tests/js1_5/extensions/regress-333541.js | 57 + js/src/tests/js1_5/extensions/regress-336409-1.js | 50 + js/src/tests/js1_5/extensions/regress-336409-2.js | 49 + js/src/tests/js1_5/extensions/regress-336410-1.js | 50 + js/src/tests/js1_5/extensions/regress-336410-2.js | 49 + js/src/tests/js1_5/extensions/regress-338804-01.js | 69 + js/src/tests/js1_5/extensions/regress-338804-02.js | 70 + js/src/tests/js1_5/extensions/regress-338804-03.js | 29 + js/src/tests/js1_5/extensions/regress-339685.js | 27 + js/src/tests/js1_5/extensions/regress-341956-01.js | 68 + js/src/tests/js1_5/extensions/regress-341956-02.js | 55 + js/src/tests/js1_5/extensions/regress-341956-03.js | 72 + js/src/tests/js1_5/extensions/regress-342960.js | 46 + js/src/tests/js1_5/extensions/regress-345967.js | 68 + js/src/tests/js1_5/extensions/regress-346494-01.js | 90 + js/src/tests/js1_5/extensions/regress-346494.js | 82 + js/src/tests/js1_5/extensions/regress-350312-01.js | 50 + js/src/tests/js1_5/extensions/regress-350312-02.js | 112 + js/src/tests/js1_5/extensions/regress-350312-03.js | 116 + js/src/tests/js1_5/extensions/regress-350531.js | 156 + js/src/tests/js1_5/extensions/regress-351102-01.js | 39 + js/src/tests/js1_5/extensions/regress-351102-02.js | 45 + js/src/tests/js1_5/extensions/regress-351102-06.js | 34 + js/src/tests/js1_5/extensions/regress-351448.js | 62 + js/src/tests/js1_5/extensions/regress-351463-01.js | 254 + js/src/tests/js1_5/extensions/regress-351973.js | 51 + js/src/tests/js1_5/extensions/regress-352281.js | 35 + js/src/tests/js1_5/extensions/regress-352291.js | 41 + js/src/tests/js1_5/extensions/regress-352372.js | 65 + js/src/tests/js1_5/extensions/regress-352604.js | 33 + js/src/tests/js1_5/extensions/regress-354297.js | 30 + js/src/tests/js1_5/extensions/regress-354541-01.js | 34 + js/src/tests/js1_5/extensions/regress-354541-02.js | 43 + js/src/tests/js1_5/extensions/regress-354541-03.js | 55 + js/src/tests/js1_5/extensions/regress-354541-04.js | 60 + js/src/tests/js1_5/extensions/regress-355339.js | 32 + js/src/tests/js1_5/extensions/regress-355497.js | 60 + js/src/tests/js1_5/extensions/regress-355622.js | 34 + js/src/tests/js1_5/extensions/regress-355655.js | 45 + js/src/tests/js1_5/extensions/regress-355820.js | 31 + js/src/tests/js1_5/extensions/regress-355982.js | 43 + js/src/tests/js1_5/extensions/regress-356402.js | 23 + js/src/tests/js1_5/extensions/regress-358594-01.js | 32 + js/src/tests/js1_5/extensions/regress-358594-02.js | 21 + js/src/tests/js1_5/extensions/regress-358594-03.js | 31 + js/src/tests/js1_5/extensions/regress-358594-04.js | 21 + js/src/tests/js1_5/extensions/regress-358594-05.js | 32 + js/src/tests/js1_5/extensions/regress-358594-06.js | 21 + js/src/tests/js1_5/extensions/regress-359024.js | 36 + js/src/tests/js1_5/extensions/regress-361346.js | 22 + js/src/tests/js1_5/extensions/regress-361360.js | 32 + js/src/tests/js1_5/extensions/regress-361552.js | 27 + js/src/tests/js1_5/extensions/regress-361558.js | 19 + js/src/tests/js1_5/extensions/regress-361571.js | 38 + js/src/tests/js1_5/extensions/regress-361856.js | 35 + js/src/tests/js1_5/extensions/regress-361964.js | 54 + js/src/tests/js1_5/extensions/regress-363258.js | 48 + js/src/tests/js1_5/extensions/regress-363988.js | 47 + js/src/tests/js1_5/extensions/regress-365527.js | 66 + js/src/tests/js1_5/extensions/regress-365692.js | 40 + js/src/tests/js1_5/extensions/regress-365869.js | 48 + js/src/tests/js1_5/extensions/regress-366288.js | 18 + js/src/tests/js1_5/extensions/regress-366292.js | 19 + js/src/tests/js1_5/extensions/regress-366396.js | 17 + js/src/tests/js1_5/extensions/regress-367118-01.js | 41 + js/src/tests/js1_5/extensions/regress-367118-02.js | 41 + js/src/tests/js1_5/extensions/regress-367119-01.js | 41 + js/src/tests/js1_5/extensions/regress-367119-02.js | 41 + js/src/tests/js1_5/extensions/regress-367120-01.js | 41 + js/src/tests/js1_5/extensions/regress-367120-02.js | 41 + js/src/tests/js1_5/extensions/regress-367121.js | 64 + js/src/tests/js1_5/extensions/regress-367501-01.js | 35 + js/src/tests/js1_5/extensions/regress-367501-02.js | 37 + js/src/tests/js1_5/extensions/regress-367501-03.js | 38 + js/src/tests/js1_5/extensions/regress-367501-04.js | 38 + js/src/tests/js1_5/extensions/regress-367589.js | 49 + js/src/tests/js1_5/extensions/regress-369404.js | 48 + js/src/tests/js1_5/extensions/regress-369696-01.js | 31 + js/src/tests/js1_5/extensions/regress-369696-02.js | 58 + js/src/tests/js1_5/extensions/regress-369696-03.js | 47 + js/src/tests/js1_5/extensions/regress-372309.js | 47 + js/src/tests/js1_5/extensions/regress-374589.js | 34 + js/src/tests/js1_5/extensions/regress-375183.js | 62 + js/src/tests/js1_5/extensions/regress-375344.js | 34 + js/src/tests/js1_5/extensions/regress-375801.js | 36 + js/src/tests/js1_5/extensions/regress-380581.js | 29 + js/src/tests/js1_5/extensions/regress-380889.js | 40 + js/src/tests/js1_5/extensions/regress-381211.js | 29 + js/src/tests/js1_5/extensions/regress-381304.js | 69 + js/src/tests/js1_5/extensions/regress-385134.js | 38 + js/src/tests/js1_5/extensions/regress-385393-02.js | 34 + js/src/tests/js1_5/extensions/regress-385393-09.js | 18 + js/src/tests/js1_5/extensions/regress-390597.js | 42 + js/src/tests/js1_5/extensions/regress-390598.js | 34 + js/src/tests/js1_5/extensions/regress-394967.js | 42 + js/src/tests/js1_5/extensions/regress-396326.js | 48 + js/src/tests/js1_5/extensions/regress-406572.js | 47 + js/src/tests/js1_5/extensions/regress-407501.js | 42 + js/src/tests/js1_5/extensions/regress-407720.js | 52 + js/src/tests/js1_5/extensions/regress-412926.js | 57 + js/src/tests/js1_5/extensions/regress-414755.js | 54 + js/src/tests/js1_5/extensions/regress-416354.js | 48 + js/src/tests/js1_5/extensions/regress-416460.js | 30 + js/src/tests/js1_5/extensions/regress-416834.js | 20 + js/src/tests/js1_5/extensions/regress-418730.js | 32 + js/src/tests/js1_5/extensions/regress-420612.js | 21 + js/src/tests/js1_5/extensions/regress-420869-01.js | 40 + js/src/tests/js1_5/extensions/regress-421621.js | 22 + js/src/tests/js1_5/extensions/regress-422592.js | 68 + js/src/tests/js1_5/extensions/regress-424683-01.js | 36 + js/src/tests/js1_5/extensions/regress-426711.js | 34 + js/src/tests/js1_5/extensions/regress-427196-01.js | 40 + js/src/tests/js1_5/extensions/regress-427196-02.js | 37 + js/src/tests/js1_5/extensions/regress-427196-03.js | 31 + js/src/tests/js1_5/extensions/regress-429739.js | 36 + js/src/tests/js1_5/extensions/regress-432075.js | 25 + js/src/tests/js1_5/extensions/regress-434837-01.js | 90 + js/src/tests/js1_5/extensions/regress-435345-01.js | 100 + js/src/tests/js1_5/extensions/regress-435497-01.js | 34 + js/src/tests/js1_5/extensions/regress-435497-02.js | 34 + js/src/tests/js1_5/extensions/regress-435497-03.js | 34 + js/src/tests/js1_5/extensions/regress-436741.js | 35 + js/src/tests/js1_5/extensions/regress-437288-01.js | 29 + js/src/tests/js1_5/extensions/regress-44009.js | 52 + js/src/tests/js1_5/extensions/regress-443569.js | 41 + js/src/tests/js1_5/extensions/regress-446386.js | 47 + js/src/tests/js1_5/extensions/regress-452168.js | 42 + js/src/tests/js1_5/extensions/regress-452178.js | 30 + js/src/tests/js1_5/extensions/regress-452329.js | 27 + js/src/tests/js1_5/extensions/regress-452338.js | 29 + js/src/tests/js1_5/extensions/regress-452565.js | 19 + js/src/tests/js1_5/extensions/regress-453249.js | 21 + js/src/tests/js1_5/extensions/regress-454040.js | 25 + js/src/tests/js1_5/extensions/regress-454142.js | 30 + js/src/tests/js1_5/extensions/regress-454704.js | 54 + js/src/tests/js1_5/extensions/regress-455380.js | 60 + js/src/tests/js1_5/extensions/regress-455408.js | 29 + js/src/tests/js1_5/extensions/regress-455413.js | 24 + js/src/tests/js1_5/extensions/regress-459606.js | 29 + js/src/tests/js1_5/extensions/regress-462734-02.js | 26 + js/src/tests/js1_5/extensions/regress-462734-03.js | 25 + js/src/tests/js1_5/extensions/regress-462734-04.js | 29 + js/src/tests/js1_5/extensions/regress-465145.js | 24 + js/src/tests/js1_5/extensions/regress-465276.js | 34 + js/src/tests/js1_5/extensions/regress-469625.js | 31 + js/src/tests/js1_5/extensions/regress-469761.js | 31 + js/src/tests/js1_5/extensions/regress-472599.js | 32 + js/src/tests/js1_5/extensions/regress-472787.js | 31 + js/src/tests/js1_5/extensions/regress-476447.js | 33 + js/src/tests/js1_5/extensions/regress-479487.js | 44 + js/src/tests/js1_5/extensions/regress-479551.js | 42 + js/src/tests/js1_5/extensions/regress-480579.js | 38 + js/src/tests/js1_5/extensions/regress-481516.js | 41 + js/src/tests/js1_5/extensions/regress-488995.js | 46 + js/src/tests/js1_5/extensions/regress-50447-1.js | 173 + js/src/tests/js1_5/extensions/regress-50447.js | 134 + js/src/tests/js1_5/extensions/regress-543839.js | 36 + js/src/tests/js1_5/extensions/regress-90596-001.js | 265 + js/src/tests/js1_5/extensions/regress-90596-002.js | 265 + js/src/tests/js1_5/extensions/regress-96284-001.js | 148 + js/src/tests/js1_5/extensions/regress-96284-002.js | 148 + js/src/tests/js1_5/extensions/scope-001.js | 88 + js/src/tests/js1_5/extensions/shell.js | 0 js/src/tests/js1_5/extensions/toLocaleFormat-01.js | 230 + js/src/tests/js1_5/extensions/toLocaleFormat-02.js | 105 + js/src/tests/js1_5/shell.js | 0 js/src/tests/js1_5/template.js | 28 + 725 files changed, 167381 insertions(+) create mode 100644 js/src/tests/js1_5/Array/11.1.4.js create mode 100644 js/src/tests/js1_5/Array/array-001.js create mode 100644 js/src/tests/js1_5/Array/browser.js create mode 100644 js/src/tests/js1_5/Array/regress-101964.js create mode 100644 js/src/tests/js1_5/Array/regress-107138.js create mode 100644 js/src/tests/js1_5/Array/regress-108440.js create mode 100644 js/src/tests/js1_5/Array/regress-154338.js create mode 100644 js/src/tests/js1_5/Array/regress-157652.js create mode 100644 js/src/tests/js1_5/Array/regress-178722.js create mode 100644 js/src/tests/js1_5/Array/regress-255555.js create mode 100644 js/src/tests/js1_5/Array/regress-299644.js create mode 100644 js/src/tests/js1_5/Array/regress-300858.js create mode 100644 js/src/tests/js1_5/Array/regress-310351.js create mode 100644 js/src/tests/js1_5/Array/regress-311515.js create mode 100644 js/src/tests/js1_5/Array/regress-313153.js create mode 100644 js/src/tests/js1_5/Array/regress-315509-01.js create mode 100644 js/src/tests/js1_5/Array/regress-330812.js create mode 100644 js/src/tests/js1_5/Array/regress-345961.js create mode 100644 js/src/tests/js1_5/Array/regress-348810.js create mode 100644 js/src/tests/js1_5/Array/regress-350256-01.js create mode 100644 js/src/tests/js1_5/Array/regress-350256-02.js create mode 100644 js/src/tests/js1_5/Array/regress-360681-01.js create mode 100644 js/src/tests/js1_5/Array/regress-360681-02.js create mode 100644 js/src/tests/js1_5/Array/regress-364104.js create mode 100644 js/src/tests/js1_5/Array/regress-422286.js create mode 100644 js/src/tests/js1_5/Array/regress-424954.js create mode 100644 js/src/tests/js1_5/Array/regress-451483.js create mode 100644 js/src/tests/js1_5/Array/regress-451906.js create mode 100644 js/src/tests/js1_5/Array/regress-456845.js create mode 100644 js/src/tests/js1_5/Array/regress-465980-01.js create mode 100755 js/src/tests/js1_5/Array/regress-465980-02.js create mode 100644 js/src/tests/js1_5/Array/regress-474529.js create mode 100644 js/src/tests/js1_5/Array/regress-94257.js create mode 100644 js/src/tests/js1_5/Array/shell.js create mode 100644 js/src/tests/js1_5/Date/browser.js create mode 100644 js/src/tests/js1_5/Date/regress-188211.js create mode 100644 js/src/tests/js1_5/Date/regress-301738-01.js create mode 100644 js/src/tests/js1_5/Date/regress-309925-01.js create mode 100644 js/src/tests/js1_5/Date/regress-309925-02.js create mode 100644 js/src/tests/js1_5/Date/regress-346027.js create mode 100644 js/src/tests/js1_5/Date/regress-346363.js create mode 100644 js/src/tests/js1_5/Date/shell.js create mode 100644 js/src/tests/js1_5/Error/browser.js create mode 100644 js/src/tests/js1_5/Error/constructor-ordering.js create mode 100644 js/src/tests/js1_5/Error/regress-354246.js create mode 100644 js/src/tests/js1_5/Error/regress-412324.js create mode 100644 js/src/tests/js1_5/Error/regress-465377.js create mode 100644 js/src/tests/js1_5/Error/shell.js create mode 100644 js/src/tests/js1_5/Exceptions/browser.js create mode 100644 js/src/tests/js1_5/Exceptions/catchguard-002-n.js create mode 100644 js/src/tests/js1_5/Exceptions/catchguard-003-n.js create mode 100644 js/src/tests/js1_5/Exceptions/errstack-001.js create mode 100644 js/src/tests/js1_5/Exceptions/regress-121658.js create mode 100644 js/src/tests/js1_5/Exceptions/regress-123002.js create mode 100644 js/src/tests/js1_5/Exceptions/regress-257751.js create mode 100644 js/src/tests/js1_5/Exceptions/regress-273931.js create mode 100644 js/src/tests/js1_5/Exceptions/regress-315147.js create mode 100644 js/src/tests/js1_5/Exceptions/regress-332472.js create mode 100644 js/src/tests/js1_5/Exceptions/regress-333728.js create mode 100644 js/src/tests/js1_5/Exceptions/regress-342359.js create mode 100644 js/src/tests/js1_5/Exceptions/regress-347674.js create mode 100644 js/src/tests/js1_5/Exceptions/regress-350650-n.js create mode 100644 js/src/tests/js1_5/Exceptions/regress-350837.js create mode 100644 js/src/tests/js1_5/Exceptions/shell.js create mode 100644 js/src/tests/js1_5/Expressions/browser.js create mode 100644 js/src/tests/js1_5/Expressions/regress-192288.js create mode 100644 js/src/tests/js1_5/Expressions/regress-394673.js create mode 100644 js/src/tests/js1_5/Expressions/regress-96526-argsub.js create mode 100644 js/src/tests/js1_5/Expressions/regress-96526-delelem.js create mode 100644 js/src/tests/js1_5/Expressions/regress-96526-noargsub.js create mode 100644 js/src/tests/js1_5/Expressions/shell.js create mode 100644 js/src/tests/js1_5/Function/10.1.6-01.js create mode 100644 js/src/tests/js1_5/Function/10.1.6.js create mode 100644 js/src/tests/js1_5/Function/browser.js create mode 100644 js/src/tests/js1_5/Function/regress-123371.js create mode 100644 js/src/tests/js1_5/Function/regress-178389.js create mode 100644 js/src/tests/js1_5/Function/regress-222029-001.js create mode 100644 js/src/tests/js1_5/Function/regress-222029-002.js create mode 100644 js/src/tests/js1_5/Function/regress-292215.js create mode 100644 js/src/tests/js1_5/Function/regress-338001.js create mode 100644 js/src/tests/js1_5/Function/regress-338121-01.js create mode 100644 js/src/tests/js1_5/Function/regress-338121-02.js create mode 100644 js/src/tests/js1_5/Function/regress-338121-03.js create mode 100644 js/src/tests/js1_5/Function/regress-344052.js create mode 100644 js/src/tests/js1_5/Function/regress-364023.js create mode 100644 js/src/tests/js1_5/Function/shell.js create mode 100644 js/src/tests/js1_5/GC/browser.js create mode 100644 js/src/tests/js1_5/GC/regress-104584.js create mode 100644 js/src/tests/js1_5/GC/regress-203278-2.js create mode 100644 js/src/tests/js1_5/GC/regress-203278-3.js create mode 100644 js/src/tests/js1_5/GC/regress-278725.js create mode 100644 js/src/tests/js1_5/GC/regress-306788.js create mode 100644 js/src/tests/js1_5/GC/regress-311497.js create mode 100644 js/src/tests/js1_5/GC/regress-313276.js create mode 100644 js/src/tests/js1_5/GC/regress-313479.js create mode 100644 js/src/tests/js1_5/GC/regress-316885-01.js create mode 100644 js/src/tests/js1_5/GC/regress-316885-02.js create mode 100644 js/src/tests/js1_5/GC/regress-316885-03.js create mode 100644 js/src/tests/js1_5/GC/regress-319980-01.js create mode 100644 js/src/tests/js1_5/GC/regress-324278.js create mode 100644 js/src/tests/js1_5/GC/regress-331719.js create mode 100644 js/src/tests/js1_5/GC/regress-338653.js create mode 100644 js/src/tests/js1_5/GC/regress-341877-01.js create mode 100644 js/src/tests/js1_5/GC/regress-341877-02.js create mode 100644 js/src/tests/js1_5/GC/regress-346794.js create mode 100644 js/src/tests/js1_5/GC/regress-348532.js create mode 100644 js/src/tests/js1_5/GC/regress-352606.js create mode 100644 js/src/tests/js1_5/GC/regress-383269-01.js create mode 100644 js/src/tests/js1_5/GC/regress-383269-02.js create mode 100644 js/src/tests/js1_5/GC/regress-390078.js create mode 100644 js/src/tests/js1_5/GC/regress-418128.js create mode 100644 js/src/tests/js1_5/GC/regress-440558.js create mode 100644 js/src/tests/js1_5/GC/shell.js create mode 100644 js/src/tests/js1_5/GetSet/browser.js create mode 100644 js/src/tests/js1_5/GetSet/getset-002.js create mode 100644 js/src/tests/js1_5/GetSet/regress-353264.js create mode 100644 js/src/tests/js1_5/GetSet/regress-375976.js create mode 100644 js/src/tests/js1_5/GetSet/shell.js create mode 100644 js/src/tests/js1_5/LexicalConventions/browser.js create mode 100644 js/src/tests/js1_5/LexicalConventions/lexical-001.js create mode 100644 js/src/tests/js1_5/LexicalConventions/regress-177314.js create mode 100644 js/src/tests/js1_5/LexicalConventions/regress-469940.js create mode 100644 js/src/tests/js1_5/LexicalConventions/shell.js create mode 100644 js/src/tests/js1_5/Object/browser.js create mode 100644 js/src/tests/js1_5/Object/regress-137000.js create mode 100644 js/src/tests/js1_5/Object/regress-192105.js create mode 100644 js/src/tests/js1_5/Object/regress-308806-01.js create mode 100644 js/src/tests/js1_5/Object/regress-338709.js create mode 100644 js/src/tests/js1_5/Object/regress-362872-01.js create mode 100644 js/src/tests/js1_5/Object/regress-362872-02.js create mode 100644 js/src/tests/js1_5/Object/regress-382503.js create mode 100644 js/src/tests/js1_5/Object/regress-382532.js create mode 100644 js/src/tests/js1_5/Object/regress-465476.js create mode 100644 js/src/tests/js1_5/Object/regress-90596-003.js create mode 100644 js/src/tests/js1_5/Object/shell.js create mode 100644 js/src/tests/js1_5/README create mode 100644 js/src/tests/js1_5/Regress/browser.js create mode 100644 js/src/tests/js1_5/Regress/regress-102725.js create mode 100644 js/src/tests/js1_5/Regress/regress-10278.js create mode 100644 js/src/tests/js1_5/Regress/regress-104077.js create mode 100644 js/src/tests/js1_5/Regress/regress-106244.js create mode 100644 js/src/tests/js1_5/Regress/regress-110286.js create mode 100644 js/src/tests/js1_5/Regress/regress-111557.js create mode 100644 js/src/tests/js1_5/Regress/regress-114491.js create mode 100644 js/src/tests/js1_5/Regress/regress-114493.js create mode 100644 js/src/tests/js1_5/Regress/regress-115436.js create mode 100644 js/src/tests/js1_5/Regress/regress-116228.js create mode 100644 js/src/tests/js1_5/Regress/regress-118849.js create mode 100644 js/src/tests/js1_5/Regress/regress-119719.js create mode 100644 js/src/tests/js1_5/Regress/regress-127243.js create mode 100644 js/src/tests/js1_5/Regress/regress-127557.js create mode 100644 js/src/tests/js1_5/Regress/regress-131510-001.js create mode 100644 js/src/tests/js1_5/Regress/regress-139316.js create mode 100644 js/src/tests/js1_5/Regress/regress-140852.js create mode 100644 js/src/tests/js1_5/Regress/regress-140974.js create mode 100644 js/src/tests/js1_5/Regress/regress-146596.js create mode 100644 js/src/tests/js1_5/Regress/regress-152646.js create mode 100644 js/src/tests/js1_5/Regress/regress-155081-2.js create mode 100644 js/src/tests/js1_5/Regress/regress-155081.js create mode 100644 js/src/tests/js1_5/Regress/regress-156354.js create mode 100644 js/src/tests/js1_5/Regress/regress-159334.js create mode 100644 js/src/tests/js1_5/Regress/regress-162392.js create mode 100644 js/src/tests/js1_5/Regress/regress-165201.js create mode 100644 js/src/tests/js1_5/Regress/regress-167328.js create mode 100644 js/src/tests/js1_5/Regress/regress-167658.js create mode 100644 js/src/tests/js1_5/Regress/regress-168347.js create mode 100644 js/src/tests/js1_5/Regress/regress-170193.js create mode 100644 js/src/tests/js1_5/Regress/regress-172699.js create mode 100644 js/src/tests/js1_5/Regress/regress-173067.js create mode 100644 js/src/tests/js1_5/Regress/regress-174709.js create mode 100644 js/src/tests/js1_5/Regress/regress-176125.js create mode 100644 js/src/tests/js1_5/Regress/regress-179524.js create mode 100644 js/src/tests/js1_5/Regress/regress-185165.js create mode 100644 js/src/tests/js1_5/Regress/regress-191633.js create mode 100644 js/src/tests/js1_5/Regress/regress-191668.js create mode 100644 js/src/tests/js1_5/Regress/regress-192414.js create mode 100644 js/src/tests/js1_5/Regress/regress-193418.js create mode 100644 js/src/tests/js1_5/Regress/regress-203278-1.js create mode 100644 js/src/tests/js1_5/Regress/regress-203402.js create mode 100644 js/src/tests/js1_5/Regress/regress-203841.js create mode 100644 js/src/tests/js1_5/Regress/regress-204210.js create mode 100644 js/src/tests/js1_5/Regress/regress-210682.js create mode 100644 js/src/tests/js1_5/Regress/regress-211590.js create mode 100644 js/src/tests/js1_5/Regress/regress-213482.js create mode 100644 js/src/tests/js1_5/Regress/regress-214761.js create mode 100644 js/src/tests/js1_5/Regress/regress-216320.js create mode 100644 js/src/tests/js1_5/Regress/regress-224956.js create mode 100644 js/src/tests/js1_5/Regress/regress-229006.js create mode 100644 js/src/tests/js1_5/Regress/regress-230216-1.js create mode 100644 js/src/tests/js1_5/Regress/regress-230216-2.js create mode 100644 js/src/tests/js1_5/Regress/regress-230216-3.js create mode 100644 js/src/tests/js1_5/Regress/regress-233483-2.js create mode 100644 js/src/tests/js1_5/Regress/regress-233483.js create mode 100644 js/src/tests/js1_5/Regress/regress-234389.js create mode 100644 js/src/tests/js1_5/Regress/regress-238881.js create mode 100644 js/src/tests/js1_5/Regress/regress-238945.js create mode 100644 js/src/tests/js1_5/Regress/regress-240577.js create mode 100644 js/src/tests/js1_5/Regress/regress-243174.js create mode 100644 js/src/tests/js1_5/Regress/regress-243389-n.js create mode 100644 js/src/tests/js1_5/Regress/regress-243869.js create mode 100644 js/src/tests/js1_5/Regress/regress-244470.js create mode 100644 js/src/tests/js1_5/Regress/regress-244619.js create mode 100644 js/src/tests/js1_5/Regress/regress-245113.js create mode 100644 js/src/tests/js1_5/Regress/regress-245308.js create mode 100644 js/src/tests/js1_5/Regress/regress-246911.js create mode 100644 js/src/tests/js1_5/Regress/regress-246964.js create mode 100644 js/src/tests/js1_5/Regress/regress-247179.js create mode 100644 js/src/tests/js1_5/Regress/regress-248444.js create mode 100644 js/src/tests/js1_5/Regress/regress-249211.js create mode 100644 js/src/tests/js1_5/Regress/regress-252892.js create mode 100644 js/src/tests/js1_5/Regress/regress-253150.js create mode 100644 js/src/tests/js1_5/Regress/regress-254296.js create mode 100644 js/src/tests/js1_5/Regress/regress-254974.js create mode 100644 js/src/tests/js1_5/Regress/regress-256501.js create mode 100644 js/src/tests/js1_5/Regress/regress-256617.js create mode 100644 js/src/tests/js1_5/Regress/regress-256798.js create mode 100644 js/src/tests/js1_5/Regress/regress-259935.js create mode 100644 js/src/tests/js1_5/Regress/regress-260541.js create mode 100644 js/src/tests/js1_5/Regress/regress-261886.js create mode 100644 js/src/tests/js1_5/Regress/regress-261887.js create mode 100644 js/src/tests/js1_5/Regress/regress-271716-n.js create mode 100644 js/src/tests/js1_5/Regress/regress-274035.js create mode 100644 js/src/tests/js1_5/Regress/regress-274888.js create mode 100644 js/src/tests/js1_5/Regress/regress-275378.js create mode 100644 js/src/tests/js1_5/Regress/regress-276103.js create mode 100644 js/src/tests/js1_5/Regress/regress-278873.js create mode 100644 js/src/tests/js1_5/Regress/regress-280769-1.js create mode 100644 js/src/tests/js1_5/Regress/regress-280769-2.js create mode 100644 js/src/tests/js1_5/Regress/regress-280769-3.js create mode 100644 js/src/tests/js1_5/Regress/regress-280769-4.js create mode 100644 js/src/tests/js1_5/Regress/regress-280769-5.js create mode 100644 js/src/tests/js1_5/Regress/regress-280769.js create mode 100644 js/src/tests/js1_5/Regress/regress-281606.js create mode 100644 js/src/tests/js1_5/Regress/regress-281930.js create mode 100644 js/src/tests/js1_5/Regress/regress-283477.js create mode 100644 js/src/tests/js1_5/Regress/regress-288688.js create mode 100644 js/src/tests/js1_5/Regress/regress-289094.js create mode 100644 js/src/tests/js1_5/Regress/regress-290575.js create mode 100644 js/src/tests/js1_5/Regress/regress-290656.js create mode 100644 js/src/tests/js1_5/Regress/regress-294191.js create mode 100644 js/src/tests/js1_5/Regress/regress-294195-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-294195-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-294302.js create mode 100644 js/src/tests/js1_5/Regress/regress-295052.js create mode 100644 js/src/tests/js1_5/Regress/regress-295666.js create mode 100644 js/src/tests/js1_5/Regress/regress-299209.js create mode 100644 js/src/tests/js1_5/Regress/regress-299641.js create mode 100644 js/src/tests/js1_5/Regress/regress-303213.js create mode 100644 js/src/tests/js1_5/Regress/regress-306633.js create mode 100644 js/src/tests/js1_5/Regress/regress-306727.js create mode 100644 js/src/tests/js1_5/Regress/regress-306794.js create mode 100644 js/src/tests/js1_5/Regress/regress-308085.js create mode 100644 js/src/tests/js1_5/Regress/regress-308566.js create mode 100644 js/src/tests/js1_5/Regress/regress-310295.js create mode 100644 js/src/tests/js1_5/Regress/regress-310607.js create mode 100644 js/src/tests/js1_5/Regress/regress-310993.js create mode 100644 js/src/tests/js1_5/Regress/regress-311071.js create mode 100644 js/src/tests/js1_5/Regress/regress-311629.js create mode 100644 js/src/tests/js1_5/Regress/regress-312260.js create mode 100644 js/src/tests/js1_5/Regress/regress-31255.js create mode 100644 js/src/tests/js1_5/Regress/regress-312588.js create mode 100644 js/src/tests/js1_5/Regress/regress-314401.js create mode 100644 js/src/tests/js1_5/Regress/regress-315990.js create mode 100644 js/src/tests/js1_5/Regress/regress-317476.js create mode 100644 js/src/tests/js1_5/Regress/regress-317714-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-317714-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-319384.js create mode 100644 js/src/tests/js1_5/Regress/regress-319391.js create mode 100644 js/src/tests/js1_5/Regress/regress-320032.js create mode 100644 js/src/tests/js1_5/Regress/regress-320119.js create mode 100644 js/src/tests/js1_5/Regress/regress-321757.js create mode 100644 js/src/tests/js1_5/Regress/regress-321874.js create mode 100644 js/src/tests/js1_5/Regress/regress-321971.js create mode 100644 js/src/tests/js1_5/Regress/regress-322430.js create mode 100644 js/src/tests/js1_5/Regress/regress-323314-1.js create mode 100644 js/src/tests/js1_5/Regress/regress-325925.js create mode 100644 js/src/tests/js1_5/Regress/regress-326467.js create mode 100644 js/src/tests/js1_5/Regress/regress-328012.js create mode 100644 js/src/tests/js1_5/Regress/regress-328664.js create mode 100644 js/src/tests/js1_5/Regress/regress-329383.js create mode 100644 js/src/tests/js1_5/Regress/regress-329530.js create mode 100644 js/src/tests/js1_5/Regress/regress-330352.js create mode 100644 js/src/tests/js1_5/Regress/regress-330951.js create mode 100644 js/src/tests/js1_5/Regress/regress-334807-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-334807-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-334807-03.js create mode 100644 js/src/tests/js1_5/Regress/regress-334807-04.js create mode 100644 js/src/tests/js1_5/Regress/regress-334807-05.js create mode 100644 js/src/tests/js1_5/Regress/regress-334807-06.js create mode 100644 js/src/tests/js1_5/Regress/regress-336100.js create mode 100644 js/src/tests/js1_5/Regress/regress-338307.js create mode 100644 js/src/tests/js1_5/Regress/regress-340369.js create mode 100644 js/src/tests/js1_5/Regress/regress-341360.js create mode 100644 js/src/tests/js1_5/Regress/regress-343713.js create mode 100644 js/src/tests/js1_5/Regress/regress-343966.js create mode 100644 js/src/tests/js1_5/Regress/regress-344711-n.js create mode 100644 js/src/tests/js1_5/Regress/regress-344804.js create mode 100644 js/src/tests/js1_5/Regress/regress-344959.js create mode 100644 js/src/tests/js1_5/Regress/regress-346237.js create mode 100644 js/src/tests/js1_5/Regress/regress-346801.js create mode 100644 js/src/tests/js1_5/Regress/regress-349482-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-349482-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-349592.js create mode 100644 js/src/tests/js1_5/Regress/regress-350253.js create mode 100644 js/src/tests/js1_5/Regress/regress-350268.js create mode 100644 js/src/tests/js1_5/Regress/regress-350312.js create mode 100644 js/src/tests/js1_5/Regress/regress-350415.js create mode 100644 js/src/tests/js1_5/Regress/regress-350529.js create mode 100644 js/src/tests/js1_5/Regress/regress-350692.js create mode 100644 js/src/tests/js1_5/Regress/regress-351116.js create mode 100644 js/src/tests/js1_5/Regress/regress-351515.js create mode 100644 js/src/tests/js1_5/Regress/regress-352208.js create mode 100644 js/src/tests/js1_5/Regress/regress-352604.js create mode 100644 js/src/tests/js1_5/Regress/regress-354924.js create mode 100644 js/src/tests/js1_5/Regress/regress-355341.js create mode 100644 js/src/tests/js1_5/Regress/regress-355344.js create mode 100644 js/src/tests/js1_5/Regress/regress-355556.js create mode 100644 js/src/tests/js1_5/Regress/regress-355829-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-355829-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-355829-03.js create mode 100644 js/src/tests/js1_5/Regress/regress-356250.js create mode 100644 js/src/tests/js1_5/Regress/regress-356693.js create mode 100644 js/src/tests/js1_5/Regress/regress-360969-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-360969-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-360969-03.js create mode 100644 js/src/tests/js1_5/Regress/regress-360969-04.js create mode 100644 js/src/tests/js1_5/Regress/regress-360969-05.js create mode 100644 js/src/tests/js1_5/Regress/regress-360969-06.js create mode 100644 js/src/tests/js1_5/Regress/regress-361467.js create mode 100644 js/src/tests/js1_5/Regress/regress-361617.js create mode 100644 js/src/tests/js1_5/Regress/regress-362583.js create mode 100644 js/src/tests/js1_5/Regress/regress-3649-n.js create mode 100644 js/src/tests/js1_5/Regress/regress-366122.js create mode 100644 js/src/tests/js1_5/Regress/regress-366468.js create mode 100644 js/src/tests/js1_5/Regress/regress-366601.js create mode 100644 js/src/tests/js1_5/Regress/regress-367561-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-367561-03.js create mode 100644 js/src/tests/js1_5/Regress/regress-372364.js create mode 100644 js/src/tests/js1_5/Regress/regress-379245.js create mode 100644 js/src/tests/js1_5/Regress/regress-383674.js create mode 100644 js/src/tests/js1_5/Regress/regress-383682.js create mode 100644 js/src/tests/js1_5/Regress/regress-385393-06.js create mode 100644 js/src/tests/js1_5/Regress/regress-387951-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-387951-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-387951-03.js create mode 100644 js/src/tests/js1_5/Regress/regress-39309.js create mode 100644 js/src/tests/js1_5/Regress/regress-396684.js create mode 100644 js/src/tests/js1_5/Regress/regress-398085-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-398085-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-398609.js create mode 100644 js/src/tests/js1_5/Regress/regress-404755.js create mode 100644 js/src/tests/js1_5/Regress/regress-406769.js create mode 100644 js/src/tests/js1_5/Regress/regress-407024.js create mode 100644 js/src/tests/js1_5/Regress/regress-407957.js create mode 100644 js/src/tests/js1_5/Regress/regress-410852.js create mode 100644 js/src/tests/js1_5/Regress/regress-416737-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-416737-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-417893.js create mode 100644 js/src/tests/js1_5/Regress/regress-418540.js create mode 100644 js/src/tests/js1_5/Regress/regress-419018.js create mode 100644 js/src/tests/js1_5/Regress/regress-419803.js create mode 100644 js/src/tests/js1_5/Regress/regress-420919.js create mode 100644 js/src/tests/js1_5/Regress/regress-422348.js create mode 100644 js/src/tests/js1_5/Regress/regress-424311.js create mode 100644 js/src/tests/js1_5/Regress/regress-425360.js create mode 100644 js/src/tests/js1_5/Regress/regress-426827.js create mode 100644 js/src/tests/js1_5/Regress/regress-428366.js create mode 100644 js/src/tests/js1_5/Regress/regress-438415-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-438415-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-440926.js create mode 100644 js/src/tests/js1_5/Regress/regress-449627.js create mode 100644 js/src/tests/js1_5/Regress/regress-449666.js create mode 100644 js/src/tests/js1_5/Regress/regress-450369.js create mode 100644 js/src/tests/js1_5/Regress/regress-450833.js create mode 100755 js/src/tests/js1_5/Regress/regress-451322.js create mode 100644 js/src/tests/js1_5/Regress/regress-451884.js create mode 100644 js/src/tests/js1_5/Regress/regress-451946.js create mode 100644 js/src/tests/js1_5/Regress/regress-452008.js create mode 100644 js/src/tests/js1_5/Regress/regress-452170.js create mode 100644 js/src/tests/js1_5/Regress/regress-452189.js create mode 100644 js/src/tests/js1_5/Regress/regress-452333.js create mode 100644 js/src/tests/js1_5/Regress/regress-452336.js create mode 100644 js/src/tests/js1_5/Regress/regress-452346.js create mode 100644 js/src/tests/js1_5/Regress/regress-452495.js create mode 100644 js/src/tests/js1_5/Regress/regress-452573-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-452573-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-452713.js create mode 100644 js/src/tests/js1_5/Regress/regress-452724-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-452724-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-452742-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-452742-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-452853.js create mode 100644 js/src/tests/js1_5/Regress/regress-452884-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-452884-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-453024.js create mode 100644 js/src/tests/js1_5/Regress/regress-453173.js create mode 100644 js/src/tests/js1_5/Regress/regress-453397.js create mode 100644 js/src/tests/js1_5/Regress/regress-453701.js create mode 100644 js/src/tests/js1_5/Regress/regress-453747.js create mode 100644 js/src/tests/js1_5/Regress/regress-454682.js create mode 100644 js/src/tests/js1_5/Regress/regress-454981.js create mode 100644 js/src/tests/js1_5/Regress/regress-455605.js create mode 100644 js/src/tests/js1_5/Regress/regress-455748.js create mode 100644 js/src/tests/js1_5/Regress/regress-455758-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-455758-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-455775.js create mode 100644 js/src/tests/js1_5/Regress/regress-456470.js create mode 100644 js/src/tests/js1_5/Regress/regress-456477-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-456477-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-456494.js create mode 100644 js/src/tests/js1_5/Regress/regress-456540-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-456540-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-457065-03.js create mode 100644 js/src/tests/js1_5/Regress/regress-457456.js create mode 100644 js/src/tests/js1_5/Regress/regress-457778.js create mode 100644 js/src/tests/js1_5/Regress/regress-458851.js create mode 100644 js/src/tests/js1_5/Regress/regress-459085.js create mode 100644 js/src/tests/js1_5/Regress/regress-459628.js create mode 100644 js/src/tests/js1_5/Regress/regress-459990.js create mode 100644 js/src/tests/js1_5/Regress/regress-460024.js create mode 100644 js/src/tests/js1_5/Regress/regress-460117.js create mode 100644 js/src/tests/js1_5/Regress/regress-460886-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-460886-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-461307.js create mode 100644 js/src/tests/js1_5/Regress/regress-461723.js create mode 100644 js/src/tests/js1_5/Regress/regress-462292.js create mode 100644 js/src/tests/js1_5/Regress/regress-462879.js create mode 100644 js/src/tests/js1_5/Regress/regress-462989.js create mode 100644 js/src/tests/js1_5/Regress/regress-463259.js create mode 100644 js/src/tests/js1_5/Regress/regress-463782.js create mode 100644 js/src/tests/js1_5/Regress/regress-464334.js create mode 100644 js/src/tests/js1_5/Regress/regress-464862.js create mode 100644 js/src/tests/js1_5/Regress/regress-465013.js create mode 100644 js/src/tests/js1_5/Regress/regress-465132.js create mode 100644 js/src/tests/js1_5/Regress/regress-465133.js create mode 100644 js/src/tests/js1_5/Regress/regress-465135.js create mode 100644 js/src/tests/js1_5/Regress/regress-465136.js create mode 100644 js/src/tests/js1_5/Regress/regress-465137.js create mode 100644 js/src/tests/js1_5/Regress/regress-465262.js create mode 100644 js/src/tests/js1_5/Regress/regress-465272.js create mode 100644 js/src/tests/js1_5/Regress/regress-465347.js create mode 100644 js/src/tests/js1_5/Regress/regress-465366.js create mode 100644 js/src/tests/js1_5/Regress/regress-466262.js create mode 100644 js/src/tests/js1_5/Regress/regress-466747.js create mode 100644 js/src/tests/js1_5/Regress/regress-469044.js create mode 100644 js/src/tests/js1_5/Regress/regress-470061.js create mode 100644 js/src/tests/js1_5/Regress/regress-470187-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-470187-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-470758-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-470758-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-472533.js create mode 100644 js/src/tests/js1_5/Regress/regress-475645-01.js create mode 100644 js/src/tests/js1_5/Regress/regress-475645-02.js create mode 100644 js/src/tests/js1_5/Regress/regress-476049.js create mode 100644 js/src/tests/js1_5/Regress/regress-476192.js create mode 100644 js/src/tests/js1_5/Regress/regress-477733.js create mode 100644 js/src/tests/js1_5/Regress/regress-477758.js create mode 100644 js/src/tests/js1_5/Regress/regress-478314.js create mode 100644 js/src/tests/js1_5/Regress/regress-479353.js create mode 100644 js/src/tests/js1_5/Regress/regress-480147.js create mode 100644 js/src/tests/js1_5/Regress/regress-480244.js create mode 100644 js/src/tests/js1_5/Regress/regress-481436.js create mode 100644 js/src/tests/js1_5/Regress/regress-482421.js create mode 100644 js/src/tests/js1_5/Regress/regress-482783.js create mode 100644 js/src/tests/js1_5/Regress/regress-483103.js create mode 100644 js/src/tests/js1_5/Regress/regress-501124.js create mode 100644 js/src/tests/js1_5/Regress/regress-503860.js create mode 100644 js/src/tests/js1_5/Regress/regress-504078.js create mode 100644 js/src/tests/js1_5/Regress/regress-506567.js create mode 100644 js/src/tests/js1_5/Regress/regress-511859.js create mode 100644 js/src/tests/js1_5/Regress/regress-57043.js create mode 100644 js/src/tests/js1_5/Regress/regress-58116.js create mode 100644 js/src/tests/js1_5/Regress/regress-68498-001.js create mode 100644 js/src/tests/js1_5/Regress/regress-68498-002.js create mode 100644 js/src/tests/js1_5/Regress/regress-68498-003.js create mode 100644 js/src/tests/js1_5/Regress/regress-68498-004.js create mode 100644 js/src/tests/js1_5/Regress/regress-69607.js create mode 100644 js/src/tests/js1_5/Regress/regress-71107.js create mode 100644 js/src/tests/js1_5/Regress/regress-76054.js create mode 100644 js/src/tests/js1_5/Regress/regress-80981.js create mode 100644 js/src/tests/js1_5/Regress/regress-82306.js create mode 100644 js/src/tests/js1_5/Regress/regress-89443.js create mode 100644 js/src/tests/js1_5/Regress/regress-89474.js create mode 100644 js/src/tests/js1_5/Regress/regress-90445.js create mode 100644 js/src/tests/js1_5/Regress/regress-96128-n.js create mode 100644 js/src/tests/js1_5/Regress/regress-96526-001.js create mode 100644 js/src/tests/js1_5/Regress/regress-96526-002.js create mode 100644 js/src/tests/js1_5/Regress/regress-96526-003.js create mode 100644 js/src/tests/js1_5/Regress/regress-98901.js create mode 100644 js/src/tests/js1_5/Regress/shell.js create mode 100644 js/src/tests/js1_5/Scope/browser.js create mode 100644 js/src/tests/js1_5/Scope/regress-154693.js create mode 100644 js/src/tests/js1_5/Scope/regress-181834.js create mode 100644 js/src/tests/js1_5/Scope/regress-184107.js create mode 100644 js/src/tests/js1_5/Scope/regress-185485.js create mode 100644 js/src/tests/js1_5/Scope/regress-191276.js create mode 100644 js/src/tests/js1_5/Scope/regress-192226.js create mode 100644 js/src/tests/js1_5/Scope/regress-202678-001.js create mode 100644 js/src/tests/js1_5/Scope/regress-202678-002.js create mode 100644 js/src/tests/js1_5/Scope/regress-208496-001.js create mode 100644 js/src/tests/js1_5/Scope/regress-208496-002.js create mode 100644 js/src/tests/js1_5/Scope/regress-220362.js create mode 100644 js/src/tests/js1_5/Scope/regress-446026-01.js create mode 100644 js/src/tests/js1_5/Scope/regress-446026-02.js create mode 100644 js/src/tests/js1_5/Scope/regress-77578-001.js create mode 100644 js/src/tests/js1_5/Scope/scope-002.js create mode 100644 js/src/tests/js1_5/Scope/scope-003.js create mode 100644 js/src/tests/js1_5/Scope/scope-004.js create mode 100644 js/src/tests/js1_5/Scope/shell.js create mode 100644 js/src/tests/js1_5/String/browser.js create mode 100644 js/src/tests/js1_5/String/regress-107771.js create mode 100644 js/src/tests/js1_5/String/regress-112626.js create mode 100644 js/src/tests/js1_5/String/regress-179068.js create mode 100644 js/src/tests/js1_5/String/replace-flags.js create mode 100644 js/src/tests/js1_5/String/shell.js create mode 100644 js/src/tests/js1_5/browser.js create mode 100644 js/src/tests/js1_5/extensions/browser.js create mode 100644 js/src/tests/js1_5/extensions/catchguard-001-n.js create mode 100644 js/src/tests/js1_5/extensions/catchguard-001.js create mode 100644 js/src/tests/js1_5/extensions/catchguard-002.js create mode 100644 js/src/tests/js1_5/extensions/catchguard-003.js create mode 100644 js/src/tests/js1_5/extensions/getset-001.js create mode 100644 js/src/tests/js1_5/extensions/getset-003.js create mode 100644 js/src/tests/js1_5/extensions/getset-004.js create mode 100644 js/src/tests/js1_5/extensions/getset-005.js create mode 100644 js/src/tests/js1_5/extensions/getset-006.js create mode 100644 js/src/tests/js1_5/extensions/regress-104077.js create mode 100644 js/src/tests/js1_5/extensions/regress-178722.js create mode 100644 js/src/tests/js1_5/extensions/regress-192465.js create mode 100644 js/src/tests/js1_5/extensions/regress-225831.js create mode 100644 js/src/tests/js1_5/extensions/regress-226078.js create mode 100644 js/src/tests/js1_5/extensions/regress-226507.js create mode 100644 js/src/tests/js1_5/extensions/regress-231518.js create mode 100644 js/src/tests/js1_5/extensions/regress-237461.js create mode 100644 js/src/tests/js1_5/extensions/regress-245148.js create mode 100644 js/src/tests/js1_5/extensions/regress-245795.js create mode 100644 js/src/tests/js1_5/extensions/regress-254375.js create mode 100644 js/src/tests/js1_5/extensions/regress-255245.js create mode 100644 js/src/tests/js1_5/extensions/regress-291213.js create mode 100644 js/src/tests/js1_5/extensions/regress-300079.js create mode 100644 js/src/tests/js1_5/extensions/regress-303277.js create mode 100644 js/src/tests/js1_5/extensions/regress-304897.js create mode 100644 js/src/tests/js1_5/extensions/regress-306738.js create mode 100644 js/src/tests/js1_5/extensions/regress-311161.js create mode 100644 js/src/tests/js1_5/extensions/regress-311583.js create mode 100644 js/src/tests/js1_5/extensions/regress-311792-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-311792-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-313763.js create mode 100644 js/src/tests/js1_5/extensions/regress-313803.js create mode 100644 js/src/tests/js1_5/extensions/regress-313938.js create mode 100644 js/src/tests/js1_5/extensions/regress-314874.js create mode 100644 js/src/tests/js1_5/extensions/regress-315509-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-319683.js create mode 100644 js/src/tests/js1_5/extensions/regress-322957.js create mode 100644 js/src/tests/js1_5/extensions/regress-327608.js create mode 100644 js/src/tests/js1_5/extensions/regress-328443.js create mode 100644 js/src/tests/js1_5/extensions/regress-328556.js create mode 100644 js/src/tests/js1_5/extensions/regress-330569.js create mode 100644 js/src/tests/js1_5/extensions/regress-333541.js create mode 100644 js/src/tests/js1_5/extensions/regress-336409-1.js create mode 100644 js/src/tests/js1_5/extensions/regress-336409-2.js create mode 100644 js/src/tests/js1_5/extensions/regress-336410-1.js create mode 100644 js/src/tests/js1_5/extensions/regress-336410-2.js create mode 100644 js/src/tests/js1_5/extensions/regress-338804-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-338804-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-338804-03.js create mode 100644 js/src/tests/js1_5/extensions/regress-339685.js create mode 100644 js/src/tests/js1_5/extensions/regress-341956-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-341956-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-341956-03.js create mode 100644 js/src/tests/js1_5/extensions/regress-342960.js create mode 100644 js/src/tests/js1_5/extensions/regress-345967.js create mode 100644 js/src/tests/js1_5/extensions/regress-346494-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-346494.js create mode 100644 js/src/tests/js1_5/extensions/regress-350312-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-350312-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-350312-03.js create mode 100644 js/src/tests/js1_5/extensions/regress-350531.js create mode 100644 js/src/tests/js1_5/extensions/regress-351102-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-351102-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-351102-06.js create mode 100644 js/src/tests/js1_5/extensions/regress-351448.js create mode 100644 js/src/tests/js1_5/extensions/regress-351463-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-351973.js create mode 100644 js/src/tests/js1_5/extensions/regress-352281.js create mode 100644 js/src/tests/js1_5/extensions/regress-352291.js create mode 100644 js/src/tests/js1_5/extensions/regress-352372.js create mode 100644 js/src/tests/js1_5/extensions/regress-352604.js create mode 100644 js/src/tests/js1_5/extensions/regress-354297.js create mode 100644 js/src/tests/js1_5/extensions/regress-354541-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-354541-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-354541-03.js create mode 100644 js/src/tests/js1_5/extensions/regress-354541-04.js create mode 100644 js/src/tests/js1_5/extensions/regress-355339.js create mode 100644 js/src/tests/js1_5/extensions/regress-355497.js create mode 100644 js/src/tests/js1_5/extensions/regress-355622.js create mode 100644 js/src/tests/js1_5/extensions/regress-355655.js create mode 100644 js/src/tests/js1_5/extensions/regress-355820.js create mode 100644 js/src/tests/js1_5/extensions/regress-355982.js create mode 100644 js/src/tests/js1_5/extensions/regress-356402.js create mode 100644 js/src/tests/js1_5/extensions/regress-358594-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-358594-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-358594-03.js create mode 100644 js/src/tests/js1_5/extensions/regress-358594-04.js create mode 100644 js/src/tests/js1_5/extensions/regress-358594-05.js create mode 100644 js/src/tests/js1_5/extensions/regress-358594-06.js create mode 100644 js/src/tests/js1_5/extensions/regress-359024.js create mode 100644 js/src/tests/js1_5/extensions/regress-361346.js create mode 100644 js/src/tests/js1_5/extensions/regress-361360.js create mode 100644 js/src/tests/js1_5/extensions/regress-361552.js create mode 100644 js/src/tests/js1_5/extensions/regress-361558.js create mode 100644 js/src/tests/js1_5/extensions/regress-361571.js create mode 100644 js/src/tests/js1_5/extensions/regress-361856.js create mode 100644 js/src/tests/js1_5/extensions/regress-361964.js create mode 100644 js/src/tests/js1_5/extensions/regress-363258.js create mode 100644 js/src/tests/js1_5/extensions/regress-363988.js create mode 100644 js/src/tests/js1_5/extensions/regress-365527.js create mode 100644 js/src/tests/js1_5/extensions/regress-365692.js create mode 100644 js/src/tests/js1_5/extensions/regress-365869.js create mode 100644 js/src/tests/js1_5/extensions/regress-366288.js create mode 100644 js/src/tests/js1_5/extensions/regress-366292.js create mode 100644 js/src/tests/js1_5/extensions/regress-366396.js create mode 100644 js/src/tests/js1_5/extensions/regress-367118-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-367118-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-367119-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-367119-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-367120-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-367120-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-367121.js create mode 100644 js/src/tests/js1_5/extensions/regress-367501-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-367501-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-367501-03.js create mode 100644 js/src/tests/js1_5/extensions/regress-367501-04.js create mode 100644 js/src/tests/js1_5/extensions/regress-367589.js create mode 100644 js/src/tests/js1_5/extensions/regress-369404.js create mode 100644 js/src/tests/js1_5/extensions/regress-369696-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-369696-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-369696-03.js create mode 100644 js/src/tests/js1_5/extensions/regress-372309.js create mode 100644 js/src/tests/js1_5/extensions/regress-374589.js create mode 100644 js/src/tests/js1_5/extensions/regress-375183.js create mode 100644 js/src/tests/js1_5/extensions/regress-375344.js create mode 100644 js/src/tests/js1_5/extensions/regress-375801.js create mode 100644 js/src/tests/js1_5/extensions/regress-380581.js create mode 100644 js/src/tests/js1_5/extensions/regress-380889.js create mode 100644 js/src/tests/js1_5/extensions/regress-381211.js create mode 100644 js/src/tests/js1_5/extensions/regress-381304.js create mode 100644 js/src/tests/js1_5/extensions/regress-385134.js create mode 100644 js/src/tests/js1_5/extensions/regress-385393-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-385393-09.js create mode 100644 js/src/tests/js1_5/extensions/regress-390597.js create mode 100644 js/src/tests/js1_5/extensions/regress-390598.js create mode 100644 js/src/tests/js1_5/extensions/regress-394967.js create mode 100644 js/src/tests/js1_5/extensions/regress-396326.js create mode 100644 js/src/tests/js1_5/extensions/regress-406572.js create mode 100644 js/src/tests/js1_5/extensions/regress-407501.js create mode 100644 js/src/tests/js1_5/extensions/regress-407720.js create mode 100644 js/src/tests/js1_5/extensions/regress-412926.js create mode 100644 js/src/tests/js1_5/extensions/regress-414755.js create mode 100644 js/src/tests/js1_5/extensions/regress-416354.js create mode 100644 js/src/tests/js1_5/extensions/regress-416460.js create mode 100644 js/src/tests/js1_5/extensions/regress-416834.js create mode 100644 js/src/tests/js1_5/extensions/regress-418730.js create mode 100644 js/src/tests/js1_5/extensions/regress-420612.js create mode 100644 js/src/tests/js1_5/extensions/regress-420869-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-421621.js create mode 100644 js/src/tests/js1_5/extensions/regress-422592.js create mode 100644 js/src/tests/js1_5/extensions/regress-424683-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-426711.js create mode 100644 js/src/tests/js1_5/extensions/regress-427196-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-427196-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-427196-03.js create mode 100644 js/src/tests/js1_5/extensions/regress-429739.js create mode 100644 js/src/tests/js1_5/extensions/regress-432075.js create mode 100644 js/src/tests/js1_5/extensions/regress-434837-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-435345-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-435497-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-435497-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-435497-03.js create mode 100644 js/src/tests/js1_5/extensions/regress-436741.js create mode 100644 js/src/tests/js1_5/extensions/regress-437288-01.js create mode 100644 js/src/tests/js1_5/extensions/regress-44009.js create mode 100644 js/src/tests/js1_5/extensions/regress-443569.js create mode 100644 js/src/tests/js1_5/extensions/regress-446386.js create mode 100644 js/src/tests/js1_5/extensions/regress-452168.js create mode 100644 js/src/tests/js1_5/extensions/regress-452178.js create mode 100644 js/src/tests/js1_5/extensions/regress-452329.js create mode 100644 js/src/tests/js1_5/extensions/regress-452338.js create mode 100644 js/src/tests/js1_5/extensions/regress-452565.js create mode 100644 js/src/tests/js1_5/extensions/regress-453249.js create mode 100644 js/src/tests/js1_5/extensions/regress-454040.js create mode 100644 js/src/tests/js1_5/extensions/regress-454142.js create mode 100644 js/src/tests/js1_5/extensions/regress-454704.js create mode 100644 js/src/tests/js1_5/extensions/regress-455380.js create mode 100644 js/src/tests/js1_5/extensions/regress-455408.js create mode 100644 js/src/tests/js1_5/extensions/regress-455413.js create mode 100644 js/src/tests/js1_5/extensions/regress-459606.js create mode 100644 js/src/tests/js1_5/extensions/regress-462734-02.js create mode 100644 js/src/tests/js1_5/extensions/regress-462734-03.js create mode 100644 js/src/tests/js1_5/extensions/regress-462734-04.js create mode 100644 js/src/tests/js1_5/extensions/regress-465145.js create mode 100644 js/src/tests/js1_5/extensions/regress-465276.js create mode 100644 js/src/tests/js1_5/extensions/regress-469625.js create mode 100644 js/src/tests/js1_5/extensions/regress-469761.js create mode 100644 js/src/tests/js1_5/extensions/regress-472599.js create mode 100755 js/src/tests/js1_5/extensions/regress-472787.js create mode 100644 js/src/tests/js1_5/extensions/regress-476447.js create mode 100644 js/src/tests/js1_5/extensions/regress-479487.js create mode 100644 js/src/tests/js1_5/extensions/regress-479551.js create mode 100644 js/src/tests/js1_5/extensions/regress-480579.js create mode 100644 js/src/tests/js1_5/extensions/regress-481516.js create mode 100644 js/src/tests/js1_5/extensions/regress-488995.js create mode 100644 js/src/tests/js1_5/extensions/regress-50447-1.js create mode 100644 js/src/tests/js1_5/extensions/regress-50447.js create mode 100644 js/src/tests/js1_5/extensions/regress-543839.js create mode 100644 js/src/tests/js1_5/extensions/regress-90596-001.js create mode 100644 js/src/tests/js1_5/extensions/regress-90596-002.js create mode 100644 js/src/tests/js1_5/extensions/regress-96284-001.js create mode 100644 js/src/tests/js1_5/extensions/regress-96284-002.js create mode 100644 js/src/tests/js1_5/extensions/scope-001.js create mode 100644 js/src/tests/js1_5/extensions/shell.js create mode 100644 js/src/tests/js1_5/extensions/toLocaleFormat-01.js create mode 100644 js/src/tests/js1_5/extensions/toLocaleFormat-02.js create mode 100644 js/src/tests/js1_5/shell.js create mode 100644 js/src/tests/js1_5/template.js (limited to 'js/src/tests/js1_5') diff --git a/js/src/tests/js1_5/Array/11.1.4.js b/js/src/tests/js1_5/Array/11.1.4.js new file mode 100644 index 000000000..7f39c9305 --- /dev/null +++ b/js/src/tests/js1_5/Array/11.1.4.js @@ -0,0 +1,68 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 260106; +var summary = 'Elisons in Array literals should not be enumed'; +var actual = ''; +var expect = ''; +var status; +var prop; +var array; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +status = summary + ' ' + inSection(1) + ' [,1] '; +array = [,1]; +actual = ''; +expect = '1'; +for (prop in array) +{ + if (prop != 'length') + { + actual += prop; + } +} +reportCompare(expect, actual, status); + +status = summary + ' ' + inSection(2) + ' [,,1] '; +array = [,,1]; +actual = ''; +expect = '2'; +for (prop in array) +{ + if (prop != 'length') + { + actual += prop; + } +} +reportCompare(expect, actual, status); + +status = summary + ' ' + inSection(3) + ' [1,] '; +array = [1,]; +actual = ''; +expect = '0'; +for (prop in array) +{ + if (prop != 'length') + { + actual += prop; + } +} +reportCompare(expect, actual, status); + +status = summary + ' ' + inSection(4) + ' [1,,] '; +array = [1,,]; +actual = ''; +expect = '0'; +for (prop in array) +{ + if (prop != 'length') + { + actual += prop; + } +} +reportCompare(expect, actual, status); diff --git a/js/src/tests/js1_5/Array/array-001.js b/js/src/tests/js1_5/Array/array-001.js new file mode 100644 index 000000000..26e1ae256 --- /dev/null +++ b/js/src/tests/js1_5/Array/array-001.js @@ -0,0 +1,88 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * Date: 24 September 2001 + * + * SUMMARY: Truncating arrays that have decimal property names. + * From correspondence with Igor Bukanov : + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = '(none)'; +var summary = 'Truncating arrays that have decimal property names'; +var BIG_INDEX = 4294967290; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + + +var arr = Array(BIG_INDEX); +arr[BIG_INDEX - 1] = 'a'; +arr[BIG_INDEX - 10000] = 'b'; +arr[BIG_INDEX - 0.5] = 'c'; // not an array index - but a valid property name +// Truncate the array - +arr.length = BIG_INDEX - 5000; + + +// Enumerate its properties with for..in +var s = ''; +for (var i in arr) +{ + s += arr[i]; +} + + +/* + * We expect s == 'cb' or 'bc' (EcmaScript does not fix the order). + * Note 'c' is included: for..in includes ALL enumerable properties, + * not just array-index properties. The bug was: Rhino gave s == ''. + */ +status = inSection(1); +actual = sortThis(s); +expect = 'bc'; +addThis(); + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function sortThis(str) +{ + var chars = str.split(''); + chars = chars.sort(); + return chars.join(''); +} + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var i=0; i var arr = new Array(0xFFFFFFFF) + * js> arr.length + * 4294967295 + * + * js> var arr = new Array(0x100000000) + * RangeError: invalid array length + * + * + * We'll try the largest possible array first, then a couple others. + * We're just testing that we don't crash on Array.sort(). + * + * Try to be good about memory by nulling each array variable after it is + * used. This will tell the garbage collector the memory is no longer needed. + * + * As of 2002-08-13, the JS shell runs out of memory no matter what we do, + * when trying to sort such large arrays. + * + * We only want to test that we don't CRASH on the sort. So it will be OK + * if we get the JS "out of memory" error. Note this terminates the test + * with exit code 3. Therefore we put + * + * |expectExitCode(3);| + * + * The only problem will arise if the JS shell ever DOES have enough memory + * to do the sort. Then this test will terminate with the normal exit code 0 + * and fail. + * + * Right now, I can't see any other way to do this, because "out of memory" + * is not a catchable error: it cannot be trapped with try...catch. + * + * + * FURTHER HEADACHE: Rhino can't seem to handle the largest array: it hangs. + * So we skip this case in Rhino. Here is correspondence with Igor Bukanov. + * He explains that Rhino isn't actually hanging; it's doing the huge sort: + * + * Philip Schwartau wrote: + * + * > Hi, + * > + * > I'm getting a graceful OOM message on trying to sort certain large + * > arrays. But if the array is too big, Rhino simply hangs. Note that ECMA + * > allows array lengths to be anything less than Math.pow(2,32), so the + * > arrays I'm sorting are legal. + * > + * > Note below, I'm getting an instantaneous OOM error on arr.sort() for LEN + * > = Math.pow(2, 30). So shouldn't I also get one for every LEN between + * > that and Math.pow(2, 32)? For some reason, I start to hang with 100% CPU + * > as LEN hits, say, Math.pow(2, 31) and higher. SpiderMonkey gives OOM + * > messages for all of these. Should I file a bug on this? + * + * Igor Bukanov wrote: + * + * This is due to different sorting algorithm Rhino uses when sorting + * arrays with length > Integer.MAX_VALUE. If length can fit Java int, + * Rhino first copies internal spare array to a temporary buffer, and then + * sorts it, otherwise it sorts array directly. In case of very spare + * arrays, that Array(big_number) generates, it is rather inefficient and + * generates OutOfMemory if length fits int. It may be worth in your case + * to optimize sorting to take into account array spareness, but then it + * would be a good idea to file a bug about ineficient sorting of spare + * arrays both in case of Rhino and SpiderMonkey as SM always uses a + * temporary buffer. + * + */ +//----------------------------------------------------------------------------- +var BUGNUMBER = 157652; +var summary = "Testing that Array.sort() doesn't crash on very large arrays"; +var expect = 'No Crash'; +var actual = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus(summary); + +expectExitCode(0); +expectExitCode(5); + +var IN_RHINO = inRhino(); + +try +{ + if (!IN_RHINO) + { + var a1=Array(0xFFFFFFFF); + a1.sort(); + a1 = null; + } + + var a2 = Array(0x40000000); + a2.sort(); + a2=null; + + var a3=Array(0x10000000/4); + a3.sort(); + a3=null; +} +catch(ex) +{ + // handle changed 1.9 branch behavior. see bug 422348 + expect = 'InternalError: allocation size overflow'; + actual = ex + ''; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Array/regress-178722.js b/js/src/tests/js1_5/Array/regress-178722.js new file mode 100644 index 000000000..950b1e759 --- /dev/null +++ b/js/src/tests/js1_5/Array/regress-178722.js @@ -0,0 +1,130 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * + * Date: 06 November 2002 + * SUMMARY: arr.sort() should not output |undefined| when |arr| is empty + * See http://bugzilla.mozilla.org/show_bug.cgi?id=178722 + * + * ECMA-262 Ed.3: 15.4.4.11 Array.prototype.sort (comparefn) + * + * 1. Call the [[Get]] method of this object with argument "length". + * 2. Call ToUint32(Result(1)). + * 3. Perform an implementation-dependent sequence of calls to the [[Get]], + * [[Put]], and [[Delete]] methods of this object, etc. etc. + * 4. Return this object. + * + * + * Note that sort() is done in-place on |arr|. In other words, sort() is a + * "destructive" method rather than a "functional" method. The return value + * of |arr.sort()| and |arr| are the same object. + * + * If |arr| is an empty array, the return value of |arr.sort()| should be + * an empty array, not the value |undefined| as was occurring in bug 178722. + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 178722; +var summary = 'arr.sort() should not output |undefined| when |arr| is empty'; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; +var arr; + + +// create empty array or pseudo-array objects in various ways +var arr1 = Array(); +var arr2 = new Array(); +var arr3 = []; +var arr4 = [1]; +arr4.pop(); + + +status = inSection(1); +arr = arr1.sort(); +actual = arr instanceof Array && arr.length === 0 && arr === arr1; +expect = true; +addThis(); + +status = inSection(2); +arr = arr2.sort(); +actual = arr instanceof Array && arr.length === 0 && arr === arr2; +expect = true; +addThis(); + +status = inSection(3); +arr = arr3.sort(); +actual = arr instanceof Array && arr.length === 0 && arr === arr3; +expect = true; +addThis(); + +status = inSection(4); +arr = arr4.sort(); +actual = arr instanceof Array && arr.length === 0 && arr === arr4; +expect = true; +addThis(); + +// now do the same thing, with non-default sorting: +function g() {return 1;} + +status = inSection('1a'); +arr = arr1.sort(g); +actual = arr instanceof Array && arr.length === 0 && arr === arr1; +expect = true; +addThis(); + +status = inSection('2a'); +arr = arr2.sort(g); +actual = arr instanceof Array && arr.length === 0 && arr === arr2; +expect = true; +addThis(); + +status = inSection('3a'); +arr = arr3.sort(g); +actual = arr instanceof Array && arr.length === 0 && arr === arr3; +expect = true; +addThis(); + +status = inSection('4a'); +arr = arr4.sort(g); +actual = arr instanceof Array && arr.length === 0 && arr === arr4; +expect = true; +addThis(); + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc('test'); + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i= 0; +reportCompare(expect, actual, summary + ': new Date(208e10)'); + +dt = new Date(209e10); +printStatus(dt+''); +expect = true; +actual = dt.toLocaleString().indexOf('2036') >= 0; +reportCompare(expect, actual, summary + ': new Date(209e10)'); diff --git a/js/src/tests/js1_5/Date/regress-301738-01.js b/js/src/tests/js1_5/Date/regress-301738-01.js new file mode 100644 index 000000000..8f5ae7d30 --- /dev/null +++ b/js/src/tests/js1_5/Date/regress-301738-01.js @@ -0,0 +1,97 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 301738; +var summary = 'Date parse compatibilty with MSIE'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +/* + Case 1. The input string contains an English month name. + The form of the string can be month f l, or f month l, or + f l month which each evaluate to the same date. + If f and l are both greater than or equal to 70, or + both less than 70, the date is invalid. + The year is taken to be the greater of the values f, l. + If the year is greater than or equal to 70 and less than 100, + it is considered to be the number of years after 1900. +*/ + +var month = 'January'; +var f; +var l; + +f = l = 0; +expect = true; + +actual = isNaN(new Date(month + ' ' + f + ' ' + l)); +reportCompare(expect, actual, 'January 0 0 is invalid'); + +actual = isNaN(new Date(f + ' ' + l + ' ' + month)); +reportCompare(expect, actual, '0 0 January is invalid'); + +actual = isNaN(new Date(f + ' ' + month + ' ' + l)); +reportCompare(expect, actual, '0 January 0 is invalid'); + +f = l = 70; + +actual = isNaN(new Date(month + ' ' + f + ' ' + l)); +reportCompare(expect, actual, 'January 70 70 is invalid'); + +actual = isNaN(new Date(f + ' ' + l + ' ' + month)); +reportCompare(expect, actual, '70 70 January is invalid'); + +actual = isNaN(new Date(f + ' ' + month + ' ' + l)); +reportCompare(expect, actual, '70 January 70 is invalid'); + +f = 100; +l = 15; + +// year, month, day +expect = new Date(f, 0, l).toString(); + +actual = new Date(month + ' ' + f + ' ' + l).toString(); +reportCompare(expect, actual, 'month f l'); + +actual = new Date(f + ' ' + l + ' ' + month).toString(); +reportCompare(expect, actual, 'f l month'); + +actual = new Date(f + ' ' + month + ' ' + l).toString(); +reportCompare(expect, actual, 'f month l'); + +f = 80; +l = 15; + +// year, month, day +expect = (new Date(f, 0, l)).toString(); + +actual = (new Date(month + ' ' + f + ' ' + l)).toString(); +reportCompare(expect, actual, 'month f l'); + +actual = (new Date(f + ' ' + l + ' ' + month)).toString(); +reportCompare(expect, actual, 'f l month'); + +actual = (new Date(f + ' ' + month + ' ' + l)).toString(); +reportCompare(expect, actual, 'f month l'); + +f = 2040; +l = 15; + +// year, month, day +expect = (new Date(f, 0, l)).toString(); + +actual = (new Date(month + ' ' + f + ' ' + l)).toString(); +reportCompare(expect, actual, 'month f l'); + +actual = (new Date(f + ' ' + l + ' ' + month)).toString(); +reportCompare(expect, actual, 'f l month'); + +actual = (new Date(f + ' ' + month + ' ' + l)).toString(); +reportCompare(expect, actual, 'f month l'); + diff --git a/js/src/tests/js1_5/Date/regress-309925-01.js b/js/src/tests/js1_5/Date/regress-309925-01.js new file mode 100644 index 000000000..ee6daaffc --- /dev/null +++ b/js/src/tests/js1_5/Date/regress-309925-01.js @@ -0,0 +1,15 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 309925; +var summary = 'Correctly parse Date strings with HH:MM'; +var actual = new Date('Sep 24, 11:58 105') + ''; +var expect = new Date('Sep 24, 11:58:00 105') + ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Date/regress-309925-02.js b/js/src/tests/js1_5/Date/regress-309925-02.js new file mode 100644 index 000000000..60bbfc33b --- /dev/null +++ b/js/src/tests/js1_5/Date/regress-309925-02.js @@ -0,0 +1,15 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 309925; +var summary = 'Correctly parse Date strings with HH:MM(comment)'; +var actual = new Date('Sep 24, 11:58(comment) 105') + ''; +var expect = new Date('Sep 24, 11:58:00 (comment) 105') + ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Date/regress-346027.js b/js/src/tests/js1_5/Date/regress-346027.js new file mode 100644 index 000000000..0910c5c7e --- /dev/null +++ b/js/src/tests/js1_5/Date/regress-346027.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 346027; +var summary = 'Date.prototype.setFullYear()'; +var actual = ''; +var expect = true; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var d = new Date(); + d.setFullYear(); + actual = isNaN(d.getFullYear()); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Date/regress-346363.js b/js/src/tests/js1_5/Date/regress-346363.js new file mode 100644 index 000000000..a4f44b5df --- /dev/null +++ b/js/src/tests/js1_5/Date/regress-346363.js @@ -0,0 +1,31 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 346363; +var summary = 'Date.prototype.setFullYear()'; +var actual = ''; +var expect = true; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var d = new Date(); + d.setFullYear(); + d.setFullYear(2006); + actual = d.getFullYear() == 2006; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Date/shell.js b/js/src/tests/js1_5/Date/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/js1_5/Error/browser.js b/js/src/tests/js1_5/Error/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/js1_5/Error/constructor-ordering.js b/js/src/tests/js1_5/Error/constructor-ordering.js new file mode 100644 index 000000000..dbcc2e604 --- /dev/null +++ b/js/src/tests/js1_5/Error/constructor-ordering.js @@ -0,0 +1,17 @@ +var order = 0; +function assertOrdering(ordering) { + assertEq(order, ordering); + order++; +} + +// Spec mandates that the prototype is looked up /before/ we toString the +// argument. +var handler = { get() { assertOrdering(0); return Error.prototype } }; +var errorProxy = new Proxy(Error, handler); + +var toStringable = { toString() { assertOrdering(1); return "Argument"; } }; + +new errorProxy(toStringable); + +if (typeof reportCompare === 'function') + reportCompare(0,0,"OK"); diff --git a/js/src/tests/js1_5/Error/regress-354246.js b/js/src/tests/js1_5/Error/regress-354246.js new file mode 100644 index 000000000..a2178c913 --- /dev/null +++ b/js/src/tests/js1_5/Error/regress-354246.js @@ -0,0 +1,37 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 354246; +var summary = 'calling Error constructor with object with bad toString'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '13'; + + actual += '1'; + try + { + new Error({toString: function() { x.y } }); + } + catch(e) + { + } + actual += '3'; + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Error/regress-412324.js b/js/src/tests/js1_5/Error/regress-412324.js new file mode 100644 index 000000000..d9debaa89 --- /dev/null +++ b/js/src/tests/js1_5/Error/regress-412324.js @@ -0,0 +1,17 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 412324; +var summary = 'Allow function Error(){} for the love of Pete'; +var actual = 'No Error'; +var expect = 'No Error'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function Error() {} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Error/regress-465377.js b/js/src/tests/js1_5/Error/regress-465377.js new file mode 100644 index 000000000..4b8800621 --- /dev/null +++ b/js/src/tests/js1_5/Error/regress-465377.js @@ -0,0 +1,81 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 465377; +var summary = 'instanceof relations between Error objects'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = actual = 'No Exception'; + + try + { + var list = [ + "Error", + "InternalError", + "EvalError", + "RangeError", + "ReferenceError", + "SyntaxError", + "TypeError", + "URIError" + ]; + var instances = []; + + for (var i = 0; i != list.length; ++i) { + var name = list[i]; + var constructor = this[name]; + var tmp = constructor.name; + if (tmp !== name) + throw "Bad value for "+name+".name: "+uneval(tmp); + instances[i] = new constructor(); + } + + for (var i = 0; i != instances.length; ++i) { + var instance = instances[i]; + var name = instance.name; + var constructor = instance.constructor; + if (constructor !== this[name]) + throw "Bad value of (new "+name+").constructor: "+uneval(tmp); + var tmp = constructor.name; + if (tmp !== name) + throw "Bad value for constructor.name: "+uneval(tmp); + if (!(instance instanceof Object)) + throw "Bad instanceof Object for "+name; + if (!(instance instanceof Error)) + throw "Bad instanceof Error for "+name; + if (!(instance instanceof constructor)) + throw "Bad instanceof constructor for "+name; + if (instance instanceof Function) + throw "Bad instanceof Function for "+name; + for (var j = 1; j != instances.length; ++j) { + if (i != j && instance instanceof instances[j].constructor) { + throw "Unexpected (new "+name+") instanceof "+ instances[j].name; + } + } + } + + print("OK"); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Error/shell.js b/js/src/tests/js1_5/Error/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/js1_5/Exceptions/browser.js b/js/src/tests/js1_5/Exceptions/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/js1_5/Exceptions/catchguard-002-n.js b/js/src/tests/js1_5/Exceptions/catchguard-002-n.js new file mode 100644 index 000000000..64c8ea081 --- /dev/null +++ b/js/src/tests/js1_5/Exceptions/catchguard-002-n.js @@ -0,0 +1,36 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*- + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +DESCRIPTION = "var in catch clause should have caused an error."; +EXPECTED = "error"; + +var expect; +var actual; + +test(); + +function test() +{ + enterFunc ("test"); + + var EXCEPTION_DATA = "String exception"; + var e; + + printStatus ("Catchguard var declaration negative test."); + + try + { + throw EXCEPTION_DATA; + } + catch (var e) + { + actual = e + ''; + } + + reportCompare(expect, actual, DESCRIPTION); + + exitFunc ("test"); +} diff --git a/js/src/tests/js1_5/Exceptions/catchguard-003-n.js b/js/src/tests/js1_5/Exceptions/catchguard-003-n.js new file mode 100644 index 000000000..e9e99eb49 --- /dev/null +++ b/js/src/tests/js1_5/Exceptions/catchguard-003-n.js @@ -0,0 +1,40 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*- + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +DESCRIPTION = "Illegally constructed catchguard should have thrown an exception."; +EXPECTED = "error"; + +var expect; +var actual; + +test(); + +function test() +{ + enterFunc ("test"); + + var EXCEPTION_DATA = "String exception"; + var e; + + printStatus ("Catchguard syntax negative test #2."); + + try + { + throw EXCEPTION_DATA; + } + catch (e) + { + actual = e + ': 1'; + } + catch (e) /* two non-guarded catch statements should generate an error */ + { + actual = e + ': 2'; + } + + reportCompare(expect, actual, DESCRIPTION); + + exitFunc ("test"); +} diff --git a/js/src/tests/js1_5/Exceptions/errstack-001.js b/js/src/tests/js1_5/Exceptions/errstack-001.js new file mode 100644 index 000000000..834ce037b --- /dev/null +++ b/js/src/tests/js1_5/Exceptions/errstack-001.js @@ -0,0 +1,245 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * + * Date: 28 Feb 2002 + * SUMMARY: Testing that Error.stack distinguishes between: + * + * A) top-level calls: myFunc(); + * B) no-name function calls: function() { myFunc();} () + * + * The stack frame for A) should begin with '@' + * The stack frame for B) should begin with '()' + * + * This behavior was coded by Brendan during his fix for bug 127136. + * See http://bugzilla.mozilla.org/show_bug.cgi?id=127136#c13 + * + * Note: our function getStackFrames(err) orders the array of stack frames + * so that the 0th element will correspond to the highest frame, i.e. will + * correspond to a line in top-level code. The 1st element will correspond + * to the function that is called first, and so on... + * + * NOTE: At present Rhino does not have an Error.stack property. It is an + * ECMA extension, see http://bugzilla.mozilla.org/show_bug.cgi?id=123177 + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = '(none)'; +var summary = 'Testing Error.stack'; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; +var myErr = ''; +var stackFrames = ''; + + +function A(x,y) +{ + return B(x+1,y+1); +} + +function B(x,z) +{ + return C(x+1,z+1); +} + +function C(x,y) +{ + return D(x+1,y+1); +} + +function D(x,z) +{ + try + { + throw new Error('meep!'); + } + catch (e) + { + return e; + } +} + + +myErr = A(44,13); +stackFrames = getStackFrames(myErr); +status = inSection(1); +actual = stackFrames[0].substring(0,1); +expect = '@'; +addThis(); + +status = inSection(2); +actual = stackFrames[1].substring(0,2); +expect = 'A@'; +addThis(); + +status = inSection(3); +actual = stackFrames[2].substring(0,2); +expect = 'B@'; +addThis(); + +status = inSection(4); +actual = stackFrames[3].substring(0,2); +expect = 'C@'; +addThis(); + +status = inSection(5); +actual = stackFrames[4].substring(0,2); +expect = 'D@'; +addThis(); + + + +myErr = A('44:foo','13:bar'); +stackFrames = getStackFrames(myErr); +status = inSection(6); +actual = stackFrames[0].substring(0,1); +expect = '@'; +addThis(); + +status = inSection(7); +actual = stackFrames[1].substring(0,2); +expect = 'A@'; +addThis(); + +status = inSection(8); +actual = stackFrames[2].substring(0,2); +expect = 'B@'; +addThis(); + +status = inSection(9); +actual = stackFrames[3].substring(0,2); +expect = 'C@'; +addThis(); + +status = inSection(10); +actual = stackFrames[4].substring(0,2); +expect = 'D@';; +addThis(); + + + +/* + * Make the first frame occur in a function with an empty name - + */ +myErr = function() { return A(44,13); } (); +stackFrames = getStackFrames(myErr); +status = inSection(11); +actual = stackFrames[0].substring(0,1); +expect = '@'; +addThis(); + +status = inSection(12); +actual = stackFrames[1].substring(0,7); +expect = 'myErr<@'; +addThis(); + +status = inSection(13); +actual = stackFrames[2].substring(0,2); +expect = 'A@'; +addThis(); + +// etc. for the rest of the frames as above + + + +/* + * Make the first frame occur in a function with name 'anonymous' - + */ +var f = Function('return A(44,13);'); +myErr = f(); +stackFrames = getStackFrames(myErr); +status = inSection(14); +actual = stackFrames[0].substring(0,1); +expect = '@'; +addThis(); + +status = inSection(15); +actual = stackFrames[1].substring(0,10); +expect = 'anonymous@'; +addThis(); + +status = inSection(16); +actual = stackFrames[2].substring(0,2); +expect = 'A@'; +addThis(); + +// etc. for the rest of the frames as above + + + +/* + * Make a user-defined error via the Error() function - + */ +var message = 'Hi there!'; var fileName = 'file name'; var lineNumber = 0; +myErr = Error(message, fileName, lineNumber); +stackFrames = getStackFrames(myErr); +status = inSection(17); +actual = stackFrames[0].substring(0,1); +expect = '@'; +addThis(); + + +/* + * Now use the |new| keyword. Re-use the same params - + */ +myErr = new Error(message, fileName, lineNumber); +stackFrames = getStackFrames(myErr); +status = inSection(18); +actual = stackFrames[0].substring(0,1); +expect = '@'; +addThis(); + + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +/* + * Split the string |err.stack| along its '\n' delimiter. + * As of 2002-02-28 |err.stack| ends with the delimiter, so + * the resulting array has an empty string as its last element. + * + * Pop that useless element off before doing anything. + * Then reverse the array, for convenience of indexing - + */ +function getStackFrames(err) +{ + var arr = err.stack.split('\n'); + arr.pop(); + return arr.reverse(); +} + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc('test'); + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i0. The bug was filed because we + * were getting i===0; i.e. |i| did not retain the value it had at the + * location of the error. + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 121658; +var msg = '"Too much recursion" errors should be safely caught by try...catch'; +var TEST_PASSED = 'i retained the value it had at location of error'; +var TEST_FAILED = 'i did NOT retain this value'; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; +var i; + + +function f() +{ + ++i; + + // try...catch should catch the "too much recursion" error to ensue + try + { + f(); + } + catch(e) + { + } +} + +i=0; +f(); +status = inSection(1); +actual = (i>0); +expect = true; +addThis(); + + + +// Now try in function scope - +function g() +{ + f(); +} + +i=0; +g(); +status = inSection(2); +actual = (i>0); +expect = true; +addThis(); + + + +// Now try in eval scope - +var sEval = 'function h(){++i; try{h();} catch(e){}}; i=0; h();'; +eval(sEval); +status = inSection(3); +actual = (i>0); +expect = true; +addThis(); + + + +// Try in eval scope and mix functions up - +sEval = 'function a(){++i; try{h();} catch(e){}}; i=0; a();'; +eval(sEval); +status = inSection(4); +actual = (i>0); +expect = true; +addThis(); + + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = formatThis(actual); + expectedvalues[UBound] = formatThis(expect); + UBound++; +} + + +function formatThis(bool) +{ + return bool? TEST_PASSED : TEST_FAILED; +} + + +function test() +{ + enterFunc('test'); + printBugNumber(BUGNUMBER); + printStatus(msg); + + for (var i=0; i Function.prototype.call() ---------> f() + * + * + * The question this bug addresses is, "What should we say |f.caller| is?" + * + * Before this fix, SpiderMonkey said it was |Function.prototype.call|. + * After this fix, SpiderMonkey emulates IE and says |gg| instead. + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 222029; +var summary = "Make our f.caller property match IE's wrt f.apply and f.call"; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + + +function f() +{ + return f.caller.p ; +} + + +/* + * Call |f| directly + */ +function g() +{ + return f(); +} +g.p = "hello"; + + +/* + * Call |f| via |f.call| + */ +function gg() +{ + return f.call(this); +} +gg.p = "hello"; + + +/* + * Call |f| via |f.apply| + */ +function ggg() +{ + return f.apply(this); +} +ggg.p = "hello"; + + +/* + * Shadow |p| on |Function.prototype.call|, |Function.prototype.apply|. + * In Sections 2 and 3 below, we no longer expect to recover this value - + */ +Function.prototype.call.p = "goodbye"; +Function.prototype.apply.p = "goodbye"; + + + +status = inSection(1); +actual = g(); +expect = "hello"; +addThis(); + +status = inSection(2); +actual = gg(); +expect = "hello"; +addThis(); + +status = inSection(3); +actual = ggg(); +expect = "hello"; +addThis(); + + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc('test'); + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i Function.prototype.call() ---------> f() + * + * + * The question this bug addresses is, "What should we say |f.caller| is?" + * + * Before this fix, SpiderMonkey said it was |Function.prototype.call|. + * After this fix, SpiderMonkey emulates IE and says |gg| instead. + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 222029; +var summary = "Make our f.caller property match IE's wrt f.apply and f.call"; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + +/* + * Try to confuse the engine by adding a |p| property to everything! + */ +var p = 'global'; +var o = {p:'object'}; + + +function f(obj) +{ + return f.caller.p ; +} + + +/* + * Call |f| directly + */ +function g(obj) +{ + var p = 'local'; + return f(obj); +} +g.p = "hello"; + + +/* + * Call |f| via |f.call| + */ +function gg(obj) +{ + var p = 'local'; + return f.call(obj, obj); +} +gg.p = "hello"; + + +/* + * Call |f| via |f.apply| + */ +function ggg(obj) +{ + var p = 'local'; + return f.apply(obj, [obj]); +} +ggg.p = "hello"; + + +/* + * Shadow |p| on |Function.prototype.call|, |Function.prototype.apply|. + * In Sections 2 and 3 below, we no longer expect to recover this value - + */ +Function.prototype.call.p = "goodbye"; +Function.prototype.apply.p = "goodbye"; + + + +status = inSection(1); +actual = g(o); +expect = "hello"; +addThis(); + +status = inSection(2); +actual = gg(o); +expect = "hello"; +addThis(); + +status = inSection(3); +actual = ggg(o); +expect = "hello"; +addThis(); + + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc('test'); + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i +var BUGNUMBER = 278725; +var summary = 'Don\'t Crash during GC'; +var actual = 'Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var results = []; +for (var k = 0; k < 600000; k++) { + if (! (k %100000)) { + printStatus('hi'); + if (0) { + results.length = 0; + gc(); + } + } + results.push({}); +} + +actual = 'No Crash'; +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GC/regress-306788.js b/js/src/tests/js1_5/GC/regress-306788.js new file mode 100644 index 000000000..d6e130679 --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-306788.js @@ -0,0 +1,24 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 306788; +var summary = 'Do not crash sorting Arrays due to GC'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var array = new Array(); + +for (var i = 0; i < 5000; i++) +{ + array[i] = new Array('1', '2', '3', '4', '5'); +} + +array.sort(); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GC/regress-311497.js b/js/src/tests/js1_5/GC/regress-311497.js new file mode 100644 index 000000000..21905a7fd --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-311497.js @@ -0,0 +1,61 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 311497; +var summary = 'Root pivots in js_HeapSort'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + + +function force_gc() +{ + if (this.gc) gc(); + for (var i = 0; i != 30000; ++i) { + var tmp = Math.sin(i); + tmp = null; + } +} + +var array = new Array(10); +for (var i = 0; i != array.length; ++i) { + array[i] = String.fromCharCode(i, i, i); +} + +function cmp(a, b) +{ + for (var i = 0; i != array.length; ++i) { + array[i] = null; + } + force_gc(); + return 0; +} + +array.sort(cmp); + +// Verify that array contains either null or original strings + +var null_count = 0; +var original_string_count = 0; +for (var i = 0; i != array.length; ++i) { + var elem = array[i]; + if (elem === null) { + ++null_count; + } else if (typeof elem == "string" && elem.length == 3) { + var code = elem.charCodeAt(0); + if (0 <= code && code < array.length) { + if (code === elem.charCodeAt(1) && code == elem.charCodeAt(2)) + ++original_string_count; + } + } +} + +var expect = array.length; +var actual = null_count + original_string_count; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GC/regress-313276.js b/js/src/tests/js1_5/GC/regress-313276.js new file mode 100644 index 000000000..7f622fa3f --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-313276.js @@ -0,0 +1,40 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 313276; +var summary = 'Root strings'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var obj = { + toString: function() { + return "*TEST*".substr(1, 4); + } +}; + +var TMP = 1e200; + +var likeZero = { + valueOf: function() { + if (typeof gc == "function") gc(); + for (var i = 0; i != 40000; ++i) { + var tmp = 2 / TMP; + tmp = null; + } + return 0; + } +} + + expect = "TEST"; +actual = String.prototype.substr.call(obj, likeZero); + +printStatus("Substring length: "+actual.length); +printStatus((expect === actual).toString()); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GC/regress-313479.js b/js/src/tests/js1_5/GC/regress-313479.js new file mode 100644 index 000000000..a13dba3ff --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-313479.js @@ -0,0 +1,37 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 313479; +var summary = 'Root access in jsnum.c'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var prepared_string = String(1); +String(2); // To remove prepared_string from newborn + +var likeString = { + toString: function() { + var tmp = prepared_string; + prepared_string = null; + return tmp; + } +}; + +var likeNumber = { + valueOf: function() { + gc(); + return 10; + } +} + + var expect = 1; +var actual = parseInt(likeString, likeNumber); +printStatus("expect="+expect+" actual="+actual); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GC/regress-316885-01.js b/js/src/tests/js1_5/GC/regress-316885-01.js new file mode 100644 index 000000000..da814bbae --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-316885-01.js @@ -0,0 +1,33 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 316885; +var summary = 'Unrooted access in jsinterp.c'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var str_with_num = "0.1"; + +var obj = { + get elem() { + return str_with_num; + }, + set elem(value) { + gc(); + } + +}; + +expect = Number(str_with_num); +actual = obj.elem++; + +gc(); + + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GC/regress-316885-02.js b/js/src/tests/js1_5/GC/regress-316885-02.js new file mode 100644 index 000000000..2cdda6006 --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-316885-02.js @@ -0,0 +1,42 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 316885; +var summary = 'Unrooted access in jsinterp.c'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var str = "test"; + +var lval = { + valueOf: function() { + return str+"1"; + } +}; + +var ONE = 1; + +var rval = { + valueOf: function() { + // Make sure that the result of the previous lval.valueOf + // is not GC-rooted. + var tmp = "x"+lval; + if (typeof gc == "function") + gc(); + for (var i = 0; i != 40000; ++i) { + tmp = 1e100 / ONE; + } + return str; + } +}; + +expect = (str+"1" > str); +actual = (lval > rval); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GC/regress-316885-03.js b/js/src/tests/js1_5/GC/regress-316885-03.js new file mode 100644 index 000000000..93f632e78 --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-316885-03.js @@ -0,0 +1,42 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 316885; +var summary = 'Unrooted access in jsinterp.c'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var str = "test"; + +var lval = { + valueOf: function() { + return str+"1"; + } +}; + +var ONE = 1; + +var rval = { + valueOf: function() { + // Make sure that the result of the previous lval.valueOf + // is not GC-rooted. + var tmp = "x"+lval; + if (typeof gc == "function") + gc(); + for (var i = 0; i != 40000; ++i) { + tmp = 1e100 / ONE; + } + return str; + } +}; + +expect = (str+"1")+str; +actual = lval+rval; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GC/regress-319980-01.js b/js/src/tests/js1_5/GC/regress-319980-01.js new file mode 100644 index 000000000..e9e696c8d --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-319980-01.js @@ -0,0 +1,127 @@ +// |reftest| skip-if(!xulRuntime.shell) slow +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 319980; +var summary = 'GC not called during non-fatal out of memory'; +var actual = ''; +var expect = 'Normal Exit'; + +printBugNumber(BUGNUMBER); +printStatus (summary); +print ('This test should never fail explicitly. ' + + 'You must view the memory usage during the test. ' + + 'This test fails if memory usage for each subtest grows'); + +var timeOut = 45 * 1000; +var interval = 0.01 * 1000; +var testFuncWatcherId; +var testFuncTimerId; +var maxTests = 5; +var currTest = 0; + +if (typeof setTimeout == 'undefined') +{ + setTimeout = function() {}; + clearTimeout = function() {}; + actual = 'Normal Exit'; + reportCompare(expect, actual, summary); +} +else +{ + // delay start until after js-test-driver-end runs. + // delay test driver end + gDelayTestDriverEnd = true; + + setTimeout(testFuncWatcher, 1000); +} + +function testFuncWatcher() +{ + a = null; + + gc(); + + clearTimeout(testFuncTimerId); + testFuncWatcherId = testFuncTimerId = null; + if (currTest >= maxTests) + { + actual = 'Normal Exit'; + reportCompare(expect, actual, summary); + printStatus('Test Completed'); + gDelayTestDriverEnd = false; + jsTestDriverEnd(); + return; + } + ++currTest; + + print('Executing test ' + currTest + '\n'); + + testFuncWatcherId = setTimeout("testFuncWatcher()", timeOut); + testFuncTimerId = setTimeout(testFunc, interval); +} + + +var a; +function testFunc() +{ + + var i; + + switch(currTest) + { + case 1: + a = new Array(100000); + for (i = 0; i < 100000; i++ ) + { + a[i] = i; + } + break; + + case 2: + a = new Array(100000); + for (i = 0; i < 100000; i++) + { + a[i] = new Number(); + a[i] = i; + } + break; + + case 3: + a = new String() ; + a = new Array(100000); + for ( i = 0; i < 100000; i++ ) + { + a[i] = i; + } + + break; + + case 4: + a = new Array(); + a[0] = new Array(100000); + for (i = 0; i < 100000; i++ ) + { + a[0][i] = i; + } + break; + + case 5: + a = new Array(); + for (i = 0; i < 100000; i++ ) + { + a[i] = i; + } + break; + } + + if (testFuncTimerId) + { + testFuncTimerId = setTimeout(testFunc, interval); + } +} + + diff --git a/js/src/tests/js1_5/GC/regress-324278.js b/js/src/tests/js1_5/GC/regress-324278.js new file mode 100644 index 000000000..56996994d --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-324278.js @@ -0,0 +1,63 @@ +// |reftest| skip -- slow, obsoleted by 98409 fix +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 324278; +var summary = 'GC without recursion'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +// Number to push native stack size beyond 10MB if GC recurses generating +// segfault on Fedora Core / Ubuntu Linuxes where the stack size by default +// is 10MB/8MB. +var N = 100*1000; + +function build(N) { + // Exploit the fact that (in ES3), regexp literals are shared between + // function invocations. Thus we build the following chain: + // chainTop: function->regexp->function->regexp....->null + // to check how GC would deal with this chain. + + var chainTop = null; + for (var i = 0; i != N; ++i) { + var f = Function('some_arg'+i, ' return /test/;'); + var re = f(); + re.previous = chainTop; + chainTop = f; + } + return chainTop; +} + +function check(chainTop, N) { + for (var i = 0; i != N; ++i) { + var re = chainTop(); + chainTop = re.previous; + } + if (chainTop !== null) + throw "Bad chainTop"; + +} + +if (typeof gc != "function") { + gc = function() { + for (var i = 0; i != 50*1000; ++i) { + var tmp = new Object(); + } + } +} + +var chainTop = build(N); +printStatus("BUILT"); +gc(); +check(chainTop, N); +printStatus("CHECKED"); +chainTop = null; +gc(); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GC/regress-331719.js b/js/src/tests/js1_5/GC/regress-331719.js new file mode 100644 index 000000000..3803b3d5c --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-331719.js @@ -0,0 +1,19 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 331719; +var summary = 'Problem with String.replace running with WAY_TOO_MUCH_GC'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); +print('This test requires WAY_TOO_MUCH_GC'); + +expect = 'No'; +actual = 'No'.replace(/\&\&/g, '&'); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GC/regress-338653.js b/js/src/tests/js1_5/GC/regress-338653.js new file mode 100644 index 000000000..17ef68de9 --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-338653.js @@ -0,0 +1,41 @@ +// |reftest| skip -- slow, killed on x86_64 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 338653; +var summary = 'Force GC when JSRuntime.gcMallocBytes hits ' + + 'JSRuntime.gcMaxMallocBytes'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); +print('This test should never fail explicitly. ' + + 'You must view the memory usage during the test. ' + + 'This test fails if the memory usage repeatedly spikes ' + + 'by several hundred megabytes.'); + +function dosubst() +{ + var f = '0x'; + var s = f; + + for (var i = 0; i < 18; i++) + { + s += s; + } + + var index = s.indexOf(f); + while (index != -1 && index < 10000) { + s = s.substr(0, index) + '1' + s.substr(index + f.length); + index = s.indexOf(f); + } + +} + +dosubst(); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GC/regress-341877-01.js b/js/src/tests/js1_5/GC/regress-341877-01.js new file mode 100644 index 000000000..6fc88f3ac --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-341877-01.js @@ -0,0 +1,40 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 341877; +var summary = 'GC hazard with for-in loop'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var obj = { }; + +var prop = "xsomePropety".substr(1); + +obj.first = "first" + + obj[prop] = 1; + +for (var elem in obj) { + var tmp = elem.toString(); + delete obj[prop]; + // ensure that prop is cut from all roots + prop = "xsomePropety".substr(2); + obj[prop] = 2; + delete obj[prop]; + prop = null; + if (typeof gc == 'function') + gc(); + for (var i = 0; i != 50000; ++i) { + var tmp = 1 / 3; + tmp /= 10; + } +} + + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GC/regress-341877-02.js b/js/src/tests/js1_5/GC/regress-341877-02.js new file mode 100644 index 000000000..b636ad693 --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-341877-02.js @@ -0,0 +1,45 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 341877; +var summary = 'GC hazard with for-in loop'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var obj = { }; + +var prop = "xsomePropety".substr(1); + +obj.first = "first" + + obj[prop] = 1; + +for (var elem in obj) { + var tmp = elem.toString(); + delete obj[prop]; + // ensure that prop is cut from all roots + prop = "xsomePropety".substr(2); + obj[prop] = 2; + delete obj[prop]; + prop = null; + if (typeof gc == 'function') + gc(); + for (var i = 0; i != 50000; ++i) { + var tmp = 1 / 3; + tmp /= 10; + } + for (var i = 0; i != 1000; ++i) { + // Make string with 11 characters that would take + // (11 + 1) * 2 bytes or sizeof(JSAtom) so eventually + // malloc will ovewrite just freed atoms. + var tmp2 = Array(12).join(' '); + } +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GC/regress-346794.js b/js/src/tests/js1_5/GC/regress-346794.js new file mode 100644 index 000000000..a747642f1 --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-346794.js @@ -0,0 +1,43 @@ +// |reftest| skip -- slow, killed +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 346794; +var summary = 'Do not crash'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + // either don't crash or run out of memory + expectExitCode(0); + expectExitCode(3); + + function boo() { + s = ''; + for (;;) { + try { + new RegExp(s + '[\\'); + } catch(e) {} + s += 'q'; + } + } + + boo(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/GC/regress-348532.js b/js/src/tests/js1_5/GC/regress-348532.js new file mode 100644 index 000000000..cff651a63 --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-348532.js @@ -0,0 +1,54 @@ +// |reftest| skip-if(Android) +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 348532; +var summary = 'Do not overflow int when constructing Error.stack'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expectExitCode(0); + expectExitCode(3); + actual = 0; + + // construct string of 1<<23 characters + var s = Array((1<<23)+1).join('x'); + + var recursionDepth = 0; + function err() { + try { + return err.apply(this, arguments); + } catch (e) { + if (!(e instanceof InternalError)) + throw e; + } + return new Error(); + } + + // The full stack trace in error would include 64*4 copies of s exceeding + // 2^23 * 256 or 2^31 in length + var error = err(s,s,s,s); + + print(error.stack.length); + + expect = true; + actual = (error.stack.length > 0); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/GC/regress-352606.js b/js/src/tests/js1_5/GC/regress-352606.js new file mode 100644 index 000000000..b29c501fd --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-352606.js @@ -0,0 +1,28 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 352606; +var summary = 'Do not crash involving post decrement'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + y = ({toString: gc}); new Function("y--;")() + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/GC/regress-383269-01.js b/js/src/tests/js1_5/GC/regress-383269-01.js new file mode 100644 index 000000000..43f6a15fa --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-383269-01.js @@ -0,0 +1,62 @@ +// |reftest| skip -- unreliable - based on GC timing +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 383269; +var summary = 'Leak related to arguments object'; +var actual = 'No Leak'; +var expect = 'No Leak'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function generate_big_object_graph() + { + var root = {}; + f(root, 17); + return root; + function f(parent, depth) { + if (depth == 0) + return; + --depth; + f(parent.a = {}, depth); + f(parent.b = {}, depth); + } + } + + function outer() { var x = arguments; return function inner() { return x }; } + + function timed_gc() + { + var t1 = Date.now(); + gc(); + return Date.now() - t1; + } + + outer(1); + gc(); + var base_time = timed_gc(); + + var f = outer(generate_big_object_graph()); + f = null; + gc(); + var time = timed_gc(); + + if (time > (base_time + 1) * 3) + actual = "generate_big_object_graph() leaked, base_gc_time="+base_time+", last_gc_time="+time; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/GC/regress-383269-02.js b/js/src/tests/js1_5/GC/regress-383269-02.js new file mode 100644 index 000000000..9ce0e44a0 --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-383269-02.js @@ -0,0 +1,66 @@ +// |reftest| skip -- unreliable - based on GC timing +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 383269; +var summary = 'Leak related to arguments object'; +var actual = 'No Leak'; +var expect = 'No Leak'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function generate_big_object_graph() + { + var root = {}; + f(root, 17); + return root; + function f(parent, depth) { + if (depth == 0) + return; + --depth; + f(parent.a = {}, depth); + f(parent.b = {}, depth); + } + } + + function f(obj) { + with (obj) + return arguments; + } + + function timed_gc() + { + var t1 = Date.now(); + gc(); + return Date.now() - t1; + } + + var x = f({}); + x = null; + gc(); + var base_time = timed_gc(); + + x = f(generate_big_object_graph()); + x = null; + gc(); + var time = timed_gc(); + + if (time > (base_time + 10) * 3) + actual = "generate_big_object_graph() leaked, base_gc_time="+base_time+", last_gc_time="+time; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/GC/regress-390078.js b/js/src/tests/js1_5/GC/regress-390078.js new file mode 100644 index 000000000..4a86d84ff --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-390078.js @@ -0,0 +1,36 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 390078; +var summary = 'GC hazard with JSstackFrame.argv[-1]'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var a = new Array(10*1000); + a[0] = { toString: function() { gc(); return ".*9"; }};; + a[1] = "g"; + + for (var i = 0; i != 10*1000; ++i) { + String(new Number(123456789)); + } + + "".match.apply(123456789, a); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/GC/regress-418128.js b/js/src/tests/js1_5/GC/regress-418128.js new file mode 100644 index 000000000..0642e83dc --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-418128.js @@ -0,0 +1,40 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 418128; +var summary = 'GC hazard with ++/--'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var obj = {}; + var id = { toString: function() { return ""+Math.pow(2, 0.1); } } + obj[id] = { valueOf: unrooter }; + print(obj[id]++); + gc(); + print(uneval(obj)); + + function unrooter() + { + delete obj[id]; + gc(); + return 10; + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/GC/regress-440558.js b/js/src/tests/js1_5/GC/regress-440558.js new file mode 100644 index 000000000..b36d01ba5 --- /dev/null +++ b/js/src/tests/js1_5/GC/regress-440558.js @@ -0,0 +1,37 @@ +// |reftest| skip-if(Android) +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 440558; +var summary = 'Do not assert: *flagp != GCF_FINAL'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + print('Note: this test requires that javascript.options.gczeal ' + + 'be set to 2 prior to the browser start'); + + m = function(a, b) { + if (++i < 10) { + } + }; + e = function(a, b) { + }; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} + diff --git a/js/src/tests/js1_5/GC/shell.js b/js/src/tests/js1_5/GC/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/js1_5/GetSet/browser.js b/js/src/tests/js1_5/GetSet/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/js1_5/GetSet/getset-002.js b/js/src/tests/js1_5/GetSet/getset-002.js new file mode 100644 index 000000000..9790142fd --- /dev/null +++ b/js/src/tests/js1_5/GetSet/getset-002.js @@ -0,0 +1,50 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*- + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +var t = { + _y: "", + + get y() + { + var rv; + if (typeof this._y == "string") + rv = "got " + this._y; + else + rv = this._y; + + return rv; + }, + + set y(newVal) + { + this._y = newVal; + } +} + + + test(t); + +function test(t) +{ + enterFunc ("test"); + + printStatus ("Basic Getter/ Setter test (object literal notation)"); + + reportCompare ("", t._y, "y prototype check"); + + reportCompare ("got ", t.y, "y getter, before set"); + + t.y = "new y"; + reportCompare ("got new y", t.y, "y getter, after set"); + + t.y = 2; + reportCompare (2, t.y, "y getter, after numeric set"); + + var d = new Date(); + t.y = d; + reportCompare (d, t.y, "y getter, after date set"); + +} diff --git a/js/src/tests/js1_5/GetSet/regress-353264.js b/js/src/tests/js1_5/GetSet/regress-353264.js new file mode 100644 index 000000000..231cda01f --- /dev/null +++ b/js/src/tests/js1_5/GetSet/regress-353264.js @@ -0,0 +1,18 @@ +// |reftest| skip -- obsolete test +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 353264; +var summary = 'Do not crash defining getter'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +this.x getter= function () { }; export x; x; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/GetSet/regress-375976.js b/js/src/tests/js1_5/GetSet/regress-375976.js new file mode 100644 index 000000000..9d8502d1b --- /dev/null +++ b/js/src/tests/js1_5/GetSet/regress-375976.js @@ -0,0 +1,31 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 375976; +var summary = 'Do not crash with postincrement custom property'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + this.__defineSetter__('x', gc); + this.__defineGetter__('x', Math.sin); + x = x++; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/GetSet/shell.js b/js/src/tests/js1_5/GetSet/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/js1_5/LexicalConventions/browser.js b/js/src/tests/js1_5/LexicalConventions/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/js1_5/LexicalConventions/lexical-001.js b/js/src/tests/js1_5/LexicalConventions/lexical-001.js new file mode 100644 index 000000000..47d049aaa --- /dev/null +++ b/js/src/tests/js1_5/LexicalConventions/lexical-001.js @@ -0,0 +1,149 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +/* + * Date: 26 November 2000 + * + *SUMMARY: Testing numeric literals that begin with 0. + *This test arose from Bugzilla bug 49233. + *The best explanation is from jsscan.c: + * + * "We permit 08 and 09 as decimal numbers, which makes + * our behaviour a superset of the ECMA numeric grammar. + * We might not always be so permissive, so we warn about it." + * + *Thus an expression 010 will evaluate, as always, as an octal (to 8). + *However, 018 will evaluate as a decimal, to 18. Even though the + *user began the expression as an octal, he later used a non-octal + *digit. We forgive this and assume he intended a decimal. If the + *JavaScript "strict" option is set though, we will give a warning. + */ + +//------------------------------------------------------------------------------------------------- +var BUGNUMBER = '49233'; +var summary = 'Testing numeric literals that begin with 0'; +var statprefix = 'Testing '; +var quote = "'"; +var asString = new Array(); +var actual = new Array(); +var expect = new Array(); + + + asString[0]='01' + actual[0]=01 + expect[0]=1 + + asString[1]='07' + actual[1]=07 + expect[1]=7 + + asString[2]='08' + actual[2]=08 + expect[2]=8 + + asString[3]='09' + actual[3]=09 + expect[3]=9 + + asString[4]='010' + actual[4]=010 + expect[4]=8 + + asString[5]='017' + actual[5]=017 + expect[5]=15 + + asString[6]='018' + actual[6]=018 + expect[6]=18 + + asString[7]='019' + actual[7]=019 + expect[7]=19 + + asString[8]='079' + actual[8]=079 + expect[8]=79 + + asString[9]='0079' + actual[9]=0079 + expect[9]=79 + + asString[10]='099' + actual[10]=099 + expect[10]=99 + + asString[11]='0099' + actual[11]=0099 + expect[11]=99 + + asString[12]='000000000077' + actual[12]=000000000077 + expect[12]=63 + + asString[13]='000000000078' + actual[13]=000000000078 + expect[13]=78 + + asString[14]='0000000000770000' + actual[14]=0000000000770000 + expect[14]=258048 + + asString[15]='0000000000780000' + actual[15]=0000000000780000 + expect[15]=780000 + + asString[16]='0765432198' + actual[16]=0765432198 + expect[16]=765432198 + + asString[17]='00076543219800' + actual[17]=00076543219800 + expect[17]=76543219800 + + asString[18]='0000001001007' + actual[18]=0000001001007 + expect[18]=262663 + + asString[19]='0000001001009' + actual[19]=0000001001009 + expect[19]=1001009 + + asString[20]='070' + actual[20]=070 + expect[20]=56 + + asString[21]='080' + actual[21]=080 + expect[21]=80 + + + +//------------------------------------------------------------------------------------------------- + test(); +//------------------------------------------------------------------------------------------------- + + +function showStatus(msg) +{ + return (statprefix + quote + msg + quote); +} + + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (i=0; i !=asString.length; i++) + { + reportCompare (expect[i], actual[i], showStatus(asString[i])); + } + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/LexicalConventions/regress-177314.js b/js/src/tests/js1_5/LexicalConventions/regress-177314.js new file mode 100644 index 000000000..6f36402b6 --- /dev/null +++ b/js/src/tests/js1_5/LexicalConventions/regress-177314.js @@ -0,0 +1,76 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * + * Date: 30 Oct 2002 + * SUMMARY: '\400' should lex as a 2-digit octal escape + '0' + * See http://bugzilla.mozilla.org/show_bug.cgi?id=177314 + * + * Bug was that Rhino interpreted '\400' as a 3-digit octal escape. As such + * it is invalid, since octal escapes may only run from '\0' to '\377'. But + * the lexer should interpret this as '\40' + '0' instead, and throw no error. + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 177314; +var summary = "'\\" + "400' should lex as a 2-digit octal escape + '0'"; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + + +// the last valid octal escape is '\377', which should equal hex escape '\xFF' +status = inSection(1); +actual = '\377'; +expect = '\xFF'; +addThis(); + +// now exercise the lexer by going one higher in the last digit +status = inSection(2); +actual = '\378'; +expect = '\37' + '8'; +addThis(); + +// trickier: 400 is a valid octal number, but '\400' isn't a valid octal escape +status = inSection(3); +actual = '\400'; +expect = '\40' + '0'; +addThis(); + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc('test'); + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i 5) + return sum; + sum += 1; + } + catch (e) + { + sum += 1; + } + } + } + } + finally + { + try + { + sum += 1; + print("In finally block of addValues_5() function: sum = " + sum); + } + catch (e) + { + sum += 1; + print("In finally catch block of addValues_5() function: sum = " + sum + ", e = " + e); + } + finally + { + sum += 1; + print("In finally finally block of addValues_5() function: sum = " + sum); + return sum; + } + } + } +} + +status = inSection(11); +obj = new Object(); +obj.arg1 = 1; +obj.arg2 = 2; +obj.arg3 = new Object(); +obj.arg3.a = 10; +obj.arg3.b = 20; +actual = addValues_5(obj); +expect = 8; +captureThis(); + + + + +function testObj(obj) +{ + var x = 42; + + try + { + with (obj) + { + if (obj.p) + throw obj.p; + x = obj.q; + } + } + finally + { + print("in finally block of testObj() function"); + return 999; + } +} + +status = inSection(12); +obj = {p:43}; +actual = testObj(obj); +expect = 999; +captureThis(); + + + +/* + * Next two cases are from http://bugzilla.mozilla.org/show_bug.cgi?id=120571 + */ +function a120571() +{ + while(0) + { + try + { + } + catch(e) + { + continue; + } + } +} + +// this caused a crash! Test to see that it doesn't now. +print(a120571); + +// Now test that we have a non-null value for a120571.toString() +status = inSection(13); +try +{ + actual = a120571.toString().match(/continue/)[0]; +} +catch(e) +{ + actual = 'FAILED! Did not find "continue" in function body'; +} +expect = 'continue'; +captureThis(); + + + + +function b() +{ + for(;;) + { + try + { + } + catch(e) + { + continue; + } + } +} + +// this caused a crash!!! Test to see that it doesn't now. +print(b); + +// Now test that we have a non-null value for b.toString() +status = inSection(14); +try +{ + actual = b.toString().match(/continue/)[0]; +} +catch(e) +{ + actual = 'FAILED! Did not find "continue" in function body'; +} +expect = 'continue'; +captureThis(); + + + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function captureThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var i=0; i (c) 1998-2000 +// This is version 2.2.6, dated 2000-03-30 + +// The script is freely distributable +// It may be used (and modified) as you wish, but retain this message +// For more information about the menu visit its home page +// http://www.treemenu.com/ + +/****************************************************************************** + * Define the MenuItem object. * + ******************************************************************************/ + +function MTMenuItem(text, url, target,nsearchID, icon) { + this.text = text; + this.url = url ? url : ""; + this.target = target ? target : ""; + this.icon = icon ? icon : ""; + this.nsearchID = nsearchID; + + this.number = MTMSubNumber++; + this.parent = null; + this.submenu = null; + this.expanded = false; + this.selected = false; + this.childSelected = false; + + this.MTMakeSubmenu = MTMakeSubmenu; + +} + +function MTMakeSubmenu(menu) { + this.submenu = menu; + for (var i = 0; i < menu.items.length; i++) + { + menu.items[i].parent = this; + } +} + + + +function getChildrenChecked(item, selected) +{ + if (item.submenu != null) + { + for (var x = 0; x < item.submenu.items.length; x++) + { + item.submenu.items[x].selected = selected; + item.submenu.items[x].childSelected = false; + MarkChildren(item.submenu.items[x],selected); + } + } +} + +/****************************************************************************** + * Define the Menu object. * + ******************************************************************************/ + +function MTMenu() { + this.items = new Array(); + this.MTMAddItem = MTMAddItem; +} + +function MTMAddItem(item) { + this.items[this.items.length] = item; +} + +/****************************************************************************** + * Define the icon list, addIcon function and MTMIcon item. * + ******************************************************************************/ + +function IconList() { + this.items = new Array(); + this.addIcon = addIcon; +} + +function addIcon(item) { + this.items[this.items.length] = item; +} + +function MTMIcon(iconfile, match, type) { + this.file = iconfile; + this.match = match; + this.type = type; +} + +/****************************************************************************** + * Global variables. Not to be altered unless you know what you're doing. * + * User-configurable options are at the end of this document. * + ******************************************************************************/ + +var MTMLoaded = false; +var MTMLevel; +var MTMBar = new Array(); +var MTMIndices = new Array(); +var MTMBrowser = null; +var MTMNN3 = false; +var MTMNN4 = false; +var MTMIE4 = false; +var MTMUseStyle = true; + +/* + * (For a standalone JS shell test, we will simply set these as follows:) + */ +MTMBrowser = true; +MTMNN4 = true; + + +var MTMClickedItem = false; +var MTMExpansion = false; + +var MTMSubNumber = 1; +var MTMTrackedItem = false; +var MTMTrack = false; + +var MTMPreHREF = ""; +if(MTMIE4 || MTMNN3) { + MTMPreHREF += ""; // document.location.href.substring(0, document.location.href.lastIndexOf("/") +1); +} + +var MTMFirstRun = true; +var MTMCurrentTime = 0; // for checking timeout. +var MTMUpdating = false; +var MTMWinSize, MTMyval; +var MTMOutputString = ""; + +/****************************************************************************** + * Code that picks up frame names of frames in the parent frameset. * + ******************************************************************************/ + + +/****************************************************************************** + * Dummy function for sub-menus without URLs * + * Thanks to Michel Plungjan for the advice. :) * + ******************************************************************************/ + +function myVoid() { ; } + +/****************************************************************************** + * Functions to draw the menu. * + ******************************************************************************/ + +function MTMSubAction(SubItem, ReturnValue) { + + SubItem.expanded = (SubItem.expanded) ? false : true; + if(SubItem.expanded) { + MTMExpansion = true; + } + + MTMClickedItem = SubItem.number; + + if(MTMTrackedItem && MTMTrackedItem != SubItem.number) { + MTMTrackedItem = false; + } + + if(!ReturnValue) { + setTimeout("MTMDisplayMenu()", 10); + } + + return ReturnValue; +} + + +function MarkChildren(item, selected) +{ + if (item.submenu != null) + { + for (var x = 0; x < item.submenu.items.length; x++) + { + item.submenu.items[x].selected = selected; + item.submenu.items[x].childSelected = false; + MarkChildren(item.submenu.items[x],selected); + } + } + +} + +function isAllChildrenSelected(item) +{ + if (item.submenu != null) + { + for (var x = 0; x < item.submenu.items.length; x++) + { + if (!item.submenu.items[x].selected) + { + return false; + } + } + } + return true; +} + +function isSomeChildrenSelected(item) +{ + var retValue = false; + + if (item.submenu != null) + { + for (var x = 0; x < item.submenu.items.length; x++) + { + if (item.submenu.items[x].selected || item.submenu.items[x].childSelected) + { + retValue = true; + } + } + } + + return retValue; +} + +function ToggleSelected(item, ReturnValue) { + + item.selected = (item.selected) ? false : true; + item.childSelected = false; + + var currentNode = item; + + while (currentNode.parent) + { + currentNode.parent.selected = isAllChildrenSelected(currentNode.parent); + currentNode.parent.childSelected = isSomeChildrenSelected(currentNode.parent); + currentNode = currentNode.parent; + } + + MarkChildren(item,item.selected); + + if(!ReturnValue) { + setTimeout("MTMDisplayMenu()", 10); + } + + return ReturnValue; +} + + +function MTMStartMenu() { + MTMLoaded = true; + if(MTMFirstRun) { + MTMCurrentTime++; + if(MTMCurrentTime == MTMTimeOut) { // call MTMDisplayMenu + setTimeout("MTMDisplayMenu()",10); + } else { + setTimeout("MTMStartMenu()",100); + } + } +} + +function MTMDisplayMenu() { + if(MTMBrowser && !MTMUpdating) { + MTMUpdating = true; + MTMFirstRun = false; + + if(MTMTrack) { MTMTrackedItem = MTMTrackExpand(menu); } + + if(MTMExpansion && MTMSubsAutoClose) { MTMCloseSubs(menu); } + + MTMLevel = 0; + MTMDoc = parent.frames[MTMenuFrame].document + MTMDoc.open("text/html", "replace"); + MTMOutputString = ''; + if(MTMLinkedSS) { + MTMOutputString += ''; + } else if(MTMUseStyle) { + MTMOutputString += ''; + } + + MTMOutputString += ''; + + MTMOutputString += ''; + MTMOutputString += ''); + + MTMListItems(menu); + MTMDoc.writeln('
'; //REMOVED ROOT ICON '; + if(MTMUseStyle) { + MTMOutputString += ''; //REMOVED ROOT CAPTION  ' + MTMenuText + ''; + } else { + MTMOutputString += ''; //REMOVED ROOT CAPTION ' + MTMenuText + ''; + } + MTMDoc.writeln(MTMOutputString + '
'); + + MTMDoc.writeln(''); + MTMDoc.close(); + + if((MTMClickedItem || MTMTrackedItem) && (MTMNN4 || MTMIE4) && !MTMFirstRun) { + MTMItemName = "sub" + (MTMClickedItem ? MTMClickedItem : MTMTrackedItem); + if(document.layers && parent.frames[MTMenuFrame].scrollbars) { + MTMyval = parent.frames[MTMenuFrame].document.anchors[MTMItemName].y; + MTMWinSize = parent.frames[MTMenuFrame].innerHeight; + } else { + MTMyval = MTMGetPos(parent.frames[MTMenuFrame].document.all[MTMItemName]); + MTMWinSize = parent.frames[MTMenuFrame].document.body.offsetHeight; + } + if(MTMyval > (MTMWinSize - 60)) { + parent.frames[MTMenuFrame].scrollBy(0, parseInt(MTMyval - (MTMWinSize * 1/3))); + } + } + + MTMClickedItem = false; + MTMExpansion = false; + MTMTrack = false; + } + MTMUpdating = false; +} + +function MTMListItems(menu) { + var i, isLast; + for (i = 0; i < menu.items.length; i++) { + MTMIndices[MTMLevel] = i; + isLast = (i == menu.items.length -1); + MTMDisplayItem(menu.items[i], isLast); + + if (menu.items[i].submenu && menu.items[i].expanded) { + MTMBar[MTMLevel] = (isLast) ? false : true; + MTMLevel++; + MTMListItems(menu.items[i].submenu); + MTMLevel--; + } else { + MTMBar[MTMLevel] = false; + } + } + +} + +function MTMDisplayItem(item, last) { + var i, img, more; + + var MTMfrm = "parent.frames['code']"; + var MTMref = '.menu.items[' + MTMIndices[0] + ']'; + + if(item.submenu) { + var MTMouseOverText; + + var MTMClickCmd; + var MTMDblClickCmd = false; + + + if(MTMLevel > 0) { + for(i = 1; i <= MTMLevel; i++) { + MTMref += ".submenu.items[" + MTMIndices[i] + "]"; + } + } + + if(!MTMEmulateWE && !item.expanded && (item.url != "")) { + MTMClickCmd = "return " + MTMfrm + ".MTMSubAction(" + MTMfrm + MTMref + ",true);"; + } else { + MTMClickCmd = "return " + MTMfrm + ".MTMSubAction(" + MTMfrm + MTMref + ",false);"; + } + + if(item.url == "") { + MTMouseOverText = (item.text.indexOf("'") != -1) ? MTMEscapeQuotes(item.text) : item.text; + } else { + MTMouseOverText = "Expand/Collapse"; + } + } + + MTMOutputString = ''; + if(MTMLevel > 0) { + for (i = 0; i < MTMLevel; i++) { + MTMOutputString += (MTMBar[i]) ? MTMakeImage("menu_bar.gif") : MTMakeImage("menu_pixel.gif"); + } + } + + more = false; + if(item.submenu) { + if(MTMSubsGetPlus || MTMEmulateWE) { + more = true; + } else { + for (i = 0; i < item.submenu.items.length; i++) { + if (item.submenu.items[i].submenu) { + more = true; + } + } + } + } + if(!more) { + img = (last) ? "menu_corner.gif" : "menu_tee.gif"; + } else { + if(item.expanded) { + img = (last) ? "menu_corner_minus.gif" : "menu_tee_minus.gif"; + } else { + img = (last) ? "menu_corner_plus.gif" : "menu_tee_plus.gif"; + } + if(item.url == "" || item.expanded || MTMEmulateWE) { + MTMOutputString += MTMakeVoid(item, MTMClickCmd, MTMouseOverText); + } else { + MTMOutputString += MTMakeLink(item, true) + ' onclick="' + MTMClickCmd + '">'; + } + } + MTMOutputString += MTMakeImage(img); +///////////////////////////////////////// + + var MTMCheckRef = '.menu.items[' + MTMIndices[0] + ']'; + if(MTMLevel > 0) { + for(i = 1; i <= MTMLevel; i++) { + MTMCheckRef += ".submenu.items[" + MTMIndices[i] + "]"; + } + } + + MTMOutputString += MTMakeVoid(item, "return " + MTMfrm + ".ToggleSelected(" + MTMfrm + MTMCheckRef + ",false);", "Checked Status") ; + var checkedImage = item.selected ? "checked.gif" : "uchecked.gif"; + if (!item.selected) + { + checkedImage = item.childSelected ? "gchecked.gif" : "uchecked.gif"; + } + MTMOutputString += MTMakeImage(checkedImage); + MTMOutputString += ''; +///////////////////////////////////////////////// + + + if(item.submenu) { + if(MTMEmulateWE && item.url != "") + { + MTMOutputString += '' + MTMakeLink(item, false) + '>'; + } + + img = (item.expanded) ? "menu_folder_open.gif" : "menu_folder_closed.gif"; + + if(!more) { + if(item.url == "" || item.expanded) { + MTMOutputString += MTMakeVoid(item, MTMClickCmd, MTMouseOverText); + } else { + MTMOutputString += MTMakeLink(item, true) + ' onclick="' + MTMClickCmd + '">'; + } + } + MTMOutputString += MTMakeImage(img); + + } else { + MTMOutputString += MTMakeLink(item, true) + '>'; + img = (item.icon != "") ? item.icon : MTMFetchIcon(item.url); + MTMOutputString += MTMakeImage(img); + } + + if(item.submenu && (item.url != "") && (item.expanded && !MTMEmulateWE)) { + MTMOutputString += '' + MTMakeLink(item, false) + '>'; + } + + if(MTMNN3 && !MTMLinkedSS) { + var stringColor; + if(item.submenu && (item.url == "") && (item.number == MTMClickedItem)) { + stringColor = (item.expanded) ? MTMSubExpandColor : MTMSubClosedColor; + } else if(MTMTrackedItem && MTMTrackedItem == item.number) { + stringColor = MTMTrackColor; + } else { + stringColor = MTMLinkColor; + } + MTMOutputString += ''; + } + MTMOutputString += ' ' + item.text + ((MTMNN3 && !MTMLinkedSS) ? '' : '') + '' ; + MTMDoc.writeln(MTMOutputString + ''); +} + +function MTMEscapeQuotes(myString) { + var newString = ""; + var cur_pos = myString.indexOf("'"); + var prev_pos = 0; + while (cur_pos != -1) { + if(cur_pos == 0) { + newString += "\\"; + } else if(myString.charAt(cur_pos-1) != "\\") { + newString += myString.substring(prev_pos, cur_pos) + "\\"; + } else if(myString.charAt(cur_pos-1) == "\\") { + newString += myString.substring(prev_pos, cur_pos); + } + prev_pos = cur_pos++; + cur_pos = myString.indexOf("'", cur_pos); + } + return(newString + myString.substring(prev_pos, myString.length)); +} + +function MTMTrackExpand(thisMenu) { + var i, targetPath; + var foundNumber = false; + for(i = 0; i < thisMenu.items.length; i++) { + if(thisMenu.items[i].url != "" && MTMTrackTarget(thisMenu.items[i].target)) { + targetPath = parent.frames[thisMenu.items[i].target].location.protocol + '//' + parent.frames[thisMenu.items[i].target].location.host + parent.frames[thisMenu.items[i].target].location.pathname; + + if(targetPath.lastIndexOf(thisMenu.items[i].url) != -1 && (targetPath.lastIndexOf(thisMenu.items[i].url) + thisMenu.items[i].url.length) == targetPath.length) { + return(thisMenu.items[i].number); + } + } + if(thisMenu.items[i].submenu) { + foundNumber = MTMTrackExpand(thisMenu.items[i].submenu); + if(foundNumber) { + if(!thisMenu.items[i].expanded) { + thisMenu.items[i].expanded = true; + if(!MTMClickedItem) { MTMClickedItem = thisMenu.items[i].number; } + MTMExpansion = true; + } + return(foundNumber); + } + } + } + return(foundNumber); +} + +function MTMCloseSubs(thisMenu) { + var i, j; + var foundMatch = false; + for(i = 0; i < thisMenu.items.length; i++) { + if(thisMenu.items[i].submenu && thisMenu.items[i].expanded) { + if(thisMenu.items[i].number == MTMClickedItem) { + foundMatch = true; + for(j = 0; j < thisMenu.items[i].submenu.items.length; j++) { + if(thisMenu.items[i].submenu.items[j].expanded) { + thisMenu.items[i].submenu.items[j].expanded = false; + } + } + } else { + if(foundMatch) { + thisMenu.items[i].expanded = false; + } else { + foundMatch = MTMCloseSubs(thisMenu.items[i].submenu); + if(!foundMatch) { + thisMenu.items[i].expanded = false; + } + } + } + } + } + return(foundMatch); +} + +function MTMFetchIcon(testString) { + var i; + for(i = 0; i < MTMIconList.items.length; i++) { + if((MTMIconList.items[i].type == 'any') && (testString.indexOf(MTMIconList.items[i].match) != -1)) { + return(MTMIconList.items[i].file); + } else if((MTMIconList.items[i].type == 'pre') && (testString.indexOf(MTMIconList.items[i].match) == 0)) { + return(MTMIconList.items[i].file); + } else if((MTMIconList.items[i].type == 'post') && (testString.indexOf(MTMIconList.items[i].match) != -1)) { + if((testString.lastIndexOf(MTMIconList.items[i].match) + MTMIconList.items[i].match.length) == testString.length) { + return(MTMIconList.items[i].file); + } + } + } + return("menu_link_default.gif"); +} + +function MTMGetPos(myObj) { + return(myObj.offsetTop + ((myObj.offsetParent) ? MTMGetPos(myObj.offsetParent) : 0)); +} + +function MTMCheckURL(myURL) { + var tempString = ""; + if((myURL.indexOf("http://") == 0) || (myURL.indexOf("https://") == 0) || (myURL.indexOf("mailto:") == 0) || (myURL.indexOf("ftp://") == 0) || (myURL.indexOf("telnet:") == 0) || (myURL.indexOf("news:") == 0) || (myURL.indexOf("gopher:") == 0) || (myURL.indexOf("nntp:") == 0) || (myURL.indexOf("javascript:") == 0)) { + tempString += myURL; + } else { + tempString += MTMPreHREF + myURL; + } + return(tempString); +} + +function MTMakeVoid(thisItem, thisCmd, thisText) { + var tempString = ""; + tempString += ''); +} + +function MTMakeLink(thisItem, addName) { + var tempString = ''); +} + +function MTMakeBackImage(thisImage) { + var tempString = 'transparent url("' + ((MTMPreHREF == "") ? "" : MTMPreHREF); + tempString += MTMenuImageDirectory + thisImage + '")' + return(tempString); +} + +function MTMakeA(thisType, thisText, thisColor) { + var tempString = ""; + tempString += 'a' + ((thisType == "pseudo") ? ':' : '.'); + return(tempString + thisText + '{color:' + thisColor + ';background:' + MTMakeBackground() + ';}'); +} + +function MTMakeBackground() { + return((MTMBackground == "") ? MTMBGColor : 'transparent'); +} + +function MTMTrackTarget(thisTarget) { + if(thisTarget.charAt(0) == "_") { + return false; + } else { + for(i = 0; i < MTMFrameNames.length; i++) { + if(thisTarget == MTMFrameNames[i]) { + return true; + } + } + } + return false; +} + + + + +/****************************************************************************** + * User-configurable options. * + ******************************************************************************/ + +// Menu table width, either a pixel-value (number) or a percentage value. +var MTMTableWidth = "100%"; + +// Name of the frame where the menu is to appear. +var MTMenuFrame = "tocmain"; + +// variable for determining whether a sub-menu always gets a plus-sign +// regardless of whether it holds another sub-menu or not +var MTMSubsGetPlus = true; + + +// variable that defines whether the menu emulates the behaviour of +// Windows Explorer +var MTMEmulateWE = true; + +// Directory of menu images/icons +var MTMenuImageDirectory = "/ndk/doc/docui2k/menu-images/"; + +// Variables for controlling colors in the menu document. +// Regular BODY atttributes as in HTML documents. +var MTMBGColor = "#cc0000"; +var MTMBackground = ""; +var MTMTextColor = "white"; + +// color for all menu items +var MTMLinkColor = "#ffffcc"; + +// Hover color, when the mouse is over a menu link +var MTMAhoverColor = "#FF9933"; + +// Foreground color for the tracking & clicked submenu item +var MTMTrackColor ="#FF9933"; +var MTMSubExpandColor = "#ffffcc"; +var MTMSubClosedColor = "#ffffcc"; + +// All options regarding the root text and it's icon +var MTMRootIcon = "menu_new_root.gif"; +var MTMenuText = "Site contents:"; +var MTMRootColor = "white"; +var MTMRootFont = "Verdana"; +var MTMRootCSSize = "84%"; +var MTMRootFontSize = "-1"; + +// Font for menu items. +var MTMenuFont = "Verdana"; +var MTMenuCSSize = "74%"; +var MTMenuFontSize = "-1"; + +// Variables for style sheet usage +// 'true' means use a linked style sheet. +var MTMLinkedSS = false; +var MTMSSHREF = "style/menu.css"; + +// Whether you want an open sub-menu to close automagically +// when another sub-menu is opened. 'true' means auto-close +var MTMSubsAutoClose = false; + +// This variable controls how long it will take for the menu +// to appear if the tracking code in the content frame has +// failed to display the menu. Number if in tenths of a second +// (1/10) so 10 means "wait 1 second". +var MTMTimeOut = 25; + +/****************************************************************************** + * User-configurable list of icons. * + ******************************************************************************/ + +var MTMIconList = null; +MTMIconList = new IconList(); +// examples: +//MTMIconList.addIcon(new MTMIcon("menu_link_external.gif", "http://", "pre")); +//MTMIconList.addIcon(new MTMIcon("menu_link_pdf.gif", ".pdf", "post")); + +/****************************************************************************** + * User-configurable menu. * + ******************************************************************************/ + + +// navigation link is an object used to store the extracted information from +// the search request. The stored information will be used to build the +// navigation tree. + function navigationLink(title,URL,level,elementIndex,levelIndex,parentIndex,author) + { + var returnArray = new Array(); + returnArray.title = title; + returnArray.URL = URL; + returnArray.level = level; + returnArray.hasChild = false; + returnArray.elementIndex = elementIndex; + returnArray.parentIndex = parentIndex; + returnArray.levelIndex = levelIndex; + returnArray.author = author; + + return returnArray; + } + +// Variables used for tracking state as the search iterates through the list +// of documents returned. + var index = 0; + var currentLevel = 0; + var levelParents = new Array(); + var levelIndexes = new Array(); + var navigationTree = new Array(); + var treeNodes = new Array(); + var levelIndex = 0; + top.printList = ""; + top.printCount = 0; + +// asign the menu handle to the created tree + var menu = null; + + + function getNextChecked(item) + { + // case that root of tree is selected + if ( item.parent == null && item.selected) + { + for (var i = 0 ; i < top.authors.length; i++) + { + var re = /\s$/; + + if (top.titles[i].replace(re,"") == item.text.replace(re,"")) + { + top.printList += (top.authors[i].length + 3) + "_" + top.authors[i].replace(/\s/g,"+") + "+en"; + top.printCount ++; + } + } + } + else if (item.submenu != null) + { + for (var x = 0; x < item.submenu.items.length; x++) + { + if (item.submenu.items[x].selected) + { + var name = item.submenu.items[x].text; + for (var i = 0 ; i < top.authors.length; i++) + { + var re = /\s$/; + if (top.titles[i].replace(re,"") == name.replace(re,"")) + { + top.printList += (top.authors[i].length + 3) + "_" + top.authors[i].replace(/\s/g,"+") + "+en"; + top.printCount ++; + } + } + + } + else + { + getNextChecked(item.submenu.items[x]); + } + } + } + + } + +// Get a URL to pass checked topics to the Print Servlet + + + + function getPrintUrl(menu) + { + top.printList = ""; + top.printCount = 0; + + getNextChecked(menu.items[0]); + top.printList = top.printCount + "_" + top.printList; + + return top.printList; + } + + function setLevels() + { + + // Tracking the parent of the next node. + levelParents[currentLevel + 1] = index; + + // levelIndex is the child index under a branch + if (levelIndexes[currentLevel] == null) + { + levelIndexes[currentLevel] = 0; + } + else + { + levelIndexes[currentLevel] = levelIndexes[currentLevel] + 1; + levelIndexes[currentLevel + 1] = -1; + } + } + + function buildTree() + { + +// Determine which nodes have children and assign the correct property + for (var i = 0; i < navigationTree.length-1; i++) + { + // see if the current node has chilren + var thisLevel = navigationTree[i]["level"]; + var nextLevel = navigationTree[i+1]["level"]; + + if (nextLevel > thisLevel) + { + navigationTree[i]["hasChild"] = true; + } + else + { + navigationTree[i]["hasChild"] = false; + } + } + + +// create tree object nodes. + for( var j = 0; j < navigationTree.length; j++) + { + treeNodes[j] = null; + treeNodes[j] = new MTMenu(); + } + + +// add all items to nodes - +// NOTE, index to add to is the parent index + 1 for node tree offset of root=0 + for( var j3 = 0; j3 < navigationTree.length; j3++) + { + if (navigationTree[j3]["parentIndex"] == null) + { + var nsearchID = navigationTree[j3]["author"]; + treeNodes[0].MTMAddItem(new MTMenuItem(navigationTree[j3]["title"], navigationTree[j3]["URL"].replace(/http...developer.novell.com.ndk/gi,"/ndk") , "content_frame", nsearchID)); + } + else + { + var nsearchID = navigationTree[j3]["author"]; + treeNodes[navigationTree[j3]["parentIndex"] + 1 ].MTMAddItem(new MTMenuItem(navigationTree[j3]["title"], navigationTree[j3]["URL"].replace(/http...developer.novell.com.ndk/gi,"/ndk"), "content_frame",nsearchID)); + } + } + +// create submenu structure +// NOTE: add 1 to parent nodes for root = 0 offset. + for( var j4 = 0; j4 < navigationTree.length; j4++) + { + if (navigationTree[j4]["hasChild"]) + { + var pindex = null; + if (navigationTree[j4]["parentIndex"] == null) + { + + pindex = 0; + } + else + { + pindex = navigationTree[j4]["parentIndex"]+1; + } + + var lindex = navigationTree[j4]["levelIndex"]; + // document.write('treeNodes[' + pindex +'].items['+ lindex +'].MTMakeSubmenu(treeNodes['+(j4+1)+']);
'); + + treeNodes[pindex].items[lindex].MTMakeSubmenu(treeNodes[j4+1]); + } + } + + menu = treeNodes[0]; + +//expand the second item to display the sub contents on first display + if (menu.items[0] != null ) + { + menu.items[0].expanded = true; + + } + + + + } + + + + currentLevel++; + + setLevels(); + var navElement = navigationLink("NDS Libraries for C ","http://developer.novell.com/ndk/doc/ndslib/treetitl.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("NDS Backup Services ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/hevgtl7k.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Functions ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/h7qwv271.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("NDSBackupServerData ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/sdk5.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSFreeNameList ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/sdk12.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSGetReplicaPartitionNames ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/sdk19.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSIsOnlyServerInTree ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/sdk26.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSSYSVolumeRecovery ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/sdk33.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSVerifyServerInfo ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/sdk40.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Structures ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/hqp7vveq.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("NAMEID_TYPE ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/sdk48.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Values ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/hmmmal7s.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("NDS Reason Flags ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/h3r99io5.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Server Flags ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/hnlckbki.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Revision History ","http://developer.novell.com/ndk/doc/ndslib/dsbk_enu/data/a5i29ah.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("NDS Event Services ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/hmwiqbwd.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Concepts ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/hj3udfo7.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("NDS Event Introduction ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/hmgeu8a1.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Event Functions ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/hxwcemsz.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Event Priorities ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/hux0tdup.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Event Data Filtering ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/ha7nqbpy.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Event Types ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/h741eryw.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Global Network Monitoring ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/h9alatk4.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Tasks ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/huypg52u.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Monitoring NDS Events ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/hhkihe7f.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Registering for NDS Events ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/h0xmzt1h.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Unregistering for NDS Events ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/hk3fvwed.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Functions ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/h7qwv271.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("NWDSEConvertEntryName ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk28.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSEGetLocalAttrID ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk33.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSEGetLocalAttrName ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk39.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSEGetLocalClassID ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk45.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSEGetLocalClassName ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk51.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSEGetLocalEntryID ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk57.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSEGetLocalEntryName ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk63.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSERegisterForEvent ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk69.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSERegisterForEventWithResult ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk75.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSEUnRegisterForEvent ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk81.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Structures ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/hqp7vveq.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("DSEACL ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk88.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEBackLink ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk92.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEBinderyObjectInfo ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk96.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEBitString ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk100.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEChangeConnState ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk104.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSECIList ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk108.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEDebugInfo ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk112.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEEmailAddress ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk116.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEEntryInfo ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk120.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEEntryInfo2 ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk124.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEEventData ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk128.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEFaxNumber ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk132.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEHold ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk135.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEModuleState ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk139.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSENetAddress ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk143.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEOctetList ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk147.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEPath ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk151.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEReplicaPointer ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk155.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSESEVInfo ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk159.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSETimeStamp ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk163.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSETraceInfo ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk167.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSETypedName ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk172.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEVALData ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk176.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSEValueInfo ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/sdk179.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Values ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/hmmmal7s.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Event Priorities ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/hlerfllh.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Event Types ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/hiz5y84y.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Revision History ","http://developer.novell.com/ndk/doc/ndslib/dsev_enu/data/a6hw6zr.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("NDS Technical Overview ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/h6tvg4z7.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("NDS as the Internet Directory ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/h273w870.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Requirements for Networks and the Internet ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/a2lh37b.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Compliance to X.500 Standard ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/h0jj42d7.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Compliance with LDAP v3 ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/a2b6k5w.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Directory Access Protocols ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/a2b6k5x.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Programming Interfaces for NDS ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/h2qzzkq8.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Architecture ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/h6mny7fl.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("NDS Objects ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hp4dslw5.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("NDS Names ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/h0yh1byj.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Types of Information Stored in NDS ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hci52ynf.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Retrieval of Information from NDS ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hwwz5mda.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Tree Walking ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/h2xhaphc.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Object Management ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/h3mq2rf0.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("NDS Security ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hl8x1zxc.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Authentication ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hp901s8a.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Access Control Lists ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hr8sqtoi.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Inheritance ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hh9881ul.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NetWare File System ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/h64btfhk.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Partitions and Replicas ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hmq60r6h.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Partitioning ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hqx5hvrp.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Replication ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hj5l8npv.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Distributed Reference Management ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hzap47de.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Partition Operations ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hgbpk7x9.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Synchronization ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hsiplgn4.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Background Processes ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hz2kcp2e.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Bindery Services ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hwug6ytv.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("NDS Bindery Context ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/h8dwby8o.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Bindery Context Path ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/h6y3yva6.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Bindery Context Eclipsing ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hwcqk80m.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Bindery Objects ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hq4w9le6.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("NDS Return Values ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hbjry4gt.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("NDS Return Values from the Operating System ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/h5h16q77.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Client Return Values ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/he2lvhfy.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Agent Return Values ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hcvwzt90.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Directory Services Trace Utilities ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hujirj2n.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Using the DSTrace NLM ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hmg1e5gn.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Using Basic SET DSTrace Commands ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hdn0smja.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Starting Background Processes with SET DSTrace ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/h5pjd8fv.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Tuning Background Processes ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hhv9cqpk.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Enabling DSTrace Messages with SET DSTrace ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/hcah5j8v.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Revision History ","http://developer.novell.com/ndk/doc/ndslib/dsov_enu/data/a5i29ah.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("NDS Core Services ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h2y7hdit.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Programming Concepts ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h2x9gqr9.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Context Handles ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/huynzi7a.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Buffer Management ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h9xiygoj.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Read Requests for Object Information ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h7d6try4.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Search Requests ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h11es6ae.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Developing in a Loosely Consistent Environment ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hsaqomj7.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Add Object Requests ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hqjws9hi.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Security and Applications ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h3xwyggn.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Authentication of Client Applications ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h0m1k6ck.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Multiple Tree Support ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hu5a8flo.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Effective Rights Function ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/he06edkq.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Partition Functions ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/ha7fzu9h.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Replica Functions ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hpmsr4w7.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Read Requests for Schema Information ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h0a2o4v9.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Schema Extension Requests ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hrgy5k6e.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Tasks ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/huypg52u.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Context Handle Tasks ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hw34ixeu.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Buffer Tasks ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hb1nkqk4.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Authentication and Connection Tasks ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/huzx6sda.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Object Tasks ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hddp9m9i.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Partition and Replica Tasks ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hpx2o69b.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Schema Tasks ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hp85l75p.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Functions ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h7qwv271.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("NWDSAbbreviateName ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk135.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSAbortPartitionOperation ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk144.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSAddFilterToken ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk153.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSAddObject ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk162.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSAddPartition (obsolete---moved from .h file 11/99) ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk171.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSAddReplica ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk180.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSAddSecurityEquiv ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk189.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSAllocBuf ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk198.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSAllocFilter ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk207.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSAuditGetObjectID ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk216.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSAuthenticate ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk225.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSAuthenticateConn ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk234.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSAuthenticateConnEx ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/a3fvxoz.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSBackupObject ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk243.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSBeginClassItem ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk252.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSCanDSAuthenticate ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk261.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSCanonicalizeName ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk270.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSChangeObjectPassword ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk279.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSChangeReplicaType ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk288.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSCIStringsMatch ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk297.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSCloseIteration ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk305.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSCompare ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk314.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSComputeAttrValSize ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk360.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSCreateContext (obsolete---moved from .h file 6/99) ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk369.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSCreateContextHandle ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk371.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSDefineAttr ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk382.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSDefineClass ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk391.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSDelFilterToken ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk402.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSDuplicateContext (obsolete 03/99) ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk412.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSDuplicateContextHandle ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk423.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSExtSyncList ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk434.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSExtSyncRead ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk443.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSExtSyncSearch ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk455.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSFreeBuf ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk465.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSFreeContext ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk474.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSFreeFilter ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk491.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGenerateObjectKeyPair ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk501.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetAttrCount ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk511.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetAttrDef ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk521.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetAttrName ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk530.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetAttrVal ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk540.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetAttrValFlags ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk550.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetAttrValModTime ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk558.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetBinderyContext ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk566.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetClassDef ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk603.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetClassDefCount ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk691.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetClassItem ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk769.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetClassItemCount ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk838.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetContext ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk919.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetCountByClassAndName ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk972.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetCurrentUser ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1031.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetDefNameContext ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1041.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetDSIInfo ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1117.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetDSVerInfo ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1209.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetEffectiveRights ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1274.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetMonitoredConnRef ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1346.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetNDSInfo ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1425.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetObjectCount ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1528.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetObjectHostServerAddress ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1604.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetObjectName ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1640.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetObjectNameAndInfo ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1700.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetPartitionExtInfo ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1781.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetPartitionExtInfoPtr ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1830.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetPartitionInfo ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk1938.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetPartitionRoot ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2001.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetServerAddresses (obsolete 3/98) ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2021.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetServerAddresses2 ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2030.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetServerDN ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2039.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetServerName ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2047.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetSyntaxCount ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2056.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetSyntaxDef ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2065.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSGetSyntaxID ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2074.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSInitBuf ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2082.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSInspectEntry ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2091.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSJoinPartitions ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2099.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSList ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2108.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSListAttrsEffectiveRights ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2117.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSListByClassAndName ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2126.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSListContainableClasses ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2135.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSListContainers ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2144.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSListPartitions ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2153.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSListPartitionsExtInfo ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2162.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSLogin ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2171.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSLoginAsServer ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2180.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSLogout ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2187.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSMapIDToName ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2196.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSMapNameToID ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2205.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSModifyClassDef ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2214.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSModifyDN ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2223.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSModifyObject ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2232.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSModifyRDN ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2241.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSMoveObject ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2250.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSMutateObject ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/a37nkf6.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSOpenConnToNDSServer ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2259.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSOpenMonitoredConn ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2268.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSOpenStream ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2277.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSPartitionReceiveAllUpdates ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2285.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSPartitionSendAllUpdates ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2294.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSPutAttrName ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2303.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSPutAttrNameAndVal ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2312.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSPutAttrVal ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2321.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSPutChange ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2330.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSPutChangeAndVal ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2339.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSPutClassItem ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2348.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSPutClassName ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2357.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSPutFilter ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2364.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSPutSyntaxName ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2373.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSRead ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2380.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSReadAttrDef ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2389.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSReadClassDef ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2398.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSReadNDSInfo ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2407.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSReadObjectDSIInfo ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2416.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSReadObjectInfo ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2425.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSReadReferences ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2434.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSReadSyntaxDef ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2443.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSReadSyntaxes ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2451.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSReloadDS ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2459.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSRemoveAllTypes ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2467.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSRemoveAttrDef ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2475.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSRemoveClassDef ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2484.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSRemoveObject ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2493.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSRemovePartition ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2501.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSRemoveReplica ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2510.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSRemSecurityEquiv ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2519.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSRepairTimeStamps ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2528.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSReplaceAttrNameAbbrev ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2536.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSResolveName ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2544.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSRestoreObject ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2553.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSReturnBlockOfAvailableTrees ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2562.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSScanConnsForTrees ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2573.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSScanForAvailableTrees ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2582.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSSearch ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2591.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSSetContext ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2600.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSSetCurrentUser ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2609.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSSetDefNameContext ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2615.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSSetMonitoredConnection ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2624.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSSplitPartition ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2633.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSSyncPartition ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2642.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSSyncReplicaToServer ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2651.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSSyncSchema ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2660.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSUnlockConnection ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2669.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSVerifyObjectPassword ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2678.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSWhoAmI ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2687.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWGetDefaultNameContext ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2695.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWGetFileServerUTCTime ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2704.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWGetNumConnections ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2712.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWGetNWNetVersion ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2720.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWGetPreferredConnName ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2727.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWIsDSAuthenticated ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2736.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWIsDSServer ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2743.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWNetInit ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2750.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWNetTerm ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2759.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWSetDefaultNameContext ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2767.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWSetPreferredDSTree ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2776.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Structures ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hqp7vveq.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Asn1ID_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2785.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Attr_Info_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2790.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Back_Link_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2795.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Bit_String_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2800.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Buf_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2805.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("CI_List_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2810.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Class_Info_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2815.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("EMail_Address_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2820.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Fax_Number_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2826.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Filter_Cursor_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2831.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Filter_Node_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2836.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Hold_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2841.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSOSVersion_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2846.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSStatsInfo_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2850.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Net_Address_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2855.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDS_TimeStamp_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2860.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Object_ACL_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2865.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Object_Info_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2870.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Octet_List_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2875.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Octet_String_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2880.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Path_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2885.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Replica_Pointer_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2890.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Syntax_Info_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2895.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("TimeStamp_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2900.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Typed_Name_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2906.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Unknown_Attr_T ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/sdk2911.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Values ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hmmmal7s.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Attribute Constraint Flags ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hudjk3k4.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Attribute Value Flags ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h6anqw6h.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Buffer Operation Types and Related Functions ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h8bn0lfm.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Class Flags ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hpj620k3.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Change Types for Modifying Objects ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hc4p686b.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Context Keys and Flags ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h1btx3en.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Default Context Key Values ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hlkcqs3t.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DCK_FLAGS Bit Values ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/he1wcp92.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DCK_NAME_FORM Values ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hmd7uuiw.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DCK_CONFIDENCE Bit Values ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h7hy5yg3.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DCK_DSI_FLAGS Values ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/huh0ri39.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSI_ENTRY_FLAGS Values ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hqwiyl1u.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Filter Tokens ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h487zxy3.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Information Types for Attribute Definitions ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hdqx1cns.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Information Types for Class Definitions ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hcq403ms.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Information Types for Search and Read ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/ha682lf8.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Name Space Types ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hs6qj0yl.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Access Control Rights ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h12s89uj.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDS Ping Flags ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hf0fdqhd.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DSP Replica Information Flags ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hw42a7qg.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Network Address Types ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hniuyp90.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Scope Flags ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h6wfyyfk.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Replica Types ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/he290q86.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Replica States ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/h9br9yt1.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Syntax Matching Flags ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hd8fn0rm.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Syntax IDs ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hn1dsa7y.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("NDS Example Code ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/hb05g04v.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Context Handle ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/a2sofgc.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Object and Attribute ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/a2snp6e.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Browsing and Searching ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/a2snu78.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Batch Modification of Objects and Attributes ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/a2snzot.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Schema ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/a2snqyd.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Revision History ","http://developer.novell.com/ndk/doc/ndslib/nds__enu/data/a5i29ah.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("NDS Schema Reference ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/h4q1mn1i.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Schema Concepts ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/h282spjh.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Schema Structure ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hpmkggmh.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Schema Components ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hvt5bdoi.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Object Classes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hbna398k.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Naming Attributes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/h9vf1k0r.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Containment Classes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hh1izaro.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Super Classes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hmdjysrx.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Object Class Flags ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/h6rvyaky.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Mandatory and Optional Attributes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/h2vnta8j.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Default ACL Templates ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hr9sm1l0.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Auxiliary Classes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hlh5m1af.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Attribute Type Definitions ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hotadinr.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Attribute Syntax Definitions ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/h2m59phc.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Schema Extensions ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/he5mef3b.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Base Object Class Definitions ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hmv2qd15.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("AFP Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk75.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Alias ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk83.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("applicationEntity ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk91.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("applicationProcess ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk99.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Audit:File Object ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk107.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Bindery Object ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk115.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Bindery Queue ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk123.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("certificationAuthority ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk131.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("CommExec ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk139.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Computer ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk147.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Country ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk155.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("cRLDistributionPoint ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk163.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("dcObject ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk171.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Device ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk179.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Directory Map ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk187.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("domain ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk195.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("dSA ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk203.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("External Entity ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk219.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Group ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk227.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Group ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a38rj6z.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk243.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("List ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk251.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Locality ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk259.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("MASV:Security Policy ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk267.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Message Routing Group ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk275.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Messaging Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk283.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NCP Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk291.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("ndsLoginProperties ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk347.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Certificate Authority ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk355.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Key Material ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk363.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:SD Key Access Partition ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2okvd6.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:SD Key List ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2okvdx.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Trusted Root ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2okvbk.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Trusted Root Object ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2okvcf.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:groupOfCertificates ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk421.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailGroup1 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk445.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailRecipient ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk466.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:NetscapeMailServer5 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk474.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:NetscapeServer5 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk482.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:nginfo3 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk510.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:nsLicenseUser ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk518.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Organization ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk530.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Organizational Person ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk541.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Organizational Role ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk550.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Organizational Unit ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk561.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Partition ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk570.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Person ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk578.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("pkiCA ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk586.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("pkiUser ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk594.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Print Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk602.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Printer ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk610.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Profile ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk618.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Queue ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk626.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Resource ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk634.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SAS:Security ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk642.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SAS:Service ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk650.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk658.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("strongAuthenticationUser ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk698.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Template ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk706.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Top ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk714.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Tree Root ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk722.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Unknown ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk730.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("User ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk738.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("userSecurityInformation ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk746.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Volume ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk754.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("WANMAN:LAN Area ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk762.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Novell Object Class Extensions ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3fh4x1.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Entrust:CRLDistributionPoint ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk211.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("inetOrgPerson ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk235.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Broker ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk299.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Manager ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk307.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Printer ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk315.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Catalog ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk323.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Master Catalog ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk331.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Slave Catalog ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk339.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NetSvc ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk379.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:License Certificate ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk386.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:License Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk394.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Product Container ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk412.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:groupOfUniqueNames5 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk432.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailGroup5 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk454.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:Nginfo ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk491.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:Nginfo2 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk502.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("residentialPerson ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3omhcl.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP Scope Unit ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk666.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP Directory Agent ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk674.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP Service ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk682.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SMS SMDR Class ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk690.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Graphical View of Object Class Inheritance ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hzah4ydk.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Alias and Bindery Object Classes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hw8hr9jx.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Tree Root, domain, and Unknown ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hu1mitlx.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Computer, Country, Device, and Printer ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hnf7uif9.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("List and Locality ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/h48ynbap.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Organizational Role and Partition ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hrfg9w4e.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("ndsLoginProperties, Organization, and Organizational Unit ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hzvb48kg.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("ndsLoginProperties, Person, Organizational Person, and User ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hknzjmiv.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Directory Map, Profile, Queues, Resource, and Volume ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/h8jovuwl.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Servers (AFP, Messaging, NCP, Print) and CommExec ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/ha47y85g.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("External Entity, Group, and Message Routing Group ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hds3w6ie.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Base Attribute Definitions ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/hf9qbbni.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Aliased Object Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk782.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Account Balance ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk788.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("ACL ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk794.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Allow Unlimited Credit ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk800.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("associatedName ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a7bbra4.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("attributeCertificate ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk806.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Audit:A Encryption Key ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk812.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Audit:B Encryption Key ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk818.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Audit:Contents ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk824.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Audit:Current Encryption Key ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk830.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Audit:File Link ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk836.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Audit:Link List ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk842.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Audit:Path ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk848.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Audit:Policy ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk854.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Audit:Type ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk860.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("authorityRevocationList ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk866.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Authority Revocation ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk872.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("AuxClass Object Class Backup ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk878.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Auxiliary Class Flag ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk884.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Back Link ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk890.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Bindery Object Restriction ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk896.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Bindery Property ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk902.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Bindery Restriction Level ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk908.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Bindery Type ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk914.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("businessCategory ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk920.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink(" ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk932.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("cACertificate ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk938.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("CA Private Key ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk944.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("CA Public Key ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk950.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Cartridge ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk956.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("certificateRevocationList ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk962.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Certificate Revocation ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk968.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Certificate Validity Interval ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk974.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("crossCertificatePair ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk926.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink(" ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk986.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Convergence ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk998.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Cross Certificate Pair ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1004.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("dc ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1034.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Default Queue ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1040.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("deltaRevocationList ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1052.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("departmentNumber ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3on5am.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Description ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1058.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("destinationIndicator ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1064.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Detect Intruder ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1070.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Device ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1076.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("dmdName ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1082.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("dn ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1088.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("dnQualifier ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1094.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("DS Revision ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1100.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("EMail Address ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1106.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("employeeType ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3on9iy.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("enhancedSearchGuide ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1120.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Equivalent To Me ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1138.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("External Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1144.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("External Synchronizer ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1150.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Facsimile Telephone Number ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1156.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Full Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1162.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Generational Qualifier ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1168.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("generationQualifier ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1174.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink(" ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1180.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Given Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1186.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink(" ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1192.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("GUID ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1198.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("High Convergence Sync Interval ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1216.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Higher Privileges ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1222.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Home Directory ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1228.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Home Directory Rights ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1234.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("homePhone ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3onbgn.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("homePostalAddress ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3ondem.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("houseIdentifier ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1258.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Host Device ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1240.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Host Resource Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1246.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Host Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1252.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Inherited ACL ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1264.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Initials ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1270.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("internationaliSDNNumber ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1276.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Internet EMail Address ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1282.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Intruder Attempt Reset Interval ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1288.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Intruder Lockout Reset Interval ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1294.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("knowledgeInformation ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1312.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink(" ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1318.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Language ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1324.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Last Login Time ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1330.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Last Referenced Time ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1336.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP ACL v11 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1342.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Allow Clear Text Password ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1348.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Anonymous Identity ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1354.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Attribute Map v11 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1360.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Backup Log Filename ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1366.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Class Map v11 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1378.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Enable SSL ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1384.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Enable TCP ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1390.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Enable UDP ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1396.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Group ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1402.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Host Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1408.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Log Filename ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1414.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Log Level ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1420.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Log Size Limit ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1426.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Referral ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1432.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Screen Level ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1438.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Search Size Limit ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1444.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Search Time Limit ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1450.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1456.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Server Bind Limit ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1462.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Server Idle Timeout ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1468.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Server List ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1474.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP SSL Port ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1480.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Suffix ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1486.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP TCP Port ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1492.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP UDP Port ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1498.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP:bindCatalog ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1516.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP:bindCatalogUsage ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1522.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP:keyMaterialName ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1546.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP:otherReferralUsage ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1552.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP:searchCatalog ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1558.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP:searchCatalogUsage ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1564.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP:searchReferralUsage ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1570.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Locked By Intruder ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1576.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Lockout After Detection ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1582.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Login Allowed Time Map ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1588.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Login Disabled ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1594.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Login Expiration Time ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1600.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Login Grace Limit ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1606.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Login Grace Remaining ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1612.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Login Intruder Address ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1618.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Login Intruder Attempts ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1624.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Login Intruder Limit ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1630.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Login Intruder Reset Time ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1636.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Login Maximum Simultaneous ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1642.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Login Script ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1648.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Login Time ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1654.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Low Convergence Reset Time ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1660.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Low Convergence Sync Interval ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1666.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Mailbox ID ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1672.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Mailbox Location ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1678.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("manager ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3onljj.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("masvAuthorizedRange ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1684.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("masvDefaultRange ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1690.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("masvDomainPolicy ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1696.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("masvLabel ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1702.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("masvProposedLabel ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1708.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Member ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1726.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Members Of Template ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1732.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Memory ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1738.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Message Routing Group ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1744.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Message Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1750.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Messaging Database Location ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1756.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Messaging Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1762.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink(" ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1768.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Minimum Account Balance ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1786.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("mobile ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3oojmc.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Certificate Chain ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4104.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Given Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4110.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Key File ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4116.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Key Material DN ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4122.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Keystore ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2oknqe.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Not After ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2oknpk.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Not Before ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2oknpe.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Parent CA ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4128.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Parent CA DN ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4134.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Private Key ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4140.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Public Key ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4146.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Public Key Certificate ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4152.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:SD Key Cert ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2oknq2.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:SD Key ID ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2oknq8.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:SD Key Server DN ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2oknpq.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:SD Key Struct ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2oknpw.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Subject Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4158.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Tree CA DN ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4164.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:Trusted Root Certificate ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2oknp8.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSPKI:userCertificateInfo ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2oknp2.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Network Address ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4170.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Network Address Restriction ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4176.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("New Object's DS Rights ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4182.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("New Object's FS Rights ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4188.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("New Object's Self Rights ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4194.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NNS Domain ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4338.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Notify ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4374.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:administratorContactInfo ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4392.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:adminURL ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4398.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:AmailAccessDomain ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4404.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:AmailAlternateAddress ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4410.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:AmailAutoReplyMode ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4416.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:AmailAutoReplyText ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4422.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:AmailDeliveryOption ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4428.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:AmailForwardingAddress ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4434.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:AmailHost ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4440.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:AmailMessageStore ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4446.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:AmailProgramDeliveryInfo ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4452.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:AmailQuota ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4458.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:AnsLicenseEndTime ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4464.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:AnsLicensedFor ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4470.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:AnsLicenseStartTime ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4476.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:employeeNumber ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4482.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:installationTimeStamp ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4488.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailRoutingAddress ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a2ixy4e.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:memberCertificateDesc ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4554.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mgrpRFC822mailmember ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4560.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:ngcomponentCIS ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4572.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:nsaclrole ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4578.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:nscreator ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4584.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:nsflags ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4590.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:nsnewsACL ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4614.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:nsprettyname ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4620.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:serverHostName ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4626.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:serverProductName ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4632.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:serverRoot ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4638.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:serverVersionNumber ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4644.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:subtreeACI ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4650.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink(" ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4656.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Obituary ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4662.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Obituary Notify ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4668.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Object Class ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4674.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Operator ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4680.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Other GUID ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4686.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink(" ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4692.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Owner ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4698.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Page Description Language ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4704.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("pager ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3oojmj.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Partition Control ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4716.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Partition Creation Time ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4722.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Partition Status ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4728.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Password Allow Change ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4734.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Password Expiration Interval ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4740.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Password Expiration Time ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4746.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Password Management ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4752.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Password Minimum Length ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4758.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Password Required ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4764.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Password Unique Required ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4770.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Passwords Used ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4776.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Path ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4782.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Permanent Config Parms ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4788.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Physical Delivery Office Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4794.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Postal Address ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4800.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Postal Code ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4806.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Postal Office Box ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4812.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Postmaster ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4818.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("preferredDeliveryMethod ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4824.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("presentationAddress ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4830.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Print Job Configuration ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4848.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Print Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4854.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Printer ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4860.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Printer Configuration ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4872.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Printer Control ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4878.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Private Key ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4914.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Profile ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4920.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Profile Membership ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4926.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("protocolInformation ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4932.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Public Key ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4944.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Purge Vector ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4950.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Queue ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4956.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Queue Directory ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4962.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Received Up To ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4968.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Reference ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4974.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("registeredAddress ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4980.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Replica ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5010.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Replica Up To ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5016.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Resource ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5028.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Revision ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5064.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Role Occupant ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5070.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("roomNumber ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5076.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Run Setup Script ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5082.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink(" ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5088.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink(" ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5094.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SAP Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5100.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SAS:Security DN ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5106.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SAS:Service DN ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5112.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("searchGuide ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5118.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("searchSizeLimit ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5124.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("searchTimeLimit ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5130.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Security Equals ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5136.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Security Flags ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5142.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("See Also ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5148.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Serial Number ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5154.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5160.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Server Holds ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5166.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Set Password After Create ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5172.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Setup Script ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5178.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Status ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5286.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("supportedAlgorithms ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5298.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("supportedApplicationContext ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5304.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Supported Connections ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5310.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Supported Gateway ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5316.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Supported Services ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5322.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Supported Typefaces ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5328.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Surname ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5334.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Synchronization Tolerance ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5358.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Synchronized Up To ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5364.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink(" ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5370.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Telephone Number ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5376.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("telexNumber ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5382.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("telexTerminalIdentifier ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5388.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Timezone ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5394.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Title ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5400.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Transitive Vector ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5406.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Trustees Of New Object ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5412.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Type Creator Map ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5418.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink(" ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5424.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("uniqueID ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5430.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Unknown ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5436.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Unknown Auxiliary Class ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5442.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Unknown Base Class ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5448.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Used By ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5454.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("User ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5460.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("userCertificate ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5466.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("userPassword ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a6m1fnz.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Uses ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5472.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Version ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5478.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Volume ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5484.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Volume Space Restrictions ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5490.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("WANMAN:Cost ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5496.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("WANMAN:Default Cost ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5502.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("WANMAN:LAN Area Membership ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5508.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("WANMAN:WAN Policy ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5514.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("x121Address ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5520.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("x500UniqueIdentifier ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5526.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Novell Attribute Extensions ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3fh5xp.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("audio ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3omwno.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("carLicense ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3on4e7.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Client Install Candidate ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk980.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Color Supported ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk992.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Database Dir Path ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1010.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Database Volume Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1016.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Datapool Location ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1022.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Datapool Locations ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1028.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Delivery Methods Installed ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1046.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("displayName ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3oorbo.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Employee ID ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1114.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Entrust:AttributeCertificate ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1126.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Entrust:User ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1132.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("GW API Gateway Directory Path ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1204.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("GW API Gateway Directory Volume ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1210.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("IPP URI ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1300.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("IPP URI Security Scheme ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1306.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("jpegPhoto ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3onfdu.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("labeledUri ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3onkke.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP Class Map ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1372.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("ldapPhoto ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3op8zp.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAPUserCertificate ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1504.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP:ARL ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1510.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP:caCertificate ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1528.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP:CRL ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1534.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("LDAP:crossCertificatePair ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1540.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("MASV:Authorized Range ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a9j2co5.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("MASV:Default Range ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a9j2cob.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("MASV:Domain Policy ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a9j2coh.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("MASV:Label ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a9j2con.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("MASV:Proposed Label ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a9j2cot.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Maximum Speed ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1714.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Maximum Speed Units ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1720.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("MHS Send Directory Path ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1774.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("MHS Send Directory Volume ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1780.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Accountant Role ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1792.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Control Flags ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1798.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Database Saved Timestamp ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1804.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Database Saved Data Image ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1810.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Database Saved Index Image ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1816.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Default Printer ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1822.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Default Public Printer ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1828.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Job Configuration ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1834.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Manager Status ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1840.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Operator Role ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1846.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Printer Install List ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1852.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Printer Install Timestamp ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1858.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Printer Queue List ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1864.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Printer Siblings ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1870.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Public Printer Install List ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1876.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS Replace All Client Printers ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1882.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS SMTP Server ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1888.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDPS User Role ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1894.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Actual All Attributes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1900.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Actual Attribute Count ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1906.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Actual Attributes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1912.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Actual Base Object ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1918.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Actual Catalog Size ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1924.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Actual End Time ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1930.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Actual Filter ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1936.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Actual Object Count ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1942.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Actual Return Code ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1948.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Actual Scope ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1954.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Actual Search Aliases ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1960.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Actual Start Time ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1966.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Actual Value Count ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1972.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:All Attributes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1978.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:AttrDefTbl ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1984.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Attributes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1990.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Auto Dredge ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk1996.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Base Object ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk2002.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:CatalogDB ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk2008.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Catalog List ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk2014.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Dredge Interval ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4008.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Filter ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4014.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:IndexDefTbl ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4020.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Indexes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4026.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Label ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4032.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Log ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4038.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Master Catalog ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4044.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Max Log Size ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4050.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Max Retries ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4056.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Max Threads ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4062.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Retry Interval ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4068.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Scope ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4074.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Search Aliases ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4080.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Slave Catalog List ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4086.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Start Time ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4092.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NDSCat:Synch Interval ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4098.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Common Certificate ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4200.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Current Installed ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4206.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Current Peak Installed ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4212.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Current Peak Used ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4218.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Current Used ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4224.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Hourly Data Size ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4230.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:License Database ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4236.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:License ID ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4242.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:License Service Provider ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4248.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:LSP Revision ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4254.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Owner ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4260.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Peak Installed Data ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4266.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Peak Used Data ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4272.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Product ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4278.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Publisher ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4284.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Revision ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4290.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Search Type ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4296.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Summary Update Time ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4302.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Summary Version ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4308.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Transaction Database ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4314.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Transaction Log Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4320.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Transaction Log Size ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4326.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NLS:Version ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4332.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Notification Consumers ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4344.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Notification Profile ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4350.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Notification Service Enabled ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4356.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Notification Srvc Net Addr ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4362.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Notification Srvc Net Address ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4368.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NRD:Registry Data ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4380.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NRD:Registry Index ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4386.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailAccessDomain ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4494.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailAlternateAddress ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4500.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailAutoReplyMode ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4506.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailAutoReplyText ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4512.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailDeliveryOption ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4518.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailForwardingAddress ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4524.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailHost ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4530.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailMessageStore ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4536.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailProgramDeliveryInfo ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4542.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:mailQuota ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4548.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:ngComponent ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4566.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:nsLicenseEndTime ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4596.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:nsLicensedFor ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4602.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NSCP:nsLicenseStartTime ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4608.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Page Description Languages ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4710.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("preferredLanguage ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3oon3t.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Primary Notification Service ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4836.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Primary Resource Service ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4842.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Printer Agent Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4866.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Printer Manufacturer ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4884.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Printer Mechanism Types ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4890.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Printer Model ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4896.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Printer Status ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4902.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Printer to PA ID Mappings ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4908.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("PSM Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4938.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Registry Advertising Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4986.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Registry Service Enabled ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4992.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Registry Srvc Net Addr ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk4998.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Registry Srvc Net Address ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5004.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Resolution ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5022.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Resource Mgmt Srvc Net Addr ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5034.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Resource Mgmt Srvc Net Address ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5040.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Resource Mgmt Service Enabled ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5046.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Resource Mgr Database Path ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5052.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Resource Mgr Database Volume ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5058.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("secretary ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3oon40.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Sides Supported ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5184.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP Attribute ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5190.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP Cache Limit ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5196.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP DA Back Link ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5202.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP Directory Agent DN ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5208.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP Language ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5214.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP Lifetime ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5220.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP Scope Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5226.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP Scope Unit DN ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5232.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP Start Purge Hour ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5238.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP Status ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5244.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP SU Back Link ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5250.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP SU Type ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5256.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP Type ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5262.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SLP URL ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5268.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SMS Protocol Address ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5274.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SMS Registered Service ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5280.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SU ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5292.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SvcInfo ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5340.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SvcType ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5346.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("SvcTypeID ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5352.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("userSMIMECertificate ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a3oorbh.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("LDAP Operational Attributes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a7lnqjy.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("createTimeStamp ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a6fur3q.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("creatorsName ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a6fur3f.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("entryFlags ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a6fuxcp.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("federationBoundary ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a6fzxsm.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("localEntryID ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a6fzcam.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("modifiersName ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a6fur3j.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("modifyTimeStamp ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a6fur3x.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("structuralObjectClass ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a6fuxcb.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("subordinateCount ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a6fuxci.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("subschemaSubentry ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a6fuxc4.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Attribute Syntax Definitions ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/h55cqjqs.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Back Link ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5533.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Boolean ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5540.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Case Exact String ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5547.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Case Ignore List ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5554.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Case Ignore String ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5561.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Class Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5568.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Counter ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5575.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Distinguished Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5582.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("EMail Address ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5589.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Facsimile Telephone Number ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5596.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Hold ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5603.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Integer ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5610.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Interval ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5617.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Net Address ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5624.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Numeric String ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5631.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Object ACL ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5638.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Octet List ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5645.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Octet String ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5652.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Path ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5659.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Postal Address ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5666.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Printable String ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5673.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Replica Pointer ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5680.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Stream ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5687.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Telephone Number ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5694.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Time ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5701.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Timestamp ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5708.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Typed Name ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5715.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Unknown ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5722.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Index of Classes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx1.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("A through B ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx2.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("C through D ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx3.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("E through K ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx4.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("L through M ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx5.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("N ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx6.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("O ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx7.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("P through R ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx8.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("S ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx9.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("T through Z ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx10.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Index of Attributes ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx11.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("A ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx12.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("B ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx13.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("C ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx14.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("D ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx15.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("E ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx16.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("F through G ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx17.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("H ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx18.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("I through K ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx19.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("L ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx20.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("M ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx21.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("N ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx22.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("O ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx23.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("P ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx24.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Q ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx25.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("R ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx26.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("S ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx27.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("T ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx28.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("U ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx29.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("V through Z ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx30.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Index of ASN.1 IDs ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx31.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("0 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx32.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("1 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx33.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("2 through 2.4 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx34.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("2.5 through 2.9 ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx35.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Index of LDAP Names ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx36.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("A through B ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx37.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("C ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx38.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("D ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx39.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("E through F ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx40.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("G ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx41.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("H ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx42.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("I through K ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx43.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("L ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx44.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("M ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx45.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("N ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx46.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("O ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx47.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("P ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx48.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Q through R ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx49.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("S ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx50.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("T ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx51.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("U through Z ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/schidx52.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Revision History ","http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/a5i29ah.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("NDS Iterator Services ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hnv8aaj7.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Concepts ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hj3udfo7.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Iterator Objects ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hwiuqovp.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Creation of an Iterator Object ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hrb7xece.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Iterator Indexes ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hqngpqag.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Positions of an Iterator Object ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/h25zhm0d.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Current Position Movement with Retrieval Functions ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hn9jdbnd.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Retrieval of Data ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hy7j1t07.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Tasks ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/huypg52u.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Creating a Search Iterator Object ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hcyx2utx.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Retrieving and Unpacking Object and Attribute Name Data ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/h9evr0ru.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Retrieving and Unpacking Object, Attribute, and Value Data ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/htq89y7t.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Functions ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/h7qwv271.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("NWDSItrAtEOF ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk29.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrAtFirst ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk36.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrClone ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk43.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrCount ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk50.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrCreateList ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk57.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrCreateSearch ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk64.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrDestroy ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk71.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrGetCurrent ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk77.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrGetInfo ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk84.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrGetNext ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk91.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrGetPosition ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk98.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrGetPrev ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk105.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrSetPosition ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk112.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrSetPositionFromIterator ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk119.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrSkip ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk126.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("NWDSItrTypeDown ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/sdk133.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("NDS Iterator Example Code ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hw9m9u6o.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + currentLevel++; + + setLevels(); + var navElement = navigationLink("Cloning an Iterator Object: Example ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hur66hmi.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Counting with NDS Iterators: Example ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hgllfzfg.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Creating and Using a List Iterator: Example ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hfnbz1tw.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Creating a Search Iterator and Displaying the Results: Example ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hhe6xegc.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Getting Iterator Information: Example ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hfg59w8k.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Getting and Setting the Iterator's Position: Example ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hh03dp06.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Listing in Reverse Order: Example ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hsj5zfs1.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Positioning the Iterator with Typedown: Example ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/hqvieqdk.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + setLevels(); + var navElement = navigationLink("Skipping Objects in the List: Example ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/ho81tg5d.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + setLevels(); + var navElement = navigationLink("Revision History ","http://developer.novell.com/ndk/doc/ndslib/skds_enu/data/a5i29ah.html",currentLevel,index,levelIndexes[currentLevel],levelParents[currentLevel],""); + navigationTree[index] = navElement; + index++; + + if (currentLevel > 1) currentLevel-- + + if (currentLevel > 1) currentLevel-- + + reportCompare('No Crash', 'No Crash', ''); diff --git a/js/src/tests/js1_5/Regress/regress-114491.js b/js/src/tests/js1_5/Regress/regress-114491.js new file mode 100644 index 000000000..1592b0b5d --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-114491.js @@ -0,0 +1,72 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * + * Date: 10 December 2001 + * SUMMARY: Regression test for bug 114491 + * See http://bugzilla.mozilla.org/show_bug.cgi?id=114491 + * + * Rhino crashed on this code. It should produce a syntax error, not a crash. + * Using the () operator after a function STATEMENT is incorrect syntax. + * Rhino correctly caught the error when there was no |if (true)|. + * With the |if (true)|, however, Rhino crashed - + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 114491; +var summary = 'Regression test for bug 114491'; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + + +status = inSection(1); +actual = 'Program execution did NOT fall into catch-block'; +expect = 'Program execution fell into into catch-block'; +try +{ + var sEval = 'if (true) function f(){}()'; + eval(sEval); +} +catch(e) +{ + actual = expect; +} +addThis(); + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var i = 0; i < UBound; i++) + { + reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); + } + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-114493.js b/js/src/tests/js1_5/Regress/regress-114493.js new file mode 100644 index 000000000..03dd6fe93 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-114493.js @@ -0,0 +1,80 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * + * Date: 10 December 2001 + * SUMMARY: Regression test for bug 114493 + * See http://bugzilla.mozilla.org/show_bug.cgi?id=114493 + * + * Rhino crashed on this code. It should produce a syntax error, not a crash. + * Note that "3"[5] === undefined, and Rhino correctly gave an error if you + * tried to use the call operator on |undefined|: + * + * js> undefined(); + * js: TypeError: undefined is not a function. + * + * However, Rhino CRASHED if you tried to do "3"[5](). + * + * Rhino would NOT crash if you tried "3"[0]() or "3"[5]. Only array indices + * that were out of bounds, followed by the call operator, would crash. + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 114493; +var summary = 'Regression test for bug 114493'; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; +var sEval = ''; + + +status = inSection(1); +actual = 'Program execution did NOT fall into catch-block'; +expect = 'Program execution fell into into catch-block'; +try +{ + sEval = '"3"[5]()'; + eval(sEval); +} +catch(e) +{ + actual = expect; +} +addThis(); + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var i = 0; i < UBound; i++) + { + reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); + } + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-115436.js b/js/src/tests/js1_5/Regress/regress-115436.js new file mode 100644 index 000000000..0949bc64e --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-115436.js @@ -0,0 +1,24 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 115436; +var summary = 'Do not crash javascript warning duplicate arguments'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +options('strict'); + +function x(y,y) +{ + return 3; +} + +var z = x(4,5); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-116228.js b/js/src/tests/js1_5/Regress/regress-116228.js new file mode 100644 index 000000000..7556d4333 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-116228.js @@ -0,0 +1,24 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 116228; +var summary = 'Do not crash - JSOP_THIS should null obj register'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var obj = {}; +obj.toString = function() {return this();} + try + { + obj.toString(); + } + catch(e) + { + } +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-118849.js b/js/src/tests/js1_5/Regress/regress-118849.js new file mode 100644 index 000000000..49901344d --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-118849.js @@ -0,0 +1,152 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * + * Date: 08 Jan 2002 + * SUMMARY: Just testing that we don't crash on this code + * See http://bugzilla.mozilla.org/show_bug.cgi?id=118849 + * + * http://developer.netscape.com:80/docs/manuals/js/core/jsref/function.htm + * The Function constructor: + * Function ([arg1[, arg2[, ... argN]],] functionBody) + * + * Parameters + * arg1, arg2, ... argN + * (Optional) Names to be used by the function as formal argument names. + * Each must be a string that corresponds to a valid JavaScript identifier. + * + * functionBody + * A string containing JS statements comprising the function definition. + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 118849; +var summary = 'Should not crash if we provide Function() with bad arguments' + var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; +var cnFAIL_1 = 'LEGAL call to Function() caused an ERROR!!!'; +var cnFAIL_2 = 'ILLEGAL call to Function() FAILED to cause an error'; +var cnSTRING = 'ASDF'; +var cnNUMBER = 123; + + +/***********************************************************/ +/**** THESE ARE LEGITMATE CALLS AND SHOULD ALL SUCCEED ***/ +/***********************************************************/ +status = inSection(1); +actual = cnFAIL_1; // initialize to failure +try +{ + Function(cnSTRING); + Function(cnNUMBER); // cnNUMBER is a valid functionBody + Function(cnSTRING,cnSTRING); + Function(cnSTRING,cnNUMBER); + Function(cnSTRING,cnSTRING,cnNUMBER); + + new Function(cnSTRING); + new Function(cnNUMBER); + new Function(cnSTRING,cnSTRING); + new Function(cnSTRING,cnNUMBER); + new Function(cnSTRING,cnSTRING,cnNUMBER); + + actual = expect; +} +catch(e) +{ +} +addThis(); + + + +/**********************************************************/ +/*** EACH CASE THAT FOLLOWS SHOULD TRIGGER AN ERROR ***/ +/*** (BUT NOT A CRASH) ***/ +/*** NOTE WE NOW USE cnFAIL_2 INSTEAD OF cnFAIL_1 ***/ +/**********************************************************/ +status = inSection(2); +actual = cnFAIL_2; +try +{ + Function(cnNUMBER,cnNUMBER); // cnNUMBER is an invalid JS identifier name +} +catch(e) +{ + actual = expect; +} +addThis(); + + +status = inSection(3); +actual = cnFAIL_2; +try +{ + Function(cnNUMBER,cnSTRING,cnSTRING); +} +catch(e) +{ + actual = expect; +} +addThis(); + + +status = inSection(4); +actual = cnFAIL_2; +try +{ + new Function(cnNUMBER,cnNUMBER); +} +catch(e) +{ + actual = expect; +} +addThis(); + + +status = inSection(5); +actual = cnFAIL_2; +try +{ + new Function(cnNUMBER,cnSTRING,cnSTRING); +} +catch(e) +{ + actual = expect; +} +addThis(); + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var i = 0; i < UBound; i++) + { + reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); + } + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-119719.js b/js/src/tests/js1_5/Regress/regress-119719.js new file mode 100644 index 000000000..06a314d0c --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-119719.js @@ -0,0 +1,26 @@ +// |reftest| skip -- obsolete test +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 119719; +var summary = 'Rethrown errors should have line number updated.'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var err = new Error('this error was created on line 46'); +try +{ + throw err; // rethrow on line 49 +} +catch(e) +{ + expect = 49; + actual = err.lineNumber; +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-127243.js b/js/src/tests/js1_5/Regress/regress-127243.js new file mode 100644 index 000000000..11779f803 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-127243.js @@ -0,0 +1,75 @@ +// |reftest| skip-if(xulRuntime.OS=="WINNT"&&isDebugBuild) slow +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 127243; +var summary = 'Do not crash on watch'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +if (typeof window != 'undefined' && typeof document != 'undefined') +{ + // delay test driver end + gDelayTestDriverEnd = true; + window.addEventListener('load', handleLoad, false); +} +else +{ + printStatus('This test must be run in the browser'); + reportCompare(expect, actual, summary); + +} + +var div; + +function handleLoad() +{ + div = document.createElement('div'); + document.body.appendChild(div); + div.setAttribute('id', 'id1'); + div.style.width = '50px'; + div.style.height = '100px'; + div.style.overflow = 'auto'; + + for (var i = 0; i < 5; i++) + { + var p = document.createElement('p'); + var t = document.createTextNode('blah'); + p.appendChild(t); + div.appendChild(p); + } + + div.watch('scrollTop', wee); + + setTimeout('setScrollTop()', 1000); +} + +function wee(id, oldval, newval) +{ + var t = document.createTextNode('setting ' + id + + ' value ' + div.scrollTop + + ' oldval ' + oldval + + ' newval ' + newval); + var p = document.createElement('p'); + p.appendChild(t); + document.body.appendChild(p); + + return newval; +} + +function setScrollTop() +{ + div.scrollTop = 42; + + reportCompare(expect, actual, summary); + + gDelayTestDriverEnd = false; + jsTestDriverEnd(); + +} diff --git a/js/src/tests/js1_5/Regress/regress-127557.js b/js/src/tests/js1_5/Regress/regress-127557.js new file mode 100644 index 000000000..bea62ac71 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-127557.js @@ -0,0 +1,81 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * + * Date: 06 Mar 2002 + * SUMMARY: Testing cloned function objects + * See http://bugzilla.mozilla.org/show_bug.cgi?id=127557 + * + * Before this bug was fixed, this testcase would error when run: + * + * ReferenceError: h_peer is not defined + * + * The line |g.prototype = new Object| below is essential: this is + * what was confusing the engine in its attempt to look up h_peer + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 127557; +var summary = 'Testing cloned function objects'; +var cnCOMMA = ','; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + +if (typeof clone == 'function') +{ + status = inSection(1); + var f = evaluate("(function(x, y) {\n" + + " function h() { return h_peer(); }\n" + + " function h_peer() { return (x + cnCOMMA + y); }\n" + + " return h;\n" + + "})"); + var g = clone(f); + g.prototype = new Object; + var h = g(5,6); + actual = h(); + expect = '5,6'; + addThis(); +} +else +{ + reportCompare('Test not run', 'Test not run', 'shell only test requires clone()'); +} + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc('test'); + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i>> 1); + return buildEval_r(beginLine, middle) + buildEval_r(middle, endLine); +} + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc('test'); + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i Qp3[5][kh1+1] && + Qp3[5][kh1][e2k[4]] == Qp3[5][kh1+1][e2k[4]] && + Qp3[5][kh1].substr(kh1,kh1+1) == Qp3[5][kh1+1].substr(kh1,kh1+1)) + Qp3[5][kh1 + 2] = Qp3[5][kh1]; + + +actual = 'PASS'; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-176125.js b/js/src/tests/js1_5/Regress/regress-176125.js new file mode 100644 index 000000000..8334b2b79 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-176125.js @@ -0,0 +1,49 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 176125; +var summary = 'if() should not return a value'; +var actual = ''; +var expect = 'undefined'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + printStatus('if (test1());'); + actual = typeof eval('if (test1());'); +} +catch(ex) +{ + actual = ex + ''; +} + +reportCompare(expect, actual, summary + ': if (test1());'); + +try +{ + printStatus('if (test2());'); + actual = typeof eval('if (test2());'); +} +catch(ex) +{ + actual = ex + ''; +} + +reportCompare(expect, actual, summary + ': if (test2());'); + + +function test1() +{ + 'Hi there!'; +} + +function test2() +{ + test1(); + return false; +} diff --git a/js/src/tests/js1_5/Regress/regress-179524.js b/js/src/tests/js1_5/Regress/regress-179524.js new file mode 100644 index 000000000..f4ab67f7e --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-179524.js @@ -0,0 +1,295 @@ +// |reftest| skip-if(!xulRuntime.shell) +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * + * Date: 11 Nov 2002 + * SUMMARY: JS shouldn't crash on extraneous args to str.match(), etc. + * See http://bugzilla.mozilla.org/show_bug.cgi?id=179524 + * + * Note that when testing str.replace(), we have to be careful if the first + * argument provided to str.replace() is not a regexp object. ECMA-262 says + * it is NOT converted to one, unlike the case for str.match(), str.search(). + * + * See http://bugzilla.mozilla.org/show_bug.cgi?id=83293#c21. This means + * we have to be careful how we test meta-characters in the first argument + * to str.replace(), if that argument is a string - + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 179524; +var summary = "Don't crash on extraneous arguments to str.match(), etc."; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + +str = 'ABC abc'; +var re = /z/ig; + +status = inSection(1); +actual = str.match(re); +expect = null; +addThis(); + +status = inSection(2); +actual = str.match(re, 'i'); +expect = null; +addThis(); + +status = inSection(3); +actual = str.match(re, 'g', ''); +expect = null; +addThis(); + +status = inSection(4); +actual = str.match(re, 'z', new Object(), new Date()); +expect = null; +addThis(); + + +/* + * Now try the same thing with str.search() + */ +status = inSection(5); +actual = str.search(re); +expect = -1; +addThis(); + +status = inSection(6); +actual = str.search(re, 'i'); +expect = -1; +addThis(); + +status = inSection(7); +actual = str.search(re, 'g', ''); +expect = -1; +addThis(); + +status = inSection(8); +actual = str.search(re, 'z', new Object(), new Date()); +expect = -1; +addThis(); + + +/* + * Now try the same thing with str.replace() + */ +status = inSection(9); +actual = str.replace(re, 'Z'); +expect = str; +addThis(); + +status = inSection(10); +actual = str.replace(re, 'Z', 'i'); +expect = str; +addThis(); + +status = inSection(11); +actual = str.replace(re, 'Z', 'g', ''); +expect = str; +addThis(); + +status = inSection(12); +actual = str.replace(re, 'Z', 'z', new Object(), new Date()); +expect = str; +addThis(); + + + +/* + * Now test the case where str.match()'s first argument is not a regexp object. + * In that case, JS follows ECMA-262 Ed.3 by converting the 1st argument to a + * regexp object using the argument as a regexp pattern, but then extends ECMA + * by taking any optional 2nd argument to be a regexp flag string (e.g.'ig'). + * + * Reference: http://bugzilla.mozilla.org/show_bug.cgi?id=179524#c10 + */ +status = inSection(13); +actual = str.match('a').toString(); +expect = str.match(/a/).toString(); +addThis(); + +status = inSection(14); +actual = str.match('a', 'i').toString(); +expect = str.match(/a/).toString(); +addThis(); + +status = inSection(15); +actual = str.match('a', 'ig').toString(); +expect = str.match(/a/).toString(); +addThis(); + +status = inSection(16); +actual = str.match('\\s', 'm').toString(); +expect = str.match(/\s/).toString(); +addThis(); + + +/* + * Now try the previous three cases with extraneous parameters + */ +status = inSection(17); +actual = str.match('a', 'i', 'g').toString(); +expect = str.match(/a/).toString(); +addThis(); + +status = inSection(18); +actual = str.match('a', 'ig', new Object()).toString(); +expect = str.match(/a/).toString(); +addThis(); + +status = inSection(19); +actual = str.match('\\s', 'm', 999).toString(); +expect = str.match(/\s/).toString(); +addThis(); + +status = inSection(20); +actual = str.match('a', 'z').toString(); +expect = str.match(/a/).toString(); +addThis(); + + + +/* + * Now test str.search() where the first argument is not a regexp object. + * The same considerations as above apply - + * + * Reference: http://bugzilla.mozilla.org/show_bug.cgi?id=179524#c16 + */ +status = inSection(21); +actual = str.search('a'); +expect = str.search(/a/); +addThis(); + +status = inSection(22); +actual = str.search('a', 'i'); +expect = str.search(/a/); +addThis(); + +status = inSection(23); +actual = str.search('a', 'ig'); +expect = str.search(/a/); +addThis(); + +status = inSection(24); +actual = str.search('\\s', 'm'); +expect = str.search(/\s/); +addThis(); + + +/* + * Now try the previous three cases with extraneous parameters + */ +status = inSection(25); +actual = str.search('a', 'i', 'g'); +expect = str.search(/a/); +addThis(); + +status = inSection(26); +actual = str.search('a', 'ig', new Object()); +expect = str.search(/a/); +addThis(); + +status = inSection(27); +actual = str.search('\\s', 'm', 999); +expect = str.search(/\s/); +addThis(); + +status = inSection(28); +actual = str.search('a', 'z'); +expect = str.search(/a/); +addThis(); + + + +/* + * Now test str.replace() where the first argument is not a regexp object. + * The same considerations as above apply, EXCEPT for meta-characters. + * See introduction to testcase above. References: + * + * http://bugzilla.mozilla.org/show_bug.cgi?id=179524#c16 + * http://bugzilla.mozilla.org/show_bug.cgi?id=83293#c21 + */ +status = inSection(29); +actual = str.replace('a', 'Z'); +expect = str.replace(/a/, 'Z'); +addThis(); + +status = inSection(30); +actual = str.replace('a', 'Z', 'i'); +expect = str.replace(/a/, 'Z'); +addThis(); + +status = inSection(31); +actual = str.replace('a', 'Z', 'ig'); +expect = str.replace(/a/, 'Z'); +addThis(); + +status = inSection(32); +actual = str.replace('\\s', 'Z', 'm'); //<--- NO!!! No meta-characters 1st arg! +actual = str.replace(' ', 'Z', 'm'); //<--- Have to do this instead +expect = str.replace(/\s/, 'Z'); +addThis(); + + +/* + * Now try the previous three cases with extraneous parameters + */ +status = inSection(33); +actual = str.replace('a', 'Z', 'i', 'g'); +expect = str.replace(/a/, 'Z'); +addThis(); + +status = inSection(34); +actual = str.replace('a', 'Z', 'ig', new Object()); +expect = str.replace(/a/, 'Z'); +addThis(); + +status = inSection(35); +actual = str.replace('\\s', 'Z', 'm', 999); //<--- NO meta-characters 1st arg! +actual = str.replace(' ', 'Z', 'm', 999); //<--- Have to do this instead +expect = str.replace(/\s/, 'Z'); +addThis(); + +status = inSection(36); +actual = str.replace('a', 'Z', 'z'); +expect = str.replace(/a/, 'Z'); +addThis(); + + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc('test'); + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i= 47.5 && odd1 <= 52.5) +{ + actual = expect; +} +else +{ + actual = ' is ' + odd1.toFixed(3); +} + +reportCompare(expect, actual, summary); + +if (odd2 >= 47.5 && odd2 <= 52.5) +{ + actual = expect; +} +else +{ + actual = ' is ' + odd2.toFixed(3); +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-213482.js b/js/src/tests/js1_5/Regress/regress-213482.js new file mode 100644 index 000000000..26ed7e894 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-213482.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 213482; +var summary = 'Do not crash watching property when watcher sets property'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var testobj = {value: 'foo'}; + +function watched (a, b, c) { + testobj.value = (new Date()).getTime(); +} + +function setTest() { + testobj.value = 'b'; +} + +testobj.watch("value", watched); + +setTest(); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-214761.js b/js/src/tests/js1_5/Regress/regress-214761.js new file mode 100644 index 000000000..ab5a4663c --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-214761.js @@ -0,0 +1,45 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 214761; +var summary = 'Crash Regression from bug 208030'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +options('strict'); + +var code = "var bar1=new Array();\n" + + "bar1[0]='foo';\n" + + "var bar2=document.all&&navigator.userAgent.indexOf('Opera')==-1;\n" + + "var bar3=document.getElementById&&!document.all;\n" + + "var bar4=document.layers;\n" + + "function foo1(){\n" + + "return false;}\n" + + "function foo2(){\n" + + "return false;}\n" + + "function foo3(){\n" + + "return false;}\n" + + "function foo4(){\n" + + "return false;}\n" + + "function foo5(){\n" + + "return false;}\n" + + "function foo6(){\n" + + "return false;}\n" + + "function foo7(){\n" + + "return false;}"; + +try +{ + eval(code); +} +catch(e) +{ +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-216320.js b/js/src/tests/js1_5/Regress/regress-216320.js new file mode 100644 index 000000000..01fcea0f0 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-216320.js @@ -0,0 +1,1006 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * + * Date: 09 September 2003 + * SUMMARY: Just seeing we don't crash on this code + * See http://bugzilla.mozilla.org/show_bug.cgi?id=216320 + * + */ +//----------------------------------------------------------------------------- +var BUGNUMBER = 216320; +var summary = "Just seeing we don't crash on this code"; + +printBugNumber(BUGNUMBER); +printStatus(summary); + + +/* TESTCASE BEGINS HERE */ +status=0; +ism='NO'; +scf='N'; + +function vol(){ + if(navigator.appName!="Netscape"){ if(!window.navigator.onLine){ alert(pbc0430); return false; } } + return true; } + +function vnid(formfield){ + nid=formfield.value; + if(!nid.match(/^\s*$/)){ + nl=nid.split('/').length; + if(nl!=2&&nl!=3){ + alert(pbc0420); + formfield.focus(); + return false; + }}} + +function vnull(formfield){ + text=formfield.value; + if(text.match(/^\s*$/)){ + alert(pbc0425); + formfield.focus(); + return false; + } + return true; +} + +function vdt(formfield){ + date=formfield.value; +//MM/DD/YYYY +//YYYY/MM/DD + year=date.substring(0,4); + hy1=date.charAt(4); + month=date.substring(5,7); + hy2=date.charAt(7); + day=date.substring(8,10); + today=new Date(); + tdy=today.getDate(); + tmn=today.getMonth()+1; + if(today.getYear()<2000)tyr=today.getYear()+1900; + else tyr=today.getYear(); + if(date.match(/^\s*$/)) {return true; } + + if(hy1!="/"||hy2!="/"){ + alert(pbc0409); + formfield.focus(); + return false; + } + if(month>12||day>31||month<=0||day<=0||(isNaN(month)==true)||(isNaN(day)==true)||(isNaN(year)==true)){ + alert(pbc0409); + formfield.focus(); + return false; + } + + if(((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&day>31)||(year%4==0&&month==2&&day>29)||(year%4!=0&&month==2&&day>28)||((month==4||month==6||month==9||month==11)&&day>30)){ + alert(pbc0409); + formfield.focus(); + return false; + } + return true; +} + +function vkdt(formfield){ + date=formfield.value; + year=date.substring(0,4); + hy1=date.charAt(4); + month=date.substring(5,7); + hy2=date.charAt(7); + day=date.substring(8,10); + today=new Date(); + tdy=today.getDate(); + tmn=today.getMonth()+1; + if(today.getYear()<2000)tyr=today.getYear()+1900; + else tyr=today.getYear(); + if(date.match(/^\s*$/)){ + alert(pbc0425); + formfield.focus(); + return false; + } + if(hy1!="/"||hy2!="/"){ + alert(pbc0409); + formfield.focus(); + return false; + } + + if(month>12||day>31||month<=0||day<=0||(isNaN(month)==true)||(isNaN(day)==true)||(isNaN(year)==true)){ + alert(pbc0409); + formfield.focus(); + return false; + } + + if(((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&day>31)||(year%4==0&&month==2&&day>29)||(year%4!=0&&month==2&&day>28)||((month==4||month==6||month==9||month==11)&&day>30)){ + alert(pbc0409); + formfield.focus(); + return false; + } + return true; +} + +function ddif(month1,day1,year1,month2,day2,year2){ + start = new Date(); + start.setYear(year1); + start.setMonth(month1-1); + start.setDate(day1); + start.setMinutes(0); + start.setHours(0); + start.setSeconds(0); + end = new Date(); + end.setYear(year2); + end.setMonth(month2-1); + end.setDate(day2); + end.setMinutes(0); + end.setHours(0); + end.setSeconds(0); + current =(end.getTime() - start.getTime()); + days = Math.floor(current /(1000 * 60 * 60 * 24)); + return(days); +} + +function vsub(form,status,ism,action){ + if(!vol()){ return false; } + if(status<9||status==12){ + band=form.BAND.options[form.BAND.selectedIndex].value; + if(band=="00"){ + alert(pbc0425); + form.BAND.focus(); + return false; + } + } + + if((status>=0&&status<5)||(status==7)||(status>=5&&status<9&&ism=="YES")||(status==12&&ism=="YES")){ + if(!vnull(form.PT)) { return false; } + adt1=form.STD; + adt2=form.END; + stdt=adt1.value; + etdt=adt2.value; + syr=stdt.substring(0,4); + start_hy1=stdt.charAt(4); + smon=stdt.substring(5,7); + start_hy2=stdt.charAt(7); + sdy=stdt.substring(8,10); + eyr=etdt.substring(0,4); + end_hy1=etdt.charAt(4); + emon=etdt.substring(5,7); + end_hy2=etdt.charAt(7); + edy=etdt.substring(8,10); + today=new Date(); + date=today.getDate(); + month=today.getMonth()+1; + if(today.getYear()<2000)year=today.getYear()+1900; else year=today.getYear(); + nextYear=year+1; + if(!vnull(form.STD)){ return false; } + if(!vnull(form.END)){ return false; } + if(start_hy1!="/"||start_hy2!="/"){ + alert(pbc0409); + form.STD.focus(); + return false; + } + if(end_hy1!="/"||end_hy2!="/"){ + alert(pbc0409); + form.END.focus(); + return false; + } + if(smon>12||sdy>31||smon<=0||sdy<=0||(isNaN(smon)==true)||(isNaN(sdy)==true)||(isNaN(syr)==true)){ + alert(pbc0409); + form.STD.focus(); + return false; + } + if(emon>12||edy>31||emon<=0||edy<=0||(isNaN(emon)==true)||(isNaN(edy)==true)||(isNaN(eyr)==true)){ + alert(pbc0409); + form.END.focus(); + return false; + } + if(((smon==1||smon==3||smon==5||smon==7||smon==8||smon==10||smon==12)&&sdy>31)||(syr%4==0&&smon==2&&sdy>29)||(syr%4!=0&&smon==2&&sdy>28)||((smon==4||smon==6||smon==9||smon==11)&&sdy>30)){ + alert(pbc0409); + form.STD.focus(); + return false; + } + if(((emon==1||emon==3||emon==5||emon==7||emon==8||emon==10||emon==12)&&edy>31)||(eyr%4==0&&emon==2&&edy>29)||(eyr%4!=0&&emon==2&&edy>28)||((emon==4||emon==6||emon==9||emon==11)&&edy>30)){ + alert(pbc0409); + form.END.focus(); + return false; + } + if ((eyr==nextYear)&&(syr==year)) { + if ((emon>1)||(edy >31)) { + alert(pbc0401); + form.END.focus(); + return false; + } + } else { + + if ((syr!=eyr)){ + alert(pbc0406); + form.STD.focus(); + return false; + } + if(smon>emon||(smon==emon&&sdy>=edy)){ + alert(pbc0402); + form.STD.focus(); + return false; + } + if((eyr!=year)&&(eyr!=year-1)){ + alert(pbc0405); + form.END.focus(); + return false; + } + } + if(ism=='YES'&&(status==5||status==6||status==12)){ + if(ddif(month,date,year,emon,edy,eyr)>31){ + alert(pbc0421); + form.END.focus(); + return false; + } + } + if((status>2&&status<5)||(status==7)||((status>=5&&status<9||status==12)&&ism=="YES")){ + if(status!=5){ + if(!vdt(form.IRD1)){ + return false; + } + if(!vdt(form.IRD2)){ + return false; + } + if(!vdt(form.IRD3)){ + return false; + } + ird1=form.IRD1.value; + ird2=form.IRD2.value; + ird3=form.IRD3.value; + if(((ird1==ird2)&&(!ird1.match(/^\s*$/)))||((ird1==ird3)&&(!ird1.match(/^\s*$/)))){ + alert(pbc0417); + form.IRD1.focus(); + return false; + } + else if((ird2==ird3)&&(!ird2.match(/^\s*$/))){ + alert(pbc0417); + form.IRD2.focus(); + return false; + } + if(!vdt(form.FRD1)){ return false;} + } + if(status==5){ + if(!vdt(form.IRD1)){return false;} + if(!vdt(form.IRD2)){return false;} + if(!vdt(form.IRD3)){return false;} + ird1=form.IRD1.value; + ird2=form.IRD2.value; + ird3=form.IRD3.value; + if(((ird1==ird2)&&(!ird1.match(/^\s*$/)))||((ird1==ird3)&&(!ird1.match(/^\s*$/)))){ + alert(pbc0417); + form.IRD1.focus(); + return false; + } + else if((ird2==ird3)&&(!ird2.match(/^\s*$/))){ + alert(pbc0417); + form.IRD2.focus(); + return false; + } + if(!vkdt(form.FRD1)){ + return false; + } + } + } + } + if((status>=0&&status<2)||(status==3)||(status==7)||(status>=2&&status<9&&ism=="YES")||(status==12&&ism=="YES")){ + if(!vnull(form.WO)){ + return false; + } + if(!vnull(form.EO)){ + return false; + } + if(!vnull(form.TO)){ + return false; + } + } + if((status==2||status==4)||(status>=5&&status<9&&ism=="YES")||(status==12&&ism=="YES")){ + if(!vnull(form.WR)){return false;} + if(!vnull(form.ER)){return false;} + if(!vnull(form.TR)){return false;} + } + if((status==5||status==6||status==12)&&ism=="YES"){ + if(!vkdt(form.FRD1)){return false;} + frdt=form.FRD1.value; + fryr=frdt.substring(0,4); + frmn=frdt.substring(5,7); + frdy=frdt.substring(8,10); + if(fryr90){ + if(!confirm(pbc0439+" "+pbc0442)){ + form.SID.focus(); + return false; + }}} else { +// MK/06-20-01 = If Rating Not equals to 4 blank out the sustained improve Date + form.SID.value=""; + } + if(!vnull(form.OAT)){ return false; } + if(form.MSRQ.checked==true){ + if(form.NEW_SIGN_MGR_ID.value.match(/^\s*$/)){ + alert(pbc0418); + form.NEW_SIGN_MGR_ID.focus(); + return false; + } + if(vnid(form.NEW_SIGN_MGR_ID)==false){ return false; } + } else { + if(!form.NEW_SIGN_MGR_ID.value.match(/^\s*$/)){ + alert(pbc0422); + form.NEW_SIGN_MGR_ID.focus(); + return false; + } + if ( (form.TOC.value=="YES") && (form.RSRQ.checked==true) ) { + alert(pbc0429); + form.NEW_SEC_LINE_REV_ID.focus(); + return false; + } + } + if(form.RSRQ.checked==true){ + if(form.NEW_SEC_LINE_REV_ID.value.match(/^\s*$/)){ + alert(pbc0418); + form.NEW_SEC_LINE_REV_ID.focus(); + return false; + } + if(vnid(form.NEW_SEC_LINE_REV_ID)==false){ return false; } + } else { + if(!form.NEW_SEC_LINE_REV_ID.value.match(/^\s*$/)) { + alert(pbc0423); + form.NEW_SEC_LINE_REV_ID.focus(); + return false; + } + if ( (form.TOC.value=="YES") && (form.MSRQ.checked==true) ) { + alert(pbc0431); + form.NEW_SEC_LINE_REV_ID.focus(); + return false; + }}} + if(status!=9){ +/**for returned objectives **/ + if(status==3){ + if(conf(pbc0466) == false) return false; + } + + if(ism=='NO'){ + if(status==0||status==1||status==3||status==7){ + if(conf(pbc0456) == false) return false; + } + + if(status==2||status==4||status==8){ + if(conf(pbc0457) == false) return false; + } + } else if(ism=='YES'){ + if(status==0||status==1||status==3||status==7){ + if(conf(pbc0458) == false)return false; + } + if(status==2||status==4||status==8){ + if(conf(pbc0459) == false)return false; + } + if(status==5||status==6){ + if(form.ESRQ.checked==false){ + if(conf(pbc0460) == false)return false; + } else { + if(conf(pbc0461) == false)return false; + }}}} + if(status==9){ + if(ism=='NO'){ + if(conf(pbc0462) == false)return false; + } else if(ism=='YES'){ + if(conf(pbc0463) == false)return false; + } else if(ism=='REVIEWER'){ + if(conf(pbc0464) == false)return false; + }} + sact(action); + if(status>=9&&status<=11){ snul(); } + form.submit(); + return true; +} + +function vsav(form,status,ism,action) { + if(!vol()){ return false; } + adt1=form.STD; + adt2=form.END; + stdt=adt1.value; + etdt=adt2.value; + syr=stdt.substring(0,4); + start_hy1=stdt.charAt(4); + smon=stdt.substring(5,7); + start_hy2=stdt.charAt(7); + sdy=stdt.substring(8,10); + eyr=etdt.substring(0,4); + end_hy1=etdt.charAt(4); + emon=etdt.substring(5,7); + end_hy2=etdt.charAt(7); + edy=etdt.substring(8,10); + today=new Date(); + date=today.getDate(); + month=today.getMonth()+1; + if(today.getYear()<2000) year=today.getYear()+1900; else year=today.getYear(); + nextYear=year+1; + if(!vnull(form.STD)) return false; + if(!vnull(form.END)) return false; + if(start_hy1!="/"||start_hy2!="/"){ + alert(pbc0409); + form.STD.focus(); + return false; + } + if(end_hy1!="/"||end_hy2!="/"){ + alert(pbc0409); + form.END.focus(); + return false; + } + if(smon>12||sdy>31||smon<=0||sdy<=0||(isNaN(smon)==true)||(isNaN(sdy)==true)||(isNaN(syr)==true)){ + alert(pbc0409); + form.STD.focus(); + return false; + } + if(emon>12||edy>31||emon<=0||edy<=0||(isNaN(emon)==true)||(isNaN(edy)==true)||(isNaN(eyr)==true)){ + alert(pbc0409); + form.END.focus(); + return false; + } + if(((smon==1||smon==3||smon==5||smon==7||smon==8||smon==10||smon==12)&&sdy>31)||(syr%4==0&&smon==2&&sdy>29)||(syr%4!=0&&smon==2&&sdy>28)||((smon==4||smon==6||smon==9||smon==11)&&sdy>30)){ + alert(pbc0409); + form.STD.focus(); + return false; + } + if(((emon==1||emon==3||emon==5||emon==7||emon==8||emon==10||emon==12)&&edy>31)||(eyr%4==0&&emon==2&&edy>29)||(eyr%4!=0&&emon==2&&edy>28)||((emon==4||emon==6||emon==9||emon==11)&&edy>30)){ + alert(pbc0409); + form.END.focus(); + return false; + } + if ((eyr==nextYear)&&(syr==year)) { + if ((emon>1)||(edy >31)) { + alert(pbc0401); + form.END.focus(); + return false; + } + } else { + if ((syryear)) { + alert(pbc0407); + form.STD.focus(); + return false; + } + if((eyr!=year)&&(eyr!=year-1)){ + alert(pbc0405); + form.END.focus(); + return false; + } + if(smon>emon||(smon==emon&&sdy>=edy)){ + alert(pbc0403); + form.STD.focus(); + return false; + } + } + if((status>2&&status<5)||(status>=5&&status<9&&ism=="YES")||(status==12&&ism=="YES")){ + if(!vdt(form.IRD1)){return false;} + if(!vdt(form.IRD2)){return false;} + if(!vdt(form.IRD3)){ return false; } + ird1=form.IRD1.value; + ird2=form.IRD2.value; + ird3=form.IRD3.value; + if(((ird1==ird2)&&(!ird1.match(/^\s*$/)))||((ird1==ird3)&&(!ird1.match(/^\s*$/)))){ + alert(pbc0417); + form.IRD1.focus(); + return false; + } + else if((ird2==ird3)&&(!ird2.match(/^\s*$/))){ + alert(pbc0417); + form.IRD2.focus(); + return false; + } + if(!vdt(form.FRD1)){return false;} + if(ism=="YES"){ + if(!vdt(form.FRD1)){return false;} + } + } + if((status==5||status==6)&&ism=="YES"){ + rating=""; + for(i=0;i=9&&status<=11){ + snul(); + } + form.submit(); + return true; +} +function cft(formfield){ + nid=formfield.value; + if(nid.match(/^\s*$/)){ + alert(pbc0419); + formfield.focus(); + return false; + } + nl=nid.split('/').length; + if(nl!=2&&nl!=3){ + alert(pbc0420); + formfield.focus(); + return false; + } + return true; +} +function dcf(form,pbcId,cnum,sequence,status,atyp,ver){ + if(!vol()){} + dflg=confirm("\n\n<====================== " + pbc0468 + " ======================>\n\n" + pbc0469 + "\n\n<==================================================================>"); + if(dflg==true) { + form.ATYP.value=atyp; + form.PID.value=pbcId; + form.CNUM.value=cnum; + form.SEQ.value=sequence; + form.ST.value=status; + form.VER.value=ver; + form.submit(); + } + +} + + + +function lop(){ +//if(confirm(pbc0447+" "+pbc0451)){ + sck("timer",""); + sck("PBC_AUTH4",""); + sck("IBM004",""); + this.close(); +//} + +} + +function csrlop(){ + top.location="logoff.jsp"; +} +function lof(){ + csr=gck("IBM004"); + if(csr==null){ top.location="logoff.jsp"; } + else if(csr.charAt(0)==3){ window.location="csrlogoff.jsp"; } + else{ top.location="logoff.jsp"; } +} + +function goToHome(){ + top.location="pbcmain.jsp"; +} + +function docsr(){ + sck("IBM004","1^NONE^1"); + window.location="pbcmain.jsp" + } + +function ccd(){ + if(confirm(pbc0434)){ + if(navigator.appName!="Netscape"){ + if(!window.navigator.onLine){ + window.close(); + } + else { + window.location='pbcmain.jsp'; + } + } + else { + window.location='pbcmain.jsp'; + } + } +} + +function crt(form,action){ + if(!vol()){return false;} + band=form.BAND.options[form.BAND.selectedIndex].value; + if(band=="00"){ + alert(pbc0425); + form.BAND.focus(); + return false; + } + if(!confirm(pbc0450)){return false;} + sact(action); + form.submit(); + return true; +} +function cusat(form,action){ + if(!vol()){return false;} + sact(action); + form.action="unsatreq.jsp"; + form.submit(); + return true; +} +function cfrt(form,ism,action){ + if(!vol()){return false;} + sact(action); + if(ism=="NO"){ + if(confirm(pbc0449+" "+pbc0432)){ + snul(); + form.submit(); + return true; + } + } + if(ism=="REVIEWER"){ + if(confirm(pbc0449+" "+pbc0448)){ + snul(); + form.submit(); + return true; + } + } + if(ism=="YES"){ + if(confirm(pbc0440)){ + snul(); + form.submit(); + return true; + } + } +} + +function cces(form){ + if(form.ESRQ.checked==true){ + if(!confirm(pbc0435+" "+pbc0443))form.ESRQ.checked=false; + else {form.ESRQ.checked=true;} + } +} + +function ccms(form){ + if(form.MSRQ.checked==true){ + if(!confirm(pbc0441+" "+pbc0438+" "+pbc0444+" "+pbc0445))form.MSRQ.checked=false; + else { + form.MSRQ.checked=true; + } + } +} + +function ccrs(form){ + if(form.RSRQ.checked==true){ + if(!confirm(pbc0441+" "+pbc0438+" "+pbc0444+" "+pbc0446))form.RSRQ.checked=false; + else { + form.RSRQ.checked=true; + } + } +} + +function seo(){ + alert(pbc0412+" "+pbc0413+" "+pbc0414); +} +function cows(form,action){ + if(!vol()){ + return false; + } + if(confirm(pbc0437)){ + sact(action); + form.submit(); + return true; + } +} + +function srdb(rdb,value) { + for(i=0; i 0) { + for(i=0;i < lbx.options.length;i++) { + if(lbx.options[i].value == value) { + lbx.options[i].selected = true; + return true; + } + } + } + return true; +} + +function ourl(URL,WIN_NAME){ + if(!vol()){ return; } + var emp_win; + if(document.layers) { + child_screenX=window.screenX+50; + child_width=window.innerWidth-75; + child_height=window.innerHeight-75; + emp_win=window.open(URL,WIN_NAME,"screenX="+ child_screenX +",screenY=75,height="+ child_height +",width="+ child_width +",resizable,status,scrollbars"); + } else{ + child_width = screen.width-160; + child_height = screen.height-200; + emp_win=window.open(URL,WIN_NAME,"height="+ child_height +",width="+ child_width +",resizable=yes,status=no,scrollbars=yes"); +//emp_win.moveTo(110,0); + } +//if (URL.indexOf("pbcsitehelp")==-1) { alert("Opened new window."); } + emp_win.focus(); +} + +function dnh(form){ + form.NHS[0].checked=false; + form.NHS[1].checked=false; + form.NHB[0].checked=false; + form.NHB[1].checked=false; +} + +function cnh(form){ + isnh=""; + for(i=0; i"); + var txtValue3 = txtValue2.replace((/</g),"<"); + return txtValue3; +} + +function encodeText(txtValue) { + if (txtValue.match(/^\s*$/)) return txtValue; + var txtValue0 = txtValue.replace((/\r\n/g),'&lf;'); + var txtValue1 = txtValue0.replace((/"/g),'"'); +var txtValue2 = txtValue1.replace((/>/g),'>'); +var txtValue3 = txtValue2.replace((/ in +var BUGNUMBER = 240577; +var summary = 'object.watch execution context'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var createWatcher = function ( watchlabel ) +{ + var watcher = function (property, oldvalue, newvalue) + { + actual += watchlabel; return newvalue; + }; + return watcher; +}; + +var watcher1 = createWatcher('watcher1'); + +var object = {property: 'value'}; + +object.watch('property', watcher1); + +object.property = 'newvalue'; + +expect = 'watcher1'; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-243174.js b/js/src/tests/js1_5/Regress/regress-243174.js new file mode 100644 index 000000000..4352a9aeb --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-243174.js @@ -0,0 +1,21 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 243174; +var summary = 'Don\'t Crash on Regular Expression'; +var actual = 'Crash'; +var expect = 'No Crash'; + + +printBugNumber(BUGNUMBER); +printStatus (summary); + + +var result = "-+16-+59-+66-+67-+80-+82-+143-+170-+176-+189-+308-+363-+364-+365-+377-+393-+404-+405-+419-+430-+641-+732-+754-+783-+786-+972-+977-+980-+982-+1010-+1011-+1027-+1028-+1039-+1040-+1074-+1084-+1086-+1098-+1267-+1296-+1305-+1367-+1371-+1379-+1480-+1481-+1482-+1484-+1510-+1526-+1565-+1568-+1574-+1577-+1604-+1632-+1638-+1643-+1657-+1708-+1722-+1941-+1948-+1955-+1965-+1966-+2027-+2039-+2040-+2041-+2048-+2054-+2059-+2090-+2091-+2092-+2105-+2118-+".match(eval("/\\+(3|4|7|21|47|49|53|54|56|57|58|59|60|61|62|64|67|69|72|73|74|76|78|80|84|91|95|96|99|118|120|141|142|145|147|148|149|151|152|160|164|169|170|171|173|174|175|176|181|183|185|186|188|189|190|191|193|200|201|202|204|205|207|208|209|211|214|216|221|223|226|229|230|231|233|237|239|249|250|252|255|258|260|261|267|269|270|278|280|281|290|291|293|294|295|296|297|298|299|300|301|302|303|306|307|308|309|311|313|317|319|321|322|328|329|338|342|343|345|347|349|352|359|360|364|366|367|368|370|373|376|377|378|379|380|381|384|385|386|387|388|389|390|393|394|396|397|398|399|400|402|403|416|418|419|420|423|424|425|428|429|430|432|440|442|444|445|446|448|449|629|643|646|647|649|652|658|668|680|681|682|683|684|703|706|720|722|731|733|736|737|738|741|744|745|749|752|753|754|755|763|786|803|806|807|808|812|829|831|843|844|845|846|847|848|849|851|854|855|856|858|859|860|861|863|866|867|868|869|870|871|875|876|877|878|879|881|882|883|884|885|886|888|889|890|891|892|893|894|895|896|897|898|900|901|903|904|906|908|910|911|912|913|914|915|916|918|919|921|970|971|972|973|980|986|987|988|991|998|1009|1011|1015|1016|1031|1037|1038|1039|1040|1045|1046|1051|1052|1053|1054|1057|1058|1060|1064|1069|1070|1071|1074|1075|1085|1089|1090|1091|1093|1094|1095|1096|1097|1101|1103|1107|1109|1110|1112|1115|1116|1117|1171|1172|1175|1183|1184|1233|1289|1296|1300|1307|1315|1317|1327|1367|1374|1384|1392|1393|1408|1409|1412|1428|1479|1480|1481|1482|1483|1484|1485|1486|1487|1488|1490|1491|1492|1493|1497|1510|1522|1524|1565|1566|1567|1568|1573|1574|1576|1582|1584|1586|1588|1591|1592|1593|1596|1599|1600|1604|1606|1615|1616|1617|1621|1625|1631|1632|1633|1636|1640|1643|1644|1645|1646|1648|1650|1652|1655|1656|1657|1658|1660|1661|1663|1669|1670|1671|1672|1673|1675|1676|1677|1679|1680|1683|1684|1685|1686|1687|1688|1689|1695|1697|1702|1703|1704|1705|1706|1711|1712|1713|1714|1716|1722|1725|1726|1731|1738|1744|1747|1748|1749|1750|1753|1757|1761|1762|1763|1764|1765|1766|1767|1769|1771|1772|1773|1774|1775|1776|1777|1778|1779|1780|1781|1782|1783|1784|1785|1786|1788|1789|1790|1791|1792|1793|1794|1796|1797|1798|1799|1801|1802|1803|1804|1805|1806|1807|1808|1809|1810|1811|1812|1815|1816|1817|1818|1821|1822|1823|1824|1825|1827|1828|1831|1835|1840|1844|1845|1849|1850|1852|1853|1854|1855|1856|1857|1858|1859|1860|1862|1866|1867|1874|1885|1886|1887|1890|1894|1897|1898|1903|1912|1913|1917|1923|1933|1940|1941|1944|1945|1946|1947|1948|1949|1950|1963|1964|1965|1967|1971|1972|1973|1974|1978|1983|1988|1990|1991|2001|2003|2013|2015|2020|2025|2026|2027|2029|2034|2039|2040|2041|2047|2048|2049|2050|2053|2054|2055|2057|2058|2059|2060|2061|2064|2067|2070|2073|2076|2079|2082|2085|2088|2090|2092|2093|2094|2095|2096|2098|2099|2100|2101|2102|2103|2105|2114|2119|2121|2122|2124|2128|2131|2132|21|170|177|190|191|291|982|1038|1655|1978|2090|2133|1983|783|1582|2102|6|14|53|65|66|67|68|72|85|88|95|96|97|121|126|145|148|154|160|184|188|219|220|258|267|277|289|292|295|297|304|317|318|322|332|342|343|353|354|367|373|378|381|384|398|402|418|419|425|428|438|643|662|665|673|675|705|706|803|876|973|988|1013|1015|1020|1047|1091|1171|1184|1317|1400|1401|1486|1572|1590|1591|1593|1600|1621|1632|1633|1635|1636|1638|1640|1648|1657|1958|1966|1969|1973|1983|2048|2061|2064|2067|2070|2073|2076|2079|2082|2085|2088|2091|2126|2127|2128|1063|986|16|59|66|67|80|82|143|170|176|189|308|363|364|365|377|393|404|405|419|430|641|732|754|783|786|972|977|980|982|1010|1011|1027|1028|1039|1040|1074|1084|1086|1098|1267|1296|1305|1367|1371|1379|1480|1481|1482|1484|1510|1526|1565|1568|1574|1577|1604|1632|1638|1643|1657|1708|1722|1941|1948|1955|1965|1966|2027|2039|2040|2041|2048|2054|2059|2090|2091|2092|2105|2118|1300|971|2047|2050|986|1632|2049|1184|2047)-/g")); + +actual = 'No Crash'; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-243389-n.js b/js/src/tests/js1_5/Regress/regress-243389-n.js new file mode 100644 index 000000000..00c11b4c2 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-243389-n.js @@ -0,0 +1,24 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +// test from Henrik Gemal +var BUGNUMBER = 243389; +var summary = 'Don\'t crash on Regular Expression'; +var actual = 'Crash'; +var expect = 'error'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +// this is a syntax error which will fire +// before the framework is ready. therefore the browser based +// version will not appear to run this test if it does not crash +if (/(\\|/)/) { +} + +actual = 'No Crash'; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-243869.js b/js/src/tests/js1_5/Regress/regress-243869.js new file mode 100644 index 000000000..483ca2ef1 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-243869.js @@ -0,0 +1,38 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +// testcase from Alex Vincent +var BUGNUMBER = 243869; +var summary = 'Rethrown custom Errors should retain file and line number'; +var actual = ''; +var expect = 'Test Location:123'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function bar() +{ + try + { + var f = new Error("Test Error", "Test Location", 123); + throw f; + } + catch(e) + { + throw e; + } +} + +try +{ + bar(); +} +catch(eb) +{ + actual = eb.fileName + ':' + eb.lineNumber + } + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-244470.js b/js/src/tests/js1_5/Regress/regress-244470.js new file mode 100644 index 000000000..88b2e7a74 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-244470.js @@ -0,0 +1,1079 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 244470; +var summary = 'Don\'t Crash'; +var actual = 'Crash'; +var expect = 'No Crash'; +printBugNumber(BUGNUMBER); +printStatus (summary); + +var g; +for (var i=1; ; ++i) { + + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + g=new Function("ABCDEFGHIJK", "1234"); + + + if (i % 80 == 0) { + printStatus("This doesn't want to crash now, please keep trying."); + break; + } + +} + +// These have to be named functions, using anonymous functions doesn't crash. +// Using just one function here makes the crash much less likely. +function dummy(){} +function dummy2(){} +function dummy3(){} + +actual = 'No Crash'; + +reportCompare(expect, actual, summary); + diff --git a/js/src/tests/js1_5/Regress/regress-244619.js b/js/src/tests/js1_5/Regress/regress-244619.js new file mode 100644 index 000000000..1406535e8 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-244619.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 244619; +var summary = 'Don\'t Crash'; +var actual = 'Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function f1() +{ + var o = new Object(); + eval.call(o, "var a = 'vodka'"); // <- CRASH !!! +} + +// Rhino does not allow indirect eval calls +try +{ + f1(); +} +catch(e) +{ +} + +actual = 'No Crash'; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-245113.js b/js/src/tests/js1_5/Regress/regress-245113.js new file mode 100644 index 000000000..abbda6ac0 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-245113.js @@ -0,0 +1,47 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 245113; +var summary = 'instanceof operator should return false for class prototype'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +Date.prototype.test = function() { + return (this instanceof Date); +}; + +String.prototype.test = function() { + return (this instanceof String); +}; + +status = summary + inSection(1); +expect = false; +actual = (Date.prototype.test instanceof Date); +reportCompare(expect, actual, status); + +status = summary + inSection(2); +expect = false; +actual = Date.prototype.test(); +reportCompare(expect, actual, status); + +status = summary + inSection(3); +expect = false; +actual = String.prototype.test(); +reportCompare(expect, actual, status); + +status = summary + inSection(4); +expect = true; +actual = (new Date()).test(); +reportCompare(expect, actual, status); + +status = summary + inSection(5); +expect = true; +actual = (new String()).test(); +reportCompare(expect, actual, status); + diff --git a/js/src/tests/js1_5/Regress/regress-245308.js b/js/src/tests/js1_5/Regress/regress-245308.js new file mode 100644 index 000000000..51c928587 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-245308.js @@ -0,0 +1,27 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 245308; +var summary = 'Don\'t Crash with nest try catch'; +var actual = 'Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function foo(e) { + try {} + catch(ex) { + try {} + catch(ex) {} + } +} + +foo('foo'); + +actual = 'No Crash'; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-246911.js b/js/src/tests/js1_5/Regress/regress-246911.js new file mode 100644 index 000000000..2f35f5fd8 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-246911.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 246911; +var summary = 'switch() statement with variable as label'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expect = 'PASS'; + +var a = 10; +a = 9; +var b = 10; + +switch(b) +{ +case a: + actual = 'FAIL'; + break; +default: + actual = 'PASS'; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-246964.js b/js/src/tests/js1_5/Regress/regress-246964.js new file mode 100644 index 000000000..d95b3c1da --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-246964.js @@ -0,0 +1,160 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 246964; +// see also bug 248549, bug 253150, bug 259935 +var summary = 'undetectable document.all'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +if (typeof document == 'undefined') +{ + expect = actual = 'Test requires browser: skipped'; + reportCompare(expect, actual, summary); +} +else +{ + status = summary + ' ' + inSection(1) + ' if (document.all) '; + expect = false; + actual = false; + if (document.all) + { + actual = true; + } + reportCompare(expect, actual, status); + + status = summary + ' ' + inSection(2) + 'if (isIE) '; + expect = false; + actual = false; + var isIE = document.all; + if (isIE) + { + actual = true; + } + reportCompare(expect, actual, status); + + status = summary + ' ' + inSection(3) + ' if (document.all != undefined) '; + expect = false; + actual = false; + if (document.all != undefined) + { + actual = true; + } + reportCompare(expect, actual, status); + + + status = summary + ' ' + inSection(4) + ' if (document.all !== undefined) '; + expect = true; + actual = false; + if (document.all !== undefined) + { + actual = true; + } + reportCompare(expect, actual, status); + + status = summary + ' ' + inSection(5) + ' if (document.all != null) ' ; + expect = false; + actual = false; + if (document.all != null) + { + actual = true; + } + reportCompare(expect, actual, status); + + status = summary + ' ' + inSection(6) + ' if (document.all !== null) ' ; + expect = true; + actual = false; + if (document.all !== null) + { + actual = true; + } + reportCompare(expect, actual, status); + + status = summary + ' ' + inSection(7) + ' if (document.all == null) '; + expect = true; + actual = false; + if (document.all == null) + { + actual = true; + } + reportCompare(expect, actual, status); + + status = summary + ' ' + inSection(8) + ' if (document.all === null) '; + expect = false; + actual = false; + if (document.all === null) + { + actual = true; + } + reportCompare(expect, actual, status); + + status = summary + ' ' + inSection(9) + ' if (document.all == undefined) '; + expect = true; + actual = false; + if (document.all == undefined) + { + actual = true; + } + reportCompare(expect, actual, status); + + status = summary + ' ' + inSection(10) + ' if (document.all === undefined) '; + expect = false; + actual = false; + if (document.all === undefined) + { + actual = true; + } + reportCompare(expect, actual, status); + + status = summary + ' ' + inSection(11) + + ' if (typeof document.all == "undefined") '; + expect = true; + actual = false; + if (typeof document.all == 'undefined') + { + actual = true; + } + reportCompare(expect, actual, status); + + status = summary + ' ' + inSection(12) + + ' if (typeof document.all != "undefined") '; + expect = false; + actual = false; + if (typeof document.all != 'undefined') + { + actual = true; + } + reportCompare(expect, actual, status); + + status = summary + ' ' + inSection(13) + ' if ("all" in document) '; + expect = (document.compatMode == 'CSS1Compat') ? false : true; + actual = false; + if ('all' in document) + { + actual = true; + } + reportCompare(expect, actual, status); + + status = summary + ' ' + inSection(14) + ' if (f.ie) '; + var f = new foo(); + + expect = false; + actual = false; + if (f.ie) + { + actual = true; + } + reportCompare(expect, actual, status); + +} + +function foo() +{ + this.ie = document.all; +} diff --git a/js/src/tests/js1_5/Regress/regress-247179.js b/js/src/tests/js1_5/Regress/regress-247179.js new file mode 100644 index 000000000..9e01051ee --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-247179.js @@ -0,0 +1,18 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 247179; +var summary = 'RegExp \\b should not recognize non-ASCII alphanumerics as word characters'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expect = 3; +actual = "m\ucc44nd".split(/\b/).length; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-248444.js b/js/src/tests/js1_5/Regress/regress-248444.js new file mode 100644 index 000000000..f04a4bac0 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-248444.js @@ -0,0 +1,31 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 248444; +var summary = 'toString/toSource of RegExp should escape slashes'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var re; +expect = '/[^\\/]+$/'; + +status = summary + ' ' + inSection(1); +re = /[^\/]+$/; +actual = re.toString(); +reportCompare(expect, actual, status); + +status = summary + ' ' + inSection(2); +re = RegExp("[^\\\/]+$"); +actual = re.toString(); +reportCompare(expect, actual, status); + +status = summary + ' ' + inSection(3); +re = RegExp("[^\\/]+$"); +actual = re.toString(); +reportCompare(expect, actual, status); diff --git a/js/src/tests/js1_5/Regress/regress-249211.js b/js/src/tests/js1_5/Regress/regress-249211.js new file mode 100644 index 000000000..4fb718ba9 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-249211.js @@ -0,0 +1,30 @@ +// |reftest| skip -- obsolete test +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 249211; +var summary = 'support export and import for 4xp'; +var actual = ''; +var expect = 'no error'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + var o = {}; + var f = function(){}; + export *; + import o.*; + actual = 'no error'; +} +catch(e) +{ + actual = 'error'; +} + +reportCompare(expect, actual, summary); + diff --git a/js/src/tests/js1_5/Regress/regress-252892.js b/js/src/tests/js1_5/Regress/regress-252892.js new file mode 100644 index 000000000..5f799bb18 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-252892.js @@ -0,0 +1,68 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 252892; +var summary = 'for (var i in o) in heavyweight function f should define i in f\'s activation'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var status; + +var dodis; + +function f1(o){for(var x in o)printStatus(o[x]); return x} +function f2(o){with(this)for(var x in o)printStatus(o[x]); return x} +function f2novar(o){with(this)for(x in o)printStatus(o[x]); return x} +function f3(i,o){for(var x in o)printStatus(o[x]); return x} +function f4(i,o){with(this)for(var x in o)printStatus(o[x]); return x} + +var t=0; +function assert(c) +{ + ++t; + + status = summary + ' ' + inSection(t); + expect = true; + actual = c; + + if (!c) + { + printStatus(t + " FAILED!"); + } + reportCompare(expect, actual, summary); +} + +assertEq(f1([]), undefined); + +assertEq(f1(['first']), "0"); + +assertEq(f2([]), undefined); + +assertEq(f2(['first']), "0"); + +assertEq(f3(42, []), undefined); + +assertEq(f3(42, ['first']), "0"); + +assertEq(f4(42, []), undefined); + +assertEq(f4(42, ['first']), "0"); + +this.x = 41; + +assertEq(f2([]), undefined); + +assertEq(f2novar([]), 41); + +assertEq(f2(['first']), undefined); + +assertEq(f2novar(['first']), "0"); + +if (typeof reportCompare === "function") + reportCompare(true, true); diff --git a/js/src/tests/js1_5/Regress/regress-253150.js b/js/src/tests/js1_5/Regress/regress-253150.js new file mode 100644 index 000000000..dc6a0de10 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-253150.js @@ -0,0 +1,90 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 253150; +var summary = 'Do not warn on detecting properties'; +var actual = ''; +var expect = 'No warning'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var testobject = {}; + +options('strict'); +options('werror'); + +try +{ + var testresult = testobject.foo; + actual = 'No warning'; +} +catch(ex) +{ + actual = ex + ''; +} + +reportCompare(expect, actual, summary + ': 1'); + +try +{ + if (testobject.foo) + { + ; + } + actual = 'No warning'; +} +catch(ex) +{ + actual = ex + ''; +} + +reportCompare(expect, actual, summary + ': 2'); + +try +{ + if (typeof testobject.foo == 'undefined') + { + ; + } + actual = 'No warning'; +} +catch(ex) +{ + actual = ex + ''; +} + +reportCompare(expect, actual, summary + ': 3'); + +try +{ + if (testobject.foo == null) + { + ; + } + actual = 'No warning'; +} +catch(ex) +{ + actual = ex + ''; +} + +reportCompare(expect, actual, summary + ': 4'); + +try +{ + if (testobject.foo == undefined) + { + ; + } + actual = 'No warning'; +} +catch(ex) +{ + actual = ex + ''; +} + +reportCompare(expect, actual, summary + ': 3'); diff --git a/js/src/tests/js1_5/Regress/regress-254296.js b/js/src/tests/js1_5/Regress/regress-254296.js new file mode 100644 index 000000000..041c3876c --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-254296.js @@ -0,0 +1,26 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 254296; +var summary = 'javascript regular expression negative lookahead'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expect = [3].toString(); +actual = /^\d(?!\.\d)/.exec('3.A'); +if (actual) +{ + actual = actual.toString(); +} + +reportCompare(expect, actual, summary + ' ' + inSection(1)); + +expect = 'AB'; +actual = /(?!AB+D)AB/.exec("AB") + ''; +reportCompare(expect, actual, summary + ' ' + inSection(2)); diff --git a/js/src/tests/js1_5/Regress/regress-254974.js b/js/src/tests/js1_5/Regress/regress-254974.js new file mode 100644 index 000000000..306fafbb1 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-254974.js @@ -0,0 +1,38 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +// this test originally was only seen if typed into the js shell. +// loading as a script file did not exhibit the problem. +// this test case may not exercise the problem properly. + +var BUGNUMBER = 254974; +var summary = 'all var and arg properties should be JSPROP_SHARED'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function testfunc(tokens) { + function eek(y) {} /* remove function eek and the code will change its behavior */ + return tokens.split(/\]?(?:\[|$)/).shift(); +} +bad=testfunc; +function testfunc(tokens) { + return tokens.split(/\]?(?:\[|$)/).shift(); +} +good=testfunc; + +var goodvalue = good("DIV[@id=\"test\"]"); +var badvalue = bad("DIV[@id=\"test\"]"); + +printStatus(goodvalue); +printStatus(badvalue); + +expect = goodvalue; +actual = badvalue; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-256501.js b/js/src/tests/js1_5/Regress/regress-256501.js new file mode 100644 index 000000000..11186d9df --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-256501.js @@ -0,0 +1,38 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 256501; +var summary = 'Check Recursion'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expect = 'error'; + +try +{ + var N = 100*1000; + var buffer = new Array(N * 2 + 1); + for (var i = 0; i != N; ++i) + { + buffer[i] = 'do '; + buffer[buffer.length - i - 1] = ' while(0);'; + } + buffer[N] = 'printStatus("TEST");'; + + // text is do do ... do print("TEST"); while(0); while(0); ... while(0); + var text = buffer.join(''); + + eval(text); + actual = 'no error'; +} +catch(e) +{ + actual = 'error'; +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-256617.js b/js/src/tests/js1_5/Regress/regress-256617.js new file mode 100644 index 000000000..6dfc44bec --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-256617.js @@ -0,0 +1,35 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +// should fail with syntax error. won't run in browser... +var BUGNUMBER = 256617; +var summary = 'throw statement: eol should not be allowed'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expect = 'syntax error'; + +try +{ + eval('throw\n1;'); + actual = 'throw ignored'; +} +catch(e) +{ + if (e instanceof SyntaxError) + { + actual = 'syntax error'; + } + else + { + actual = 'no error'; + } +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-256798.js b/js/src/tests/js1_5/Regress/regress-256798.js new file mode 100644 index 000000000..3926c40eb --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-256798.js @@ -0,0 +1,36 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 256798; +var summary = 'regexp zero-width positive lookahead'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var status; + +status = summary + ' ' + inSection(1); +expect = 'aaaa,a'; +actual = /(?:(a)+)/.exec("baaaa") + ''; +reportCompare(expect, actual, status); + +status = summary + ' ' + inSection(2); +expect = ',aaa'; +actual = /(?=(a+))/.exec("baaabac") + ''; +reportCompare(expect, actual, status); + +status = summary + ' ' + inSection(3); +expect = 'b,aaa'; +actual = /b(?=(a+))/.exec("baaabac") + ''; +reportCompare(expect, actual, status); + +// XXXbc revisit this +status = summary + ' ' + inSection(4); +expect = 'null'; +actual = /b(?=(b+))/.exec("baaabac") + ''; +reportCompare(expect, actual, status); diff --git a/js/src/tests/js1_5/Regress/regress-259935.js b/js/src/tests/js1_5/Regress/regress-259935.js new file mode 100644 index 000000000..0c8a717ad --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-259935.js @@ -0,0 +1,43 @@ +// |reftest| skip-if(xulRuntime.shell) -- browser only +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 259935; +var summary = 'document.all can be easily detected'; +var actual = ''; +var expect = 'not detected'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +if (typeof document == 'undefined') +{ + document = {}; +} + +function foo() { + this.ie = document.all; +} + +var f = new foo(); + +if (f.ie) { + actual = 'detected'; +} else { + actual = 'not detected'; +} + +reportCompare(expect, actual, summary); + +f = {ie: document.all}; + +if (f.ie) { + actual = 'detected'; +} else { + actual = 'not detected'; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-260541.js b/js/src/tests/js1_5/Regress/regress-260541.js new file mode 100644 index 000000000..fc696ba25 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-260541.js @@ -0,0 +1,21 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +// have not been able to reproduce the crash in any build. +var BUGNUMBER = 260541; +var summary = 'Recursive Error object should not crash'; +var actual = 'Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var myErr = new Error( "Error Text" ); +myErr.name = myErr; + +actual = 'No Crash'; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-261886.js b/js/src/tests/js1_5/Regress/regress-261886.js new file mode 100644 index 000000000..45fbf27e6 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-261886.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 261886; +var summary = 'Always evaluate delete operand expression'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var o = {a:1}; + +expect = 2; +try +{ + delete ++o.a; + actual = o.a; +} +catch(e) +{ + actual = o.a; + summary += ' ' + e; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-261887.js b/js/src/tests/js1_5/Regress/regress-261887.js new file mode 100644 index 000000000..28e393928 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-261887.js @@ -0,0 +1,37 @@ +// |reftest| skip -- we violate the spec here with our new iterators +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +// testcase from Oscar Fogelberg +var BUGNUMBER = 261887; +var summary = 'deleted properties should not be visited by for in'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var count = 0; +var result = ""; +var value = ""; + +var t = new Object(); +t.one = "one"; +t.two = "two"; +t.three = "three"; +t.four = "four"; + +for (var prop in t) { + if (count==1) delete(t.three); + count++; + value = value + t[prop]; + result = result + prop; +} + +expect = 'onetwofour:onetwofour'; +actual = value + ':' + result; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-271716-n.js b/js/src/tests/js1_5/Regress/regress-271716-n.js new file mode 100644 index 000000000..f936d3081 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-271716-n.js @@ -0,0 +1,27 @@ +// |reftest| skip -- never terminates +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 271716; +var summary = 'Don\'t Crash on infinite loop creating new Arrays'; +var actual = 'Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + a = new Array(); + while (1) a = new Array(a); + actual = 'No Crash'; +} +catch(e) +{ + actual = 'No Crash'; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-274035.js b/js/src/tests/js1_5/Regress/regress-274035.js new file mode 100644 index 000000000..00fcb1a04 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-274035.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 274035; +var summary = 'Array.prototype[concat|slice|splice] lengths'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +status = summary + ' ' + inSection(1) + ' Array.prototype.concat.length '; +expect = 1; +actual = Array.prototype.concat.length; +reportCompare(expect, actual, status); + +status = summary + ' ' + inSection(2) + ' Array.prototype.slice.length '; +expect = 2; +actual = Array.prototype.slice.length; +reportCompare(expect, actual, status); + +status = summary + ' ' + inSection(3) + ' Array.prototype.splice.length '; +expect = 2; +actual = Array.prototype.splice.length; +reportCompare(expect, actual, status); + diff --git a/js/src/tests/js1_5/Regress/regress-274888.js b/js/src/tests/js1_5/Regress/regress-274888.js new file mode 100644 index 000000000..1b59b3ea3 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-274888.js @@ -0,0 +1,39 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 274888; +var summary = 'Negative lookahead should match at positions > approx. 64k'; +var actual = ''; +var expect = ''; + +enterFunc ('test'); +printBugNumber(BUGNUMBER); +printStatus (summary); + +var re; +var status; +var s; + +re = /(?!\d)a/; +status = summary + ' ' + inSection(1) + ' /(?!\\d)a/.text("12345a")'; +s = '12345a'; + +expect = true; +actual = re.test(s); + +reportCompare(expect, actual, status); + +re = /(?!\d)a/; +status = summary + ' ' + inSection(2) + ' ' + '/(?!\\d)a/.text("1...ka")'; +s = '1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329a'; + +expect = true; +actual = re.test(s); + +reportCompare(expect, actual, status); + +exitFunc ('test'); + diff --git a/js/src/tests/js1_5/Regress/regress-275378.js b/js/src/tests/js1_5/Regress/regress-275378.js new file mode 100644 index 000000000..3c6999804 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-275378.js @@ -0,0 +1,47 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +// testcase by Martin Zvieger +// if fails, will fail to run in browser due to syntax error +var BUGNUMBER = 275378; +var summary = 'Literal RegExp in case block should not give syntax error'; +var actual = ''; +var expect = ''; + +var status; + +printBugNumber(BUGNUMBER); +printStatus (summary); + + +var tmpString= "XYZ"; +// works +/ABC/.test(tmpString); +var tmpVal= 1; +if (tmpVal == 1) +{ + // works + /ABC/.test(tmpString); +} +switch(tmpVal) +{ +case 1: +{ + // works + /ABC/.test(tmpString); +} +break; +} +switch(tmpVal) +{ +case 1: + // fails with syntax error + /ABC/.test(tmpString); + break; +} + +expect = actual = 'no error'; +reportCompare(expect, actual, status); diff --git a/js/src/tests/js1_5/Regress/regress-276103.js b/js/src/tests/js1_5/Regress/regress-276103.js new file mode 100644 index 000000000..1242b5964 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-276103.js @@ -0,0 +1,26 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +// testcase by Gianugo Rabellino +var BUGNUMBER = 276103; +var summary = 'link foo and null bytes'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + + +var testString = "test|string"; +var idx = testString.indexOf("|"); +var link = testString.substring(0, idx); +var desc = testString.substring(idx + 1); + +expect = '
string'; +actual = desc.link(link); + +reportCompare(expect, actual, summary); + diff --git a/js/src/tests/js1_5/Regress/regress-278873.js b/js/src/tests/js1_5/Regress/regress-278873.js new file mode 100644 index 000000000..74215a2cc --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-278873.js @@ -0,0 +1,27 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +// testcase by Philipp Vogt +var BUGNUMBER = 278873; +var summary = 'Don\'t Crash'; +var actual = 'Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function SwitchTest( input) { + switch ( input ) { + default: break; + case A: break; + } +} + +printStatus(SwitchTest + ''); + +actual = 'No Crash'; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-280769-1.js b/js/src/tests/js1_5/Regress/regress-280769-1.js new file mode 100644 index 000000000..d17e0997d --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-280769-1.js @@ -0,0 +1,27 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 280769; +var summary = 'Do not crash on overflow of 64K boundary of [] offset in regexp search string '; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +status = summary + ' ' + inSection(1) + ' (new RegExp("zzz...[AB]").exec("zzz...A") '; + +var N = 100 * 1000; // N should be more then 64K +var a = new Array(N + 1); +var prefix = a.join("z"); // prefix is sequence of N "z", zzz...zzz +var str = prefix+"[AB]"; // str is zzz...zzz[AB] +var re = new RegExp(str); +try { + re.exec(prefix+"A"); + reportCompare(expect, actual, status); +} catch (e) { + reportCompare(true, e instanceof Error, actual, status); +} diff --git a/js/src/tests/js1_5/Regress/regress-280769-2.js b/js/src/tests/js1_5/Regress/regress-280769-2.js new file mode 100644 index 000000000..78855a143 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-280769-2.js @@ -0,0 +1,44 @@ +// |reftest| skip-if(Android) silentfail +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 280769; +var summary = 'Do not overflow 64K boundary in treeDepth'; +var actual = 'No Crash'; +var expect = /No Crash|InternalError: allocation size overflow/; +var status; +var result; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expectExitCode(0); +expectExitCode(5); + +status = summary + ' ' + inSection(1) + ' (new RegExp("0|...|99999") '; + +try +{ + var N = 100 * 1000; + var a = new Array(N); + for (var i = 0; i != N; ++i) { + a[i] = i; + } + var str = a.join('|'); // str is 0|1|2|3|...| + var re = new RegExp(str); + re.exec(N - 1); +} +catch(ex) +{ + actual = ex + ''; +} + +print('Done: ' + actual); + +reportMatch(expect, actual, summary); + + + diff --git a/js/src/tests/js1_5/Regress/regress-280769-3.js b/js/src/tests/js1_5/Regress/regress-280769-3.js new file mode 100644 index 000000000..23d5c2e51 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-280769-3.js @@ -0,0 +1,45 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 280769; +var summary = 'Do not crash on overflow of 64K boundary in number of classes in regexp'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var N = 100 * 1000; + +status = summary + ' ' + inSection(3) + ' (new RegExp("[0][1]...[99999]").exec("") '; + +var a = new Array(N); + +for (var i = 0; i != N; ++i) { + a[i] = i; +} + +var str = '['+a.join('][')+']'; // str is [0][1][2]...[] + +try +{ + var re = new RegExp(str); +} +catch(e) +{ + printStatus('Exception creating RegExp: ' + e); +} + +try +{ + re.exec(''); +} +catch(e) +{ + printStatus('Exception executing RegExp: ' + e); +} + +reportCompare(expect, actual, status); diff --git a/js/src/tests/js1_5/Regress/regress-280769-4.js b/js/src/tests/js1_5/Regress/regress-280769-4.js new file mode 100644 index 000000000..eefc6db2c --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-280769-4.js @@ -0,0 +1,47 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 280769; +var summary = 'Do not overflow 64K length of char sequence in RegExp []'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + + +var N = 20 * 1000; // It should be that N*6 > 64K and N < 32K + +var prefixes = ["000", "00", "0"]; + +function to_4_hex(i) +{ + var printed = i.toString(16); + if (printed.length < 4) { + printed= prefixes[printed.length - 1]+printed; + } + return printed; + +} + +var a = new Array(N); +for (var i = 0; i != N; ++i) { + a[i] = to_4_hex(2*i); +} + +var str = '[\\u'+a.join('\\u')+']'; +// str is [\u0000\u0002\u0004...\u] + +var re = new RegExp(str); + +var string_to_match = String.fromCharCode(2 * (N - 1)); + +var value = re.exec(string_to_match); + +var expect = string_to_match; +var actual = value ? value[0] : value; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-280769-5.js b/js/src/tests/js1_5/Regress/regress-280769-5.js new file mode 100644 index 000000000..930583a07 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-280769-5.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 280769; +var summary = 'Do not overflow 64K string offset'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var N = 100 * 1000; + +var prefix = new Array(N).join("a"); // prefix is sequence of N "a" + +var suffix = "111"; + +var re = new RegExp(prefix+"0?"+suffix); // re is /aaa...aaa0?111/ + +var str_to_match = prefix+suffix; // str_to_match is "aaa...aaa111" + +try { + var index = str_to_match.search(re); + + expect = 0; + actual = index; + + reportCompare(expect, actual, summary); +} catch (e) { + reportCompare(true, e instanceof Error, actual, summary); +} diff --git a/js/src/tests/js1_5/Regress/regress-280769.js b/js/src/tests/js1_5/Regress/regress-280769.js new file mode 100644 index 000000000..44873cf83 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-280769.js @@ -0,0 +1,39 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 280769; +var summary = 'Do not crash on overflow of 32K boundary in regexp bytecode jump offset'; +var actual = 'No Crash'; +var expect = 'No Crash'; +var status; +var result; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +status = summary + ' ' + inSection(1) + ' /1|...|6779/.exec("6777") '; + +var re = /1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116|117|118|119|120|121|122|123|124|125|126|127|128|129|130|131|132|133|134|135|136|137|138|139|140|141|142|143|144|145|146|147|148|149|150|151|152|153|154|155|156|157|158|159|160|161|162|163|164|165|166|167|168|169|170|171|172|173|174|175|176|177|178|179|180|181|182|183|184|185|186|187|188|189|190|191|192|193|194|195|196|197|198|199|200|201|202|203|204|205|206|207|208|209|210|211|212|213|214|215|216|217|218|219|220|221|222|223|224|225|226|227|228|229|230|231|232|233|234|235|236|237|238|239|240|241|242|243|244|245|246|247|248|249|250|251|252|253|254|255|256|257|258|259|260|261|262|263|264|265|266|267|268|269|270|271|272|273|274|275|276|277|278|279|280|281|282|283|284|285|286|287|288|289|290|291|292|293|294|295|296|297|298|299|300|301|302|303|304|305|306|307|308|309|310|311|312|313|314|315|316|317|318|319|320|321|322|323|324|325|326|327|328|329|330|331|332|333|334|335|336|337|338|339|340|341|342|343|344|345|346|347|348|349|350|351|352|353|354|355|356|357|358|359|360|361|362|363|364|365|366|367|368|369|370|371|372|373|374|375|376|377|378|379|380|381|382|383|384|385|386|387|388|389|390|391|392|393|394|395|396|397|398|399|400|401|402|403|404|405|406|407|408|409|410|411|412|413|414|415|416|417|418|419|420|421|422|423|424|425|426|427|428|429|430|431|432|433|434|435|436|437|438|439|440|441|442|443|444|445|446|447|448|449|450|451|452|453|454|455|456|457|458|459|460|461|462|463|464|465|466|467|468|469|470|471|472|473|474|475|476|477|478|479|480|481|482|483|484|485|486|487|488|489|490|491|492|493|494|495|496|497|498|499|500|501|502|503|504|505|506|507|508|509|510|511|512|513|514|515|516|517|518|519|520|521|522|523|524|525|526|527|528|529|530|531|532|533|534|535|536|537|538|539|540|541|542|543|544|545|546|547|548|549|550|551|552|553|554|555|556|557|558|559|560|561|562|563|564|565|566|567|568|569|570|571|572|573|574|575|576|577|578|579|580|581|582|583|584|585|586|587|588|589|590|591|592|593|594|595|596|597|598|599|600|601|602|603|604|605|606|607|608|609|610|611|612|613|614|615|616|617|618|619|620|621|622|623|624|625|626|627|628|629|630|631|632|633|634|635|636|637|638|639|640|641|642|643|644|645|646|647|648|649|650|651|652|653|654|655|656|657|658|659|660|661|662|663|664|665|666|667|668|669|670|671|672|673|674|675|676|677|678|679|680|681|682|683|684|685|686|687|688|689|690|691|692|693|694|695|696|697|698|699|700|701|702|703|704|705|706|707|708|709|710|711|712|713|714|715|716|717|718|719|720|721|722|723|724|725|726|727|728|729|730|731|732|733|734|735|736|737|738|739|740|741|742|743|744|745|746|747|748|749|750|751|752|753|754|755|756|757|758|759|760|761|762|763|764|765|766|767|768|769|770|771|772|773|774|775|776|777|778|779|780|781|782|783|784|785|786|787|788|789|790|791|792|793|794|795|796|797|798|799|800|801|802|803|804|805|806|807|808|809|810|811|812|813|814|815|816|817|818|819|820|821|822|823|824|825|826|827|828|829|830|831|832|833|834|835|836|837|838|839|840|841|842|843|844|845|846|847|848|849|850|851|852|853|854|855|856|857|858|859|860|861|862|863|864|865|866|867|868|869|870|871|872|873|874|875|876|877|878|879|880|881|882|883|884|885|886|887|888|889|890|891|892|893|894|895|896|897|898|899|900|901|902|903|904|905|906|907|908|909|910|911|912|913|914|915|916|917|918|919|920|921|922|923|924|925|926|927|928|929|930|931|932|933|934|935|936|937|938|939|940|941|942|943|944|945|946|947|948|949|950|951|952|953|954|955|956|957|958|959|960|961|962|963|964|965|966|967|968|969|970|971|972|973|974|975|976|977|978|979|980|981|982|983|984|985|986|987|988|989|990|991|992|993|994|995|996|997|998|999|1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010|1011|1012|1013|1014|1015|1016|1017|1018|1019|1020|1021|1022|1023|1024|1025|1026|1027|1028|1029|1030|1031|1032|1033|1034|1035|1036|1037|1038|1039|1040|1041|1042|1043|1044|1045|1046|1047|1048|1049|1050|1051|1052|1053|1054|1055|1056|1057|1058|1059|1060|1061|1062|1063|1064|1065|1066|1067|1068|1069|1070|1071|1072|1073|1074|1075|1076|1077|1078|1079|1080|1081|1082|1083|1084|1085|1086|1087|1088|1089|1090|1091|1092|1093|1094|1095|1096|1097|1098|1099|1100|1101|1102|1103|1104|1105|1106|1107|1108|1109|1110|1111|1112|1113|1114|1115|1116|1117|1118|1119|1120|1121|1122|1123|1124|1125|1126|1127|1128|1129|1130|1131|1132|1133|1134|1135|1136|1137|1138|1139|1140|1141|1142|1143|1144|1145|1146|1147|1148|1149|1150|1151|1152|1153|1154|1155|1156|1157|1158|1159|1160|1161|1162|1163|1164|1165|1166|1167|1168|1169|1170|1171|1172|1173|1174|1175|1176|1177|1178|1179|1180|1181|1182|1183|1184|1185|1186|1187|1188|1189|1190|1191|1192|1193|1194|1195|1196|1197|1198|1199|1200|1201|1202|1203|1204|1205|1206|1207|1208|1209|1210|1211|1212|1213|1214|1215|1216|1217|1218|1219|1220|1221|1222|1223|1224|1225|1226|1227|1228|1229|1230|1231|1232|1233|1234|1235|1236|1237|1238|1239|1240|1241|1242|1243|1244|1245|1246|1247|1248|1249|1250|1251|1252|1253|1254|1255|1256|1257|1258|1259|1260|1261|1262|1263|1264|1265|1266|1267|1268|1269|1270|1271|1272|1273|1274|1275|1276|1277|1278|1279|1280|1281|1282|1283|1284|1285|1286|1287|1288|1289|1290|1291|1292|1293|1294|1295|1296|1297|1298|1299|1300|1301|1302|1303|1304|1305|1306|1307|1308|1309|1310|1311|1312|1313|1314|1315|1316|1317|1318|1319|1320|1321|1322|1323|1324|1325|1326|1327|1328|1329|1330|1331|1332|1333|1334|1335|1336|1337|1338|1339|1340|1341|1342|1343|1344|1345|1346|1347|1348|1349|1350|1351|1352|1353|1354|1355|1356|1357|1358|1359|1360|1361|1362|1363|1364|1365|1366|1367|1368|1369|1370|1371|1372|1373|1374|1375|1376|1377|1378|1379|1380|1381|1382|1383|1384|1385|1386|1387|1388|1389|1390|1391|1392|1393|1394|1395|1396|1397|1398|1399|1400|1401|1402|1403|1404|1405|1406|1407|1408|1409|1410|1411|1412|1413|1414|1415|1416|1417|1418|1419|1420|1421|1422|1423|1424|1425|1426|1427|1428|1429|1430|1431|1432|1433|1434|1435|1436|1437|1438|1439|1440|1441|1442|1443|1444|1445|1446|1447|1448|1449|1450|1451|1452|1453|1454|1455|1456|1457|1458|1459|1460|1461|1462|1463|1464|1465|1466|1467|1468|1469|1470|1471|1472|1473|1474|1475|1476|1477|1478|1479|1480|1481|1482|1483|1484|1485|1486|1487|1488|1489|1490|1491|1492|1493|1494|1495|1496|1497|1498|1499|1500|1501|1502|1503|1504|1505|1506|1507|1508|1509|1510|1511|1512|1513|1514|1515|1516|1517|1518|1519|1520|1521|1522|1523|1524|1525|1526|1527|1528|1529|1530|1531|1532|1533|1534|1535|1536|1537|1538|1539|1540|1541|1542|1543|1544|1545|1546|1547|1548|1549|1550|1551|1552|1553|1554|1555|1556|1557|1558|1559|1560|1561|1562|1563|1564|1565|1566|1567|1568|1569|1570|1571|1572|1573|1574|1575|1576|1577|1578|1579|1580|1581|1582|1583|1584|1585|1586|1587|1588|1589|1590|1591|1592|1593|1594|1595|1596|1597|1598|1599|1600|1601|1602|1603|1604|1605|1606|1607|1608|1609|1610|1611|1612|1613|1614|1615|1616|1617|1618|1619|1620|1621|1622|1623|1624|1625|1626|1627|1628|1629|1630|1631|1632|1633|1634|1635|1636|1637|1638|1639|1640|1641|1642|1643|1644|1645|1646|1647|1648|1649|1650|1651|1652|1653|1654|1655|1656|1657|1658|1659|1660|1661|1662|1663|1664|1665|1666|1667|1668|1669|1670|1671|1672|1673|1674|1675|1676|1677|1678|1679|1680|1681|1682|1683|1684|1685|1686|1687|1688|1689|1690|1691|1692|1693|1694|1695|1696|1697|1698|1699|1700|1701|1702|1703|1704|1705|1706|1707|1708|1709|1710|1711|1712|1713|1714|1715|1716|1717|1718|1719|1720|1721|1722|1723|1724|1725|1726|1727|1728|1729|1730|1731|1732|1733|1734|1735|1736|1737|1738|1739|1740|1741|1742|1743|1744|1745|1746|1747|1748|1749|1750|1751|1752|1753|1754|1755|1756|1757|1758|1759|1760|1761|1762|1763|1764|1765|1766|1767|1768|1769|1770|1771|1772|1773|1774|1775|1776|1777|1778|1779|1780|1781|1782|1783|1784|1785|1786|1787|1788|1789|1790|1791|1792|1793|1794|1795|1796|1797|1798|1799|1800|1801|1802|1803|1804|1805|1806|1807|1808|1809|1810|1811|1812|1813|1814|1815|1816|1817|1818|1819|1820|1821|1822|1823|1824|1825|1826|1827|1828|1829|1830|1831|1832|1833|1834|1835|1836|1837|1838|1839|1840|1841|1842|1843|1844|1845|1846|1847|1848|1849|1850|1851|1852|1853|1854|1855|1856|1857|1858|1859|1860|1861|1862|1863|1864|1865|1866|1867|1868|1869|1870|1871|1872|1873|1874|1875|1876|1877|1878|1879|1880|1881|1882|1883|1884|1885|1886|1887|1888|1889|1890|1891|1892|1893|1894|1895|1896|1897|1898|1899|1900|1901|1902|1903|1904|1905|1906|1907|1908|1909|1910|1911|1912|1913|1914|1915|1916|1917|1918|1919|1920|1921|1922|1923|1924|1925|1926|1927|1928|1929|1930|1931|1932|1933|1934|1935|1936|1937|1938|1939|1940|1941|1942|1943|1944|1945|1946|1947|1948|1949|1950|1951|1952|1953|1954|1955|1956|1957|1958|1959|1960|1961|1962|1963|1964|1965|1966|1967|1968|1969|1970|1971|1972|1973|1974|1975|1976|1977|1978|1979|1980|1981|1982|1983|1984|1985|1986|1987|1988|1989|1990|1991|1992|1993|1994|1995|1996|1997|1998|1999|2000|2001|2002|2003|2004|2005|2006|2007|2008|2009|2010|2011|2012|2013|2014|2015|2016|2017|2018|2019|2020|2021|2022|2023|2024|2025|2026|2027|2028|2029|2030|2031|2032|2033|2034|2035|2036|2037|2038|2039|2040|2041|2042|2043|2044|2045|2046|2047|2048|2049|2050|2051|2052|2053|2054|2055|2056|2057|2058|2059|2060|2061|2062|2063|2064|2065|2066|2067|2068|2069|2070|2071|2072|2073|2074|2075|2076|2077|2078|2079|2080|2081|2082|2083|2084|2085|2086|2087|2088|2089|2090|2091|2092|2093|2094|2095|2096|2097|2098|2099|2100|2101|2102|2103|2104|2105|2106|2107|2108|2109|2110|2111|2112|2113|2114|2115|2116|2117|2118|2119|2120|2121|2122|2123|2124|2125|2126|2127|2128|2129|2130|2131|2132|2133|2134|2135|2136|2137|2138|2139|2140|2141|2142|2143|2144|2145|2146|2147|2148|2149|2150|2151|2152|2153|2154|2155|2156|2157|2158|2159|2160|2161|2162|2163|2164|2165|2166|2167|2168|2169|2170|2171|2172|2173|2174|2175|2176|2177|2178|2179|2180|2181|2182|2183|2184|2185|2186|2187|2188|2189|2190|2191|2192|2193|2194|2195|2196|2197|2198|2199|2200|2201|2202|2203|2204|2205|2206|2207|2208|2209|2210|2211|2212|2213|2214|2215|2216|2217|2218|2219|2220|2221|2222|2223|2224|2225|2226|2227|2228|2229|2230|2231|2232|2233|2234|2235|2236|2237|2238|2239|2240|2241|2242|2243|2244|2245|2246|2247|2248|2249|2250|2251|2252|2253|2254|2255|2256|2257|2258|2259|2260|2261|2262|2263|2264|2265|2266|2267|2268|2269|2270|2271|2272|2273|2274|2275|2276|2277|2278|2279|2280|2281|2282|2283|2284|2285|2286|2287|2288|2289|2290|2291|2292|2293|2294|2295|2296|2297|2298|2299|2300|2301|2302|2303|2304|2305|2306|2307|2308|2309|2310|2311|2312|2313|2314|2315|2316|2317|2318|2319|2320|2321|2322|2323|2324|2325|2326|2327|2328|2329|2330|2331|2332|2333|2334|2335|2336|2337|2338|2339|2340|2341|2342|2343|2344|2345|2346|2347|2348|2349|2350|2351|2352|2353|2354|2355|2356|2357|2358|2359|2360|2361|2362|2363|2364|2365|2366|2367|2368|2369|2370|2371|2372|2373|2374|2375|2376|2377|2378|2379|2380|2381|2382|2383|2384|2385|2386|2387|2388|2389|2390|2391|2392|2393|2394|2395|2396|2397|2398|2399|2400|2401|2402|2403|2404|2405|2406|2407|2408|2409|2410|2411|2412|2413|2414|2415|2416|2417|2418|2419|2420|2421|2422|2423|2424|2425|2426|2427|2428|2429|2430|2431|2432|2433|2434|2435|2436|2437|2438|2439|2440|2441|2442|2443|2444|2445|2446|2447|2448|2449|2450|2451|2452|2453|2454|2455|2456|2457|2458|2459|2460|2461|2462|2463|2464|2465|2466|2467|2468|2469|2470|2471|2472|2473|2474|2475|2476|2477|2478|2479|2480|2481|2482|2483|2484|2485|2486|2487|2488|2489|2490|2491|2492|2493|2494|2495|2496|2497|2498|2499|2500|2501|2502|2503|2504|2505|2506|2507|2508|2509|2510|2511|2512|2513|2514|2515|2516|2517|2518|2519|2520|2521|2522|2523|2524|2525|2526|2527|2528|2529|2530|2531|2532|2533|2534|2535|2536|2537|2538|2539|2540|2541|2542|2543|2544|2545|2546|2547|2548|2549|2550|2551|2552|2553|2554|2555|2556|2557|2558|2559|2560|2561|2562|2563|2564|2565|2566|2567|2568|2569|2570|2571|2572|2573|2574|2575|2576|2577|2578|2579|2580|2581|2582|2583|2584|2585|2586|2587|2588|2589|2590|2591|2592|2593|2594|2595|2596|2597|2598|2599|2600|2601|2602|2603|2604|2605|2606|2607|2608|2609|2610|2611|2612|2613|2614|2615|2616|2617|2618|2619|2620|2621|2622|2623|2624|2625|2626|2627|2628|2629|2630|2631|2632|2633|2634|2635|2636|2637|2638|2639|2640|2641|2642|2643|2644|2645|2646|2647|2648|2649|2650|2651|2652|2653|2654|2655|2656|2657|2658|2659|2660|2661|2662|2663|2664|2665|2666|2667|2668|2669|2670|2671|2672|2673|2674|2675|2676|2677|2678|2679|2680|2681|2682|2683|2684|2685|2686|2687|2688|2689|2690|2691|2692|2693|2694|2695|2696|2697|2698|2699|2700|2701|2702|2703|2704|2705|2706|2707|2708|2709|2710|2711|2712|2713|2714|2715|2716|2717|2718|2719|2720|2721|2722|2723|2724|2725|2726|2727|2728|2729|2730|2731|2732|2733|2734|2735|2736|2737|2738|2739|2740|2741|2742|2743|2744|2745|2746|2747|2748|2749|2750|2751|2752|2753|2754|2755|2756|2757|2758|2759|2760|2761|2762|2763|2764|2765|2766|2767|2768|2769|2770|2771|2772|2773|2774|2775|2776|2777|2778|2779|2780|2781|2782|2783|2784|2785|2786|2787|2788|2789|2790|2791|2792|2793|2794|2795|2796|2797|2798|2799|2800|2801|2802|2803|2804|2805|2806|2807|2808|2809|2810|2811|2812|2813|2814|2815|2816|2817|2818|2819|2820|2821|2822|2823|2824|2825|2826|2827|2828|2829|2830|2831|2832|2833|2834|2835|2836|2837|2838|2839|2840|2841|2842|2843|2844|2845|2846|2847|2848|2849|2850|2851|2852|2853|2854|2855|2856|2857|2858|2859|2860|2861|2862|2863|2864|2865|2866|2867|2868|2869|2870|2871|2872|2873|2874|2875|2876|2877|2878|2879|2880|2881|2882|2883|2884|2885|2886|2887|2888|2889|2890|2891|2892|2893|2894|2895|2896|2897|2898|2899|2900|2901|2902|2903|2904|2905|2906|2907|2908|2909|2910|2911|2912|2913|2914|2915|2916|2917|2918|2919|2920|2921|2922|2923|2924|2925|2926|2927|2928|2929|2930|2931|2932|2933|2934|2935|2936|2937|2938|2939|2940|2941|2942|2943|2944|2945|2946|2947|2948|2949|2950|2951|2952|2953|2954|2955|2956|2957|2958|2959|2960|2961|2962|2963|2964|2965|2966|2967|2968|2969|2970|2971|2972|2973|2974|2975|2976|2977|2978|2979|2980|2981|2982|2983|2984|2985|2986|2987|2988|2989|2990|2991|2992|2993|2994|2995|2996|2997|2998|2999|3000|3001|3002|3003|3004|3005|3006|3007|3008|3009|3010|3011|3012|3013|3014|3015|3016|3017|3018|3019|3020|3021|3022|3023|3024|3025|3026|3027|3028|3029|3030|3031|3032|3033|3034|3035|3036|3037|3038|3039|3040|3041|3042|3043|3044|3045|3046|3047|3048|3049|3050|3051|3052|3053|3054|3055|3056|3057|3058|3059|3060|3061|3062|3063|3064|3065|3066|3067|3068|3069|3070|3071|3072|3073|3074|3075|3076|3077|3078|3079|3080|3081|3082|3083|3084|3085|3086|3087|3088|3089|3090|3091|3092|3093|3094|3095|3096|3097|3098|3099|3100|3101|3102|3103|3104|3105|3106|3107|3108|3109|3110|3111|3112|3113|3114|3115|3116|3117|3118|3119|3120|3121|3122|3123|3124|3125|3126|3127|3128|3129|3130|3131|3132|3133|3134|3135|3136|3137|3138|3139|3140|3141|3142|3143|3144|3145|3146|3147|3148|3149|3150|3151|3152|3153|3154|3155|3156|3157|3158|3159|3160|3161|3162|3163|3164|3165|3166|3167|3168|3169|3170|3171|3172|3173|3174|3175|3176|3177|3178|3179|3180|3181|3182|3183|3184|3185|3186|3187|3188|3189|3190|3191|3192|3193|3194|3195|3196|3197|3198|3199|3200|3201|3202|3203|3204|3205|3206|3207|3208|3209|3210|3211|3212|3213|3214|3215|3216|3217|3218|3219|3220|3221|3222|3223|3224|3225|3226|3227|3228|3229|3230|3231|3232|3233|3234|3235|3236|3237|3238|3239|3240|3241|3242|3243|3244|3245|3246|3247|3248|3249|3250|3251|3252|3253|3254|3255|3256|3257|3258|3259|3260|3261|3262|3263|3264|3265|3266|3267|3268|3269|3270|3271|3272|3273|3274|3275|3276|3277|3278|3279|3280|3281|3282|3283|3284|3285|3286|3287|3288|3289|3290|3291|3292|3293|3294|3295|3296|3297|3298|3299|3300|3301|3302|3303|3304|3305|3306|3307|3308|3309|3310|3311|3312|3313|3314|3315|3316|3317|3318|3319|3320|3321|3322|3323|3324|3325|3326|3327|3328|3329|3330|3331|3332|3333|3334|3335|3336|3337|3338|3339|3340|3341|3342|3343|3344|3345|3346|3347|3348|3349|3350|3351|3352|3353|3354|3355|3356|3357|3358|3359|3360|3361|3362|3363|3364|3365|3366|3367|3368|3369|3370|3371|3372|3373|3374|3375|3376|3377|3378|3379|3380|3381|3382|3383|3384|3385|3386|3387|3388|3389|3390|3391|3392|3393|3394|3395|3396|3397|3398|3399|3400|3401|3402|3403|3404|3405|3406|3407|3408|3409|3410|3411|3412|3413|3414|3415|3416|3417|3418|3419|3420|3421|3422|3423|3424|3425|3426|3427|3428|3429|3430|3431|3432|3433|3434|3435|3436|3437|3438|3439|3440|3441|3442|3443|3444|3445|3446|3447|3448|3449|3450|3451|3452|3453|3454|3455|3456|3457|3458|3459|3460|3461|3462|3463|3464|3465|3466|3467|3468|3469|3470|3471|3472|3473|3474|3475|3476|3477|3478|3479|3480|3481|3482|3483|3484|3485|3486|3487|3488|3489|3490|3491|3492|3493|3494|3495|3496|3497|3498|3499|3500|3501|3502|3503|3504|3505|3506|3507|3508|3509|3510|3511|3512|3513|3514|3515|3516|3517|3518|3519|3520|3521|3522|3523|3524|3525|3526|3527|3528|3529|3530|3531|3532|3533|3534|3535|3536|3537|3538|3539|3540|3541|3542|3543|3544|3545|3546|3547|3548|3549|3550|3551|3552|3553|3554|3555|3556|3557|3558|3559|3560|3561|3562|3563|3564|3565|3566|3567|3568|3569|3570|3571|3572|3573|3574|3575|3576|3577|3578|3579|3580|3581|3582|3583|3584|3585|3586|3587|3588|3589|3590|3591|3592|3593|3594|3595|3596|3597|3598|3599|3600|3601|3602|3603|3604|3605|3606|3607|3608|3609|3610|3611|3612|3613|3614|3615|3616|3617|3618|3619|3620|3621|3622|3623|3624|3625|3626|3627|3628|3629|3630|3631|3632|3633|3634|3635|3636|3637|3638|3639|3640|3641|3642|3643|3644|3645|3646|3647|3648|3649|3650|3651|3652|3653|3654|3655|3656|3657|3658|3659|3660|3661|3662|3663|3664|3665|3666|3667|3668|3669|3670|3671|3672|3673|3674|3675|3676|3677|3678|3679|3680|3681|3682|3683|3684|3685|3686|3687|3688|3689|3690|3691|3692|3693|3694|3695|3696|3697|3698|3699|3700|3701|3702|3703|3704|3705|3706|3707|3708|3709|3710|3711|3712|3713|3714|3715|3716|3717|3718|3719|3720|3721|3722|3723|3724|3725|3726|3727|3728|3729|3730|3731|3732|3733|3734|3735|3736|3737|3738|3739|3740|3741|3742|3743|3744|3745|3746|3747|3748|3749|3750|3751|3752|3753|3754|3755|3756|3757|3758|3759|3760|3761|3762|3763|3764|3765|3766|3767|3768|3769|3770|3771|3772|3773|3774|3775|3776|3777|3778|3779|3780|3781|3782|3783|3784|3785|3786|3787|3788|3789|3790|3791|3792|3793|3794|3795|3796|3797|3798|3799|3800|3801|3802|3803|3804|3805|3806|3807|3808|3809|3810|3811|3812|3813|3814|3815|3816|3817|3818|3819|3820|3821|3822|3823|3824|3825|3826|3827|3828|3829|3830|3831|3832|3833|3834|3835|3836|3837|3838|3839|3840|3841|3842|3843|3844|3845|3846|3847|3848|3849|3850|3851|3852|3853|3854|3855|3856|3857|3858|3859|3860|3861|3862|3863|3864|3865|3866|3867|3868|3869|3870|3871|3872|3873|3874|3875|3876|3877|3878|3879|3880|3881|3882|3883|3884|3885|3886|3887|3888|3889|3890|3891|3892|3893|3894|3895|3896|3897|3898|3899|3900|3901|3902|3903|3904|3905|3906|3907|3908|3909|3910|3911|3912|3913|3914|3915|3916|3917|3918|3919|3920|3921|3922|3923|3924|3925|3926|3927|3928|3929|3930|3931|3932|3933|3934|3935|3936|3937|3938|3939|3940|3941|3942|3943|3944|3945|3946|3947|3948|3949|3950|3951|3952|3953|3954|3955|3956|3957|3958|3959|3960|3961|3962|3963|3964|3965|3966|3967|3968|3969|3970|3971|3972|3973|3974|3975|3976|3977|3978|3979|3980|3981|3982|3983|3984|3985|3986|3987|3988|3989|3990|3991|3992|3993|3994|3995|3996|3997|3998|3999|4000|4001|4002|4003|4004|4005|4006|4007|4008|4009|4010|4011|4012|4013|4014|4015|4016|4017|4018|4019|4020|4021|4022|4023|4024|4025|4026|4027|4028|4029|4030|4031|4032|4033|4034|4035|4036|4037|4038|4039|4040|4041|4042|4043|4044|4045|4046|4047|4048|4049|4050|4051|4052|4053|4054|4055|4056|4057|4058|4059|4060|4061|4062|4063|4064|4065|4066|4067|4068|4069|4070|4071|4072|4073|4074|4075|4076|4077|4078|4079|4080|4081|4082|4083|4084|4085|4086|4087|4088|4089|4090|4091|4092|4093|4094|4095|4096|4097|4098|4099|4100|4101|4102|4103|4104|4105|4106|4107|4108|4109|4110|4111|4112|4113|4114|4115|4116|4117|4118|4119|4120|4121|4122|4123|4124|4125|4126|4127|4128|4129|4130|4131|4132|4133|4134|4135|4136|4137|4138|4139|4140|4141|4142|4143|4144|4145|4146|4147|4148|4149|4150|4151|4152|4153|4154|4155|4156|4157|4158|4159|4160|4161|4162|4163|4164|4165|4166|4167|4168|4169|4170|4171|4172|4173|4174|4175|4176|4177|4178|4179|4180|4181|4182|4183|4184|4185|4186|4187|4188|4189|4190|4191|4192|4193|4194|4195|4196|4197|4198|4199|4200|4201|4202|4203|4204|4205|4206|4207|4208|4209|4210|4211|4212|4213|4214|4215|4216|4217|4218|4219|4220|4221|4222|4223|4224|4225|4226|4227|4228|4229|4230|4231|4232|4233|4234|4235|4236|4237|4238|4239|4240|4241|4242|4243|4244|4245|4246|4247|4248|4249|4250|4251|4252|4253|4254|4255|4256|4257|4258|4259|4260|4261|4262|4263|4264|4265|4266|4267|4268|4269|4270|4271|4272|4273|4274|4275|4276|4277|4278|4279|4280|4281|4282|4283|4284|4285|4286|4287|4288|4289|4290|4291|4292|4293|4294|4295|4296|4297|4298|4299|4300|4301|4302|4303|4304|4305|4306|4307|4308|4309|4310|4311|4312|4313|4314|4315|4316|4317|4318|4319|4320|4321|4322|4323|4324|4325|4326|4327|4328|4329|4330|4331|4332|4333|4334|4335|4336|4337|4338|4339|4340|4341|4342|4343|4344|4345|4346|4347|4348|4349|4350|4351|4352|4353|4354|4355|4356|4357|4358|4359|4360|4361|4362|4363|4364|4365|4366|4367|4368|4369|4370|4371|4372|4373|4374|4375|4376|4377|4378|4379|4380|4381|4382|4383|4384|4385|4386|4387|4388|4389|4390|4391|4392|4393|4394|4395|4396|4397|4398|4399|4400|4401|4402|4403|4404|4405|4406|4407|4408|4409|4410|4411|4412|4413|4414|4415|4416|4417|4418|4419|4420|4421|4422|4423|4424|4425|4426|4427|4428|4429|4430|4431|4432|4433|4434|4435|4436|4437|4438|4439|4440|4441|4442|4443|4444|4445|4446|4447|4448|4449|4450|4451|4452|4453|4454|4455|4456|4457|4458|4459|4460|4461|4462|4463|4464|4465|4466|4467|4468|4469|4470|4471|4472|4473|4474|4475|4476|4477|4478|4479|4480|4481|4482|4483|4484|4485|4486|4487|4488|4489|4490|4491|4492|4493|4494|4495|4496|4497|4498|4499|4500|4501|4502|4503|4504|4505|4506|4507|4508|4509|4510|4511|4512|4513|4514|4515|4516|4517|4518|4519|4520|4521|4522|4523|4524|4525|4526|4527|4528|4529|4530|4531|4532|4533|4534|4535|4536|4537|4538|4539|4540|4541|4542|4543|4544|4545|4546|4547|4548|4549|4550|4551|4552|4553|4554|4555|4556|4557|4558|4559|4560|4561|4562|4563|4564|4565|4566|4567|4568|4569|4570|4571|4572|4573|4574|4575|4576|4577|4578|4579|4580|4581|4582|4583|4584|4585|4586|4587|4588|4589|4590|4591|4592|4593|4594|4595|4596|4597|4598|4599|4600|4601|4602|4603|4604|4605|4606|4607|4608|4609|4610|4611|4612|4613|4614|4615|4616|4617|4618|4619|4620|4621|4622|4623|4624|4625|4626|4627|4628|4629|4630|4631|4632|4633|4634|4635|4636|4637|4638|4639|4640|4641|4642|4643|4644|4645|4646|4647|4648|4649|4650|4651|4652|4653|4654|4655|4656|4657|4658|4659|4660|4661|4662|4663|4664|4665|4666|4667|4668|4669|4670|4671|4672|4673|4674|4675|4676|4677|4678|4679|4680|4681|4682|4683|4684|4685|4686|4687|4688|4689|4690|4691|4692|4693|4694|4695|4696|4697|4698|4699|4700|4701|4702|4703|4704|4705|4706|4707|4708|4709|4710|4711|4712|4713|4714|4715|4716|4717|4718|4719|4720|4721|4722|4723|4724|4725|4726|4727|4728|4729|4730|4731|4732|4733|4734|4735|4736|4737|4738|4739|4740|4741|4742|4743|4744|4745|4746|4747|4748|4749|4750|4751|4752|4753|4754|4755|4756|4757|4758|4759|4760|4761|4762|4763|4764|4765|4766|4767|4768|4769|4770|4771|4772|4773|4774|4775|4776|4777|4778|4779|4780|4781|4782|4783|4784|4785|4786|4787|4788|4789|4790|4791|4792|4793|4794|4795|4796|4797|4798|4799|4800|4801|4802|4803|4804|4805|4806|4807|4808|4809|4810|4811|4812|4813|4814|4815|4816|4817|4818|4819|4820|4821|4822|4823|4824|4825|4826|4827|4828|4829|4830|4831|4832|4833|4834|4835|4836|4837|4838|4839|4840|4841|4842|4843|4844|4845|4846|4847|4848|4849|4850|4851|4852|4853|4854|4855|4856|4857|4858|4859|4860|4861|4862|4863|4864|4865|4866|4867|4868|4869|4870|4871|4872|4873|4874|4875|4876|4877|4878|4879|4880|4881|4882|4883|4884|4885|4886|4887|4888|4889|4890|4891|4892|4893|4894|4895|4896|4897|4898|4899|4900|4901|4902|4903|4904|4905|4906|4907|4908|4909|4910|4911|4912|4913|4914|4915|4916|4917|4918|4919|4920|4921|4922|4923|4924|4925|4926|4927|4928|4929|4930|4931|4932|4933|4934|4935|4936|4937|4938|4939|4940|4941|4942|4943|4944|4945|4946|4947|4948|4949|4950|4951|4952|4953|4954|4955|4956|4957|4958|4959|4960|4961|4962|4963|4964|4965|4966|4967|4968|4969|4970|4971|4972|4973|4974|4975|4976|4977|4978|4979|4980|4981|4982|4983|4984|4985|4986|4987|4988|4989|4990|4991|4992|4993|4994|4995|4996|4997|4998|4999|5000|5001|5002|5003|5004|5005|5006|5007|5008|5009|5010|5011|5012|5013|5014|5015|5016|5017|5018|5019|5020|5021|5022|5023|5024|5025|5026|5027|5028|5029|5030|5031|5032|5033|5034|5035|5036|5037|5038|5039|5040|5041|5042|5043|5044|5045|5046|5047|5048|5049|5050|5051|5052|5053|5054|5055|5056|5057|5058|5059|5060|5061|5062|5063|5064|5065|5066|5067|5068|5069|5070|5071|5072|5073|5074|5075|5076|5077|5078|5079|5080|5081|5082|5083|5084|5085|5086|5087|5088|5089|5090|5091|5092|5093|5094|5095|5096|5097|5098|5099|5100|5101|5102|5103|5104|5105|5106|5107|5108|5109|5110|5111|5112|5113|5114|5115|5116|5117|5118|5119|5120|5121|5122|5123|5124|5125|5126|5127|5128|5129|5130|5131|5132|5133|5134|5135|5136|5137|5138|5139|5140|5141|5142|5143|5144|5145|5146|5147|5148|5149|5150|5151|5152|5153|5154|5155|5156|5157|5158|5159|5160|5161|5162|5163|5164|5165|5166|5167|5168|5169|5170|5171|5172|5173|5174|5175|5176|5177|5178|5179|5180|5181|5182|5183|5184|5185|5186|5187|5188|5189|5190|5191|5192|5193|5194|5195|5196|5197|5198|5199|5200|5201|5202|5203|5204|5205|5206|5207|5208|5209|5210|5211|5212|5213|5214|5215|5216|5217|5218|5219|5220|5221|5222|5223|5224|5225|5226|5227|5228|5229|5230|5231|5232|5233|5234|5235|5236|5237|5238|5239|5240|5241|5242|5243|5244|5245|5246|5247|5248|5249|5250|5251|5252|5253|5254|5255|5256|5257|5258|5259|5260|5261|5262|5263|5264|5265|5266|5267|5268|5269|5270|5271|5272|5273|5274|5275|5276|5277|5278|5279|5280|5281|5282|5283|5284|5285|5286|5287|5288|5289|5290|5291|5292|5293|5294|5295|5296|5297|5298|5299|5300|5301|5302|5303|5304|5305|5306|5307|5308|5309|5310|5311|5312|5313|5314|5315|5316|5317|5318|5319|5320|5321|5322|5323|5324|5325|5326|5327|5328|5329|5330|5331|5332|5333|5334|5335|5336|5337|5338|5339|5340|5341|5342|5343|5344|5345|5346|5347|5348|5349|5350|5351|5352|5353|5354|5355|5356|5357|5358|5359|5360|5361|5362|5363|5364|5365|5366|5367|5368|5369|5370|5371|5372|5373|5374|5375|5376|5377|5378|5379|5380|5381|5382|5383|5384|5385|5386|5387|5388|5389|5390|5391|5392|5393|5394|5395|5396|5397|5398|5399|5400|5401|5402|5403|5404|5405|5406|5407|5408|5409|5410|5411|5412|5413|5414|5415|5416|5417|5418|5419|5420|5421|5422|5423|5424|5425|5426|5427|5428|5429|5430|5431|5432|5433|5434|5435|5436|5437|5438|5439|5440|5441|5442|5443|5444|5445|5446|5447|5448|5449|5450|5451|5452|5453|5454|5455|5456|5457|5458|5459|5460|5461|5462|5463|5464|5465|5466|5467|5468|5469|5470|5471|5472|5473|5474|5475|5476|5477|5478|5479|5480|5481|5482|5483|5484|5485|5486|5487|5488|5489|5490|5491|5492|5493|5494|5495|5496|5497|5498|5499|5500|5501|5502|5503|5504|5505|5506|5507|5508|5509|5510|5511|5512|5513|5514|5515|5516|5517|5518|5519|5520|5521|5522|5523|5524|5525|5526|5527|5528|5529|5530|5531|5532|5533|5534|5535|5536|5537|5538|5539|5540|5541|5542|5543|5544|5545|5546|5547|5548|5549|5550|5551|5552|5553|5554|5555|5556|5557|5558|5559|5560|5561|5562|5563|5564|5565|5566|5567|5568|5569|5570|5571|5572|5573|5574|5575|5576|5577|5578|5579|5580|5581|5582|5583|5584|5585|5586|5587|5588|5589|5590|5591|5592|5593|5594|5595|5596|5597|5598|5599|5600|5601|5602|5603|5604|5605|5606|5607|5608|5609|5610|5611|5612|5613|5614|5615|5616|5617|5618|5619|5620|5621|5622|5623|5624|5625|5626|5627|5628|5629|5630|5631|5632|5633|5634|5635|5636|5637|5638|5639|5640|5641|5642|5643|5644|5645|5646|5647|5648|5649|5650|5651|5652|5653|5654|5655|5656|5657|5658|5659|5660|5661|5662|5663|5664|5665|5666|5667|5668|5669|5670|5671|5672|5673|5674|5675|5676|5677|5678|5679|5680|5681|5682|5683|5684|5685|5686|5687|5688|5689|5690|5691|5692|5693|5694|5695|5696|5697|5698|5699|5700|5701|5702|5703|5704|5705|5706|5707|5708|5709|5710|5711|5712|5713|5714|5715|5716|5717|5718|5719|5720|5721|5722|5723|5724|5725|5726|5727|5728|5729|5730|5731|5732|5733|5734|5735|5736|5737|5738|5739|5740|5741|5742|5743|5744|5745|5746|5747|5748|5749|5750|5751|5752|5753|5754|5755|5756|5757|5758|5759|5760|5761|5762|5763|5764|5765|5766|5767|5768|5769|5770|5771|5772|5773|5774|5775|5776|5777|5778|5779|5780|5781|5782|5783|5784|5785|5786|5787|5788|5789|5790|5791|5792|5793|5794|5795|5796|5797|5798|5799|5800|5801|5802|5803|5804|5805|5806|5807|5808|5809|5810|5811|5812|5813|5814|5815|5816|5817|5818|5819|5820|5821|5822|5823|5824|5825|5826|5827|5828|5829|5830|5831|5832|5833|5834|5835|5836|5837|5838|5839|5840|5841|5842|5843|5844|5845|5846|5847|5848|5849|5850|5851|5852|5853|5854|5855|5856|5857|5858|5859|5860|5861|5862|5863|5864|5865|5866|5867|5868|5869|5870|5871|5872|5873|5874|5875|5876|5877|5878|5879|5880|5881|5882|5883|5884|5885|5886|5887|5888|5889|5890|5891|5892|5893|5894|5895|5896|5897|5898|5899|5900|5901|5902|5903|5904|5905|5906|5907|5908|5909|5910|5911|5912|5913|5914|5915|5916|5917|5918|5919|5920|5921|5922|5923|5924|5925|5926|5927|5928|5929|5930|5931|5932|5933|5934|5935|5936|5937|5938|5939|5940|5941|5942|5943|5944|5945|5946|5947|5948|5949|5950|5951|5952|5953|5954|5955|5956|5957|5958|5959|5960|5961|5962|5963|5964|5965|5966|5967|5968|5969|5970|5971|5972|5973|5974|5975|5976|5977|5978|5979|5980|5981|5982|5983|5984|5985|5986|5987|5988|5989|5990|5991|5992|5993|5994|5995|5996|5997|5998|5999|6000|6001|6002|6003|6004|6005|6006|6007|6008|6009|6010|6011|6012|6013|6014|6015|6016|6017|6018|6019|6020|6021|6022|6023|6024|6025|6026|6027|6028|6029|6030|6031|6032|6033|6034|6035|6036|6037|6038|6039|6040|6041|6042|6043|6044|6045|6046|6047|6048|6049|6050|6051|6052|6053|6054|6055|6056|6057|6058|6059|6060|6061|6062|6063|6064|6065|6066|6067|6068|6069|6070|6071|6072|6073|6074|6075|6076|6077|6078|6079|6080|6081|6082|6083|6084|6085|6086|6087|6088|6089|6090|6091|6092|6093|6094|6095|6096|6097|6098|6099|6100|6101|6102|6103|6104|6105|6106|6107|6108|6109|6110|6111|6112|6113|6114|6115|6116|6117|6118|6119|6120|6121|6122|6123|6124|6125|6126|6127|6128|6129|6130|6131|6132|6133|6134|6135|6136|6137|6138|6139|6140|6141|6142|6143|6144|6145|6146|6147|6148|6149|6150|6151|6152|6153|6154|6155|6156|6157|6158|6159|6160|6161|6162|6163|6164|6165|6166|6167|6168|6169|6170|6171|6172|6173|6174|6175|6176|6177|6178|6179|6180|6181|6182|6183|6184|6185|6186|6187|6188|6189|6190|6191|6192|6193|6194|6195|6196|6197|6198|6199|6200|6201|6202|6203|6204|6205|6206|6207|6208|6209|6210|6211|6212|6213|6214|6215|6216|6217|6218|6219|6220|6221|6222|6223|6224|6225|6226|6227|6228|6229|6230|6231|6232|6233|6234|6235|6236|6237|6238|6239|6240|6241|6242|6243|6244|6245|6246|6247|6248|6249|6250|6251|6252|6253|6254|6255|6256|6257|6258|6259|6260|6261|6262|6263|6264|6265|6266|6267|6268|6269|6270|6271|6272|6273|6274|6275|6276|6277|6278|6279|6280|6281|6282|6283|6284|6285|6286|6287|6288|6289|6290|6291|6292|6293|6294|6295|6296|6297|6298|6299|6300|6301|6302|6303|6304|6305|6306|6307|6308|6309|6310|6311|6312|6313|6314|6315|6316|6317|6318|6319|6320|6321|6322|6323|6324|6325|6326|6327|6328|6329|6330|6331|6332|6333|6334|6335|6336|6337|6338|6339|6340|6341|6342|6343|6344|6345|6346|6347|6348|6349|6350|6351|6352|6353|6354|6355|6356|6357|6358|6359|6360|6361|6362|6363|6364|6365|6366|6367|6368|6369|6370|6371|6372|6373|6374|6375|6376|6377|6378|6379|6380|6381|6382|6383|6384|6385|6386|6387|6388|6389|6390|6391|6392|6393|6394|6395|6396|6397|6398|6399|6400|6401|6402|6403|6404|6405|6406|6407|6408|6409|6410|6411|6412|6413|6414|6415|6416|6417|6418|6419|6420|6421|6422|6423|6424|6425|6426|6427|6428|6429|6430|6431|6432|6433|6434|6435|6436|6437|6438|6439|6440|6441|6442|6443|6444|6445|6446|6447|6448|6449|6450|6451|6452|6453|6454|6455|6456|6457|6458|6459|6460|6461|6462|6463|6464|6465|6466|6467|6468|6469|6470|6471|6472|6473|6474|6475|6476|6477|6478|6479|6480|6481|6482|6483|6484|6485|6486|6487|6488|6489|6490|6491|6492|6493|6494|6495|6496|6497|6498|6499|6500|6501|6502|6503|6504|6505|6506|6507|6508|6509|6510|6511|6512|6513|6514|6515|6516|6517|6518|6519|6520|6521|6522|6523|6524|6525|6526|6527|6528|6529|6530|6531|6532|6533|6534|6535|6536|6537|6538|6539|6540|6541|6542|6543|6544|6545|6546|6547|6548|6549|6550|6551|6552|6553|6554|6555|6556|6557|6558|6559|6560|6561|6562|6563|6564|6565|6566|6567|6568|6569|6570|6571|6572|6573|6574|6575|6576|6577|6578|6579|6580|6581|6582|6583|6584|6585|6586|6587|6588|6589|6590|6591|6592|6593|6594|6595|6596|6597|6598|6599|6600|6601|6602|6603|6604|6605|6606|6607|6608|6609|6610|6611|6612|6613|6614|6615|6616|6617|6618|6619|6620|6621|6622|6623|6624|6625|6626|6627|6628|6629|6630|6631|6632|6633|6634|6635|6636|6637|6638|6639|6640|6641|6642|6643|6644|6645|6646|6647|6648|6649|6650|6651|6652|6653|6654|6655|6656|6657|6658|6659|6660|6661|6662|6663|6664|6665|6666|6667|6668|6669|6670|6671|6672|6673|6674|6675|6676|6677|6678|6679|6680|6681|6682|6683|6684|6685|6686|6687|6688|6689|6690|6691|6692|6693|6694|6695|6696|6697|6698|6699|6700|6701|6702|6703|6704|6705|6706|6707|6708|6709|6710|6711|6712|6713|6714|6715|6716|6717|6718|6719|6720|6721|6722|6723|6724|6725|6726|6727|6728|6729|6730|6731|6732|6733|6734|6735|6736|6737|6738|6739|6740|6741|6742|6743|6744|6745|6746|6747|6748|6749|6750|6751|6752|6753|6754|6755|6756|6757|6758|6759|6760|6761|6762|6763|6764|6765|6766|6767|6768|6769|6770|6771|6772|6773|6774|6775|6776|6777|6778/; + +result = re.exec('6777'); + +reportCompare(expect, actual, summary); + +status = summary + ' ' + inSection(2) + ' (new RegExp("0|...|9999") '; + +var N = 10 * 1000; +var a = new Array(N); +for (var i = 0; i != N; ++i) { + a[i] = i; +} +var str = a.join('|'); // str is 0|1|2|3|...| +var re = new RegExp(str); +re.exec(N - 1); + +reportCompare(expect, actual, summary); + + + diff --git a/js/src/tests/js1_5/Regress/regress-281606.js b/js/src/tests/js1_5/Regress/regress-281606.js new file mode 100644 index 000000000..2f36c150c --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-281606.js @@ -0,0 +1,46 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 281606; +var summary = 'l instanceof r throws TypeError if r does not support [[HasInstance]]'; +var actual = ''; +var expect = ''; +var status; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var o = {}; + +status = summary + ' ' + inSection(1) + ' o instanceof Math '; +expect = 'TypeError'; +try +{ + if (o instanceof Math) + { + } + actual = 'No Error'; +} +catch(e) +{ + actual = e.name; +} +reportCompare(expect, actual, status); + +status = summary + ' ' + inSection(2) + ' o instanceof o '; +expect = 'TypeError'; +try +{ + if (o instanceof o) + { + } + actual = 'No Error'; +} +catch(e) +{ + actual = e.name; +} +reportCompare(expect, actual, status); diff --git a/js/src/tests/js1_5/Regress/regress-281930.js b/js/src/tests/js1_5/Regress/regress-281930.js new file mode 100644 index 000000000..2939c8be8 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-281930.js @@ -0,0 +1,20 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 281930; +var summary = 'this reference should point to global object in function expressions'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var global = this; + +actual = function() { return this; }(); +expect = global; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-283477.js b/js/src/tests/js1_5/Regress/regress-283477.js new file mode 100644 index 000000000..65fcbb02d --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-283477.js @@ -0,0 +1,27 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 283477; +var summary = 'a.lastIndexOf(b, c) should return -1 when there is no match'; +var actual = ''; +var expect = ''; +var status; + +enterFunc ('test'); +printBugNumber(BUGNUMBER); +printStatus (summary); + +status = summary + ' ' + inSection(1) + " " + '"".lastIndexOf("hello", 0);'; +expect = -1; +actual = "".lastIndexOf("hello", 0); +reportCompare(expect, actual, status); + +status = summary + ' ' + inSection(2) + " " + ' "".lastIndexOf("hello");'; +expect = -1; +actual = "".lastIndexOf("hello"); +reportCompare(expect, actual, status); + +exitFunc ('test'); diff --git a/js/src/tests/js1_5/Regress/regress-288688.js b/js/src/tests/js1_5/Regress/regress-288688.js new file mode 100644 index 000000000..551b6d970 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-288688.js @@ -0,0 +1,48 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 288688; +var summary = 'x->regExpStatics should be stacked and unstacked around the lambda invocations'; +var actual = ''; +var expect = ''; + +enterFunc ('test'); +printBugNumber(BUGNUMBER); +printStatus (summary); + + +function genGluck(str){ + var x = str; + var rx=/end/i; + x = x.replace(rx,function($1){ + $1.match(rx); + return ""; + }); + x = x.replace(/^end/,""); + return x; +} + +expect = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ + "XXX"; + +actual = genGluck( expect + "end" ); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-289094.js b/js/src/tests/js1_5/Regress/regress-289094.js new file mode 100644 index 000000000..03945f77e --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-289094.js @@ -0,0 +1,27 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 289094; +var summary = 'argument shadowing function property special case for lambdas'; +var actual = ''; +var expect = 'function:function'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function fn() +{ + var o = { + d: function(x,y) {}, + init: function() { this.d.x = function(x) {}; this.d.y = function(y) {}; } + }; + o.init(); + actual = typeof(o.d.x) + ':' + typeof(o.d.y); +} + +fn(); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-290575.js b/js/src/tests/js1_5/Regress/regress-290575.js new file mode 100644 index 000000000..65c43919a --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-290575.js @@ -0,0 +1,57 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 290575; +var summary = 'Do not crash calling function with more than 32768 arguments'; +var actual = 'No Crash'; +var expect = 'No Crash'; +printBugNumber(BUGNUMBER); +printStatus (summary); + +function crashMe(n) { + var nasty, fn; + + nasty = []; + while (n--) + nasty.push("a"+n); // Function arguments + nasty.push("void 0"); // Function body + fn = Function.apply(null, nasty); + fn.toString(); +} + +printStatus('crashMe(0x8001)'); + +crashMe(0x8001); + +reportCompare(expect, actual, summary); + +function crashMe2(n) { + var nasty = [], fn + + while (n--) nasty[n] = "a"+n + fn = Function(nasty.join(), "void 0") + fn.toString() + } + +printStatus('crashMe2(0x10000)'); + +summary = 'No Syntax Error Function to string when more than 65536 arguments'; +expect = 'Error'; +try +{ + crashMe2(0x10000); + actual = 'No Error'; + reportCompare(expect, actual, summary); +} +catch(e) +{ + actual = 'Error'; + reportCompare(expect, actual, summary); + expect = 'SyntaxError'; + actual = e.name; + reportCompare(expect, actual, summary); +} + diff --git a/js/src/tests/js1_5/Regress/regress-290656.js b/js/src/tests/js1_5/Regress/regress-290656.js new file mode 100644 index 000000000..671304cb4 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-290656.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 290656; +var summary = 'Regression from bug 254974'; +var actual = 'No Error'; +var expect = 'No Error'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function foo() { + with(foo) { + this["insert"] = function(){ var node = new bar(); }; + } + function bar() {} +} + +try +{ + var list = new foo(); + list.insert(); +} +catch(e) +{ + actual = e + ''; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-294191.js b/js/src/tests/js1_5/Regress/regress-294191.js new file mode 100644 index 000000000..35eea40a1 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-294191.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 294191; +var summary = 'Do not crash with nested function and "delete" op'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +enterFunc ('test'); +printBugNumber(BUGNUMBER); +printStatus (summary); + +function f() +{ + function x() + { + x; + } +} + +f.z=0; + +delete f.x; + +f(); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-294195-01.js b/js/src/tests/js1_5/Regress/regress-294195-01.js new file mode 100644 index 000000000..273b50554 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-294195-01.js @@ -0,0 +1,25 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 294195; +var summary = 'Do not crash during String replace when accessing methods on backreferences'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var s = 'some text sample'; + +// this first version didn't crash +var result = s.replace(new RegExp('(^|\\s)(text)'), (new String('$1'))); +result = result.substr(0, 1); +reportCompare(expect, actual, inSection(1) + ' ' + summary); + +// the original version however did crash. +result = s.replace(new RegExp('(^|\\s)(text)'), + (new String('$1')).substr(0, 1)); +reportCompare(expect, actual, inSection(2) + ' ' + summary); diff --git a/js/src/tests/js1_5/Regress/regress-294195-02.js b/js/src/tests/js1_5/Regress/regress-294195-02.js new file mode 100644 index 000000000..c6a3cc810 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-294195-02.js @@ -0,0 +1,17 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 294195; +var summary = 'Do not crash during String replace when accessing methods on backreferences'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var result = "".replace(/()/, "$1".slice(0,1)) + + reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-294302.js b/js/src/tests/js1_5/Regress/regress-294302.js new file mode 100644 index 000000000..b4f1ed2fc --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-294302.js @@ -0,0 +1,24 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 294302; +var summary = 'JS Shell load should throw catchable exceptions'; +var actual = 'Error not caught'; +var expect = 'Error caught'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + load('foo.js'); +} +catch(ex) +{ + actual = 'Error caught'; + printStatus(actual); +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-295052.js b/js/src/tests/js1_5/Regress/regress-295052.js new file mode 100644 index 000000000..a84a15787 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-295052.js @@ -0,0 +1,26 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 295052; +var summary = 'Do not crash when apply method is called on String.prototype.match'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + "".match.apply(); + throw new Error("should have thrown for undefined this"); +} +catch (e) +{ + assertEq(e instanceof TypeError, true, + "No TypeError for String.prototype.match"); +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-295666.js b/js/src/tests/js1_5/Regress/regress-295666.js new file mode 100644 index 000000000..b527b5ec9 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-295666.js @@ -0,0 +1,22 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 295666; +var summary = 'Check JS only recursion stack overflow'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + throw {toString: parseInt.call}; +} +catch(e) +{ +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-299209.js b/js/src/tests/js1_5/Regress/regress-299209.js new file mode 100644 index 000000000..891a4fd35 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-299209.js @@ -0,0 +1,23 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 299209; +var summary = 'anonymous function expression statement => JS stack overflow'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + eval('for (a = 0; a <= 10000; a++) { function(){("");} }'); +} +catch(e) +{ +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-299641.js b/js/src/tests/js1_5/Regress/regress-299641.js new file mode 100644 index 000000000..6f844b27f --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-299641.js @@ -0,0 +1,24 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 299641; +var summary = '12.6.4 - LHS for (LHS in expression) execution'; +var actual = ''; +var expect = 0; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function f() { + var i = 0; + var a = [{x: 42}]; + for (a[i++].x in []) + return(a[i-1].x); + return(i); +} +actual = f(); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-303213.js b/js/src/tests/js1_5/Regress/regress-303213.js new file mode 100644 index 000000000..d01c28d12 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-303213.js @@ -0,0 +1,56 @@ +// |reftest| skip-if(!xulRuntime.shell||Android) -- bug 524731 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 303213; +var summary = 'integer overflow in js'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); +printStatus('This bug passes if no crash occurs'); + +expectExitCode(0); +expectExitCode(5); + +try +{ + var s=String.fromCharCode(257); + + var ki=""; + var me=""; + for (i = 0; i < 1024; i++) + { + ki = ki + s; + } + + for (i = 0; i < 1024; i++) + { + me = me + ki; + } + + var ov = s; + + for (i = 0; i < 28; i++) + ov += ov; + + for (i = 0; i < 88; i++) + ov += me; + + printStatus("done generating"); + var eov = escape(ov); + printStatus("done escape"); + printStatus(eov); +} +catch(ex) +{ + // handle changed 1.9 branch behavior. see bug 422348 + expect = 'InternalError: allocation size overflow'; + actual = ex + ''; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-306633.js b/js/src/tests/js1_5/Regress/regress-306633.js new file mode 100644 index 000000000..880e4efb2 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-306633.js @@ -0,0 +1,35 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 306633; +var summary = 'report compile warnings in evald code when strict warnings enabled'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +if (!options().match(/strict/)) +{ + options('strict'); +} +if (!options().match(/werror/)) +{ + options('werror'); +} + +expect = 'SyntaxError'; + +try +{ + actual = eval('super = 5'); +} +catch(e) +{ + actual = e.name; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-306727.js b/js/src/tests/js1_5/Regress/regress-306727.js new file mode 100644 index 000000000..13e3881a0 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-306727.js @@ -0,0 +1,40 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 306727; +var summary = 'Parsing RegExp of octal expressions in strict mode'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +// test with strict off + +try +{ + expect = null; + actual = /.\011/.exec ('a'+String.fromCharCode(0)+'11'); +} +catch(e) +{ +} + +reportCompare(expect, actual, summary); + +// test with strict on +options('strict'); + +expect = null; +try +{ + actual = /.\011/.exec ('a'+String.fromCharCode(0)+'11'); +} +catch(e) +{ +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-306794.js b/js/src/tests/js1_5/Regress/regress-306794.js new file mode 100644 index 000000000..178c715e0 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-306794.js @@ -0,0 +1,25 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: Blake Kaplan + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 306794; +var summary = 'Do not assert: parsing foo getter'; +var actual = 'No Assertion'; +var expect = 'No Assertion'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + eval('getter\n'); +} +catch(e) +{ +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-308085.js b/js/src/tests/js1_5/Regress/regress-308085.js new file mode 100644 index 000000000..d23ff12c1 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-308085.js @@ -0,0 +1,569 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 308085; +var summary = 'JavaScript switch statement going to the wrong case'; +var actual = 'fail'; +var expect = 'pass'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +switch (0) { +case 0: + actual = "pass"; + break; +case 1: + // 546 lines each with 30 "1;" statements + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; + 1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-308566.js b/js/src/tests/js1_5/Regress/regress-308566.js new file mode 100644 index 000000000..d3bc205f4 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-308566.js @@ -0,0 +1,27 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 308566; +var summary = 'Do not treat octal sequence as regexp backrefs in strict mode'; +var actual = 'No error'; +var expect = 'No error'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +options('strict'); +options('werror'); + +try +{ + var c = eval("/\260/"); +} +catch(e) +{ + actual = e + ''; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-310295.js b/js/src/tests/js1_5/Regress/regress-310295.js new file mode 100644 index 000000000..1e0aaacc4 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-310295.js @@ -0,0 +1,21 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 310295; +var summary = 'Do not crash on JS_ValueToString'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var tmp = 23948730458647527874392837439299837412374859487593; + +tmp = new Number(tmp); +tmp = tmp.valueOf() + tmp = String(tmp); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-310607.js b/js/src/tests/js1_5/Regress/regress-310607.js new file mode 100644 index 000000000..13d2449ff --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-310607.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 310607; +var summary = 'Do not crash iterating over Object.prototype'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var f = new Foo(); +f.go("bar"); + +function Foo() { + this.go = function(prototype) { + printStatus("Start"); + for(var i in Object.prototype) { + printStatus("Here"); + eval("5+4"); + } + printStatus("End"); + }; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-310993.js b/js/src/tests/js1_5/Regress/regress-310993.js new file mode 100644 index 000000000..da98bb80b --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-310993.js @@ -0,0 +1,22 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 310993; +var summary = 'treat <! as the start of a comment to end of line'; +var actual = ''; +var expect = ''; + + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expect = 'foo'; +actual = 'foo'; + +if (false) + actual = 'bar'; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-311071.js b/js/src/tests/js1_5/Regress/regress-311071.js new file mode 100644 index 000000000..b563f7163 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-311071.js @@ -0,0 +1,18 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 311071; +var summary = 'treat <! as the start of a comment to end of line'; +var actual = ''; +var expect = ''; + + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expect = 'foo'; +actual = 'foo'; ; actual = 'bar'; +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-311629.js b/js/src/tests/js1_5/Regress/regress-311629.js new file mode 100644 index 000000000..6a4250445 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-311629.js @@ -0,0 +1,22 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 311629; +var summary = 'Prevent recursive death in UnaryExp'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + eval('+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +'); +} +catch(e) +{ +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-312260.js b/js/src/tests/js1_5/Regress/regress-312260.js new file mode 100644 index 000000000..5e52d6261 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-312260.js @@ -0,0 +1,27 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 312260; +var summary = 'Switch discriminant detecting case should not warn'; +var actual = 'No warning'; +var expect = 'No warning'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +options('strict'); +options('werror'); + +try +{ + switch ({}.foo) {} +} +catch(e) +{ + actual = e + ''; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-31255.js b/js/src/tests/js1_5/Regress/regress-31255.js new file mode 100644 index 000000000..3a6444952 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-31255.js @@ -0,0 +1,79 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * + * Date: 09 November 2002 + * SUMMARY: JS should treat --> as a single-line comment indicator. + * Whitespace may occur before the --> on the same line. + * + * See http://bugzilla.mozilla.org/show_bug.cgi?id=31255 + * and http://bugzilla.mozilla.org/show_bug.cgi?id=179366 (Rhino version) + * + * Note: are the HTML multi-line comment opener, closer. + * JS already accepted as a single-line comment indicator'; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + + + HTML comment end is JS comments until end-of-line +--> but only if it follows a possible whitespace after line start +--> so in the following --> should not be treated as comments +if (x-->0) + x = 2; + +status = inSection(2); +actual = (x == 2); +expect = true; +addThis(); + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc('test'); + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i>='); + +try +{ + foo >>>= 1; + actual = "fail"; +} +catch (e) +{ + actual = "pass"; +} + +reportCompare(expect, actual, summary + ': >>>='); diff --git a/js/src/tests/js1_5/Regress/regress-321874.js b/js/src/tests/js1_5/Regress/regress-321874.js new file mode 100644 index 000000000..d6fbf77c2 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-321874.js @@ -0,0 +1,207 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 321874; +var summary = 'lhs must be a reference in (for lhs in rhs) ...'; +var actual = ''; +var expect = ''; +var section; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function a() {} +var b = {foo: 'bar'}; + +printStatus('for-in tests'); + +var v; +section = summary + ': for((v) in b);'; +expect = 'foo'; +printStatus(section); +try +{ + eval('for ((v) in b);'); + actual = v; +} +catch(ex) +{ + printStatus(ex+''); + actual = 'error'; +} +reportCompare(expect, actual, section); + +section = summary + ': function foo(){for((v) in b);};foo();'; +expect = 'foo'; +printStatus(section); +try +{ + eval('function foo(){ for ((v) in b);}; foo();'); + actual = v; +} +catch(ex) +{ + printStatus(ex+''); + actual = 'error'; +} +reportCompare(expect, actual, section); + +section = summary + ': for(a() in b);'; +expect = 'error'; +printStatus(section); +try +{ + eval('for (a() in b);'); + actual = 'no error'; +} +catch(ex) +{ + printStatus(ex+''); + actual = 'error'; +} +reportCompare(expect, actual, section); + +section = summary + ': function foo(){for(a() in b);};foo();'; +expect = 'error'; +printStatus(section); +try +{ + eval('function foo(){ for (a() in b);};foo();'); + actual = 'no error'; +} +catch(ex) +{ + printStatus(ex+''); + actual = 'error'; +} +reportCompare(expect, actual, section); + +section = ': for(new a() in b);'; +expect = 'error'; +printStatus(section); +try +{ + eval('for (new a() in b);'); + actual = 'no error'; +} +catch(ex) +{ + printStatus(ex+''); + actual = 'error'; +} +reportCompare(expect, actual, summary + section); + +section = ': function foo(){for(new a() in b);};foo();'; +expect = 'error'; +printStatus(section); +try +{ + eval('function foo(){ for (new a() in b);};foo();'); + actual = 'no error'; +} +catch(ex) +{ + printStatus(ex+''); + actual = 'error'; +} +reportCompare(expect, actual, summary + section); + +section = ': for(void in b);'; +expect = 'error'; +printStatus(section); +try +{ + eval('for (void in b);'); + actual = 'no error'; +} +catch(ex) +{ + printStatus(ex+''); + actual = 'error'; +} +reportCompare(expect, actual, summary + section); + +section = ': function foo(){for(void in b);};foo();'; +expect = 'error'; +printStatus(section); +try +{ + eval('function foo(){ for (void in b);};foo();'); + actual = 'no error'; +} +catch(ex) +{ + printStatus(ex+''); + actual = 'error'; +} +reportCompare(expect, actual, summary + section); + +var d = 1; +var e = 2; +expect = 'error'; +section = ': for((d*e) in b);'; +printStatus(section); +try +{ + eval('for ((d*e) in b);'); + actual = 'no error'; +} +catch(ex) +{ + printStatus(ex+''); + actual = 'error'; +} +reportCompare(expect, actual, summary + section); + +var d = 1; +var e = 2; +expect = 'error'; +section = ': function foo(){for((d*e) in b);};foo();'; +printStatus(section); +try +{ + eval('function foo(){ for ((d*e) in b);};foo();'); + actual = 'no error'; +} +catch(ex) +{ + printStatus(ex+''); + actual = 'error'; +} +reportCompare(expect, actual, summary + section); + +const c = 0; +expect = 'error'; +section = ': for(c in b);'; +printStatus(section); +try +{ + eval('for (c in b);'); + actual = c; + printStatus('typeof c: ' + (typeof c) + ', c: ' + c); +} +catch(ex) +{ + printStatus(ex+''); + actual = 'error'; +} +reportCompare(expect, actual, summary + section); + +expect = 'error'; +section = ': function foo(){for(c in b);};foo();'; +printStatus(section); +try +{ + eval('function foo(){ for (c in b);};foo();'); + actual = c; + printStatus('typeof c: ' + (typeof c) + ', c: ' + c); +} +catch(ex) +{ + printStatus(ex+''); + actual = 'error'; +} +reportCompare(expect, actual, summary + section); diff --git a/js/src/tests/js1_5/Regress/regress-321971.js b/js/src/tests/js1_5/Regress/regress-321971.js new file mode 100644 index 000000000..c40b1f47b --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-321971.js @@ -0,0 +1,23 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 321971; +var summary = 'JSOP_FINDNAME replaces JSOP_BINDNAME'; +var actual = 'no error'; +var expect = 'no error'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var s=''; +for (i=0; i < 1<<16; i++) + s += 'x' + i + '=' + i + ';\n'; + +s += 'foo=' + i + ';\n'; +eval(s); +foo; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-322430.js b/js/src/tests/js1_5/Regress/regress-322430.js new file mode 100644 index 000000000..f5fbf3041 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-322430.js @@ -0,0 +1,37 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 322430; +var summary = 'Remove deprecated with statement warning'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +options('strict'); +options('werror'); + +expect = 'No Warning'; + +try +{ + var obj = {foo: 'baz'}; + + // this must either be top level or must be + // evald since there is a bug in older versions + // that suppresses the |with| warning inside of a + // try catch block. doh! + eval('with (obj) { foo; }'); + + actual = 'No Warning'; +} +catch(ex) +{ + actual = ex + ''; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-323314-1.js b/js/src/tests/js1_5/Regress/regress-323314-1.js new file mode 100644 index 000000000..0d3c5496f --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-323314-1.js @@ -0,0 +1,40 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 323314; +var summary = 'JSMSG_EQUAL_AS_ASSIGN in js.msg should be JSEXN_SYNTAXERR'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +if (!options().match(/strict/)) +{ + options('strict'); +} +if (!options().match(/werror/)) +{ + options('werror'); +} + +var xyzzy; + +expect = 'SyntaxError'; + +try +{ + eval('if (xyzzy=1) printStatus(xyzzy);'); + + actual = 'No Warning'; +} +catch(ex) +{ + actual = ex.name; + printStatus(ex + ''); +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-325925.js b/js/src/tests/js1_5/Regress/regress-325925.js new file mode 100644 index 000000000..e75415b10 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-325925.js @@ -0,0 +1,19 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: Blake Kaplan + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 325925; +var summary = 'Do not Assert: c <= cs->length in AddCharacterToCharSet'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +/[\cA]/.exec('\x01'); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-326467.js b/js/src/tests/js1_5/Regress/regress-326467.js new file mode 100644 index 000000000..5dc1f59b5 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-326467.js @@ -0,0 +1,17 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 326467; +var summary = 'Do not assert: slot < fp->nvars, at jsinterp.c'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +eval('for(var prop in {1:1})prop;', {}) + + reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-328012.js b/js/src/tests/js1_5/Regress/regress-328012.js new file mode 100644 index 000000000..8ccc673b6 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-328012.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 328012; +var summary = 'Content PropertyIterator should not root in chrome'; +var actual = 'No Error'; +var expect = 'No Error'; + + +printBugNumber(BUGNUMBER); +printStatus (summary); + +if (typeof focus != 'undefined' && focus.prototype) +{ + try + { + for (prop in focus.prototype.toString) + ; + } + catch(ex) + { + printStatus(ex + ''); + actual = ex + ''; + } +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-328664.js b/js/src/tests/js1_5/Regress/regress-328664.js new file mode 100644 index 000000000..e4638ca6c --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-328664.js @@ -0,0 +1,31 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 328664; +var summary = 'Correct error message for funccall(undefined, undefined.prop)'; +var actual = ''; +var expect = /TypeError: value.parameters (has no properties|is undefined)/; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var value = {}; + +function funccall(a,b) +{ +} + +try +{ + funccall(value[1], value.parameters[1]); +} +catch(ex) +{ + printStatus(ex); + actual = ex + ''; +} + +reportMatch(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-329383.js b/js/src/tests/js1_5/Regress/regress-329383.js new file mode 100644 index 000000000..00c7260ca --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-329383.js @@ -0,0 +1,83 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 329383; +var summary = 'Math copysign issues'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var inputs = [ + -Infinity, + -10.01, + -9.01, + -8.01, + -7.01, + -6.01, + -5.01, + -4.01, + -Math.PI, + -3.01, + -2.01, + -1.01, + -0.5, + -0.49, + -0.01, + -0, + 0, + +0, + 0.01, + 0.49, + 0.50, + 0, + 1.01, + 2.01, + 3.01, + Math.PI, + 4.01, + 5.01, + 6.01, + 7.01, + 8.01, + 9.01, + 10.01, + Infinity + ]; + +var iinput; + +for (iinput = 0; iinput < inputs.length; iinput++) +{ + var input = inputs[iinput]; + reportCompare(Math.round(input), + emulateRound(input), + summary + ': Math.round(' + input + ')'); +} + +reportCompare(isNaN(Math.round(NaN)), + isNaN(emulateRound(NaN)), + summary + ': Math.round(' + input + ')'); + +function emulateRound(x) +{ + if (!isFinite(x) || x === 0) return x + if (-0.5 <= x && x < 0) return -0 + return Math.floor(x + 0.5) + } + +var z; + +z = Math.min(-0, 0); + +reportCompare(-Math.PI, Math.atan2(z, z), summary + ': Math.atan2(-0, -0)'); +reportCompare(-Infinity, 1/z, summary + ': 1/-0'); + +z = Math.max(-0, 0); + +reportCompare(0, Math.atan2(z, z), summary + ': Math.atan2(0, 0)'); +reportCompare(Infinity, 1/z, summary + ': 1/0'); diff --git a/js/src/tests/js1_5/Regress/regress-329530.js b/js/src/tests/js1_5/Regress/regress-329530.js new file mode 100644 index 000000000..05aa1e78b --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-329530.js @@ -0,0 +1,41 @@ +// |reftest| skip-if(Android) +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 329530; +var summary = 'Do not crash when calling toString on a deeply nested function'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expectExitCode(0); +expectExitCode(5); + +var nestingLevel = 1000; + +function buildTestFunction(N) { + var i, funSourceStart = "", funSourceEnd = ""; + for (i=0; i < N; ++i) { + funSourceStart += "function testFoo() {"; + funSourceEnd += "}"; + } + return Function(funSourceStart + funSourceEnd); +} + +try +{ + var testSource = buildTestFunction(nestingLevel).toString(); + printStatus(testSource.length); +} +catch(ex) +{ + printStatus(ex + ''); +} + + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-330352.js b/js/src/tests/js1_5/Regress/regress-330352.js new file mode 100644 index 000000000..a33c61762 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-330352.js @@ -0,0 +1,35 @@ +// |reftest| skip-if(Android) +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 330352; +var summary = 'Very non-greedy regexp causes crash in jsregexp.c'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expectExitCode(0); +expectExitCode(5); + +if ("AB".match(/(.*?)*?B/)) +{ + printStatus(RegExp.lastMatch); +} +reportCompare(expect, actual, summary + ': "AB".match(/(.*?)*?B/)'); + +if ("AB".match(/(.*)*?B/)) +{ + printStatus(RegExp.lastMatch); +} +reportCompare(expect, actual, summary + ': "AB".match(/(.*)*?B/)'); + +if ("AB".match(/(.*?)*B/)) +{ + printStatus(RegExp.lastMatch); +} +reportCompare(expect, actual, summary + ': "AB".match(/(.*?)*B/)'); diff --git a/js/src/tests/js1_5/Regress/regress-330951.js b/js/src/tests/js1_5/Regress/regress-330951.js new file mode 100644 index 000000000..a7b214023 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-330951.js @@ -0,0 +1,17 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 330951; +var summary = 'Crash in Array.sort on array with undefined value'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +[undefined,1].sort(); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-334807-01.js b/js/src/tests/js1_5/Regress/regress-334807-01.js new file mode 100644 index 000000000..977b97fc1 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-334807-01.js @@ -0,0 +1,24 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 334807; +var summary = '10.1.8 - arguments prototype is the original Object prototype'; +var actual = 'No Error'; +var expect = 'TypeError'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + (function () { printStatus( arguments.join()); })( 1, 2, 3 ); +} +catch(ex) +{ + printStatus(ex + ''); + actual = ex.name; +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-334807-02.js b/js/src/tests/js1_5/Regress/regress-334807-02.js new file mode 100644 index 000000000..59b616695 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-334807-02.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 334807; +var summary = '10.1.8 - arguments prototype is the original Object prototype.'; +var actual = 'No Error'; +var expect = 'TypeError'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +printStatus('set Object = Array'); + +Object = Array; + +try +{ + (function () { printStatus( arguments.join()); })( 1, 2, 3 ); +} +catch(ex) +{ + printStatus(ex + ''); + actual = ex.name; +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-334807-03.js b/js/src/tests/js1_5/Regress/regress-334807-03.js new file mode 100644 index 000000000..ae4e6a87d --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-334807-03.js @@ -0,0 +1,24 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 334807; +var summary = '10.1.8 - arguments prototype is the original Object prototype'; +var actual = 'No Error'; +var expect = 'TypeError'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + 0, function () { printStatus( arguments.join()); }( 1, 2, 3 ); +} +catch(ex) +{ + printStatus(ex + ''); + actual = ex.name; +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-334807-04.js b/js/src/tests/js1_5/Regress/regress-334807-04.js new file mode 100644 index 000000000..4c229ceb3 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-334807-04.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 334807; +var summary = '10.1.8 - arguments prototype is the original Object prototype.'; +var actual = 'No Error'; +var expect = 'TypeError'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +printStatus('set Object = Array'); + +Object = Array; + +try +{ + 0, function () { printStatus( arguments.join()); }( 1, 2, 3 ); +} +catch(ex) +{ + printStatus(ex + ''); + actual = ex.name; +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-334807-05.js b/js/src/tests/js1_5/Regress/regress-334807-05.js new file mode 100644 index 000000000..02e698c50 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-334807-05.js @@ -0,0 +1,33 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 334807; +var summary = '12.14 - exception prototype is the original Object prototype.'; +var actual = 'No Error'; +var expect = 'ReferenceError'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + x.y; +} +catch(ex) +{ + try + { + actual = ex.name; + printStatus(ex + ': x.y'); + ex.valueOf(); + } + catch(ex2) + { + printStatus(ex2 + ': ex.valueOf()'); + actual = ex2.name; + } +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-334807-06.js b/js/src/tests/js1_5/Regress/regress-334807-06.js new file mode 100644 index 000000000..46ca2c664 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-334807-06.js @@ -0,0 +1,37 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 334807; +var summary = '12.14 - exception prototype is the original Object prototype.'; +var actual = 'No Error'; +var expect = 'ReferenceError'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +printStatus('set Error = Number'); + +Error = Number; + +try +{ + x.y; +} +catch(ex) +{ + try + { + actual = ex.name; + printStatus(ex + ': x.y'); + ex.valueOf(); + } + catch(ex2) + { + printStatus(ex2 + ': ex.valueOf()'); + actual = ex2.name; + } +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-336100.js b/js/src/tests/js1_5/Regress/regress-336100.js new file mode 100644 index 000000000..9f19e761c --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-336100.js @@ -0,0 +1,24 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 336100; +var summary = 'bug 336100 - arguments regressed'; +var actual = ''; +var expect; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var arguments = []; + +expect = '[object Arguments]'; +actual = (function(){return (arguments + '');})(); +reportCompare(expect, actual, summary); + +// see bug 336100 comment 29 +expect = ''; +actual = (function(){with (this) return(arguments + '');})(); +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-338307.js b/js/src/tests/js1_5/Regress/regress-338307.js new file mode 100644 index 000000000..2e35cfd00 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-338307.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 338307; +var summary = 'for (i in arguments) causes type error (JS_1_7_ALPHA_BRANCH)'; +var actual = ''; +var expect = 'No Error'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function f() { + for (var i in arguments); +} + +try +{ + f(); + actual = 'No Error'; +} +catch(ex) +{ + actual = ex + ''; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-340369.js b/js/src/tests/js1_5/Regress/regress-340369.js new file mode 100644 index 000000000..61dfd2ce2 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-340369.js @@ -0,0 +1,23 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 340369; +var summary = 'Oh for crying out loud.'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + eval('return /;'); +} +catch(ex) +{ +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-341360.js b/js/src/tests/js1_5/Regress/regress-341360.js new file mode 100644 index 000000000..41fe5a0ca --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-341360.js @@ -0,0 +1,55 @@ +// |reftest| skip-if(xulRuntime.OS=="WINNT"&&isDebugBuild) slow +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 341360; +var summary = 'clearInterval broken'; +var actual = ''; +var expect = 'Ok'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function xxx() +{ + if(t != null) + { + print('Clearing interval...'); + window.clearInterval(t); + t = null; + setTimeout('yyy()', 2000); + + } + else { + print('Clearing interval failed...'); + actual = "Broken"; + gDelayTestDriverEnd = false; + reportCompare(expect, actual, summary); + jsTestDriverEnd(); + } +} + +function yyy() +{ + print('Checking result...'); + actual = 'Ok'; + gDelayTestDriverEnd = false; + reportCompare(expect, actual, summary); + jsTestDriverEnd(); +} + +if (typeof window == 'undefined') +{ + expect = actual = 'Not tested'; + reportCompare(expect, actual, summary); +} +else +{ + print('Start...'); + gDelayTestDriverEnd = true; + var t = window.setInterval(xxx, 1000); +} + diff --git a/js/src/tests/js1_5/Regress/regress-343713.js b/js/src/tests/js1_5/Regress/regress-343713.js new file mode 100644 index 000000000..8d2cd609c --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-343713.js @@ -0,0 +1,21 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 343713; +var summary = 'Do not assert with nested function evaluation'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +with (this) + with (this) { + eval("function outer() { function inner() { " + + "print('inner');} inner(); print('outer');} outer()"); +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-343966.js b/js/src/tests/js1_5/Regress/regress-343966.js new file mode 100644 index 000000000..a2bb14540 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-343966.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 343966; +var summary = 'ClearScope foo regressed due to bug 343417'; +var actual = 'failed'; +var expect = 'passed'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + Function["prototype"].inherits=function(a){}; + function foo(){}; + function bar(){}; + foo.inherits(bar); + actual = "passed"; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-344711-n.js b/js/src/tests/js1_5/Regress/regress-344711-n.js new file mode 100644 index 000000000..6a23285a2 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-344711-n.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 344711; +var summary = 'Do not crash compiling when peeking over a newline'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (typeof window == 'undefined') + { + // exclude from browser as the crash only occurs in shell + // and attempting to trap the error prevents the crash. + var a1 = {abc2 : 1, abc3 : 3}; + var j = eval('a1\\\n.abc2;'); + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-344804.js b/js/src/tests/js1_5/Regress/regress-344804.js new file mode 100644 index 000000000..fef426ea6 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-344804.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 344804; +var summary = 'Do not crash iterating over window.Packages'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (typeof window != 'undefined') + { + for (var p in window.Packages) + ; + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-344959.js b/js/src/tests/js1_5/Regress/regress-344959.js new file mode 100644 index 000000000..e8e264c68 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-344959.js @@ -0,0 +1,36 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 344959; +var summary = 'Functions should not lose scope chain after exception'; +var actual = ''; +var expect = 'with'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var x = "global" + + with ({x:"with"}) + actual = (function() { try {} catch(exc) {}; return x }()); + + reportCompare(expect, actual, summary + ': 1'); + + with ({x:"with"}) + actual = (function() { try { throw 1} catch(exc) {}; return x }()); + + reportCompare(expect, actual, summary + ': 2'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-346237.js b/js/src/tests/js1_5/Regress/regress-346237.js new file mode 100644 index 000000000..e8ca047f4 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-346237.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 346237; +var summary = 'RegExp - /(|)??x/g.exec("y")'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + /(|)??x/g.exec("y"); + + reportCompare(expect, actual, summary + ': /(|)??x/g.exec("y")'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-346801.js b/js/src/tests/js1_5/Regress/regress-346801.js new file mode 100644 index 000000000..0a61cb6ff --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-346801.js @@ -0,0 +1,76 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 346801; +var summary = 'Hang regression from bug 346021'; +var actual = ''; +var expect = 'No Hang'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + var Class = { + create: function() { + return function() { + this.initialize.apply(this, arguments); + } + } + } + + Object.extend = function(destination, source) { + print("Start"); +// print(destination); +// print(source); + if(destination==source) + print("Same desination and source!"); + var i = 0; + for (property in source) { +// print(" " + property); + destination[property] = source[property]; + ++i; + if (i > 1000) { + throw "Hang"; + } + } + print("Finish"); + return destination; + } + + var Ajax = { + }; + + Ajax.Base = function() {}; + Ajax.Base.prototype = { + responseIsFailure: function() { } + } + + Ajax.Request = Class.create(); + + Ajax.Request.prototype = Object.extend(new Ajax.Base(), {}); + + Ajax.Updater = Class.create(); + + Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype); + actual = 'No Hang'; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-349482-01.js b/js/src/tests/js1_5/Regress/regress-349482-01.js new file mode 100644 index 000000000..8e2b542b5 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-349482-01.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 349482; +var summary = 'Decompiling try/catch in for..in should not crash'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f = function() { for(p in {}) try{}catch(e){} }; + print(f.toString()); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-349482-02.js b/js/src/tests/js1_5/Regress/regress-349482-02.js new file mode 100644 index 000000000..4dffe81d3 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-349482-02.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 349482; +var summary = 'Decompiling try/catch in with() should not crash'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f = function() { with({}) { try{}catch(e){} } } + print(f.toString()); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-349592.js b/js/src/tests/js1_5/Regress/regress-349592.js new file mode 100644 index 000000000..64eef3447 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-349592.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 349592; +var summary = 'Do not assert with try/finally inside finally'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function() { try { } finally { try { } finally { } } }); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-350253.js b/js/src/tests/js1_5/Regress/regress-350253.js new file mode 100644 index 000000000..154c835a1 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-350253.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 350253; +var summary = 'Do not assert on (g()) = 3'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + (g()) = 3; + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-350268.js b/js/src/tests/js1_5/Regress/regress-350268.js new file mode 100644 index 000000000..78e836b17 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-350268.js @@ -0,0 +1,74 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 350268; +var summary = 'new Function with unbalanced braces'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f; + + try + { + expect = 'SyntaxError'; + actual = 'No Error'; + f = new Function("}"); + } + catch(ex) + { + actual = ex.name; + } + reportCompare(expect, actual, summary + ": }"); + + try + { + expect = 'SyntaxError'; + actual = 'No Error'; + f = new Function("}}}}}"); + } + catch(ex) + { + actual = ex.name; + } + reportCompare(expect, actual, summary + ": }}}}}"); + + try + { + expect = 'SyntaxError'; + actual = 'No Error'; + f = new Function("alert(6); } alert(5);"); + } + catch(ex) + { + actual = ex.name; + } + reportCompare(expect, actual, summary + ": alert(6); } alert(5);"); + + try + { + expect = 'SyntaxError'; + actual = 'No Error'; + f = new Function("} {"); + } + catch(ex) + { + actual = ex.name; + } + reportCompare(expect, actual, summary + ": } {"); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-350312.js b/js/src/tests/js1_5/Regress/regress-350312.js new file mode 100644 index 000000000..4b54f1e95 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-350312.js @@ -0,0 +1,80 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 350312; +var summary = 'Accessing wrong stack slot with nested catch/finally'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var counter = 0; + + function f(x,y) { + + try + { + throw x; + } + catch(e) + { + if (y) + throw e; + } + finally + { + try + { + actual += 'finally,'; + throw 42; + } + catch(e2) + { + actual += e2; + if (++counter > 10) + { + throw 'Infinite loop...'; + } + } + } + return 'returned'; + } + + expect = 'finally,42'; + actual = ''; + + try + { + print('test 1'); + f(2, 1); + } + catch(ex) + { + } + reportCompare(expect, actual, summary); + + actual = ''; + try + { + print('test 2'); + f(2, 0); + } + catch(ex) + { + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-350415.js b/js/src/tests/js1_5/Regress/regress-350415.js new file mode 100644 index 000000000..0775e2b39 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-350415.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 350415; +var summary = 'Do not assert with new Function("let /*")'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + new Function("let /*"); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-350529.js b/js/src/tests/js1_5/Regress/regress-350529.js new file mode 100644 index 000000000..ae0d6f042 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-350529.js @@ -0,0 +1,33 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 350529; +var summary = "Do not assert: x--'"; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + eval("x--'"); + } + catch(ex) + { + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-350692.js b/js/src/tests/js1_5/Regress/regress-350692.js new file mode 100644 index 000000000..d28d7f543 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-350692.js @@ -0,0 +1,38 @@ +// |reftest| skip -- obsolete test +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 350692; +var summary = 'import x["y"]["z"]'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var x = {y: {z: function() {}}}; + + try + { + import x['y']['z']; + } + catch(ex) + { + reportCompare('TypeError: x["y"]["z"] is not exported', ex + '', summary); + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-351116.js b/js/src/tests/js1_5/Regress/regress-351116.js new file mode 100644 index 000000000..b5723320e --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-351116.js @@ -0,0 +1,30 @@ +// |reftest| skip-if(xulRuntime.OS=="Linux"&&!xulRuntime.shell&&!xulRuntime.XPCOMABI.match(/x86_64/)&&isDebugBuild) -- bug 521549 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 351116; +var summary = 'formal parameter and inner function have same name'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f = function (s) { function s() { } }; + + function g(s) { function s() { } } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-351515.js b/js/src/tests/js1_5/Regress/regress-351515.js new file mode 100644 index 000000000..46963660f --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-351515.js @@ -0,0 +1,36 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 351515; +var summary = 'js17 features must be enabled by version request'; +var actual = 'No Error'; +var expect = 'No Error'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +yield = 1; +let = 1; + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function f(yield, let) { return yield+let; } + + var yield = 1; + var let = 1; + + function yield() {} + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-352208.js b/js/src/tests/js1_5/Regress/regress-352208.js new file mode 100644 index 000000000..279ba0bb5 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-352208.js @@ -0,0 +1,44 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 352208; +var summary = 'Do not assert new Function("setter/*\n")'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'SyntaxError: unterminated string literal'; + try + { + eval('new Function("setter/*\n");'); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, 'new Function("setter/*\n");'); + + try + { + eval('new Function("setter/*\n*/");'); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, 'new Function("setter/*\n*/");'); + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-352604.js b/js/src/tests/js1_5/Regress/regress-352604.js new file mode 100644 index 000000000..a0094c588 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-352604.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 352604; +var summary = 'Do not assert: !OBJ_GET_PROTO(cx, ctor)'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + delete Function; + var x = function () {}; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-354924.js b/js/src/tests/js1_5/Regress/regress-354924.js new file mode 100644 index 000000000..8446c90fb --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-354924.js @@ -0,0 +1,32 @@ +// |reftest| skip -- obsolete test +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 354924; +var summary = 'Do not crash with export/import and setter'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + this.x setter= function(){}; + export *; + t = this; + new Function("import t.*; import t.*;")(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-355341.js b/js/src/tests/js1_5/Regress/regress-355341.js new file mode 100644 index 000000000..ab2a4b884 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-355341.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 355341; +var summary = 'Do not crash with watch and setter'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + Object.defineProperty(this, "x", { set: Function, enumerable: true, configurable: true }); + this.watch('x', function () { }); x = 3; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-355344.js b/js/src/tests/js1_5/Regress/regress-355344.js new file mode 100644 index 000000000..00bd39147 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-355344.js @@ -0,0 +1,49 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 355344; +var summary = 'Exceptions thrown by watch point'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var o = {}; + + expect = 'setter: yikes'; + + o.watch('x', function(){throw 'yikes'}); + try + { + o.x = 3; + } + catch(ex) + { + actual = "setter: " + ex; + } + + try + { + eval("") ; + } + catch(e) + { + actual = "eval: " + e; + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-355556.js b/js/src/tests/js1_5/Regress/regress-355556.js new file mode 100644 index 000000000..be9efb56c --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-355556.js @@ -0,0 +1,35 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 355556; +var summary = 'Do not crash with eval(..., arguments)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'TypeError: "foo".b is not a function'; + try + { + (function () { eval("'foo'.b()", arguments) })(); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-355829-01.js b/js/src/tests/js1_5/Regress/regress-355829-01.js new file mode 100644 index 000000000..9b7fcf746 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-355829-01.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 355829; +var summary = 'Do not assert: !argc || argv[0].isNull() || argv[0].isUndefined()'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + new Object({valueOf: /a/}); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-355829-02.js b/js/src/tests/js1_5/Regress/regress-355829-02.js new file mode 100644 index 000000000..f1fb22ea4 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-355829-02.js @@ -0,0 +1,41 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 355829; +var summary = 'js_ValueToObject should return the original object if OBJ_DEFAULT_VALUE returns a primitive value'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = actual = 'Good conversion'; + + var primitiveValues = [ + true, false, 0, 1, -2, 0.1, -2e100, 0/0, 1/0, -1/1, "", "xxx", + undefined, null + ]; + + for (var i = 0; i != primitiveValues.length; ++i) { + var v = primitiveValues[i]; + var obj = { valueOf: function() { return v; } }; + var obj2 = Object(obj); + if (obj !== obj2) + actual = "Bad conversion for '"+v + "'"; + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-355829-03.js b/js/src/tests/js1_5/Regress/regress-355829-03.js new file mode 100644 index 000000000..449ef02d5 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-355829-03.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 355829; +var summary = 'js_ValueToObject should return the original object if OBJ_DEFAULT_VALUE returns a primitive value'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var a = [ { valueOf: function() { return null; } } ]; + a.toLocaleString(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-356250.js b/js/src/tests/js1_5/Regress/regress-356250.js new file mode 100644 index 000000000..a989e07d0 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-356250.js @@ -0,0 +1,44 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 356250; +var summary = 'Do not assert: !fp->fun || !(fp->fun->flags & JSFUN_HEAVYWEIGHT) || fp->callobj'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +(function() { eval("(function() { })"); })(); +reportCompare(expect, actual, summary + ': nested 0'); + +//----------------------------------------------------------------------------- +test1(); +test2(); +//----------------------------------------------------------------------------- + +function test1() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function() { eval("(function() { })"); })(); + + reportCompare(expect, actual, summary + ': nested 1'); + + exitFunc ('test'); +} + +function test2() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function () {(function() { eval("(function() { })"); })();})(); + + reportCompare(expect, actual, summary + ': nested 2'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-356693.js b/js/src/tests/js1_5/Regress/regress-356693.js new file mode 100644 index 000000000..b9d348f65 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-356693.js @@ -0,0 +1,36 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 356693; +var summary = 'Do not assert: pn2->pn_op == JSOP_SETCALL'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'ReferenceError: x is not defined'; + try + { + delete (0 ? 3 : x()); + } + catch(ex) + { + actual = ex + ''; + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-360969-01.js b/js/src/tests/js1_5/Regress/regress-360969-01.js new file mode 100644 index 000000000..b57110d8e --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-360969-01.js @@ -0,0 +1,42 @@ +// |reftest| skip-if(Android&&isDebugBuild) slow -- bug 1216226 +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 360969; +var summary = '2^17: local var'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +var global = this; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var start = new Date(); + var p; + var i; + var limit = 2 << 16; + + for (var i = 0; i < limit; i++) + { + eval('var pv;'); + } + + reportCompare(expect, actual, summary); + + var stop = new Date(); + + print('Elapsed time: ' + Math.floor((stop - start)/1000) + ' seconds'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-360969-02.js b/js/src/tests/js1_5/Regress/regress-360969-02.js new file mode 100644 index 000000000..7ab7efed1 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-360969-02.js @@ -0,0 +1,32 @@ +// |reftest| skip-if(Android&&isDebugBuild) slow -- bug 1216226 +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 360969; +var summary = '2^17: global var'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +var global = this; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var start = new Date(); +var p; +var i; +var limit = 2 << 16; + +for (var i = 0; i < limit; i++) +{ + eval('var pv;'); +} + +reportCompare(expect, actual, summary); + +var stop = new Date(); + +print('Elapsed time: ' + Math.floor((stop - start)/1000) + ' seconds'); diff --git a/js/src/tests/js1_5/Regress/regress-360969-03.js b/js/src/tests/js1_5/Regress/regress-360969-03.js new file mode 100644 index 000000000..312583dd9 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-360969-03.js @@ -0,0 +1,42 @@ +// |reftest| skip-if(Android&&isDebugBuild) slow -- bug 1216226 +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 360969; +var summary = '2^17: local const'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +var global = this; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var start = new Date(); + var p; + var i; + var limit = 2 << 16; + + for (var i = 0; i < limit; i++) + { + eval('const pv' + i + ' = undefined;'); + } + + reportCompare(expect, actual, summary); + + var stop = new Date(); + + print('Elapsed time: ' + Math.floor((stop - start)/1000) + ' seconds'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-360969-04.js b/js/src/tests/js1_5/Regress/regress-360969-04.js new file mode 100644 index 000000000..d33dbbc21 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-360969-04.js @@ -0,0 +1,32 @@ +// |reftest| skip-if(Android&&isDebugBuild) slow -- bug 1216226 +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 360969; +var summary = '2^17: global const'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +var global = this; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var start = new Date(); +var p; +var i; +var limit = 2 << 16; + +for (var i = 0; i < limit; i++) +{ + eval('const pv' + i + ' = undefined;'); +} + +reportCompare(expect, actual, summary); + +var stop = new Date(); + +print('Elapsed time: ' + Math.floor((stop - start)/1000) + ' seconds'); diff --git a/js/src/tests/js1_5/Regress/regress-360969-05.js b/js/src/tests/js1_5/Regress/regress-360969-05.js new file mode 100644 index 000000000..54b4d6829 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-360969-05.js @@ -0,0 +1,44 @@ +// |reftest| skip-if(Android&&isDebugBuild) slow -- bug 1216226 +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 360969; +var summary = '2^17: local function'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +var global = this; + +//----------------------------------------------------------------------------- +test(); + +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var start = new Date(); + var p; + var i; + var limit = 2 << 16; + + for (var i = 0; i < limit; i++) + { + eval('function pf' + i + '() {}'); + } + + reportCompare(expect, actual, summary); + + var stop = new Date(); + + print('Elapsed time: ' + Math.floor((stop - start)/1000) + ' seconds'); + + exitFunc ('test'); +} + diff --git a/js/src/tests/js1_5/Regress/regress-360969-06.js b/js/src/tests/js1_5/Regress/regress-360969-06.js new file mode 100644 index 000000000..cd95040fb --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-360969-06.js @@ -0,0 +1,33 @@ +// |reftest| skip-if(Android&&isDebugBuild) slow -- bug 1216226 +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 360969; +var summary = '2^17: global function'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +var global = this; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var start = new Date(); +var p; +var i; +var limit = 2 << 16; + +for (var i = 0; i < limit; i++) +{ + eval('function pf' + i + '() {}'); +} + +reportCompare(expect, actual, summary); + +var stop = new Date(); + +print('Elapsed time: ' + Math.floor((stop - start)/1000) + ' seconds'); + diff --git a/js/src/tests/js1_5/Regress/regress-361467.js b/js/src/tests/js1_5/Regress/regress-361467.js new file mode 100644 index 000000000..371c0a8b5 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-361467.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 361467; +var summary = 'Do not crash with certain watchers'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = actual = 'No Crash'; + + var x; + this.watch('x', print); + x = 5; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-361617.js b/js/src/tests/js1_5/Regress/regress-361617.js new file mode 100644 index 000000000..5d20fd78f --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-361617.js @@ -0,0 +1,35 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 361617; +var summary = 'Do not crash with getter, watch and gc'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function() { + Object.defineProperty(this, "x", { get: function(){}, enumerable: true, configurable: true }); + })(); + this.watch('x', print); + Object.defineProperty(this, "x", { get: function(){}, enumerable: true, configurable: true }); + gc(); + this.unwatch('x'); + x; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-362583.js b/js/src/tests/js1_5/Regress/regress-362583.js new file mode 100644 index 000000000..389ac539c --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-362583.js @@ -0,0 +1,44 @@ +// |reftest| skip -- obsolete test +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 362583; +var summary = 'Do not assert: caller->fun && !JSFUN_HEAVYWEIGHT_TEST(caller->fun->flags)'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (typeof Script == 'undefined') + { + expect = actual = 'Script object not defined, test skipped.'; + } + else + { + try + { + this.x setter= (new Script('')); + this.watch('x', function() { return; import p.q; }); + x = 4; + } + catch(ex) + { + } + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-3649-n.js b/js/src/tests/js1_5/Regress/regress-3649-n.js new file mode 100644 index 000000000..33355163d --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-3649-n.js @@ -0,0 +1,33 @@ +// |reftest| skip -- skip test due to random oom related errors. +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +// testcase from bug 2235 mff@research.att.com +var BUGNUMBER = 3649; +var summary = 'gc-checking branch callback.'; +var actual = 'error'; +var expect = 'error'; + +DESCRIPTION = summary; +EXPECTED = expect; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expectExitCode(0); +expectExitCode(3); +expectExitCode(5); + +var s = ""; +s = "abcd"; +for (i = 0; i < 100000; i++) { + s += s; +} + +expect = 'No Crash'; +actual = 'No Crash'; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-366122.js b/js/src/tests/js1_5/Regress/regress-366122.js new file mode 100644 index 000000000..ef458fe88 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-366122.js @@ -0,0 +1,46 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 366122; +var summary = 'Compile large script'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function exploit() { + var code = "", obj = {}; + for(var i = 0; i < 0x10000; i++) { + if(i == 10242) { + code += "void 0x10000050505050;\n"; + } else { + code += "void 'x" + i + "';\n"; + } + } + code += "export undefined;\n"; + code += "void 125;\n"; + eval(code); + } + try + { + exploit(); + } + catch(ex) + { + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-366468.js b/js/src/tests/js1_5/Regress/regress-366468.js new file mode 100644 index 000000000..457cc0e1c --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-366468.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 366468; +var summary = 'Set property without setter'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + function o(){} o.prototype = {get foo() {}}; obj = new o(); obj.foo = 2; + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-366601.js b/js/src/tests/js1_5/Regress/regress-366601.js new file mode 100644 index 000000000..5178d9f9e --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-366601.js @@ -0,0 +1,38 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 366601; +var summary = 'Switch with more than 64k atoms'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var N = 100*1000; + var src = 'var x = ["'; + var array = Array(N); + for (var i = 0; i != N; ++i) + array[i] = i; + src += array.join('","')+'"];\n'; + src += 'switch (a) { case "a": case "b": case "c": return null; } return x;'; + var f = Function('a', src); + var r = f("a"); + if (r !== null) + throw "Unexpected result: bad switch label"; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-367561-01.js b/js/src/tests/js1_5/Regress/regress-367561-01.js new file mode 100644 index 000000000..4504cdaad --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-367561-01.js @@ -0,0 +1,37 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 367561; +var summary = 'JSOP_(GET|SET)METHOD and JSOP_SETCONST with > 64K atoms'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var N = 1 << 16; + var src = 'var x = /'; + var array = Array(); + for (var i = 0; i != N/2; ++i) + array[i] = i; + src += array.join('/;x=/')+'/; x="'; + src += array.join('";x="')+'";'; + src += 'y.some_function();'; + var f = Function(src); + var src2 = f.toString(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-367561-03.js b/js/src/tests/js1_5/Regress/regress-367561-03.js new file mode 100644 index 000000000..cfb7432e2 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-367561-03.js @@ -0,0 +1,36 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 367561; +var summary = 'JSOP_(GET|SET)METHOD and JSOP_SETCONST with > 64K atoms'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var N = 1 << 16; + var src = 'var x = /'; + var array = Array(); + for (var i = 0; i != N/2; ++i) + array[i] = i; + src += array.join('/;x=/')+'/; x="'; + src += array.join('";x="')+'";'; + src += 'const some_const = 10'; + eval(src); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-372364.js b/js/src/tests/js1_5/Regress/regress-372364.js new file mode 100644 index 000000000..8117d0c58 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-372364.js @@ -0,0 +1,47 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 372364; +var summary = 'Incorrect error message "() has no properties"'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + print('See Also bug 365891'); + expect = /TypeError: a\(.+\) (has no properties|is null)/; + try + { + function a(){return null;} a(1)[0]; + } + catch(ex) + { + actual = ex + ''; + } + reportMatch(expect, actual, summary); + + expect = /TypeError: \/a\/.exec\(.+\) (has no properties|is null)/; + try + { + /a/.exec("b")[0]; + } + catch(ex) + { + actual = ex + ''; + } + reportMatch(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-379245.js b/js/src/tests/js1_5/Regress/regress-379245.js new file mode 100644 index 000000000..9e4b46858 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-379245.js @@ -0,0 +1,39 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 379245; +var summary = 'inline calls'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var fThis; + + function f() + { + fThis = this; + return ({x: f}).x; + } + + f()(); + + if (this !== fThis) + throw "bad this"; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-383674.js b/js/src/tests/js1_5/Regress/regress-383674.js new file mode 100644 index 000000000..688e00629 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-383674.js @@ -0,0 +1,58 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 383674; +var summary = 'Statement that implicitly calls toString should not be optimized away as a "useless expression"'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + options("strict"); + options("werror"); + + expect = 'toString called'; + actual = 'toString not called'; + try + { + var x = {toString: function() { + actual = 'toString called'; + print(actual); + } + }; + var f = function() { var j = x; j + ""; } + f(); + reportCompare(expect, actual, summary + ': 1'); + } + catch(ex) + { + reportCompare("No Error", ex + "", summary + ': 1'); + } + + actual = 'toString not called'; + try + { + (function() { var a = + ({toString: function(){ + actual = 'toString called'; print(actual)} }); a += ""; })(); + reportCompare(expect, actual, summary + ': 2'); + } + catch(ex) + { + reportCompare("No Error", ex + "", summary + ': 2'); + } + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-383682.js b/js/src/tests/js1_5/Regress/regress-383682.js new file mode 100644 index 000000000..def3c48ee --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-383682.js @@ -0,0 +1,36 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: Blake Kaplan + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 383682; +var summary = 'eval is too dynamic'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function f(s) { + return this.eval(s); + } + + expect = 'PASS'; + f("function g() { return('PASS'); }"); + actual = g(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-385393-06.js b/js/src/tests/js1_5/Regress/regress-385393-06.js new file mode 100644 index 000000000..327103f39 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-385393-06.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 385393; +var summary = 'Regression test for bug 385393'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + reportCompare(expect, actual, summary); + + true.watch("x", function(){}); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-387951-01.js b/js/src/tests/js1_5/Regress/regress-387951-01.js new file mode 100644 index 000000000..f58892b5f --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-387951-01.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 387951; +var summary = 'Do not assert: cg->stackDepth >= 0'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (delete (0 ? 3 : {})); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-387951-02.js b/js/src/tests/js1_5/Regress/regress-387951-02.js new file mode 100644 index 000000000..2c9bf7118 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-387951-02.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 387951; +var summary = 'Do not assert: cg->stackDepth >= 0'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + "" + (function() { if(delete(null?0:{})){[]} }); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-387951-03.js b/js/src/tests/js1_5/Regress/regress-387951-03.js new file mode 100644 index 000000000..d614fa92a --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-387951-03.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 387951; +var summary = 'Do not assert: cg->stackDepth >= 0'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + switch(delete[null?0:{}]){default:} + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-39309.js b/js/src/tests/js1_5/Regress/regress-39309.js new file mode 100644 index 000000000..28e72f4be --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-39309.js @@ -0,0 +1,76 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * + * Date: 30 Sep 2003 + * SUMMARY: Testing concatenation of string + number + * See http://bugzilla.mozilla.org/show_bug.cgi?id=39309 + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 39309; +var summary = 'Testing concatenation of string + number'; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + + +function f(textProp, len) +{ + var i = 0; + while (++i <= len) + { + var name = textProp + i; + actual = name; + } +} + + +status = inSection(1); +f('text', 1); // sets |actual| +expect = 'text1'; +addThis(); + +status = inSection(2); +f('text', 100); // sets |actual| +expect = 'text100'; +addThis(); + + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc('test'); + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i 2 && time > time2 * 5) + throw "A possible leak is observed"; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-406769.js b/js/src/tests/js1_5/Regress/regress-406769.js new file mode 100644 index 000000000..b6bd73989 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-406769.js @@ -0,0 +1,155 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 406769; +var summary = 'Regression from bug 398609 caused infinite loop'; +var actual = ''; +var expect = ''; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + +var a0; +var a1; +var a2; +var a3; +var a4; +var a5; +var a6; +var a7; +var a8; +var a9; +var a10; +var a11; +var a12; +var a13; +var a14; +var a15; +var a16; +var a17; +var a18; +var a19; +var a20; +var a21; +var a22; +var a23; +var a24; +var a25; +var a26; +var a27; +var a28; +var a29; +var a30; +var a31; +var a32; +var a33; +var a34; +var a35; +var a36; +var a37; +var a38; +var a39; +var a40; +var a41; +var a42; +var a43; +var a44; +var a45; +var a46; +var a47; +var a48; +var a49; +var a50; +var a51; +var a52; +var a53; +var a54; +var a55; +var a56; +var a57; +var a58; +var a59; +var a60; +var a61; +var a62; +var a63; +var a64; +var a65; +var a66; +var a67; +var a68; +var a69; +var a70; +var a71; +var a72; +var a73; +var a74; +var a75; +var a76; +var a77; +var a78; +var a79; +var a80; +var a81; +var a82; +var a83; +var a84; +var a85; +var a86; +var a87; +var a88; +var a89; +var a90; +var a91; +var a92; +var a93; +var a94; +var a95; +var a96; +var a97; +var a98; +var a99; +var a100; +var a101; +var a102; +var a103; +var a104; +var a105; +var a106; +var a107; +var a108; +var a109; +var a110; +var a111; +var a112; +var a113; +var a114; +var a115; +var a116; +var a117; +var a118; +var a119; +var a120; +var a121; +var a122; +var a123; +var a124; +var a125; +for (var a126 = 1; a126 < ([1,2,3]).length -1; ++a126) + 1; + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-407024.js b/js/src/tests/js1_5/Regress/regress-407024.js new file mode 100644 index 000000000..7bc4a7c09 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-407024.js @@ -0,0 +1,20 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 407024; +var summary = 'Do not assert pn3->pn_val.isNumber() || pn3->pn_val.isString() || pn3->pn_val.isBoolean()'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +eval("function f(x) { switch (x) { case Array: return 1; }}"); +var result = f(Array); +if (result !== 1) + throw "Unexpected result: "+uneval(result); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-407957.js b/js/src/tests/js1_5/Regress/regress-407957.js new file mode 100644 index 000000000..ffd05bd42 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-407957.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 407957; +var summary = 'Iterator is mutable.'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var obj = {}; + var saveIterator = Iterator; + + Iterator = obj; + reportCompare(obj, Iterator, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-410852.js b/js/src/tests/js1_5/Regress/regress-410852.js new file mode 100644 index 000000000..04109b468 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-410852.js @@ -0,0 +1,37 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: Robert Sayre + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 410852; +var summary = 'Valgrind errors in jsemit.cpp'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + print('Note: You must run this test under valgrind to determine if it passes'); + + try + { + eval('function(){if(t)'); + } + catch(ex) + { + assertEq(ex instanceof SyntaxError, true, "wrong error: " + ex); + } + + reportCompare(true, true, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-416737-01.js b/js/src/tests/js1_5/Regress/regress-416737-01.js new file mode 100644 index 000000000..7321d830e --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-416737-01.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 416737; +var summary = 'Do not assert: *pc == JSOP_GETARG'; +var actual = ''; +var expect = ''; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function() { (function([]){ function n(){} })(1) }); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} + diff --git a/js/src/tests/js1_5/Regress/regress-416737-02.js b/js/src/tests/js1_5/Regress/regress-416737-02.js new file mode 100644 index 000000000..1d4c43c54 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-416737-02.js @@ -0,0 +1,33 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 416737; +var summary = 'Do not assert: *pc == JSOP_GETARG'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f = function([]){ function n(){} }; + if (typeof dis == 'function') + { + dis(f); + } + print(f); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-417893.js b/js/src/tests/js1_5/Regress/regress-417893.js new file mode 100644 index 000000000..4a7ce6e1b --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-417893.js @@ -0,0 +1,36 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 417893; +var summary = 'Fast natives must use JS_THIS/JS_THIS_OBJECT'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + (function() { var s = function(){}.prototype.toSource; s(); })(); + } + catch (e) + { + assertEq(e instanceof TypeError, true, + "No TypeError for Object.prototype.toSource"); + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-418540.js b/js/src/tests/js1_5/Regress/regress-418540.js new file mode 100644 index 000000000..f03f98b27 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-418540.js @@ -0,0 +1,62 @@ +// |reftest| skip-if(xulRuntime.OS=="WINNT"&&isDebugBuild) slow +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 418540; +var summary = 'Do not assert: OBJ_IS_NATIVE(obj)'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (typeof window == 'undefined') + { + expect = actual = 'Browser test only - skipped'; + reportCompare(expect, actual, summary); + } + else + { + gDelayTestDriverEnd = true; + window.onload = boom; + } + + exitFunc ('test'); +} + +function boom() +{ + var p; + var b = document.createElement("body"); + var v = document.createElement("div"); + b.getAttribute("id") + v.getAttribute("id") + for (p in v) { } + for (p in b) { } + b.__proto__ = []; + try { aC(v, null); } catch(e) { } + try { aC(b, null); } catch(e) { } + + setTimeout(check, 1000); +} + +function aC(r, n) { r.appendChild(n); } + +function check() +{ + expect = actual = 'No Crash'; + gDelayTestDriverEnd = false; + reportCompare(expect, actual, summary); + jsTestDriverEnd(); +} diff --git a/js/src/tests/js1_5/Regress/regress-419018.js b/js/src/tests/js1_5/Regress/regress-419018.js new file mode 100644 index 000000000..35a4fb832 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-419018.js @@ -0,0 +1,47 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 419018; +var summary = 'UMR in JSENUMERATE_INIT'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + print('This test must be run under valgrind to check if an UMR occurs in slowarray_enumerate'); + + try + { + function parse() { + var a = []; // need array init + a["b"] = 1; // need to set obj property + return a; + } + // var c; // can't declare c + // var d = {}; // can't add this (weird!) + // var d = ""; // nor this + var x = parse(""); // won't crash without string arg (weird!) + // var d = ""; // nor here + for (var o in x) + c[o]; // need to look up o in undefined object + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} + diff --git a/js/src/tests/js1_5/Regress/regress-419803.js b/js/src/tests/js1_5/Regress/regress-419803.js new file mode 100644 index 000000000..765298c72 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-419803.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 419803; +var summary = 'Do not assert: sprop->parent == scope->lastProp'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var i=0; i<2; ++i) ({ p: 5, p: 7 }); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-420919.js b/js/src/tests/js1_5/Regress/regress-420919.js new file mode 100644 index 000000000..f58b8d99f --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-420919.js @@ -0,0 +1,37 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 420919; +var summary = 'this.u.v = 1 should report this.u is undefined'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + // 1.8 branch reports no properties, trunk reports undefined + expect = /TypeError: this.u is undefined|TypeError: this.u has no properties/; + + try + { + this.u.v = 1; + } + catch(ex) + { + actual = ex + ''; + } + reportMatch(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-422348.js b/js/src/tests/js1_5/Regress/regress-422348.js new file mode 100644 index 000000000..7ae83f4a6 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-422348.js @@ -0,0 +1,38 @@ +// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64|aarch64|ppc64|ppc64le|s390x/)) -- On 64-bit, takes forever rather than throwing +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 422348; +var summary = 'Proper overflow error reporting'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'InternalError: allocation size overflow'; + try + { + Array(1 << 30).sort(); + actual = 'No Error'; + } + catch (ex) + { + actual = ex + ''; + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-424311.js b/js/src/tests/js1_5/Regress/regress-424311.js new file mode 100644 index 000000000..e2d0adeac --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-424311.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 424311; +var summary = 'Do not assert: entry->kpc == ((PCVCAP_TAG(entry->vcap) > 1) ? (jsbytecode *) JSID_TO_ATOM(id) : cx->fp->regs->pc)'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function(){(function(){ constructor=({}); })()})(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-425360.js b/js/src/tests/js1_5/Regress/regress-425360.js new file mode 100644 index 000000000..8d72808ab --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-425360.js @@ -0,0 +1,42 @@ +// |reftest| skip-if(xulRuntime.OS=="WINNT"&&isDebugBuild) slow +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 425360; +var summary = 'Do not assert: !cx->throwing'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +function finishtest() +{ + gDelayTestDriverEnd = false; + reportCompare(expect, actual, summary); + jsTestDriverEnd(); +} + +function throwBlah() +{ + throw 'blah'; +} + +printBugNumber(BUGNUMBER); +printStatus (summary); + +if (typeof window == 'undefined') +{ + expect = actual = 'Not tested. Requires browser.'; + reportCompare(expect, actual, summary); +} +else +{ + gDelayTestDriverEnd = true; + window.onerror = null; + setTimeout('finishtest()', 1000); + window.onload = (function () { setInterval('throwBlah()', 0); }); + setInterval('foo(', 0); +} + + diff --git a/js/src/tests/js1_5/Regress/regress-426827.js b/js/src/tests/js1_5/Regress/regress-426827.js new file mode 100644 index 000000000..69115b9e7 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-426827.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 426827; +var summary = 'Do not assert: !(CodeSpec[op2].format & JOF_DEL)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + eval('eval()=delete a;'); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-428366.js b/js/src/tests/js1_5/Regress/regress-428366.js new file mode 100644 index 000000000..13a6699fd --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-428366.js @@ -0,0 +1,21 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: Blake Kaplan + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 428366; +var summary = 'Do not assert deleting eval 16 times'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +this.__proto__.x = eval; +for (i = 0; i < 16; ++i) delete eval; +(function w() { x = 1; })(); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-438415-01.js b/js/src/tests/js1_5/Regress/regress-438415-01.js new file mode 100644 index 000000000..5aa6b6bf0 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-438415-01.js @@ -0,0 +1,27 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 438415; +var summary = 'Do not assert: *vp != JSVAL_HOLE'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + [1,,].pop(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-438415-02.js b/js/src/tests/js1_5/Regress/regress-438415-02.js new file mode 100644 index 000000000..24febbc78 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-438415-02.js @@ -0,0 +1,31 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 438415; +var summary = 'Do not assert: *vp != JSVAL_HOLE'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'zero'; + Array.prototype[0] = 'zero'; + var a = []; + a.length = 1; + actual = a.pop(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-440926.js b/js/src/tests/js1_5/Regress/regress-440926.js new file mode 100644 index 000000000..463981123 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-440926.js @@ -0,0 +1,31 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 440926; +var summary = 'Correctly match regexps with special "i" characters'; +var actual = ''; +var expect = 'iI#,iI#;iI#,iI#'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + actual += 'iI\u0130'.replace(/[\u0130]/gi, '#'); + actual += ',' + 'iI\u0130'.replace(/\u0130/gi, '#'); + + actual += ';' + 'iI\u0130'.replace(/[\u0130]/gi, '#'); + actual += ',' + 'iI\u0130'.replace(/\u0130/gi, '#'); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-449627.js b/js/src/tests/js1_5/Regress/regress-449627.js new file mode 100644 index 000000000..f50fd29e2 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-449627.js @@ -0,0 +1,114 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: Robert Sayre + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 449627; +var summary = 'Crash with JIT in js_FillPropertyCache'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + + +/************************ BROWSER DETECT (http://www.quirksmode.org/js/detect.html) ************************/ + +if (typeof navigator == 'undefined') +{ + navigator = { + userAgent: "Firefox", + vendor: "Mozilla", + platform: "Mac" + }; +} + +global = this; + +var BrowserDetect = { + init: function _init() + { + this.browser=this.searchString(this.dataBrowser) || "An unknown browser"; + + this.OS= this.searchString(this.dataOS)||"an unknown OS"; + }, + searchString: function _searchString(a) + { + for(var i=0; i < a.length; i++) + { + var b=a[i].string; + var c=a[i].prop; + this.versionSearchString=a[i].versionSearch||a[i].identity; + if(b) + { + if(b.indexOf(a[i].subString)!=-1) + return a[i].identity; + } + else if(c) + return a[i].identity; + } + }, + + searchVersion:function _searchVersion(a) + { + var b=a.indexOf(this.versionSearchString); + if(b==-1) + return; + return parseFloat(a.substring(b+this.versionSearchString.length+1)); + }, + + dataBrowser:[ + { + string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb" + }, + { + string:navigator.vendor,subString:"Apple",identity:"Safari" + }, + { + prop:global.opera,identity:"Opera" + }, + { + string:navigator.vendor,subString:"iCab",identity:"iCab" + }, + { + string:navigator.vendor,subString:"KDE",identity:"Konqueror" + }, + { + string:navigator.userAgent,subString:"Firefox",identity:"Firefox" + }, + { + string:navigator.vendor,subString:"Camino",identity:"Camino" + }, + { + string:navigator.userAgent,subString:"Netscape",identity:"Netscape" + }, + { + string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE" + }, + { + string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv" + }, + { + string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla" + } + ], + dataOS:[ + { + string:navigator.platform,subString:"Win",identity:"Windows" + }, + { + string:navigator.platform,subString:"Mac",identity:"Mac" + }, + { + string:navigator.platform,subString:"Linux",identity:"Linux" + } + ] + }; + +BrowserDetect.init(); + + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-449666.js b/js/src/tests/js1_5/Regress/regress-449666.js new file mode 100644 index 000000000..2703b8ee9 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-449666.js @@ -0,0 +1,65 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: Robert Sayre + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 449666; +var summary = 'Do not assert: JSSTRING_IS_FLAT(str_)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var global; + + + if (typeof window == 'undefined') { + global = this; + } + else { + global = window; + } + + if (!global['g']) { + global['g'] = {}; + } + + if (!global['g']['l']) { + global['g']['l'] = {}; + (function() { + function k(a,b){ + var c=a.split(/\./); + var d=global; + for(var e=0;e= 0 ? new Date(value) : value; + }); + + This is a reference implementation. You are free to copy, modify, or + redistribute. + + Use your own copy. It is extremely unwise to load third party + code into your pages. +*/ + +/*jslint evil: true */ +/*extern JSON */ + +if (!this.emulatedJSON) { + + emulatedJSON = function () { + + function f(n) { // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + Date.prototype.toJSON = function () { + +// Eventually, this method will be based on the date.toISOString method. + + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + + + var m = { // table of character substitutions + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }; + + function stringify(value, whitelist) { + var a, // The array holding the partial texts. + i, // The loop counter. + k, // The member key. + l, // Length. + r = /["\\\x00-\x1f\x7f-\x9f]/g, + v; // The member value. + + switch (typeof value) { + case 'string': + +// If the string contains no control characters, no quote characters, and no +// backslash characters, then we can safely slap some quotes around it. +// Otherwise we must also replace the offending characters with safe sequences. + + return r.test(value) ? + '"' + value.replace(r, function (a) { + var c = m[a]; + if (c) { + return c; + } + c = a.charCodeAt(); + return '\\u00' + Math.floor(c / 16).toString(16) + + (c % 16).toString(16); + }) + '"' : + '"' + value + '"'; + + case 'number': + +// JSON numbers must be finite. Encode non-finite numbers as null. + + return isFinite(value) ? String(value) : 'null'; + + case 'boolean': + case 'null': + return String(value); + + case 'object': + +// Due to a specification blunder in ECMAScript, +// typeof null is 'object', so watch out for that case. + + if (!value) { + return 'null'; + } + +// If the object has a toJSON method, call it, and stringify the result. + + if (typeof value.toJSON === 'function') { + return stringify(value.toJSON()); + } + a = []; + if (typeof value.length === 'number' && + !(value.propertyIsEnumerable('length'))) { + +// The object is an array. Stringify every element. Use null as a placeholder +// for non-JSON values. + + l = value.length; + for (i = 0; i < l; i += 1) { + a.push(stringify(value[i], whitelist) || 'null'); + } + +// Join all of the elements together and wrap them in brackets. + + return '[' + a.join(',') + ']'; + } + if (whitelist) { + +// If a whitelist (array of keys) is provided, use it to select the components +// of the object. + + l = whitelist.length; + for (i = 0; i < l; i += 1) { + k = whitelist[i]; + if (typeof k === 'string') { + v = stringify(value[k], whitelist); + if (v) { + a.push(stringify(k) + ':' + v); + } + } + } + } else { + +// Otherwise, iterate through all of the keys in the object. + + for (k in value) { + if (typeof k === 'string') { + v = stringify(value[k], whitelist); + if (v) { + a.push(stringify(k) + ':' + v); + } + } + } + } + +// Join all of the member texts together and wrap them in braces. + + return '{' + a.join(',') + '}'; + } + return undefined; + } + + return { + stringify: stringify, + parse: function (text, filter) { + var j; + + function walk(k, v) { + var i, n; + if (v && typeof v === 'object') { + for (i in v) { + if (Object.prototype.hasOwnProperty.apply(v, [i])) { + n = walk(i, v[i]); + if (n !== undefined) { + v[i] = n; + } + } + } + } + return filter(k, v); + } + + +// Parsing happens in three stages. In the first stage, we run the text against +// regular expressions that look for non-JSON patterns. We are especially +// concerned with '()' and 'new' because they can cause invocation, and '=' +// because it can cause mutation. But just to be safe, we want to reject all +// unexpected forms. + +// We split the first stage into 4 regexp operations in order to work around +// crippling inefficiencies in IE's and Safari's regexp engines. First we +// replace all backslash pairs with '@' (a non-JSON character). Second, we +// replace all simple value tokens with ']' characters. Third, we delete all +// open brackets that follow a colon or comma or that begin the text. Finally, +// we look to see that the remaining characters are only whitespace or ']' or +// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. + + if (/^[\],:{}\s]*$/.test(text.replace(/\\./g, '@'). +replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(:?[eE][+\-]?\d+)?/g, ']'). +replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + +// In the second stage we use the eval function to compile the text into a +// JavaScript structure. The '{' operator is subject to a syntactic ambiguity +// in JavaScript: it can begin a block or an object literal. We wrap the text +// in parens to eliminate the ambiguity. + + j = eval('(' + text + ')'); + +// In the optional third stage, we recursively walk the new structure, passing +// each name/value pair to a filter function for possible transformation. + + return typeof filter === 'function' ? walk('', j) : j; + } + +// If the text is not JSON parseable, then a SyntaxError is thrown. + + throw new SyntaxError('parseJSON'); + } + }; + }(); +} + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + var testPairs = [ + ["{}", {}], + ["[]", []], + ['{"foo":"bar"}', {"foo":"bar"}], + ['{"null":null}', {"null":null}], + ['{"five":5}', {"five":5}], + ] + + var a = []; + for (var i=0; i < testPairs.length; i++) { + var pair = testPairs[i]; + var s = emulatedJSON.stringify(pair[1]) + a[i] = s; + } + print(a.join("\n")); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} + diff --git a/js/src/tests/js1_5/Regress/regress-450833.js b/js/src/tests/js1_5/Regress/regress-450833.js new file mode 100644 index 000000000..c94a68585 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-450833.js @@ -0,0 +1,45 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 450833; +var summary = 'TM: Multiple trees per entry point'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 100; + + + function f(i) { + for (var m = 0; m < 20; ++m) + for (var n = 0; n < 100; n += i) + ; + return n; + } + + print(actual = f(1)); + + + reportCompare(expect, actual, summary); + + + print(actual = f(.5)); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-451322.js b/js/src/tests/js1_5/Regress/regress-451322.js new file mode 100755 index 000000000..9ea75e4e6 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-451322.js @@ -0,0 +1,37 @@ +// |reftest| skip -- slow +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 451322; +var summary = 'Do not crash with OOM in LirBufWriter'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + function f() { + for (var i = 0; i < 200000; i++) { + var m = new Function("var k = 0; for (var j = 0; j < 5; j++) { k += j * 2 + 8 / (j+3) * k} return k;"); + m(); + } + } + f(); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-451884.js b/js/src/tests/js1_5/Regress/regress-451884.js new file mode 100644 index 000000000..dbff37c64 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-451884.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 451884; +var summary = 'Do not crash [@ QuoteString]'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + (function(k){eval("k.y")})(); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-451946.js b/js/src/tests/js1_5/Regress/regress-451946.js new file mode 100644 index 000000000..e30606448 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-451946.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 451946; +var summary = 'Do not crash with SELinux execheap protection'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + print('This test is only valid with SELinux targetted policy with exeheap protection'); + + + var i; for (i = 0; i < 2000000; i++) {;} + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452008.js b/js/src/tests/js1_5/Regress/regress-452008.js new file mode 100644 index 000000000..8c278a033 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452008.js @@ -0,0 +1,151 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452008; +var summary = 'Bad math with JIT'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + +// regression test for Bug 452008 - TM: SRP in Clipperz crypto library fails when JIT (TraceMonkey) is enabled. + + var x = [9385, 32112, 25383, 16317, 30138, 14565, 17812, 24500, 2719, 30174, 3546, 9096, 15352, 19120, 20648, 14334, 7426, 0, 0, 0]; + var n = [27875, 25925, 30422, 12227, 27798, 32170, 10873, 21748, 30629, 26296, 20697, 5125, 4815, 2221, 14392, 23369, 5560, 2, 0, 0]; + var np = 18229; + var expected = [18770, 31456, 17999, 32635, 27508, 29131, 2856, 16233, 5439, 27580, 7093, 18192, 30804, 5472, 8529, 28649, 14852, 0, 0, 0]; + +//globals + bpe=0; //bits stored per array element + mask=0; //AND this with an array element to chop it down to bpe bits + +//initialize the global variables + for (bpe=0; (1<<(bpe+1)) > (1<>=1; //bpe=number of bits in one element of the array representing the bigInt + mask=(1<>=bpe; + } + } + +//is x > y? (x and y both nonnegative) + function greater(x,y) { + var i; + var k=(x.length=0;i--) + if (x[i]>y[i]) + return 1; + else if (x[i]0 && n[kn-1]==0;kn--); //ignore leading zeros of n + for (;ky>0 && y[ky-1]==0;ky--); //ignore leading zeros of y + + copyInt_(sa,0); + + //the following loop consumes 95% of the runtime for randTruePrime_() and powMod_() for large keys + for (i=0; i> bpe; + t=x[i]; + + //do sa=(sa+x[i]*y+ui*n)/b where b=2**bpe + for (j=1;j>=bpe; + } + for (;j>=bpe; + } + sa[j-1]=c & mask; + } + + if (!greater(n,sa)) + sub_(sa,n); + copy_(x,sa); + } + + mont_(x, x, n, np); + + var passed = expected.length == x.length; + for (var i = 0; i < expected.length; i++) { + if (passed) + passed = expected[i] == x[i]; + } + print(passed); + + + expect = true; + actual = passed; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452170.js b/js/src/tests/js1_5/Regress/regress-452170.js new file mode 100644 index 000000000..813102bda --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452170.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452170; +var summary = 'Do not assert with JIT: (*m != JSVAL_INT) || isInt32(*vp)'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 4; ++j) { (-0).toString(); } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452189.js b/js/src/tests/js1_5/Regress/regress-452189.js new file mode 100644 index 000000000..811fe5fbd --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452189.js @@ -0,0 +1,23 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*- */ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: Geoff Garen + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452189; +var summary = "Don't shadow a readonly or setter proto-property"; +var expect = "PASS"; +var actual = "FAIL"; + +function c() { + this.x = 3; +} + + +new c; +Object.prototype.__defineSetter__('x', function(){ actual = expect; }) +new c; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-452333.js b/js/src/tests/js1_5/Regress/regress-452333.js new file mode 100644 index 000000000..41d919bde --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452333.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452333; +var summary = 'Do not crash with JIT: @ js_SkipWhiteSpace'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j = 0; j < 5; ++j) { (typeof 3/0); } })(); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452336.js b/js/src/tests/js1_5/Regress/regress-452336.js new file mode 100644 index 000000000..2ade29ca0 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452336.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452336; +var summary = 'Do not assert with JIT: (slot) < (uint32_t)(obj)->dslots[-1]'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 4; ++j) { [1].x++; } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452346.js b/js/src/tests/js1_5/Regress/regress-452346.js new file mode 100644 index 000000000..e3aeefe86 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452346.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452346; +var summary = 'Do not crash: @ Balloc'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var j=0;j<2;++j) (0.1).toPrecision(30); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452495.js b/js/src/tests/js1_5/Regress/regress-452495.js new file mode 100644 index 000000000..ae07f37a1 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452495.js @@ -0,0 +1,19 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452495; +var summary = 'Do not crash with JIT: @ TraceRecorder::getThis'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + + +for (var j = 0; j < 4; ++j) { try { new 1(this); } catch(e) { } } + + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-452573-01.js b/js/src/tests/js1_5/Regress/regress-452573-01.js new file mode 100644 index 000000000..bd5171f4c --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452573-01.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452573; +var summary = 'Do not assert with JIT: boxed.isUndefined() || boxed.isBoolean()'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for(var j=0;j<5;++j) typeof void /x/; + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452573-02.js b/js/src/tests/js1_5/Regress/regress-452573-02.js new file mode 100644 index 000000000..7d5faf8e1 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452573-02.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452573; +var summary = 'Do not assert with JIT: "(((rmask(rr) & FpRegs) != 0))"'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for(var j=0;j<5;++j) typeof void 1; + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452713.js b/js/src/tests/js1_5/Regress/regress-452713.js new file mode 100644 index 000000000..c7c4dd9a9 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452713.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452713; +var summary = 'Do not assert with JIT: "Should not move data from GPR to XMM": false'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 5; ++j) { if (''[-1]) { } } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452724-01.js b/js/src/tests/js1_5/Regress/regress-452724-01.js new file mode 100644 index 000000000..1c8c55a25 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452724-01.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452724; +var summary = 'Do not assert with JIT: (rmask(rr) & FpRegs) != 0'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j=0;j<5;++j) { (0/0) in this; } })() + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452724-02.js b/js/src/tests/js1_5/Regress/regress-452724-02.js new file mode 100644 index 000000000..135d402d5 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452724-02.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452724; +var summary = 'Do not crash with JIT: @TraceRecorder::getThis'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j=0;j<5;++j) { (0/0) in this; } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452742-01.js b/js/src/tests/js1_5/Regress/regress-452742-01.js new file mode 100644 index 000000000..69fdd2ba6 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452742-01.js @@ -0,0 +1,51 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452742; +var summary = 'Do not do overzealous eval inside function optimization in BindNameToSlot'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = actual = 'No Error'; + + var obj = { x: -100 }; + + function a(x) + { + var orig_x = x; + var orig_obj_x = obj.x; + + with (obj) { eval("x = x + 10"); } + + if (x !== orig_x) + throw "Unexpected mutation of x: " + x; + if (obj.x !== orig_obj_x + 10) + throw "Unexpected mutation of obj.x: " + obj.x; + } + + try + { + a(0); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452742-02.js b/js/src/tests/js1_5/Regress/regress-452742-02.js new file mode 100644 index 000000000..7a5e9a5b4 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452742-02.js @@ -0,0 +1,56 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452742; +var summary = 'Do not do overzealous eval inside function optimization in BindNameToSlot'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = ''; + + var obj = { arguments: [-100] }; + + function a() + { + with (obj) { return eval("arguments[0]"); } + } + + function b() + { + var result; + eval('with (obj) { result = eval("arguments[0]"); };'); + return result; + } + + try + { + var result = a(); + if (result !== -100) + throw "Bad result " + result; + + var result = b(); + if (result !== -100) + throw "Bad result " + result; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452853.js b/js/src/tests/js1_5/Regress/regress-452853.js new file mode 100644 index 000000000..7e9b3f6cf --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452853.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452853; +var summary = 'Do not crash in simple loop with array'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j=0; j<4; ++j) { var a = ["", ""]; a[0] * a[1]; } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452884-01.js b/js/src/tests/js1_5/Regress/regress-452884-01.js new file mode 100644 index 000000000..cfd68fa55 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452884-01.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452884; +var summary = 'Do not crash in switch'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j=0;j<5;++j) { switch(1.1) { case NaN: case 2: } } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-452884-02.js b/js/src/tests/js1_5/Regress/regress-452884-02.js new file mode 100644 index 000000000..3a433c9f2 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-452884-02.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452884; +var summary = 'Do not crash in switch'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j=0;j<5;++j) { switch(1.1) { case 2: case NaN: } } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-453024.js b/js/src/tests/js1_5/Regress/regress-453024.js new file mode 100644 index 000000000..f89a4793f --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-453024.js @@ -0,0 +1,45 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 453024; +var summary = 'Do not assert: vp + 2 + argc <= (jsval *) cx->stackPool.current->avail'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +if (typeof window == 'undefined') +{ + reportCompare(true, true, summary + ': test requires browser.'); +} +else +{ + gDelayTestDriverEnd = true; + var j = 0; + + function test() + { + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var i = 0; i < 2000; ++i) { + var ns = document.createElementNS("http://www.w3.org/1999/xhtml", "script"); + var nt = document.createTextNode("++j"); + ns.appendChild(nt); + document.body.appendChild(ns); + } + + gDelayTestDriverEnd = false; + + reportCompare(expect, actual, summary); + + jsTestDriverEnd(); + + exitFunc ('test'); + } + + window.addEventListener('load', test, false); + +} diff --git a/js/src/tests/js1_5/Regress/regress-453173.js b/js/src/tests/js1_5/Regress/regress-453173.js new file mode 100644 index 000000000..804a5cf68 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-453173.js @@ -0,0 +1,31 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 453173; +var summary = 'Do not Crash with JIT [@ TraceRecorder::record_JSOP_ENDINIT] with "[,]"'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var i; + + + for(i=0;i<4;++i) [,]; + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-453397.js b/js/src/tests/js1_5/Regress/regress-453397.js new file mode 100644 index 000000000..ec7835f55 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-453397.js @@ -0,0 +1,46 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 453397; +var summary = 'Do not assert with JIT: script->main <= target && target < script->code + script->length'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + function computeEscapeSpeed(real) { + for (var j = 1; j < 4; ++j) { + if (real > 2) { + } + } + } + + const numRows = 4; + const numCols = 4; + var realStep = 1.5; + for (var i = 0, curReal = -2.1; + i < numCols; + ++i, curReal += realStep) { + for (var j = 0; j < numRows; ++j) { + computeEscapeSpeed(curReal); + } + } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-453701.js b/js/src/tests/js1_5/Regress/regress-453701.js new file mode 100644 index 000000000..a068e5cdc --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-453701.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 453701; +var summary = 'Do not assert with JIT: (rmask(rr) & FpRegs) != 0'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j = 0; j < 5; ++j) { (1).hasOwnProperty(""); } })(); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-453747.js b/js/src/tests/js1_5/Regress/regress-453747.js new file mode 100644 index 000000000..04e57f7a9 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-453747.js @@ -0,0 +1,37 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 453747; +var summary = 'Do not assert with JIT: boxed.isUndefined() || boxed.isBoolean()'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function(){ + var a = []; + var s = 10; + for (var i = 0; i < s; ++i) + a[i] = 1; + a[4*s-1] = 2; + for (var i = s+1; i < s+4; ++i) + typeof a[i]; + })(); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-454682.js b/js/src/tests/js1_5/Regress/regress-454682.js new file mode 100644 index 000000000..ee459d080 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-454682.js @@ -0,0 +1,33 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 454682; +var summary = 'Do not crash with JIT in MatchRegExp'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + var a = new String("foo"); + for (i = 0; i < 300; i++) { + a.match(/bar/); + } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-454981.js b/js/src/tests/js1_5/Regress/regress-454981.js new file mode 100644 index 000000000..2e87ba6bf --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-454981.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 454981; +var summary = 'Do not assert with JIT: size_t(p - cx->fp->slots) < cx->fp->script->nslots'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + function f1() { + function f0() { return arguments[0]; } + for (var i = 0; i < 4; i++) f0('a'); + } + f1(); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-455605.js b/js/src/tests/js1_5/Regress/regress-455605.js new file mode 100644 index 000000000..73f4fe804 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-455605.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 455605; +var summary = 'Do not assert with JIT: "need a way to EOT now, since this is trace end": 0'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 4; ++j) { switch(0/0) { } } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-455748.js b/js/src/tests/js1_5/Regress/regress-455748.js new file mode 100644 index 000000000..f96270682 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-455748.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 455748; +var summary = 'Do not assert with JIT: Should not move data from GPR to XMM'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 5; ++j) { if([1][-0]) { } } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-455758-01.js b/js/src/tests/js1_5/Regress/regress-455758-01.js new file mode 100644 index 000000000..619002ec5 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-455758-01.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 455758; +var summary = 'Do not assert: (m != JSVAL_INT) || isInt32(*vp)'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j = 0; j < 5; ++j) { var t = 3 % (-0); } })(); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-455758-02.js b/js/src/tests/js1_5/Regress/regress-455758-02.js new file mode 100644 index 000000000..213f5edd5 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-455758-02.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 455758; +var summary = 'Do not crash: divide by zero'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j = 0; j < 5; ++j) { 3 % (-0); } })(); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-455775.js b/js/src/tests/js1_5/Regress/regress-455775.js new file mode 100644 index 000000000..03e9f5d47 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-455775.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 455775; +var summary = 'Do not assert: cx->fp->flags & JSFRAME_EVAL'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + (function() { var c; eval("new (c ? 1 : {});"); })(); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-456470.js b/js/src/tests/js1_5/Regress/regress-456470.js new file mode 100644 index 000000000..6d6d98b8b --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-456470.js @@ -0,0 +1,38 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 456470; +var summary = 'TM: Make sure JSOP_DEFLOCALFUN pushes the right function object.'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + function x() { + function a() { + return true; + } + return a(); + } + + for (var i = 0; i < 10; ++i) + x(); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-456477-01.js b/js/src/tests/js1_5/Regress/regress-456477-01.js new file mode 100644 index 000000000..9e46cf444 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-456477-01.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 456477; +var summary = 'Do not assert with JIT: (m != JSVAL_INT) || isInt32(*vp)" with (0/0)%(-1)'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 5; ++j) { var t = (0 / 0) % (-1); } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-456477-02.js b/js/src/tests/js1_5/Regress/regress-456477-02.js new file mode 100644 index 000000000..4e0139cc7 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-456477-02.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 456477; +var summary = 'Do not assert with JIT: (m != JSVAL_INT) || isInt32(*vp)" with (0/0)%(-1)'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j = 0; j < 5; ++j) { (0 / 0) % (-1); } })(); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-456494.js b/js/src/tests/js1_5/Regress/regress-456494.js new file mode 100644 index 000000000..e3a8649c7 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-456494.js @@ -0,0 +1,48 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 456494; +var summary = 'Do not crash with apply and argc > nargs'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + function k(s) + { + } + function f() + { + for (i = 0; i < 10; i++) + { + k.apply(this, arguments); + } + } + f(1); + + + if (typeof this.tracemonkey != 'undefined') + { + for (var p in this.tracemonkey) + { + print(p + ':' + this.tracemonkey[p]); + } + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-456540-01.js b/js/src/tests/js1_5/Regress/regress-456540-01.js new file mode 100644 index 000000000..5c16774ef --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-456540-01.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 456540; +var summary = 'Do not assert with JIT: (m != JSVAL_INT) || isInt32(*vp)" with ((-1) % ""'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 5; ++j) { var t = ((-1) % "" ); } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-456540-02.js b/js/src/tests/js1_5/Regress/regress-456540-02.js new file mode 100644 index 000000000..1731b3d03 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-456540-02.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 456540; +var summary = 'Do not assert with JIT: (m != JSVAL_INT) || isInt32(*vp)" with ((-1) % ""'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j = 0; j < 5; ++j) { ((-1) % "" ); } })(); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-457065-03.js b/js/src/tests/js1_5/Regress/regress-457065-03.js new file mode 100644 index 000000000..e00f23620 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-457065-03.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 457065; +var summary = 'Do not assert: !fp->callee || fp->thisp == fp->argv[-1].toObjectOrNull()'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { + new function (){ for (var x = 0; x < 3; ++x){} }; + })(); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-457456.js b/js/src/tests/js1_5/Regress/regress-457456.js new file mode 100644 index 000000000..2e3a52ece --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-457456.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 457456; +var summary = 'Do not assert with JIT: cond->isCond()'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 4; ++j) { if (undefined < false) { } } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-457778.js b/js/src/tests/js1_5/Regress/regress-457778.js new file mode 100644 index 000000000..d9f1c4b22 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-457778.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 457778; +var summary = 'Do not assert with JIT: cond->isCond()'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 4; ++j) { if (undefined < false) { } } + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-458851.js b/js/src/tests/js1_5/Regress/regress-458851.js new file mode 100644 index 000000000..843bb4f2a --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-458851.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 458851; +var summary = 'TM: for-in loops should not skip every other value sometimes'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + + +function f() { + var a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]; + var x = 0; + for (var i in a) { + i = parseInt(i); + x++; + } + print(actual = x); +} + +expect = 16; +f(); + + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-459085.js b/js/src/tests/js1_5/Regress/regress-459085.js new file mode 100644 index 000000000..e00c7d736 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-459085.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: Jason Orendorff + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 459085; +var summary = 'Do not assert with JIT: Should not move data from GPR to XMM'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + var m = new Number(3); + function foo() { for (var i=0; i<20;i++) m.toString(); } + foo(); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-459628.js b/js/src/tests/js1_5/Regress/regress-459628.js new file mode 100644 index 000000000..f0d4f6c38 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-459628.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 459628; +var summary = 'Do not assert: STOBJ_GET_SLOT(obj, map->freeslot).isUndefined()'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + +(function() { + for (var odjoff = 0; odjoff < 4; ++odjoff) { + new Date()[0] = 3; + } +})(); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-459990.js b/js/src/tests/js1_5/Regress/regress-459990.js new file mode 100644 index 000000000..e06b88072 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-459990.js @@ -0,0 +1,33 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 459990; +var summary = 'Do not crash with if (true && a && b) { }'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + if (true && a && b) { } + } + catch(ex) + { + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-460024.js b/js/src/tests/js1_5/Regress/regress-460024.js new file mode 100644 index 000000000..4794b2799 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-460024.js @@ -0,0 +1,39 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 460024; +var summary = 'Regression from bug 451154'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'PASS'; + actual = 'FAIL'; + + + var js = 'Function.prototype.inherits = function(a) {' + + ' actual = "PASS";' + + '};' + + 'function f() { }' + + 'f.inherits();'; + function doeval(callback) { callback(js) }; + doeval(eval); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-460117.js b/js/src/tests/js1_5/Regress/regress-460117.js new file mode 100644 index 000000000..6fed6b467 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-460117.js @@ -0,0 +1,45 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 460117; +var summary = 'TM: hasOwnProperty with JIT'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function t(o, proplist) { + var props=proplist.split(/\s+/g); + for (var i=0, len=props.length; i 0;}; + +ygNode.prototype.getHtml = function () { + var sb = []; + sb[sb.length] = "
"; + sb[sb.length] = this.getNodeHtml(); + sb[sb.length] = this.getChildrenHtml(); +}; + +ygNode.prototype.getChildrenHtml = function () { + var sb = []; + if (this.hasChildren(true) && this.expanded) { + sb[sb.length] = this.renderChildren(); + } +}; + +ygNode.prototype.renderChildren = function () {return this.completeRender();}; + +ygNode.prototype.completeRender = function () { + var sb = []; + for (var i = 0; i < this.children.length; ++i) { + sb[sb.length] = this.children[i].getHtml(); + } +}; + +ygRootNode.prototype = new ygNode; + +function ygRootNode(_48) { + this.init(null, null, true); +} + +ygTextNode.prototype = new ygNode; + +function ygTextNode(_49, _50, _51) { + this.init(_49, _50, _51); + this.setUpLabel(_49); +} + +ygTextNode.prototype.setUpLabel = function (_52) { + if (typeof _52 == "string") {} + if (_52.target) {} + this.labelElId = "ygtvlabelel" + this.index; +}; + +ygTextNode.prototype.getNodeHtml = function () { + var sb = new Array; + sb[sb.length] = ""; + sb[sb.length] = ""; + for (i = 0; i < this.depth; ++i) {} + sb[sb.length] = " id=\"" + this.getToggleElId() + "\""; + sb[sb.length] = " class=\"" + this.getStyle() + "\""; + if (this.hasChildren(true)) {} + sb[sb.length] = " id=\"" + this.labelElId + "\""; +}; + +function buildUserTree() { + userTree = new ygTreeView("userTree"); + addMenuNode(userTree, "N", "navheader"); + addMenuNode(userTree, "R", "navheader"); + addMenuNode(userTree, "S", "navheader"); +} + +function addMenuNode(tree, label, styleClass) { + new ygTextNode({}, tree.root, false); +} + +buildUserTree(); +userTree.root.getHtml(); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/Regress/regress-465013.js b/js/src/tests/js1_5/Regress/regress-465013.js new file mode 100644 index 000000000..ca9a1038c --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-465013.js @@ -0,0 +1,39 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 465013; +var summary = ''; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'bgcolor="dummy" quality="dummy" allowScriptAccess="dummy" '; + + + print((function(x) { + var ja = ""; + var ka = {bgcolor:"#FFFFFF", quality:"high", allowScriptAccess:"always"}; + for (var la in ka) { + ja +=[la] + "=\"" + x/*ka[la]*/ + "\" "; + } + return actual = ja; + })("dummy")); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-465132.js b/js/src/tests/js1_5/Regress/regress-465132.js new file mode 100644 index 000000000..273fed73a --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-465132.js @@ -0,0 +1,43 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 465132; +var summary = 'TM: Mathematical constants should be constant'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + var constants = ['E', 'LN10', 'LN2', 'LOG2E', 'LOG10E', 'PI', 'SQRT1_2', 'SQRT2']; + + for (var j = 0; j < constants.length; j++) + { + expect = Math[constants[j]]; + + for(i=0;i<9;++i) + ++Math[constants[j]]; + + for(i=0;i<9;++i) + eval('++Math.' + constants[j]); + + actual = Math[constants[j]]; + + reportCompare(expect, actual, summary + ' Math.' + constants[j]); + } + + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-465133.js b/js/src/tests/js1_5/Regress/regress-465133.js new file mode 100644 index 000000000..0f21a5603 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-465133.js @@ -0,0 +1,33 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 465133; +var summary = '{} < {}'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'false,false,false,false,false,'; + actual = ''; + + + for (var i=0;i<5;++i) actual += ({} < {}) + ','; + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-465135.js b/js/src/tests/js1_5/Regress/regress-465135.js new file mode 100644 index 000000000..1b5e87abf --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-465135.js @@ -0,0 +1,33 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 465135; +var summary = 'true << true'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '2,2,2,2,2,'; + actual = ''; + + + for (var i=0;i<5;++i) actual += (true << true) + ','; + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-465136.js b/js/src/tests/js1_5/Regress/regress-465136.js new file mode 100644 index 000000000..5756f44fe --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-465136.js @@ -0,0 +1,33 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 465136; +var summary = 'false == ""'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'true,true,true,true,true,'; + actual = ''; + + + for (var i=0;i<5;++i) actual += (false == '') + ','; + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-465137.js b/js/src/tests/js1_5/Regress/regress-465137.js new file mode 100644 index 000000000..3789a00d0 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-465137.js @@ -0,0 +1,33 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 465137; +var summary = '!NaN is not false'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'falsy,falsy,falsy,falsy,falsy,'; + actual = ''; + + + for (var i=0;i<5;++i) actual += (!(NaN) ? "falsy" : "truthy") + ','; + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-465262.js b/js/src/tests/js1_5/Regress/regress-465262.js new file mode 100644 index 000000000..0d016b192 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-465262.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 465262; +var summary = 'truthiness of (3 > null)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + expect = 'true,true,true,true,true,'; + + for(j=0;j<5;++j) print(actual += "" + (3 > null) + ',') + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-465272.js b/js/src/tests/js1_5/Regress/regress-465272.js new file mode 100644 index 000000000..d544e4f1d --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-465272.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 465272; +var summary = 'subtraction'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + expect = '3,3,3,3,3,'; + + for (j=0;j<5;++j) print(actual += "" + ((5) - 2) + ','); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-465347.js b/js/src/tests/js1_5/Regress/regress-465347.js new file mode 100644 index 000000000..6a4d6081e --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-465347.js @@ -0,0 +1,52 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 465347; +var summary = 'Test integer to id in js_Int32ToId'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var o; + + o = new Array(); + + expect = undefined; + o[0xffffffff] = 'end'; + actual = o[-1]; + reportCompare(expect, actual, summary + ': 1'); + + expect = 42; + o['42'] = 42; + actual = o[42]; + reportCompare(expect, actual, summary + ': 2'); + + // + + o = new Object(); + + expect = undefined; + o[0xffffffff] = 'end'; + actual = o[-1]; + reportCompare(expect, actual, summary + ': 3'); + + expect = 42; + o['42'] = 42; + actual = o[42]; + reportCompare(expect, actual, summary + ': 4'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-465366.js b/js/src/tests/js1_5/Regress/regress-465366.js new file mode 100644 index 000000000..5170e23c0 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-465366.js @@ -0,0 +1,39 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 465366; +var summary = 'TM: JIT: error with multiplicative loop'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + function f() + { + var k = 1; + for (var n = 0; n < 2; n++) { + k = (k * 10); + } + return k; + } + f(); + print(f()); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-466262.js b/js/src/tests/js1_5/Regress/regress-466262.js new file mode 100644 index 000000000..9fe16b12b --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-466262.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 466262; +var summary = 'Do not assert: f == f->root'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + var e = 1; + for (var d = 0; d < 3; ++d) { + if (d == 2) { + e = ""; + } + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-466747.js b/js/src/tests/js1_5/Regress/regress-466747.js new file mode 100644 index 000000000..6fa133ac9 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-466747.js @@ -0,0 +1,59 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 466747; +var summary = 'TM: Do not assert: fp->slots + fp->script->nfixed + ' + + 'js_ReconstructStackDepth(cx, fp->script, fp->regs->pc) == fp->regs->sp'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (typeof window == 'undefined') + { + expect = actual = 'Test skipped: browser only'; + reportCompare(expect, actual, summary); + } + else + { + gDelayTestDriverEnd = true; + + + function newScriptWithLoop(m) + { + var ns = document.createElement("script"); + var nt = document.createTextNode("for (var q = 0; q < " + m + "; ++q) { }"); + ns.appendChild(nt); + return ns; + } + + function boom() + { + var div = document.createElement("div"); + div.appendChild(newScriptWithLoop(7)); + div.appendChild(newScriptWithLoop(1)); + document.body.appendChild(div); + + + reportCompare(expect, actual, summary); + gDelayTestDriverEnd = false; + jsTestDriverEnd(); + } + + window.addEventListener('load', boom, false); + } + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-469044.js b/js/src/tests/js1_5/Regress/regress-469044.js new file mode 100644 index 000000000..f41a07ecb --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-469044.js @@ -0,0 +1,71 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 469044; +var summary = 'type unstable globals'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '---000---000'; + actual = ''; + + for (var i = 0; i < 2; ++i) { + for (var e = 0; e < 2; ++e) { + } + var c = void 0; + print(actual += "---"); + for (var a = 0; a < 3; ++a) { + c <<= c; + print(actual += "" + c); + } + } + reportCompare(expect, actual, summary + ': 1'); + + expect = '00000000'; + actual = ''; + + print(""); + for (var i = 0; i < 2; ++i) { + for (var e = 0; e < 2; ++e) { + } + var c = void 0; + for (var a = 0; a < 3; ++a) { + c <<= c; + print(actual += "" + c); + } + print(actual += c); + } + reportCompare(expect, actual, summary + ': 2'); + + actual = ''; + print(""); + + for (var i = 0; i < 2; ++i) { + for (var e = 0; e < 2; ++e) { + } + var c = void 0; + for (var a = 0; a < 3; ++a) { + c <<= c; + Math; + print(actual += "" + c); + } + print(actual += c); + } + reportCompare(expect, actual, summary + ': 3'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-470061.js b/js/src/tests/js1_5/Regress/regress-470061.js new file mode 100644 index 000000000..dedb7cbaa --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-470061.js @@ -0,0 +1,43 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 470061; +var summary = 'TM: Do not assert: cx->fp->regs->pc == f->ip && f->root == f'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + function x (w, z) { + var h = 0; + var q = 0; + while (q < 300) { + while (w) { + } + ++q; + if (q % 4 == 1) { + h = Math.ceil(z); + } + } + } + + x(false, 40); + + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-470187-01.js b/js/src/tests/js1_5/Regress/regress-470187-01.js new file mode 100644 index 000000000..4abaff88b --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-470187-01.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 470187; +var summary = 'Do not assert: entry->kpc == (jsbytecode*) atoms[index]'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var j=0;j<3;++j) ({valueOf: function(){return 2}}) - /x/; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-470187-02.js b/js/src/tests/js1_5/Regress/regress-470187-02.js new file mode 100644 index 000000000..c474c7690 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-470187-02.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 470187; +var summary = 'Do not assert: ATOM_IS_STRING(atom)'; +var actual = ''; +var expect = ''; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var j=0;j<3;++j) ({valueOf: function(){return 2}}) - []; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-470758-01.js b/js/src/tests/js1_5/Regress/regress-470758-01.js new file mode 100644 index 000000000..06e06ce29 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-470758-01.js @@ -0,0 +1,30 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: Blake Kaplan + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 470758; +var summary = 'Do not crash with eval upvars'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function() { var k; eval("for (var k in {});") })() + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-470758-02.js b/js/src/tests/js1_5/Regress/regress-470758-02.js new file mode 100644 index 000000000..86eb4b440 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-470758-02.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: Blake Kaplan + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 470758; +var summary = 'Promote evald initializer into upvar'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 5; + + (function(){var x;eval("for (x = 0; x < 5; x++);");print(actual = x);})(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-472533.js b/js/src/tests/js1_5/Regress/regress-472533.js new file mode 100644 index 000000000..a772f0c35 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-472533.js @@ -0,0 +1,28 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 472533; +var summary = 'Do not crash with loop, replace, regexp'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var j = 0; j < 4; ++j) ''.replace('', /x/); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/Regress/regress-475645-01.js b/js/src/tests/js1_5/Regress/regress-475645-01.js new file mode 100644 index 000000000..6a5ad9fc5 --- /dev/null +++ b/js/src/tests/js1_5/Regress/regress-475645-01.js @@ -0,0 +1,47 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 475645; +var summary = 'Do not crash @ nanojit::LIns::isop'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + + linkarr = new Array(); + picarr = new Array(); + textarr = new Array(); + var f=161; + var t=27; + var pics = ""; + var links = ""; + var texts = ""; + var s = f+t; + var d = "1"; + picarr[2] = "2"; + for(i=1;i' + + 'for (var i = 0; i != 1000; ++i)' + + ' this["a"+i] = 0;' + + 'eval("var x");' + + 'for (var i = 0; i != 1000; ++i)' + + ' delete this["a"+i];' + + '<\/script>' + ); + + document.write( + '\n' + + '\n' + + '\n'; + + try + { + //.exec(s); + } + catch(ex) + { + actual = ex + ''; + } + + reportCompare(expect, actual, summary + ': //.exec(s)'); + + function testre( re, n ) { + for ( var i= 0; i <= n; ++i ) { + re.test( Array( i+1 ).join() ); + } + } + + try + { + testre( /(?:,*)*x/, 22 ); + } + catch(ex) + { + actual = ex + ''; + } + + reportCompare(expect, actual, summary + ': testre( /(?:,*)*x/, 22 )'); + + try + { + testre( /(?:,|,)*x/, 22 ); + } + catch(ex) + { + actual = ex + ''; + } + + reportCompare(expect, actual, summary + ': testre( /(?:,|,)*x/, 22 )'); + + try + { + testre( /(?:,|,|,|,|,)*x/, 10 ); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': testre( /(?:,|,|,|,|,)*x/, 10 )'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-333541.js b/js/src/tests/js1_5/extensions/regress-333541.js new file mode 100644 index 000000000..cc868daf3 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-333541.js @@ -0,0 +1,57 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 333541; +var summary = '1..toSource()'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function a(){ + return 1..toSource(); +} + +try +{ + expect = 'function a() {\n return 1..toSource();\n}'; + actual = a.toString(); + compareSource(expect, actual, summary + ': 1'); +} +catch(ex) +{ + actual = ex + ''; + reportCompare(expect, actual, summary + ': 1'); +} + +try +{ + expect = 'function a() {return 1..toSource();}'; + actual = a.toSource(); + compareSource(expect, actual, summary + ': 2'); +} +catch(ex) +{ + actual = ex + ''; + reportCompare(expect, actual, summary + ': 2'); +} + +expect = a; +actual = a.valueOf(); +reportCompare(expect, actual, summary + ': 3'); + +try +{ + expect = 'function a() {\n return 1..toSource();\n}'; + actual = "" + a; + compareSource(expect, actual, summary + ': 4'); +} +catch(ex) +{ + actual = ex + ''; + reportCompare(expect, actual, summary + ': 4'); +} diff --git a/js/src/tests/js1_5/extensions/regress-336409-1.js b/js/src/tests/js1_5/extensions/regress-336409-1.js new file mode 100644 index 000000000..32dbb3633 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-336409-1.js @@ -0,0 +1,50 @@ +// |reftest| skip-if(!xulRuntime.shell||Android) slow -- no results reported. +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 336409; +var summary = 'Integer overflow in js_obj_toSource'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expectExitCode(0); +expectExitCode(5); + +function createString(n) +{ + var l = n*1024*1024; + var r = 'r'; + + while (r.length < l) + { + r = r + r; + } + return r; +} + +try +{ + var n = 64; + printStatus('Creating ' + n + 'MB string'); + var r = createString(n); + printStatus('Done. length = ' + r.length); + printStatus('Creating object'); + var o = {f1: r, f2: r, f3: r,f4: r,f5: r, f6: r, f7: r, f8: r,f9: r}; + printStatus('object.toSource()'); + var rr = o.toSource(); + printStatus('Done.'); +} +catch(ex) +{ + expect = 'InternalError: allocation size overflow'; + actual = ex + ''; + print(actual); +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-336409-2.js b/js/src/tests/js1_5/extensions/regress-336409-2.js new file mode 100644 index 000000000..b979eb208 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-336409-2.js @@ -0,0 +1,49 @@ +// |reftest| skip-if(!xulRuntime.shell&&((Android||(isDebugBuild&&xulRuntime.OS=="Linux")||xulRuntime.XPCOMABI.match(/x86_64/)))) slow -- can fail silently due to out of memory, bug 615011 - timeouts on slow debug Linux +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 336409; +var summary = 'Integer overflow in js_obj_toSource'; +var actual = 'No Crash'; +var expect = /(No Crash|InternalError: allocation size overflow|out of memory)/; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expectExitCode(0); +expectExitCode(5); + +function createString(n) +{ + var l = n*1024*1024; + var r = 'r'; + + while (r.length < l) + { + r = r + r; + } + return r; +} + +try +{ + var n = 128; + printStatus('Creating ' + n + 'MB string'); + var r = createString(n); + printStatus('Done. length = ' + r.length); + printStatus('Creating object'); + var o = {f1: r, f2: r, f3: r,f4: r,f5: r, f6: r, f7: r, f8: r,f9: r}; + printStatus('object.toSource()'); + var rr = o.toSource(); + printStatus('Done.'); +} +catch(ex) +{ + actual = ex + ''; + print(actual); +} + +reportMatch(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-336410-1.js b/js/src/tests/js1_5/extensions/regress-336410-1.js new file mode 100644 index 000000000..5362d0d94 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-336410-1.js @@ -0,0 +1,50 @@ +// |reftest| skip-if(!xulRuntime.shell||Android) slow -- can fail silently due to out of memory +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 336410; +var summary = 'Integer overflow in array_toSource'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expectExitCode(0); +expectExitCode(5); + +function createString(n) +{ + var l = n*1024*1024; + var r = 'r'; + + while (r.length < l) + { + r = r + r; + } + return r; +} + +try +{ + var n = 64; + printStatus('Creating ' + n + 'M length string'); + var r = createString(n); + printStatus('Done. length = ' + r.length); + printStatus('Creating array'); + var o=[r, r, r, r, r, r, r, r, r]; + printStatus('object.toSource()'); + var rr = o.toSource(); + printStatus('Done.'); +} +catch(ex) +{ + expect = '\(InternalError: allocation size overflow|out of memory\)'; + actual = ex + ''; + print(actual); +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-336410-2.js b/js/src/tests/js1_5/extensions/regress-336410-2.js new file mode 100644 index 000000000..4ce18b65a --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-336410-2.js @@ -0,0 +1,49 @@ +// |reftest| skip-if(!xulRuntime.shell&&((isDebugBuild&&xulRuntime.OS=="Linux")||Android||xulRuntime.XPCOMABI.match(/x86_64/)||xulRuntime.OS=="WINNT")) slow -- can fail silently due to out of memory, bug 621348 - timeouts on slow debug Linux +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 336410; +var summary = 'Integer overflow in array_toSource'; +var actual = 'No Crash'; +var expect = /(No Crash|InternalError: allocation size overflow|out of memory)/; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expectExitCode(0); +expectExitCode(5); + +function createString(n) +{ + var l = n*1024*1024; + var r = 'r'; + + while (r.length < l) + { + r = r + r; + } + return r; +} + +try +{ + var n = 128; + printStatus('Creating ' + n + 'M length string'); + var r = createString(n); + printStatus('Done. length = ' + r.length); + printStatus('Creating array'); + var o=[r, r, r, r, r, r, r, r, r]; + printStatus('object.toSource()'); + var rr = o.toSource(); + printStatus('Done.'); +} +catch(ex) +{ + actual = ex + ''; + print(actual); +} + +reportMatch(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-338804-01.js b/js/src/tests/js1_5/extensions/regress-338804-01.js new file mode 100644 index 000000000..9fb3a4a89 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-338804-01.js @@ -0,0 +1,69 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 338804; +var summary = 'GC hazards in constructor functions'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); +printStatus ('Uses Intel Assembly'); + +// + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-338804-02.js b/js/src/tests/js1_5/extensions/regress-338804-02.js new file mode 100644 index 000000000..e1e2a77ee --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-338804-02.js @@ -0,0 +1,70 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 338804; +var summary = 'GC hazards in constructor functions'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); +printStatus ('Uses Intel Assembly'); + +// + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-338804-03.js b/js/src/tests/js1_5/extensions/regress-338804-03.js new file mode 100644 index 000000000..b3e759725 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-338804-03.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 338804; +var summary = 'GC hazards in constructor functions'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +if (typeof Script != 'undefined') +{ + Script({ toString: fillHeap }); +} +RegExp({ toString: fillHeap }); + +function fillHeap() { + if (typeof gc == 'function') gc(); + var x = 1, tmp; + for (var i = 0; i != 50000; ++i) { + tmp = x / 3; + } +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-339685.js b/js/src/tests/js1_5/extensions/regress-339685.js new file mode 100644 index 000000000..295a08068 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-339685.js @@ -0,0 +1,27 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 339685; +var summary = 'Setting __proto__ null should not affect __iterator__'; +var actual = ''; +var expect = 'No Error'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var d = { a:2, b:3 }; + +d.__proto__ = null; + +try { + for (var p in d) + ; + actual = 'No Error'; +} catch(e) { + actual = e + ''; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-341956-01.js b/js/src/tests/js1_5/extensions/regress-341956-01.js new file mode 100644 index 000000000..be5865384 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-341956-01.js @@ -0,0 +1,68 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 341956; +var summary = 'GC Hazards in jsarray.c - unshift'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var N = 0xFFFFFFFF; + + var a = []; + a[N - 1] = 1; + a.__defineGetter__(N - 1, function() { + var tmp = []; + tmp[N - 2] = 0; + if (typeof gc == 'function') + gc(); + for (var i = 0; i != 50000; ++i) { + var tmp = 1 / 3; + tmp /= 10; + } + for (var i = 0; i != 1000; ++i) { + // Make string with 11 characters that would take + // (11 + 1) * 2 bytes or sizeof(JSAtom) so eventually + // malloc will ovewrite just freed atoms. + var tmp2 = Array(12).join(' '); + } + return 10; + }); + + +// The following always-throw getter is to stop unshift from doing +// 2^32 iterations. + var toStop = "stringToStop"; + a[N - 3] = 0; + a.__defineGetter__(N - 3, function() { throw toStop; }); + + var good = false; + + try { + a.unshift(1); + } catch (e) { + if (e === toStop) + good = true; + } + + expect = true; + actual = good; + + reportCompare(expect, actual, summary); + + print('Done'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-341956-02.js b/js/src/tests/js1_5/extensions/regress-341956-02.js new file mode 100644 index 000000000..61fe4ff9d --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-341956-02.js @@ -0,0 +1,55 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 341956; +var summary = 'GC Hazards in jsarray.c - pop'; +var actual = ''; +var expect = 'GETTER RESULT'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var N = 0xFFFFFFFF; + var a = []; + a[N - 1] = 0; + + var expected = "GETTER RESULT"; + + a.__defineGetter__(N - 1, function() { + delete a[N - 1]; + var tmp = []; + tmp[N - 2] = 1; + + if (typeof gc == 'function') + gc(); + for (var i = 0; i != 50000; ++i) { + var tmp = 1 / 3; + tmp /= 10; + } + for (var i = 0; i != 1000; ++i) { + // Make string with 11 characters that would take + // (11 + 1) * 2 bytes or sizeof(JSAtom) so eventually + // malloc will ovewrite just freed atoms. + var tmp2 = Array(12).join(' '); + } + return expected; + }); + + actual = a.pop(); + + reportCompare(expect, actual, summary); + + print('Done'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-341956-03.js b/js/src/tests/js1_5/extensions/regress-341956-03.js new file mode 100644 index 000000000..b52f4148b --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-341956-03.js @@ -0,0 +1,72 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 341956; +var summary = 'GC Hazards in jsarray.c - reverse'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var N = 0xFFFFFFFF; + var a = []; + a[N - 1] = 0; + + var expected = "GETTER RESULT"; + + a.__defineGetter__(N - 1, function() { + delete a[N - 1]; + var tmp = []; + tmp[N - 2] = 1; + + if (typeof gc == 'function') + gc(); + for (var i = 0; i != 50000; ++i) { + var tmp = 1 / 3; + tmp /= 10; + } + for (var i = 0; i != 1000; ++i) { + // Make string with 11 characters that would take + // (11 + 1) * 2 bytes or sizeof(JSAtom) so eventually + // malloc will ovewrite just freed atoms. + var tmp2 = Array(12).join(' '); + } + return expected; + }); + +// The following always-throw getter is to stop unshift from doing +// 2^32 iterations. + var toStop = "stringToStop"; + a[N - 3] = 0; + a.__defineGetter__(N - 3, function() { throw toStop; }); + + + var good = false; + + try { + a.reverse(); + } catch (e) { + if (e === toStop) + good = true; + } + + expect = true; + actual = good; + + reportCompare(expect, actual, summary); + + print('Done'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-342960.js b/js/src/tests/js1_5/extensions/regress-342960.js new file mode 100644 index 000000000..715427df7 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-342960.js @@ -0,0 +1,46 @@ +// |reftest| skip-if(!xulRuntime.shell&&(Android||xulRuntime.OS=="WINNT"||xulRuntime.OS=="Linux")) silentfail slow -- bug 528464 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 342960; +var summary = 'Do not crash on large string toSource'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expectExitCode(0); + expectExitCode(5); + + function v() + { + var meg=""; + var r=""; + var i; + print("don't interrupt the script. let it go."); + for(i=0;i<1024*1024;i++) meg += "v"; + for(i=0;i<1024/8;i++) r += meg; + var o={f1: r, f2: r, f3: r,f4: r,f5: r, f6: r, f7: r, f8: r,f9: r}; + print('done obj'); + var rr=r.toSource(); + print('done toSource()'); + } + + v(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-345967.js b/js/src/tests/js1_5/extensions/regress-345967.js new file mode 100644 index 000000000..58b72e3ad --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-345967.js @@ -0,0 +1,68 @@ +// |reftest| skip -- slow +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 345967; +var summary = 'Yet another unrooted atom in jsarray.c'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expectExitCode(0); + expectExitCode(3); + + print('This test will probably run out of memory'); + print('This test really should only fail on 64 bit machines'); + + var JSVAL_INT_MAX = (1 << 30) - 1; + + var a = new Array(JSVAL_INT_MAX + 2); + a[JSVAL_INT_MAX] = 0; + a[JSVAL_INT_MAX + 1] = 1; + + a.__defineGetter__(JSVAL_INT_MAX, function() { return 0; }); + + a.__defineSetter__(JSVAL_INT_MAX, function(value) { + delete a[JSVAL_INT_MAX + 1]; + var tmp = []; + tmp[JSVAL_INT_MAX + 2] = 2; + + if (typeof gc == 'function') + gc(); + for (var i = 0; i != 50000; ++i) { + var tmp = 1 / 3; + tmp /= 10; + } + for (var i = 0; i != 1000; ++i) { + // Make string with 11 characters that would take + // (11 + 1) * 2 bytes or sizeof(JSAtom) so eventually + // malloc will ovewrite just freed atoms. + var tmp2 = Array(12).join(' '); + } + }); + + + a.shift(); + + expect = 0; + actual = a[JSVAL_INT_MAX]; + if (expect !== actual) + print("BAD"); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-346494-01.js b/js/src/tests/js1_5/extensions/regress-346494-01.js new file mode 100644 index 000000000..755c3ddf4 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-346494-01.js @@ -0,0 +1,90 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 346494; +var summary = 'various try...catch tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var pfx = "(function (x) {try {throw x}", + cg1 = " catch (e if e === 42) {var v = 'catch guard 1 ' + e; actual += v + ','; print(v);}" + cg2 = " catch (e if e === 43) {var v = 'catch guard 2 ' + e; actual += v + ','; print(v);}" + cat = " catch (e) {var v = 'catch all ' + e; actual += v + ','; print(v);}" + fin = " finally{var v = 'fin'; actual += v + ','; print(v)}", + end = "})"; + + var exphash = { + pfx: "(function (y) { var result = ''; y = y + ',';", + cg1: "result += (y === '42,') ? ('catch guard 1 ' + y):'';", + cg2: "result += (y === '43,') ? ('catch guard 2 ' + y):'';", + cat: "result += /catch guard/.test(result) ? '': ('catch all ' + y);", + fin: "result += 'fin,';", + end: "return result;})" + }; + + var src = [ + pfx + fin + end, + pfx + cat + end, + pfx + cat + fin + end, + pfx + cg1 + end, + pfx + cg1 + fin + end, + pfx + cg1 + cat + end, + pfx + cg1 + cat + fin + end, + pfx + cg1 + cg2 + end, + pfx + cg1 + cg2 + fin + end, + pfx + cg1 + cg2 + cat + end, + pfx + cg1 + cg2 + cat + fin + end, + ]; + + var expsrc = [ + exphash.pfx + exphash.fin + exphash.end, + exphash.pfx + exphash.cat + exphash.end, + exphash.pfx + exphash.cat + exphash.fin + exphash.end, + exphash.pfx + exphash.cg1 + exphash.end, + exphash.pfx + exphash.cg1 + exphash.fin + exphash.end, + exphash.pfx + exphash.cg1 + exphash.cat + exphash.end, + exphash.pfx + exphash.cg1 + exphash.cat + exphash.fin + exphash.end, + exphash.pfx + exphash.cg1 + exphash.cg2 + exphash.end, + exphash.pfx + exphash.cg1 + exphash.cg2 + exphash.fin + exphash.end, + exphash.pfx + exphash.cg1 + exphash.cg2 + exphash.cat + exphash.end, + exphash.pfx + exphash.cg1 + exphash.cg2 + exphash.cat + exphash.fin + exphash.end, + ]; + + for (var i in src) { + print("\n=== " + src[i]); + var f = eval(src[i]); + print(src[i]); + var exp = eval(expsrc[i]); + // dis(f); + print('decompiling: ' + f); + + actual = ''; + try { expect = exp(42); f(42) } catch (e) { print('tried f(42), caught ' + e) } + reportCompare(expect, actual, summary); + + actual = ''; + try { expect = exp(43); f(43) } catch (e) { print('tried f(43), caught ' + e) } + reportCompare(expect, actual, summary); + + actual = ''; + try { expect = exp(44); f(44) } catch (e) { print('tried f(44), caught ' + e) } + reportCompare(expect, actual, summary); + } + + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-346494.js b/js/src/tests/js1_5/extensions/regress-346494.js new file mode 100644 index 000000000..bca6c4ec1 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-346494.js @@ -0,0 +1,82 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 346494; +var summary = 'try-catch-finally scope'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function g() + { + try + { + throw "foo"; + } + catch(e if e == "bar") + { + } + catch(e if e == "baz") + { + } + finally + { + } + } + + expect = "foo"; + try + { + g(); + actual = 'No Exception'; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); + + function h() + { + try + { + throw "foo"; + } + catch(e if e == "bar") + { + } + catch(e) + { + } + finally + { + } + } + + expect = "No Exception"; + try + { + h(); + actual = 'No Exception'; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-350312-01.js b/js/src/tests/js1_5/extensions/regress-350312-01.js new file mode 100644 index 000000000..13ebce63f --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-350312-01.js @@ -0,0 +1,50 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 350312; +var summary = 'Accessing wrong stack slot with nested catch/finally'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var tmp; + + function f() + { + try { + try { + throw 1; + } catch (e) { + throw e; + } finally { + tmp = true; + } + } catch (e) { + return e; + } + } + + var ex = f(); + + var passed = ex === 1; + if (!passed) { + print("Failed!"); + print("ex="+uneval(ex)); + } + reportCompare(true, passed, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-350312-02.js b/js/src/tests/js1_5/extensions/regress-350312-02.js new file mode 100644 index 000000000..20bab7e24 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-350312-02.js @@ -0,0 +1,112 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 350312; +var summary = 'Accessing wrong stack slot with nested catch/finally'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function createPrint(obj) + { + return new Function("actual += " + obj + " + ','; " + + "print(" + obj + ");"); + } + + function createThrow(obj) + { + return new Function("throw " + obj + "; "); + } + + + function f(a, b, c) + { + try { + a(); + } catch (e if e == null) { + b(); + } finally { + c(); + } + } + + print('test 1'); + expect = 'a,c,'; + actual = ''; + try + { + f(createPrint("'a'"), createPrint("'b'"), createPrint("'c'")); + } + catch(ex) + { + actual += 'caught ' + ex; + } + reportCompare(expect, actual, summary + ': 1'); + + print('test 2'); + expect = 'c,caught a'; + actual = ''; + try + { + f(createThrow("'a'"), createPrint("'b'"), createPrint("'c'")); + } + catch(ex) + { + actual += 'caught ' + ex; + } + reportCompare(expect, actual, summary + ': 2'); + + print('test 3'); + expect = 'b,c,'; + actual = ''; + try + { + f(createThrow("null"), createPrint("'b'"), createPrint("'c'")); + } + catch(ex) + { + actual += 'caught ' + ex; + } + reportCompare(expect, actual, summary + ': 3'); + + print('test 4'); + expect = 'a,c,'; + actual = ''; + try + { + f(createPrint("'a'"), createThrow("'b'"), createPrint("'c'")); + } + catch(ex) + { + actual += 'caught ' + ex; + } + reportCompare(expect, actual, summary + ': 4'); + + print('test 5'); + expect = 'c,caught b'; + actual = ''; + try + { + f(createThrow("null"), createThrow("'b'"), createPrint("'c'")); + } + catch(ex) + { + actual += 'caught ' + ex; + } + reportCompare(expect, actual, summary + ': 5'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-350312-03.js b/js/src/tests/js1_5/extensions/regress-350312-03.js new file mode 100644 index 000000000..edf3cb49e --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-350312-03.js @@ -0,0 +1,116 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 350312; +var summary = 'Accessing wrong stack slot with nested catch/finally'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var pfx = "(function (x) {try {if (x > 41) throw x}", + cg1a = " catch (e if e === 42) {var v = 'catch guard 1 ' + e; actual += v + ',';print(v);}" + cg1b = " catch (e if e === 42) {var v = 'catch guard 1 + throw ' + e; actual += v + ',';print(v); throw e;}" + cg2 = " catch (e if e === 43) {var v = 'catch guard 2 ' + e; actual += v + ',';print(v)}" + cat = " catch (e) {var v = 'catch all ' + e; print(v); if (e == 44) throw e}" + fin = " finally{var v = 'fin'; actual += v + ',';print(v)}", + end = "})"; + + var exphash = { + pfx: "(function (y) { var result = ''; y = y + ',';", + cg1a: " result += (y === '42,') ? ('catch guard 1 ' + y):'';", + cg1b: " result += (y === '42,') ? ('catch guard 1 + throw ' + y):'';", + cg2: " result += (y === '43,') ? ('catch guard 2 ' + y):'';", + cat: " result += (y > 41) ? ('catch all ' + y):'';", + fin: " result += 'fin,';", + end: "return result;})" + }; + + var src = [ + pfx + fin + end, + pfx + cat + end, + pfx + cat + fin + end, + pfx + cg1a + end, + pfx + cg1a + fin + end, + pfx + cg1a + cat + end, + pfx + cg1a + cat + fin + end, + pfx + cg1a + cg2 + end, + pfx + cg1a + cg2 + fin + end, + pfx + cg1a + cg2 + cat + end, + pfx + cg1a + cg2 + cat + fin + end, + pfx + cg1b + end, + pfx + cg1b + fin + end, + pfx + cg1b + cat + end, + pfx + cg1b + cat + fin + end, + pfx + cg1b + cg2 + end, + pfx + cg1b + cg2 + fin + end, + pfx + cg1b + cg2 + cat + end, + pfx + cg1b + cg2 + cat + fin + end, + ]; + + var expsrc = [ + exphash.pfx + exphash.fin + exphash.end, + exphash.pfx + exphash.cat + exphash.end, + exphash.pfx + exphash.cat + exphash.fin + exphash.end, + exphash.pfx + exphash.cg1a + exphash.end, + exphash.pfx + exphash.cg1a + exphash.fin + exphash.end, + exphash.pfx + exphash.cg1a + exphash.cat + exphash.end, + exphash.pfx + exphash.cg1a + exphash.cat + exphash.fin + exphash.end, + exphash.pfx + exphash.cg1a + exphash.cg2 + exphash.end, + exphash.pfx + exphash.cg1a + exphash.cg2 + exphash.fin + exphash.end, + exphash.pfx + exphash.cg1a + exphash.cg2 + exphash.cat + exphash.end, + exphash.pfx + exphash.cg1a + exphash.cg2 + exphash.cat + exphash.fin + exphash.end, + exphash.pfx + exphash.cg1b + exphash.end, + exphash.pfx + exphash.cg1b + exphash.fin + exphash.end, + exphash.pfx + exphash.cg1b + exphash.cat + exphash.end, + exphash.pfx + exphash.cg1b + exphash.cat + exphash.fin + exphash.end, + exphash.pfx + exphash.cg1b + exphash.cg2 + exphash.end, + exphash.pfx + exphash.cg1b + exphash.cg2 + exphash.fin + exphash.end, + exphash.pfx + exphash.cg1b + exphash.cg2 + exphash.cat + exphash.end, + exphash.pfx + exphash.cg1b + exphash.cg2 + exphash.cat + exphash.fin + exphash.end, + ]; + + for (var i in src) { + print("\n=== " + i + ": " + src[i]); + var f = eval(src[i]); + var exp = eval(expsrc[i]); + // dis(f); + print('decompiling: ' + f); + //print('decompiling exp: ' + exp); + + actual = ''; + try { expect = exp(41); f(41) } catch (e) { print('tried f(41), caught ' + e) } + reportCompare(expect, actual, summary); + + actual = ''; + try { expect = exp(42); f(42) } catch (e) { print('tried f(42), caught ' + e) } + reportCompare(expect, actual, summary); + + actual = ''; + try { expect = exp(43); f(43) } catch (e) { print('tried f(43), caught ' + e) } + reportCompare(expect, actual, summary); + + actual = ''; + try { expect = exp(44); f(44) } catch (e) { print('tried f(44), caught ' + e) } + reportCompare(expect, actual, summary); + + actual = ''; + try { expect = exp(45); f(45) } catch (e) { print('tried f(44), caught ' + e) } + reportCompare(expect, actual, summary); + + } + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-350531.js b/js/src/tests/js1_5/extensions/regress-350531.js new file mode 100644 index 000000000..fcf9c74fe --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-350531.js @@ -0,0 +1,156 @@ +// |reftest| skip -- slow +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 350531; +var summary = 'exhaustively test parenthesization of binary operator subsets'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + +// Translated from permcomb.py, found at +// http://biotech.embl-ebi.ac.uk:8400/sw/common/share/python/examples/dstruct/classics/permcomb.py +// by searching for "permcomb.py". +// +// This shows bugs, gaps, and verbosities in JS compared to Python: +// 1. Lack of range([start, ] end[, step]). +// 2. ![] => false, indeed ! => false. +// 3. Missing append or push for strings (if append, then we'd want append for +// arrays too). +// 4. Missing slice operator syntax s[i:j]. +// 5. Lack of + for array concatenation. + + String.prototype.push = function (str) { return this + str; }; + + function permute(list) { + if (!list.length) // shuffle any sequence + return [list]; // empty sequence + var res = []; + for (var i = 0, n = list.length; i < n; i++) { // delete current node + var rest = list.slice(0, i).concat(list.slice(i+1)); + for each (var x in permute(rest)) // permute the others + res.push(list.slice(i, i+1).concat(x)); // add node at front + } + return res; + } + + function subset(list, size) { + if (size == 0 || !list.length) // order matters here + return [list.slice(0, 0)]; // an empty sequence + var result = []; + for (var i = 0, n = list.length; i < n; i++) { + var pick = list.slice(i, i+1); // sequence slice + var rest = list.slice(0, i).concat(list.slice(i+1)); // keep [:i] part + for each (var x in subset(rest, size-1)) + result.push(pick.concat(x)); + } + return result; + } + + function combo(list, size) { + if (size == 0 || !list.length) // order doesn't matter + return [list.slice(0, 0)]; // xyz == yzx + var result = []; + for (var i = 0, n = (list.length - size) + 1; i < n; i++) { + // iff enough left + var pick = list.slice(i, i+1); + var rest = list.slice(i+1); // drop [:i] part + for each (var x in combo(rest, size - 1)) + result.push(pick.concat(x)); + } + return result; + } + + +// Generate all subsets of distinct binary operators and join them from left +// to right, parenthesizing minimally. Decompile, recompile, compress spaces +// and compare to test correct parenthesization. + +// load("permcomb.js"); + + var bops = [ + ["=", "|=", "^=", "&=", "<<=", ">>=", ">>>=", "+=", "-=", "*=", "/=", "%="], + ["||"], + ["&&"], + ["|"], + ["^"], + ["&"], + ["==", "!=", "===", "!=="], + ["<", "<=", ">=", ">", "in", "instanceof"], + ["<<", ">>", ">>>"], + ["+", "-"], + ["*", "/", "%"], + ]; + + var prec = {}; + var aops = []; + + for (var i = 0; i < bops.length; i++) { + for (var j = 0; j < bops[i].length; j++) { + var k = bops[i][j]; + prec[k] = i; + aops.push(k); + } + } + +// Theoretically all subsets of size 2 should be enough to test, but in case +// there's some large-scale bug, try up to 5 (or higher? The cost in memory is +// factorially explosive). +next_subset: + for (i = 2; i < 5; i++) { + var sets = subset(aops, i); + gc(); + + for each (var set in sets) { + //print('for each set in sets: ' + (uneval(set)) ); + var src = "(function () {"; + for (j in set) { + var op = set[j], op2 = set[j-1]; + + // Precedence 0 is for assignment ops, which are right- + // associative, so don't force left associativity using + // parentheses. + if (prec[op] && prec[op] < prec[op2]) + src += "("; + } + src += "x "; + for (j in set) { + var op = set[j], op2 = set[j+1]; + + // Parenthesize only if not right-associative (precedence 0) and + // the next op is higher precedence than current. + var term = (prec[op] && prec[op] < prec[op2]) ? " x)" : " x"; + + src += op + term; + if (j < set.length - 1) + src += " "; + } + src += ";})"; + try { + var ref = uneval(eval(src)).replace(/\s+/g, ' '); + if (ref != src) { + actual += "BROKEN! input: " + src + " output: " + ref + " "; + print("BROKEN! input: " + src + " output: " + ref); + break next_subset; + } + } catch (e) {} + } + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-351102-01.js b/js/src/tests/js1_5/extensions/regress-351102-01.js new file mode 100644 index 000000000..4d569dd8c --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-351102-01.js @@ -0,0 +1,39 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 351102; +var summary = 'try/catch-guard/finally GC issues'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f; + + f = function () { + try { + throw new Error('bad'); + } catch (e if (e = null, gc(), false)) { + } catch (e) { + // e is dangling now + } + }; + + f(); + + reportCompare(expect, actual, summary + ': 1'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-351102-02.js b/js/src/tests/js1_5/extensions/regress-351102-02.js new file mode 100644 index 000000000..ce613da15 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-351102-02.js @@ -0,0 +1,45 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 351102; +var summary = 'try/catch-guard/finally GC issues'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f; + f = function () + { + var a = null; + try { + a(); + } catch (e) { + } + return false; + }; + + try { + throw 1; + } catch (e if f()) { + } catch (e if e == 1) { + print("GOOD"); + } catch (e) { + print("BAD: "+e); + } + + reportCompare(expect, actual, summary + ': 2'); + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-351102-06.js b/js/src/tests/js1_5/extensions/regress-351102-06.js new file mode 100644 index 000000000..87e897f99 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-351102-06.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 351102; +var summary = 'try/catch-guard/finally GC issues'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f; + try + { + try { null.a } catch(e if (e = null, gc())) { } + } + catch(ex) + { + } + reportCompare(expect, actual, summary + ': 6'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-351448.js b/js/src/tests/js1_5/extensions/regress-351448.js new file mode 100644 index 000000000..0876eef04 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-351448.js @@ -0,0 +1,62 @@ +// |reftest| skip -- Yarr doesn't have the same complexity errors at execution time. +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 351448; +var summary = 'RegExp - throw InternalError on too complex regular expressions'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var strings = [ + "/.X(.+)+X/.exec('bbbbXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.X(.+)+X/.exec('bbbbXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.X(.+)+XX/.exec('bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.X(.+)+XX/.exec('bbbbXcXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.X(.+)+[X]/.exec('bbbbXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.X(.+)+[X]/.exec('bbbbXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.X(.+)+[X][X]/.exec('bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.X(.+)+[X][X]/.exec('bbbbXcXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.XX(.+)+X/.exec('bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.XX(.+)+X/.exec('bbbbXXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.XX(.+)+X/.exec('bbbbXXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.XX(.+)+[X]/.exec('bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.XX(.+)+[X]/.exec('bbbbXXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.[X](.+)+[X]/.exec('bbbbXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.[X](.+)+[X]/.exec('bbbbXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.[X](.+)+[X][X]/.exec('bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.[X](.+)+[X][X]/.exec('bbbbXcXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.[X][X](.+)+[X]/.exec('bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')", + "/.[X][X](.+)+[X]/.exec('bbbbXXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')" + ]; + + expect = 'InternalError: regular expression too complex'; + + for (var i = 0; i < strings.length; i++) + { + try + { + eval(strings[i]); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': ' + strings[i]); + } + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-351463-01.js b/js/src/tests/js1_5/extensions/regress-351463-01.js new file mode 100644 index 000000000..49e5441df --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-351463-01.js @@ -0,0 +1,254 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 351463; +var summary = 'Treat hyphens as not special adjacent to CharacterClassEscapes in character classes'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var r; + var s = 'a0- z'; + + r = '([\\d-\\s]+)'; + expect = ['0- ', '0- '] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\s-\\d]+)'; + expect = ['0- ', '0- '] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\D-\\s]+)'; + expect = ['a', 'a'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\s-\\D]+)'; + expect = ['a', 'a'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\d-\\S]+)'; + expect = ['a0-', 'a0-'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\S-\\d]+)'; + expect = ['a0-', 'a0-'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\D-\\S]+)'; + expect = ['a0- z', 'a0- z'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\S-\\D]+)'; + expect = ['a0- z', 'a0- z'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + +// -- + + r = '([\\w-\\s]+)'; + expect = ['a0- z', 'a0- z'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\s-\\w]+)'; + expect = ['a0- z', 'a0- z'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\W-\\s]+)'; + expect = ['- ', '- '] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\s-\\W]+)'; + expect = ['- ', '- '] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\w-\\S]+)'; + expect = ['a0-', 'a0-'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\S-\\w]+)'; + expect = ['a0-', 'a0-'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\W-\\S]+)'; + expect = ['a0- z', 'a0- z'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\S-\\W]+)'; + expect = ['a0- z', 'a0- z'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-351973.js b/js/src/tests/js1_5/extensions/regress-351973.js new file mode 100644 index 000000000..008db6353 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-351973.js @@ -0,0 +1,51 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 351973; +var summary = 'GC hazard with unrooted ids in Object.toSource'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function removeAllProperties(o) + { + for (var prop in o) + delete o[prop]; + for (var i = 0; i != 50*1000; ++i) { + var tmp = Math.sqrt(i+0.2); + tmp = 0; + } + if (typeof gc == "function") + gc(); + } + + function run_test() + { + + var o = {}; + o.first = { toSource: function() { removeAllProperties(o); } }; + for (var i = 0; i != 10; ++i) { + o[Math.sqrt(i + 0.1)] = 1; + } + return o.toSource(); + } + + print(run_test()); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-352281.js b/js/src/tests/js1_5/extensions/regress-352281.js new file mode 100644 index 000000000..acb074385 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-352281.js @@ -0,0 +1,35 @@ +// |reftest| skip -- obsolete test +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 352281; +var summary = 'decompilation of |while| and function declaration'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f, g; + f = function() { { while(0) function t() { } } } + expect = 'function() { while(0) { function t() { } }}'; + actual = f + ''; + compareSource(expect, actual, summary); + + g = eval(uneval(actual)); + actual = g + ''; + compareSource(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-352291.js b/js/src/tests/js1_5/extensions/regress-352291.js new file mode 100644 index 000000000..a714e9a4c --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-352291.js @@ -0,0 +1,41 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 352291; +var summary = 'disassembly of regular expression'; +var actual = ''; +var expect = 'TypeError: /g/g is not a function'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (typeof dis != 'function') + { + actual = expect = 'disassembly not supported, test skipped.'; + } + else + { + try + { + dis(/g/g) + } + catch(ex) + { + actual = ex + ''; + } + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-352372.js b/js/src/tests/js1_5/extensions/regress-352372.js new file mode 100644 index 000000000..088f51028 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-352372.js @@ -0,0 +1,65 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 352372; +var summary = 'Do not assert eval("setter/*...")'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'ReferenceError: setter is not defined'; + try + { + eval("setter/*\n*/;"); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, 'eval("setter/*\n*/;")'); + + try + { + eval("setter/*\n*/g"); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, 'eval("setter/*\n*/g")'); + + try + { + eval("setter/*\n*/ ;"); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, 'eval("setter/*\n*/ ;")'); + + try + { + eval("setter/*\n*/ g"); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, 'eval("setter/*\n*/ g")'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-352604.js b/js/src/tests/js1_5/extensions/regress-352604.js new file mode 100644 index 000000000..c6197f6af --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-352604.js @@ -0,0 +1,33 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 352604; +var summary = 'Do not assert: !OBJ_GET_PROTO(cx, ctor)'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function f() {} + delete Function; + var g = function () {}; + + expect = f.__proto__; + actual = g.__proto__; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-354297.js b/js/src/tests/js1_5/extensions/regress-354297.js new file mode 100644 index 000000000..83a0f22f4 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-354297.js @@ -0,0 +1,30 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 354297; +var summary = 'getter/setter can be on index'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + print('This test requires GC_MARK_DEBUG'); + + var o = {}; o.__defineGetter__(1, Math.sin); gc() + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-354541-01.js b/js/src/tests/js1_5/extensions/regress-354541-01.js new file mode 100644 index 000000000..c177c3be4 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-354541-01.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 354541; +var summary = 'Regression to standard class constructors in case labels'; +var actual = ''; +var expect = ''; + + +printBugNumber(BUGNUMBER); +printStatus (summary + ': top level'); + +String.prototype.trim = function() { print('hallo'); }; + +const S = String; +const Sp = String.prototype; + +expect = 'No Error'; +actual = 'No Error'; + +if (typeof Script == 'undefined') +{ + print('Test skipped. Script not defined.'); +} +else +{ + var s = Script('var tmp = function(o) { switch(o) { case String: case 1: return ""; } }; print(String === S); print(String.prototype === Sp); "".trim();'); + s(); +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-354541-02.js b/js/src/tests/js1_5/extensions/regress-354541-02.js new file mode 100644 index 000000000..83019d55f --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-354541-02.js @@ -0,0 +1,43 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 354541; +var summary = 'Regression to standard class constructors in case labels'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary + ': in function'); + + String.prototype.trim = function() { print('hallo'); }; + + const S = String; + const Sp = String.prototype; + + expect = 'No Error'; + actual = 'No Error'; + if (typeof Script == 'undefined') + { + print('Test skipped. Script not defined.'); + } + else + { + var s = Script('var tmp = function(o) { switch(o) { case String: case 1: return ""; } }; print(String === S); print(String.prototype === Sp); "".trim();'); + s(); + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-354541-03.js b/js/src/tests/js1_5/extensions/regress-354541-03.js new file mode 100644 index 000000000..2468192e4 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-354541-03.js @@ -0,0 +1,55 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 354541; +var summary = 'Regression to standard class constructors in case labels'; +var actual = ''; +var expect = ''; + + +printBugNumber(BUGNUMBER); +printStatus (summary + ': top level'); + +String.prototype.trim = function() { print('hallo'); }; + +String.prototype.trim = function() { return 'hallo'; }; + +const S = String; +const Sp = String.prototype; + +expect = 'hallo'; +var expectStringInvariant = true + var actualStringInvariant; +var expectStringPrototypeInvariant = true; +var actualStringPrototypeInvariant; + +if (typeof Script == 'undefined') +{ + print('Test skipped. Script not defined.'); + reportCompare("Script not defined, Test skipped.", + "Script not defined, Test skipped.", + summary); +} +else +{ + var s = Script('var tmp = function(o) { switch(o) { case String: case 1: return ""; } }; actualStringInvariant = (String === S); actualStringPrototypeInvariant = (String.prototype === Sp); actual = "".trim();'); + try + { + s(); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, 'trim() returned'); + reportCompare(expectStringInvariant, actualStringInvariant, + 'String invariant'); + reportCompare(expectStringPrototypeInvariant, + actualStringPrototypeInvariant, + 'String.prototype invariant'); + +} + diff --git a/js/src/tests/js1_5/extensions/regress-354541-04.js b/js/src/tests/js1_5/extensions/regress-354541-04.js new file mode 100644 index 000000000..ee68b0a76 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-354541-04.js @@ -0,0 +1,60 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 354541; +var summary = 'Regression to standard class constructors in case labels'; +var actual = ''; +var expect = ''; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary + ': in function'); + + String.prototype.trim = function() { return 'hallo'; }; + + const S = String; + const Sp = String.prototype; + + expect = 'hallo'; + var expectStringInvariant = true; + var actualStringInvariant; + var expectStringPrototypeInvariant = true; + var actualStringPrototypeInvariant; + + if (typeof Script == 'undefined') + { + print('Test skipped. Script is not defined'); + reportCompare("Script not defined, Test skipped.", + "Script not defined, Test skipped.", + summary); + } + else + { + s = Script('var tmp = function(o) { switch(o) { case String: case 1: return ""; } }; actualStringInvariant = (String === S); actualStringPrototypeInvariant = (String.prototype === Sp); actual = "".trim();'); + try + { + s(); + } + catch(ex) + { + actual = ex + ''; + } + + reportCompare(expect, actual, 'trim() returned'); + reportCompare(expectStringInvariant, actualStringInvariant, 'String invariant'); + reportCompare(expectStringPrototypeInvariant, + actualStringPrototypeInvariant, + 'String.prototype invariant'); + } + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-355339.js b/js/src/tests/js1_5/extensions/regress-355339.js new file mode 100644 index 000000000..9b15bd742 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-355339.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 355339; +var summary = 'Do not assert: sprop->setter != js_watch_set'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = actual = 'No Crash'; + o = {}; + o.watch("j", function(a,b,c) { print("*",a,b,c) }); + o.unwatch("j"); + o.watch("j", function(a,b,c) { print("*",a,b,c) }); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-355497.js b/js/src/tests/js1_5/extensions/regress-355497.js new file mode 100644 index 000000000..4f69eefbf --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-355497.js @@ -0,0 +1,60 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 355497; +var summary = 'Do not overflow stack with Array.slice, getter'; +var actual = ''; +var expect = ''; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'InternalError: too much recursion'; + + try + { + var a = { length: 1 }; + a.__defineGetter__(0, [].slice); + a[0]; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': 1'); + + try + { + var b = { length: 1 }; + b.__defineGetter__(0, function () { return Array.slice(b);}); + b[0]; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': 2'); + + try + { + var c = []; + c.__defineSetter__(0, c.unshift); + c[0] = 1; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': 3'); + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-355622.js b/js/src/tests/js1_5/extensions/regress-355622.js new file mode 100644 index 000000000..87224a218 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-355622.js @@ -0,0 +1,34 @@ +// |reftest| skip -- obsolete test +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 355622; +var summary = 'Do not assert: overwriting'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + (function() { export arguments })(); + } + catch(ex) + { + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-355655.js b/js/src/tests/js1_5/extensions/regress-355655.js new file mode 100644 index 000000000..9013cb1b9 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-355655.js @@ -0,0 +1,45 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 355655; +var summary = 'running script can be recompiled'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (typeof Script == 'undefined') + { + print('Test skipped. Script not defined.'); + } + else + { + expect = 'TypeError: cannot compile over a script that is currently executing'; + actual = ''; + + try + { + t='1';s=Script('s.compile(t);print(t);');s(); + } + catch(ex) + { + actual = ex + ''; + } + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-355820.js b/js/src/tests/js1_5/extensions/regress-355820.js new file mode 100644 index 000000000..dd5de38ea --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-355820.js @@ -0,0 +1,31 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 355820; +var summary = 'Remove non-standard Script object'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + print('This test will fail in gecko prior to 1.9'); + + expect = 'undefined'; + actual = typeof Script; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-355982.js b/js/src/tests/js1_5/extensions/regress-355982.js new file mode 100644 index 000000000..815f8af15 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-355982.js @@ -0,0 +1,43 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 355982; +var summary = 'Script("") should not fail'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'No Error'; + actual = 'No Error'; + try + { + if (typeof Script == 'undefined') + { + print('Test skipped. Script not defined.'); + } + else + { + Script(''); + } + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-356402.js b/js/src/tests/js1_5/extensions/regress-356402.js new file mode 100644 index 000000000..33e1e6637 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-356402.js @@ -0,0 +1,23 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 356402; +var summary = 'Do not assert: slot < fp->nvars'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +if (typeof Script == 'undefined') +{ + print('Test skipped. Script not defined.'); +} +else +{ + (function() { new Script('for(var x in x) { }')(); })(); +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-358594-01.js b/js/src/tests/js1_5/extensions/regress-358594-01.js new file mode 100644 index 000000000..db6ea21b7 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-358594-01.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 358594; +var summary = 'Do not crash on uneval(this).'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + // don't crash|assert + function f() { } + f.__proto__ = this; + Object.defineProperty(this, "m", { set: f, enumerable: true, configurable: true }); + uneval(this); + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-358594-02.js b/js/src/tests/js1_5/extensions/regress-358594-02.js new file mode 100644 index 000000000..d31d93ff5 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-358594-02.js @@ -0,0 +1,21 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 358594; +var summary = 'Do not crash on uneval(this).'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +// don't crash|assert +function f() { } +f.__proto__ = this; +Object.defineProperty(this, "m", { set: f, enumerable: true, configurable: true }); +uneval(this); +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-358594-03.js b/js/src/tests/js1_5/extensions/regress-358594-03.js new file mode 100644 index 000000000..f27c41d25 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-358594-03.js @@ -0,0 +1,31 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 358594; +var summary = 'Do not crash on uneval(this).'; +var actual = ''; +var expect = ''; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + // don't crash|assert + f = function () { }; + f.__proto__ = this; + Object.defineProperty(this, "m", { set: f, enumerable: true, configurable: true }); + uneval(this); + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-358594-04.js b/js/src/tests/js1_5/extensions/regress-358594-04.js new file mode 100644 index 000000000..5444293d0 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-358594-04.js @@ -0,0 +1,21 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 358594; +var summary = 'Do not crash on uneval(this).'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +// don't crash|assert +f = function () { }; +f.__proto__ = this; +Object.defineProperty(this, "m", { set: f, enumerable: true, configurable: true }); +uneval(this); +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-358594-05.js b/js/src/tests/js1_5/extensions/regress-358594-05.js new file mode 100644 index 000000000..0c6f9a1a4 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-358594-05.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 358594; +var summary = 'Do not crash on uneval(this).'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + // don't crash|assert + f = function () { }; + f.hhhhhhhhh = this; + Object.defineProperty(this, "m", { set: f, enumerable: true, configurable: true }); + uneval(this); + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-358594-06.js b/js/src/tests/js1_5/extensions/regress-358594-06.js new file mode 100644 index 000000000..b4dc4fcd9 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-358594-06.js @@ -0,0 +1,21 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 358594; +var summary = 'Do not crash on uneval(this).'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +// don't crash|assert +f = function () { }; +f.hhhhhhhhh = this; +Object.defineProperty(this, "m", { set: f, enumerable: true, configurable: true }); +uneval(this); +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-359024.js b/js/src/tests/js1_5/extensions/regress-359024.js new file mode 100644 index 000000000..a2a178cba --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-359024.js @@ -0,0 +1,36 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 359024; +var summary = 'Do not crash with Script...'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (typeof Script == 'undefined') + { + print(expect = actual = 'Test skipped. Script object required.'); + } + else + { + var scri=new Script(" var s=new Date(); var a=0; for(var i=0;i<1024*1024;i++) {a=i } var e=new Date(); print('time2='+(e-s)/1000);"); + scri.compile(); + scri.exec(); + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-361346.js b/js/src/tests/js1_5/extensions/regress-361346.js new file mode 100644 index 000000000..297c3b1f2 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-361346.js @@ -0,0 +1,22 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 361346; +var summary = 'Crash with setter, watch, GC'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expect = actual = 'No Crash'; + +Object.defineProperty(this, "x", { set: new Function, enumerable: true, configurable: true }); +this.watch('x', function(){}); +gc(); +x = {}; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-361360.js b/js/src/tests/js1_5/extensions/regress-361360.js new file mode 100644 index 000000000..98e6575d9 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-361360.js @@ -0,0 +1,32 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 361360; +var summary = 'Do not assert: !caller || caller->pc involving setter and watch'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = actual = 'No Crash'; + + this.__defineSetter__('x', eval); + this.watch('x', function(){}); + x = 3; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-361552.js b/js/src/tests/js1_5/extensions/regress-361552.js new file mode 100644 index 000000000..eed54e6dd --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-361552.js @@ -0,0 +1,27 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 361552; +var summary = 'Crash with setter, watch, Script'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expect = actual = 'No Crash'; + +if (typeof Script == 'undefined') +{ + print('Test skipped. Script not defined.'); +} +else +{ + this.__defineSetter__('x', gc); + this.watch('x', new Script('')); + x = 3; +} +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-361558.js b/js/src/tests/js1_5/extensions/regress-361558.js new file mode 100644 index 000000000..a9a3ae725 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-361558.js @@ -0,0 +1,19 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 361558; +var summary = 'Do not assert: sprop->setter != js_watch_set'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expect = actual = 'No Crash'; + +({}.__proto__.watch('x', print)); ({}.watch('x', print)); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-361571.js b/js/src/tests/js1_5/extensions/regress-361571.js new file mode 100644 index 000000000..bf89d794b --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-361571.js @@ -0,0 +1,38 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 361571; +var summary = 'Do not assert: fp->scopeChain == parent'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + o = {}; + o.__defineSetter__('y', eval); + o.watch('y', function () { return "";}); + o.y = 1; + } + catch(ex) + { + printStatus('Note eval can no longer be called directly'); + expect = 'EvalError: function eval must be called directly, and not by way of a function of another name'; + actual = ex + ''; + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-361856.js b/js/src/tests/js1_5/extensions/regress-361856.js new file mode 100644 index 000000000..e7e2f675b --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-361856.js @@ -0,0 +1,35 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 361856; +var summary = 'Do not assert: overwriting @ js_AddScopeProperty'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function testit() { + var obj = {}; + obj.watch("foo", function(){}); + delete obj.foo; + obj = null; + gc(); + } + testit(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-361964.js b/js/src/tests/js1_5/extensions/regress-361964.js new file mode 100644 index 000000000..fcb8bba01 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-361964.js @@ -0,0 +1,54 @@ +// |reftest| skip -- slow, alert not dismissed, now busted by harness +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 361964; +var summary = 'Crash [@ MarkGCThingChildren] involving watch and setter'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var doc; + if (typeof document == 'undefined') + { + doc = {}; + } + else + { + doc = document; + } + + if (typeof alert == 'undefined') + { + alert = print; + } + +// Crash: + doc.watch("title", function(a,b,c,d) { + return { toString : function() { alert(1); } }; + }); + doc.title = "xxx"; + +// No crash: + doc.watch("title", function() { + return { toString : function() { alert(1); } }; + }); + doc.title = "xxx"; + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-363258.js b/js/src/tests/js1_5/extensions/regress-363258.js new file mode 100644 index 000000000..4e48b1261 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-363258.js @@ -0,0 +1,48 @@ +// |reftest| random -- bug 524788 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 363258; +var summary = 'Timer resolution'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var start = 0; + var stop = 0; + var i; + var limit = 0; + var incr = 10; + var resolution = 5; + + while (stop - start == 0) + { + limit += incr; + start = Date.now(); + for (i = 0; i < limit; i++) {} + stop = Date.now(); + } + + print('limit=' + limit + ', resolution=' + resolution + ', time=' + (stop - start)); + + expect = true; + actual = (stop - start <= resolution); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-363988.js b/js/src/tests/js1_5/extensions/regress-363988.js new file mode 100644 index 000000000..76f1dccba --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-363988.js @@ -0,0 +1,47 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 363988; +var summary = 'Do not crash at JS_GetPrivate with large script'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function crash() { + var town = new Array; + + for (var i = 0; i < 0x4001; ++i) { + var si = String(i); + town[i] = [ si, "x" + si, "y" + si, "z" + si ]; + } + + return "town=" + uneval(town) + ";function f() {}"; + } + + if (typeof document != "undefined") + { + // this is required to reproduce the crash. + document.write("'); + window.addEventListener('load', crash, false); + } + else + { + reportCompare(expect, actual, summary); + } + + exitFunc ('test'); +} + +function crash() +{ + gDelayTestDriverEnd = false; + reportCompare(expect, actual, summary); + jsTestDriverEnd(); +} diff --git a/js/src/tests/js1_5/extensions/regress-369696-01.js b/js/src/tests/js1_5/extensions/regress-369696-01.js new file mode 100644 index 000000000..985ae0f35 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-369696-01.js @@ -0,0 +1,31 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 369696; +var summary = 'Do not assert: map->depth > 0" in js_LeaveSharpObject'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + q = []; + q.__defineGetter__("0", q.toString); + q[2] = q; + assertEq(q.toSource(), "[\"\", , []]", "wrong string"); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-369696-02.js b/js/src/tests/js1_5/extensions/regress-369696-02.js new file mode 100644 index 000000000..1784d977c --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-369696-02.js @@ -0,0 +1,58 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 369696; +var summary = 'Do not assert: map->depth > 0" in js_LeaveSharpObject'; +var actual = ''; +var expect = ''; + +// Bug 762908 requires us to set sp=null; +if (this.window) window.SpecialPowers = null; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function fun() {} + n = fun.prototype; + n.__defineGetter__("prototype", n.toSource); + p = n.__lookupGetter__("prototype"); + n = p; + + assertEq(n, Object.prototype.toSource); + assertEq(p, Object.prototype.toSource); + + n["prototype"] = [n]; + n = p; + + assertEq(n, Object.prototype.toSource); + assertEq(p, Object.prototype.toSource); + + p2 = n["prototype"]; + + assertEq(Array.isArray(p2), true); + assertEq(p2[0], Object.prototype.toSource); + + n = p2; + + assertEq(n.toString, Array.prototype.toString); + n.__defineGetter__("0", n.toString); + n = p; + + assertEq(n, Object.prototype.toSource); + + n.call(this); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-369696-03.js b/js/src/tests/js1_5/extensions/regress-369696-03.js new file mode 100644 index 000000000..da52ab8d6 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-369696-03.js @@ -0,0 +1,47 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 369696; +var summary = 'Do not assert: map->depth > 0" in js_LeaveSharpObject'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var x = [[[ { toSource: function() { gc(); }}]]]; + + var a = []; + a[0] = a; + a.toSource = a.toString; + Array.prototype.toSource.call(a); + +//cx->sharpObjectMap.depth == -2 + + (function() { + var tmp = []; + for (var i = 0; i != 30*1000; ++i) { + var tmp2 = []; + tmp.push(tmp2); + tmp2.toSource(); + } + })(); + + gc(); + x.toSource(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-372309.js b/js/src/tests/js1_5/extensions/regress-372309.js new file mode 100644 index 000000000..278ee0a89 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-372309.js @@ -0,0 +1,47 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 372309; +var summary = 'Root new array objects'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var width = 600; + var height = 600; + + var img1canvas = document.createElement("canvas"); + var img2canvas = document.createElement("canvas"); + + img1canvas.width = img2canvas.width = width; + img1canvas.height = img2canvas.height = height; + img1canvas.getContext("2d").getImageData(0, 0, width, height).data; + img2canvas.getContext("2d").getImageData(0, 0, width, height).data; + + reportCompare(expect, actual, summary); + gDelayTestDriverEnd = false; + jsTestDriverEnd(); + + exitFunc ('test'); +} + +if (typeof window != 'undefined') +{ + // delay test driver end + gDelayTestDriverEnd = true; + + window.addEventListener("load", test, false); +} +else +{ + reportCompare(expect, actual, summary); +} + diff --git a/js/src/tests/js1_5/extensions/regress-374589.js b/js/src/tests/js1_5/extensions/regress-374589.js new file mode 100644 index 000000000..829c5dcc3 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-374589.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 374589; +var summary = 'Do not assert decompiling try { } catch(x if true) { } ' + + 'catch(y) { } finally { this.a.b; }'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f = function () { + try { } catch(x if true) { } catch(y) { } finally { this.a.b; } }; + + expect = 'function () { try { } catch(x if true) { } catch(y) { } ' + + 'finally { this.a.b; } }'; + + actual = f + ''; + compareSource(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-375183.js b/js/src/tests/js1_5/extensions/regress-375183.js new file mode 100644 index 000000000..e41751a1b --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-375183.js @@ -0,0 +1,62 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 375183; +var summary = '__noSuchMethod__ should not allocate beyond fp->script->depth'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var obj = { get __noSuchMethod__() { + print("Executed"); + return new Object(); + }}; + + try + { + obj.x(); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary + ':1'); + + obj = { __noSuchMethod__: {} }; + try + { + obj.x(); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary + ':2'); + + obj = { } + obj.__noSuchMethod__ = {}; + try + { + obj.x(); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary + ':3'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-375344.js b/js/src/tests/js1_5/extensions/regress-375344.js new file mode 100644 index 000000000..41d9eeb15 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-375344.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 375344; +var summary = 'accessing prototype of DOM objects should throw catchable error'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +if (typeof HTMLElement != 'undefined') +{ + expect = /TypeError/; + try + { + print(HTMLElement.prototype.nodeName); + } + catch(ex) + { + actual = ex + ''; + print(actual); + } + reportMatch(expect, actual, summary); +} +else +{ + expect = actual = 'Test can only run in a Gecko 1.9 browser or later.'; + print(actual); + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/js1_5/extensions/regress-375801.js b/js/src/tests/js1_5/extensions/regress-375801.js new file mode 100644 index 000000000..2ed40ae99 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-375801.js @@ -0,0 +1,36 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 375801; +var summary = 'uneval should use "(void 0)" instead of "undefined"'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '({a: (void 0)})' + actual = uneval({a: undefined}) + compareSource(expect, actual, summary + ': uneval'); + + expect = 'function() {({a: undefined});}'; + actual = (function() {({a: undefined});}).toString(); + compareSource(expect, actual, summary + ': toString'); + + expect = '(function () {({a: undefined});})'; + actual = (function () {({a: undefined});}).toSource(); + compareSource(expect, actual, summary + ': toSource'); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-380581.js b/js/src/tests/js1_5/extensions/regress-380581.js new file mode 100644 index 000000000..504a6f79d --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-380581.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 380581; +var summary = 'Incorrect uneval with setter in object literal'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '(function() { })'; + actual = uneval(eval("(function() { })")); + compareSource(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-380889.js b/js/src/tests/js1_5/extensions/regress-380889.js new file mode 100644 index 000000000..b0e03d666 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-380889.js @@ -0,0 +1,40 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 380889; +var summary = 'Source disassembler assumes SRC_SWITCH has jump table'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function f(i) + { + switch(i){ + case 1: + case xyzzy: + } + } + + if (typeof dis != 'undefined') + { + dis(f); + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-381211.js b/js/src/tests/js1_5/extensions/regress-381211.js new file mode 100644 index 000000000..079843336 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-381211.js @@ -0,0 +1,29 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 381211; +var summary = 'uneval with getter'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '( { get x() {} } )'; + actual = uneval({get x(){}}); + compareSource(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-381304.js b/js/src/tests/js1_5/extensions/regress-381304.js new file mode 100644 index 000000000..603b81fba --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-381304.js @@ -0,0 +1,69 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 381304; +var summary = 'getter/setter with keywords'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var obj; + + print('1'); + + obj = { + set inn(value) {this.for = value;}, + get inn() {return this.for;} + }; + + expect = '({get inn() { return this.for; }, set inn(value) { this.for = value; } })'; + actual = obj.toSource(); + compareSource(expect, actual, summary + ': 1'); + + print('2'); + + obj = { + set in(value) {this.for = value;}, + get in() {return this.for;} + }; + + expect = '({ get in() { return this.for; }, set in(value) { this.for = value; } })'; + actual = obj.toSource(); + compareSource(expect, actual, summary + ': 2'); + + print('3'); + + obj = { + set inn(value) {this.for = value;}, + get in() {return this.for;} + }; + + expect = '({ set inn(value) { this.for = value; }, get in() { return this.for; } })'; + actual = obj.toSource(); + compareSource(expect, actual, summary + ': 4'); + + print('4'); + + obj = { + set in(value) {this.for = value;}, + get inn() {return this.for;} + }; + + expect = ' ({ set in(value) { this.for = value; }, get inn() { return this.for; } })'; + actual = obj.toSource(); + compareSource(expect, actual, summary + ': 5'); + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-385134.js b/js/src/tests/js1_5/extensions/regress-385134.js new file mode 100644 index 000000000..041f4d6e7 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-385134.js @@ -0,0 +1,38 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 385134; +var summary = 'Do not crash with setter, watch, uneval'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (typeof this.__defineSetter__ != 'undefined' && + typeof this.watch != 'undefined' && + typeof uneval != 'undefined') + { + try { + this.__defineSetter__(0, function(){}); + } catch (exc) { + // In the browser, this fails. Ignore the error. + } + this.watch(0, function(){}); + uneval(this); + } + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-385393-02.js b/js/src/tests/js1_5/extensions/regress-385393-02.js new file mode 100644 index 000000000..a23efb5af --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-385393-02.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 385393; +var summary = 'Regression test for bug 385393'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + (4).__lookupGetter__("w"); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-385393-09.js b/js/src/tests/js1_5/extensions/regress-385393-09.js new file mode 100644 index 000000000..42834824a --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-385393-09.js @@ -0,0 +1,18 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 385393; +var summary = 'Regression test for bug 385393'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +eval("this.__defineSetter__('x', gc); this.watch('x', [].slice); x = 1;"); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/js1_5/extensions/regress-390597.js b/js/src/tests/js1_5/extensions/regress-390597.js new file mode 100644 index 000000000..9f8596adc --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-390597.js @@ -0,0 +1,42 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 390597; +var summary = 'watch point + eval-as-setter allows access to dead JSStackFrame'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function exploit() { + try + { + var obj = this, args = null; + obj.__defineSetter__("evil", eval); + obj.watch("evil", function() { return "args = arguments;"; }); + obj.evil = null; + eval("print(args[0]);"); + } + catch(ex) + { + print('Caught ' + ex); + } + } + exploit(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-390598.js b/js/src/tests/js1_5/extensions/regress-390598.js new file mode 100644 index 000000000..46167bc81 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-390598.js @@ -0,0 +1,34 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 390598; +var summary = 'array_length_setter is exploitable'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + function exploit() { + var fun = function () {}; + fun.__proto__ = []; + fun.length = 0x50505050 >> 1; + fun(); + } + exploit(); + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-394967.js b/js/src/tests/js1_5/extensions/regress-394967.js new file mode 100644 index 000000000..e1ed16af7 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-394967.js @@ -0,0 +1,42 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 394967; +var summary = 'Do not assert: !vp[1].isPrimitive()'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (typeof evalcx == 'undefined') + { + print('Skipping. This test requires evalcx.'); + } + else + { + var sandbox = evalcx(""); + try + { + evalcx("(1)()", sandbox); + } + catch(ex) + { + } + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-396326.js b/js/src/tests/js1_5/extensions/regress-396326.js new file mode 100644 index 000000000..4c927b44e --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-396326.js @@ -0,0 +1,48 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +//----------------------------------------------------------------------------- +var BUGNUMBER = 396326; +var summary = 'Do not assert trying to disassemble get(var|arg) prop'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (typeof dis == 'undefined') + { + print('disassembly not supported. test skipped.'); + reportCompare(expect, actual, summary); + } + else + { + function f1() { var v; return v.prop }; + dis(f1); + reportCompare(expect, actual, summary + + ': function f1() { var v; return v.prop };'); + + function f2(arg) { return arg.prop }; + dis(f2); + reportCompare(expect, actual, summary + + ': function f2(arg) { return arg.prop };'); + + function f3() { return this.prop }; + dis(f3); + reportCompare(expect, actual, summary + + ': function f3() { return this.prop };'); + } + + exitFunc ('test'); +} diff --git a/js/src/tests/js1_5/extensions/regress-406572.js b/js/src/tests/js1_5/extensions/regress-406572.js new file mode 100644 index 000000000..4911d05bc --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-406572.js @@ -0,0 +1,47 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 406572; +var summary = 'JSOP_CLOSURE unconditionally replaces properties of the variable object - Browser only'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +if (typeof window != 'undefined') +{ + try { + actual = "FAIL: Unexpected exception thrown"; + + var win = window; + var windowString = String(window); + window = 1; + reportCompare(windowString, String(window), "window should be readonly"); + + if (1) + function window() { return 1; } + + // We should reach this line without throwing. Annex B means the + // block-scoped function above gets an assignment to 'window' in the + // nearest 'var' environment, but since 'window' is read-only, the + // assignment silently fails. + actual = ""; + + // The test harness might rely on window having its original value: + // restore it. + window = win; + } catch (e) { + } +} +else +{ + expect = actual = 'Test can only run in a Gecko 1.9 browser or later.'; + print(actual); +} +reportCompare(expect, actual, summary); + + diff --git a/js/src/tests/js1_5/extensions/regress-407501.js b/js/src/tests/js1_5/extensions/regress-407501.js new file mode 100644 index 000000000..444f76e11 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-407501.js @@ -0,0 +1,42 @@ +// |reftest| skip-if(Android) +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 407501; +var summary = 'JSOP_NEWINIT lacks SAVE_SP_AND_PC '; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (typeof gczeal == 'function') + { + gczeal(2); + } + + var a = [[[[[[[0]]]]]]]; + if (uneval(a).length == 0) + throw "Unexpected result"; + + if (typeof gczeal == 'function') + { + gczeal(0); + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} + diff --git a/js/src/tests/js1_5/extensions/regress-407720.js b/js/src/tests/js1_5/extensions/regress-407720.js new file mode 100644 index 000000000..9ecfedfce --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-407720.js @@ -0,0 +1,52 @@ +// |reftest| skip-if(!xulRuntime.shell) slow +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 407720; +var summary = 'js_FindClassObject causes crashes with getter/setter - Browser only'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +// stop the test after 60 seconds +var start = new Date(); + +if (typeof document != 'undefined') +{ + // delay test driver end + gDelayTestDriverEnd = true; + document.write('