18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* ***** BEGIN LICENSE BLOCK ***** 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Version: NPL 1.1/GPL 2.0/LGPL 2.1 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* The contents of this file are subject to the Netscape Public License 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Version 1.1 (the "License"); you may not use this file except in 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* compliance with the License. You may obtain a copy of the License at 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* http://www.mozilla.org/NPL/ 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Software distributed under the License is distributed on an "AS IS" basis, 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* for the specific language governing rights and limitations under the 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* License. 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* The Original Code is JavaScript Engine testing utilities. 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* The Initial Developer of the Original Code is Netscape Communications Corp. 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Portions created by the Initial Developer are Copyright (C) 2001 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* the Initial Developer. All Rights Reserved. 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Contributor(s): chwu@nortelnetworks.com, timeless@mac.com, 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* brendan@mozilla.org, pschwartau@netscape.com 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Alternatively, the contents of this file may be used under the terms of 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* either the GNU General Public License Version 2 or later (the "GPL"), or 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* in which case the provisions of the GPL or the LGPL are applicable instead 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* of those above. If you wish to allow use of your version of this file only 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* under the terms of either the GPL or the LGPL, and not to allow others to 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* use your version of this file under the terms of the NPL, indicate your 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* decision by deleting the provisions above and replace them with the notice 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* and other provisions required by the GPL or the LGPL. If you do not delete 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* the provisions above, a recipient may use your version of this file under 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* the terms of any one of the NPL, the GPL or the LGPL. 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* ***** END LICENSE BLOCK ***** 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Date: 10 October 2001 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* SUMMARY: Regression test for Bugzilla bug 104077 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* See http://bugzilla.mozilla.org/show_bug.cgi?id=104077 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* "JS crash: with/finally/return" 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Also http://bugzilla.mozilla.org/show_bug.cgi?id=120571 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* "JS crash: try/catch/continue." 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* SpiderMonkey crashed on this code - it shouldn't. 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* NOTE: the finally-blocks below should execute even if their try-blocks 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* have return or throw statements in them: 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* ------- Additional Comment #76 From Mike Shaver 2001-12-07 01:21 ------- 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* finally trumps return, and all other control-flow constructs that cause 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* program execution to jump out of the try block: throw, break, etc. Once you 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* enter a try block, you will execute the finally block after leaving the try, 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* regardless of what happens to make you leave the try. 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project//----------------------------------------------------------------------------- 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar UBound = 0; 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar bug = 104077; 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar summary = "Just testing that we don't crash on with/finally/return -"; 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar status = ''; 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar statusitems = []; 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar actual = ''; 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar actualvalues = []; 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar expect= ''; 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar expectedvalues = []; 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction addValues(obj) 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var sum; 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (obj) 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum = arg1 + arg2; 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return sum; 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(1); 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar obj = new Object(); 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg1 = 1; 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg2 = 2; 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = addValues(obj); 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 3; 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction tryThis() 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var sum = 4 ; 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var i = 0; 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project while (sum < 10) 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project i += 1; 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print("In finally case of tryThis() function"); 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return i; 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(2); 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = tryThis(); 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 6; 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction myTest(x) 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var obj = new Object(); 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var msg; 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (obj) 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project msg = (x != null) ? "NO" : "YES"; 1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print("Is the provided argument to myTest() null? : " + msg); 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project throw "ZZZ"; 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch(e) 1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print("Caught thrown exception = " + e); 1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 1; 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(3); 1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = myTest(null); 1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 1; 1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction addValues_2(obj) 1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var sum = 0; 1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (obj) 1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum = arg1 + arg2; 1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (arg3) 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project while (sum < 10) 1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (sum > 5) 1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return sum; 1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch(e) 1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print('Caught an exception in addValues_2() function: ' + e); 1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return sum; 1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(4); 1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj = new Object(); 1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg1 = 1; 1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg2 = 2; 1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg3 = new Object(); 1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg3.a = 10; 1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg3.b = 20; 1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = addValues_2(obj); 1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 6; 1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(5); 1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttry 2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project throw new A(); 2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectcatch(e) 2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfinally 2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project throw new A(); 2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch(e) 2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project actual = 'a'; 2188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project actual = 'b'; 2208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 'b'; 2228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 2238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction testfunc(mode) 2288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var obj = new Object(); 2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (obj) 2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var num = 100; 2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var str = "abc" ; 2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (str == null) 2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project throw "authentication.0"; 2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch(e) 2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return num; 2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (mode == 0) 2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project throw "authentication.0"; 2568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 2578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project mytest(); 2588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch(e) 2608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 2638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return num; 2678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(6); 2728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = testfunc(0); 2738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 100; 2748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 2758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(7); 2778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = testfunc(); 2788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 100; 2798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 2808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction entry_menu() 2858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var document = new Object(); 2878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var dialog = new Object(); 2888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var num = 100; 2898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (document) 2918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (dialog) 2938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 2958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project while (true) 2978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return num; 2998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 3028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(8); 3098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = entry_menu(); 3108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 100; 3118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 3128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction addValues_3(obj) 3178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 3188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var sum = 0; 3198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (obj) 3218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 3238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum = arg1 + arg2; 3258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (arg3) 3268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project while (sum < 10) 3288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 3308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (sum > 5) 3328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return sum; 3338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 3348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch (e) 3368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 3388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print(e); 3398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 3448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 3468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum +=1; 3488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print("In finally block of addValues_3() function: sum = " + sum); 3498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch (e if e == 42) 3518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum +=1; 3538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print('In finally catch block of addValues_3() function: sum = ' + sum + ', e = ' + e); 3548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 3568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum +=1; 3588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print("In finally finally block of addValues_3() function: sum = " + sum); 3598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return sum; 3608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(9); 3668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj = new Object(); 3678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg1 = 1; 3688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg2 = 2; 3698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg3 = new Object(); 3708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg3.a = 10; 3718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg3.b = 20; 3728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = addValues_3(obj); 3738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 8; 3748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 3758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction addValues_4(obj) 3808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 3818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var sum = 0; 3828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (obj) 3848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 3868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum = arg1 + arg2; 3888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (arg3) 3898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project while (sum < 10) 3918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 3938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (sum > 5) 3958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return sum; 3968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 3978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch (e) 3998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 4018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print(e); 4028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 4078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 4098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 4118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print("In finally block of addValues_4() function: sum = " + sum); 4128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch (e if e == 42) 4148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 4168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print("In 1st finally catch block of addValues_4() function: sum = " + sum + ", e = " + e); 4178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch (e if e == 43) 4198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 4218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print("In 2nd finally catch block of addValues_4() function: sum = " + sum + ", e = " + e); 4228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 4248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 4268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print("In finally finally block of addValues_4() function: sum = " + sum); 4278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return sum; 4288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 4328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(10); 4348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj = new Object(); 4358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg1 = 1; 4368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg2 = 2; 4378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg3 = new Object(); 4388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg3.a = 10; 4398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg3.b = 20; 4408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = addValues_4(obj); 4418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 8; 4428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 4438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction addValues_5(obj) 4488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 4498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var sum = 0; 4508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (obj) 4528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 4548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum = arg1 + arg2; 4568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (arg3) 4578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project while (sum < 10) 4598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 4618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (sum > 5) 4638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return sum; 4648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 4658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch (e) 4678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 4698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print(e); 4708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 4758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 4778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 4798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print("In finally block of addValues_5() function: sum = " + sum); 4808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch (e) 4828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 4848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print("In finally catch block of addValues_5() function: sum = " + sum + ", e = " + e); 4858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 4878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 4888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sum += 1; 4898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print("In finally finally block of addValues_5() function: sum = " + sum); 4908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return sum; 4918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 4958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(11); 4978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj = new Object(); 4988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg1 = 1; 4998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg2 = 2; 5008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg3 = new Object(); 5018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg3.a = 10; 5028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj.arg3.b = 20; 5038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = addValues_5(obj); 5048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 8; 5058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 5068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction testObj(obj) 5118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var x = 42; 5138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 5158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project with (obj) 5178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (obj.p) 5198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project throw obj.p; 5208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project x = obj.q; 5218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project finally 5248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project print("in finally block of testObj() function"); 5268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 999; 5278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(12); 5318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj = {p:43}; 5328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = testObj(obj); 5338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 999; 5348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 5358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 5398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Next two cases are from http://bugzilla.mozilla.org/show_bug.cgi?id=120571 5408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 5418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction a120571() 5428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project while(0) 5448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 5468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch(e) 5498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project continue; 5518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// this caused a crash! Test to see that it doesn't now. 5568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprint(a120571); 5578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// Now test that we have a non-null value for a120571.toString() 5598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(13); 5608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttry 5618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project actual = a120571.toString().match(/continue/)[0]; 5638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectcatch(e) 5658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project actual = 'FAILED! Did not find "continue" in function body'; 5678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 'continue'; 5698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 5708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction b() 5758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project for(;;) 5778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project try 5798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project catch(e) 5828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project continue; 5848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// this caused a crash!!! Test to see that it doesn't now. 5898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprint(b); 5908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// Now test that we have a non-null value for b.toString() 5928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(14); 5938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttry 5948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project actual = b.toString().match(/continue/)[0]; 5968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectcatch(e) 5988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project actual = 'FAILED! Did not find "continue" in function body'; 6008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 6018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = 'continue'; 6028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectcaptureThis(); 6038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project//----------------------------------------------------------------------------- 6098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttest(); 6108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project//----------------------------------------------------------------------------- 6118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction captureThis() 6158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 6168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project statusitems[UBound] = status; 6178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project actualvalues[UBound] = actual; 6188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project expectedvalues[UBound] = expect; 6198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project UBound++; 6208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 6218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction test() 6248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 6258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project enterFunc ('test'); 6268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project printBugNumber (bug); 6278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project printStatus (summary); 6288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project for (var i=0; i<UBound; i++) 6308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 6318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); 6328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 6338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project exitFunc ('test'); 6358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 636