File indexing completed on 2024-04-28 15:28:39
0001 /* Copyright (C) 2018 froglogic GmbH */ 0002 0003 shouldBe("String.prototype.includes.length", "1"); 0004 0005 // simple 0006 shouldBeTrue("'abc'.includes('a')"); 0007 shouldBeTrue("'abc'.includes('b')"); 0008 shouldBeTrue("'abc'.includes('c')"); 0009 shouldBeTrue("'abc'.includes('bc')"); 0010 shouldBeTrue("'abc'.includes('abc')"); 0011 shouldBeFalse("'abc'.includes('d')"); 0012 shouldBeFalse("'abc'.includes('abcd')"); 0013 0014 // with start position 0015 shouldBeTrue("'abc'.includes('a', 0)"); 0016 shouldBeTrue("'abc'.includes('a', -1)"); 0017 shouldBeFalse("'abc'.includes('a', 1)"); 0018 shouldBeFalse("'abc'.includes('a', 4)"); 0019 shouldBeTrue("'abc'.includes('a', -Infinity)"); 0020 shouldBeFalse("'abc'.includes('a', +Infinity)"); 0021 0022 // non-numerical position parameter 0023 shouldBeTrue("'abc'.includes('a', undefined)"); 0024 shouldBeTrue("'abc'.includes('a', null)"); 0025 shouldBeTrue("'abc'.includes('a', NaN)"); 0026 shouldBeTrue("'abc'.includes('a', '0')"); 0027 shouldBeFalse("'abc'.includes('a', '1')"); 0028 0029 // non-string objects 0030 shouldBeTrue("'123'.includes(2)"); 0031 shouldBeFalse("'123'.includes(4)"); 0032 var arr = ['a', 'b']; 0033 arr.includes = String.prototype.includes; 0034 shouldBeTrue("arr.includes('a')"); 0035 var obj = { toString: function() { return "xyz"; } }; 0036 obj.includes = String.prototype.includes; 0037 shouldBeTrue("obj.includes('xyz')"); 0038 0039 // invalid 0040 shouldThrow("'abc'.includes(/a/)");