/**
  * Nashorn extension: Error.captureStackTrace. Capture stack trace at the point of call into the
  * Error object provided.
  *
  * @param self self reference
  * @param errorObj the error object
  * @return undefined
  */
 @Function(attributes = Attribute.NOT_ENUMERABLE, where = Where.CONSTRUCTOR)
 public static Object captureStackTrace(final Object self, final Object errorObj) {
   final ScriptObject sobj = Global.checkObject(errorObj);
   initException(sobj);
   sobj.delete(STACK, false);
   if (!sobj.has("stack")) {
     final ScriptFunction getStack = ScriptFunctionImpl.makeFunction("getStack", GET_STACK);
     final ScriptFunction setStack = ScriptFunctionImpl.makeFunction("setStack", SET_STACK);
     sobj.addOwnProperty("stack", Attribute.NOT_ENUMERABLE, getStack, setStack);
   }
   return UNDEFINED;
 }