/** * Copyright (c) 2012-2016 André Bargull * Alle Rechte vorbehalten / All Rights Reserved. Use is subject to license terms. * * <https://github.com/anba/es6draft> */ package com.github.anba.es6draft.runtime.internal; import com.github.anba.es6draft.runtime.ExecutionContext; import com.github.anba.es6draft.runtime.objects.ErrorObject; import com.github.anba.es6draft.runtime.types.Intrinsics; /** * Static helper methods to create {@link ScriptException} objects. */ public final class Errors { private Errors() { } private static ScriptException newError(ExecutionContext cx, Intrinsics prototype, String message) { return new ErrorObject(cx.getRealm(), prototype, message).getException(); } private static ScriptException newError(ExecutionContext cx, Intrinsics prototype, String message, String file, int line, int column) { return new ErrorObject(cx.getRealm(), prototype, message, file, line, column) .getException(); } private static ScriptException newError(ExecutionContext cx, Throwable cause, Intrinsics prototype, String message, String file, int line, int column) { return new ErrorObject(cx.getRealm(), cause, prototype, message, file, line, column) .getException(); } private static ScriptException newError(ExecutionContext cx, Intrinsics prototype, Messages.Key key) { String message = cx.getRealm().message(key); return new ErrorObject(cx.getRealm(), prototype, message).getException(); } private static ScriptException newError(ExecutionContext cx, Intrinsics prototype, Messages.Key key, String... args) { String message = cx.getRealm().message(key, args); return new ErrorObject(cx.getRealm(), prototype, message).getException(); } private static ScriptException newError(ExecutionContext cx, Throwable cause, Intrinsics prototype, Messages.Key key, String... args) { String message = cx.getRealm().message(key, args); return new ErrorObject(cx.getRealm(), cause, prototype, message).getException(); } /** * Returns a new {@code Error} instance. * * @param cx * the execution context * @param message * the error message * @return the new script exception object */ public static ScriptException newError(ExecutionContext cx, String message) { return newError(cx, Intrinsics.ErrorPrototype, message); } /** * Returns a new {@code InternalError} instance. * * @param cx * the execution context * @param key * the error message key * @return the new script exception object */ public static ScriptException newInternalError(ExecutionContext cx, Messages.Key key) { return newError(cx, Intrinsics.InternalErrorPrototype, key); } /** * Returns a new {@code InternalError} instance. * * @param cx * the execution context * @param key * the error message key * @param args * the error message arguments * @return the new script exception object */ public static ScriptException newInternalError(ExecutionContext cx, Messages.Key key, String... args) { return newError(cx, Intrinsics.InternalErrorPrototype, key, args); } /** * Returns a new {@code InternalError} instance. * * @param cx * the execution context * @param cause * the cause of the new error * @param key * the error message key * @param args * the error message arguments * @return the new script exception object */ public static ScriptException newInternalError(ExecutionContext cx, Throwable cause, Messages.Key key, String... args) { return newError(cx, cause, Intrinsics.InternalErrorPrototype, key, args); } /** * Returns a new {@code TypeError} instance. * * @param cx * the execution context * @param key * the error message key * @return the new script exception object */ public static ScriptException newTypeError(ExecutionContext cx, Messages.Key key) { return newError(cx, Intrinsics.TypeErrorPrototype, key); } /** * Returns a new {@code TypeError} instance. * * @param cx * the execution context * @param key * the error message key * @param args * the error message arguments * @return the new script exception object */ public static ScriptException newTypeError(ExecutionContext cx, Messages.Key key, String... args) { return newError(cx, Intrinsics.TypeErrorPrototype, key, args); } /** * Returns a new {@code ReferenceError} instance. * * @param cx * the execution context * @param key * the error message key * @return the new script exception object */ public static ScriptException newReferenceError(ExecutionContext cx, Messages.Key key) { return newError(cx, Intrinsics.ReferenceErrorPrototype, key); } /** * Returns a new {@code ReferenceError} instance. * * @param cx * the execution context * @param key * the error message key * @param args * the error message arguments * @return the new script exception object */ public static ScriptException newReferenceError(ExecutionContext cx, Messages.Key key, String... args) { return newError(cx, Intrinsics.ReferenceErrorPrototype, key, args); } /** * Returns a new {@code ReferenceError} instance. * * @param cx * the execution context * @param message * the error message * @param file * the file name * @param line * the line number * @param column * the column number * @return the new script exception object */ public static ScriptException newReferenceError(ExecutionContext cx, String message, String file, int line, int column) { return newError(cx, Intrinsics.ReferenceErrorPrototype, message, file, line, column); } /** * Returns a new {@code ReferenceError} instance. * * @param cx * the execution context * @param cause * the cause of the new error * @param message * the error message * @param file * the file name * @param line * the line number * @param column * the column number * @return the new script exception object */ public static ScriptException newReferenceError(ExecutionContext cx, Throwable cause, String message, String file, int line, int column) { return newError(cx, cause, Intrinsics.ReferenceErrorPrototype, message, file, line, column); } /** * Returns a new {@code SyntaxError} instance. * * @param cx * the execution context * @param key * the error message key * @return the new script exception object */ public static ScriptException newSyntaxError(ExecutionContext cx, Messages.Key key) { return newError(cx, Intrinsics.SyntaxErrorPrototype, key); } /** * Returns a new {@code SyntaxError} instance. * * @param cx * the execution context * @param key * the error message key * @param args * the error message arguments * @return the new script exception object */ public static ScriptException newSyntaxError(ExecutionContext cx, Messages.Key key, String... args) { return newError(cx, Intrinsics.SyntaxErrorPrototype, key, args); } /** * Returns a new {@code SyntaxError} instance. * * @param cx * the execution context * @param cause * the cause of the new error * @param key * the error message key * @param args * the error message arguments * @return the new script exception object */ public static ScriptException newSyntaxError(ExecutionContext cx, Throwable cause, Messages.Key key, String... args) { return newError(cx, cause, Intrinsics.SyntaxErrorPrototype, key, args); } /** * Returns a new {@code SyntaxError} instance. * * @param cx * the execution context * @param message * the error message * @param file * the file name * @param line * the line number * @param column * the column number * @return the new script exception object */ public static ScriptException newSyntaxError(ExecutionContext cx, String message, String file, int line, int column) { return newError(cx, Intrinsics.SyntaxErrorPrototype, message, file, line, column); } /** * Returns a new {@code SyntaxError} instance. * * @param cx * the execution context * @param cause * the cause of the new error * @param message * the error message * @param file * the file name * @param line * the line number * @param column * the column number * @return the new script exception object */ public static ScriptException newSyntaxError(ExecutionContext cx, Throwable cause, String message, String file, int line, int column) { return newError(cx, cause, Intrinsics.SyntaxErrorPrototype, message, file, line, column); } /** * Returns a new {@code RangeError} instance. * * @param cx * the execution context * @param key * the error message key * @return the new script exception object */ public static ScriptException newRangeError(ExecutionContext cx, Messages.Key key) { return newError(cx, Intrinsics.RangeErrorPrototype, key); } /** * Returns a new {@code RangeError} instance. * * @param cx * the execution context * @param key * the error message key * @param args * the error message arguments * @return the new script exception object */ public static ScriptException newRangeError(ExecutionContext cx, Messages.Key key, String... args) { return newError(cx, Intrinsics.RangeErrorPrototype, key, args); } /** * Returns a new {@code URIError} instance. * * @param cx * the execution context * @param key * the error message key * @return the new script exception object */ public static ScriptException newURIError(ExecutionContext cx, Messages.Key key) { return newError(cx, Intrinsics.URIErrorPrototype, key); } /** * Returns a new {@code URIError} instance. * * @param cx * the execution context * @param key * the error message key * @param args * the error message arguments * @return the new script exception object */ public static ScriptException newURIError(ExecutionContext cx, Messages.Key key, String... args) { return newError(cx, Intrinsics.URIErrorPrototype, key, args); } }