'use strict';require('../shim')();vartest=require('tape');vardefineProperties=require('define-properties');varbind=require('function-bind');varisEnumerable=Object.prototype.propertyIsEnumerable;varfunctionsHaveNames=require('functions-have-names')();varrunTests=require('./tests');test('shimmed',function(t){t.equal(Array.prototype.includes.length,1,'Array#includes has a length of 1');t.test('Function name',{skip:!functionsHaveNames},function(st){st.equal(Array.prototype.includes.name,'includes','Array#includes has name "includes"');st.end();});t.test('enumerability',{skip:!defineProperties.supportsDescriptors},function(et){et.equal(false,isEnumerable.call(Array.prototype,'includes'),'Array#includes is not enumerable');et.end();});varsupportsStrictMode=(function(){returntypeofthis==='undefined';}());t.test('bad array/this value',{skip:!supportsStrictMode},function(st){st['throws'](function(){returnArray.prototype.includes.call(undefined,'a');},TypeError,'undefined is not an object');st['throws'](function(){returnArray.prototype.includes.call(null,'a');},TypeError,'null is not an object');st.end();});runTests(bind.call(Function.call,Array.prototype.includes),t);t.end();});