18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* The contents of this file are subject to the Netscape Public
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* License Version 1.1 (the "License"); you may not use this file
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* except in compliance with the License. You may obtain a copy of
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* the License at http://www.mozilla.org/NPL/
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Software distributed under the License is distributed on an "AS
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* implied. See the License for the specific language governing
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* rights and limitations under the License.
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* The Original Code is mozilla.org code.
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* The Initial Developer of the Original Code is Netscape
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Communications Corporation.  Portions created by Netscape are
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Copyright (C) 1998 Netscape Communications Corporation. All
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Rights Reserved.
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Contributor(s): pschwartau@netscape.com
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*This test arose from Bugzilla bug 58946.
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*The bug was filed when we got the following error (see code below):
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*                          "ReferenceError: e is not defined"
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*There was no error if we replaced "return e" in the code below with "print(e)".
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*There should be no error with "return e", either  -
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project//-------------------------------------------------------------------------------------------------
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar bug = '58946';
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar stat =  'Testing a return statement inside a catch statement inside a function';
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttest();
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction test() {
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  enterFunc ("test");
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  printBugNumber (bug);
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  printStatus (stat);
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  try
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  {
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    throw 'PASS';
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project   }
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  catch(e)
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  {
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     return e;
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  }
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  exitFunc ("test");
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}