Best JavaScript code snippet using redwood
array-indexing-receiver.js
Source:array-indexing-receiver.js
...15 var array = [r, s, p];16 assertTrue(%HasObjectElements(array));17 assertFalse(%HasHoleyElements(array));18 for (var i = 0; i < kIterCount; ++i) {19 assertEquals(array.indexOf(p), 2);20 assertEquals(array.indexOf(o), -1);21 }22 },23 HOLEY_ELEMENTS() {24 var r = /foo/;25 var p = new Proxy({}, {});26 var o = {};27 var array = [r, , p];28 assertTrue(%HasObjectElements(array));29 assertTrue(%HasHoleyElements(array));30 for (var i = 0; i < kIterCount; ++i) {31 assertEquals(array.indexOf(p), 2);32 assertEquals(array.indexOf(o), -1);33 }34 },35 PACKED_SMI_ELEMENTS() {36 var array = [0, 88, 9999, 1, -5, 7];37 assertTrue(%HasSmiElements(array));38 assertFalse(%HasHoleyElements(array));39 for (var i = 0; i < kIterCount; ++i) {40 assertEquals(array.indexOf(9999), 2);41 assertEquals(array.indexOf(-5), 4);42 assertEquals(array.indexOf(-5.00001), -1);43 assertEquals(array.indexOf(undefined), -1);44 assertEquals(array.indexOf(NaN), -1);45 }46 },47 HOLEY_SMI_ELEMENTS() {48 var array = [49, , , 72, , , 67, -48];49 assertTrue(%HasSmiElements(array));50 assertTrue(%HasHoleyElements(array));51 for (var i = 0; i < kIterCount; ++i) {52 assertEquals(array.indexOf(72), 3);53 assertEquals(array.indexOf(-48), 7);54 assertEquals(array.indexOf(72, 4), -1);55 assertEquals(array.indexOf(undefined), -1);56 assertEquals(array.indexOf(undefined, -2), -1);57 assertEquals(array.indexOf(NaN), -1);58 }59 },60 PACKED_DOUBLE_ELEMENTS() {61 var array = [7.00000001, -13000.89412, 73451.4124,62 5824.48, 6.0000495, 48.3488, 44.0, 76.35, NaN, 78.4];63 assertTrue(%HasDoubleElements(array));64 assertFalse(%HasHoleyElements(array));65 for (var i = 0; i < kIterCount; ++i) {66 assertEquals(array.indexOf(7.00000001), 0);67 assertEquals(array.indexOf(7.00000001, 2), -1);68 assertEquals(array.indexOf(NaN), -1);69 assertEquals(array.indexOf(NaN, -1), -1);70 assertEquals(array.indexOf(-13000.89412), 1);71 assertEquals(array.indexOf(-13000.89412, -2), -1);72 assertEquals(array.indexOf(undefined), -1);73 }74 },75 HOLEY_DOUBLE_ELEMENTS() {76 var array = [7.00000001, -13000.89412, ,77 5824.48, , 48.3488, , NaN, , 78.4];78 assertTrue(%HasDoubleElements(array));79 assertTrue(%HasHoleyElements(array));80 for (var i = 0; i < kIterCount; ++i) {81 assertEquals(array.indexOf(7.00000001), 0);82 assertEquals(array.indexOf(7.00000001, 2), -1);83 assertEquals(array.indexOf(NaN), -1);84 assertEquals(array.indexOf(NaN, -2), -1);85 assertEquals(array.indexOf(-13000.89412), 1);86 assertEquals(array.indexOf(-13000.89412, -2), -1);87 assertEquals(array.indexOf(undefined, -2), -1);88 assertEquals(array.indexOf(undefined, -1), -1);89 }90 },91 DICTIONARY_ELEMENTS() {92 var array = [];93 Object.defineProperty(array, 4, { get() { gc(); return NaN; } });94 Object.defineProperty(array, 7, { value: Function });95 assertTrue(%HasDictionaryElements(array));96 for (var i = 0; i < kIterCount; ++i) {97 assertEquals(array.indexOf(NaN), -1);98 assertEquals(array.indexOf(NaN, -3), -1);99 assertEquals(array.indexOf(Function), 7);100 assertEquals(array.indexOf(undefined), -1);101 assertEquals(array.indexOf(undefined, 7), -1);102 }103 },104 },105 Object: {106 PACKED_ELEMENTS() {107 var r = /foo/;108 var s = new String("bar");109 var p = new Proxy({}, {});110 var o = {};111 var object = { 0: r, 1: s, 2: p, length: 3 };112 assertTrue(%HasObjectElements(object));113 // TODO(caitp): JSObjects always seem to start with HOLEY_ELEMENTS114 // assertFalse(%HasHoleyElements(object));115 for (var i = 0; i < kIterCount; ++i) {...
indexOf.js
Source:indexOf.js
...3const BufferList = require('../')4const { Buffer } = require('buffer')5tape('indexOf single byte needle', (t) => {6 const bl = new BufferList(['abcdefg', 'abcdefg', '12345'])7 t.equal(bl.indexOf('e'), 4)8 t.equal(bl.indexOf('e', 5), 11)9 t.equal(bl.indexOf('e', 12), -1)10 t.equal(bl.indexOf('5'), 18)11 t.end()12})13tape('indexOf multiple byte needle', (t) => {14 const bl = new BufferList(['abcdefg', 'abcdefg'])15 t.equal(bl.indexOf('ef'), 4)16 t.equal(bl.indexOf('ef', 5), 11)17 t.end()18})19tape('indexOf multiple byte needles across buffer boundaries', (t) => {20 const bl = new BufferList(['abcdefg', 'abcdefg'])21 t.equal(bl.indexOf('fgabc'), 5)22 t.end()23})24tape('indexOf takes a Uint8Array search', (t) => {25 const bl = new BufferList(['abcdefg', 'abcdefg'])26 const search = new Uint8Array([102, 103, 97, 98, 99]) // fgabc27 t.equal(bl.indexOf(search), 5)28 t.end()29})30tape('indexOf takes a buffer list search', (t) => {31 const bl = new BufferList(['abcdefg', 'abcdefg'])32 const search = new BufferList('fgabc')33 t.equal(bl.indexOf(search), 5)34 t.end()35})36tape('indexOf a zero byte needle', (t) => {37 const b = new BufferList('abcdef')38 const bufEmpty = Buffer.from('')39 t.equal(b.indexOf(''), 0)40 t.equal(b.indexOf('', 1), 1)41 t.equal(b.indexOf('', b.length + 1), b.length)42 t.equal(b.indexOf('', Infinity), b.length)43 t.equal(b.indexOf(bufEmpty), 0)44 t.equal(b.indexOf(bufEmpty, 1), 1)45 t.equal(b.indexOf(bufEmpty, b.length + 1), b.length)46 t.equal(b.indexOf(bufEmpty, Infinity), b.length)47 t.end()48})49tape('indexOf buffers smaller and larger than the needle', (t) => {50 const bl = new BufferList(['abcdefg', 'a', 'bcdefg', 'a', 'bcfgab'])51 t.equal(bl.indexOf('fgabc'), 5)52 t.equal(bl.indexOf('fgabc', 6), 12)53 t.equal(bl.indexOf('fgabc', 13), -1)54 t.end()55})56// only present in node 6+57;(process.version.substr(1).split('.')[0] >= 6) && tape('indexOf latin1 and binary encoding', (t) => {58 const b = new BufferList('abcdef')59 // test latin1 encoding60 t.equal(61 new BufferList(Buffer.from(b.toString('latin1'), 'latin1'))62 .indexOf('d', 0, 'latin1'),63 364 )65 t.equal(66 new BufferList(Buffer.from(b.toString('latin1'), 'latin1'))67 .indexOf(Buffer.from('d', 'latin1'), 0, 'latin1'),68 369 )70 t.equal(71 new BufferList(Buffer.from('aa\u00e8aa', 'latin1'))72 .indexOf('\u00e8', 'latin1'),73 274 )75 t.equal(76 new BufferList(Buffer.from('\u00e8', 'latin1'))77 .indexOf('\u00e8', 'latin1'),78 079 )80 t.equal(81 new BufferList(Buffer.from('\u00e8', 'latin1'))82 .indexOf(Buffer.from('\u00e8', 'latin1'), 'latin1'),83 084 )85 // test binary encoding86 t.equal(87 new BufferList(Buffer.from(b.toString('binary'), 'binary'))88 .indexOf('d', 0, 'binary'),89 390 )91 t.equal(92 new BufferList(Buffer.from(b.toString('binary'), 'binary'))93 .indexOf(Buffer.from('d', 'binary'), 0, 'binary'),94 395 )96 t.equal(97 new BufferList(Buffer.from('aa\u00e8aa', 'binary'))98 .indexOf('\u00e8', 'binary'),99 2100 )101 t.equal(102 new BufferList(Buffer.from('\u00e8', 'binary'))103 .indexOf('\u00e8', 'binary'),104 0105 )106 t.equal(107 new BufferList(Buffer.from('\u00e8', 'binary'))108 .indexOf(Buffer.from('\u00e8', 'binary'), 'binary'),109 0110 )111 t.end()112})113tape('indexOf the entire nodejs10 buffer test suite', (t) => {114 const b = new BufferList('abcdef')115 const bufA = Buffer.from('a')116 const bufBc = Buffer.from('bc')117 const bufF = Buffer.from('f')118 const bufZ = Buffer.from('z')119 const stringComparison = 'abcdef'120 t.equal(b.indexOf('a'), 0)121 t.equal(b.indexOf('a', 1), -1)122 t.equal(b.indexOf('a', -1), -1)123 t.equal(b.indexOf('a', -4), -1)124 t.equal(b.indexOf('a', -b.length), 0)125 t.equal(b.indexOf('a', NaN), 0)126 t.equal(b.indexOf('a', -Infinity), 0)127 t.equal(b.indexOf('a', Infinity), -1)128 t.equal(b.indexOf('bc'), 1)129 t.equal(b.indexOf('bc', 2), -1)130 t.equal(b.indexOf('bc', -1), -1)131 t.equal(b.indexOf('bc', -3), -1)132 t.equal(b.indexOf('bc', -5), 1)133 t.equal(b.indexOf('bc', NaN), 1)134 t.equal(b.indexOf('bc', -Infinity), 1)135 t.equal(b.indexOf('bc', Infinity), -1)136 t.equal(b.indexOf('f'), b.length - 1)137 t.equal(b.indexOf('z'), -1)138 // empty search tests139 t.equal(b.indexOf(bufA), 0)140 t.equal(b.indexOf(bufA, 1), -1)141 t.equal(b.indexOf(bufA, -1), -1)142 t.equal(b.indexOf(bufA, -4), -1)143 t.equal(b.indexOf(bufA, -b.length), 0)144 t.equal(b.indexOf(bufA, NaN), 0)145 t.equal(b.indexOf(bufA, -Infinity), 0)146 t.equal(b.indexOf(bufA, Infinity), -1)147 t.equal(b.indexOf(bufBc), 1)148 t.equal(b.indexOf(bufBc, 2), -1)149 t.equal(b.indexOf(bufBc, -1), -1)150 t.equal(b.indexOf(bufBc, -3), -1)151 t.equal(b.indexOf(bufBc, -5), 1)152 t.equal(b.indexOf(bufBc, NaN), 1)153 t.equal(b.indexOf(bufBc, -Infinity), 1)154 t.equal(b.indexOf(bufBc, Infinity), -1)155 t.equal(b.indexOf(bufF), b.length - 1)156 t.equal(b.indexOf(bufZ), -1)157 t.equal(b.indexOf(0x61), 0)158 t.equal(b.indexOf(0x61, 1), -1)159 t.equal(b.indexOf(0x61, -1), -1)160 t.equal(b.indexOf(0x61, -4), -1)161 t.equal(b.indexOf(0x61, -b.length), 0)162 t.equal(b.indexOf(0x61, NaN), 0)163 t.equal(b.indexOf(0x61, -Infinity), 0)164 t.equal(b.indexOf(0x61, Infinity), -1)165 t.equal(b.indexOf(0x0), -1)166 // test offsets167 t.equal(b.indexOf('d', 2), 3)168 t.equal(b.indexOf('f', 5), 5)169 t.equal(b.indexOf('f', -1), 5)170 t.equal(b.indexOf('f', 6), -1)171 t.equal(b.indexOf(Buffer.from('d'), 2), 3)172 t.equal(b.indexOf(Buffer.from('f'), 5), 5)173 t.equal(b.indexOf(Buffer.from('f'), -1), 5)174 t.equal(b.indexOf(Buffer.from('f'), 6), -1)175 t.equal(Buffer.from('ff').indexOf(Buffer.from('f'), 1, 'ucs2'), -1)176 // test invalid and uppercase encoding177 t.equal(b.indexOf('b', 'utf8'), 1)178 t.equal(b.indexOf('b', 'UTF8'), 1)179 t.equal(b.indexOf('62', 'HEX'), 1)180 t.throws(() => b.indexOf('bad', 'enc'), TypeError)181 // test hex encoding182 t.equal(183 Buffer.from(b.toString('hex'), 'hex')184 .indexOf('64', 0, 'hex'),185 3186 )187 t.equal(188 Buffer.from(b.toString('hex'), 'hex')189 .indexOf(Buffer.from('64', 'hex'), 0, 'hex'),190 3191 )192 // test base64 encoding193 t.equal(194 Buffer.from(b.toString('base64'), 'base64')195 .indexOf('ZA==', 0, 'base64'),196 3197 )198 t.equal(199 Buffer.from(b.toString('base64'), 'base64')200 .indexOf(Buffer.from('ZA==', 'base64'), 0, 'base64'),201 3202 )203 // test ascii encoding204 t.equal(205 Buffer.from(b.toString('ascii'), 'ascii')206 .indexOf('d', 0, 'ascii'),207 3208 )209 t.equal(210 Buffer.from(b.toString('ascii'), 'ascii')211 .indexOf(Buffer.from('d', 'ascii'), 0, 'ascii'),212 3213 )214 // test optional offset with passed encoding215 t.equal(Buffer.from('aaaa0').indexOf('30', 'hex'), 4)216 t.equal(Buffer.from('aaaa00a').indexOf('3030', 'hex'), 4)217 {218 // test usc2 encoding219 const twoByteString = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'ucs2')220 t.equal(8, twoByteString.indexOf('\u0395', 4, 'ucs2'))221 t.equal(6, twoByteString.indexOf('\u03a3', -4, 'ucs2'))222 t.equal(4, twoByteString.indexOf('\u03a3', -6, 'ucs2'))223 t.equal(4, twoByteString.indexOf(224 Buffer.from('\u03a3', 'ucs2'), -6, 'ucs2'))225 t.equal(-1, twoByteString.indexOf('\u03a3', -2, 'ucs2'))226 }227 const mixedByteStringUcs2 =228 Buffer.from('\u039a\u0391abc\u03a3\u03a3\u0395', 'ucs2')229 t.equal(6, mixedByteStringUcs2.indexOf('bc', 0, 'ucs2'))230 t.equal(10, mixedByteStringUcs2.indexOf('\u03a3', 0, 'ucs2'))231 t.equal(-1, mixedByteStringUcs2.indexOf('\u0396', 0, 'ucs2'))232 t.equal(233 6, mixedByteStringUcs2.indexOf(Buffer.from('bc', 'ucs2'), 0, 'ucs2'))234 t.equal(235 10, mixedByteStringUcs2.indexOf(Buffer.from('\u03a3', 'ucs2'), 0, 'ucs2'))236 t.equal(237 -1, mixedByteStringUcs2.indexOf(Buffer.from('\u0396', 'ucs2'), 0, 'ucs2'))238 {239 const twoByteString = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'ucs2')240 // Test single char pattern241 t.equal(0, twoByteString.indexOf('\u039a', 0, 'ucs2'))242 let index = twoByteString.indexOf('\u0391', 0, 'ucs2')243 t.equal(2, index, `Alpha - at index ${index}`)244 index = twoByteString.indexOf('\u03a3', 0, 'ucs2')245 t.equal(4, index, `First Sigma - at index ${index}`)246 index = twoByteString.indexOf('\u03a3', 6, 'ucs2')247 t.equal(6, index, `Second Sigma - at index ${index}`)248 index = twoByteString.indexOf('\u0395', 0, 'ucs2')249 t.equal(8, index, `Epsilon - at index ${index}`)250 index = twoByteString.indexOf('\u0392', 0, 'ucs2')251 t.equal(-1, index, `Not beta - at index ${index}`)252 // Test multi-char pattern253 index = twoByteString.indexOf('\u039a\u0391', 0, 'ucs2')254 t.equal(0, index, `Lambda Alpha - at index ${index}`)255 index = twoByteString.indexOf('\u0391\u03a3', 0, 'ucs2')256 t.equal(2, index, `Alpha Sigma - at index ${index}`)257 index = twoByteString.indexOf('\u03a3\u03a3', 0, 'ucs2')258 t.equal(4, index, `Sigma Sigma - at index ${index}`)259 index = twoByteString.indexOf('\u03a3\u0395', 0, 'ucs2')260 t.equal(6, index, `Sigma Epsilon - at index ${index}`)261 }262 const mixedByteStringUtf8 = Buffer.from('\u039a\u0391abc\u03a3\u03a3\u0395')263 t.equal(5, mixedByteStringUtf8.indexOf('bc'))264 t.equal(5, mixedByteStringUtf8.indexOf('bc', 5))265 t.equal(5, mixedByteStringUtf8.indexOf('bc', -8))266 t.equal(7, mixedByteStringUtf8.indexOf('\u03a3'))267 t.equal(-1, mixedByteStringUtf8.indexOf('\u0396'))268 // Test complex string indexOf algorithms. Only trigger for long strings.269 // Long string that isn't a simple repeat of a shorter string.270 let longString = 'A'271 for (let i = 66; i < 76; i++) { // from 'B' to 'K'272 longString = longString + String.fromCharCode(i) + longString273 }274 const longBufferString = Buffer.from(longString)275 // pattern of 15 chars, repeated every 16 chars in long276 let pattern = 'ABACABADABACABA'277 for (let i = 0; i < longBufferString.length - pattern.length; i += 7) {278 const index = longBufferString.indexOf(pattern, i)279 t.equal((i + 15) & ~0xf, index,280 `Long ABACABA...-string at index ${i}`)281 }282 let index = longBufferString.indexOf('AJABACA')283 t.equal(510, index, `Long AJABACA, First J - at index ${index}`)284 index = longBufferString.indexOf('AJABACA', 511)285 t.equal(1534, index, `Long AJABACA, Second J - at index ${index}`)286 pattern = 'JABACABADABACABA'287 index = longBufferString.indexOf(pattern)288 t.equal(511, index, `Long JABACABA..., First J - at index ${index}`)289 index = longBufferString.indexOf(pattern, 512)290 t.equal(291 1535, index, `Long JABACABA..., Second J - at index ${index}`)292 // Search for a non-ASCII string in a pure ASCII string.293 const asciiString = Buffer.from(294 'somethingnotatallsinisterwhichalsoworks')295 t.equal(-1, asciiString.indexOf('\x2061'))296 t.equal(3, asciiString.indexOf('eth', 0))297 // Search in string containing many non-ASCII chars.298 const allCodePoints = []299 for (let i = 0; i < 65536; i++) {300 allCodePoints[i] = i301 }302 const allCharsString = String.fromCharCode.apply(String, allCodePoints)303 const allCharsBufferUtf8 = Buffer.from(allCharsString)304 const allCharsBufferUcs2 = Buffer.from(allCharsString, 'ucs2')305 // Search for string long enough to trigger complex search with ASCII pattern306 // and UC16 subject.307 t.equal(-1, allCharsBufferUtf8.indexOf('notfound'))308 t.equal(-1, allCharsBufferUcs2.indexOf('notfound'))309 // Needle is longer than haystack, but only because it's encoded as UTF-16310 t.equal(Buffer.from('aaaa').indexOf('a'.repeat(4), 'ucs2'), -1)311 t.equal(Buffer.from('aaaa').indexOf('a'.repeat(4), 'utf8'), 0)312 t.equal(Buffer.from('aaaa').indexOf('ä½ å¥½', 'ucs2'), -1)313 // Haystack has odd length, but the needle is UCS2.314 t.equal(Buffer.from('aaaaa').indexOf('b', 'ucs2'), -1)315 {316 // Find substrings in Utf8.317 const lengths = [1, 3, 15] // Single char, simple and complex.318 const indices = [0x5, 0x60, 0x400, 0x680, 0x7ee, 0xFF02, 0x16610, 0x2f77b]319 for (let lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) {320 for (let i = 0; i < indices.length; i++) {321 const index = indices[i]322 let length = lengths[lengthIndex]323 if (index + length > 0x7F) {324 length = 2 * length325 }326 if (index + length > 0x7FF) {327 length = 3 * length328 }329 if (index + length > 0xFFFF) {330 length = 4 * length331 }332 const patternBufferUtf8 = allCharsBufferUtf8.slice(index, index + length)333 t.equal(index, allCharsBufferUtf8.indexOf(patternBufferUtf8))334 const patternStringUtf8 = patternBufferUtf8.toString()335 t.equal(index, allCharsBufferUtf8.indexOf(patternStringUtf8))336 }337 }338 }339 {340 // Find substrings in Usc2.341 const lengths = [2, 4, 16] // Single char, simple and complex.342 const indices = [0x5, 0x65, 0x105, 0x205, 0x285, 0x2005, 0x2085, 0xfff0]343 for (let lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) {344 for (let i = 0; i < indices.length; i++) {345 const index = indices[i] * 2346 const length = lengths[lengthIndex]347 const patternBufferUcs2 =348 allCharsBufferUcs2.slice(index, index + length)349 t.equal(350 index, allCharsBufferUcs2.indexOf(patternBufferUcs2, 0, 'ucs2'))351 const patternStringUcs2 = patternBufferUcs2.toString('ucs2')352 t.equal(353 index, allCharsBufferUcs2.indexOf(patternStringUcs2, 0, 'ucs2'))354 }355 }356 }357 [358 () => {},359 {},360 []361 ].forEach((val) => {362 t.throws(() => b.indexOf(val), TypeError, `"${JSON.stringify(val)}" should throw`)363 })364 // Test weird offset arguments.365 // The following offsets coerce to NaN or 0, searching the whole Buffer366 t.equal(b.indexOf('b', undefined), 1)367 t.equal(b.indexOf('b', {}), 1)368 t.equal(b.indexOf('b', 0), 1)369 t.equal(b.indexOf('b', null), 1)370 t.equal(b.indexOf('b', []), 1)371 // The following offset coerces to 2, in other words +[2] === 2372 t.equal(b.indexOf('b', [2]), -1)373 // Behavior should match String.indexOf()374 t.equal(375 b.indexOf('b', undefined),376 stringComparison.indexOf('b', undefined))377 t.equal(378 b.indexOf('b', {}),379 stringComparison.indexOf('b', {}))380 t.equal(381 b.indexOf('b', 0),382 stringComparison.indexOf('b', 0))383 t.equal(384 b.indexOf('b', null),385 stringComparison.indexOf('b', null))386 t.equal(387 b.indexOf('b', []),388 stringComparison.indexOf('b', []))389 t.equal(390 b.indexOf('b', [2]),391 stringComparison.indexOf('b', [2]))392 // test truncation of Number arguments to uint8393 {394 const buf = Buffer.from('this is a test')395 t.equal(buf.indexOf(0x6973), 3)396 t.equal(buf.indexOf(0x697320), 4)397 t.equal(buf.indexOf(0x69732069), 2)398 t.equal(buf.indexOf(0x697374657374), 0)399 t.equal(buf.indexOf(0x69737374), 0)400 t.equal(buf.indexOf(0x69737465), 11)401 t.equal(buf.indexOf(0x69737465), 11)402 t.equal(buf.indexOf(-140), 0)403 t.equal(buf.indexOf(-152), 1)404 t.equal(buf.indexOf(0xff), -1)405 t.equal(buf.indexOf(0xffff), -1)406 }407 // Test that Uint8Array arguments are okay.408 {409 const needle = new Uint8Array([0x66, 0x6f, 0x6f])410 const haystack = new BufferList(Buffer.from('a foo b foo'))411 t.equal(haystack.indexOf(needle), 2)412 }413 t.end()...
15.5.4.6-2.js
Source:15.5.4.6-2.js
...3 * License, v. 2.0. If a copy of the MPL was not distributed with this4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */5/**6 File Name: 15.5.4.6-1.js7 ECMA Section: 15.5.4.6 String.prototype.indexOf( searchString, pos)8 Description: If the given searchString appears as a substring of the9 result of converting this object to a string, at one or10 more positions that are at or to the right of the11 specified position, then the index of the leftmost such12 position is returned; otherwise -1 is returned. If13 positionis undefined or not supplied, 0 is assumed, so14 as to search all of the string.15 When the indexOf method is called with two arguments,16 searchString and pos, the following steps are taken:17 1. Call ToString, giving it the this value as its18 argument.19 2. Call ToString(searchString).20 3. Call ToInteger(position). (If position is undefined21 or not supplied, this step produces the value 0).22 4. Compute the number of characters in Result(1).23 5. Compute min(max(Result(3), 0), Result(4)).24 6. Compute the number of characters in the string that25 is Result(2).26 7. Compute the smallest possible integer k not smaller27 than Result(5) such that k+Result(6) is not greater28 than Result(4), and for all nonnegative integers j29 less than Result(6), the character at position k+j30 of Result(1) is the same as the character at position31 j of Result(2); but if there is no such integer k,32 then compute the value -1.33 8. Return Result(7).34 Note that the indexOf function is intentionally generic;35 it does not require that its this value be a String object.36 Therefore it can be transferred to other kinds of objects37 for use as a method.38 Author: christine@netscape.com, pschwartau@netscape.com39 Date: 02 October 199740 Modified: 14 July 200241 Reason: See http://bugzilla.mozilla.org/show_bug.cgi?id=15528942 ECMA-262 Ed.3 Section 15.5.4.743 The length property of the indexOf method is 144 *45 */46var SECTION = "15.5.4.6-2";47var VERSION = "ECMA_1";48var TITLE = "String.protoype.indexOf";49var BUGNUMBER="105721";50startTest();51writeHeaderToLog( SECTION + " "+ TITLE);52// the following test regresses http://scopus/bugsplat/show_bug.cgi?id=10572153// regress http://scopus/bugsplat/show_bug.cgi?id=10572154new TestCase( SECTION,55 "function f() { return this; }; function g() { var h = f; return h(); }; g().toString()", 56 GLOBAL, 57 g().toString()58 );59new TestCase( SECTION, "String.prototype.indexOf.length", 1, String.prototype.indexOf.length );60new TestCase( SECTION, "String.prototype.indexOf.length = null; String.prototype.indexOf.length", 1, eval("String.prototype.indexOf.length = null; String.prototype.indexOf.length") );61new TestCase( SECTION,62 "var s = new String(); s.indexOf()", 63 -1, 64 eval("var s = new String(); s.indexOf()") );65// some Unicode tests.66// generate a test string.67var TEST_STRING = "";68for ( var u = 0x00A1; u <= 0x00FF; u++ ) {69 TEST_STRING += String.fromCharCode( u );70}71for ( var u = 0x00A1, i = 0; u <= 0x00FF; u++, i++ ) {72 new TestCase( SECTION,73 "TEST_STRING.indexOf( " + String.fromCharCode(u) + " )",74 i,75 TEST_STRING.indexOf( String.fromCharCode(u) ) );76}77for ( var u = 0x00A1, i = 0; u <= 0x00FF; u++, i++ ) {78 new TestCase( SECTION,79 "TEST_STRING.indexOf( " + String.fromCharCode(u) + ", void 0 )",80 i,81 TEST_STRING.indexOf( String.fromCharCode(u), void 0 ) );82}83var foo = new MyObject('hello');84new TestCase( SECTION, "var foo = new MyObject('hello');foo.indexOf('h')", 0, foo.indexOf("h") );85new TestCase( SECTION, "var foo = new MyObject('hello');foo.indexOf('e')", 1, foo.indexOf("e") );86new TestCase( SECTION, "var foo = new MyObject('hello');foo.indexOf('l')", 2, foo.indexOf("l") );87new TestCase( SECTION, "var foo = new MyObject('hello');foo.indexOf('l')", 2, foo.indexOf("l") );88new TestCase( SECTION, "var foo = new MyObject('hello');foo.indexOf('o')", 4, foo.indexOf("o") );89new TestCase( SECTION, "var foo = new MyObject('hello');foo.indexOf('X')", -1, foo.indexOf("X") );90new TestCase( SECTION, "var foo = new MyObject('hello');foo.indexOf(5) ", -1, foo.indexOf(5) );91var boo = new MyObject(true);92new TestCase( SECTION, "var boo = new MyObject(true);boo.indexOf('t')", 0, boo.indexOf("t") );93new TestCase( SECTION, "var boo = new MyObject(true);boo.indexOf('r')", 1, boo.indexOf("r") );94new TestCase( SECTION, "var boo = new MyObject(true);boo.indexOf('u')", 2, boo.indexOf("u") );95new TestCase( SECTION, "var boo = new MyObject(true);boo.indexOf('e')", 3, boo.indexOf("e") );96new TestCase( SECTION, "var boo = new MyObject(true);boo.indexOf('true')", 0, boo.indexOf("true") );97new TestCase( SECTION, "var boo = new MyObject(true);boo.indexOf('rue')", 1, boo.indexOf("rue") );98new TestCase( SECTION, "var boo = new MyObject(true);boo.indexOf('ue')", 2, boo.indexOf("ue") );99new TestCase( SECTION, "var boo = new MyObject(true);boo.indexOf('oy')", -1, boo.indexOf("oy") );100var noo = new MyObject( Math.PI );101new TestCase( SECTION, "var noo = new MyObject(Math.PI); noo.indexOf('3') ", 0, noo.indexOf('3') );102new TestCase( SECTION, "var noo = new MyObject(Math.PI); noo.indexOf('.') ", 1, noo.indexOf('.') );103new TestCase( SECTION, "var noo = new MyObject(Math.PI); noo.indexOf('1') ", 2, noo.indexOf('1') );104new TestCase( SECTION, "var noo = new MyObject(Math.PI); noo.indexOf('4') ", 3, noo.indexOf('4') );105new TestCase( SECTION, "var noo = new MyObject(Math.PI); noo.indexOf('1') ", 2, noo.indexOf('1') );106new TestCase( SECTION, "var noo = new MyObject(Math.PI); noo.indexOf('5') ", 5, noo.indexOf('5') );107new TestCase( SECTION, "var noo = new MyObject(Math.PI); noo.indexOf('9') ", 6, noo.indexOf('9') );108new TestCase( SECTION,109 "var arr = new Array('new','zoo','revue'); arr.indexOf = String.prototype.indexOf; arr.indexOf('new')",110 0,111 eval("var arr = new Array('new','zoo','revue'); arr.indexOf = String.prototype.indexOf; arr.indexOf('new')") );112new TestCase( SECTION,113 "var arr = new Array('new','zoo','revue'); arr.indexOf = String.prototype.indexOf; arr.indexOf(',zoo,')",114 3,115 eval("var arr = new Array('new','zoo','revue'); arr.indexOf = String.prototype.indexOf; arr.indexOf(',zoo,')") );116new TestCase( SECTION,117 "var obj = new Object(); obj.indexOf = String.prototype.indexOf; obj.indexOf('[object Object]')",118 0,119 eval("var obj = new Object(); obj.indexOf = String.prototype.indexOf; obj.indexOf('[object Object]')") );120new TestCase( SECTION,121 "var obj = new Object(); obj.indexOf = String.prototype.indexOf; obj.indexOf('bject')",122 2,123 eval("var obj = new Object(); obj.indexOf = String.prototype.indexOf; obj.indexOf('bject')") );124new TestCase( SECTION,125 "var f = new Function(); f.toString = Object.prototype.toString; f.indexOf = String.prototype.indexOf; f.indexOf('[object Function]')",126 0,127 eval("var f = new Function(); f.toString = Object.prototype.toString; f.indexOf = String.prototype.indexOf; f.indexOf('[object Function]')") );128new TestCase( SECTION,129 "var b = new Boolean(); b.indexOf = String.prototype.indexOf; b.indexOf('true')",130 -1,131 eval("var b = new Boolean(); b.indexOf = String.prototype.indexOf; b.indexOf('true')") );132new TestCase( SECTION,133 "var b = new Boolean(); b.indexOf = String.prototype.indexOf; b.indexOf('false', 1)",134 -1,135 eval("var b = new Boolean(); b.indexOf = String.prototype.indexOf; b.indexOf('false', 1)") );136new TestCase( SECTION,137 "var b = new Boolean(); b.indexOf = String.prototype.indexOf; b.indexOf('false', 0)",138 0,139 eval("var b = new Boolean(); b.indexOf = String.prototype.indexOf; b.indexOf('false', 0)") );140new TestCase( SECTION,141 "var n = new Number(1e21); n.indexOf = String.prototype.indexOf; n.indexOf('e')",142 1,143 eval("var n = new Number(1e21); n.indexOf = String.prototype.indexOf; n.indexOf('e')") );144new TestCase( SECTION,145 "var n = new Number(-Infinity); n.indexOf = String.prototype.indexOf; n.indexOf('-')",146 0,147 eval("var n = new Number(-Infinity); n.indexOf = String.prototype.indexOf; n.indexOf('-')") );148new TestCase( SECTION,149 "var n = new Number(0xFF); n.indexOf = String.prototype.indexOf; n.indexOf('5')",150 1,151 eval("var n = new Number(0xFF); n.indexOf = String.prototype.indexOf; n.indexOf('5')") );152new TestCase( SECTION,153 "var m = Math; m.indexOf = String.prototype.indexOf; m.indexOf( 'Math' )",154 8,155 eval("var m = Math; m.indexOf = String.prototype.indexOf; m.indexOf( 'Math' )") );156// new Date(0) has '31' or '01' at index 8 depending on whether tester is (GMT-) or (GMT+), respectively157new TestCase( SECTION,158 "var d = new Date(0); d.indexOf = String.prototype.indexOf; d.getTimezoneOffset()>0 ? d.indexOf('31') : d.indexOf('01')",159 8,160 eval("var d = new Date(0); d.indexOf = String.prototype.indexOf; d.getTimezoneOffset()>0 ? d.indexOf('31') : d.indexOf('01')") );161test();162function f() {163 return this;164}165function g() {166 var h = f;167 return h();168}169function MyObject (v) {170 this.value = v;171 this.toString = new Function ( "return this.value +\"\"");172 this.indexOf = String.prototype.indexOf;...
auto-detect-browserName.JS
Source:auto-detect-browserName.JS
1 var geckobrowsers;2 var browser = "";3 var agent = navigator.userAgent;4 if (agent.substring(agent.indexOf("Mozilla/") + 8, agent.indexOf(" ")) == "5.0" && agent.indexOf("like Gecko") != -1) {5 geckobrowsers = agent.substring(agent.indexOf("like Gecko") + 10).substring(agent.substring(agent.indexOf("like Gecko") + 10).indexOf(") ") + 2).replace("LG Browser", "LGBrowser").replace("360SE", "360SE/");6 for (i = 0; i < 1; i++) {7 geckobrowsers = geckobrowsers.replace(geckobrowsers.substring(geckobrowsers.indexOf("("), geckobrowsers.indexOf(")") + 1), "");8 }9 geckobrowsers = geckobrowsers.split(" ");10 for (i = 0; i < geckobrowsers.length; i++) {11 if (geckobrowsers[i].indexOf("/") == -1) geckobrowsers[i] = "Chrome";12 if (geckobrowsers[i].indexOf("/") != -1) geckobrowsers[i] = geckobrowsers[i].substring(0, geckobrowsers[i].indexOf("/"));13 }14 if (geckobrowsers.length < 4) {15 browser = geckobrowsers[0];16 } else {17 for (i = 0; i < geckobrowsers.length; i++) {18 if (geckobrowsers[i].indexOf("Chrome") == -1 && geckobrowsers[i].indexOf("Safari") == -1 && geckobrowsers[i].indexOf("Mobile") == -1 && geckobrowsers[i].indexOf("Version") == -1)19 browser = geckobrowsers[i];20 }21 }22 // browserVersion = agent.substring(agent.indexOf(browser)+browser.length+1, agent.indexOf(browser)+browser.length+1+agent.substring(agent.indexOf(browser)+browser.length+1).indexOf(" "));23 } else if (agent.substring(agent.indexOf("Mozilla/") + 8, agent.indexOf(" ")) == "5.0" && agent.indexOf("Gecko/") != -1) {24 browser = agent.substring(agent.substring(agent.indexOf("Gecko/") + 6).indexOf(" ") + agent.indexOf("Gecko/") + 6).substring(0, agent.substring(agent.substring(agent.indexOf("Gecko/") + 6).indexOf(" ") + agent.indexOf("Gecko/") + 6).indexOf("/"));25 } else if (agent.substring(agent.indexOf("Mozilla/") + 8, agent.indexOf(" ")) == "5.0" && agent.indexOf("Clecko/") != -1) {26 browser = agent.substring(agent.substring(agent.indexOf("Clecko/") + 7).indexOf(" ") + agent.indexOf("Clecko/") + 7).substring(0, agent.substring(agent.substring(agent.indexOf("Clecko/") + 7).indexOf(" ") + agent.indexOf("Clecko/") + 7).indexOf("/"));27 // browserVersion = agent.substring(agent.indexOf(browser)+browser.length+1, agent.indexOf(browser)+browser.length+1+agent.substring(agent.indexOf(browser)+browser.length+1).indexOf(" "));28 } else if (agent.substring(agent.indexOf("Mozilla/") + 8, agent.indexOf(" ")) == "5.0") {29 browser = agent.substring(agent.indexOf("(") + 1, agent.indexOf(";"));30 // browserVersion = agent.substring(agent.indexOf(browser)+browser.length+1, agent.indexOf(browser)+browser.length+1+agent.substring(agent.indexOf(browser)+browser.length+1).indexOf(" "));31 } else if (agent.substring(agent.indexOf("Mozilla/") + 8, agent.indexOf(" ")) == "4.0" && agent.indexOf(")") + 1 == agent.length - 1) {32 browser = agent.substring(agent.indexOf("(") + 1, agent.indexOf(")")).split("; ")[agent.substring(agent.indexOf("(") + 1, agent.indexOf(")")).split("; ").length - 1];33 } else if (agent.substring(agent.indexOf("Mozilla/") + 8, agent.indexOf(" ")) == "4.0" && agent.indexOf(")") + 1 != agent.length - 1) {34 if (agent.substring(agent.indexOf(") ") + 2).indexOf("/") != -1) browser = agent.substring(agent.indexOf(") ") + 2, agent.indexOf(") ") + 2 + agent.substring(agent.indexOf(") ") + 2).indexOf("/"));35 if (agent.substring(agent.indexOf(") ") + 2).indexOf("/") == -1) browser = agent.substring(agent.indexOf(") ") + 2, agent.indexOf(") ") + 2 + agent.substring(agent.indexOf(") ") + 2).indexOf(" "));36 // browserVersion = agent.substring(agent.indexOf(browser)+browser.length+1, agent.indexOf(browser)+browser.length+1+agent.substring(agent.indexOf(browser)+browser.length+1).indexOf(" "));37 } else if (agent.substring(0, 6) == "Opera/") {38 browser = "Opera";39 // browserVersion = agent.substring(agent.indexOf(browser)+browser.length+1, agent.indexOf(browser)+browser.length+1+agent.substring(agent.indexOf(browser)+browser.length+1).indexOf(" "));40 if (agent.substring(agent.indexOf("(") + 1).indexOf(";") != -1) os = agent.substring(agent.indexOf("(") + 1, agent.indexOf("(") + 1 + agent.substring(agent.indexOf("(") + 1).indexOf(";"));41 if (agent.substring(agent.indexOf("(") + 1).indexOf(";") == -1) os = agent.substring(agent.indexOf("(") + 1, agent.indexOf("(") + 1 + agent.substring(agent.indexOf("(") + 1).indexOf(")"));42 } else if (agent.substring(0, agent.indexOf("/")) != "Mozilla" && agent.substring(0, agent.indexOf("/")) != "Opera") {43 browser = agent.substring(0, agent.indexOf("/"));44 // browserVersion = agent.substring(agent.indexOf(browser)+browser.length+1, agent.indexOf(browser)+browser.length+1+agent.substring(agent.indexOf(browser)+browser.length+1).indexOf(" "));45 } else {46 browser = agent;47 }
...
Using AI Code Generation
1 query {2 posts {3 }4 }5export const Loading = () => <div>Loading...</div>6export const Empty = () => <div>No posts</div>7export const Failure = ({ error }) => <div>Error: {error.message}</div>8export const Success = ({ posts }) => {9 return JSON.stringify(posts)10}
Using AI Code Generation
1var redwood = require('redwood');2var indexOf = redwood('indexOf');3var array = [1, 2, 3, 4, 5];4var index = indexOf(array, 3);5var redwood = require('redwood');6var indexOf = redwood('indexOf');7var array = [1, 2, 3, 4, 5];8var index = indexOf(array, 3);9var redwood = require('redwood');10var indexOf = redwood({11});12var array = [1, 2, 3, 4, 5];13var index = indexOf(array, 3);14var redwood = require('redwood');15var indexOf = redwood({16});17var array = [1, 2, 3, 4, 5];18var index = indexOf(array, 3);
Using AI Code Generation
1var redwood = require('redwood');2var indexOf = redwood('indexOf');3var arr = [1,2,3,4,5];4var index = indexOf(arr, 3);5var redwood = require('redwood');6var indexOf = redwood('indexOf');7var arr = [1,2,3,4,5];8var index = indexOf(arr, 3);9var redwood = require('redwood');10var indexOf = redwood('indexOf');11var arr = [1,2,3,4,5];12var index = indexOf(arr, 3);13var redwood = require('redwood');14var indexOf = redwood('indexOf');15var arr = [1,2,3,4,5];16var index = indexOf(arr, 3);17var redwood = require('redwood');18var indexOf = redwood('indexOf');19var arr = [1,2,3,4,5];20var index = indexOf(arr, 3);21var redwood = require('redwood');22var indexOf = redwood('indexOf');23var arr = [1,2,3,4,5];24var index = indexOf(arr, 3);25var redwood = require('redwood');26var indexOf = redwood('indexOf');27var arr = [1,2,3,4,5];28var index = indexOf(arr, 3);
Using AI Code Generation
1function findFirstVowel(word) {2 for (let i = 0; i < word.length; i++) {3 if ("aeiou".indexOf(word[i]) !== -1) {4 return i;5 }6 }7 return -1;8}
Using AI Code Generation
1var redwood = require('redwood');2var str = "Hello World";3var index = redwood.indexOf(str,"World");4console.log(index);5var redwood = require('redwood');6var str = "Hello World";7var index = redwood.indexOf(str,"World");8console.log(index);9var redwood = require('redwood');10var str = "Hello World";11var index = redwood.lastIndexOf(str,"l");12console.log(index);13var redwood = require('redwood');14var str = "Hello World";15var char = redwood.charAt(str,6);16console.log(char);17var redwood = require('redwood');18var str = "Hello World";19var charCode = redwood.charCodeAt(str,6);20console.log(charCode);21var redwood = require('redwood');22var str1 = "Hello ";23var str2 = "World";24var str = redwood.concat(str1,str2);25console.log(str);26var redwood = require('redwood');27var str = "Hello World";28var result = redwood.endsWith(str,"World");29console.log(result);30var redwood = require('redwood');31var str = "Hello World";32var result = redwood.includes(str,"World");33console.log(result);34var redwood = require('redwood');35var str = "Hello World";36var result = redwood.startsWith(str,"Hello");37console.log(result);38var redwood = require('redwood');39var char = "H";40var charCode = redwood.charCodeAt(char);41console.log(charCode);42var redwood = require('redwood');43var str = "Hello";44var result = redwood.repeat(str,5);45console.log(result);46var redwood = require('redwood');47var str = "Hello World";48var result = redwood.slice(str,6);49console.log(result);50var redwood = require('redwood');51var str = "Hello World";52var result = redwood.split(str
Using AI Code Generation
1const redwood = require('redwood-forest');2let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];3const redwood = require('redwood-forest');4let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];5const redwood = require('redwood-forest');6let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];7console.log(redwood.findIndex(arr, (element) => element === 5));
Using AI Code Generation
1var redwood = require('redwood');2var redwoodString = "This is a string with redwood in it";3var index = redwoodString.indexOf("redwood");4var redwood = require('redwood');5var redwoodString = "This is a string with redwood in it";6var index = redwoodString.lastIndexOf("redwood");7var redwood = require('redwood');8var redwoodString = "This is a string with redwood in it";9var match = redwoodString.match(/redwood/);10var redwood = require('redwood');11var redwoodString = "This is a string with redwood in it";12var newString = redwoodString.replace("redwood", "redwoodjs");13var redwood = require('redwood');14var redwoodString = "This is a string with redwood in it";15var index = redwoodString.search("redwood");
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!