The EvalError object indicates an error regarding the global eval() function. This exception is not thrown by JavaScript anymore, however the EvalError object remains for compatibility.

EvalError is a serializable object, so it can be cloned with structuredClone() or copied between Workers using postMessage().



Creates a new EvalError object.

Instance properties


Error message. Inherited from Error.


Error name. Inherited from Error.


Error cause. Inherited from Error.

EvalError.prototype.fileName Non-standard

Path to file that raised this error. Inherited from Error.

EvalError.prototype.lineNumber Non-standard

Line number in file that raised this error. Inherited from Error.

EvalError.prototype.columnNumber Non-standard

Column number in line that raised this error. Inherited from Error.

EvalError.prototype.stack Non-standard

Stack trace. Inherited from Error.


EvalError is not used in the current ECMAScript specification and will thus not be thrown by the runtime. However, the object itself remains for backwards compatibility with earlier versions of the specification.

Creating an EvalError

try {
  throw new EvalError("Hello", "someFile.js", 10);
} catch (e) {
  console.log(e instanceof EvalError); // true
  console.log(e.message); // "Hello"
  console.log(e.name); // "EvalError"
  console.log(e.fileName); // "someFile.js"
  console.log(e.lineNumber); // 10
  console.log(e.columnNumber); // 0
  console.log(e.stack); // "@Scratchpad/2:2:9\n"


ECMAScript Language Specification
# sec-native-error-types-used-in-this-standard-evalerror

Browser compatibility

BCD tables only load in the browser

See also