flag-getters.js (1629B)
1 // Test inlining for RegExp flag getters. 2 3 function testGlobal() { 4 const xs = [/a/, /b/g]; 5 6 for (let i = 0; i < 200; ++i) { 7 let x = xs[i & 1]; 8 assertEq(x.global, !!(i & 1)); 9 } 10 } 11 for (let i = 0; i < 2; ++i) testGlobal(); 12 13 function testHasIndices() { 14 const xs = [/a/, /b/d]; 15 16 for (let i = 0; i < 200; ++i) { 17 let x = xs[i & 1]; 18 assertEq(x.hasIndices, !!(i & 1)); 19 } 20 } 21 for (let i = 0; i < 2; ++i) testHasIndices(); 22 23 function testIgnoreCase() { 24 const xs = [/a/, /b/i]; 25 26 for (let i = 0; i < 200; ++i) { 27 let x = xs[i & 1]; 28 assertEq(x.ignoreCase, !!(i & 1)); 29 } 30 } 31 for (let i = 0; i < 2; ++i) testIgnoreCase(); 32 33 function testMultiline() { 34 const xs = [/a/, /b/m]; 35 36 for (let i = 0; i < 200; ++i) { 37 let x = xs[i & 1]; 38 assertEq(x.multiline, !!(i & 1)); 39 } 40 } 41 for (let i = 0; i < 2; ++i) testMultiline(); 42 43 function testDotAll() { 44 const xs = [/a/, /b/s]; 45 46 for (let i = 0; i < 200; ++i) { 47 let x = xs[i & 1]; 48 assertEq(x.dotAll, !!(i & 1)); 49 } 50 } 51 for (let i = 0; i < 2; ++i) testDotAll(); 52 53 function testUnicode() { 54 const xs = [/a/, /b/u]; 55 56 for (let i = 0; i < 200; ++i) { 57 let x = xs[i & 1]; 58 assertEq(x.unicode, !!(i & 1)); 59 } 60 } 61 for (let i = 0; i < 2; ++i) testUnicode(); 62 63 function testUnicodeSets() { 64 const xs = [/a/, /b/v]; 65 66 for (let i = 0; i < 200; ++i) { 67 let x = xs[i & 1]; 68 assertEq(x.unicodeSets, !!(i & 1)); 69 } 70 } 71 for (let i = 0; i < 2; ++i) testUnicodeSets(); 72 73 function testSticky() { 74 const xs = [/a/, /b/y]; 75 76 for (let i = 0; i < 200; ++i) { 77 let x = xs[i & 1]; 78 assertEq(x.sticky, !!(i & 1)); 79 } 80 } 81 for (let i = 0; i < 2; ++i) testSticky();