From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- js/src/tests/non262/regress/browser.js | 0 js/src/tests/non262/regress/regress-102725.js | 61 + js/src/tests/non262/regress/regress-10278.js | 45 + js/src/tests/non262/regress/regress-104077.js | 470 + js/src/tests/non262/regress/regress-110286.js | 119 + js/src/tests/non262/regress/regress-111557.js | 10931 ++++ js/src/tests/non262/regress/regress-114491.js | 69 + js/src/tests/non262/regress/regress-114493.js | 77 + js/src/tests/non262/regress/regress-116228.js | 24 + js/src/tests/non262/regress/regress-118849.js | 149 + js/src/tests/non262/regress/regress-131510-001.js | 40 + js/src/tests/non262/regress/regress-1383630.js | 827 + js/src/tests/non262/regress/regress-139316.js | 46 + js/src/tests/non262/regress/regress-140852.js | 32 + js/src/tests/non262/regress/regress-140974.js | 103 + .../regress/regress-1456512-greyreadbarrier.js | 9 + js/src/tests/non262/regress/regress-1456512.js | 21 + .../non262/regress/regress-1456518-workergray.js | 7 + js/src/tests/non262/regress/regress-1463421.js | 31 + js/src/tests/non262/regress/regress-146596.js | 121 + .../regress/regress-1466387-worker-grayroot.js | 28 + .../non262/regress/regress-1476383-calloc-exc.js | 12 + .../non262/regress/regress-1507322-deep-weakmap.js | 11 + js/src/tests/non262/regress/regress-152646.js | 90 + js/src/tests/non262/regress/regress-155081-2.js | 17520 +++++ js/src/tests/non262/regress/regress-155081.js | 17527 +++++ js/src/tests/non262/regress/regress-156354.js | 94 + .../regress-1572988-nurseryRegisterCheck.js | 43 + js/src/tests/non262/regress/regress-159334.js | 92 + js/src/tests/non262/regress/regress-162392.js | 32 + js/src/tests/non262/regress/regress-165201.js | 55 + js/src/tests/non262/regress/regress-167328.js | 26 + js/src/tests/non262/regress/regress-167658.js | 28 + js/src/tests/non262/regress/regress-168347.js | 183 + js/src/tests/non262/regress/regress-170193.js | 74 + .../non262/regress/regress-1714532-oom-gc-yield.js | 9 + js/src/tests/non262/regress/regress-172699.js | 69 + js/src/tests/non262/regress/regress-174709.js | 69 + js/src/tests/non262/regress/regress-176125.js | 49 + js/src/tests/non262/regress/regress-179524.js | 292 + js/src/tests/non262/regress/regress-185165.js | 64 + js/src/tests/non262/regress/regress-191633.js | 70 + js/src/tests/non262/regress/regress-191668.js | 67 + js/src/tests/non262/regress/regress-192414.js | 85 + js/src/tests/non262/regress/regress-193418.js | 67 + js/src/tests/non262/regress/regress-203278-1.js | 30 + js/src/tests/non262/regress/regress-203402.js | 58 + js/src/tests/non262/regress/regress-203841.js | 127 + js/src/tests/non262/regress/regress-204210.js | 116 + js/src/tests/non262/regress/regress-210682.js | 64 + js/src/tests/non262/regress/regress-211590.js | 54 + js/src/tests/non262/regress/regress-214761.js | 44 + js/src/tests/non262/regress/regress-216320.js | 1006 + js/src/tests/non262/regress/regress-224956.js | 248 + js/src/tests/non262/regress/regress-229006.js | 65563 +++++++++++++++++++ js/src/tests/non262/regress/regress-230216-1.js | 47 + js/src/tests/non262/regress/regress-230216-2.js | 39 + js/src/tests/non262/regress/regress-230216-3.js | 46 + js/src/tests/non262/regress/regress-233483-2.js | 59 + js/src/tests/non262/regress/regress-233483.js | 44 + js/src/tests/non262/regress/regress-234389.js | 39 + js/src/tests/non262/regress/regress-238881.js | 30 + js/src/tests/non262/regress/regress-238945.js | 18 + js/src/tests/non262/regress/regress-243174.js | 21 + js/src/tests/non262/regress/regress-243389-n.js | 24 + js/src/tests/non262/regress/regress-243869.js | 38 + js/src/tests/non262/regress/regress-244470.js | 1080 + js/src/tests/non262/regress/regress-244619.js | 32 + js/src/tests/non262/regress/regress-245113.js | 47 + js/src/tests/non262/regress/regress-245308.js | 27 + js/src/tests/non262/regress/regress-246911.js | 30 + js/src/tests/non262/regress/regress-246964.js | 160 + js/src/tests/non262/regress/regress-247179.js | 18 + js/src/tests/non262/regress/regress-248444.js | 31 + js/src/tests/non262/regress/regress-252892.js | 68 + js/src/tests/non262/regress/regress-254296.js | 26 + js/src/tests/non262/regress/regress-254974.js | 38 + js/src/tests/non262/regress/regress-256501.js | 38 + js/src/tests/non262/regress/regress-256617.js | 35 + js/src/tests/non262/regress/regress-256798.js | 36 + js/src/tests/non262/regress/regress-259935.js | 42 + js/src/tests/non262/regress/regress-260541.js | 21 + js/src/tests/non262/regress/regress-261886.js | 29 + js/src/tests/non262/regress/regress-261887.js | 36 + js/src/tests/non262/regress/regress-271716-n.js | 27 + js/src/tests/non262/regress/regress-274035.js | 29 + js/src/tests/non262/regress/regress-274888.js | 35 + js/src/tests/non262/regress/regress-275378.js | 47 + js/src/tests/non262/regress/regress-276103.js | 26 + js/src/tests/non262/regress/regress-278873.js | 27 + js/src/tests/non262/regress/regress-280769-1.js | 27 + js/src/tests/non262/regress/regress-280769-2.js | 44 + js/src/tests/non262/regress/regress-280769-3.js | 45 + js/src/tests/non262/regress/regress-280769-4.js | 47 + js/src/tests/non262/regress/regress-280769-5.js | 34 + js/src/tests/non262/regress/regress-280769.js | 39 + js/src/tests/non262/regress/regress-281606.js | 46 + js/src/tests/non262/regress/regress-281930.js | 20 + js/src/tests/non262/regress/regress-283477.js | 24 + js/src/tests/non262/regress/regress-288688.js | 47 + js/src/tests/non262/regress/regress-289094.js | 27 + js/src/tests/non262/regress/regress-290575.js | 57 + js/src/tests/non262/regress/regress-290656.js | 32 + js/src/tests/non262/regress/regress-294191.js | 29 + js/src/tests/non262/regress/regress-294195-01.js | 25 + js/src/tests/non262/regress/regress-294195-02.js | 17 + js/src/tests/non262/regress/regress-294302.js | 24 + js/src/tests/non262/regress/regress-295052.js | 26 + js/src/tests/non262/regress/regress-295666.js | 22 + js/src/tests/non262/regress/regress-299209.js | 23 + js/src/tests/non262/regress/regress-299641.js | 24 + js/src/tests/non262/regress/regress-303213.js | 56 + js/src/tests/non262/regress/regress-306633.js | 26 + js/src/tests/non262/regress/regress-306794.js | 25 + js/src/tests/non262/regress/regress-308085.js | 569 + js/src/tests/non262/regress/regress-310295.js | 21 + js/src/tests/non262/regress/regress-310607.js | 29 + js/src/tests/non262/regress/regress-310993.js | 22 + js/src/tests/non262/regress/regress-311071.js | 18 + js/src/tests/non262/regress/regress-311157-01.js | 24 + js/src/tests/non262/regress/regress-311157-02.js | 24 + js/src/tests/non262/regress/regress-311629.js | 22 + js/src/tests/non262/regress/regress-31255.js | 76 + js/src/tests/non262/regress/regress-312588.js | 27 + js/src/tests/non262/regress/regress-314401.js | 40 + js/src/tests/non262/regress/regress-315990.js | 40 + js/src/tests/non262/regress/regress-317476.js | 31 + js/src/tests/non262/regress/regress-317714-01.js | 19 + js/src/tests/non262/regress/regress-317714-02.js | 20 + js/src/tests/non262/regress/regress-319384.js | 28 + js/src/tests/non262/regress/regress-319391.js | 39 + js/src/tests/non262/regress/regress-320032.js | 27 + js/src/tests/non262/regress/regress-320172.js | 24 + js/src/tests/non262/regress/regress-321757.js | 109 + js/src/tests/non262/regress/regress-321874.js | 207 + js/src/tests/non262/regress/regress-321971.js | 23 + js/src/tests/non262/regress/regress-325925.js | 19 + js/src/tests/non262/regress/regress-326467.js | 17 + js/src/tests/non262/regress/regress-328012.js | 29 + js/src/tests/non262/regress/regress-328664.js | 31 + js/src/tests/non262/regress/regress-329383.js | 83 + js/src/tests/non262/regress/regress-329530.js | 41 + js/src/tests/non262/regress/regress-330352.js | 35 + js/src/tests/non262/regress/regress-330951.js | 17 + js/src/tests/non262/regress/regress-334807-01.js | 24 + js/src/tests/non262/regress/regress-334807-02.js | 28 + js/src/tests/non262/regress/regress-334807-03.js | 24 + js/src/tests/non262/regress/regress-334807-04.js | 28 + js/src/tests/non262/regress/regress-334807-05.js | 33 + js/src/tests/non262/regress/regress-334807-06.js | 37 + js/src/tests/non262/regress/regress-336100.js | 24 + js/src/tests/non262/regress/regress-338307.js | 29 + js/src/tests/non262/regress/regress-340369.js | 23 + js/src/tests/non262/regress/regress-341360.js | 46 + js/src/tests/non262/regress/regress-343713.js | 21 + js/src/tests/non262/regress/regress-343966.js | 29 + js/src/tests/non262/regress/regress-344711-n.js | 31 + js/src/tests/non262/regress/regress-344804.js | 29 + js/src/tests/non262/regress/regress-344959.js | 33 + js/src/tests/non262/regress/regress-346237.js | 25 + js/src/tests/non262/regress/regress-346801.js | 73 + js/src/tests/non262/regress/regress-349482-01.js | 26 + js/src/tests/non262/regress/regress-349482-02.js | 26 + js/src/tests/non262/regress/regress-349592.js | 25 + js/src/tests/non262/regress/regress-350253.js | 31 + js/src/tests/non262/regress/regress-350268.js | 71 + js/src/tests/non262/regress/regress-350312.js | 77 + js/src/tests/non262/regress/regress-350415.js | 31 + js/src/tests/non262/regress/regress-350529.js | 30 + js/src/tests/non262/regress/regress-351116.js | 27 + js/src/tests/non262/regress/regress-351515.js | 33 + js/src/tests/non262/regress/regress-351795.js | 32 + js/src/tests/non262/regress/regress-352208.js | 42 + js/src/tests/non262/regress/regress-352604.js | 26 + js/src/tests/non262/regress/regress-352640-01.js | 30 + js/src/tests/non262/regress/regress-352640-02.js | 30 + js/src/tests/non262/regress/regress-352640-04.js | 30 + js/src/tests/non262/regress/regress-353078.js | 29 + js/src/tests/non262/regress/regress-353079.js | 26 + js/src/tests/non262/regress/regress-355023.js | 28 + js/src/tests/non262/regress/regress-355556.js | 32 + js/src/tests/non262/regress/regress-355569.js | 128 + js/src/tests/non262/regress/regress-355829-01.js | 25 + js/src/tests/non262/regress/regress-355829-02.js | 38 + js/src/tests/non262/regress/regress-355829-03.js | 26 + js/src/tests/non262/regress/regress-355832-01.js | 27 + js/src/tests/non262/regress/regress-355832-02.js | 27 + js/src/tests/non262/regress/regress-356250.js | 38 + js/src/tests/non262/regress/regress-356693.js | 33 + js/src/tests/non262/regress/regress-360969-01.js | 39 + js/src/tests/non262/regress/regress-360969-02.js | 32 + js/src/tests/non262/regress/regress-360969-03.js | 39 + js/src/tests/non262/regress/regress-360969-04.js | 32 + js/src/tests/non262/regress/regress-360969-05.js | 41 + js/src/tests/non262/regress/regress-360969-06.js | 33 + js/src/tests/non262/regress/regress-363040-01.js | 92 + js/src/tests/non262/regress/regress-363040-02.js | 64 + js/src/tests/non262/regress/regress-3649-n.js | 32 + js/src/tests/non262/regress/regress-366122.js | 43 + js/src/tests/non262/regress/regress-366468.js | 31 + js/src/tests/non262/regress/regress-366601.js | 35 + js/src/tests/non262/regress/regress-367561-01.js | 34 + js/src/tests/non262/regress/regress-367561-03.js | 33 + js/src/tests/non262/regress/regress-369666-01.js | 56 + js/src/tests/non262/regress/regress-369666-02.js | 60 + js/src/tests/non262/regress/regress-372364.js | 44 + js/src/tests/non262/regress/regress-373827-01.js | 25 + js/src/tests/non262/regress/regress-373827-02.js | 31 + js/src/tests/non262/regress/regress-373843.js | 13 + js/src/tests/non262/regress/regress-379245.js | 36 + js/src/tests/non262/regress/regress-379442.js | 25 + js/src/tests/non262/regress/regress-379483.js | 25 + js/src/tests/non262/regress/regress-383674.js | 52 + js/src/tests/non262/regress/regress-383682.js | 33 + js/src/tests/non262/regress/regress-383902.js | 41 + js/src/tests/non262/regress/regress-385393-04.js | 30 + js/src/tests/non262/regress/regress-387951-01.js | 25 + js/src/tests/non262/regress/regress-387951-02.js | 25 + js/src/tests/non262/regress/regress-387951-03.js | 25 + js/src/tests/non262/regress/regress-39309.js | 73 + js/src/tests/non262/regress/regress-396684.js | 45 + js/src/tests/non262/regress/regress-398085-01.js | 742 + js/src/tests/non262/regress/regress-398085-02.js | 725 + js/src/tests/non262/regress/regress-398609.js | 36 + js/src/tests/non262/regress/regress-404734.js | 28 + js/src/tests/non262/regress/regress-404755.js | 47 + js/src/tests/non262/regress/regress-406769.js | 152 + js/src/tests/non262/regress/regress-407024.js | 20 + js/src/tests/non262/regress/regress-407727-01.js | 17 + js/src/tests/non262/regress/regress-407727-02.js | 19 + js/src/tests/non262/regress/regress-410649.js | 39 + js/src/tests/non262/regress/regress-410852.js | 34 + js/src/tests/non262/regress/regress-414553.js | 27 + js/src/tests/non262/regress/regress-416737-01.js | 25 + js/src/tests/non262/regress/regress-416737-02.js | 30 + js/src/tests/non262/regress/regress-417893.js | 35 + js/src/tests/non262/regress/regress-418540.js | 51 + js/src/tests/non262/regress/regress-418641.js | 80 + js/src/tests/non262/regress/regress-419018.js | 44 + js/src/tests/non262/regress/regress-419152.js | 54 + js/src/tests/non262/regress/regress-419803.js | 25 + js/src/tests/non262/regress/regress-420087.js | 28 + js/src/tests/non262/regress/regress-420610.js | 17 + js/src/tests/non262/regress/regress-420919.js | 33 + js/src/tests/non262/regress/regress-422348.js | 35 + js/src/tests/non262/regress/regress-424311.js | 25 + js/src/tests/non262/regress/regress-425360.js | 32 + js/src/tests/non262/regress/regress-426827.js | 31 + js/src/tests/non262/regress/regress-427798.js | 55 + js/src/tests/non262/regress/regress-428366.js | 21 + js/src/tests/non262/regress/regress-433279-01.js | 25 + js/src/tests/non262/regress/regress-433279-02.js | 30 + js/src/tests/non262/regress/regress-433279-03.js | 30 + js/src/tests/non262/regress/regress-438415-01.js | 24 + js/src/tests/non262/regress/regress-438415-02.js | 28 + js/src/tests/non262/regress/regress-440926.js | 28 + js/src/tests/non262/regress/regress-441477-01.js | 39 + js/src/tests/non262/regress/regress-442333-01.js | 34 + js/src/tests/non262/regress/regress-449627.js | 114 + js/src/tests/non262/regress/regress-449666.js | 62 + js/src/tests/non262/regress/regress-450369.js | 307 + js/src/tests/non262/regress/regress-450833.js | 42 + js/src/tests/non262/regress/regress-451322.js | 34 + js/src/tests/non262/regress/regress-451884.js | 31 + js/src/tests/non262/regress/regress-451946.js | 29 + js/src/tests/non262/regress/regress-452008.js | 148 + js/src/tests/non262/regress/regress-452170.js | 26 + js/src/tests/non262/regress/regress-452189.js | 23 + js/src/tests/non262/regress/regress-452333.js | 26 + js/src/tests/non262/regress/regress-452336.js | 26 + js/src/tests/non262/regress/regress-452346.js | 25 + js/src/tests/non262/regress/regress-452491.js | 26 + js/src/tests/non262/regress/regress-452495.js | 19 + js/src/tests/non262/regress/regress-452498-006.js | 42 + js/src/tests/non262/regress/regress-452498-027.js | 35 + js/src/tests/non262/regress/regress-452498-030.js | 28 + js/src/tests/non262/regress/regress-452498-040.js | 34 + js/src/tests/non262/regress/regress-452498-050.js | 40 + js/src/tests/non262/regress/regress-452498-051.js | 45 + .../tests/non262/regress/regress-452498-052-a.js | 39 + js/src/tests/non262/regress/regress-452498-053.js | 77 + js/src/tests/non262/regress/regress-452498-058.js | 28 + js/src/tests/non262/regress/regress-452498-062.js | 41 + js/src/tests/non262/regress/regress-452498-063.js | 32 + js/src/tests/non262/regress/regress-452498-071.js | 28 + js/src/tests/non262/regress/regress-452498-072.js | 28 + js/src/tests/non262/regress/regress-452498-073.js | 35 + js/src/tests/non262/regress/regress-452498-074.js | 31 + js/src/tests/non262/regress/regress-452498-075.js | 29 + js/src/tests/non262/regress/regress-452498-076.js | 28 + js/src/tests/non262/regress/regress-452498-079.js | 31 + js/src/tests/non262/regress/regress-452498-082.js | 77 + js/src/tests/non262/regress/regress-452498-092.js | 37 + js/src/tests/non262/regress/regress-452498-102.js | 66 + js/src/tests/non262/regress/regress-452498-104.js | 28 + js/src/tests/non262/regress/regress-452498-111.js | 31 + js/src/tests/non262/regress/regress-452498-112.js | 36 + .../tests/non262/regress/regress-452498-114-a.js | 40 + js/src/tests/non262/regress/regress-452498-114.js | 47 + js/src/tests/non262/regress/regress-452498-116.js | 30 + js/src/tests/non262/regress/regress-452498-117.js | 78 + js/src/tests/non262/regress/regress-452498-118.js | 30 + js/src/tests/non262/regress/regress-452498-121.js | 30 + js/src/tests/non262/regress/regress-452498-123.js | 56 + js/src/tests/non262/regress/regress-452498-129.js | 47 + js/src/tests/non262/regress/regress-452498-131.js | 46 + js/src/tests/non262/regress/regress-452498-135.js | 43 + js/src/tests/non262/regress/regress-452498-155.js | 31 + js/src/tests/non262/regress/regress-452498-160.js | 26 + .../tests/non262/regress/regress-452498-168-1.js | 30 + .../tests/non262/regress/regress-452498-168-2.js | 29 + js/src/tests/non262/regress/regress-452498-176.js | 28 + js/src/tests/non262/regress/regress-452498-181.js | 28 + js/src/tests/non262/regress/regress-452498-185.js | 34 + js/src/tests/non262/regress/regress-452498-187.js | 33 + js/src/tests/non262/regress/regress-452498-191.js | 44 + js/src/tests/non262/regress/regress-452498-192.js | 27 + js/src/tests/non262/regress/regress-452573-01.js | 26 + js/src/tests/non262/regress/regress-452573-02.js | 26 + js/src/tests/non262/regress/regress-452703.js | 19 + js/src/tests/non262/regress/regress-452713.js | 26 + js/src/tests/non262/regress/regress-452724-01.js | 26 + js/src/tests/non262/regress/regress-452724-02.js | 26 + js/src/tests/non262/regress/regress-452742-01.js | 48 + js/src/tests/non262/regress/regress-452742-02.js | 53 + js/src/tests/non262/regress/regress-452853.js | 26 + js/src/tests/non262/regress/regress-452884-01.js | 26 + js/src/tests/non262/regress/regress-452884-02.js | 26 + js/src/tests/non262/regress/regress-452960.js | 28 + js/src/tests/non262/regress/regress-453024.js | 35 + js/src/tests/non262/regress/regress-453049.js | 26 + js/src/tests/non262/regress/regress-453051.js | 26 + js/src/tests/non262/regress/regress-453173.js | 28 + js/src/tests/non262/regress/regress-453397.js | 43 + js/src/tests/non262/regress/regress-453701.js | 26 + js/src/tests/non262/regress/regress-453747.js | 34 + js/src/tests/non262/regress/regress-454682.js | 30 + js/src/tests/non262/regress/regress-454981.js | 31 + js/src/tests/non262/regress/regress-455605.js | 27 + js/src/tests/non262/regress/regress-455748.js | 27 + js/src/tests/non262/regress/regress-455758-01.js | 27 + js/src/tests/non262/regress/regress-455758-02.js | 27 + js/src/tests/non262/regress/regress-455775.js | 31 + js/src/tests/non262/regress/regress-455981-01.js | 33 + js/src/tests/non262/regress/regress-455981-02.js | 33 + js/src/tests/non262/regress/regress-456470.js | 35 + js/src/tests/non262/regress/regress-456477-01.js | 27 + js/src/tests/non262/regress/regress-456477-02.js | 27 + js/src/tests/non262/regress/regress-456494.js | 36 + js/src/tests/non262/regress/regress-456540-01.js | 27 + js/src/tests/non262/regress/regress-456540-02.js | 27 + js/src/tests/non262/regress/regress-457065-01.js | 29 + js/src/tests/non262/regress/regress-457065-02.js | 27 + js/src/tests/non262/regress/regress-457065-03.js | 29 + js/src/tests/non262/regress/regress-457456.js | 27 + js/src/tests/non262/regress/regress-457778.js | 27 + js/src/tests/non262/regress/regress-458076.js | 27 + js/src/tests/non262/regress/regress-458851.js | 30 + js/src/tests/non262/regress/regress-459085.js | 31 + js/src/tests/non262/regress/regress-459185.js | 31 + js/src/tests/non262/regress/regress-459186.js | 31 + js/src/tests/non262/regress/regress-459389.js | 119 + js/src/tests/non262/regress/regress-459628.js | 31 + js/src/tests/non262/regress/regress-459990.js | 30 + js/src/tests/non262/regress/regress-460024.js | 36 + js/src/tests/non262/regress/regress-460117.js | 42 + js/src/tests/non262/regress/regress-460886-01.js | 25 + js/src/tests/non262/regress/regress-460886-02.js | 25 + js/src/tests/non262/regress/regress-461307.js | 28 + js/src/tests/non262/regress/regress-461723.js | 27 + js/src/tests/non262/regress/regress-462071.js | 27 + js/src/tests/non262/regress/regress-462282.js | 27 + js/src/tests/non262/regress/regress-462292.js | 31 + js/src/tests/non262/regress/regress-462388.js | 27 + js/src/tests/non262/regress/regress-462407.js | 19 + js/src/tests/non262/regress/regress-462879.js | 31 + js/src/tests/non262/regress/regress-462989.js | 31 + js/src/tests/non262/regress/regress-463259.js | 27 + js/src/tests/non262/regress/regress-463782.js | 66 + js/src/tests/non262/regress/regress-464096.js | 29 + js/src/tests/non262/regress/regress-464334.js | 33 + js/src/tests/non262/regress/regress-464403.js | 29 + js/src/tests/non262/regress/regress-464418.js | 43 + js/src/tests/non262/regress/regress-464862.js | 123 + js/src/tests/non262/regress/regress-464978.js | 27 + js/src/tests/non262/regress/regress-465013.js | 36 + js/src/tests/non262/regress/regress-465132.js | 39 + js/src/tests/non262/regress/regress-465133.js | 30 + js/src/tests/non262/regress/regress-465135.js | 30 + js/src/tests/non262/regress/regress-465136.js | 30 + js/src/tests/non262/regress/regress-465137.js | 30 + js/src/tests/non262/regress/regress-465220.js | 40 + js/src/tests/non262/regress/regress-465234.js | 30 + js/src/tests/non262/regress/regress-465236.js | 25 + js/src/tests/non262/regress/regress-465239.js | 30 + js/src/tests/non262/regress/regress-465241.js | 30 + js/src/tests/non262/regress/regress-465249.js | 27 + js/src/tests/non262/regress/regress-465261.js | 31 + js/src/tests/non262/regress/regress-465262.js | 29 + js/src/tests/non262/regress/regress-465272.js | 29 + js/src/tests/non262/regress/regress-465308.js | 28 + js/src/tests/non262/regress/regress-465347.js | 49 + js/src/tests/non262/regress/regress-465366.js | 36 + js/src/tests/non262/regress/regress-465424.js | 27 + js/src/tests/non262/regress/regress-465454.js | 28 + js/src/tests/non262/regress/regress-465460-01.js | 29 + js/src/tests/non262/regress/regress-465460-02.js | 27 + js/src/tests/non262/regress/regress-465460-03.js | 26 + js/src/tests/non262/regress/regress-465460-04.js | 27 + js/src/tests/non262/regress/regress-465460-05.js | 27 + js/src/tests/non262/regress/regress-465460-06.js | 27 + js/src/tests/non262/regress/regress-465460-07.js | 35 + js/src/tests/non262/regress/regress-465460-08.js | 27 + js/src/tests/non262/regress/regress-465460-10.js | 27 + js/src/tests/non262/regress/regress-465460-11.js | 27 + js/src/tests/non262/regress/regress-465460-12.js | 27 + js/src/tests/non262/regress/regress-465483.js | 27 + js/src/tests/non262/regress/regress-465484.js | 25 + js/src/tests/non262/regress/regress-465567-01.js | 29 + js/src/tests/non262/regress/regress-465567-02.js | 25 + js/src/tests/non262/regress/regress-465686.js | 32 + js/src/tests/non262/regress/regress-465688.js | 25 + js/src/tests/non262/regress/regress-466128.js | 28 + js/src/tests/non262/regress/regress-466262.js | 31 + js/src/tests/non262/regress/regress-466747.js | 48 + js/src/tests/non262/regress/regress-466787.js | 30 + js/src/tests/non262/regress/regress-466905-01.js | 27 + js/src/tests/non262/regress/regress-466905-02.js | 26 + js/src/tests/non262/regress/regress-467495-01.js | 25 + js/src/tests/non262/regress/regress-467495-02.js | 31 + js/src/tests/non262/regress/regress-467495-03.js | 44 + js/src/tests/non262/regress/regress-467495-04.js | 39 + js/src/tests/non262/regress/regress-467495-05.js | 28 + js/src/tests/non262/regress/regress-467495-06.js | 41 + js/src/tests/non262/regress/regress-468711.js | 27 + js/src/tests/non262/regress/regress-469044.js | 68 + js/src/tests/non262/regress/regress-469239-01.js | 33 + js/src/tests/non262/regress/regress-469239-02.js | 33 + js/src/tests/non262/regress/regress-469547.js | 31 + js/src/tests/non262/regress/regress-469625-02.js | 32 + js/src/tests/non262/regress/regress-469625-03.js | 38 + js/src/tests/non262/regress/regress-469758.js | 14 + js/src/tests/non262/regress/regress-469937.js | 27 + js/src/tests/non262/regress/regress-470061.js | 40 + js/src/tests/non262/regress/regress-470187-01.js | 25 + js/src/tests/non262/regress/regress-470187-02.js | 24 + js/src/tests/non262/regress/regress-470223.js | 35 + js/src/tests/non262/regress/regress-470388-01.js | 25 + js/src/tests/non262/regress/regress-470758-01.js | 27 + js/src/tests/non262/regress/regress-470758-02.js | 29 + js/src/tests/non262/regress/regress-471660.js | 34 + js/src/tests/non262/regress/regress-472533.js | 25 + js/src/tests/non262/regress/regress-474769.js | 32 + js/src/tests/non262/regress/regress-474771-01.js | 38 + js/src/tests/non262/regress/regress-474771.js | 42 + js/src/tests/non262/regress/regress-474935.js | 37 + js/src/tests/non262/regress/regress-475469.js | 30 + js/src/tests/non262/regress/regress-475645-01.js | 44 + js/src/tests/non262/regress/regress-475645-02.js | 51 + js/src/tests/non262/regress/regress-476049.js | 43 + js/src/tests/non262/regress/regress-476192.js | 35 + js/src/tests/non262/regress/regress-476655.js | 36 + js/src/tests/non262/regress/regress-477053.js | 25 + js/src/tests/non262/regress/regress-477234.js | 40 + js/src/tests/non262/regress/regress-477733.js | 39 + js/src/tests/non262/regress/regress-477758.js | 46 + js/src/tests/non262/regress/regress-478205.js | 27 + js/src/tests/non262/regress/regress-478314.js | 27 + js/src/tests/non262/regress/regress-479353-01.js | 23 + js/src/tests/non262/regress/regress-479353.js | 25 + js/src/tests/non262/regress/regress-479430-01.js | 41 + js/src/tests/non262/regress/regress-479430-02.js | 43 + js/src/tests/non262/regress/regress-479430-03.js | 46 + js/src/tests/non262/regress/regress-479430-04.js | 42 + js/src/tests/non262/regress/regress-479430-05.js | 41 + js/src/tests/non262/regress/regress-479740.js | 36 + js/src/tests/non262/regress/regress-480147.js | 29 + js/src/tests/non262/regress/regress-480244.js | 48 + js/src/tests/non262/regress/regress-481436.js | 38 + js/src/tests/non262/regress/regress-481800.js | 27 + js/src/tests/non262/regress/regress-482421.js | 26 + js/src/tests/non262/regress/regress-482783.js | 29 + js/src/tests/non262/regress/regress-483103.js | 30 + js/src/tests/non262/regress/regress-483749.js | 25 + js/src/tests/non262/regress/regress-495773.js | 39 + js/src/tests/non262/regress/regress-495907.js | 32 + js/src/tests/non262/regress/regress-496922.js | 36 + js/src/tests/non262/regress/regress-499524.js | 50 + js/src/tests/non262/regress/regress-500528.js | 22 + js/src/tests/non262/regress/regress-501124.js | 40 + js/src/tests/non262/regress/regress-503860.js | 24 + js/src/tests/non262/regress/regress-504078.js | 48 + js/src/tests/non262/regress/regress-507053.js | 44 + js/src/tests/non262/regress/regress-507295.js | 39 + js/src/tests/non262/regress/regress-509354.js | 41 + js/src/tests/non262/regress/regress-511859.js | 147 + js/src/tests/non262/regress/regress-522123.js | 35 + js/src/tests/non262/regress/regress-524743.js | 20 + js/src/tests/non262/regress/regress-530879.js | 9 + js/src/tests/non262/regress/regress-532491.js | 34 + js/src/tests/non262/regress/regress-541255-3.js | 13 + js/src/tests/non262/regress/regress-541455.js | 12 + js/src/tests/non262/regress/regress-551763-0.js | 27 + js/src/tests/non262/regress/regress-551763-1.js | 4 + js/src/tests/non262/regress/regress-551763-2.js | 3 + js/src/tests/non262/regress/regress-552432.js | 16 + js/src/tests/non262/regress/regress-553778.js | 16 + js/src/tests/non262/regress/regress-554955-1.js | 33 + js/src/tests/non262/regress/regress-554955-2.js | 29 + js/src/tests/non262/regress/regress-554955-3.js | 32 + js/src/tests/non262/regress/regress-554955-4.js | 37 + js/src/tests/non262/regress/regress-554955-5.js | 30 + js/src/tests/non262/regress/regress-554955-6.js | 50 + js/src/tests/non262/regress/regress-555246-0.js | 14 + js/src/tests/non262/regress/regress-555246-1.js | 18 + js/src/tests/non262/regress/regress-559402-1.js | 14 + js/src/tests/non262/regress/regress-559402-2.js | 8 + js/src/tests/non262/regress/regress-559438.js | 10 + js/src/tests/non262/regress/regress-560998-1.js | 10 + js/src/tests/non262/regress/regress-560998-2.js | 10 + js/src/tests/non262/regress/regress-561031.js | 1830 + js/src/tests/non262/regress/regress-563210.js | 28 + js/src/tests/non262/regress/regress-563221.js | 8 + js/src/tests/non262/regress/regress-566549.js | 20 + js/src/tests/non262/regress/regress-567152.js | 12 + js/src/tests/non262/regress/regress-569306.js | 10 + js/src/tests/non262/regress/regress-57043.js | 76 + js/src/tests/non262/regress/regress-571014.js | 32 + js/src/tests/non262/regress/regress-573875.js | 21 + js/src/tests/non262/regress/regress-577648-1.js | 87 + js/src/tests/non262/regress/regress-577648-2.js | 12 + js/src/tests/non262/regress/regress-580544.js | 27 + js/src/tests/non262/regress/regress-58116.js | 31 + js/src/tests/non262/regress/regress-583429.js | 7 + js/src/tests/non262/regress/regress-584355.js | 7 + js/src/tests/non262/regress/regress-585257.js | 7 + js/src/tests/non262/regress/regress-586482-1.js | 25 + js/src/tests/non262/regress/regress-586482-2.js | 22 + js/src/tests/non262/regress/regress-586482-3.js | 27 + js/src/tests/non262/regress/regress-586482-4.js | 25 + js/src/tests/non262/regress/regress-586482-5.js | 18 + js/src/tests/non262/regress/regress-588339.js | 5 + js/src/tests/non262/regress/regress-591846.js | 64 + js/src/tests/non262/regress/regress-591897.js | 13 + js/src/tests/non262/regress/regress-592202-3.js | 28 + js/src/tests/non262/regress/regress-592202-4.js | 31 + js/src/tests/non262/regress/regress-592556-c35.js | 20 + js/src/tests/non262/regress/regress-593256.js | 21 + js/src/tests/non262/regress/regress-595230-2.js | 10 + js/src/tests/non262/regress/regress-595365-1.js | 31 + js/src/tests/non262/regress/regress-596103.js | 13 + js/src/tests/non262/regress/regress-596805-1.js | 14 + js/src/tests/non262/regress/regress-596805-2.js | 27 + js/src/tests/non262/regress/regress-597945-1.js | 24 + js/src/tests/non262/regress/regress-597945-2.js | 13 + js/src/tests/non262/regress/regress-598176.js | 27 + js/src/tests/non262/regress/regress-600067.js | 16 + js/src/tests/non262/regress/regress-601399.js | 25 + js/src/tests/non262/regress/regress-602621.js | 15 + js/src/tests/non262/regress/regress-607799.js | 2 + js/src/tests/non262/regress/regress-607863.js | 14 + js/src/tests/non262/regress/regress-609617.js | 85 + js/src/tests/non262/regress/regress-610026.js | 49 + js/src/tests/non262/regress/regress-614714.js | 12 + js/src/tests/non262/regress/regress-617405-1.js | 11 + js/src/tests/non262/regress/regress-617405-2.js | 17 + js/src/tests/non262/regress/regress-618572.js | 34 + js/src/tests/non262/regress/regress-619003-1.js | 20 + js/src/tests/non262/regress/regress-619003-2.js | 9 + js/src/tests/non262/regress/regress-620376-1.js | 24 + js/src/tests/non262/regress/regress-624547.js | 16 + js/src/tests/non262/regress/regress-624968.js | 9 + js/src/tests/non262/regress/regress-626436.js | 7 + js/src/tests/non262/regress/regress-633741.js | 18 + js/src/tests/non262/regress/regress-634210-1.js | 11 + js/src/tests/non262/regress/regress-634210-2.js | 13 + js/src/tests/non262/regress/regress-634210-3.js | 13 + js/src/tests/non262/regress/regress-634210-4.js | 20 + js/src/tests/non262/regress/regress-636364.js | 29 + js/src/tests/non262/regress/regress-640075.js | 15 + js/src/tests/non262/regress/regress-642247.js | 13 + js/src/tests/non262/regress/regress-643222.js | 12 + js/src/tests/non262/regress/regress-646820-1.js | 9 + js/src/tests/non262/regress/regress-646820-2.js | 11 + js/src/tests/non262/regress/regress-646820-3.js | 9 + js/src/tests/non262/regress/regress-665355.js | 19 + js/src/tests/non262/regress/regress-672892.js | 8 + js/src/tests/non262/regress/regress-672893.js | 18 + js/src/tests/non262/regress/regress-68498-001.js | 42 + js/src/tests/non262/regress/regress-68498-002.js | 64 + js/src/tests/non262/regress/regress-68498-003.js | 68 + js/src/tests/non262/regress/regress-68498-004.js | 96 + js/src/tests/non262/regress/regress-694306.js | 21 + js/src/tests/non262/regress/regress-69607.js | 42 + js/src/tests/non262/regress/regress-698028-1.js | 24 + js/src/tests/non262/regress/regress-698028-2.js | 29 + js/src/tests/non262/regress/regress-698028-3.js | 15 + js/src/tests/non262/regress/regress-699682.js | 29 + js/src/tests/non262/regress/regress-71107.js | 43 + js/src/tests/non262/regress/regress-736792.js | 23 + js/src/tests/non262/regress/regress-76054.js | 123 + js/src/tests/non262/regress/regress-80981.js | 3111 + js/src/tests/non262/regress/regress-810525.js | 25 + js/src/tests/non262/regress/regress-82306.js | 45 + js/src/tests/non262/regress/regress-89443.js | 2119 + js/src/tests/non262/regress/regress-89474.js | 47 + js/src/tests/non262/regress/regress-90445.js | 295 + js/src/tests/non262/regress/regress-96128-n.js | 48 + js/src/tests/non262/regress/regress-96526-001.js | 504 + js/src/tests/non262/regress/regress-96526-002.js | 30 + js/src/tests/non262/regress/regress-96526-003.js | 4405 ++ js/src/tests/non262/regress/regress-98901.js | 3892 ++ js/src/tests/non262/regress/shell.js | 0 613 files changed, 155098 insertions(+) create mode 100644 js/src/tests/non262/regress/browser.js create mode 100644 js/src/tests/non262/regress/regress-102725.js create mode 100644 js/src/tests/non262/regress/regress-10278.js create mode 100644 js/src/tests/non262/regress/regress-104077.js create mode 100644 js/src/tests/non262/regress/regress-110286.js create mode 100644 js/src/tests/non262/regress/regress-111557.js create mode 100644 js/src/tests/non262/regress/regress-114491.js create mode 100644 js/src/tests/non262/regress/regress-114493.js create mode 100644 js/src/tests/non262/regress/regress-116228.js create mode 100644 js/src/tests/non262/regress/regress-118849.js create mode 100644 js/src/tests/non262/regress/regress-131510-001.js create mode 100644 js/src/tests/non262/regress/regress-1383630.js create mode 100644 js/src/tests/non262/regress/regress-139316.js create mode 100644 js/src/tests/non262/regress/regress-140852.js create mode 100644 js/src/tests/non262/regress/regress-140974.js create mode 100644 js/src/tests/non262/regress/regress-1456512-greyreadbarrier.js create mode 100644 js/src/tests/non262/regress/regress-1456512.js create mode 100644 js/src/tests/non262/regress/regress-1456518-workergray.js create mode 100644 js/src/tests/non262/regress/regress-1463421.js create mode 100644 js/src/tests/non262/regress/regress-146596.js create mode 100644 js/src/tests/non262/regress/regress-1466387-worker-grayroot.js create mode 100644 js/src/tests/non262/regress/regress-1476383-calloc-exc.js create mode 100644 js/src/tests/non262/regress/regress-1507322-deep-weakmap.js create mode 100644 js/src/tests/non262/regress/regress-152646.js create mode 100644 js/src/tests/non262/regress/regress-155081-2.js create mode 100644 js/src/tests/non262/regress/regress-155081.js create mode 100644 js/src/tests/non262/regress/regress-156354.js create mode 100644 js/src/tests/non262/regress/regress-1572988-nurseryRegisterCheck.js create mode 100644 js/src/tests/non262/regress/regress-159334.js create mode 100644 js/src/tests/non262/regress/regress-162392.js create mode 100644 js/src/tests/non262/regress/regress-165201.js create mode 100644 js/src/tests/non262/regress/regress-167328.js create mode 100644 js/src/tests/non262/regress/regress-167658.js create mode 100644 js/src/tests/non262/regress/regress-168347.js create mode 100644 js/src/tests/non262/regress/regress-170193.js create mode 100644 js/src/tests/non262/regress/regress-1714532-oom-gc-yield.js create mode 100644 js/src/tests/non262/regress/regress-172699.js create mode 100644 js/src/tests/non262/regress/regress-174709.js create mode 100644 js/src/tests/non262/regress/regress-176125.js create mode 100644 js/src/tests/non262/regress/regress-179524.js create mode 100644 js/src/tests/non262/regress/regress-185165.js create mode 100644 js/src/tests/non262/regress/regress-191633.js create mode 100644 js/src/tests/non262/regress/regress-191668.js create mode 100644 js/src/tests/non262/regress/regress-192414.js create mode 100644 js/src/tests/non262/regress/regress-193418.js create mode 100644 js/src/tests/non262/regress/regress-203278-1.js create mode 100644 js/src/tests/non262/regress/regress-203402.js create mode 100644 js/src/tests/non262/regress/regress-203841.js create mode 100644 js/src/tests/non262/regress/regress-204210.js create mode 100644 js/src/tests/non262/regress/regress-210682.js create mode 100644 js/src/tests/non262/regress/regress-211590.js create mode 100644 js/src/tests/non262/regress/regress-214761.js create mode 100644 js/src/tests/non262/regress/regress-216320.js create mode 100644 js/src/tests/non262/regress/regress-224956.js create mode 100644 js/src/tests/non262/regress/regress-229006.js create mode 100644 js/src/tests/non262/regress/regress-230216-1.js create mode 100644 js/src/tests/non262/regress/regress-230216-2.js create mode 100644 js/src/tests/non262/regress/regress-230216-3.js create mode 100644 js/src/tests/non262/regress/regress-233483-2.js create mode 100644 js/src/tests/non262/regress/regress-233483.js create mode 100644 js/src/tests/non262/regress/regress-234389.js create mode 100644 js/src/tests/non262/regress/regress-238881.js create mode 100644 js/src/tests/non262/regress/regress-238945.js create mode 100644 js/src/tests/non262/regress/regress-243174.js create mode 100644 js/src/tests/non262/regress/regress-243389-n.js create mode 100644 js/src/tests/non262/regress/regress-243869.js create mode 100644 js/src/tests/non262/regress/regress-244470.js create mode 100644 js/src/tests/non262/regress/regress-244619.js create mode 100644 js/src/tests/non262/regress/regress-245113.js create mode 100644 js/src/tests/non262/regress/regress-245308.js create mode 100644 js/src/tests/non262/regress/regress-246911.js create mode 100644 js/src/tests/non262/regress/regress-246964.js create mode 100644 js/src/tests/non262/regress/regress-247179.js create mode 100644 js/src/tests/non262/regress/regress-248444.js create mode 100644 js/src/tests/non262/regress/regress-252892.js create mode 100644 js/src/tests/non262/regress/regress-254296.js create mode 100644 js/src/tests/non262/regress/regress-254974.js create mode 100644 js/src/tests/non262/regress/regress-256501.js create mode 100644 js/src/tests/non262/regress/regress-256617.js create mode 100644 js/src/tests/non262/regress/regress-256798.js create mode 100644 js/src/tests/non262/regress/regress-259935.js create mode 100644 js/src/tests/non262/regress/regress-260541.js create mode 100644 js/src/tests/non262/regress/regress-261886.js create mode 100644 js/src/tests/non262/regress/regress-261887.js create mode 100644 js/src/tests/non262/regress/regress-271716-n.js create mode 100644 js/src/tests/non262/regress/regress-274035.js create mode 100644 js/src/tests/non262/regress/regress-274888.js create mode 100644 js/src/tests/non262/regress/regress-275378.js create mode 100644 js/src/tests/non262/regress/regress-276103.js create mode 100644 js/src/tests/non262/regress/regress-278873.js create mode 100644 js/src/tests/non262/regress/regress-280769-1.js create mode 100644 js/src/tests/non262/regress/regress-280769-2.js create mode 100644 js/src/tests/non262/regress/regress-280769-3.js create mode 100644 js/src/tests/non262/regress/regress-280769-4.js create mode 100644 js/src/tests/non262/regress/regress-280769-5.js create mode 100644 js/src/tests/non262/regress/regress-280769.js create mode 100644 js/src/tests/non262/regress/regress-281606.js create mode 100644 js/src/tests/non262/regress/regress-281930.js create mode 100644 js/src/tests/non262/regress/regress-283477.js create mode 100644 js/src/tests/non262/regress/regress-288688.js create mode 100644 js/src/tests/non262/regress/regress-289094.js create mode 100644 js/src/tests/non262/regress/regress-290575.js create mode 100644 js/src/tests/non262/regress/regress-290656.js create mode 100644 js/src/tests/non262/regress/regress-294191.js create mode 100644 js/src/tests/non262/regress/regress-294195-01.js create mode 100644 js/src/tests/non262/regress/regress-294195-02.js create mode 100644 js/src/tests/non262/regress/regress-294302.js create mode 100644 js/src/tests/non262/regress/regress-295052.js create mode 100644 js/src/tests/non262/regress/regress-295666.js create mode 100644 js/src/tests/non262/regress/regress-299209.js create mode 100644 js/src/tests/non262/regress/regress-299641.js create mode 100644 js/src/tests/non262/regress/regress-303213.js create mode 100644 js/src/tests/non262/regress/regress-306633.js create mode 100644 js/src/tests/non262/regress/regress-306794.js create mode 100644 js/src/tests/non262/regress/regress-308085.js create mode 100644 js/src/tests/non262/regress/regress-310295.js create mode 100644 js/src/tests/non262/regress/regress-310607.js create mode 100644 js/src/tests/non262/regress/regress-310993.js create mode 100644 js/src/tests/non262/regress/regress-311071.js create mode 100644 js/src/tests/non262/regress/regress-311157-01.js create mode 100644 js/src/tests/non262/regress/regress-311157-02.js create mode 100644 js/src/tests/non262/regress/regress-311629.js create mode 100644 js/src/tests/non262/regress/regress-31255.js create mode 100644 js/src/tests/non262/regress/regress-312588.js create mode 100644 js/src/tests/non262/regress/regress-314401.js create mode 100644 js/src/tests/non262/regress/regress-315990.js create mode 100644 js/src/tests/non262/regress/regress-317476.js create mode 100644 js/src/tests/non262/regress/regress-317714-01.js create mode 100644 js/src/tests/non262/regress/regress-317714-02.js create mode 100644 js/src/tests/non262/regress/regress-319384.js create mode 100644 js/src/tests/non262/regress/regress-319391.js create mode 100644 js/src/tests/non262/regress/regress-320032.js create mode 100644 js/src/tests/non262/regress/regress-320172.js create mode 100644 js/src/tests/non262/regress/regress-321757.js create mode 100644 js/src/tests/non262/regress/regress-321874.js create mode 100644 js/src/tests/non262/regress/regress-321971.js create mode 100644 js/src/tests/non262/regress/regress-325925.js create mode 100644 js/src/tests/non262/regress/regress-326467.js create mode 100644 js/src/tests/non262/regress/regress-328012.js create mode 100644 js/src/tests/non262/regress/regress-328664.js create mode 100644 js/src/tests/non262/regress/regress-329383.js create mode 100644 js/src/tests/non262/regress/regress-329530.js create mode 100644 js/src/tests/non262/regress/regress-330352.js create mode 100644 js/src/tests/non262/regress/regress-330951.js create mode 100644 js/src/tests/non262/regress/regress-334807-01.js create mode 100644 js/src/tests/non262/regress/regress-334807-02.js create mode 100644 js/src/tests/non262/regress/regress-334807-03.js create mode 100644 js/src/tests/non262/regress/regress-334807-04.js create mode 100644 js/src/tests/non262/regress/regress-334807-05.js create mode 100644 js/src/tests/non262/regress/regress-334807-06.js create mode 100644 js/src/tests/non262/regress/regress-336100.js create mode 100644 js/src/tests/non262/regress/regress-338307.js create mode 100644 js/src/tests/non262/regress/regress-340369.js create mode 100644 js/src/tests/non262/regress/regress-341360.js create mode 100644 js/src/tests/non262/regress/regress-343713.js create mode 100644 js/src/tests/non262/regress/regress-343966.js create mode 100644 js/src/tests/non262/regress/regress-344711-n.js create mode 100644 js/src/tests/non262/regress/regress-344804.js create mode 100644 js/src/tests/non262/regress/regress-344959.js create mode 100644 js/src/tests/non262/regress/regress-346237.js create mode 100644 js/src/tests/non262/regress/regress-346801.js create mode 100644 js/src/tests/non262/regress/regress-349482-01.js create mode 100644 js/src/tests/non262/regress/regress-349482-02.js create mode 100644 js/src/tests/non262/regress/regress-349592.js create mode 100644 js/src/tests/non262/regress/regress-350253.js create mode 100644 js/src/tests/non262/regress/regress-350268.js create mode 100644 js/src/tests/non262/regress/regress-350312.js create mode 100644 js/src/tests/non262/regress/regress-350415.js create mode 100644 js/src/tests/non262/regress/regress-350529.js create mode 100644 js/src/tests/non262/regress/regress-351116.js create mode 100644 js/src/tests/non262/regress/regress-351515.js create mode 100644 js/src/tests/non262/regress/regress-351795.js create mode 100644 js/src/tests/non262/regress/regress-352208.js create mode 100644 js/src/tests/non262/regress/regress-352604.js create mode 100644 js/src/tests/non262/regress/regress-352640-01.js create mode 100644 js/src/tests/non262/regress/regress-352640-02.js create mode 100644 js/src/tests/non262/regress/regress-352640-04.js create mode 100644 js/src/tests/non262/regress/regress-353078.js create mode 100644 js/src/tests/non262/regress/regress-353079.js create mode 100644 js/src/tests/non262/regress/regress-355023.js create mode 100644 js/src/tests/non262/regress/regress-355556.js create mode 100644 js/src/tests/non262/regress/regress-355569.js create mode 100644 js/src/tests/non262/regress/regress-355829-01.js create mode 100644 js/src/tests/non262/regress/regress-355829-02.js create mode 100644 js/src/tests/non262/regress/regress-355829-03.js create mode 100644 js/src/tests/non262/regress/regress-355832-01.js create mode 100644 js/src/tests/non262/regress/regress-355832-02.js create mode 100644 js/src/tests/non262/regress/regress-356250.js create mode 100644 js/src/tests/non262/regress/regress-356693.js create mode 100644 js/src/tests/non262/regress/regress-360969-01.js create mode 100644 js/src/tests/non262/regress/regress-360969-02.js create mode 100644 js/src/tests/non262/regress/regress-360969-03.js create mode 100644 js/src/tests/non262/regress/regress-360969-04.js create mode 100644 js/src/tests/non262/regress/regress-360969-05.js create mode 100644 js/src/tests/non262/regress/regress-360969-06.js create mode 100644 js/src/tests/non262/regress/regress-363040-01.js create mode 100644 js/src/tests/non262/regress/regress-363040-02.js create mode 100644 js/src/tests/non262/regress/regress-3649-n.js create mode 100644 js/src/tests/non262/regress/regress-366122.js create mode 100644 js/src/tests/non262/regress/regress-366468.js create mode 100644 js/src/tests/non262/regress/regress-366601.js create mode 100644 js/src/tests/non262/regress/regress-367561-01.js create mode 100644 js/src/tests/non262/regress/regress-367561-03.js create mode 100644 js/src/tests/non262/regress/regress-369666-01.js create mode 100644 js/src/tests/non262/regress/regress-369666-02.js create mode 100644 js/src/tests/non262/regress/regress-372364.js create mode 100644 js/src/tests/non262/regress/regress-373827-01.js create mode 100644 js/src/tests/non262/regress/regress-373827-02.js create mode 100644 js/src/tests/non262/regress/regress-373843.js create mode 100644 js/src/tests/non262/regress/regress-379245.js create mode 100644 js/src/tests/non262/regress/regress-379442.js create mode 100644 js/src/tests/non262/regress/regress-379483.js create mode 100644 js/src/tests/non262/regress/regress-383674.js create mode 100644 js/src/tests/non262/regress/regress-383682.js create mode 100644 js/src/tests/non262/regress/regress-383902.js create mode 100644 js/src/tests/non262/regress/regress-385393-04.js create mode 100644 js/src/tests/non262/regress/regress-387951-01.js create mode 100644 js/src/tests/non262/regress/regress-387951-02.js create mode 100644 js/src/tests/non262/regress/regress-387951-03.js create mode 100644 js/src/tests/non262/regress/regress-39309.js create mode 100644 js/src/tests/non262/regress/regress-396684.js create mode 100644 js/src/tests/non262/regress/regress-398085-01.js create mode 100644 js/src/tests/non262/regress/regress-398085-02.js create mode 100644 js/src/tests/non262/regress/regress-398609.js create mode 100644 js/src/tests/non262/regress/regress-404734.js create mode 100644 js/src/tests/non262/regress/regress-404755.js create mode 100644 js/src/tests/non262/regress/regress-406769.js create mode 100644 js/src/tests/non262/regress/regress-407024.js create mode 100644 js/src/tests/non262/regress/regress-407727-01.js create mode 100644 js/src/tests/non262/regress/regress-407727-02.js create mode 100644 js/src/tests/non262/regress/regress-410649.js create mode 100644 js/src/tests/non262/regress/regress-410852.js create mode 100644 js/src/tests/non262/regress/regress-414553.js create mode 100644 js/src/tests/non262/regress/regress-416737-01.js create mode 100644 js/src/tests/non262/regress/regress-416737-02.js create mode 100644 js/src/tests/non262/regress/regress-417893.js create mode 100644 js/src/tests/non262/regress/regress-418540.js create mode 100644 js/src/tests/non262/regress/regress-418641.js create mode 100644 js/src/tests/non262/regress/regress-419018.js create mode 100644 js/src/tests/non262/regress/regress-419152.js create mode 100644 js/src/tests/non262/regress/regress-419803.js create mode 100644 js/src/tests/non262/regress/regress-420087.js create mode 100644 js/src/tests/non262/regress/regress-420610.js create mode 100644 js/src/tests/non262/regress/regress-420919.js create mode 100644 js/src/tests/non262/regress/regress-422348.js create mode 100644 js/src/tests/non262/regress/regress-424311.js create mode 100644 js/src/tests/non262/regress/regress-425360.js create mode 100644 js/src/tests/non262/regress/regress-426827.js create mode 100644 js/src/tests/non262/regress/regress-427798.js create mode 100644 js/src/tests/non262/regress/regress-428366.js create mode 100644 js/src/tests/non262/regress/regress-433279-01.js create mode 100644 js/src/tests/non262/regress/regress-433279-02.js create mode 100644 js/src/tests/non262/regress/regress-433279-03.js create mode 100644 js/src/tests/non262/regress/regress-438415-01.js create mode 100644 js/src/tests/non262/regress/regress-438415-02.js create mode 100644 js/src/tests/non262/regress/regress-440926.js create mode 100644 js/src/tests/non262/regress/regress-441477-01.js create mode 100644 js/src/tests/non262/regress/regress-442333-01.js create mode 100644 js/src/tests/non262/regress/regress-449627.js create mode 100644 js/src/tests/non262/regress/regress-449666.js create mode 100644 js/src/tests/non262/regress/regress-450369.js create mode 100644 js/src/tests/non262/regress/regress-450833.js create mode 100644 js/src/tests/non262/regress/regress-451322.js create mode 100644 js/src/tests/non262/regress/regress-451884.js create mode 100644 js/src/tests/non262/regress/regress-451946.js create mode 100644 js/src/tests/non262/regress/regress-452008.js create mode 100644 js/src/tests/non262/regress/regress-452170.js create mode 100644 js/src/tests/non262/regress/regress-452189.js create mode 100644 js/src/tests/non262/regress/regress-452333.js create mode 100644 js/src/tests/non262/regress/regress-452336.js create mode 100644 js/src/tests/non262/regress/regress-452346.js create mode 100644 js/src/tests/non262/regress/regress-452491.js create mode 100644 js/src/tests/non262/regress/regress-452495.js create mode 100644 js/src/tests/non262/regress/regress-452498-006.js create mode 100644 js/src/tests/non262/regress/regress-452498-027.js create mode 100644 js/src/tests/non262/regress/regress-452498-030.js create mode 100644 js/src/tests/non262/regress/regress-452498-040.js create mode 100644 js/src/tests/non262/regress/regress-452498-050.js create mode 100644 js/src/tests/non262/regress/regress-452498-051.js create mode 100644 js/src/tests/non262/regress/regress-452498-052-a.js create mode 100644 js/src/tests/non262/regress/regress-452498-053.js create mode 100644 js/src/tests/non262/regress/regress-452498-058.js create mode 100644 js/src/tests/non262/regress/regress-452498-062.js create mode 100644 js/src/tests/non262/regress/regress-452498-063.js create mode 100644 js/src/tests/non262/regress/regress-452498-071.js create mode 100644 js/src/tests/non262/regress/regress-452498-072.js create mode 100644 js/src/tests/non262/regress/regress-452498-073.js create mode 100644 js/src/tests/non262/regress/regress-452498-074.js create mode 100644 js/src/tests/non262/regress/regress-452498-075.js create mode 100644 js/src/tests/non262/regress/regress-452498-076.js create mode 100644 js/src/tests/non262/regress/regress-452498-079.js create mode 100644 js/src/tests/non262/regress/regress-452498-082.js create mode 100644 js/src/tests/non262/regress/regress-452498-092.js create mode 100644 js/src/tests/non262/regress/regress-452498-102.js create mode 100644 js/src/tests/non262/regress/regress-452498-104.js create mode 100644 js/src/tests/non262/regress/regress-452498-111.js create mode 100644 js/src/tests/non262/regress/regress-452498-112.js create mode 100644 js/src/tests/non262/regress/regress-452498-114-a.js create mode 100644 js/src/tests/non262/regress/regress-452498-114.js create mode 100644 js/src/tests/non262/regress/regress-452498-116.js create mode 100644 js/src/tests/non262/regress/regress-452498-117.js create mode 100644 js/src/tests/non262/regress/regress-452498-118.js create mode 100644 js/src/tests/non262/regress/regress-452498-121.js create mode 100644 js/src/tests/non262/regress/regress-452498-123.js create mode 100644 js/src/tests/non262/regress/regress-452498-129.js create mode 100644 js/src/tests/non262/regress/regress-452498-131.js create mode 100644 js/src/tests/non262/regress/regress-452498-135.js create mode 100644 js/src/tests/non262/regress/regress-452498-155.js create mode 100644 js/src/tests/non262/regress/regress-452498-160.js create mode 100644 js/src/tests/non262/regress/regress-452498-168-1.js create mode 100644 js/src/tests/non262/regress/regress-452498-168-2.js create mode 100644 js/src/tests/non262/regress/regress-452498-176.js create mode 100644 js/src/tests/non262/regress/regress-452498-181.js create mode 100644 js/src/tests/non262/regress/regress-452498-185.js create mode 100644 js/src/tests/non262/regress/regress-452498-187.js create mode 100644 js/src/tests/non262/regress/regress-452498-191.js create mode 100644 js/src/tests/non262/regress/regress-452498-192.js create mode 100644 js/src/tests/non262/regress/regress-452573-01.js create mode 100644 js/src/tests/non262/regress/regress-452573-02.js create mode 100644 js/src/tests/non262/regress/regress-452703.js create mode 100644 js/src/tests/non262/regress/regress-452713.js create mode 100644 js/src/tests/non262/regress/regress-452724-01.js create mode 100644 js/src/tests/non262/regress/regress-452724-02.js create mode 100644 js/src/tests/non262/regress/regress-452742-01.js create mode 100644 js/src/tests/non262/regress/regress-452742-02.js create mode 100644 js/src/tests/non262/regress/regress-452853.js create mode 100644 js/src/tests/non262/regress/regress-452884-01.js create mode 100644 js/src/tests/non262/regress/regress-452884-02.js create mode 100644 js/src/tests/non262/regress/regress-452960.js create mode 100644 js/src/tests/non262/regress/regress-453024.js create mode 100644 js/src/tests/non262/regress/regress-453049.js create mode 100644 js/src/tests/non262/regress/regress-453051.js create mode 100644 js/src/tests/non262/regress/regress-453173.js create mode 100644 js/src/tests/non262/regress/regress-453397.js create mode 100644 js/src/tests/non262/regress/regress-453701.js create mode 100644 js/src/tests/non262/regress/regress-453747.js create mode 100644 js/src/tests/non262/regress/regress-454682.js create mode 100644 js/src/tests/non262/regress/regress-454981.js create mode 100644 js/src/tests/non262/regress/regress-455605.js create mode 100644 js/src/tests/non262/regress/regress-455748.js create mode 100644 js/src/tests/non262/regress/regress-455758-01.js create mode 100644 js/src/tests/non262/regress/regress-455758-02.js create mode 100644 js/src/tests/non262/regress/regress-455775.js create mode 100644 js/src/tests/non262/regress/regress-455981-01.js create mode 100644 js/src/tests/non262/regress/regress-455981-02.js create mode 100644 js/src/tests/non262/regress/regress-456470.js create mode 100644 js/src/tests/non262/regress/regress-456477-01.js create mode 100644 js/src/tests/non262/regress/regress-456477-02.js create mode 100644 js/src/tests/non262/regress/regress-456494.js create mode 100644 js/src/tests/non262/regress/regress-456540-01.js create mode 100644 js/src/tests/non262/regress/regress-456540-02.js create mode 100644 js/src/tests/non262/regress/regress-457065-01.js create mode 100644 js/src/tests/non262/regress/regress-457065-02.js create mode 100644 js/src/tests/non262/regress/regress-457065-03.js create mode 100644 js/src/tests/non262/regress/regress-457456.js create mode 100644 js/src/tests/non262/regress/regress-457778.js create mode 100644 js/src/tests/non262/regress/regress-458076.js create mode 100644 js/src/tests/non262/regress/regress-458851.js create mode 100644 js/src/tests/non262/regress/regress-459085.js create mode 100644 js/src/tests/non262/regress/regress-459185.js create mode 100644 js/src/tests/non262/regress/regress-459186.js create mode 100644 js/src/tests/non262/regress/regress-459389.js create mode 100644 js/src/tests/non262/regress/regress-459628.js create mode 100644 js/src/tests/non262/regress/regress-459990.js create mode 100644 js/src/tests/non262/regress/regress-460024.js create mode 100644 js/src/tests/non262/regress/regress-460117.js create mode 100644 js/src/tests/non262/regress/regress-460886-01.js create mode 100644 js/src/tests/non262/regress/regress-460886-02.js create mode 100644 js/src/tests/non262/regress/regress-461307.js create mode 100644 js/src/tests/non262/regress/regress-461723.js create mode 100644 js/src/tests/non262/regress/regress-462071.js create mode 100644 js/src/tests/non262/regress/regress-462282.js create mode 100644 js/src/tests/non262/regress/regress-462292.js create mode 100644 js/src/tests/non262/regress/regress-462388.js create mode 100644 js/src/tests/non262/regress/regress-462407.js create mode 100644 js/src/tests/non262/regress/regress-462879.js create mode 100644 js/src/tests/non262/regress/regress-462989.js create mode 100644 js/src/tests/non262/regress/regress-463259.js create mode 100644 js/src/tests/non262/regress/regress-463782.js create mode 100644 js/src/tests/non262/regress/regress-464096.js create mode 100644 js/src/tests/non262/regress/regress-464334.js create mode 100644 js/src/tests/non262/regress/regress-464403.js create mode 100644 js/src/tests/non262/regress/regress-464418.js create mode 100644 js/src/tests/non262/regress/regress-464862.js create mode 100644 js/src/tests/non262/regress/regress-464978.js create mode 100644 js/src/tests/non262/regress/regress-465013.js create mode 100644 js/src/tests/non262/regress/regress-465132.js create mode 100644 js/src/tests/non262/regress/regress-465133.js create mode 100644 js/src/tests/non262/regress/regress-465135.js create mode 100644 js/src/tests/non262/regress/regress-465136.js create mode 100644 js/src/tests/non262/regress/regress-465137.js create mode 100644 js/src/tests/non262/regress/regress-465220.js create mode 100644 js/src/tests/non262/regress/regress-465234.js create mode 100644 js/src/tests/non262/regress/regress-465236.js create mode 100644 js/src/tests/non262/regress/regress-465239.js create mode 100644 js/src/tests/non262/regress/regress-465241.js create mode 100644 js/src/tests/non262/regress/regress-465249.js create mode 100644 js/src/tests/non262/regress/regress-465261.js create mode 100644 js/src/tests/non262/regress/regress-465262.js create mode 100644 js/src/tests/non262/regress/regress-465272.js create mode 100644 js/src/tests/non262/regress/regress-465308.js create mode 100644 js/src/tests/non262/regress/regress-465347.js create mode 100644 js/src/tests/non262/regress/regress-465366.js create mode 100644 js/src/tests/non262/regress/regress-465424.js create mode 100644 js/src/tests/non262/regress/regress-465454.js create mode 100644 js/src/tests/non262/regress/regress-465460-01.js create mode 100644 js/src/tests/non262/regress/regress-465460-02.js create mode 100644 js/src/tests/non262/regress/regress-465460-03.js create mode 100644 js/src/tests/non262/regress/regress-465460-04.js create mode 100644 js/src/tests/non262/regress/regress-465460-05.js create mode 100644 js/src/tests/non262/regress/regress-465460-06.js create mode 100644 js/src/tests/non262/regress/regress-465460-07.js create mode 100644 js/src/tests/non262/regress/regress-465460-08.js create mode 100644 js/src/tests/non262/regress/regress-465460-10.js create mode 100644 js/src/tests/non262/regress/regress-465460-11.js create mode 100644 js/src/tests/non262/regress/regress-465460-12.js create mode 100644 js/src/tests/non262/regress/regress-465483.js create mode 100644 js/src/tests/non262/regress/regress-465484.js create mode 100644 js/src/tests/non262/regress/regress-465567-01.js create mode 100644 js/src/tests/non262/regress/regress-465567-02.js create mode 100644 js/src/tests/non262/regress/regress-465686.js create mode 100644 js/src/tests/non262/regress/regress-465688.js create mode 100644 js/src/tests/non262/regress/regress-466128.js create mode 100644 js/src/tests/non262/regress/regress-466262.js create mode 100644 js/src/tests/non262/regress/regress-466747.js create mode 100644 js/src/tests/non262/regress/regress-466787.js create mode 100644 js/src/tests/non262/regress/regress-466905-01.js create mode 100644 js/src/tests/non262/regress/regress-466905-02.js create mode 100644 js/src/tests/non262/regress/regress-467495-01.js create mode 100644 js/src/tests/non262/regress/regress-467495-02.js create mode 100644 js/src/tests/non262/regress/regress-467495-03.js create mode 100644 js/src/tests/non262/regress/regress-467495-04.js create mode 100644 js/src/tests/non262/regress/regress-467495-05.js create mode 100644 js/src/tests/non262/regress/regress-467495-06.js create mode 100644 js/src/tests/non262/regress/regress-468711.js create mode 100644 js/src/tests/non262/regress/regress-469044.js create mode 100644 js/src/tests/non262/regress/regress-469239-01.js create mode 100644 js/src/tests/non262/regress/regress-469239-02.js create mode 100644 js/src/tests/non262/regress/regress-469547.js create mode 100644 js/src/tests/non262/regress/regress-469625-02.js create mode 100644 js/src/tests/non262/regress/regress-469625-03.js create mode 100644 js/src/tests/non262/regress/regress-469758.js create mode 100644 js/src/tests/non262/regress/regress-469937.js create mode 100644 js/src/tests/non262/regress/regress-470061.js create mode 100644 js/src/tests/non262/regress/regress-470187-01.js create mode 100644 js/src/tests/non262/regress/regress-470187-02.js create mode 100644 js/src/tests/non262/regress/regress-470223.js create mode 100644 js/src/tests/non262/regress/regress-470388-01.js create mode 100644 js/src/tests/non262/regress/regress-470758-01.js create mode 100644 js/src/tests/non262/regress/regress-470758-02.js create mode 100644 js/src/tests/non262/regress/regress-471660.js create mode 100644 js/src/tests/non262/regress/regress-472533.js create mode 100644 js/src/tests/non262/regress/regress-474769.js create mode 100644 js/src/tests/non262/regress/regress-474771-01.js create mode 100644 js/src/tests/non262/regress/regress-474771.js create mode 100644 js/src/tests/non262/regress/regress-474935.js create mode 100644 js/src/tests/non262/regress/regress-475469.js create mode 100644 js/src/tests/non262/regress/regress-475645-01.js create mode 100644 js/src/tests/non262/regress/regress-475645-02.js create mode 100644 js/src/tests/non262/regress/regress-476049.js create mode 100644 js/src/tests/non262/regress/regress-476192.js create mode 100644 js/src/tests/non262/regress/regress-476655.js create mode 100644 js/src/tests/non262/regress/regress-477053.js create mode 100644 js/src/tests/non262/regress/regress-477234.js create mode 100644 js/src/tests/non262/regress/regress-477733.js create mode 100644 js/src/tests/non262/regress/regress-477758.js create mode 100644 js/src/tests/non262/regress/regress-478205.js create mode 100644 js/src/tests/non262/regress/regress-478314.js create mode 100644 js/src/tests/non262/regress/regress-479353-01.js create mode 100644 js/src/tests/non262/regress/regress-479353.js create mode 100644 js/src/tests/non262/regress/regress-479430-01.js create mode 100644 js/src/tests/non262/regress/regress-479430-02.js create mode 100644 js/src/tests/non262/regress/regress-479430-03.js create mode 100644 js/src/tests/non262/regress/regress-479430-04.js create mode 100644 js/src/tests/non262/regress/regress-479430-05.js create mode 100644 js/src/tests/non262/regress/regress-479740.js create mode 100644 js/src/tests/non262/regress/regress-480147.js create mode 100644 js/src/tests/non262/regress/regress-480244.js create mode 100644 js/src/tests/non262/regress/regress-481436.js create mode 100644 js/src/tests/non262/regress/regress-481800.js create mode 100644 js/src/tests/non262/regress/regress-482421.js create mode 100644 js/src/tests/non262/regress/regress-482783.js create mode 100644 js/src/tests/non262/regress/regress-483103.js create mode 100644 js/src/tests/non262/regress/regress-483749.js create mode 100644 js/src/tests/non262/regress/regress-495773.js create mode 100644 js/src/tests/non262/regress/regress-495907.js create mode 100644 js/src/tests/non262/regress/regress-496922.js create mode 100644 js/src/tests/non262/regress/regress-499524.js create mode 100644 js/src/tests/non262/regress/regress-500528.js create mode 100644 js/src/tests/non262/regress/regress-501124.js create mode 100644 js/src/tests/non262/regress/regress-503860.js create mode 100644 js/src/tests/non262/regress/regress-504078.js create mode 100644 js/src/tests/non262/regress/regress-507053.js create mode 100644 js/src/tests/non262/regress/regress-507295.js create mode 100644 js/src/tests/non262/regress/regress-509354.js create mode 100644 js/src/tests/non262/regress/regress-511859.js create mode 100644 js/src/tests/non262/regress/regress-522123.js create mode 100644 js/src/tests/non262/regress/regress-524743.js create mode 100644 js/src/tests/non262/regress/regress-530879.js create mode 100644 js/src/tests/non262/regress/regress-532491.js create mode 100644 js/src/tests/non262/regress/regress-541255-3.js create mode 100644 js/src/tests/non262/regress/regress-541455.js create mode 100644 js/src/tests/non262/regress/regress-551763-0.js create mode 100644 js/src/tests/non262/regress/regress-551763-1.js create mode 100644 js/src/tests/non262/regress/regress-551763-2.js create mode 100644 js/src/tests/non262/regress/regress-552432.js create mode 100644 js/src/tests/non262/regress/regress-553778.js create mode 100644 js/src/tests/non262/regress/regress-554955-1.js create mode 100644 js/src/tests/non262/regress/regress-554955-2.js create mode 100644 js/src/tests/non262/regress/regress-554955-3.js create mode 100644 js/src/tests/non262/regress/regress-554955-4.js create mode 100644 js/src/tests/non262/regress/regress-554955-5.js create mode 100644 js/src/tests/non262/regress/regress-554955-6.js create mode 100644 js/src/tests/non262/regress/regress-555246-0.js create mode 100644 js/src/tests/non262/regress/regress-555246-1.js create mode 100644 js/src/tests/non262/regress/regress-559402-1.js create mode 100644 js/src/tests/non262/regress/regress-559402-2.js create mode 100644 js/src/tests/non262/regress/regress-559438.js create mode 100644 js/src/tests/non262/regress/regress-560998-1.js create mode 100644 js/src/tests/non262/regress/regress-560998-2.js create mode 100644 js/src/tests/non262/regress/regress-561031.js create mode 100644 js/src/tests/non262/regress/regress-563210.js create mode 100644 js/src/tests/non262/regress/regress-563221.js create mode 100644 js/src/tests/non262/regress/regress-566549.js create mode 100644 js/src/tests/non262/regress/regress-567152.js create mode 100644 js/src/tests/non262/regress/regress-569306.js create mode 100644 js/src/tests/non262/regress/regress-57043.js create mode 100644 js/src/tests/non262/regress/regress-571014.js create mode 100644 js/src/tests/non262/regress/regress-573875.js create mode 100644 js/src/tests/non262/regress/regress-577648-1.js create mode 100644 js/src/tests/non262/regress/regress-577648-2.js create mode 100644 js/src/tests/non262/regress/regress-580544.js create mode 100644 js/src/tests/non262/regress/regress-58116.js create mode 100644 js/src/tests/non262/regress/regress-583429.js create mode 100644 js/src/tests/non262/regress/regress-584355.js create mode 100644 js/src/tests/non262/regress/regress-585257.js create mode 100644 js/src/tests/non262/regress/regress-586482-1.js create mode 100644 js/src/tests/non262/regress/regress-586482-2.js create mode 100644 js/src/tests/non262/regress/regress-586482-3.js create mode 100644 js/src/tests/non262/regress/regress-586482-4.js create mode 100644 js/src/tests/non262/regress/regress-586482-5.js create mode 100644 js/src/tests/non262/regress/regress-588339.js create mode 100644 js/src/tests/non262/regress/regress-591846.js create mode 100644 js/src/tests/non262/regress/regress-591897.js create mode 100644 js/src/tests/non262/regress/regress-592202-3.js create mode 100644 js/src/tests/non262/regress/regress-592202-4.js create mode 100644 js/src/tests/non262/regress/regress-592556-c35.js create mode 100644 js/src/tests/non262/regress/regress-593256.js create mode 100644 js/src/tests/non262/regress/regress-595230-2.js create mode 100644 js/src/tests/non262/regress/regress-595365-1.js create mode 100644 js/src/tests/non262/regress/regress-596103.js create mode 100644 js/src/tests/non262/regress/regress-596805-1.js create mode 100644 js/src/tests/non262/regress/regress-596805-2.js create mode 100644 js/src/tests/non262/regress/regress-597945-1.js create mode 100644 js/src/tests/non262/regress/regress-597945-2.js create mode 100644 js/src/tests/non262/regress/regress-598176.js create mode 100644 js/src/tests/non262/regress/regress-600067.js create mode 100644 js/src/tests/non262/regress/regress-601399.js create mode 100644 js/src/tests/non262/regress/regress-602621.js create mode 100644 js/src/tests/non262/regress/regress-607799.js create mode 100644 js/src/tests/non262/regress/regress-607863.js create mode 100644 js/src/tests/non262/regress/regress-609617.js create mode 100644 js/src/tests/non262/regress/regress-610026.js create mode 100644 js/src/tests/non262/regress/regress-614714.js create mode 100644 js/src/tests/non262/regress/regress-617405-1.js create mode 100644 js/src/tests/non262/regress/regress-617405-2.js create mode 100644 js/src/tests/non262/regress/regress-618572.js create mode 100644 js/src/tests/non262/regress/regress-619003-1.js create mode 100644 js/src/tests/non262/regress/regress-619003-2.js create mode 100644 js/src/tests/non262/regress/regress-620376-1.js create mode 100644 js/src/tests/non262/regress/regress-624547.js create mode 100644 js/src/tests/non262/regress/regress-624968.js create mode 100644 js/src/tests/non262/regress/regress-626436.js create mode 100644 js/src/tests/non262/regress/regress-633741.js create mode 100644 js/src/tests/non262/regress/regress-634210-1.js create mode 100644 js/src/tests/non262/regress/regress-634210-2.js create mode 100644 js/src/tests/non262/regress/regress-634210-3.js create mode 100644 js/src/tests/non262/regress/regress-634210-4.js create mode 100644 js/src/tests/non262/regress/regress-636364.js create mode 100644 js/src/tests/non262/regress/regress-640075.js create mode 100644 js/src/tests/non262/regress/regress-642247.js create mode 100644 js/src/tests/non262/regress/regress-643222.js create mode 100644 js/src/tests/non262/regress/regress-646820-1.js create mode 100644 js/src/tests/non262/regress/regress-646820-2.js create mode 100644 js/src/tests/non262/regress/regress-646820-3.js create mode 100644 js/src/tests/non262/regress/regress-665355.js create mode 100644 js/src/tests/non262/regress/regress-672892.js create mode 100644 js/src/tests/non262/regress/regress-672893.js create mode 100644 js/src/tests/non262/regress/regress-68498-001.js create mode 100644 js/src/tests/non262/regress/regress-68498-002.js create mode 100644 js/src/tests/non262/regress/regress-68498-003.js create mode 100644 js/src/tests/non262/regress/regress-68498-004.js create mode 100644 js/src/tests/non262/regress/regress-694306.js create mode 100644 js/src/tests/non262/regress/regress-69607.js create mode 100644 js/src/tests/non262/regress/regress-698028-1.js create mode 100644 js/src/tests/non262/regress/regress-698028-2.js create mode 100644 js/src/tests/non262/regress/regress-698028-3.js create mode 100644 js/src/tests/non262/regress/regress-699682.js create mode 100644 js/src/tests/non262/regress/regress-71107.js create mode 100644 js/src/tests/non262/regress/regress-736792.js create mode 100644 js/src/tests/non262/regress/regress-76054.js create mode 100644 js/src/tests/non262/regress/regress-80981.js create mode 100644 js/src/tests/non262/regress/regress-810525.js create mode 100644 js/src/tests/non262/regress/regress-82306.js create mode 100644 js/src/tests/non262/regress/regress-89443.js create mode 100644 js/src/tests/non262/regress/regress-89474.js create mode 100644 js/src/tests/non262/regress/regress-90445.js create mode 100644 js/src/tests/non262/regress/regress-96128-n.js create mode 100644 js/src/tests/non262/regress/regress-96526-001.js create mode 100644 js/src/tests/non262/regress/regress-96526-002.js create mode 100644 js/src/tests/non262/regress/regress-96526-003.js create mode 100644 js/src/tests/non262/regress/regress-98901.js create mode 100644 js/src/tests/non262/regress/shell.js (limited to 'js/src/tests/non262/regress') diff --git a/js/src/tests/non262/regress/browser.js b/js/src/tests/non262/regress/browser.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/js/src/tests/non262/regress/regress-102725.js b/js/src/tests/non262/regress/regress-102725.js new file mode 100644 index 0000000000..bbdb7abe7e --- /dev/null +++ b/js/src/tests/non262/regress/regress-102725.js @@ -0,0 +1,61 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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 October 2001 + * + * SUMMARY: Regression test for Bugzilla bug 102725 + * See http://bugzilla.mozilla.org/show_bug.cgi?id=102725 + * "gcc -O2 problems converting numbers to strings" + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 102725; +var summary = 'Testing converting numbers to strings'; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + + +/* + * Successive calls to foo.toString() were producing different answers! + */ +status = inSection(1); +foo = (new Date()).getTime(); +actual = foo.toString(); +expect = foo.toString(); +addThis(); + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function 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() +{ + 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/non262/regress/regress-114491.js b/js/src/tests/non262/regress/regress-114491.js new file mode 100644 index 0000000000..097221a45d --- /dev/null +++ b/js/src/tests/non262/regress/regress-114491.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/. */ + +/* + * + * 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var i = 0; i < UBound; i++) + { + reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); + } +} diff --git a/js/src/tests/non262/regress/regress-114493.js b/js/src/tests/non262/regress/regress-114493.js new file mode 100644 index 0000000000..3a6089d7d9 --- /dev/null +++ b/js/src/tests/non262/regress/regress-114493.js @@ -0,0 +1,77 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var i = 0; i < UBound; i++) + { + reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); + } +} diff --git a/js/src/tests/non262/regress/regress-116228.js b/js/src/tests/non262/regress/regress-116228.js new file mode 100644 index 0000000000..7556d43336 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-118849.js b/js/src/tests/non262/regress/regress-118849.js new file mode 100644 index 0000000000..52a03bc028 --- /dev/null +++ b/js/src/tests/non262/regress/regress-118849.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: 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var i = 0; i < UBound; i++) + { + reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); + } +} diff --git a/js/src/tests/non262/regress/regress-131510-001.js b/js/src/tests/non262/regress/regress-131510-001.js new file mode 100644 index 0000000000..bf4d605b41 --- /dev/null +++ b/js/src/tests/non262/regress/regress-131510-001.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/. */ + +/* + * + * Date: 16 Mar 2002 + * SUMMARY: Shouldn't crash if define |var arguments| inside a function + * See http://bugzilla.mozilla.org/show_bug.cgi?id=131510 + * + */ +//----------------------------------------------------------------------------- +var BUGNUMBER = 131510; +var summary = "Shouldn't crash if define |var arguments| inside a function"; +printBugNumber(BUGNUMBER); +printStatus(summary); + + +function f() {var arguments;} +f(); + + +/* + * Put same example in function scope instead of global scope + */ +function g() { function f() {var arguments;}; f();}; +g(); + + +/* + * Put these examples in eval scope + */ +var s = 'function f() {var arguments;}; f();'; +eval(s); + +s = 'function g() { function f() {var arguments;}; f();}; g();'; +eval(s); + +reportCompare('No Crash', 'No Crash', ''); diff --git a/js/src/tests/non262/regress/regress-1383630.js b/js/src/tests/non262/regress/regress-1383630.js new file mode 100644 index 0000000000..8ce3074af3 --- /dev/null +++ b/js/src/tests/non262/regress/regress-1383630.js @@ -0,0 +1,827 @@ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + */ + +/* These tests are not checking whether an exception is thrown or not for + * proxies: those tests should already exist in js/src/tests/non262/Proxy . + * We expect TypeErrors to be thrown in these tests, with a stringification + * of the error message showing whatever property name the error is being + * reported for. + * + * Beyond the presence of the property name, these tests do not care about the + * contents of the message. + * + * The reason for requiring the property name is simple: with ECMAScript + * proxies, it can be really hard to figure out what little assertion causes a + * TypeError in the first place. + */ +"use strict"; + +function assertThrowsTypeErrorIncludes(f, propStr, details) { + var fullmsg; + try { + f(); + } + catch (exc) { + if (!(exc instanceof TypeError)) + fullmsg = + "Assertion failed: expected TypeError, got " + exc; + else if (!exc.message.includes(propStr)) + fullmsg = + `Assertion failed: expected TypeError message '${exc.message}' to include '${propStr}'`; + else if (details && !exc.message.includes(details)) + fullmsg = + `Assertion failed: expected TypeError message '${exc.message}' to include '${details}'`; + else + return; + } + + if (fullmsg === undefined) { + fullmsg = + "Assertion failed: expected TypeError, no exception thrown"; + } + + throw new Error(fullmsg); +} + +const STR = "one", STR_NAME = `"one"`; +const SYM = Symbol("two"), SYM_NAME = `'Symbol("two")'`; + +function errorHasPropertyTests(test) { + assertThrowsTypeErrorIncludes(() => test(STR), STR_NAME); + assertThrowsTypeErrorIncludes(() => test(SYM), SYM_NAME); +} + +function errorHasPropertyTestsWithDetails(test) { + let [throwable, details] = test(STR); + assertThrowsTypeErrorIncludes(throwable, STR_NAME, details); + + [throwable, details] = test(SYM); + assertThrowsTypeErrorIncludes(throwable, SYM_NAME, details); +} + +// getOwnPropertyDescriptor + +function testGetOwnPropertyDescriptor_OBJORUNDEF(propName) { + // JSMSG_PROXY_GETOWN_OBJORUNDEF + const h = { + getOwnPropertyDescriptor: () => 2 + }; + + const t = {}; + const p = new Proxy(t, h); + + Reflect.getOwnPropertyDescriptor(p, propName); +} + +function testGetOwnPropertyDescriptor_NC_AS_NE(propName) { + // JSMSG_CANT_REPORT_NC_AS_NE + const h = { + getOwnPropertyDescriptor: () => undefined + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 1, + writable: true, + enumerable: true, + configurable: false + }); + const p = new Proxy(t, h); + + Reflect.getOwnPropertyDescriptor(p, propName); +} + +function testGetOwnPropertyDescriptor_E_AS_NE(propName) { + // JSMSG_CANT_REPORT_E_AS_NE + const h = { + getOwnPropertyDescriptor: () => undefined, + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 1, + writable: true, + enumerable: true, + configurable: true + }); + Reflect.preventExtensions(t); + const p = new Proxy(t, h); + + Reflect.getOwnPropertyDescriptor(p, propName); +} + +function testGetOwnPropertyDescriptor_NE_AS_NC(propName) { + // JSMSG_CANT_REPORT_NE_AS_NC + const h = { + getOwnPropertyDescriptor: function() { + return { + value: 1, + writable: true, + enumerable: true, + configurable: false + }; + } + }; + + const t = {}; + const p = new Proxy(t, h); + + Reflect.getOwnPropertyDescriptor(p, propName); +} + +function testGetOwnPropertyDescriptor_C_AS_NC(propName) { + // JSMSG_CANT_REPORT_C_AS_NC + const h = { + getOwnPropertyDescriptor: function() { + return { + value: 1, + writable: true, + enumerable: true, + configurable: false // here's the difference + }; + } + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 1, + writable: true, + enumerable: true, + configurable: true + }); + + const p = new Proxy(t, h); + + Reflect.getOwnPropertyDescriptor(p, propName); +} + +function testGetOwnPropertyDescriptor_INVALID_NOT_EXTENSIBLE(propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_NOT_EXTENSIBLE + const h = { + getOwnPropertyDescriptor: function() { + return { + value: 1, + writable: true, + enumerable: true, + configurable: true + }; + } + }; + + const t = {}; + Reflect.preventExtensions(t); + + const p = new Proxy(t, h); + return [() => { Reflect.getOwnPropertyDescriptor(p, propName); }, + "proxy can't report an extensible object as non-extensible"]; +} + +function testGetOwnPropertyDescriptor_INVALID_C_AS_NC(propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_CANT_REPORT_NC_AS_C + const h = { + getOwnPropertyDescriptor: function() { + return { + value: 1, + writable: true, + enumerable: true, + configurable: true + }; + } + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 1, + writable: true, + enumerable: true, + configurable: false + }); + + const p = new Proxy(t, h); + return [() => { Reflect.getOwnPropertyDescriptor(p, propName); }, + "proxy can't report an existing non-configurable property as configurable"]; +} + +function testGetOwnPropertyDescriptor_INVALID_ENUM_DIFFERENT_CURRENT(cEnumerable, propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_ENUM_DIFFERENT + const h = { + getOwnPropertyDescriptor: function() { + return { + value: 1, + writable: true, + enumerable: !cEnumerable, + configurable: false + }; + } + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 1, + writable: true, + enumerable: cEnumerable, + configurable: false + }); + + const p = new Proxy(t, h); + return [() => { Reflect.getOwnPropertyDescriptor(p, propName); }, + "proxy can't report a different 'enumerable' from target when target is not configurable"]; +} + +function testGetOwnPropertyDescriptor_INVALID_CURRENT_NC_DIFF_TYPE(cAccessor, propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_CURRENT_NC_DIFF_TYPE + const accDesc = { + get: () => 1, + enumerable: true, + configurable: false, + }; + const dataDesc = { + value: 1, + writable: true, + enumerable: true, + configurable: false + }; + + const h = { + getOwnPropertyDescriptor: () => { return (cAccessor ? dataDesc : accDesc); } + }; + + const t = {}; + Reflect.defineProperty(t, propName, cAccessor ? accDesc : dataDesc); + const p = new Proxy(t, h); + return [() => { Reflect.getOwnPropertyDescriptor(p, propName); }, + "proxy can't report a different descriptor type when target is not configurable"]; +} + +function testGetOwnPropertyDescriptor_INVALID_NW_AS_W(propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_CANT_REPORT_NW_AS_W + const h = { + getOwnPropertyDescriptor: function() { + return { + value: 1, + writable: true, + enumerable: true, + configurable: false + }; + } + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 2, + writable: false, + enumerable: true, + configurable: false + }); + const p = new Proxy(t, h); + + return [() => { Reflect.getOwnPropertyDescriptor(p, propName); }, + "proxy can't report a non-configurable, non-writable property as writable"]; +} + +function testGetOwnPropertyDescriptor_INVALID_DIFFERENT_VALUE(propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_DIFFERENT_VALUE + const h = { + getOwnPropertyDescriptor: function() { + return { + value: 1, + writable: false, + enumerable: true, + configurable: false + }; + } + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 2, + writable: false, + enumerable: true, + configurable: false + }); + const p = new Proxy(t, h); + + return [() => { Reflect.getOwnPropertyDescriptor(p, propName); }, + "proxy must report the same value for the non-writable, non-configurable property"]; +} + +function testGetOwnPropertyDescriptor_INVALID_SETTERS_DIFFERENT(propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_SETTERS_DIFFERENT + const g = () => 1; + const h = { + getOwnPropertyDescriptor: function() { + return { + get: g, + set: () => 2, + enumerable: true, + configurable: false + }; + } + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + get: g, + set: () => 2, + enumerable: true, + configurable: false + }); + const p = new Proxy(t, h); + + return [() => { Reflect.getOwnPropertyDescriptor(p, propName); }, + "proxy can't report different setters for a currently non-configurable property"]; +} + +function testGetOwnPropertyDescriptor_INVALID_GETTERS_DIFFERENT(propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_GETTERS_DIFFERENT + const h = { + getOwnPropertyDescriptor: function() { + return { + get: () => 2, + enumerable: true, + configurable: false + }; + } + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + get: () => 2, + enumerable: true, + configurable: false + }); + const p = new Proxy(t, h); + + return [() => { Reflect.getOwnPropertyDescriptor(p, propName); }, + "proxy can't report different getters for a currently non-configurable property"]; +} + +// defineProperty +function testDefineProperty_CANT_DEFINE_NEW(propName) { + // JSMSG_CANT_DEFINE_NEW + const h = { + defineProperty: () => true + }; + + const t = {}; + Reflect.preventExtensions(t); + + const p = new Proxy(t, h); + Reflect.defineProperty(p, propName, {}); +} + +function testDefineProperty_NE_AS_NC(propName) { + // JSMSG_CANT_DEFINE_NE_AS_NC + const h = { + defineProperty: () => true + }; + + const t = {}; + + const p = new Proxy(t, h); + Reflect.defineProperty(p, propName, { + value: 1, + enumerable: true, + writable: true, + configurable: false, + }); +} + +/* Reflect.defineProperty(proxy, propName, desc) cannot throw + * JSMSG_CANT_REPORT_INVALID with DETAILS_NOT_EXTENSIBLE. Here's why: + * + * To throw with DETAILS_NOT_EXTENSIBLE, current must be undefined and the + * target must not be extensible, inside ValidateAndApplyPropertyDescriptor. + * + * ValidateAndApplyPropertyDescriptor's current is also + * IsCompatiblePropertyDescriptor's current, and therefore also + * targetDesc in [[DefineOwnProperty]] for proxies at step 16b. + * + * BUT step 16 is not reached if targetDesc in [[DefineOwnProperty]] is + * undefined: instead step 15 is invoked. QED. + */ + +function testDefineProperty_INVALID_NC_AS_C(propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_CANT_REPORT_NC_AS_C + const h = { + defineProperty: function() { + return true; + } + }; + + const newDesc = { + value: 1, + writable: true, + enumerable: true, + configurable: true + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 1, + writable: true, + enumerable: true, + configurable: false + }); + + const p = new Proxy(t, h); + return [() => { Reflect.defineProperty(p, propName, newDesc); }, + "proxy can't report an existing non-configurable property as configurable"]; +} + +function testDefineProperty_INVALID_ENUM_DIFFERENT_CURRENT(cEnumerable, propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_ENUM_DIFFERENT + const h = { + defineProperty: function() { + return true; + } + }; + + const newDesc = { + value: 1, + writable: true, + enumerable: !cEnumerable, + configurable: false + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 1, + writable: true, + enumerable: cEnumerable, + configurable: false + }); + + const p = new Proxy(t, h); + return [() => { Reflect.defineProperty(p, propName, newDesc); }, + "proxy can't report a different 'enumerable' from target when target is not configurable"]; +} + +function testDefineProperty_INVALID_CURRENT_NC_DIFF_TYPE(cAccessor, propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_CURRENT_NC_DIFF_TYPE + const accDesc = { + get: () => 1, + enumerable: true, + configurable: false, + }; + const dataDesc = { + value: 1, + writable: true, + enumerable: true, + configurable: false + }; + + const h = { + defineProperty: () => true, + }; + + const t = {}; + Reflect.defineProperty(t, propName, cAccessor ? accDesc : dataDesc); + const p = new Proxy(t, h); + return [() => { Reflect.defineProperty(p, propName, cAccessor ? dataDesc : accDesc); }, + "proxy can't report a different descriptor type when target is not configurable"]; +} + +function testDefineProperty_INVALID_NW_AS_W(propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_CANT_REPORT_NW_AS_W + const h = { + defineProperty: function() { + return true; + } + }; + + const newDesc = { + value: 1, + writable: true, + enumerable: true, + configurable: false + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 2, + writable: false, + enumerable: true, + configurable: false + }); + const p = new Proxy(t, h); + + return [() => { Reflect.defineProperty(p, propName, newDesc); }, + "proxy can't report a non-configurable, non-writable property as writable"]; +} + +function testDefineProperty_INVALID_DIFFERENT_VALUE(propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_DIFFERENT_VALUE + const h = { + defineProperty: function() { + return true; + } + }; + + const newDesc = { + value: 1, + writable: false, + enumerable: true, + configurable: false + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 2, + writable: false, + enumerable: true, + configurable: false + }); + const p = new Proxy(t, h); + + return [() => { Reflect.defineProperty(p, propName, newDesc); }, + "proxy must report the same value for the non-writable, non-configurable property"]; +} + +function testDefineProperty_INVALID_SETTERS_DIFFERENT(propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_SETTERS_DIFFERENT + const g = () => 1; + const h = { + defineProperty: function() { + return true; + } + }; + + const newDesc = { + get: g, + set: () => 2, + enumerable: true, + configurable: false + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + get: g, + set: () => 2, + enumerable: true, + configurable: false + }); + const p = new Proxy(t, h); + + return [() => { Reflect.defineProperty(p, propName, newDesc); }, + "proxy can't report different setters for a currently non-configurable property"]; +} + +function testDefineProperty_INVALID_GETTERS_DIFFERENT(propName) { + // JSMSG_CANT_REPORT_INVALID, DETAILS_GETTERS_DIFFERENT + const h = { + defineProperty: function() { + return true; + } + }; + + const newDesc = { + get: () => 2, + enumerable: true, + configurable: false + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + get: () => 2, + enumerable: true, + configurable: false + }); + const p = new Proxy(t, h); + + return [() => { Reflect.defineProperty(p, propName, newDesc); }, + "proxy can't report different getters for a currently non-configurable property"]; +} + +function testDefineProperty_INVALID_C_AS_NC(propName) { + const h = { + defineProperty: function() { + return true; + } + }; + + const newDesc = { + value: 1, + writable: true, + enumerable: true, + configurable: false + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 1, + writable: true, + enumerable: true, + configurable: true + }); + const p = new Proxy(t, h); + + return [() => { Reflect.defineProperty(p, propName, newDesc); }, + "proxy can't define an existing configurable property as non-configurable"]; +} + +// ownKeys + +function testOwnKeys_CANT_SKIP_NC(propName) { + // JSMSG_CANT_SKIP_NC + const h = { + ownKeys: () => [] + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 1, + writable: true, + enumerable: true, + configurable: false + }); + + const p = new Proxy(t, h); + + Reflect.ownKeys(p); +} + +function testOwnKeys_E_AS_NE(propName) { + // JSMSG_CANT_REPORT_E_AS_NE + const h = { + ownKeys: () => [] + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + configurable: true, + value: 1, + writable: true, + enumerable: true + }); + + Reflect.preventExtensions(t); + const p = new Proxy(t, h); + + Reflect.ownKeys(p); +} + +// has + +function testHas_NC_AS_NE(propName) { + // JSMSG_CANT_REPORT_NC_AS_NE + const h = { + has: () => undefined + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 1, + writable: true, + enumerable: true, + configurable: false + }); + const p = new Proxy(t, h); + + Reflect.has(p, propName); +} + +function testHas_E_AS_NE(propName) { + // JSMSG_CANT_REPORT_E_AS_NE + const h = { + has: () => undefined + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 1, + writable: true, + enumerable: true, + configurable: true + }); + Reflect.preventExtensions(t); + const p = new Proxy(t, h); + + Reflect.has(p, propName); +} + +// get + +function testGet_SAME_VALUE(propName) { + const h = { + get: () => 2 + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 1, + writable: false, + enumerable: true, + configurable: false + }); + + const p = new Proxy(t, h); + Reflect.get(p, propName); +} + +function testGet_MUST_REPORT_UNDEFINED(propName) { + // JSMSG_MUST_REPORT_UNDEFINED + const h = { + get: () => 2 + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + set: () => { /* do nothing */}, + enumerable: true, + configurable: false + }); + + const p = new Proxy(t, h); + Reflect.get(p, propName); +} + +// set + +function testSet_CANT_SET_NW_NC(propName) { + // JSMSG_CANT_SET_NW_NC + const h = { + set: () => true, + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + value: 1, + writable: false, + enumerable: true, + configurable: false + }); + + const p = new Proxy(t, h); + Reflect.set(p, propName, 3); +} + +function testSet_WO_SETTER(propName) { + // JSMSG_MUST_REPORT_UNDEFINED + const h = { + set: () => true + }; + + const t = {}; + Reflect.defineProperty(t, propName, { + get: () => { /* do nothing */}, + enumerable: true, + configurable: false + }); + + const p = new Proxy(t, h); + Reflect.set(p, propName, 1); +} + +// test sequence + +[ + testGetOwnPropertyDescriptor_OBJORUNDEF, + testGetOwnPropertyDescriptor_NC_AS_NE, + testGetOwnPropertyDescriptor_E_AS_NE, + testGetOwnPropertyDescriptor_NE_AS_NC, + testGetOwnPropertyDescriptor_C_AS_NC, + + testDefineProperty_CANT_DEFINE_NEW, + testDefineProperty_NE_AS_NC, + + testOwnKeys_CANT_SKIP_NC, + testOwnKeys_E_AS_NE, + + testHas_NC_AS_NE, + testHas_E_AS_NE, + + testGet_SAME_VALUE, + testGet_MUST_REPORT_UNDEFINED, + + testSet_CANT_SET_NW_NC, + testSet_WO_SETTER, +].forEach(errorHasPropertyTests); + +[ + testGetOwnPropertyDescriptor_INVALID_NOT_EXTENSIBLE, + testGetOwnPropertyDescriptor_INVALID_C_AS_NC, + testGetOwnPropertyDescriptor_INVALID_ENUM_DIFFERENT_CURRENT.bind(null, true), + testGetOwnPropertyDescriptor_INVALID_ENUM_DIFFERENT_CURRENT.bind(null, false), + testGetOwnPropertyDescriptor_INVALID_CURRENT_NC_DIFF_TYPE.bind(null, true), + testGetOwnPropertyDescriptor_INVALID_CURRENT_NC_DIFF_TYPE.bind(null, false), + testGetOwnPropertyDescriptor_INVALID_NW_AS_W, + testGetOwnPropertyDescriptor_INVALID_DIFFERENT_VALUE, + testGetOwnPropertyDescriptor_INVALID_SETTERS_DIFFERENT, + testGetOwnPropertyDescriptor_INVALID_GETTERS_DIFFERENT, + + testDefineProperty_INVALID_NC_AS_C, + testDefineProperty_INVALID_ENUM_DIFFERENT_CURRENT.bind(null, true), + testDefineProperty_INVALID_ENUM_DIFFERENT_CURRENT.bind(null, false), + testDefineProperty_INVALID_CURRENT_NC_DIFF_TYPE.bind(null, true), + testDefineProperty_INVALID_CURRENT_NC_DIFF_TYPE.bind(null, false), + testDefineProperty_INVALID_NW_AS_W, + testDefineProperty_INVALID_DIFFERENT_VALUE, + testDefineProperty_INVALID_SETTERS_DIFFERENT, + testDefineProperty_INVALID_GETTERS_DIFFERENT, + testDefineProperty_INVALID_C_AS_NC, +].forEach(errorHasPropertyTestsWithDetails); + +reportCompare(0, 0, 'ok'); diff --git a/js/src/tests/non262/regress/regress-139316.js b/js/src/tests/non262/regress/regress-139316.js new file mode 100644 index 0000000000..45cf177d30 --- /dev/null +++ b/js/src/tests/non262/regress/regress-139316.js @@ -0,0 +1,46 @@ +/* -*- 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 = 139316; +var summary = 'Do not crash in js_ReportIsNotDefined()'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var str = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; + +function makeError () +{ + try + { + foo(); + } + catch (e) + { + return e; + } +} + + +f = function () +{ + var e = makeError (function c(){}, function (){}, + {a: 1}, null, undefined, + Number.MAX_VALUE, 0, new Number(1), + "hello world", str, new String ("newstring"), + true, new Boolean(0), + new Date()); + printStatus (e.stack); +} + + f(); + + +reportCompare(expect, actual, summary); + diff --git a/js/src/tests/non262/regress/regress-140852.js b/js/src/tests/non262/regress/regress-140852.js new file mode 100644 index 0000000000..13d83ce89e --- /dev/null +++ b/js/src/tests/non262/regress/regress-140852.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 = 140852; +var summary = 'String(number) = xxxx:0000 for some numbers'; +var actual = ''; +var expect = ''; + + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var value; + +value = 99999999999; +expect = '99999999999'; +actual = value.toString(); +reportCompare(expect, actual, summary); + +value = 100000000000; +expect = '100000000000'; +actual = value.toString(); +reportCompare(expect, actual, summary); + +value = 426067200000; +expect = '426067200000'; +actual = value.toString(); +reportCompare(expect, actual, summary); + diff --git a/js/src/tests/non262/regress/regress-140974.js b/js/src/tests/non262/regress/regress-140974.js new file mode 100644 index 0000000000..370272c7c1 --- /dev/null +++ b/js/src/tests/non262/regress/regress-140974.js @@ -0,0 +1,103 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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: 04 May 2002 + * SUMMARY: |if (false) {var x;} should create the variable x + * See http://bugzilla.mozilla.org/show_bug.cgi?id=140974 + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 140974; +var TEST_PASSED = 'variable was created'; +var TEST_FAILED = 'variable was NOT created'; +var summary = '|if (false) {var x;}| should create the variable x'; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + + +// -------------- THESE TWO SECTIONS TEST THE VARIABLE X -------------- +status = inSection(1); +actual = TEST_PASSED; +try{ X;} catch(e) {actual = TEST_FAILED} +expect = TEST_PASSED; +addThis(); + +var X; + +status = inSection(2); +actual = TEST_PASSED; +try{ X;} catch(e) {actual = TEST_FAILED} +expect = TEST_PASSED; +addThis(); + + + +// -------------- THESE TWO SECTIONS TEST THE VARIABLE Y -------------- +status = inSection(3); +actual = TEST_PASSED; +try{ Y;} catch(e) {actual = TEST_FAILED} +expect = TEST_PASSED; +addThis(); + +if (false) {var Y;}; + +status = inSection(4); +actual = TEST_PASSED; +try{ Y;} catch(e) {actual = TEST_FAILED} +expect = TEST_PASSED; +addThis(); + + + +// -------------- THESE TWO SECTIONS TEST THE VARIABLE Z -------------- +status = inSection(5); +actual = TEST_PASSED; +try{ Z;} catch(e) {actual = TEST_FAILED} +expect = TEST_PASSED; +addThis(); + +if (false) { for (var Z; false;){} } + +status = inSection(6); +actual = TEST_PASSED; +try{ Z;} catch(e) {actual = TEST_FAILED} +expect = TEST_PASSED; +addThis(); + + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function 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() +{ + 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/non262/regress/regress-176125.js b/js/src/tests/non262/regress/regress-176125.js new file mode 100644 index 0000000000..8334b2b792 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-179524.js b/js/src/tests/non262/regress/regress-179524.js new file mode 100644 index 0000000000..436bdfc43a --- /dev/null +++ b/js/src/tests/non262/regress/regress-179524.js @@ -0,0 +1,292 @@ +// |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() +{ + 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/non262/regress/regress-214761.js b/js/src/tests/non262/regress/regress-214761.js new file mode 100644 index 0000000000..e06f9647db --- /dev/null +++ b/js/src/tests/non262/regress/regress-214761.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 = 214761; +var summary = 'Crash Regression from bug 208030'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + + +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/non262/regress/regress-216320.js b/js/src/tests/non262/regress/regress-216320.js new file mode 100644 index 0000000000..01fcea0f06 --- /dev/null +++ b/js/src/tests/non262/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((/ +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/non262/regress/regress-271716-n.js b/js/src/tests/non262/regress/regress-271716-n.js new file mode 100644 index 0000000000..f936d3081b --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-274035.js b/js/src/tests/non262/regress/regress-274035.js new file mode 100644 index 0000000000..00fcb1a04c --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-274888.js b/js/src/tests/non262/regress/regress-274888.js new file mode 100644 index 0000000000..568c1becfd --- /dev/null +++ b/js/src/tests/non262/regress/regress-274888.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 = 274888; +var summary = 'Negative lookahead should match at positions > approx. 64k'; +var actual = ''; +var expect = ''; + +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); diff --git a/js/src/tests/non262/regress/regress-275378.js b/js/src/tests/non262/regress/regress-275378.js new file mode 100644 index 0000000000..3c69998040 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-276103.js b/js/src/tests/non262/regress/regress-276103.js new file mode 100644 index 0000000000..1242b5964c --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-278873.js b/js/src/tests/non262/regress/regress-278873.js new file mode 100644 index 0000000000..74215a2cc2 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-280769-1.js b/js/src/tests/non262/regress/regress-280769-1.js new file mode 100644 index 0000000000..d17e0997d1 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-280769-2.js b/js/src/tests/non262/regress/regress-280769-2.js new file mode 100644 index 0000000000..78855a1433 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-280769-3.js b/js/src/tests/non262/regress/regress-280769-3.js new file mode 100644 index 0000000000..23d5c2e51b --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-280769-4.js b/js/src/tests/non262/regress/regress-280769-4.js new file mode 100644 index 0000000000..eefc6db2c2 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-280769-5.js b/js/src/tests/non262/regress/regress-280769-5.js new file mode 100644 index 0000000000..930583a07a --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-280769.js b/js/src/tests/non262/regress/regress-280769.js new file mode 100644 index 0000000000..44873cf830 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-281606.js b/js/src/tests/non262/regress/regress-281606.js new file mode 100644 index 0000000000..2f36c150c3 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-281930.js b/js/src/tests/non262/regress/regress-281930.js new file mode 100644 index 0000000000..2939c8be8c --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-283477.js b/js/src/tests/non262/regress/regress-283477.js new file mode 100644 index 0000000000..a4bce398a9 --- /dev/null +++ b/js/src/tests/non262/regress/regress-283477.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 = 283477; +var summary = 'a.lastIndexOf(b, c) should return -1 when there is no match'; +var actual = ''; +var expect = ''; +var status; + +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); diff --git a/js/src/tests/non262/regress/regress-288688.js b/js/src/tests/non262/regress/regress-288688.js new file mode 100644 index 0000000000..465a7ec931 --- /dev/null +++ b/js/src/tests/non262/regress/regress-288688.js @@ -0,0 +1,47 @@ +/* -*- 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 = ''; + +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/non262/regress/regress-289094.js b/js/src/tests/non262/regress/regress-289094.js new file mode 100644 index 0000000000..03945f77e6 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-290575.js b/js/src/tests/non262/regress/regress-290575.js new file mode 100644 index 0000000000..65c43919a6 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-290656.js b/js/src/tests/non262/regress/regress-290656.js new file mode 100644 index 0000000000..671304cb46 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-294191.js b/js/src/tests/non262/regress/regress-294191.js new file mode 100644 index 0000000000..f19ba209df --- /dev/null +++ b/js/src/tests/non262/regress/regress-294191.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 = 294191; +var summary = 'Do not crash with nested function and "delete" op'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +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/non262/regress/regress-294195-01.js b/js/src/tests/non262/regress/regress-294195-01.js new file mode 100644 index 0000000000..273b505545 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-294195-02.js b/js/src/tests/non262/regress/regress-294195-02.js new file mode 100644 index 0000000000..c6a3cc8106 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-294302.js b/js/src/tests/non262/regress/regress-294302.js new file mode 100644 index 0000000000..b4f1ed2fc2 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-295052.js b/js/src/tests/non262/regress/regress-295052.js new file mode 100644 index 0000000000..a84a157877 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-295666.js b/js/src/tests/non262/regress/regress-295666.js new file mode 100644 index 0000000000..b527b5ec9c --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-299209.js b/js/src/tests/non262/regress/regress-299209.js new file mode 100644 index 0000000000..891a4fd35d --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-299641.js b/js/src/tests/non262/regress/regress-299641.js new file mode 100644 index 0000000000..6f844b27fc --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-303213.js b/js/src/tests/non262/regress/regress-303213.js new file mode 100644 index 0000000000..d01c28d122 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-306633.js b/js/src/tests/non262/regress/regress-306633.js new file mode 100644 index 0000000000..6efd1b92a6 --- /dev/null +++ b/js/src/tests/non262/regress/regress-306633.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 = 306633; +var summary = 'report compile warnings in evald code when strict warnings enabled'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expect = 'SyntaxError'; + +try +{ + actual = eval('super = 5'); +} +catch(e) +{ + actual = e.name; +} + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/non262/regress/regress-306794.js b/js/src/tests/non262/regress/regress-306794.js new file mode 100644 index 0000000000..178c715e0d --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-308085.js b/js/src/tests/non262/regress/regress-308085.js new file mode 100644 index 0000000000..d23ff12c15 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-310295.js b/js/src/tests/non262/regress/regress-310295.js new file mode 100644 index 0000000000..1e0aaacc4c --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-310607.js b/js/src/tests/non262/regress/regress-310607.js new file mode 100644 index 0000000000..13d2449ff0 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-310993.js b/js/src/tests/non262/regress/regress-310993.js new file mode 100644 index 0000000000..da98bb80be --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-311071.js b/js/src/tests/non262/regress/regress-311071.js new file mode 100644 index 0000000000..b563f71636 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-311157-01.js b/js/src/tests/non262/regress/regress-311157-01.js new file mode 100644 index 0000000000..8c0e074054 --- /dev/null +++ b/js/src/tests/non262/regress/regress-311157-01.js @@ -0,0 +1,24 @@ +/* -*- 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 BUGNUMBER = 311157; +var summary = 'Comment-hiding compromise left E4X parsing/scanning inconsistent'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + eval('var x = \n there '); +} +catch(e) +{ +} + +reportCompare(expect, actual, summary); + diff --git a/js/src/tests/non262/regress/regress-311157-02.js b/js/src/tests/non262/regress/regress-311157-02.js new file mode 100644 index 0000000000..e84f031597 --- /dev/null +++ b/js/src/tests/non262/regress/regress-311157-02.js @@ -0,0 +1,24 @@ +/* -*- 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 BUGNUMBER = 311157; +var summary = 'Comment-hiding compromise left E4X parsing/scanning inconsistent'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +try +{ + eval('var x = \n there '); +} +catch(e) +{ +} + +reportCompare(expect, actual, summary); + diff --git a/js/src/tests/non262/regress/regress-311629.js b/js/src/tests/non262/regress/regress-311629.js new file mode 100644 index 0000000000..6a4250445e --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-31255.js b/js/src/tests/non262/regress/regress-31255.js new file mode 100644 index 0000000000..fbda8df0d3 --- /dev/null +++ b/js/src/tests/non262/regress/regress-31255.js @@ -0,0 +1,76 @@ +/* -*- 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() +{ + 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/non262/regress/regress-321874.js b/js/src/tests/non262/regress/regress-321874.js new file mode 100644 index 0000000000..d6fbf77c29 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-321971.js b/js/src/tests/non262/regress/regress-321971.js new file mode 100644 index 0000000000..c40b1f47b4 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-325925.js b/js/src/tests/non262/regress/regress-325925.js new file mode 100644 index 0000000000..e75415b105 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-326467.js b/js/src/tests/non262/regress/regress-326467.js new file mode 100644 index 0000000000..5dc1f59b5d --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-328012.js b/js/src/tests/non262/regress/regress-328012.js new file mode 100644 index 0000000000..8ccc673b6e --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-328664.js b/js/src/tests/non262/regress/regress-328664.js new file mode 100644 index 0000000000..be744f8fac --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-329383.js b/js/src/tests/non262/regress/regress-329383.js new file mode 100644 index 0000000000..00c7260cae --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-329530.js b/js/src/tests/non262/regress/regress-329530.js new file mode 100644 index 0000000000..05aa1e78bf --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-330352.js b/js/src/tests/non262/regress/regress-330352.js new file mode 100644 index 0000000000..a33c617625 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-330951.js b/js/src/tests/non262/regress/regress-330951.js new file mode 100644 index 0000000000..a7b2140239 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-334807-01.js b/js/src/tests/non262/regress/regress-334807-01.js new file mode 100644 index 0000000000..977b97fc11 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-334807-02.js b/js/src/tests/non262/regress/regress-334807-02.js new file mode 100644 index 0000000000..59b616695d --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-334807-03.js b/js/src/tests/non262/regress/regress-334807-03.js new file mode 100644 index 0000000000..ae4e6a87d8 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-334807-04.js b/js/src/tests/non262/regress/regress-334807-04.js new file mode 100644 index 0000000000..4c229ceb35 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-334807-05.js b/js/src/tests/non262/regress/regress-334807-05.js new file mode 100644 index 0000000000..02e698c50e --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-334807-06.js b/js/src/tests/non262/regress/regress-334807-06.js new file mode 100644 index 0000000000..46ca2c6645 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-336100.js b/js/src/tests/non262/regress/regress-336100.js new file mode 100644 index 0000000000..9f19e761c2 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-338307.js b/js/src/tests/non262/regress/regress-338307.js new file mode 100644 index 0000000000..2e35cfd003 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-340369.js b/js/src/tests/non262/regress/regress-340369.js new file mode 100644 index 0000000000..61dfd2ce26 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-341360.js b/js/src/tests/non262/regress/regress-341360.js new file mode 100644 index 0000000000..1ff7192dda --- /dev/null +++ b/js/src/tests/non262/regress/regress-341360.js @@ -0,0 +1,46 @@ +// |reftest| skip-if(xulRuntime.shell||(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(); +} + +print('Start...'); +gDelayTestDriverEnd = true; +var t = window.setInterval(xxx, 1000); diff --git a/js/src/tests/non262/regress/regress-343713.js b/js/src/tests/non262/regress/regress-343713.js new file mode 100644 index 0000000000..8d2cd609cc --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-343966.js b/js/src/tests/non262/regress/regress-343966.js new file mode 100644 index 0000000000..556c0392ba --- /dev/null +++ b/js/src/tests/non262/regress/regress-343966.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 = 343966; +var summary = 'ClearScope foo regressed due to bug 343417'; +var actual = 'failed'; +var expect = 'passed'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + Function["prototype"].inherits=function(a){}; + function foo(){}; + function bar(){}; + foo.inherits(bar); + actual = "passed"; + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-344711-n.js b/js/src/tests/non262/regress/regress-344711-n.js new file mode 100644 index 0000000000..59abee0cf2 --- /dev/null +++ b/js/src/tests/non262/regress/regress-344711-n.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 = 344711; +var summary = 'Do not crash compiling when peeking over a newline'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-344804.js b/js/src/tests/non262/regress/regress-344804.js new file mode 100644 index 0000000000..ed0a853993 --- /dev/null +++ b/js/src/tests/non262/regress/regress-344804.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 = 344804; +var summary = 'Do not crash iterating over window.Packages'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (typeof window != 'undefined') + { + for (var p in window.Packages) + ; + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-344959.js b/js/src/tests/non262/regress/regress-344959.js new file mode 100644 index 0000000000..8056fcbbae --- /dev/null +++ b/js/src/tests/non262/regress/regress-344959.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 = 344959; +var summary = 'Functions should not lose scope chain after exception'; +var actual = ''; +var expect = 'with'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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'); +} diff --git a/js/src/tests/non262/regress/regress-346237.js b/js/src/tests/non262/regress/regress-346237.js new file mode 100644 index 0000000000..ca47950408 --- /dev/null +++ b/js/src/tests/non262/regress/regress-346237.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 = 346237; +var summary = 'RegExp - /(|)??x/g.exec("y")'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + /(|)??x/g.exec("y"); + + reportCompare(expect, actual, summary + ': /(|)??x/g.exec("y")'); +} diff --git a/js/src/tests/non262/regress/regress-346801.js b/js/src/tests/non262/regress/regress-346801.js new file mode 100644 index 0000000000..c6d6fbaf3b --- /dev/null +++ b/js/src/tests/non262/regress/regress-346801.js @@ -0,0 +1,73 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If 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() +{ + 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); +} diff --git a/js/src/tests/non262/regress/regress-349482-01.js b/js/src/tests/non262/regress/regress-349482-01.js new file mode 100644 index 0000000000..95f82380c0 --- /dev/null +++ b/js/src/tests/non262/regress/regress-349482-01.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 = 349482; +var summary = 'Decompiling try/catch in for..in should not crash'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f = function() { for(p in {}) try{}catch(e){} }; + print(f.toString()); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-349482-02.js b/js/src/tests/non262/regress/regress-349482-02.js new file mode 100644 index 0000000000..e4850521cd --- /dev/null +++ b/js/src/tests/non262/regress/regress-349482-02.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 = 349482; +var summary = 'Decompiling try/catch in with() should not crash'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f = function() { with({}) { try{}catch(e){} } } + print(f.toString()); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-349592.js b/js/src/tests/non262/regress/regress-349592.js new file mode 100644 index 0000000000..882a1988a0 --- /dev/null +++ b/js/src/tests/non262/regress/regress-349592.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 = 349592; +var summary = 'Do not assert with try/finally inside finally'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function() { try { } finally { try { } finally { } } }); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-350253.js b/js/src/tests/non262/regress/regress-350253.js new file mode 100644 index 0000000000..83d9557824 --- /dev/null +++ b/js/src/tests/non262/regress/regress-350253.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 = 350253; +var summary = 'Do not assert on (g()) = 3'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + (g()) = 3; + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-350268.js b/js/src/tests/non262/regress/regress-350268.js new file mode 100644 index 0000000000..ce306c5c48 --- /dev/null +++ b/js/src/tests/non262/regress/regress-350268.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 = 350268; +var summary = 'new Function with unbalanced braces'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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 + ": } {"); +} diff --git a/js/src/tests/non262/regress/regress-350312.js b/js/src/tests/non262/regress/regress-350312.js new file mode 100644 index 0000000000..8be38184fc --- /dev/null +++ b/js/src/tests/non262/regress/regress-350312.js @@ -0,0 +1,77 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If 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() +{ + 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); +} diff --git a/js/src/tests/non262/regress/regress-350415.js b/js/src/tests/non262/regress/regress-350415.js new file mode 100644 index 0000000000..dab88b4630 --- /dev/null +++ b/js/src/tests/non262/regress/regress-350415.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 = 350415; +var summary = 'Do not assert with new Function("let /*")'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + new Function("let /*"); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-350529.js b/js/src/tests/non262/regress/regress-350529.js new file mode 100644 index 0000000000..973a6623ab --- /dev/null +++ b/js/src/tests/non262/regress/regress-350529.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 = 350529; +var summary = "Do not assert: x--'"; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + eval("x--'"); + } + catch(ex) + { + } + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-351116.js b/js/src/tests/non262/regress/regress-351116.js new file mode 100644 index 0000000000..477457735a --- /dev/null +++ b/js/src/tests/non262/regress/regress-351116.js @@ -0,0 +1,27 @@ +// |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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f = function (s) { function s() { } }; + + function g(s) { function s() { } } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-351515.js b/js/src/tests/non262/regress/regress-351515.js new file mode 100644 index 0000000000..38815e835e --- /dev/null +++ b/js/src/tests/non262/regress/regress-351515.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 = 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + function f(yield, let) { return yield+let; } + + var yield = 1; + var let = 1; + + function yield() {} + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-351795.js b/js/src/tests/non262/regress/regress-351795.js new file mode 100644 index 0000000000..ad6abc815e --- /dev/null +++ b/js/src/tests/non262/regress/regress-351795.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 = 351795; +var summary = 'Do not assert: top < ss->printer->script->depth'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + p={}; + (p.z = [1].some(function(y) { return y > 0; }) ? 4 : [6])(5); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-352208.js b/js/src/tests/non262/regress/regress-352208.js new file mode 100644 index 0000000000..667c48f078 --- /dev/null +++ b/js/src/tests/non262/regress/regress-352208.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 = 352208; +var summary = 'Do not assert new Function("setter/*\n")'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'SyntaxError'; + try + { + eval('new Function("setter/*\n");'); + } + catch(ex) + { + actual = ex.constructor.name; + } + reportCompare(expect, actual, 'new Function("setter/*\n");'); + + try + { + eval('new Function("setter/*\n*/");'); + } + catch(ex) + { + actual = ex.constructor.name; + } + reportCompare(expect, actual, 'new Function("setter/*\n*/");'); +} diff --git a/js/src/tests/non262/regress/regress-352604.js b/js/src/tests/non262/regress/regress-352604.js new file mode 100644 index 0000000000..3d6562e9ed --- /dev/null +++ b/js/src/tests/non262/regress/regress-352604.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 = 352604; +var summary = 'Do not assert: !OBJ_GET_PROTO(cx, ctor)'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + delete Function; + var x = function () {}; + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-352640-01.js b/js/src/tests/non262/regress/regress-352640-01.js new file mode 100644 index 0000000000..6794ef5fd4 --- /dev/null +++ b/js/src/tests/non262/regress/regress-352640-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 = 352640; +var summary = 'Do not assert: scopeStmt or crash @ js_LexicalLookup'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + new Function("do { with({}) let x; let b; } while( 1 );"); + } + catch(ex) + { + } + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-352640-02.js b/js/src/tests/non262/regress/regress-352640-02.js new file mode 100644 index 0000000000..98d57e54a5 --- /dev/null +++ b/js/src/tests/non262/regress/regress-352640-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 = 352640; +var summary = 'Do not assert: scopeStmt or crash @ js_LexicalLookup'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + new Function("do { with({}) let x; var b; } while( 1 );"); + } + catch(ex) + { + } + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-352640-04.js b/js/src/tests/non262/regress/regress-352640-04.js new file mode 100644 index 0000000000..67dcb54964 --- /dev/null +++ b/js/src/tests/non262/regress/regress-352640-04.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 = 352640; +var summary = 'Do not assert: scopeStmt or crash @ js_LexicalLookup'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + new Function("switch(w) { case 2: with({}) let y; case 3: }"); + } + catch(ex) + { + } + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-353078.js b/js/src/tests/non262/regress/regress-353078.js new file mode 100644 index 0000000000..742e963091 --- /dev/null +++ b/js/src/tests/non262/regress/regress-353078.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 = 353078; +var summary = 'Do not assert with bogus toString, map, split'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + this.toString = function() { return {}; }; p = [11].map('foo'.split); + } + catch(ex) + { + } + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-353079.js b/js/src/tests/non262/regress/regress-353079.js new file mode 100644 index 0000000000..b49f075c17 --- /dev/null +++ b/js/src/tests/non262/regress/regress-353079.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 = 353079; +var summary = 'Do not Assert op == JSOP_LEAVEBLOCKEXPR... with WAY_TOO_MUCH_GC'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (let a in [1]) { { let x; + for (let y in ((function(id2) { return id2; })( '' ))) { } } } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-355023.js b/js/src/tests/non262/regress/regress-355023.js new file mode 100644 index 0000000000..75c1c3b66d --- /dev/null +++ b/js/src/tests/non262/regress/regress-355023.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 = 355023; +var summary = 'destructuring assignment optimization'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + Array.prototype[0] = 1024; + + expect = (function(){ var a=[],[x]=a; return x; })(); + actual = (function(){ var [x]=[]; return x; })(); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-355556.js b/js/src/tests/non262/regress/regress-355556.js new file mode 100644 index 0000000000..296b97e0ac --- /dev/null +++ b/js/src/tests/non262/regress/regress-355556.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 = 355556; +var summary = 'Do not crash with eval(..., arguments)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-355569.js b/js/src/tests/non262/regress/regress-355569.js new file mode 100644 index 0000000000..7e995a435a --- /dev/null +++ b/js/src/tests/non262/regress/regress-355569.js @@ -0,0 +1,128 @@ +/* -*- 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 BUGNUMBER = 355569; +var actual = ''; +var expect = ''; +var summary = ''; + +printBugNumber (BUGNUMBER); +printStatus (summary); + +var targetAddress = 0x12030010; +var sprayParams = { + chunkSize: 16 * 1024 * 1024, + chunkCount: 16, + chunkMarker: 0xdeadface, + chunkAlign: 0x1000, + reservedSize: 1024 +}; + +function makeExploitCode() { + /* mov eax, 0xdeadfeed; mov ebx, eax; mov ecx, eax; mov edx, eax; int3 */ + return "\uEDB8\uADFE\u89DE\u89C3\u89C1\uCCC2"; +} + +/*==========================================================================*/ +/*==========================================================================*/ + +function packData(template, A) { + var n = 0, result = "", vl; + for(var i = 0; i < template.length; i++) { + var ch = template.charAt(i); + if(ch == "s" || ch == "S") { + vl = A[n++] >>> 0; result += String.fromCharCode(vl & 0xffff); + } else if(ch == "l" || ch == "L") { // XXX endian + vl = A[n++] >>> 0; result += String.fromCharCode(vl & 0xffff, vl >> 16); + } else if(ch == "=") { + result += String(A[n++]); + } + } + return result; +} +function buildStructure(worker, address) { + var offs = {}, result = "", context = { + append: function(k, v) { offs[k] = result.length * 2; result += v; }, + address: function(k) { return address + ((k && offs[k]) || 0); } + }; worker(context); result = ""; worker(context); return result; +} +function repeatToLength(s, L) { + if(L <= s.length) { return s.substring(0, L); } + while(s.length <= L/2) { s += s; } + return s + s.substring(0, L - s.length); +} +function sprayData(data, params, rooter) { + var marker = packData("L", [ params.chunkMarker ]); + data += repeatToLength("\u9090", params.chunkAlign / 2 - data.length); + data = repeatToLength(data, (params.chunkSize - params.reservedSize) / 2); + for(var i = 0; i < params.chunkCount; i++) { + rooter[i] = marker + data + i; + } +} + +function T_JSObject(map, slots) +{ return packData("LL", arguments); } +function T_JSObjectMap(nrefs, ops, nslots, freeslot) +{ return packData("LLLL", arguments); } +function T_JSObjectOps( + newObjectMap, destroyObjectMap, lookupProperty, defineProperty, + getProperty, setProperty, getAttributes, setAttributes, + deleteProperty, defaultValue, enumerate, checkAccess, + thisObject, dropProperty, call, construct, + xdrObject, hasInstance, setProto, setParent, + mark, clear, getRequiredSlot, setRequiredSlot +) { return packData("LLLLLLLL LLLLLLLL LLLLLLLL", arguments); } + +function T_JSXML_LIST( + object, domnode, parent, name, xml_class, xml_flags, + kids_length, kids_capacity, kids_vector, kids_cursors, + xml_target, xml_targetprop +) { return packData("LLLLSS LLLL LL", arguments); } +function T_JSXML_ELEMENT( + object, domnode, parent, name, xml_class, xml_flags, + kids_length, kids_capacity, kids_vector, kids_cursors, + nses_length, nses_capacity, nses_vector, nses_cursors, + atrs_length, atrs_capacity, atrs_vector, atrs_cursors +) { return packData("LLLLSS LLLL LLLL LLLL", arguments); } + +/*==========================================================================*/ +/*==========================================================================*/ + +function makeExploitData(address) { + return buildStructure(function(ctx) { + ctx.append("xml-list", + T_JSXML_LIST(0, 0, 0, 0, 0, 0, 1, 0, ctx.address("xml-kids-vector"), 0, 0, 0)); + ctx.append("xml-kids-vector", + packData("L", [ ctx.address("xml-element") ])); + ctx.append("xml-element", + T_JSXML_ELEMENT(ctx.address("object"), 0, 0, 0, 1, 0, 0, 0, 0, 0, /*c*/ 0, 0, 0, 0, /*d*/ 0, 0, 0, 0)); + ctx.append("object", + T_JSObject(ctx.address("object-map"), 0)); + ctx.append("object-map", + T_JSObjectMap(0, ctx.address("object-ops"), 0, 0)); + ctx.append("object-ops", + T_JSObjectOps(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ctx.address("exploit-code"), 0)); + ctx.append("exploit-code", + makeExploitCode(ctx)); + }, address); +} + +function exploit() { + sprayData(makeExploitData(targetAddress), sprayParams, this.rooter = {}); + var numobj = new Number(targetAddress >> 1); + printStatus("probably not exploitable"); +} + +try +{ + exploit(); +} +catch(ex) +{ +} + +reportCompare(expect, actual); + diff --git a/js/src/tests/non262/regress/regress-355829-01.js b/js/src/tests/non262/regress/regress-355829-01.js new file mode 100644 index 0000000000..fa94cce9ff --- /dev/null +++ b/js/src/tests/non262/regress/regress-355829-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 = 355829; +var summary = 'Do not assert: !argc || argv[0].isNull() || argv[0].isUndefined()'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + new Object({valueOf: /a/}); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-355829-02.js b/js/src/tests/non262/regress/regress-355829-02.js new file mode 100644 index 0000000000..ac633ad1ae --- /dev/null +++ b/js/src/tests/non262/regress/regress-355829-02.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 = 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() +{ + 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); +} diff --git a/js/src/tests/non262/regress/regress-355829-03.js b/js/src/tests/non262/regress/regress-355829-03.js new file mode 100644 index 0000000000..0343e9c7db --- /dev/null +++ b/js/src/tests/non262/regress/regress-355829-03.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 = 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + var a = [ { valueOf: function() { return null; } } ]; + a.toLocaleString(); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-355832-01.js b/js/src/tests/non262/regress/regress-355832-01.js new file mode 100644 index 0000000000..d9b9dacbef --- /dev/null +++ b/js/src/tests/non262/regress/regress-355832-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 = 355832; +var summary = 'execution of let binding nothing'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = actual = 'No Crash'; + + { let [] = []; } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-355832-02.js b/js/src/tests/non262/regress/regress-355832-02.js new file mode 100644 index 0000000000..5a5f128b03 --- /dev/null +++ b/js/src/tests/non262/regress/regress-355832-02.js @@ -0,0 +1,27 @@ +/* -*- 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 = 355832; +var summary = 'execution of let binding nothing'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = actual = 'No Crash'; + + { let [] = []; print(3) } print(4) + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-356250.js b/js/src/tests/non262/regress/regress-356250.js new file mode 100644 index 0000000000..a0756b77e0 --- /dev/null +++ b/js/src/tests/non262/regress/regress-356250.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 = 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function() { eval("(function() { })"); })(); + + reportCompare(expect, actual, summary + ': nested 1'); +} + +function test2() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function () {(function() { eval("(function() { })"); })();})(); + + reportCompare(expect, actual, summary + ': nested 2'); +} diff --git a/js/src/tests/non262/regress/regress-356693.js b/js/src/tests/non262/regress/regress-356693.js new file mode 100644 index 0000000000..6a1301f797 --- /dev/null +++ b/js/src/tests/non262/regress/regress-356693.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 = 356693; +var summary = 'Do not assert: pn2->pn_op == JSOP_SETCALL'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'ReferenceError: x is not defined'; + try + { + delete (0 ? 3 : x()); + } + catch(ex) + { + actual = ex + ''; + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-360969-01.js b/js/src/tests/non262/regress/regress-360969-01.js new file mode 100644 index 0000000000..a04acd6c87 --- /dev/null +++ b/js/src/tests/non262/regress/regress-360969-01.js @@ -0,0 +1,39 @@ +// |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() +{ + 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/non262/regress/regress-360969-02.js b/js/src/tests/non262/regress/regress-360969-02.js new file mode 100644 index 0000000000..7ab7efed1f --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-360969-03.js b/js/src/tests/non262/regress/regress-360969-03.js new file mode 100644 index 0000000000..ff07e59a62 --- /dev/null +++ b/js/src/tests/non262/regress/regress-360969-03.js @@ -0,0 +1,39 @@ +// |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() +{ + 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/non262/regress/regress-360969-04.js b/js/src/tests/non262/regress/regress-360969-04.js new file mode 100644 index 0000000000..d33dbbc213 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-360969-05.js b/js/src/tests/non262/regress/regress-360969-05.js new file mode 100644 index 0000000000..b83aeaf84f --- /dev/null +++ b/js/src/tests/non262/regress/regress-360969-05.js @@ -0,0 +1,41 @@ +// |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() +{ + 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/non262/regress/regress-360969-06.js b/js/src/tests/non262/regress/regress-360969-06.js new file mode 100644 index 0000000000..cd95040fba --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-363040-01.js b/js/src/tests/non262/regress/regress-363040-01.js new file mode 100644 index 0000000000..7b2d84c974 --- /dev/null +++ b/js/src/tests/non262/regress/regress-363040-01.js @@ -0,0 +1,92 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 363040; +var summary = 'Array.prototype.reduce, Array.prototype.reduceRight'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + function f(x,y) { return '(' + x + '+' + y + ')';} + + var testdesc; + var arr0elms = []; + var arr1elms = [1]; + var arr2elms = [1, 2]; + + testdesc = 'Test reduce of empty array without initializer.'; + try + { + expect = 'TypeError: reduce of empty array with no initial value'; + arr0elms.reduce(f); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect + '', actual + '', testdesc + ' : ' + expect); + + testdesc = 'Test reduceRight of empty array without initializer.'; + try + { + expect = 'TypeError: reduce of empty array with no initial value'; + arr0elms.reduceRight(f); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect + '', actual + '', testdesc + ' : ' + expect); + + testdesc = 'Test reduce of empty array with initial value.'; + expect = 'a'; + actual = arr0elms.reduce(f, 'a'); + reportCompare(expect + '', actual + '', testdesc + ' : ' + expect); + + testdesc = 'Test reduceRight of empty array with initial value.'; + expect = 'a'; + actual = arr0elms.reduceRight(f, 'a'); + reportCompare(expect + '', actual + '', testdesc +' : ' + expect); + + testdesc = 'Test reduce of 1 element array with no initializer.'; + expect = '1'; + actual = arr1elms.reduce(f); + reportCompare(expect + '', actual + '', testdesc + ' : ' + expect); + + testdesc = 'Test reduceRight of 1 element array with no initializer.'; + expect = '1'; + actual = arr1elms.reduceRight(f); + reportCompare(expect + '', actual + '', testdesc + ' : ' + expect); + + testdesc = 'Test reduce of 2 element array with no initializer.'; + expect = '(1+2)'; + actual = arr2elms.reduce(f); + reportCompare(expect + '', actual + '', testdesc + ' : ' + expect); + + testdesc = 'Test reduce of 2 element array with initializer.'; + expect = '((a+1)+2)'; + actual = arr2elms.reduce(f,'a'); + reportCompare(expect + '', actual + '', testdesc + ' : ' + expect); + + testdesc = 'Test reduceRight of 2 element array with no initializer.'; + expect = '(2+1)'; + actual = arr2elms.reduceRight(f); + reportCompare(expect + '', actual + '', testdesc + ' : ' + expect); + + testdesc = 'Test reduceRight of 2 element array with no initializer.'; + expect = '((a+2)+1)'; + actual = arr2elms.reduceRight(f,'a'); + reportCompare(expect + '', actual + '', testdesc + ' : ' + expect); +} diff --git a/js/src/tests/non262/regress/regress-363040-02.js b/js/src/tests/non262/regress/regress-363040-02.js new file mode 100644 index 0000000000..043b7db779 --- /dev/null +++ b/js/src/tests/non262/regress/regress-363040-02.js @@ -0,0 +1,64 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 363040; +var summary = 'Array.prototype.reduce application in array flattening'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + function flatten(arr) + { + function op(partial, item) + { + if (item instanceof Array) + Array.prototype.push.apply(partial, flatten(item)); + else + partial.push(item); + + return partial; + } + + return arr.reduce(op, []); + } + + expect = [1, 2, 3]; + actual = flatten([1, 2, 3]); // [1, 2, 3] + reportCompare(expect + '', actual + '', summary + ': ' + expect); + + expect = [1, 2, 3]; + actual = flatten([1, [2], 3]); // [1, 2, 3] + reportCompare(expect + '', actual + '', summary + ': ' + expect); + + expect = [2, 3]; + actual = flatten([[], 2, 3]); // [2, 3] + reportCompare(expect + '', actual + '', summary + ': ' + expect); + + expect = [1, 2, 3]; + actual = flatten([[1], 2, 3]); // [1, 2, 3] + reportCompare(expect + '', actual + '', summary + ': ' + expect); + + expect = [4]; + actual = flatten([[[[4]]]]); // [4] + reportCompare(expect + '', actual + '', summary + ': ' + expect); + + expect = [1, 2, 3]; + actual = flatten([1, [2, [3]]]); // [1, 2, 3] + reportCompare(expect + '', actual + '', summary + ': ' + expect); + + expect = []; + actual = flatten([[[[[]]]]]); // [] + reportCompare(expect + '', actual + '', summary + ': ' + expect); +} diff --git a/js/src/tests/non262/regress/regress-3649-n.js b/js/src/tests/non262/regress/regress-3649-n.js new file mode 100644 index 0000000000..71f184d702 --- /dev/null +++ b/js/src/tests/non262/regress/regress-3649-n.js @@ -0,0 +1,32 @@ +// |reftest| random -- may cause 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; + +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/non262/regress/regress-366122.js b/js/src/tests/non262/regress/regress-366122.js new file mode 100644 index 0000000000..e47f202d19 --- /dev/null +++ b/js/src/tests/non262/regress/regress-366122.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 = 366122; +var summary = 'Compile large script'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-366468.js b/js/src/tests/non262/regress/regress-366468.js new file mode 100644 index 0000000000..3c84c0331f --- /dev/null +++ b/js/src/tests/non262/regress/regress-366468.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 = 366468; +var summary = 'Set property without setter'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + function o(){} o.prototype = {get foo() {}}; obj = new o(); obj.foo = 2; + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-366601.js b/js/src/tests/non262/regress/regress-366601.js new file mode 100644 index 0000000000..9b1f4865a2 --- /dev/null +++ b/js/src/tests/non262/regress/regress-366601.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 = 366601; +var summary = 'Switch with more than 64k atoms'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-367561-01.js b/js/src/tests/non262/regress/regress-367561-01.js new file mode 100644 index 0000000000..acdc256673 --- /dev/null +++ b/js/src/tests/non262/regress/regress-367561-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 = 367561; +var summary = 'JSOP_(GET|SET)METHOD and JSOP_SETCONST with > 64K atoms'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-367561-03.js b/js/src/tests/non262/regress/regress-367561-03.js new file mode 100644 index 0000000000..17ca443f8f --- /dev/null +++ b/js/src/tests/non262/regress/regress-367561-03.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 = 367561; +var summary = 'JSOP_(GET|SET)METHOD and JSOP_SETCONST with > 64K atoms'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-369666-01.js b/js/src/tests/non262/regress/regress-369666-01.js new file mode 100644 index 0000000000..b86f10908b --- /dev/null +++ b/js/src/tests/non262/regress/regress-369666-01.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 = 369666; +var summary = 'inner function declaration in let-induced outer ' + + 'function body gets wrong scope.'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + function foo() { + let x = 42 + + function bar() { + return x; + } + + return bar; + } + + print(foo()()); + + baz = false; + + function foo2() { + let x = 42 + + function bar() { + return x; + } + + try { + if (baz) + return bar; + } finally { + print('finally', x); + } + return bar; + } + + print(foo2()()); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-369666-02.js b/js/src/tests/non262/regress/regress-369666-02.js new file mode 100644 index 0000000000..b8e2dfb74f --- /dev/null +++ b/js/src/tests/non262/regress/regress-369666-02.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 = 369666; +var summary = 'inner function declaration in let-induced outer ' + + 'function body gets wrong scope.'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + function foo() { + let x = 42 + + function bar() { + return x; + } + + return bar; + } + + print(foo()()); + + baz = false; + + function foo2() { + let x = 42 + + function bar() { + return x; + } + + function bletch() { + return x * x; + } + + try { + if (baz) + return bar; + } finally { + print('finally', x); + } + return bletch; + } + + print(foo2()()); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-372364.js b/js/src/tests/non262/regress/regress-372364.js new file mode 100644 index 0000000000..0806bfc0ae --- /dev/null +++ b/js/src/tests/non262/regress/regress-372364.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 = 372364; +var summary = 'Incorrect error message "() has no properties"'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-373827-01.js b/js/src/tests/non262/regress/regress-373827-01.js new file mode 100644 index 0000000000..d14e9be207 --- /dev/null +++ b/js/src/tests/non262/regress/regress-373827-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 = 373827; +var summary = 'Do not assert: OBJ_GET_CLASS(cx, obj)->flags & JSCLASS_HAS_PRIVATE'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + { let [] = [{x: function(){}}]; }; + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-373827-02.js b/js/src/tests/non262/regress/regress-373827-02.js new file mode 100644 index 0000000000..675f1bf591 --- /dev/null +++ b/js/src/tests/non262/regress/regress-373827-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 = 373827; +var summary = 'Do not assert: OBJ_GET_CLASS(cx, obj)->flags & JSCLASS_HAS_PRIVATE'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + { let [] = [{x: function(){}}]; }; foo; + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-373843.js b/js/src/tests/non262/regress/regress-373843.js new file mode 100644 index 0000000000..677e333534 --- /dev/null +++ b/js/src/tests/non262/regress/regress-373843.js @@ -0,0 +1,13 @@ +// Any copyright is dedicated to the Public Domain. +// http://creativecommons.org/licenses/publicdomain/ + +if (typeof disassemble != 'undefined') +{ + var func = disassemble(function() { return "c\\d"; }) + + // The disassembled function will contain a bytecode "string" with the content of the string next to it. + // Check if that string isn't over-escaped i.e. \\ isn't escaped to \\\\ . + assertEq(func.indexOf("\\\\\\\\"), -1) +} + +reportCompare(0, 0, 'ok'); diff --git a/js/src/tests/non262/regress/regress-379245.js b/js/src/tests/non262/regress/regress-379245.js new file mode 100644 index 0000000000..428f7afe7a --- /dev/null +++ b/js/src/tests/non262/regress/regress-379245.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 = 379245; +var summary = 'inline calls'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-379442.js b/js/src/tests/non262/regress/regress-379442.js new file mode 100644 index 0000000000..8f30f75a1f --- /dev/null +++ b/js/src/tests/non262/regress/regress-379442.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 = 379442; +var summary = 'Regression from bug 368224'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + reportCompare(expect, actual, summary); + + (function () { ({ y: [] } = {}); }); +} diff --git a/js/src/tests/non262/regress/regress-379483.js b/js/src/tests/non262/regress/regress-379483.js new file mode 100644 index 0000000000..fdf1624838 --- /dev/null +++ b/js/src/tests/non262/regress/regress-379483.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 = 379483; +var summary = 'Do not assert: top < ss->printer->script->depth'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function () { try { } catch([e]) { [1]; } }); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-383674.js b/js/src/tests/non262/regress/regress-383674.js new file mode 100644 index 0000000000..293d8a556d --- /dev/null +++ b/js/src/tests/non262/regress/regress-383674.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 = 383674; +var summary = 'Statement that implicitly calls toString should not be optimized away as a "useless expression"'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + 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'); + } +} diff --git a/js/src/tests/non262/regress/regress-383682.js b/js/src/tests/non262/regress/regress-383682.js new file mode 100644 index 0000000000..0d242d0354 --- /dev/null +++ b/js/src/tests/non262/regress/regress-383682.js @@ -0,0 +1,33 @@ +/* -*- 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + function f(s) { + return this.eval(s); + } + + expect = 'PASS'; + f("function g() { return('PASS'); }"); + actual = g(); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-383902.js b/js/src/tests/non262/regress/regress-383902.js new file mode 100644 index 0000000000..ed95597460 --- /dev/null +++ b/js/src/tests/non262/regress/regress-383902.js @@ -0,0 +1,41 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + */ + +var c = 0; + +function f(a) { + const b = a; + try { + eval('"use strict"; b = 1 + a; c = 1'); + assertEq(0, 1); + } catch (e) { + assertEq(e.name, 'TypeError'); + assertEq(0, c); + assertEq(a, b); + } +} + +var w = 42; +f(w); + +c = 2; +try { + eval('"use strict"; function g(x) { const y = x; y = 1 + x; } c = 3'); +} catch (e) { + assertEq(0, 1); +} + +c = 4; +try { + eval('"use strict"; const z = w; z = 1 + w; c = 5'); + assertEq(0, 1); +} catch (e) { + assertEq(e.name, 'TypeError'); + assertEq(4, c); + assertEq('z' in this, false); +} + +reportCompare(0, 0, "ok"); diff --git a/js/src/tests/non262/regress/regress-385393-04.js b/js/src/tests/non262/regress/regress-385393-04.js new file mode 100644 index 0000000000..1277ddffa7 --- /dev/null +++ b/js/src/tests/non262/regress/regress-385393-04.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 = 385393; +var summary = 'Regression test for bug 385393'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + 'a'.replace(/a/g, eval); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-387951-01.js b/js/src/tests/non262/regress/regress-387951-01.js new file mode 100644 index 0000000000..93b32f6916 --- /dev/null +++ b/js/src/tests/non262/regress/regress-387951-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 = 387951; +var summary = 'Do not assert: cg->stackDepth >= 0'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + if (delete (0 ? 3 : {})); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-387951-02.js b/js/src/tests/non262/regress/regress-387951-02.js new file mode 100644 index 0000000000..f02c4354c8 --- /dev/null +++ b/js/src/tests/non262/regress/regress-387951-02.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 = 387951; +var summary = 'Do not assert: cg->stackDepth >= 0'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + "" + (function() { if(delete(null?0:{})){[]} }); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-387951-03.js b/js/src/tests/non262/regress/regress-387951-03.js new file mode 100644 index 0000000000..7370b2f283 --- /dev/null +++ b/js/src/tests/non262/regress/regress-387951-03.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 = 387951; +var summary = 'Do not assert: cg->stackDepth >= 0'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + switch(delete[null?0:{}]){default:} + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-39309.js b/js/src/tests/non262/regress/regress-39309.js new file mode 100644 index 0000000000..dd7156a453 --- /dev/null +++ b/js/src/tests/non262/regress/regress-39309.js @@ -0,0 +1,73 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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() +{ + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i 2 && time > time2 * 5) + throw "A possible leak is observed"; + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-406769.js b/js/src/tests/non262/regress/regress-406769.js new file mode 100644 index 0000000000..3a9eee80d0 --- /dev/null +++ b/js/src/tests/non262/regress/regress-406769.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/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 406769; +var summary = 'Regression from bug 398609 caused infinite loop'; +var actual = ''; +var expect = ''; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-407024.js b/js/src/tests/non262/regress/regress-407024.js new file mode 100644 index 0000000000..dc0fb45ee5 --- /dev/null +++ b/js/src/tests/non262/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: "+String(result); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/non262/regress/regress-407727-01.js b/js/src/tests/non262/regress/regress-407727-01.js new file mode 100644 index 0000000000..f92113f5e2 --- /dev/null +++ b/js/src/tests/non262/regress/regress-407727-01.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 = 407727; +var summary = 'let Object global redeclaration'; +var actual = ''; +var expect = 1; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +let Object = 1; +actual = Object; +reportCompare(expect, actual, summary); diff --git a/js/src/tests/non262/regress/regress-407727-02.js b/js/src/tests/non262/regress/regress-407727-02.js new file mode 100644 index 0000000000..bcc7a38ab8 --- /dev/null +++ b/js/src/tests/non262/regress/regress-407727-02.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 = 407727; +var summary = 'let Object block redeclaration'; +var actual = ''; +var expect = 1; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +{ + let Object = 1; + actual = Object; + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-410649.js b/js/src/tests/non262/regress/regress-410649.js new file mode 100644 index 0000000000..2f8c552ea4 --- /dev/null +++ b/js/src/tests/non262/regress/regress-410649.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 = 410649; +var summary = 'function statement and destructuring parameter name clash'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + function f(a) { + function a() { } + return a; + } + + function g([a, b]) { + function a() { } + return a; + } + + expect = 'function'; + actual = typeof f(1); + reportCompare(expect, actual, "type for simple parameter case"); + + expect = 'function'; + actual = typeof g([1, 2]); + reportCompare(expect, actual, "type for destructuring parameter case"); +} diff --git a/js/src/tests/non262/regress/regress-410852.js b/js/src/tests/non262/regress/regress-410852.js new file mode 100644 index 0000000000..98bfb99046 --- /dev/null +++ b/js/src/tests/non262/regress/regress-410852.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: Robert Sayre + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 410852; +var summary = 'Valgrind errors in jsemit.cpp'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-414553.js b/js/src/tests/non262/regress/regress-414553.js new file mode 100644 index 0000000000..6ae0ed9a3f --- /dev/null +++ b/js/src/tests/non262/regress/regress-414553.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 = 414553; +var summary = ''; + +printBugNumber(BUGNUMBER); +printStatus(summary); + +var expected = '1,2,3,4'; + +let a = 1, [b,c] = [2,3], d = 4; +var actual = String([a,b,c,d]); + +reportCompare(expected, actual, 'destructuring assignment in let'); + +function f() { + { + let a = 1, [b,c] = [2,3], d = 4; + return String([a,b,c,d]); + } +} + +reportCompare(expected, f(), 'destructuring assignment in let inside func'); diff --git a/js/src/tests/non262/regress/regress-416737-01.js b/js/src/tests/non262/regress/regress-416737-01.js new file mode 100644 index 0000000000..e55a5366ef --- /dev/null +++ b/js/src/tests/non262/regress/regress-416737-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 = 416737; +var summary = 'Do not assert: *pc == JSOP_GETARG'; +var actual = ''; +var expect = ''; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function() { (function([]){ function n(){} })(1) }); + + reportCompare(expect, actual, summary); +} + diff --git a/js/src/tests/non262/regress/regress-416737-02.js b/js/src/tests/non262/regress/regress-416737-02.js new file mode 100644 index 0000000000..e1bb84ff30 --- /dev/null +++ b/js/src/tests/non262/regress/regress-416737-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 = 416737; +var summary = 'Do not assert: *pc == JSOP_GETARG'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + var f = function([]){ function n(){} }; + if (typeof dis == 'function') + { + dis(f); + } + print(f); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-417893.js b/js/src/tests/non262/regress/regress-417893.js new file mode 100644 index 0000000000..330858c0e6 --- /dev/null +++ b/js/src/tests/non262/regress/regress-417893.js @@ -0,0 +1,35 @@ +// |reftest| skip-if(!Object.prototype.toSource) + +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If 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() +{ + 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); +} diff --git a/js/src/tests/non262/regress/regress-418540.js b/js/src/tests/non262/regress/regress-418540.js new file mode 100644 index 0000000000..855ec1e593 --- /dev/null +++ b/js/src/tests/non262/regress/regress-418540.js @@ -0,0 +1,51 @@ +// |reftest| skip-if(xulRuntime.shell||(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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + gDelayTestDriverEnd = true; + window.onload = boom; +} + +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/non262/regress/regress-418641.js b/js/src/tests/non262/regress/regress-418641.js new file mode 100644 index 0000000000..616412eb26 --- /dev/null +++ b/js/src/tests/non262/regress/regress-418641.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 = 418641; +var summary = '++ and -- correctness'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function get_pre_check(operand, op) +{ + return "{\n"+ + " "+operand+" = I;\n"+ + " let tmp = "+op+op+operand+";\n"+ + " if ("+operand+" !== Number(I) "+op+" 1)\n"+ + " throw Error('"+op+op+operand+" case 1 for '+JSON.stringify(I));\n"+ + " if (tmp !== "+operand+")\n"+ + " throw Error('"+op+op+operand+" case 2 for '+JSON.stringify(I));\n"+ + "}\n"; +} + +function get_post_check(operand, op) +{ + return "{\n"+ + " "+operand+" = I;\n"+ + " let tmp = "+operand+op+op+";\n"+ + " if ("+operand+" !== Number(I) "+op+" 1)\n"+ + " throw Error('"+operand+op+op+" case 1 for '+JSON.stringify(I));\n"+ + " if (tmp !== Number(I))\n"+ + " throw Error('"+op+op+operand+" case 2 for '+JSON.stringify(I));\n"+ + "}\n"; +} + +function get_check_source(operand) +{ + return get_pre_check(operand, '+')+ + get_pre_check(operand, '-')+ + get_post_check(operand, '+')+ + get_post_check(operand, '-'); +} + +var arg_check = Function('I', 'a', get_check_source('a')); +var let_check = Function('I', 'let a;'+get_check_source('a')); +var var_check = Function('I', 'var a;'+get_check_source('a')); + +var my_name; +var my_obj = {}; +var my_index = 0; +var name_check = Function('I', get_check_source('my_name')); +var prop_check = Function('I', get_check_source('my_obj.x')); +var elem_check = Function('I', get_check_source('my_obj[my_index]')); + +var test_values = [0 , 0.5, -0.0, (1 << 30) - 1, 1 - (1 << 30)]; + +for (let i = 0; i != test_values.length; i = i + 1) { + let x = [test_values[i], String(test_values[i])]; + for (let j = 0; j != x.length; j = j + 1) { + try + { + expect = actual = 'No Error'; + let test_value = x[j]; + arg_check(test_value, 0); + let_check(test_value); + var_check(test_value); + name_check(test_value); + prop_check(test_value); + elem_check(test_value); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': ' + i + ', ' + j); + } +} diff --git a/js/src/tests/non262/regress/regress-419018.js b/js/src/tests/non262/regress/regress-419018.js new file mode 100644 index 0000000000..43627cb677 --- /dev/null +++ b/js/src/tests/non262/regress/regress-419018.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 = 419018; +var summary = 'UMR in JSENUMERATE_INIT'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} + diff --git a/js/src/tests/non262/regress/regress-419152.js b/js/src/tests/non262/regress/regress-419152.js new file mode 100644 index 0000000000..64ab7d7380 --- /dev/null +++ b/js/src/tests/non262/regress/regress-419152.js @@ -0,0 +1,54 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 419152; +var summary = 'Shaver can not contain himself'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + var a = [1,2,3]; + + a[5] = 6; + expect = '1,2,3,,,6:6'; + actual = a + ':' + a.length; + reportCompare(expect, actual, summary + ': 1'); + + a = [1,2,3,4]; + expect = 'undefined'; + actual = a[-1] + ''; + reportCompare(expect, actual, summary + ': 2'); + + a = [1,2,3]; + a[-1] = 55; + + expect = 3; + actual = a.length; + reportCompare(expect, actual, summary + ': 3'); + + expect = '1,2,3'; + actual = a + ''; + reportCompare(expect, actual, summary + ': 4'); + + expect = 55; + actual = a[-1]; + reportCompare(expect, actual, summary + ': 5'); + + var s = "abcdef"; + + expect = 'undefined'; + actual = s[-2] + ''; + reportCompare(expect, actual, summary + ': 6'); +} diff --git a/js/src/tests/non262/regress/regress-419803.js b/js/src/tests/non262/regress/regress-419803.js new file mode 100644 index 0000000000..11d0d85440 --- /dev/null +++ b/js/src/tests/non262/regress/regress-419803.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 = 419803; +var summary = 'Do not assert: sprop->parent == scope->lastProp'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var i=0; i<2; ++i) ({ p: 5, p: 7 }); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-420087.js b/js/src/tests/non262/regress/regress-420087.js new file mode 100644 index 0000000000..9184059434 --- /dev/null +++ b/js/src/tests/non262/regress/regress-420087.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 = 420087; +var summary = 'Do not assert: PCVCAP_MAKE(sprop->shape, 0, 0) == entry->vcap'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + var dict; + + for (var i = 0; i < 2; i++) + dict = {p: 1, q: 1, p:1}; + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-420610.js b/js/src/tests/non262/regress/regress-420610.js new file mode 100644 index 0000000000..a74d216553 --- /dev/null +++ b/js/src/tests/non262/regress/regress-420610.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 = 420610; +var summary = 'Do not crash with eval("this.x")'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +(function(){ eval("this.x") })(); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/non262/regress/regress-420919.js b/js/src/tests/non262/regress/regress-420919.js new file mode 100644 index 0000000000..9ef95a9ebf --- /dev/null +++ b/js/src/tests/non262/regress/regress-420919.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 = 420919; +var summary = 'this.u.v = 1 should report this.u is undefined'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = /TypeError: (this.u is undefined|can't access property "v", this.u is undefined)/; + + try + { + this.u.v = 1; + } + catch(ex) + { + actual = ex + ''; + } + reportMatch(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-422348.js b/js/src/tests/non262/regress/regress-422348.js new file mode 100644 index 0000000000..9a35e22d6a --- /dev/null +++ b/js/src/tests/non262/regress/regress-422348.js @@ -0,0 +1,35 @@ +// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64|aarch64|ppc64|ppc64le|s390x|mips64|loongarch64|riscv64/)) -- 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() +{ + 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); +} diff --git a/js/src/tests/non262/regress/regress-424311.js b/js/src/tests/non262/regress/regress-424311.js new file mode 100644 index 0000000000..ce4ff74c85 --- /dev/null +++ b/js/src/tests/non262/regress/regress-424311.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 = 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function(){(function(){ constructor=({}); })()})(); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-425360.js b/js/src/tests/non262/regress/regress-425360.js new file mode 100644 index 0000000000..6daf871022 --- /dev/null +++ b/js/src/tests/non262/regress/regress-425360.js @@ -0,0 +1,32 @@ +// |reftest| skip-if(xulRuntime.shell||(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); + +gDelayTestDriverEnd = true; +window.onerror = null; +setTimeout('finishtest()', 1000); +window.onload = (function () { setInterval('throwBlah()', 0); }); +setInterval('foo(', 0); diff --git a/js/src/tests/non262/regress/regress-426827.js b/js/src/tests/non262/regress/regress-426827.js new file mode 100644 index 0000000000..8b80d40895 --- /dev/null +++ b/js/src/tests/non262/regress/regress-426827.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 = 426827; +var summary = 'Do not assert: !(CodeSpec[op2].format & JOF_DEL)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + eval('eval()=delete a;'); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-427798.js b/js/src/tests/non262/regress/regress-427798.js new file mode 100644 index 0000000000..db889f3522 --- /dev/null +++ b/js/src/tests/non262/regress/regress-427798.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 = 427798; +var summary = 'js_PutBlockObject is slow'; +var actual = 'Good result'; +var expect = 'Good result'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + function f(N) + { + for (var i = 0; i != N; ++i) { + var f, g; + { + let j = i + 1; + f = function() { j += 2; return j; } + if (f() != i + 3) + throw "Bad result"; + } + if (f() != i + 5) + throw "Bad result"; + { + let j = i + 1, k = i + 2; + f = function() { j += 2; k++; return j + k; } + if (f() != i + i + 6) + throw "Bad result"; + } + if (f() != i + i + 9) + throw "Bad result"; + } + } + + try + { + f(20*1000); + } + catch(ex) + { + actual = ex + ''; + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-428366.js b/js/src/tests/non262/regress/regress-428366.js new file mode 100644 index 0000000000..13a6699fd3 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-433279-01.js b/js/src/tests/non262/regress/regress-433279-01.js new file mode 100644 index 0000000000..f64223169b --- /dev/null +++ b/js/src/tests/non262/regress/regress-433279-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 = 433279; +var summary = 'Do not assert: pn != tc->parseContext->nodeList'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + var { sin, PI } = Math; sin(PI / 2); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-433279-02.js b/js/src/tests/non262/regress/regress-433279-02.js new file mode 100644 index 0000000000..742c8caef2 --- /dev/null +++ b/js/src/tests/non262/regress/regress-433279-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 = 433279; +var summary = 'Do not assert: pn != tc->parseContext->nodeList'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + eval('var {a} = b; c(d + 1);'); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-433279-03.js b/js/src/tests/non262/regress/regress-433279-03.js new file mode 100644 index 0000000000..ad7227059a --- /dev/null +++ b/js/src/tests/non262/regress/regress-433279-03.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 = 433279; +var summary = 'Do not assert: pn != tc->parseContext->nodeList'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + eval('({a}) = b; with({}) { for(let y in z) { } }'); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-438415-01.js b/js/src/tests/non262/regress/regress-438415-01.js new file mode 100644 index 0000000000..5e881c071d --- /dev/null +++ b/js/src/tests/non262/regress/regress-438415-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 = 438415; +var summary = 'Do not assert: *vp != JSVAL_HOLE'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + [1,,].pop(); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-438415-02.js b/js/src/tests/non262/regress/regress-438415-02.js new file mode 100644 index 0000000000..208eed571e --- /dev/null +++ b/js/src/tests/non262/regress/regress-438415-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 = 438415; +var summary = 'Do not assert: *vp != JSVAL_HOLE'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'zero'; + Array.prototype[0] = 'zero'; + var a = []; + a.length = 1; + actual = a.pop(); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-440926.js b/js/src/tests/non262/regress/regress-440926.js new file mode 100644 index 0000000000..6c1f9099c1 --- /dev/null +++ b/js/src/tests/non262/regress/regress-440926.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 = 440926; +var summary = 'Correctly match regexps with special "i" characters'; +var actual = ''; +var expect = 'iI#,iI#;iI#,iI#'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-441477-01.js b/js/src/tests/non262/regress/regress-441477-01.js new file mode 100644 index 0000000000..333a407da0 --- /dev/null +++ b/js/src/tests/non262/regress/regress-441477-01.js @@ -0,0 +1,39 @@ +/* -*- 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 = 441477-01; +var summary = ''; +var actual = 'No Exception'; +var expect = 'No Exception'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + for (i = 0; i < 5;) + { + if (i > 5) + throw "bad"; + i++; + continue; + } + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-442333-01.js b/js/src/tests/non262/regress/regress-442333-01.js new file mode 100644 index 0000000000..4ddc31f1dc --- /dev/null +++ b/js/src/tests/non262/regress/regress-442333-01.js @@ -0,0 +1,34 @@ +/* -*- 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 = 442333; +var summary = 'Remove eval\'s optional second argument'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'ReferenceError: a is not defined'; + var o = {a : 1}; + + try + { + eval('a', o); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-449627.js b/js/src/tests/non262/regress/regress-449627.js new file mode 100644 index 0000000000..f50fd29e2a --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-449666.js b/js/src/tests/non262/regress/regress-449666.js new file mode 100644 index 0000000000..0a9ce9f9aa --- /dev/null +++ b/js/src/tests/non262/regress/regress-449666.js @@ -0,0 +1,62 @@ +/* -*- 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() +{ + 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() +{ + 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); +} + diff --git a/js/src/tests/non262/regress/regress-450833.js b/js/src/tests/non262/regress/regress-450833.js new file mode 100644 index 0000000000..507c25e4d1 --- /dev/null +++ b/js/src/tests/non262/regress/regress-450833.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 = 450833; +var summary = 'TM: Multiple trees per entry point'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-451322.js b/js/src/tests/non262/regress/regress-451322.js new file mode 100644 index 0000000000..b740d51aaf --- /dev/null +++ b/js/src/tests/non262/regress/regress-451322.js @@ -0,0 +1,34 @@ +// |reftest| 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() +{ + 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); +} diff --git a/js/src/tests/non262/regress/regress-451884.js b/js/src/tests/non262/regress/regress-451884.js new file mode 100644 index 0000000000..9d57e65a50 --- /dev/null +++ b/js/src/tests/non262/regress/regress-451884.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 = 451884; +var summary = 'Do not crash [@ QuoteString]'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + (function(k){eval("k.y")})(); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-451946.js b/js/src/tests/non262/regress/regress-451946.js new file mode 100644 index 0000000000..b64c05a873 --- /dev/null +++ b/js/src/tests/non262/regress/regress-451946.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 = 451946; +var summary = 'Do not crash with SELinux execheap protection'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-452008.js b/js/src/tests/non262/regress/regress-452008.js new file mode 100644 index 0000000000..7931696b27 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452008.js @@ -0,0 +1,148 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If 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() +{ + 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); +} diff --git a/js/src/tests/non262/regress/regress-452170.js b/js/src/tests/non262/regress/regress-452170.js new file mode 100644 index 0000000000..156ade04d5 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452170.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 = 452170; +var summary = 'Do not assert with JIT: (*m != JSVAL_INT) || isInt32(*vp)'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 4; ++j) { (-0).toString(); } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452189.js b/js/src/tests/non262/regress/regress-452189.js new file mode 100644 index 0000000000..811fe5fbdd --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-452333.js b/js/src/tests/non262/regress/regress-452333.js new file mode 100644 index 0000000000..a1d4527681 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452333.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 = 452333; +var summary = 'Do not crash with JIT: @ js_SkipWhiteSpace'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j = 0; j < 5; ++j) { (typeof 3/0); } })(); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452336.js b/js/src/tests/non262/regress/regress-452336.js new file mode 100644 index 0000000000..e42c5a209a --- /dev/null +++ b/js/src/tests/non262/regress/regress-452336.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 = 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 4; ++j) { [1].x++; } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452346.js b/js/src/tests/non262/regress/regress-452346.js new file mode 100644 index 0000000000..10f8e9f987 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452346.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 = 452346; +var summary = 'Do not crash: @ Balloc'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var j=0;j<2;++j) (0.1).toPrecision(30); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452491.js b/js/src/tests/non262/regress/regress-452491.js new file mode 100644 index 0000000000..a02ed51b94 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452491.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 = 452491; +var summary = 'Do not crash with JIT: with new'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j=0;j<5;++j) (new (function(q) { return q; })).a; + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452495.js b/js/src/tests/non262/regress/regress-452495.js new file mode 100644 index 0000000000..ae07f37a14 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-452498-006.js b/js/src/tests/non262/regress/regress-452498-006.js new file mode 100644 index 0000000000..4f40d887fe --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-006.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #6 From Andreas Gal :gal + + function foo() { + var x = 4; + var f = (function() { return x++; }); + var g = (function() { return x++; }); + return [f,g]; + } + + var bar = foo(); + + expect = '9'; + actual = 0; + + bar[0](); + bar[1](); + + actual = String(expect); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-027.js b/js/src/tests/non262/regress/regress-452498-027.js new file mode 100644 index 0000000000..e5e19d5ca0 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-027.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '5'; + +// ------- Comment #27 From Brendan Eich + + function f(x){function g(y) { return x+y; } return g} + g = f(2); + + actual = String(g(3)); + + reportCompare(expect, actual, summary); +} + + + diff --git a/js/src/tests/non262/regress/regress-452498-030.js b/js/src/tests/non262/regress/regress-452498-030.js new file mode 100644 index 0000000000..3ca998b4af --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-030.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #30 From Mike Shaver + + function f() { var i = 0; var i = 5; } + f(); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-040.js b/js/src/tests/non262/regress/regress-452498-040.js new file mode 100644 index 0000000000..e0d9827a1d --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-040.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #40 From Jesse Ruderman + + function m() + { + function a() { } + function b() { a(); } + this.c = function () { b(); } + } + (new m).c(); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-050.js b/js/src/tests/non262/regress/regress-452498-050.js new file mode 100644 index 0000000000..6989837f97 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-050.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #50 From Jason Orendorff + +// Do not crash + +// compiler bug when a block introduces no names + { let {}={}; } + + try + { +// compiler incorrectly emits GETLOCAL for first `x`, +// triggering decompiler assertion + while (x.y) { let x; } + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-051.js b/js/src/tests/non262/regress/regress-452498-051.js new file mode 100644 index 0000000000..3c7fa532d4 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-051.js @@ -0,0 +1,45 @@ +/* -*- 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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #51 From Jason Orendorff + +// Assertion failure: UPVAR_FRAME_SKIP(uva->vector[i]) == 0 +// at ../jsopcode.cpp:2791 +// +// when decompiling the eval code, which is: +// +// main: +// 00000: 10 getupvar 0 +// 00003: 10 getprop "y" +// 00006: 10 popv +// 00007: 10 stop + try + { + function f() { var x; eval("x.y"); } + f(); + } + catch(ex) + { + } + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-052-a.js b/js/src/tests/non262/regress/regress-452498-052-a.js new file mode 100644 index 0000000000..fdba2e8335 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-052-a.js @@ -0,0 +1,39 @@ +// |reftest| skip-if(Android) +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: Jason Orendorff + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #52 From Jason Orendorff + + +// Assertion failure: pn_arity == PN_FUNC || pn_arity == PN_NAME, at ../jsparse.h:444 +// Here the function node has been morphed into a JSOP_TRUE node, but we're in +// FindFunArgs poking it anyway. + if (typeof timeout == 'function') + { + expectExitCode(6); + timeout(3); + while(function(){}); + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-053.js b/js/src/tests/non262/regress/regress-452498-053.js new file mode 100644 index 0000000000..749e53e0cd --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-053.js @@ -0,0 +1,77 @@ +/* -*- 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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #53 From Jason Orendorff + +// Assertion failure: (slot) < (uint32_t)(obj)->dslots[-1] +// at ../jsobj.cpp:5559 +// On the last line of BindLet, we have +// JS_SetReservedSlot(cx, blockObj, index, PRIVATE_TO_JSVAL(pn)); +// but this uses reserved slots as though they were unlimited. +// blockObj only has 2. + { let a=0, b=1, c=2; } + +// In RecycleTree at ../jsparse.cpp:315, we hit +// MOZ_CRASH("RecycleUseDefKids"); +// pn->pn_type is TOK_UNARYOP +// pn->pn_op is JSOP_XMLNAME +// pn->pn_defn is 1 +// pn->pn_used is 1 + try + { + true; 0; + } + catch(ex) + { + } +// Calls LinkUseToDef with pn->pn_defn == 1. +// +// If you say "var x;" first, then run this case, it gets further, +// crashing in NoteLValue like the first case in comment 52. +// + try + { + for (var [x] in y) var x; + } + catch(ex) + { + } +// Assertion failure: !pn2->pn_defn, at ../jsparse.h:461 +// Another case where some optimization is going on. + try + { + if (true && foo) ; + } + catch(ex) + { + } +// Assertion failure: scope->object == ctor +// in js_FastNewObject at ../jsbuiltins.cpp:237 +// +// With the patch, we're new-ing a different function each time, and the +// .prototype property is missing. +// + for (var z = 0; z < 3; z++) { (new function(){}); } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-058.js b/js/src/tests/non262/regress/regress-452498-058.js new file mode 100644 index 0000000000..a1e7520271 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-058.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #58 From Gary Kwong [:nth10sd] + + function foo(x) { var x = x } + +// Assertion failure: dn->kind() == ((data->op == JSOP_DEFCONST) ? JSDefinition::CONST : JSDefinition::VAR), at ../jsparse.cpp:2595 + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-062.js b/js/src/tests/non262/regress/regress-452498-062.js new file mode 100644 index 0000000000..95db7aa8dd --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-062.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #62 From Gary Kwong [:nth10sd] + + try + { + eval( + '(function(){' + + ' var x;' + + ' this.init_by_array = function()' + + ' x = 0;' + + '})();' + ); + } + catch(ex) + { + } + +// Assertion failure: ATOM_IS_STRING(atom), at ../jsinterp.cpp:5686 + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-063.js b/js/src/tests/non262/regress/regress-452498-063.js new file mode 100644 index 0000000000..68a8f97a7a --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-063.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #63 From Brendan Eich + + function f(that) { + for (ix in this) + print(ix); + for (let ix in that) + ; + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-071.js b/js/src/tests/non262/regress/regress-452498-071.js new file mode 100644 index 0000000000..791c40317c --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-071.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #71 From Jesse Ruderman + + x; var x +// Assertion failure: pn->pn_op == JSOP_NOP, at ../jsparse.cpp:1118 + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-072.js b/js/src/tests/non262/regress/regress-452498-072.js new file mode 100644 index 0000000000..93ecef16aa --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-072.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #72 From Jesse Ruderman + + v = function p() { delete p; }; +// Assertion failure: JOF_OPTYPE(op) == JOF_ATOM, at ../jsemit.cpp:1711 + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-073.js b/js/src/tests/non262/regress/regress-452498-073.js new file mode 100644 index 0000000000..72475dc897 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-073.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #73 From Jesse Ruderman + + try + { + eval('function() { var arguments }'); + } + catch(ex) + { + } + +// Assertion failure: (uintN)i < ss->top, at ../jsopcode.cpp:2801 + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-074.js b/js/src/tests/non262/regress/regress-452498-074.js new file mode 100644 index 0000000000..bb80553b09 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-074.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '1'; + +// ------- Comment #74 From Jesse Ruderman + + const [d] = [1]; print(actual = d); + + actual = String(actual); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-075.js b/js/src/tests/non262/regress/regress-452498-075.js new file mode 100644 index 0000000000..97caea200e --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-075.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #75 From Jesse Ruderman + + (function p(){ p = 3; }); + (function p(){ p = 3; return p; })() +// Assertion failure: regs.sp == StackBase(fp), at ../jsinterp.cpp:2980 + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-076.js b/js/src/tests/non262/regress/regress-452498-076.js new file mode 100644 index 0000000000..e9d4f49023 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-076.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #76 From Jesse Ruderman + + for (let d = 0; d < 4; ++d) { d; } +// 1: ReferenceError: d is not defined + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-079.js b/js/src/tests/non262/regress/regress-452498-079.js new file mode 100644 index 0000000000..4768b3d707 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-079.js @@ -0,0 +1,31 @@ +/* -*- 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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #79 From Jason Orendorff + + x; var x; function x() { return 0; } + +// Assertion failure: !(pn->pn_dflags & flag), at ../jsparse.h:635 + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-082.js b/js/src/tests/non262/regress/regress-452498-082.js new file mode 100644 index 0000000000..b8869cf547 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-082.js @@ -0,0 +1,77 @@ +/* -*- 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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #82 From Gary Kwong [:nth10sd] + +// ===== + + (function(){function x(){} {let x = [] }}); + +// ===== + + var f = new Function("new function x(){ return x |= function(){} } ([], function(){})"); + "" + f; + +// ===== + + function g(code) + { + var f = new Function(code); + f(); + } + g("for (var x = 0; x < 3; ++x)(new (function(){})());"); + +// ===== + try + { + eval( + 'for(let [\n' + + 'function x () { M:if([1,,]) }\n' + ); + } + catch(ex) + { + } + +// ===== + + try + { + function foo(code) + { + var c; + eval("const c, x5 = c;"); + } + foo(); + } + catch(ex) + { + } + +// ===== + + var f = new Function("[] = [( '' )()];"); + "" + f; + +// ===== + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-092.js b/js/src/tests/non262/regress/regress-452498-092.js new file mode 100644 index 0000000000..5fe86a9b0f --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-092.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #92 From Jesse Ruderman + + expect = 'SyntaxError: redeclaration of formal parameter e'; + try + { + eval('(function (e) { var e; const e = undefined; });'); + } + catch(ex) + { + actual = ex + ''; + } +// Without patch: "SyntaxError: redeclaration of var e" +// expected new behavior // With patch: "SyntaxError: redeclaration of formal parameter e:" + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-102.js b/js/src/tests/non262/regress/regress-452498-102.js new file mode 100644 index 0000000000..05fa0bc148 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-102.js @@ -0,0 +1,66 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #102 From Gary Kwong [:nth10sd] + +// ===== + + (function(){function x(){} function x() { return y; }})(); + +// Assertion failure: JOF_OPTYPE(op) == JOF_ATOM, at ../jsemit.cpp:1710 + +// ===== + function f() { + "" + (function(){ + for( ; [function(){}] ; x = 0) + with({x: ""}) { + const x = [] + }}); + } + f(); + +// Assertion failure: ss->top - saveTop <= 1U, at ../jsopcode.cpp:2156 + +// ===== + + try + { + function f() { + var x; + eval("const x = [];"); + } + f(); + } + catch(ex) + { + } +// Assertion failure: regs.sp == StackBase(fp), at ../jsinterp.cpp:2984 + +// Assertion failure: cg->staticLevel >= level, at ../jsemit.cpp:2014 +// Crash [@ BindNameToSlot] in opt without -j + +// ===== + + reportCompare(expect, actual, summary); +} + + + diff --git a/js/src/tests/non262/regress/regress-452498-104.js b/js/src/tests/non262/regress/regress-452498-104.js new file mode 100644 index 0000000000..3d48b694de --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-104.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #104 From Jesse Ruderman + + (function(a) { function b() { a; } function a() { } })(); +// Assertion failure: pn_defn, at ../jsparse.h:655 + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-111.js b/js/src/tests/non262/regress/regress-452498-111.js new file mode 100644 index 0000000000..558ad018fa --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-111.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #111 From Gary Kwong [:nth10sd] + +new Function("{function x(){}}"); + +// Assertion failure: pn->pn_defn || (fun->flags & JSFUN_LAMBDA), at ../jsemit.cpp:4149 + + reportCompare(expect, actual, summary); +} + + diff --git a/js/src/tests/non262/regress/regress-452498-112.js b/js/src/tests/non262/regress/regress-452498-112.js new file mode 100644 index 0000000000..1d45cba317 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-112.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #112 From Jesse Ruderman + + expect = 'ReferenceError: can\'t access lexical declaration \'q\' before initialization'; + + try + { + q = new Function("(function() { q(3); })(); const q = undefined;"); q(); + } + catch(ex) + { + actual = ex + ''; + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-114-a.js b/js/src/tests/non262/regress/regress-452498-114-a.js new file mode 100644 index 0000000000..c3a2f0340e --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-114-a.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #114 From Gary Kwong [:nth10sd] + + if (typeof timeout == 'function') + { + timeout(3); + try + { + eval('while(x|={}) with({}) const x;'); + } + catch(ex) + { + } + reportCompare(expect, actual, ''); + } + +// Assertion failure: cg->stackDepth >= 0, at ../jsemit.cpp:185 + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-114.js b/js/src/tests/non262/regress/regress-452498-114.js new file mode 100644 index 0000000000..99e62e0c83 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-114.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #114 From Gary Kwong [:nth10sd] + + for (var x = 0; x < 3; ++x){ y = function (){} } + +// glorp! +// Assertion failed: "Constantly false guard detected": 0 (../nanojit/LIR.cpp:999) +// (note, this is with -j; I don't know what the glorp! message is about.) + +// ===== + function y([{x: x, y}]){} + +// Assertion failure: UPVAR_FRAME_SKIP(pn->pn_cookie) == (pn->pn_defn ? cg->staticLevel : 0), at ../jsemit.cpp:3547 + +// ===== + + try + { + eval("(1.3.__defineGetter__(\"\"));let (y, x) { var z = true, x = 0; }"); + } + catch(ex) + { + } +// Assertion failure: ATOM_IS_STRING(atom), at ../jsinterp.cpp:5691 + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-116.js b/js/src/tests/non262/regress/regress-452498-116.js new file mode 100644 index 0000000000..e77d65208b --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-116.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #116 From Gary Kwong [:nth10sd] + +// -j + (new Function("for (var x = 0; x < 3; ++x) { (function(){})() } "))(); + +//Crash [@ js_IsActiveWithOrBlock] + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-117.js b/js/src/tests/non262/regress/regress-452498-117.js new file mode 100644 index 0000000000..b933da02b6 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-117.js @@ -0,0 +1,78 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #117 From Gary Kwong [:nth10sd] + +// The following all do not require -j. + +// ===== + + try + { + eval('x; function x(){}; const x = undefined;'); + } + catch(ex) + { + } + +// Assertion failure: !pn->isPlaceholder(), at ../jsparse.cpp:4876 +// ===== + (function(){ var x; eval("var x; x = null"); })(); + +// Assertion failure: !(pnu->pn_dflags & PND_BOUND), at ../jsemit.cpp:1818 +// ===== + (function(){const x = 0, y = delete x;})() + +// Assertion failure: n != 0, at ../jsfun.cpp:2689 +// ===== + try + { + eval('(function(){{for(c in (function (){ for(x in (x1))window} )()) {const x = undefined;} }})();'); + } + catch(ex) + { + } + +// Assertion failure: (fun->u.i.script)->upvarsOffset != 0, at ../jsfun.cpp:1537 +// Opt crash [@ js_NewFlatClosure] near null +// ===== + "" + function(){for(var [x] in x1) ([]); function x(){}} + +// Assertion failure: cg->stackDepth == stackDepth, at ../jsemit.cpp:3664 +// Opt crash [@ JS_ArenaRealloc] near null +// ===== + try + { + eval( + "for (a in (function(){" + + " for (let x of ['']) { return new function x1 (\u3056) { yield x } ();" + + " }})())" + + " function(){}" + ); + } + catch(ex) + { + } +// Crash [@ js_Interpret] near null +// ===== + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-118.js b/js/src/tests/non262/regress/regress-452498-118.js new file mode 100644 index 0000000000..ac6ac88a9a --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-118.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #118 From Jesse Ruderman + + (function() { (function() { e *= 4; })(); var e; })(); + +//Without patch: no output +//With patch: ReferenceError: reference to undefined property "e" + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-121.js b/js/src/tests/non262/regress/regress-452498-121.js new file mode 100644 index 0000000000..d5e942a75e --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-121.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #121 From Gary Kwong [:nth10sd] + +// without -j + x = function() { return x; }; + +// Assertion failure: !(pn->pn_dflags & flag), at ../jsparse.h:651 + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-123.js b/js/src/tests/non262/regress/regress-452498-123.js new file mode 100644 index 0000000000..f68e64836d --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-123.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + +// ------- Comment #123 From Gary Kwong [:nth10sd] + +// Does not require -j: +// ===== + try + { + eval('y = (function (){y} for (x in []);'); + } + catch(ex) + { + } + +// Assertion failure: !(pn->pn_dflags & flag), at ../jsparse.h:651 +// ===== + (function(){for(var x in [arguments]){} function x(){}})(); + +// Assertion failure: dn->pn_defn, at ../jsemit.cpp:1873 +// ===== + + +// Requires -j: +// ===== + (function(){ eval("for (x in ['', {}, '', {}]) { this; }" )})(); + +// Assertion failure: fp->thisp == fp->argv[-1].toObjectOrNull(), at ../jstracer.cpp:4172 +// ===== + for (let x of ['', '', '']) { (new function(){} )} + +// Assertion failure: scope->object == ctor, at ../jsbuiltins.cpp:236 +// Opt crash [@ js_FastNewObject] near null +// ===== + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-129.js b/js/src/tests/non262/regress/regress-452498-129.js new file mode 100644 index 0000000000..455b11392e --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-129.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #129 From Gary Kwong [:nth10sd] + +// Does not require -j: +// ===== +try { + eval("({ set x x () { for(x in function(){}){}} })"); +} catch (e) +{ +} + +// Assertion failure: JOF_OPTYPE(op) == JOF_ATOM, at ../jsemit.cpp:1710 +// ===== + +try +{ + (function (){ eval("(function(){delete !function(){}});"); })(); +} +catch(ex) +{ +} +// Debug crash [@ JSParseNode::isFunArg] at null +// Opt crash [@ FindFunArgs] near null +// ===== + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-131.js b/js/src/tests/non262/regress/regress-452498-131.js new file mode 100644 index 0000000000..4787f26dcf --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-131.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #131 From Gary Kwong [:nth10sd] + +// Does not require -j: +// ===== + try + { + eval('((__defineGetter__, function (x) { function x(){} }) for'); + } + catch(ex) + { + } +// Assertion failure: pn->pn_cookie == FREE_UPVAR_COOKIE, at ../jsparse.cpp:5698 +// ===== + try + { + eval('( "" ? 1.3 : x); *::*; x::x;'); + } + catch(ex) + { + } +// Assertion failure: pn != dn->dn_uses, at ../jsparse.cpp:1171 +// ===== + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-135.js b/js/src/tests/non262/regress/regress-452498-135.js new file mode 100644 index 0000000000..591d2fab91 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-135.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// ------- Comment #135 From Gary Kwong [:nth10sd] + +// -j is not required: +// === + + for (let i = 0; i < 9; ++i) { + let m = i; + if (i % 3 == 1) { + print('' + (function() { return m; })()); + } + } + +// Debug & opt crash [@ BindNameToSlot] + +// -j is required: +// === + for (let a=0;a<3;++a) for (let b=0;b<3;++b) if ((g=a|(a%b))) with({}){} + +// Assertion failure: OBJ_IS_CLONED_BLOCK(obj), at ../jsobj.cpp:2392 + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-155.js b/js/src/tests/non262/regress/regress-452498-155.js new file mode 100644 index 0000000000..d259ff5059 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-155.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + delete (1 ? window : function(){}); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-160.js b/js/src/tests/non262/regress/regress-452498-160.js new file mode 100644 index 0000000000..8035002fad --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-160.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + +//------- Comment #160 From Gary Kwong + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// Assertion failure: JOF_OPTYPE(op) == JOF_ATOM, at ../jsemit.cpp:5916 + ({ set z(v){}, set y(v) { return --x; }, set w(v) { return --w; } }); + reportCompare(expect, actual, summary + ': 3'); +} diff --git a/js/src/tests/non262/regress/regress-452498-168-1.js b/js/src/tests/non262/regress/regress-452498-168-1.js new file mode 100644 index 0000000000..0b1c492933 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-168-1.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + +//------- Comment #168 From Gary Kwong + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// Assertion failure: (fun->u.i.script)->upvarsOffset != 0, at ../jsfun.cpp:1543 + + ( + new Function("const x = (function () { if (1e+81){} else{x} } )" + ))(); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-168-2.js b/js/src/tests/non262/regress/regress-452498-168-2.js new file mode 100644 index 0000000000..c3f150300a --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-168-2.js @@ -0,0 +1,29 @@ +// |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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + +//------- Comment #168 From Gary Kwong + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// Assertion failure: cg->upvars.lookup(atom), at ../jsemit.cpp:2047 + + for (let x; __defineSetter__; (<{x}> for (x in x))) {} + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-176.js b/js/src/tests/non262/regress/regress-452498-176.js new file mode 100644 index 0000000000..a370592adf --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-176.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + +//------- Comment #176 From Gary Kwong + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// Assertion failure: pn_arity == PN_FUNC || pn_arity == PN_NAME, at ../jsparse.h:449 + + if(delete( 5 ? [] : (function(){})() )) []; + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-181.js b/js/src/tests/non262/regress/regress-452498-181.js new file mode 100644 index 0000000000..9e69dcd14c --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-181.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + +//------- Comment #181 From Jesse Ruderman + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 3; + + (function(print) { delete print; })(); print(actual = 3); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-185.js b/js/src/tests/non262/regress/regress-452498-185.js new file mode 100644 index 0000000000..0c0d2a33c2 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-185.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + +//------- Comment #185 From Jesse Ruderman + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'SyntaxError: redeclaration of var e'; + try + { + eval('{ var e = 3; let e = ""; } print(typeof e);'); + } + catch(ex) + { + actual = ex + ''; + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-187.js b/js/src/tests/non262/regress/regress-452498-187.js new file mode 100644 index 0000000000..dd04f1f899 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-187.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + +//------- Comment #187 From Jesse Ruderman + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + eval('const x = undefined; for (x in []);'); + } + catch(ex) + { + actual = ex + ''; + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-191.js b/js/src/tests/non262/regress/regress-452498-191.js new file mode 100644 index 0000000000..20b9bdadc9 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-191.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + +//------- Comment #191 From Brendan Eich + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = actual = 'No Error'; + try + { + eval('{ var x; {let x;} }'); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); + + expect = 'SyntaxError: redeclaration of let x'; + try + { + eval('{ let x; {var x;} }'); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452498-192.js b/js/src/tests/non262/regress/regress-452498-192.js new file mode 100644 index 0000000000..c3f534e08a --- /dev/null +++ b/js/src/tests/non262/regress/regress-452498-192.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 = 452498; +var summary = 'TM: upvar2 regression tests'; +var actual = ''; +var expect = ''; + +//------- Comment #192 From Brendan Eich + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + let x; + with({x: (x -= 0)}){([]); const x = undefined; } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452573-01.js b/js/src/tests/non262/regress/regress-452573-01.js new file mode 100644 index 0000000000..6192939433 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452573-01.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 = 452573; +var summary = 'Do not assert with JIT: boxed.isUndefined() || boxed.isBoolean()'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for(var j=0;j<5;++j) typeof void /x/; + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452573-02.js b/js/src/tests/non262/regress/regress-452573-02.js new file mode 100644 index 0000000000..b765f3c179 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452573-02.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 = 452573; +var summary = 'Do not assert with JIT: "(((rmask(rr) & FpRegs) != 0))"'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for(var j=0;j<5;++j) typeof void 1; + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452703.js b/js/src/tests/non262/regress/regress-452703.js new file mode 100644 index 0000000000..e86f2625fa --- /dev/null +++ b/js/src/tests/non262/regress/regress-452703.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 = 452703; +var summary = 'Do not assert with JIT: rmask(rr)&FpRegs'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +printBugNumber(BUGNUMBER); +printStatus (summary); + + +(function() { for(let y in [0,1,2,3,4]) y = NaN; })(); + + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/non262/regress/regress-452713.js b/js/src/tests/non262/regress/regress-452713.js new file mode 100644 index 0000000000..754394f548 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452713.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 = 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 5; ++j) { if (''[-1]) { } } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452724-01.js b/js/src/tests/non262/regress/regress-452724-01.js new file mode 100644 index 0000000000..43ce14720a --- /dev/null +++ b/js/src/tests/non262/regress/regress-452724-01.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 = 452724; +var summary = 'Do not assert with JIT: (rmask(rr) & FpRegs) != 0'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j=0;j<5;++j) { (0/0) in this; } })() + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452724-02.js b/js/src/tests/non262/regress/regress-452724-02.js new file mode 100644 index 0000000000..f2dd3d84a5 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452724-02.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 = 452724; +var summary = 'Do not crash with JIT: @TraceRecorder::getThis'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j=0;j<5;++j) { (0/0) in this; } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452742-01.js b/js/src/tests/non262/regress/regress-452742-01.js new file mode 100644 index 0000000000..7d1b675f07 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452742-01.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 = 452742; +var summary = 'Do not do overzealous eval inside function optimization in BindNameToSlot'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-452742-02.js b/js/src/tests/non262/regress/regress-452742-02.js new file mode 100644 index 0000000000..6b6f5c0606 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452742-02.js @@ -0,0 +1,53 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If 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() +{ + 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); +} diff --git a/js/src/tests/non262/regress/regress-452853.js b/js/src/tests/non262/regress/regress-452853.js new file mode 100644 index 0000000000..6de2d5ac53 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452853.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 = 452853; +var summary = 'Do not crash in simple loop with array'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j=0; j<4; ++j) { var a = ["", ""]; a[0] * a[1]; } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452884-01.js b/js/src/tests/non262/regress/regress-452884-01.js new file mode 100644 index 0000000000..587bc30d19 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452884-01.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 = 452884; +var summary = 'Do not crash in switch'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j=0;j<5;++j) { switch(1.1) { case NaN: case 2: } } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452884-02.js b/js/src/tests/non262/regress/regress-452884-02.js new file mode 100644 index 0000000000..bc1c1608a8 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452884-02.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 = 452884; +var summary = 'Do not crash in switch'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j=0;j<5;++j) { switch(1.1) { case 2: case NaN: } } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-452960.js b/js/src/tests/non262/regress/regress-452960.js new file mode 100644 index 0000000000..4fe6531db4 --- /dev/null +++ b/js/src/tests/non262/regress/regress-452960.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 = 452960; +var summary = 'Do not assert with JIT: !v.isPrimitive()'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + var f = function(){}; + f.prototype = false; + for (let j=0;j<5;++j) { new f; } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-453024.js b/js/src/tests/non262/regress/regress-453024.js new file mode 100644 index 0000000000..9740ca916b --- /dev/null +++ b/js/src/tests/non262/regress/regress-453024.js @@ -0,0 +1,35 @@ +// |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/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 453024; +var summary = 'Do not assert: vp + 2 + argc <= (jsval *) cx->stackPool.current->avail'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +gDelayTestDriverEnd = true; +var j = 0; + +function 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(); +} + +window.addEventListener('load', test, false); diff --git a/js/src/tests/non262/regress/regress-453049.js b/js/src/tests/non262/regress/regress-453049.js new file mode 100644 index 0000000000..ab74cd5828 --- /dev/null +++ b/js/src/tests/non262/regress/regress-453049.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 = 453049; +var summary = 'Do not assert with JIT: (*m != JSVAL_INT) || isInt32(*vp)'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + var z = 0; for (let j = 0; j < 5; ++j) { ({p: (-z)}); } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-453051.js b/js/src/tests/non262/regress/regress-453051.js new file mode 100644 index 0000000000..bf314e7271 --- /dev/null +++ b/js/src/tests/non262/regress/regress-453051.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 = 453051; +var summary = 'Do not assert with JIT: !(((*pc == JSOP_GOTO) || (*pc == JSOP_GOTOX)) && (exitType != LOOP_EXIT))'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var p in this){} for (let a in [5,6,7]) for (var b=0;b<1;++b) break; + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-453173.js b/js/src/tests/non262/regress/regress-453173.js new file mode 100644 index 0000000000..0129c6a054 --- /dev/null +++ b/js/src/tests/non262/regress/regress-453173.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 = 453173; +var summary = 'Do not Crash with JIT [@ TraceRecorder::record_JSOP_ENDINIT] with "[,]"'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + var i; + + + for(i=0;i<4;++i) [,]; + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-453397.js b/js/src/tests/non262/regress/regress-453397.js new file mode 100644 index 0000000000..5e3309446b --- /dev/null +++ b/js/src/tests/non262/regress/regress-453397.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 = 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() +{ + 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); +} diff --git a/js/src/tests/non262/regress/regress-453701.js b/js/src/tests/non262/regress/regress-453701.js new file mode 100644 index 0000000000..c38148770c --- /dev/null +++ b/js/src/tests/non262/regress/regress-453701.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 = 453701; +var summary = 'Do not assert with JIT: (rmask(rr) & FpRegs) != 0'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j = 0; j < 5; ++j) { (1).hasOwnProperty(""); } })(); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-453747.js b/js/src/tests/non262/regress/regress-453747.js new file mode 100644 index 0000000000..93d54237b9 --- /dev/null +++ b/js/src/tests/non262/regress/regress-453747.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 = 453747; +var summary = 'Do not assert with JIT: boxed.isUndefined() || boxed.isBoolean()'; +var actual = 'No Crash'; +var expect = 'No Crash'; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-454682.js b/js/src/tests/non262/regress/regress-454682.js new file mode 100644 index 0000000000..39ef5bdc09 --- /dev/null +++ b/js/src/tests/non262/regress/regress-454682.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 = 454682; +var summary = 'Do not crash with JIT in MatchRegExp'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + var a = new String("foo"); + for (i = 0; i < 300; i++) { + a.match(/bar/); + } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-454981.js b/js/src/tests/non262/regress/regress-454981.js new file mode 100644 index 0000000000..9af3525569 --- /dev/null +++ b/js/src/tests/non262/regress/regress-454981.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 = 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() +{ + 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); +} diff --git a/js/src/tests/non262/regress/regress-455605.js b/js/src/tests/non262/regress/regress-455605.js new file mode 100644 index 0000000000..edb3ceb06a --- /dev/null +++ b/js/src/tests/non262/regress/regress-455605.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 = 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 4; ++j) { switch(0/0) { } } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-455748.js b/js/src/tests/non262/regress/regress-455748.js new file mode 100644 index 0000000000..5f67290f56 --- /dev/null +++ b/js/src/tests/non262/regress/regress-455748.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 = 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 5; ++j) { if([1][-0]) { } } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-455758-01.js b/js/src/tests/non262/regress/regress-455758-01.js new file mode 100644 index 0000000000..0536d3b4cc --- /dev/null +++ b/js/src/tests/non262/regress/regress-455758-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 = 455758; +var summary = 'Do not assert: (m != JSVAL_INT) || isInt32(*vp)'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j = 0; j < 5; ++j) { var t = 3 % (-0); } })(); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-455758-02.js b/js/src/tests/non262/regress/regress-455758-02.js new file mode 100644 index 0000000000..3426720b43 --- /dev/null +++ b/js/src/tests/non262/regress/regress-455758-02.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 = 455758; +var summary = 'Do not crash: divide by zero'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j = 0; j < 5; ++j) { 3 % (-0); } })(); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-455775.js b/js/src/tests/non262/regress/regress-455775.js new file mode 100644 index 0000000000..4267bb6946 --- /dev/null +++ b/js/src/tests/non262/regress/regress-455775.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 = 455775; +var summary = 'Do not assert: cx->fp->flags & JSFRAME_EVAL'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + (function() { var c; eval("new (c ? 1 : {});"); })(); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-455981-01.js b/js/src/tests/non262/regress/regress-455981-01.js new file mode 100644 index 0000000000..fa43a28894 --- /dev/null +++ b/js/src/tests/non262/regress/regress-455981-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 = 455981; +var summary = 'Do not assert: entry->localKind == JSLOCAL_ARG'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'SyntaxError: duplicate argument names not allowed in this context'; + + try + { + eval('(function ({a, b, c, d, e, f, g, h, q}, q) { })'); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-455981-02.js b/js/src/tests/non262/regress/regress-455981-02.js new file mode 100644 index 0000000000..cefa0dfdf8 --- /dev/null +++ b/js/src/tests/non262/regress/regress-455981-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 = 455981; +var summary = 'Do not assert: entry->localKind == JSLOCAL_ARG'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'SyntaxError: duplicate argument names not allowed in this context'; + + try + { + eval('(function ({a: {b: bb, c: cc, d: dd}, m: [x, n, o, p]}, x) {});'); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-456470.js b/js/src/tests/non262/regress/regress-456470.js new file mode 100644 index 0000000000..11d79b9ce2 --- /dev/null +++ b/js/src/tests/non262/regress/regress-456470.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 = 456470; +var summary = 'TM: Make sure JSOP_DEFLOCALFUN pushes the right function object.'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-456477-01.js b/js/src/tests/non262/regress/regress-456477-01.js new file mode 100644 index 0000000000..209a0ffdef --- /dev/null +++ b/js/src/tests/non262/regress/regress-456477-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 = 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 5; ++j) { var t = (0 / 0) % (-1); } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-456477-02.js b/js/src/tests/non262/regress/regress-456477-02.js new file mode 100644 index 0000000000..4b98952dd3 --- /dev/null +++ b/js/src/tests/non262/regress/regress-456477-02.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 = 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j = 0; j < 5; ++j) { (0 / 0) % (-1); } })(); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-456494.js b/js/src/tests/non262/regress/regress-456494.js new file mode 100644 index 0000000000..ecf21db0ad --- /dev/null +++ b/js/src/tests/non262/regress/regress-456494.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 = 456494; +var summary = 'Do not crash with apply and argc > nargs'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + function k(s) + { + } + function f() + { + for (i = 0; i < 10; i++) + { + k.apply(this, arguments); + } + } + f(1); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-456540-01.js b/js/src/tests/non262/regress/regress-456540-01.js new file mode 100644 index 0000000000..ac1c42ea87 --- /dev/null +++ b/js/src/tests/non262/regress/regress-456540-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 = 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 5; ++j) { var t = ((-1) % "" ); } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-456540-02.js b/js/src/tests/non262/regress/regress-456540-02.js new file mode 100644 index 0000000000..41d685ffc1 --- /dev/null +++ b/js/src/tests/non262/regress/regress-456540-02.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 = 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { for (var j = 0; j < 5; ++j) { ((-1) % "" ); } })(); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-457065-01.js b/js/src/tests/non262/regress/regress-457065-01.js new file mode 100644 index 0000000000..51965d4bba --- /dev/null +++ b/js/src/tests/non262/regress/regress-457065-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 = 457065; +var summary = 'Do not assert: !fp->callee || fp->thisp == fp->argv[-1].toObjectOrNull()'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + var e = eval; + for (var a in this) { } + (function() { eval("this; for (let b in [0,1,2]) { }"); })(); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-457065-02.js b/js/src/tests/non262/regress/regress-457065-02.js new file mode 100644 index 0000000000..50b6e2f89d --- /dev/null +++ b/js/src/tests/non262/regress/regress-457065-02.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 = 457065; +var summary = 'Do not assert: !fp->callee || fp->thisp == fp->argv[-1].toObjectOrNull()'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function(){ eval('this'); (function(){ for(let y in [0,1,2]) 6;})(); })(); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-457065-03.js b/js/src/tests/non262/regress/regress-457065-03.js new file mode 100644 index 0000000000..4922deb2fc --- /dev/null +++ b/js/src/tests/non262/regress/regress-457065-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 = 457065; +var summary = 'Do not assert: !fp->callee || fp->thisp == fp->argv[-1].toObjectOrNull()'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (function() { + new function (){ for (var x = 0; x < 3; ++x){} }; + })(); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-457456.js b/js/src/tests/non262/regress/regress-457456.js new file mode 100644 index 0000000000..a54befc95d --- /dev/null +++ b/js/src/tests/non262/regress/regress-457456.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 = 457456; +var summary = 'Do not assert with JIT: cond->isCond()'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 4; ++j) { if (undefined < false) { } } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-457778.js b/js/src/tests/non262/regress/regress-457778.js new file mode 100644 index 0000000000..cf7829d85d --- /dev/null +++ b/js/src/tests/non262/regress/regress-457778.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 = 457778; +var summary = 'Do not assert with JIT: cond->isCond()'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 4; ++j) { if (undefined < false) { } } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-458076.js b/js/src/tests/non262/regress/regress-458076.js new file mode 100644 index 0000000000..fa70bda9b0 --- /dev/null +++ b/js/src/tests/non262/regress/regress-458076.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 = 458076; +var summary = 'Do not assert with JIT: !lhs->isQuad() && !rhs->isQuad()'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (let j = 0; j < 3; ++j) { true == 0; } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-458851.js b/js/src/tests/non262/regress/regress-458851.js new file mode 100644 index 0000000000..843bb4f2a7 --- /dev/null +++ b/js/src/tests/non262/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/non262/regress/regress-459085.js b/js/src/tests/non262/regress/regress-459085.js new file mode 100644 index 0000000000..627e8d1514 --- /dev/null +++ b/js/src/tests/non262/regress/regress-459085.js @@ -0,0 +1,31 @@ +/* -*- 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() +{ + 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); +} diff --git a/js/src/tests/non262/regress/regress-459185.js b/js/src/tests/non262/regress/regress-459185.js new file mode 100644 index 0000000000..10d2b3e473 --- /dev/null +++ b/js/src/tests/non262/regress/regress-459185.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 = 459185; +var summary = 'Do not assert: pn->pn_arity == PN_BINARY'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + for (var {a: []} in []) { } + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-459186.js b/js/src/tests/non262/regress/regress-459186.js new file mode 100644 index 0000000000..142255c5fa --- /dev/null +++ b/js/src/tests/non262/regress/regress-459186.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 = 459186; +var summary = 'Do not crash in CheckDestructuring'; +var actual = 'No Crash'; +var expect = 'No Crash'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + for (var [,{y}] in []) {} + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-459389.js b/js/src/tests/non262/regress/regress-459389.js new file mode 100644 index 0000000000..e63e064a0c --- /dev/null +++ b/js/src/tests/non262/regress/regress-459389.js @@ -0,0 +1,119 @@ +/* -*- 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 = 459389; +var summary = 'Do not crash with JIT'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +print('mmmm, food!'); + + +var SNI = {}; +SNI.MetaData={}; +SNI.MetaData.Parameter=function() +{ +var parameters={}; +this.addParameter=function(key,value) +{ +parameters[key]=[]; +parameters[key].push(value); +}; +this.getParameter=function(key,separator){ +if(!parameters[key]) +{ +return; +} +return parameters[key].join(separator); +}; +this.getKeys=function() +{ +return parameters; +}; +}; +SNI.MetaData.Manager=function(){ +var m=new SNI.MetaData.Parameter(); +this.getParameter=m.getParameter; +}; +var MetaDataManager=SNI.MetaData.Manager; +SNI.Ads={ }; +SNI.Ads.Url=function(){ +var p=new SNI.MetaData.Parameter(); +this.addParameter=p.addParameter; +this.getParameter=p.getParameter; +}; +function Ad() { +var url=new SNI.Ads.Url(); +this.addParameter=url.addParameter; +this.getParameter=url.getParameter; +} +function DartAd() { + return AdUrl.prototype=new Ad(); +} +function AdUrl() { } +function AdRestriction() { +var p=new SNI.MetaData.Parameter(); +this.addParameter=p.addParameter; +this.getParameter=p.getParameter; +this.getKeys=p.getKeys; +} +function AdRestrictionManager(){ +this.restriction=[]; +this.isActive=isActive; +this.isMatch=isMatch; +this.startMatch=startMatch; +function isActive(ad,mdm){ +var value=false; +for(var i=0;iscript, fp->regs->pc) == fp->regs->sp'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + if (typeof gczeal == 'function') + { + gczeal(2); + } + + for (let q = 0; q < 50; ++q) { + new Function("for (var i = 0; i < 5; ++i) { } ")(); + var w = "r".match(/r/); + new Function("for (var j = 0; j < 1; ++j) { } ")(); + } + + + if (typeof gczeal == 'function') + { + gczeal(0); + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-464862.js b/js/src/tests/non262/regress/regress-464862.js new file mode 100644 index 0000000000..cf555c76f9 --- /dev/null +++ b/js/src/tests/non262/regress/regress-464862.js @@ -0,0 +1,123 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 464862; +var summary = 'Do not assert: ( int32_t(delta) == uint8_t(delta) )'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +function ygTreeView(id) { + this.init(id); +} + +ygTreeView.prototype.init = function (id) {this.root = new ygRootNode(this);}; + +function ygNode() {} + +ygNode.prototype.nextSibling = null; + +ygNode.prototype.init = function (_32, _33, _34) { + this.children = []; + this.expanded = _34; + if (_33) { + this.tree = _33.tree; + this.depth = _33.depth + 1; + _33.appendChild(this); + } +}; + +ygNode.prototype.appendChild = function (_35) { + if (this.hasChildren()) { + var sib = this.children[this.children.length - 1]; + } + this.children[this.children.length] = _35; +}; + +ygNode.prototype.getElId = function () {}; + +ygNode.prototype.getNodeHtml = function () {}; + +ygNode.prototype.getToggleElId = function () {}; + +ygNode.prototype.getStyle = function () { + var loc = this.nextSibling ? "t" : "l"; + var _39 = "n"; + if (this.hasChildren(true)) {} +}; + +ygNode.prototype.hasChildren = function () {return this.children.length > 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/non262/regress/regress-464978.js b/js/src/tests/non262/regress/regress-464978.js new file mode 100644 index 0000000000..5fe2ae86ad --- /dev/null +++ b/js/src/tests/non262/regress/regress-464978.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 = 464978; +var summary = 'Do not hang with [] + null'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (let j = 0; j < 2; ++j) { [] + null; } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465013.js b/js/src/tests/non262/regress/regress-465013.js new file mode 100644 index 0000000000..de936645f2 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465013.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 = 465013; +var summary = ''; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-465132.js b/js/src/tests/non262/regress/regress-465132.js new file mode 100644 index 0000000000..7bb607411c --- /dev/null +++ b/js/src/tests/non262/regress/regress-465132.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 = 465132; +var summary = 'TM: Mathematical constants should be constant'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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]); + } +} diff --git a/js/src/tests/non262/regress/regress-465133.js b/js/src/tests/non262/regress/regress-465133.js new file mode 100644 index 0000000000..9fad075199 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465133.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 = 465133; +var summary = '{} < {}'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'false,false,false,false,false,'; + actual = ''; + + + for (var i=0;i<5;++i) actual += ({} < {}) + ','; + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465135.js b/js/src/tests/non262/regress/regress-465135.js new file mode 100644 index 0000000000..4af87514c7 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465135.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 = 465135; +var summary = 'true << true'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-465136.js b/js/src/tests/non262/regress/regress-465136.js new file mode 100644 index 0000000000..ef2b96a4f5 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465136.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 = 465136; +var summary = 'false == ""'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-465137.js b/js/src/tests/non262/regress/regress-465137.js new file mode 100644 index 0000000000..968b850be0 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465137.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 = 465137; +var summary = '!NaN is not false'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-465220.js b/js/src/tests/non262/regress/regress-465220.js new file mode 100644 index 0000000000..a17a23eae4 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465220.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 = 465220; +var summary = 'Do not assert: anti-nesting'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'TypeError: can\'t convert o to primitive type'; + + + try + { + var o = {toString: function() { return (i > 2) ? this : "foo"; }}; + var s = ""; + for (var i = 0; i < 5; i++) + s += o + o; + print(s); + actual = 'No Exception'; + } + catch(ex) + { + actual = 'TypeError: can\'t convert o to primitive type'; + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465234.js b/js/src/tests/non262/regress/regress-465234.js new file mode 100644 index 0000000000..adb8476a6f --- /dev/null +++ b/js/src/tests/non262/regress/regress-465234.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 = 465234; +var summary = '"" <= null'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = true; + actual = true; + + + for (let j = 0; j < 5; ++j) actual = actual && ("" <= null); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465236.js b/js/src/tests/non262/regress/regress-465236.js new file mode 100644 index 0000000000..7a07f17d57 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465236.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 = 465236; +var summary = 'TM: Do not assert: we should have converted to numbers already'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (let j = 0; j < 2; ++j) null <= null; + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465239.js b/js/src/tests/non262/regress/regress-465239.js new file mode 100644 index 0000000000..86033c362a --- /dev/null +++ b/js/src/tests/non262/regress/regress-465239.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 = 465239; +var summary = '"1e+81" ^ 3'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '3,3,3,3,3,'; + actual = ''; + + + for (let j = 0; j < 5; ++j) actual += ("1e+81" ^ 3) + ','; + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465241.js b/js/src/tests/non262/regress/regress-465241.js new file mode 100644 index 0000000000..852b3d0a00 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465241.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 = 465241; +var summary = '"0" in [3]'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = true; + actual = true; + + + for (let j = 0; j < 5; ++j) actual = actual && ("0" in [3]); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465249.js b/js/src/tests/non262/regress/regress-465249.js new file mode 100644 index 0000000000..643ab4dd3a --- /dev/null +++ b/js/src/tests/non262/regress/regress-465249.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 = 465249; +var summary = 'Do not assert: (m != JSVAL_INT) || isInt32(*vp)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + eval("for (let j = 0; j < 5; ++j) { (0x50505050) + (0x50505050); }"); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465261.js b/js/src/tests/non262/regress/regress-465261.js new file mode 100644 index 0000000000..daad5c793c --- /dev/null +++ b/js/src/tests/non262/regress/regress-465261.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 = 465261; +var summary = 'TM: Do not assert: '; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (let z = 0; z < 2; ++z) { + for (let x of [0, true, (void 0), 0, (void 0)]) { + if(x){} + } + }; + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465262.js b/js/src/tests/non262/regress/regress-465262.js new file mode 100644 index 0000000000..b3c3e83468 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465262.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 = 465262; +var summary = 'truthiness of (3 > null)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-465272.js b/js/src/tests/non262/regress/regress-465272.js new file mode 100644 index 0000000000..fe7c012f2e --- /dev/null +++ b/js/src/tests/non262/regress/regress-465272.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 = 465272; +var summary = 'subtraction'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-465308.js b/js/src/tests/non262/regress/regress-465308.js new file mode 100644 index 0000000000..553b98f6c9 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465308.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 = 465308; +var summary = '((0x60000009) * 0x60000009))'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '-1073741824,-1073741824,-1073741824,-1073741824,-1073741824,'; + + for (let j=0;j<5;++j) + print(actual += "" + (0 | ((0x60000009) * 0x60000009)) + ','); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465347.js b/js/src/tests/non262/regress/regress-465347.js new file mode 100644 index 0000000000..207b860fe6 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465347.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 = 465347; +var summary = 'Test integer to id in js_Int32ToId'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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'); +} diff --git a/js/src/tests/non262/regress/regress-465366.js b/js/src/tests/non262/regress/regress-465366.js new file mode 100644 index 0000000000..3c06e4251c --- /dev/null +++ b/js/src/tests/non262/regress/regress-465366.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 = 465366; +var summary = 'TM: JIT: error with multiplicative loop'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-465424.js b/js/src/tests/non262/regress/regress-465424.js new file mode 100644 index 0000000000..35a4dd3fe3 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465424.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 = 465424; +var summary = 'TM: issue with post-decrement operator'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '0,1,2,3,4,'; + + for (let j=0;j<5;++j) { jj=j; print(actual += '' + (jj--) + ',') } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465454.js b/js/src/tests/non262/regress/regress-465454.js new file mode 100644 index 0000000000..3cdc72dda8 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465454.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 = 465454; +var summary = 'TM: do not crash with type-unstable loop'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (let b of [(-1/0), new String(''), new String(''), null, (-1/0), + (-1/0), new String(''), new String(''), null]) '' + b; + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465460-01.js b/js/src/tests/non262/regress/regress-465460-01.js new file mode 100644 index 0000000000..b3a0cfbdb6 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465460-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 = 465460; +var summary = 'TM: valueOf in a loop'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '11111'; + + + (function(d) { for (let j = 0; j < 5; ++j) { actual += ('' + d); } })({valueOf: function() { return 1; }}); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465460-02.js b/js/src/tests/non262/regress/regress-465460-02.js new file mode 100644 index 0000000000..48a6cc1688 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465460-02.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 = 465460; +var summary = 'TM: valueOf in a loop: do not assert'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (let c of [null, null, null, {}]) { } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465460-03.js b/js/src/tests/non262/regress/regress-465460-03.js new file mode 100644 index 0000000000..0c5ac8cc24 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465460-03.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 = 465460; +var summary = 'TM: valueOf in a loop: do not assert'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (let j of [null, 2, 3]) { } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465460-04.js b/js/src/tests/non262/regress/regress-465460-04.js new file mode 100644 index 0000000000..497ee3be48 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465460-04.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 = 465460; +var summary = 'TM: valueOf in a loop: do not assert'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 3; ++j) { 1 & new Date; } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465460-05.js b/js/src/tests/non262/regress/regress-465460-05.js new file mode 100644 index 0000000000..f33d103dd4 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465460-05.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 = 465460; +var summary = 'TM: valueOf in a loop: do not assert'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 3; ++j) { 1 & Date; } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465460-06.js b/js/src/tests/non262/regress/regress-465460-06.js new file mode 100644 index 0000000000..e4ca0c1403 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465460-06.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 = 465460; +var summary = 'TM: valueOf in a loop: do not assert'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (let x of [1, {}, 1, null, 1, {}, 1, null, 1]) { } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465460-07.js b/js/src/tests/non262/regress/regress-465460-07.js new file mode 100644 index 0000000000..8c74fb5d50 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465460-07.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 = 465460; +var summary = 'TM: valueOf in a loop: do not assert'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = actual = 'pass'; + + try + { + e = {}; for (j=0;j<3;++j) { 3 | e; } "PASS"; + } + catch(ex) + { + actual = ex + ''; + } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465460-08.js b/js/src/tests/non262/regress/regress-465460-08.js new file mode 100644 index 0000000000..5eeea0c776 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465460-08.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 = 465460; +var summary = 'TM: valueOf in a loop: do not assert'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (let _ of [{}, {}, null, null, null, null]) { } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465460-10.js b/js/src/tests/non262/regress/regress-465460-10.js new file mode 100644 index 0000000000..779a1dea55 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465460-10.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 = 465460; +var summary = 'TM: valueOf in a loop: do not assert'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (let i = 0; i < 2; ++i) { ({}) + 3; } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465460-11.js b/js/src/tests/non262/regress/regress-465460-11.js new file mode 100644 index 0000000000..680b3d319d --- /dev/null +++ b/js/src/tests/non262/regress/regress-465460-11.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 = 465460; +var summary = 'TM: valueOf in a loop: do not assert'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (let d=0;d<2;++d) for (let a=0;a<1;++a) "" + (d && function(){}); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465460-12.js b/js/src/tests/non262/regress/regress-465460-12.js new file mode 100644 index 0000000000..fe0b1af3ee --- /dev/null +++ b/js/src/tests/non262/regress/regress-465460-12.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 = 465460; +var summary = 'TM: valueOf in a loop: do not assert'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (var j = 0; j < 2; ++j) { if (null > "") { } } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465483.js b/js/src/tests/non262/regress/regress-465483.js new file mode 100644 index 0000000000..056d9df297 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465483.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 = 465483; +var summary = 'Type instability leads to undefined being added as a string instead of as a number'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'NaN'; + + for (i of [4, 'a', 'b', (void 0)]) print(actual = '' + (i + i)); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465484.js b/js/src/tests/non262/regress/regress-465484.js new file mode 100644 index 0000000000..e4a598850b --- /dev/null +++ b/js/src/tests/non262/regress/regress-465484.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 = 465484; +var summary = 'TM: Do not assert: _allocator.active[FST0] && _fpuStkDepth == -1 || ' + + '!_allocator.active[FST0] && _fpuStkDepth == 0'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (let a of [2, 2, 2]) { a %= a; a %= a; } + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465567-01.js b/js/src/tests/non262/regress/regress-465567-01.js new file mode 100644 index 0000000000..862c2abe43 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465567-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 = 465567; +var summary = 'TM: Weirdness with var, let, multiple assignments'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +expect = '99999'; + + +for (let j = 0; j < 5; ++j) { + var e; + e = 9; + print(actual += '' + e); + e = 47; + if (e & 0) { + let e; + } +} + + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/non262/regress/regress-465567-02.js b/js/src/tests/non262/regress/regress-465567-02.js new file mode 100644 index 0000000000..821b66ff78 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465567-02.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 = 465567; +var summary = 'TM: Do not assert: JSVAL_TAG(v) == JSVAL_OBJECT'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + + +try +{ + eval("for (e of ['', true, 1, true, 1]) { e = null; if (0) { let e; var e; } }"); +} +catch(ex) +{ +} + + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/non262/regress/regress-465686.js b/js/src/tests/non262/regress/regress-465686.js new file mode 100644 index 0000000000..1b91fddb0a --- /dev/null +++ b/js/src/tests/non262/regress/regress-465686.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 = 465686; +var summary = 'Do not crash @ tiny_free_list_add_ptr'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (let b of [eval, eval, 4, 4]) { + ++b; + for (b of [(void 0), (void 0), (void 0), 3, (void 0), 3]) { + b ^= b; + for (var c of [1/0]) { + } + } + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-465688.js b/js/src/tests/non262/regress/regress-465688.js new file mode 100644 index 0000000000..acd68f44f5 --- /dev/null +++ b/js/src/tests/non262/regress/regress-465688.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 = 465688; +var summary = 'Do not assert: (m != JSVAL_INT) || isInt32(*vp),'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (let d of [-0x80000000, -0x80000000]) - -d; + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-466128.js b/js/src/tests/non262/regress/regress-466128.js new file mode 100644 index 0000000000..a9808b1a98 --- /dev/null +++ b/js/src/tests/non262/regress/regress-466128.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 = 466128; +var summary = 'Do not assert: !ti->stackTypeMap.matches(ti_other->stackTypeMap)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (let a = 0; a < 3; ++a) { + for (let b of [1, 2, "three", 4, 5, 6, 7, 8]) { + } + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-466262.js b/js/src/tests/non262/regress/regress-466262.js new file mode 100644 index 0000000000..76406345d4 --- /dev/null +++ b/js/src/tests/non262/regress/regress-466262.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 = 466262; +var summary = 'Do not assert: f == f->root'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + var e = 1; + for (var d = 0; d < 3; ++d) { + if (d == 2) { + e = ""; + } + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-466747.js b/js/src/tests/non262/regress/regress-466747.js new file mode 100644 index 0000000000..c1731dca49 --- /dev/null +++ b/js/src/tests/non262/regress/regress-466747.js @@ -0,0 +1,48 @@ +// |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/. */ + +//----------------------------------------------------------------------------- +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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + 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); +} diff --git a/js/src/tests/non262/regress/regress-466787.js b/js/src/tests/non262/regress/regress-466787.js new file mode 100644 index 0000000000..8096910eae --- /dev/null +++ b/js/src/tests/non262/regress/regress-466787.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 = 466787; +var summary = 'TM: new Number() should stay a number during recording'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '4444'; + + + for (let j = 0; j < 4; ++j) { for (let one of [new Number(1)]) { + print(actual += '' + (3 + one)); } } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-466905-01.js b/js/src/tests/non262/regress/regress-466905-01.js new file mode 100644 index 0000000000..1e039d24f8 --- /dev/null +++ b/js/src/tests/non262/regress/regress-466905-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 = 466905; +var summary = 'Do not assert: v_ins->isCall() && v_ins->callInfo() == &js_FastNewArray_ci'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + function f(a) { for (let c of a) [(c > 5) ? 'A' : 'B']; } + f([true, 8]); + f([2]); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-466905-02.js b/js/src/tests/non262/regress/regress-466905-02.js new file mode 100644 index 0000000000..cfcc1b3e14 --- /dev/null +++ b/js/src/tests/non262/regress/regress-466905-02.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 = 466905; +var summary = 'Do not assert: v_ins->isCall() && v_ins->callInfo() == &js_FastNewArray_ci'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var i = 0; i < 5; i++) + [(i > 3) ? 'a' : 'b']; + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-467495-01.js b/js/src/tests/non262/regress/regress-467495-01.js new file mode 100644 index 0000000000..da914db262 --- /dev/null +++ b/js/src/tests/non262/regress/regress-467495-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 = 467495; +var summary = 'Do not crash @ js_Interpret'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function() { x = 0; function x() { return 4; }; var x; const y = 1; })(); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-467495-02.js b/js/src/tests/non262/regress/regress-467495-02.js new file mode 100644 index 0000000000..957e7d7c4b --- /dev/null +++ b/js/src/tests/non262/regress/regress-467495-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 = 467495; +var summary = 'Do not crash @ js_Interpret'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + eval("(function(){const y = 1; function x() '' let functional, x})();"); + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-467495-03.js b/js/src/tests/non262/regress/regress-467495-03.js new file mode 100644 index 0000000000..5f8e756535 --- /dev/null +++ b/js/src/tests/non262/regress/regress-467495-03.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 = 467495; +var summary = 'TCF_FUN_CLOSURE_VS_VAR is necessary'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + function f(x) + { + actual = ''; + var g; + print(actual += typeof g + ','); + + if (x) + function g(){}; + + print(actual += g); + } + + expect = 'undefined,undefined'; + f(0); + + reportCompare(expect, actual, summary + ': f(0): '); + + expect = 'undefined,function g(){}'; + + f(1); + + reportCompare(expect, actual, summary + ': f(1): '); +} diff --git a/js/src/tests/non262/regress/regress-467495-04.js b/js/src/tests/non262/regress/regress-467495-04.js new file mode 100644 index 0000000000..d7227018ea --- /dev/null +++ b/js/src/tests/non262/regress/regress-467495-04.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 = 467495; +var summary = 'TCF_FUN_CLOSURE_VS_VAR is necessary'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + function g() { + if (1) + function x() {}; + var x; + const y = 1; + } + + try + { + g(); + } + catch(ex) + { + actual = ex + ''; + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-467495-05.js b/js/src/tests/non262/regress/regress-467495-05.js new file mode 100644 index 0000000000..f9089f354c --- /dev/null +++ b/js/src/tests/non262/regress/regress-467495-05.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 = 467495; +var summary = 'TCF_FUN_CLOSURE_VS_VAR is necessary'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = '1'; + + function g(x) { if (1) function x() {} return x; } + print(actual = g(1) + ''); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-467495-06.js b/js/src/tests/non262/regress/regress-467495-06.js new file mode 100644 index 0000000000..fc5ec361d9 --- /dev/null +++ b/js/src/tests/non262/regress/regress-467495-06.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 = 467495; +var summary = 'TCF_FUN_CLOSURE_VS_VAR is necessary'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + function f(x) + { + var y = 1; + if (Math) + function x() { } + if (Math) + function y() { } + return [x, y]; + } + + var r = f(0); + + if (typeof(r[0]) != "number") + actual += "Bad r[0]"; + + if (typeof(r[1]) != "function") + throw "Bad r[1]"; + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-468711.js b/js/src/tests/non262/regress/regress-468711.js new file mode 100644 index 0000000000..a771e4c625 --- /dev/null +++ b/js/src/tests/non262/regress/regress-468711.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 = 468711; +var summary = 'TM: Do not assert: !JS_ON_TRACE(cx)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + (5).toString(); for (let b of [3, this]) { b.toString(); } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-469044.js b/js/src/tests/non262/regress/regress-469044.js new file mode 100644 index 0000000000..6221106b65 --- /dev/null +++ b/js/src/tests/non262/regress/regress-469044.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 = 469044; +var summary = 'type unstable globals'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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'); +} diff --git a/js/src/tests/non262/regress/regress-469239-01.js b/js/src/tests/non262/regress/regress-469239-01.js new file mode 100644 index 0000000000..05de70dd91 --- /dev/null +++ b/js/src/tests/non262/regress/regress-469239-01.js @@ -0,0 +1,33 @@ +/* -*- 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 = 469239; +var summary = 'TM: Do not assert: entry->kpc == (jsbytecode*) atoms[index]'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (let b=0;b<9;++b) { + for (let h of ['', 3, /x/]) { + for (c of [[], [], [], /x/]) { + '' + c; + } + } + } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-469239-02.js b/js/src/tests/non262/regress/regress-469239-02.js new file mode 100644 index 0000000000..b36cd76ce2 --- /dev/null +++ b/js/src/tests/non262/regress/regress-469239-02.js @@ -0,0 +1,33 @@ +/* -*- 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 = 469239; +var summary = 'TM: Do not assert: ATOM_IS_STRING(atom)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + for (let b=0;b<9;++b) { + for (let h of [33, 3, /x/]) { + for (c of [[], [], [], /x/]) { + '' + c; + } + } + } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-469547.js b/js/src/tests/non262/regress/regress-469547.js new file mode 100644 index 0000000000..4cb0fc056a --- /dev/null +++ b/js/src/tests/non262/regress/regress-469547.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 = 469547; +var summary = 'Do not crash with: for (let [,] of [[], [], null]) {}'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + for (let [,] of [[], [], null]) {} + } + catch(ex) + { + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-469625-02.js b/js/src/tests/non262/regress/regress-469625-02.js new file mode 100644 index 0000000000..03751d5b54 --- /dev/null +++ b/js/src/tests/non262/regress/regress-469625-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: Jason Orendorff + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 469625; +var summary = 'group assignment with rhs containing holes'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'y'; + + Array.prototype[1] = 'y'; + var [x, y, z] = ['x', , 'z']; + + actual = y; + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-469625-03.js b/js/src/tests/non262/regress/regress-469625-03.js new file mode 100644 index 0000000000..28dc11c5d4 --- /dev/null +++ b/js/src/tests/non262/regress/regress-469625-03.js @@ -0,0 +1,38 @@ +/* -*- 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 = 469625; +var summary = 'Do not assert: script->objectsOffset != 0'; +var actual = ''; +var expect = ''; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + function f(x) { + var [a, b, [c0, c1]] = [x, x, x]; + } + + expect = /TypeError: .*\[\.\.\.\]\[Symbol.iterator\]\(\)\.next\(\)\.value is null/; + actual = 'No Error'; + try + { + f(null); + } + catch(ex) + { + actual = ex + ''; + } + reportMatch(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-469758.js b/js/src/tests/non262/regress/regress-469758.js new file mode 100644 index 0000000000..426f6010e2 --- /dev/null +++ b/js/src/tests/non262/regress/regress-469758.js @@ -0,0 +1,14 @@ +// Any copyright is dedicated to the Public Domain. +// http://creativecommons.org/licenses/publicdomain/ + +var err; +try { + {let i=1} + {let j=1; [][j][2]} +} catch (e) { + err = e; +} +assertEq(err instanceof TypeError, true); +assertEq(err.message.endsWith("[][j] is undefined"), true); + +reportCompare(0, 0, 'ok'); diff --git a/js/src/tests/non262/regress/regress-469937.js b/js/src/tests/non262/regress/regress-469937.js new file mode 100644 index 0000000000..753735c15d --- /dev/null +++ b/js/src/tests/non262/regress/regress-469937.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 = 469937; +var summary = 'Properties without DontEnum are sometimes not enumerated'; +var actual = false; +var expect = true; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +(function(){ + var o = { } + o.PageLeft = 1; + o.Rect2 = 6; + delete o.Rect2; + for (var p in o); + o.Rect3 = 7; + found = false; + for (var p in o) if (p == 'Rect3') found = true; + actual = found; +})(); + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/non262/regress/regress-470061.js b/js/src/tests/non262/regress/regress-470061.js new file mode 100644 index 0000000000..5d2ae75815 --- /dev/null +++ b/js/src/tests/non262/regress/regress-470061.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 = 470061; +var summary = 'TM: Do not assert: cx->fp->regs->pc == f->ip && f->root == f'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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); +} diff --git a/js/src/tests/non262/regress/regress-470187-01.js b/js/src/tests/non262/regress/regress-470187-01.js new file mode 100644 index 0000000000..c1f40b5449 --- /dev/null +++ b/js/src/tests/non262/regress/regress-470187-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 = 470187; +var summary = 'Do not assert: entry->kpc == (jsbytecode*) atoms[index]'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var j=0;j<3;++j) ({valueOf: function(){return 2}}) - /x/; + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-470187-02.js b/js/src/tests/non262/regress/regress-470187-02.js new file mode 100644 index 0000000000..da8ab58396 --- /dev/null +++ b/js/src/tests/non262/regress/regress-470187-02.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 = 470187; +var summary = 'Do not assert: ATOM_IS_STRING(atom)'; +var actual = ''; +var expect = ''; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var j=0;j<3;++j) ({valueOf: function(){return 2}}) - []; + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-470223.js b/js/src/tests/non262/regress/regress-470223.js new file mode 100644 index 0000000000..aea6f1310b --- /dev/null +++ b/js/src/tests/non262/regress/regress-470223.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 = 470223; +var summary = 'TM: Do not crash @ js_NewObjectWithGivenProto'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + function F(A) { + for (R = [], s = 0; (m = A.indexOf("m", s++)) >= 0; ) + R.push([m]); + for (i = R.length; i--; ) { + let r = R[i]; + if (r[0]); + } + } + F("m"); F("mm"); + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-470388-01.js b/js/src/tests/non262/regress/regress-470388-01.js new file mode 100644 index 0000000000..13d22a5ecc --- /dev/null +++ b/js/src/tests/non262/regress/regress-470388-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 = 470388; +var summary = 'TM: Do not assert: !(fp->flags & JSFRAME_POP_BLOCKS)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (let x of [function(){}, new Boolean(false), function(){}]) {} + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-470758-01.js b/js/src/tests/non262/regress/regress-470758-01.js new file mode 100644 index 0000000000..b3d166ca2b --- /dev/null +++ b/js/src/tests/non262/regress/regress-470758-01.js @@ -0,0 +1,27 @@ +/* -*- 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + (function() { var k; eval("for (var k in {});") })() + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-470758-02.js b/js/src/tests/non262/regress/regress-470758-02.js new file mode 100644 index 0000000000..a0aa3ac000 --- /dev/null +++ b/js/src/tests/non262/regress/regress-470758-02.js @@ -0,0 +1,29 @@ +/* -*- 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() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 5; + + (function(){var x;eval("for (x = 0; x < 5; x++);");print(actual = x);})(); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-471660.js b/js/src/tests/non262/regress/regress-471660.js new file mode 100644 index 0000000000..a0fe35f3f7 --- /dev/null +++ b/js/src/tests/non262/regress/regress-471660.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 = 471660; +var summary = 'TM: Do not assert: !(fp->flags & JSFRAME_POP_BLOCKS)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + y = {"a":1}; + + for (var w = 0; w < 5; ++w) { + + { let y; do break ; while (true); } + for (let x of [{}, function(){}]) {y} + + } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-472533.js b/js/src/tests/non262/regress/regress-472533.js new file mode 100644 index 0000000000..9a56df9d02 --- /dev/null +++ b/js/src/tests/non262/regress/regress-472533.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 = 472533; +var summary = 'Do not crash with loop, replace, regexp'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var j = 0; j < 4; ++j) ''.replace('', /x/); + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-474769.js b/js/src/tests/non262/regress/regress-474769.js new file mode 100644 index 0000000000..462a4432ec --- /dev/null +++ b/js/src/tests/non262/regress/regress-474769.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 = 474769; +var summary = 'TM: nested type-unstable for loops'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 1; + + + for (b of [1, 1, 1, 1.5, 1, 1]) { + (function() { for (let h of [0, 0, 1.4, ""]) {} })(); + } + actual = b; + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-474771-01.js b/js/src/tests/non262/regress/regress-474771-01.js new file mode 100644 index 0000000000..7971cc769d --- /dev/null +++ b/js/src/tests/non262/regress/regress-474771-01.js @@ -0,0 +1,38 @@ +// |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 = 474771; +var summary = 'gczeal, prototype mangling, for..in'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'PASS'; + if (typeof gczeal == 'function') + { + gczeal(2); + } + + Object.prototype.q = 3; + for (let x of [6, 7]) { } print(actual = "PASS"); + + if (typeof gczeal == 'function') + { + gczeal(0); + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-474771.js b/js/src/tests/non262/regress/regress-474771.js new file mode 100644 index 0000000000..4b3985edad --- /dev/null +++ b/js/src/tests/non262/regress/regress-474771.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 = 474771; +var summary = 'TM: do not halt execution with gczeal, prototype mangling, for..in'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = 'PASS'; + + if (typeof gczeal == 'function') + { + gczeal(2); + } + + Object.prototype.q = 3; + for (let x of [6, 7]) { } print(actual = "PASS"); + + + delete Object.prototype.q; + + if (typeof gczeal == 'function') + { + gczeal(0); + } + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-474935.js b/js/src/tests/non262/regress/regress-474935.js new file mode 100644 index 0000000000..7e311156d7 --- /dev/null +++ b/js/src/tests/non262/regress/regress-474935.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 = 474935; +var summary = 'Do not assert: !ti->typeMap.matches(ti_other->typeMap)'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + + var a = ["", 0, 0, 0, 0, 0, "", "", 0, "", 0, ""]; + var i = 0; + var g = 0; + for (let e of a) { + "" + [e]; + if (i == 3 || i == 7) { + for (g of [1]) { + } + } + ++i; + } + + + reportCompare(expect, actual, summary); +} diff --git a/js/src/tests/non262/regress/regress-475469.js b/js/src/tests/non262/regress/regress-475469.js new file mode 100644 index 0000000000..ccca629408 --- /dev/null +++ b/js/src/tests/non262/regress/regress-475469.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 = 475469; +var summary = 'TM: Do not crash @ FramePCOffset'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + +// print('Note this test originally required jit enabled with the environment '); +// print('variable TRACEMONKEY=verbose defined. Note that the calls to enable '); +// print('jit are necessary for the crash.'); + + [1,2,3].map(function(v, i, t) { return /a/gi.exec(v); }); + + reportCompare(expect, actual, summary); +} + diff --git a/js/src/tests/non262/regress/regress-475645-01.js b/js/src/tests/non262/regress/regress-475645-01.js new file mode 100644 index 0000000000..04fb570bc5 --- /dev/null +++ b/js/src/tests/non262/regress/regress-475645-01.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 = 475645; +var summary = 'Do not crash @ nanojit::LIns::isop'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function 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( + '