diff --git a/node_modules/array-includes/implementation.js b/node_modules/array-includes/implementation.js
new file mode 100644
index 0000000..93fa3e8
--- /dev/null
+++ b/node_modules/array-includes/implementation.js
@@ -0,0 +1,35 @@
+'use strict';
+
+var ToInteger = require('es-abstract/2018/ToInteger');
+var ToLength = require('es-abstract/2018/ToLength');
+var ToObject = require('es-abstract/2018/ToObject');
+var SameValueZero = require('es-abstract/2018/SameValueZero');
+var $isNaN = require('es-abstract/helpers/isNaN');
+var $isFinite = require('es-abstract/helpers/isFinite');
+var GetIntrinsic = require('es-abstract/GetIntrinsic');
+var callBound = require('es-abstract/helpers/callBound');
+var isString = require('is-string');
+
+var $charAt = callBound('String.prototype.charAt');
+var $indexOf = GetIntrinsic('%Array.prototype.indexOf%'); // TODO: use callBind.apply without breaking IE 8
+
+module.exports = function includes(searchElement) {
+	var fromIndex = arguments.length > 1 ? ToInteger(arguments[1]) : 0;
+	if ($indexOf && !$isNaN(searchElement) && $isFinite(fromIndex) && typeof searchElement !== 'undefined') {
+		return $indexOf.apply(this, arguments) > -1;
+	}
+
+	var O = ToObject(this);
+	var length = ToLength(O.length);
+	if (length === 0) {
+		return false;
+	}
+	var k = fromIndex >= 0 ? fromIndex : Math.max(0, length + fromIndex);
+	while (k < length) {
+		if (SameValueZero(searchElement, isString(O) ? $charAt(O, k) : O[k])) {
+			return true;
+		}
+		k += 1;
+	}
+	return false;
+};
