diff --git a/lib/events.js b/lib/events.js
index e8fd3bbb79259e..50cc720b1247ba 100644
--- a/lib/events.js
+++ b/lib/events.js
@@ -276,12 +276,6 @@ ObjectDefineProperty(EventEmitter, 'defaultMaxListeners', {
   },
 });
 
-function hasEventListener(self, type) {
-  if (type === undefined)
-    return self._events !== undefined;
-  return self._events !== undefined && self._events[type] !== undefined;
-};
-
 ObjectDefineProperties(EventEmitter, {
   kMaxEventTargetListeners: {
     __proto__: null,
@@ -675,11 +669,13 @@ EventEmitter.prototype.removeListener =
     function removeListener(type, listener) {
       checkListener(listener);
 
-      if (!hasEventListener(this, type))
+      const events = this._events;
+      if (events === undefined)
         return this;
 
-      const events = this._events;
       const list = events[type];
+      if (list === undefined)
+        return this;
 
       if (list === listener || list.listener === listener) {
         this._eventsCount -= 1;
@@ -733,9 +729,9 @@ EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
  */
 EventEmitter.prototype.removeAllListeners =
     function removeAllListeners(type) {
-      if (!hasEventListener(this))
-        return this;
       const events = this._events;
+      if (events === undefined)
+        return this;
 
       // Not listening for removeListener, no need to emit
       if (events.removeListener === undefined) {
@@ -780,10 +776,14 @@ EventEmitter.prototype.removeAllListeners =
     };
 
 function _listeners(target, type, unwrap) {
-  if (!hasEventListener(target, type))
+  const events = target._events;
+
+  if (events === undefined)
     return [];
 
-  const evlistener = target._events[type];
+  const evlistener = events[type];
+  if (evlistener === undefined)
+    return [];
 
   if (typeof evlistener === 'function')
     return unwrap ? [evlistener.listener || evlistener] : [evlistener];