diff --git a/lib/internal/errors.js b/lib/internal/errors.js
index 833246c8a5ff66..ec5b0effe78932 100644
--- a/lib/internal/errors.js
+++ b/lib/internal/errors.js
@@ -445,25 +445,29 @@ function dnsException(err, syscall, hostname) {
   return ex;
 }
 
-let MAX_STACK_MESSAGE;
+let maxStack_ErrorName;
+let maxStack_ErrorMessage;
 /**
- * Returns true if `err` is a `RangeError` with an engine-specific message.
+ * Returns true if `err.name` and `err.message` are equal to engine-specific
+ * values indicating max call stack size has been exceeded.
  * "Maximum call stack size exceeded" in V8.
  *
  * @param {Error} err
  * @returns {boolean}
  */
 function isStackOverflowError(err) {
-  if (MAX_STACK_MESSAGE === undefined) {
+  if (maxStack_ErrorMessage === undefined) {
     try {
       function overflowStack() { overflowStack(); }
       overflowStack();
     } catch (err) {
-      MAX_STACK_MESSAGE = err.message;
+      maxStack_ErrorMessage = err.message;
+      maxStack_ErrorName = err.name;
     }
   }
 
-  return err.name === 'RangeError' && err.message === MAX_STACK_MESSAGE;
+  return err.name === maxStack_ErrorName &&
+         err.message === maxStack_ErrorMessage;
 }
 
 module.exports = exports = {