diff --git a/mozilla/js/rhino/src/org/mozilla/javascript/Context.java b/mozilla/js/rhino/src/org/mozilla/javascript/Context.java index 956b6b30211..ad5ab8f69a7 100644 --- a/mozilla/js/rhino/src/org/mozilla/javascript/Context.java +++ b/mozilla/js/rhino/src/org/mozilla/javascript/Context.java @@ -1446,30 +1446,27 @@ public class Context } /** - * Convinient method to rethrow the exception as unchecked exception. - * The exception will be wrapped as {@link WrappedException} unless - * it is an instance of {@link EvaluatorExceptions}, - * {@link EcmaError} or java.lang.Error which are rethrown as-is. - *

- * Instances of java.lang.reflect.InvocationTargetExceptions are treated - * specially. They are unwrapped and throwAsUncheckedException is applied - * recursively to its target. + * Rethrow the exception wrapping it as the script runtime exception. + * Unless the exception is instance of {@link EcmaError} or + * {@link EvaluatorException} it will be wrapped as + * {@link WrappedException}, a subclass of {@link EvaluatorException}. + * The resulting exception object always contains + * source name and line number of script that triggered exception. *

* This method always throws an exception, its return value is provided * only for convenience to allow a usage like: *

-     * throw Context.throwAsUncheckedException(ex);
+     * throw Context.throwAsScriptRuntimeEx(ex);
      * 
* to indicate that code after the method is unreachable. + * @throws EvaluatorException + * @throws EcmaError */ - public static RuntimeException throwAsUncheckedException(Throwable e) + public static RuntimeException throwAsScriptRuntimeEx(Throwable e) { while ((e instanceof InvocationTargetException)) { e = ((InvocationTargetException) e).getTargetException(); } - if (e instanceof Error) { - throw (Error)e; - } if (e instanceof EvaluatorException) { throw (EvaluatorException)e; } diff --git a/mozilla/js/rhino/src/org/mozilla/javascript/Delegator.java b/mozilla/js/rhino/src/org/mozilla/javascript/Delegator.java index 14016fda445..583ce04d4db 100644 --- a/mozilla/js/rhino/src/org/mozilla/javascript/Delegator.java +++ b/mozilla/js/rhino/src/org/mozilla/javascript/Delegator.java @@ -87,7 +87,7 @@ public class Delegator implements Function { try { return (Delegator)this.getClass().newInstance(); } catch (Exception ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } } diff --git a/mozilla/js/rhino/src/org/mozilla/javascript/FunctionObject.java b/mozilla/js/rhino/src/org/mozilla/javascript/FunctionObject.java index 55c624107a4..d0ee2841ad6 100644 --- a/mozilla/js/rhino/src/org/mozilla/javascript/FunctionObject.java +++ b/mozilla/js/rhino/src/org/mozilla/javascript/FunctionObject.java @@ -471,7 +471,7 @@ public class FunctionObject extends BaseFunction try { result = (Scriptable) member.getDeclaringClass().newInstance(); } catch (Exception ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } result.setPrototype(getClassPrototype()); diff --git a/mozilla/js/rhino/src/org/mozilla/javascript/JavaAdapter.java b/mozilla/js/rhino/src/org/mozilla/javascript/JavaAdapter.java index 192f2ec2d78..549e9328974 100644 --- a/mozilla/js/rhino/src/org/mozilla/javascript/JavaAdapter.java +++ b/mozilla/js/rhino/src/org/mozilla/javascript/JavaAdapter.java @@ -255,7 +255,7 @@ public final class JavaAdapter newInstance(ctorArgs); return getAdapterSelf(adapterClass, adapter); } catch (Exception ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } } @@ -509,7 +509,7 @@ public final class JavaAdapter try { master = (IFGlue)glueClass.newInstance(); } catch (Exception ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } int[] argsToConvert = getArgsToConvert(argTypes); master.ifglue_initMaster(argsToConvert); @@ -633,7 +633,7 @@ public final class JavaAdapter try { return f.call(cx, scope, thisObj, args); } catch (JavaScriptException ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } } diff --git a/mozilla/js/rhino/src/org/mozilla/javascript/JavaMembers.java b/mozilla/js/rhino/src/org/mozilla/javascript/JavaMembers.java index 8751a626784..48b6b01fc53 100644 --- a/mozilla/js/rhino/src/org/mozilla/javascript/JavaMembers.java +++ b/mozilla/js/rhino/src/org/mozilla/javascript/JavaMembers.java @@ -102,7 +102,7 @@ class JavaMembers type = field.getType(); } } catch (Exception ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } // Need to wrap the object before we return it. scope = ScriptableObject.getTopLevelScope(scope); @@ -137,7 +137,7 @@ class JavaMembers try { bp.setter.invoke(javaObject, args); } catch (Exception ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } } else { diff --git a/mozilla/js/rhino/src/org/mozilla/javascript/LazilyLoadedCtor.java b/mozilla/js/rhino/src/org/mozilla/javascript/LazilyLoadedCtor.java index f7faa80c61b..cf2d6045d41 100644 --- a/mozilla/js/rhino/src/org/mozilla/javascript/LazilyLoadedCtor.java +++ b/mozilla/js/rhino/src/org/mozilla/javascript/LazilyLoadedCtor.java @@ -63,7 +63,7 @@ public final class LazilyLoadedCtor { ScriptableObject.DONTENUM); } catch (PropertyException e) { - throw Context.throwAsUncheckedException(e); + throw Context.throwAsScriptRuntimeEx(e); } } @@ -88,7 +88,7 @@ public final class LazilyLoadedCtor { } catch (SecurityException ex) { removeOnError = true; } catch (Exception e) { - throw Context.throwAsUncheckedException(e); + throw Context.throwAsScriptRuntimeEx(e); } } if (removeOnError) { diff --git a/mozilla/js/rhino/src/org/mozilla/javascript/MemberBox.java b/mozilla/js/rhino/src/org/mozilla/javascript/MemberBox.java index 0c97bb698ec..2ebeec0260e 100644 --- a/mozilla/js/rhino/src/org/mozilla/javascript/MemberBox.java +++ b/mozilla/js/rhino/src/org/mozilla/javascript/MemberBox.java @@ -163,7 +163,7 @@ final class MemberBox implements Serializable try { return invoker.invoke(target, args); } catch (Exception ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } catch (LinkageError ex) { invoker = null; } @@ -179,16 +179,16 @@ final class MemberBox implements Serializable method = accessible; } else { if (!tryToMakeAccessible(method)) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } } // Retry after recovery return method.invoke(target, args); } } catch (IllegalAccessException ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } catch (InvocationTargetException ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } } @@ -200,16 +200,16 @@ final class MemberBox implements Serializable return ctor.newInstance(args); } catch (IllegalAccessException ex) { if (!tryToMakeAccessible(ctor)) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } } return ctor.newInstance(args); } catch (IllegalAccessException ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } catch (InvocationTargetException ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } catch (InstantiationException ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } } diff --git a/mozilla/js/rhino/src/org/mozilla/javascript/NativeJavaObject.java b/mozilla/js/rhino/src/org/mozilla/javascript/NativeJavaObject.java index c2ad92637a5..a96b6ad9a47 100644 --- a/mozilla/js/rhino/src/org/mozilla/javascript/NativeJavaObject.java +++ b/mozilla/js/rhino/src/org/mozilla/javascript/NativeJavaObject.java @@ -691,7 +691,7 @@ WrapFactory#wrap(Context cx, Scriptable scope, Object obj, Class)} try { glue = adapter_makeIFGlue.invoke(null, args); } catch (Exception ex) { - throw Context.throwAsUncheckedException(ex); + throw Context.throwAsScriptRuntimeEx(ex); } if (glue != null) { // Store for later retrival diff --git a/mozilla/js/rhino/src/org/mozilla/javascript/optimizer/Codegen.java b/mozilla/js/rhino/src/org/mozilla/javascript/optimizer/Codegen.java index abb2cdcb6b7..8ba15b8ee18 100644 --- a/mozilla/js/rhino/src/org/mozilla/javascript/optimizer/Codegen.java +++ b/mozilla/js/rhino/src/org/mozilla/javascript/optimizer/Codegen.java @@ -96,7 +96,7 @@ public class Codegen extends Interpreter { onlySave = true; } } catch (IOException iox) { - throw Context.throwAsUncheckedException(iox); + throw Context.throwAsScriptRuntimeEx(iox); } if (!isPrimary) { @@ -124,7 +124,7 @@ public class Codegen extends Interpreter { onlySave = true; } } catch (IOException iox) { - throw Context.throwAsUncheckedException(iox); + throw Context.throwAsScriptRuntimeEx(iox); } } }