src/jdk/nashorn/internal/runtime/ECMAErrors.java

Print this page
rev 738 : 8030182: scopeCall with -1 as line number
Reviewed-by: hannesw, jlaskey
rev 760 : 8037400: Remove getInitialMap getters and GlobalObject interface
Reviewed-by: lagergren, jlaskey, attila

*** 28,37 **** --- 28,39 ---- import java.text.MessageFormat; import java.util.Locale; import java.util.ResourceBundle; import jdk.nashorn.api.scripting.NashornException; import jdk.nashorn.internal.scripts.JS; + import jdk.nashorn.internal.codegen.CompilerConstants; + import jdk.nashorn.internal.objects.Global; /** * Helper class to throw various standard "ECMA error" exceptions such as Error, ReferenceError, TypeError etc. */ public final class ECMAErrors {
*** 63,73 **** * @param e {@code ParserException} for error dispatcher * * @return the resulting {@link ECMAException} */ public static ECMAException asEcmaException(final ParserException e) { ! return asEcmaException(Context.getGlobalTrusted(), e); } /** * Error dispatch mechanism. * Create a {@link ParserException} as the correct JavaScript error --- 65,75 ---- * @param e {@code ParserException} for error dispatcher * * @return the resulting {@link ECMAException} */ public static ECMAException asEcmaException(final ParserException e) { ! return asEcmaException(Context.getGlobal(), e); } /** * Error dispatch mechanism. * Create a {@link ParserException} as the correct JavaScript error
*** 75,89 **** * @param global global scope object * @param e {@code ParserException} for error dispatcher * * @return the resulting {@link ECMAException} */ ! public static ECMAException asEcmaException(final ScriptObject global, final ParserException e) { final JSErrorType errorType = e.getErrorType(); assert errorType != null : "error type for " + e + " was null"; ! final GlobalObject globalObj = (GlobalObject)global; final String msg = e.getMessage(); // translate to ECMAScript Error object using error type switch (errorType) { case ERROR: --- 77,91 ---- * @param global global scope object * @param e {@code ParserException} for error dispatcher * * @return the resulting {@link ECMAException} */ ! public static ECMAException asEcmaException(final Global global, final ParserException e) { final JSErrorType errorType = e.getErrorType(); assert errorType != null : "error type for " + e + " was null"; ! final Global globalObj = global; final String msg = e.getMessage(); // translate to ECMAScript Error object using error type switch (errorType) { case ERROR:
*** 113,123 **** * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException syntaxError(final String msgId, final String... args) { ! return syntaxError(Context.getGlobalTrusted(), msgId, args); } /** * Create a syntax error (ECMA 15.11.6.4) * --- 115,125 ---- * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException syntaxError(final String msgId, final String... args) { ! return syntaxError(Context.getGlobal(), msgId, args); } /** * Create a syntax error (ECMA 15.11.6.4) *
*** 125,135 **** * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException syntaxError(final ScriptObject global, final String msgId, final String... args) { return syntaxError(global, null, msgId, args); } /** * Create a syntax error (ECMA 15.11.6.4) --- 127,137 ---- * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException syntaxError(final Global global, final String msgId, final String... args) { return syntaxError(global, null, msgId, args); } /** * Create a syntax error (ECMA 15.11.6.4)
*** 139,149 **** * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException syntaxError(final Throwable cause, final String msgId, final String... args) { ! return syntaxError(Context.getGlobalTrusted(), cause, msgId, args); } /** * Create a syntax error (ECMA 15.11.6.4) * --- 141,151 ---- * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException syntaxError(final Throwable cause, final String msgId, final String... args) { ! return syntaxError(Context.getGlobal(), cause, msgId, args); } /** * Create a syntax error (ECMA 15.11.6.4) *
*** 152,164 **** * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException syntaxError(final ScriptObject global, final Throwable cause, final String msgId, final String... args) { final String msg = getMessage("syntax.error." + msgId, args); ! return error(((GlobalObject)global).newSyntaxError(msg), cause); } /** * Create a type error (ECMA 15.11.6.5) * --- 154,166 ---- * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException syntaxError(final Global global, final Throwable cause, final String msgId, final String... args) { final String msg = getMessage("syntax.error." + msgId, args); ! return error(global.newSyntaxError(msg), cause); } /** * Create a type error (ECMA 15.11.6.5) *
*** 166,176 **** * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException typeError(final String msgId, final String... args) { ! return typeError(Context.getGlobalTrusted(), msgId, args); } /** * Create a type error (ECMA 15.11.6.5) * --- 168,178 ---- * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException typeError(final String msgId, final String... args) { ! return typeError(Context.getGlobal(), msgId, args); } /** * Create a type error (ECMA 15.11.6.5) *
*** 178,188 **** * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException typeError(final ScriptObject global, final String msgId, final String... args) { return typeError(global, null, msgId, args); } /** * Create a type error (ECMA 15.11.6.5) --- 180,190 ---- * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException typeError(final Global global, final String msgId, final String... args) { return typeError(global, null, msgId, args); } /** * Create a type error (ECMA 15.11.6.5)
*** 192,202 **** * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException typeError(final Throwable cause, final String msgId, final String... args) { ! return typeError(Context.getGlobalTrusted(), cause, msgId, args); } /** * Create a type error (ECMA 15.11.6.5) * --- 194,204 ---- * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException typeError(final Throwable cause, final String msgId, final String... args) { ! return typeError(Context.getGlobal(), cause, msgId, args); } /** * Create a type error (ECMA 15.11.6.5) *
*** 205,217 **** * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException typeError(final ScriptObject global, final Throwable cause, final String msgId, final String... args) { final String msg = getMessage("type.error." + msgId, args); ! return error(((GlobalObject)global).newTypeError(msg), cause); } /** * Create a range error (ECMA 15.11.6.2) * --- 207,219 ---- * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException typeError(final Global global, final Throwable cause, final String msgId, final String... args) { final String msg = getMessage("type.error." + msgId, args); ! return error(global.newTypeError(msg), cause); } /** * Create a range error (ECMA 15.11.6.2) *
*** 219,229 **** * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException rangeError(final String msgId, final String... args) { ! return rangeError(Context.getGlobalTrusted(), msgId, args); } /** * Create a range error (ECMA 15.11.6.2) * --- 221,231 ---- * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException rangeError(final String msgId, final String... args) { ! return rangeError(Context.getGlobal(), msgId, args); } /** * Create a range error (ECMA 15.11.6.2) *
*** 231,241 **** * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException rangeError(final ScriptObject global, final String msgId, final String... args) { return rangeError(global, null, msgId, args); } /** * Create a range error (ECMA 15.11.6.2) --- 233,243 ---- * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException rangeError(final Global global, final String msgId, final String... args) { return rangeError(global, null, msgId, args); } /** * Create a range error (ECMA 15.11.6.2)
*** 245,255 **** * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException rangeError(final Throwable cause, final String msgId, final String... args) { ! return rangeError(Context.getGlobalTrusted(), cause, msgId, args); } /** * Create a range error (ECMA 15.11.6.2) * --- 247,257 ---- * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException rangeError(final Throwable cause, final String msgId, final String... args) { ! return rangeError(Context.getGlobal(), cause, msgId, args); } /** * Create a range error (ECMA 15.11.6.2) *
*** 258,270 **** * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException rangeError(final ScriptObject global, final Throwable cause, final String msgId, final String... args) { final String msg = getMessage("range.error." + msgId, args); ! return error(((GlobalObject)global).newRangeError(msg), cause); } /** * Create a reference error (ECMA 15.11.6.3) * --- 260,272 ---- * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException rangeError(final Global global, final Throwable cause, final String msgId, final String... args) { final String msg = getMessage("range.error." + msgId, args); ! return error(global.newRangeError(msg), cause); } /** * Create a reference error (ECMA 15.11.6.3) *
*** 272,282 **** * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException referenceError(final String msgId, final String... args) { ! return referenceError(Context.getGlobalTrusted(), msgId, args); } /** * Create a reference error (ECMA 15.11.6.3) * --- 274,284 ---- * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException referenceError(final String msgId, final String... args) { ! return referenceError(Context.getGlobal(), msgId, args); } /** * Create a reference error (ECMA 15.11.6.3) *
*** 284,294 **** * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException referenceError(final ScriptObject global, final String msgId, final String... args) { return referenceError(global, null, msgId, args); } /** * Create a reference error (ECMA 15.11.6.3) --- 286,296 ---- * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException referenceError(final Global global, final String msgId, final String... args) { return referenceError(global, null, msgId, args); } /** * Create a reference error (ECMA 15.11.6.3)
*** 298,308 **** * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException referenceError(final Throwable cause, final String msgId, final String... args) { ! return referenceError(Context.getGlobalTrusted(), cause, msgId, args); } /** * Create a reference error (ECMA 15.11.6.3) * --- 300,310 ---- * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException referenceError(final Throwable cause, final String msgId, final String... args) { ! return referenceError(Context.getGlobal(), cause, msgId, args); } /** * Create a reference error (ECMA 15.11.6.3) *
*** 311,323 **** * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException referenceError(final ScriptObject global, final Throwable cause, final String msgId, final String... args) { final String msg = getMessage("reference.error." + msgId, args); ! return error(((GlobalObject)global).newReferenceError(msg), cause); } /** * Create a URI error (ECMA 15.11.6.6) * --- 313,325 ---- * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException referenceError(final Global global, final Throwable cause, final String msgId, final String... args) { final String msg = getMessage("reference.error." + msgId, args); ! return error(global.newReferenceError(msg), cause); } /** * Create a URI error (ECMA 15.11.6.6) *
*** 325,335 **** * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException uriError(final String msgId, final String... args) { ! return uriError(Context.getGlobalTrusted(), msgId, args); } /** * Create a URI error (ECMA 15.11.6.6) * --- 327,337 ---- * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException uriError(final String msgId, final String... args) { ! return uriError(Context.getGlobal(), msgId, args); } /** * Create a URI error (ECMA 15.11.6.6) *
*** 337,347 **** * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException uriError(final ScriptObject global, final String msgId, final String... args) { return uriError(global, null, msgId, args); } /** * Create a URI error (ECMA 15.11.6.6) --- 339,349 ---- * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException uriError(final Global global, final String msgId, final String... args) { return uriError(global, null, msgId, args); } /** * Create a URI error (ECMA 15.11.6.6)
*** 351,361 **** * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException uriError(final Throwable cause, final String msgId, final String... args) { ! return uriError(Context.getGlobalTrusted(), cause, msgId, args); } /** * Create a URI error (ECMA 15.11.6.6) * --- 353,363 ---- * @param args arguments to resource * * @return the resulting {@link ECMAException} */ public static ECMAException uriError(final Throwable cause, final String msgId, final String... args) { ! return uriError(Context.getGlobal(), cause, msgId, args); } /** * Create a URI error (ECMA 15.11.6.6) *
*** 364,376 **** * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException uriError(final ScriptObject global, final Throwable cause, final String msgId, final String... args) { final String msg = getMessage("uri.error." + msgId, args); ! return error(((GlobalObject)global).newURIError(msg), cause); } /** * Get the exception message by placing the args in the resource defined * by the resource tag. This is visible to, e.g. the {@link jdk.nashorn.internal.parser.Parser} --- 366,378 ---- * @param msgId resource tag for error message * @param args arguments to resource * * @return the resulting {@link ECMAException} */ ! public static ECMAException uriError(final Global global, final Throwable cause, final String msgId, final String... args) { final String msg = getMessage("uri.error." + msgId, args); ! return error(global.newURIError(msg), cause); } /** * Get the exception message by placing the args in the resource defined * by the resource tag. This is visible to, e.g. the {@link jdk.nashorn.internal.parser.Parser}
*** 399,409 **** */ public static boolean isScriptFrame(final StackTraceElement frame) { final String className = frame.getClassName(); // Look for script package in class name (into which compiler puts generated code) ! if (className.startsWith(scriptPackage)) { final String source = frame.getFileName(); /* * Make sure that it is not some Java code that Nashorn has in that package! * also, we don't want to report JavaScript code that lives in script engine implementation * We want to report only user's own scripts and not any of our own scripts like "engine.js" --- 401,411 ---- */ public static boolean isScriptFrame(final StackTraceElement frame) { final String className = frame.getClassName(); // Look for script package in class name (into which compiler puts generated code) ! if (className.startsWith(scriptPackage) && !frame.getMethodName().startsWith(CompilerConstants.INTERNAL_METHOD_PREFIX)) { final String source = frame.getFileName(); /* * Make sure that it is not some Java code that Nashorn has in that package! * also, we don't want to report JavaScript code that lives in script engine implementation * We want to report only user's own scripts and not any of our own scripts like "engine.js"