compare-string.js (3677B)
1 function compareToAtom(a) { 2 return a == 'test-test-test-test-test-test-test-test'; 3 } 4 5 function compareToAtomStrict(a) { 6 return a === 'test-test-test-test-test-test-test-test'; 7 } 8 9 function compareToAtomNe(a) { 10 return a != 'test-test-test-test-test-test-test-test'; 11 } 12 13 function compareToAtomNeStrict(a) { 14 return a !== 'test-test-test-test-test-test-test-test'; 15 } 16 17 function compareToAtomLessThan(a) { 18 return a < 'test-test-test-test-test-test-test-test'; 19 } 20 21 function compareToAtomLessThanOrEquals(a) { 22 return a <= 'test-test-test-test-test-test-test-test'; 23 } 24 25 function compareToAtomGreaterThan(a) { 26 return a > 'test-test-test-test-test-test-test-test'; 27 } 28 29 function compareToAtomGreaterThanOrEquals(a) { 30 return a >= 'test-test-test-test-test-test-test-test'; 31 } 32 33 var st = 'st-test-test-test-test-test-test-test'; 34 35 function compareToRope(a) { 36 return a == ('te' + st); 37 } 38 39 function compareToRopeStrict(a) { 40 return a === ('te' + st); 41 } 42 43 function compareToRopeNe(a) { 44 var st = 'st-test-test-test-test-test-test-test'; 45 return a != ('te' + st); 46 } 47 48 function compareToRopeNeStrict(a) { 49 var st = 'st-test-test-test-test-test-test-test'; 50 return a !== ('te' + st); 51 } 52 53 function compareToRopeLessThan(a) { 54 var st = 'st-test-test-test-test-test-test-test'; 55 return a < ('te' + st); 56 } 57 58 function compareToRopeLessThanOrEquals(a) { 59 var st = 'st-test-test-test-test-test-test-test'; 60 return a <= ('te' + st); 61 } 62 63 function compareToRopeGreaterThan(a) { 64 var st = 'st-test-test-test-test-test-test-test'; 65 return a > ('te' + st); 66 } 67 68 function compareToRopeGreaterThanOrEquals(a) { 69 var st = 'st-test-test-test-test-test-test-test'; 70 return a >= ('te' + st); 71 } 72 73 function main() { 74 // |test| must be longer than |JSFatInlineString::MAX_LENGTH_LATIN1| to 75 // ensure the above functions create ropes when concatenating strings. 76 var test = 'test-test-test-test-test-test-test-test'; 77 var foobar = 'foobar'; 78 79 assertEq(compareToAtom(test), true); 80 assertEq(compareToAtom(foobar), false); 81 82 assertEq(compareToAtomStrict(test), true); 83 assertEq(compareToAtomStrict(foobar), false); 84 85 assertEq(compareToAtomNe(test), false); 86 assertEq(compareToAtomNe(foobar), true); 87 88 assertEq(compareToAtomNeStrict(test), false); 89 assertEq(compareToAtomNeStrict(foobar), true); 90 91 assertEq(compareToAtomLessThan(test), false); 92 assertEq(compareToAtomLessThan(foobar), true); 93 94 assertEq(compareToAtomLessThanOrEquals(test), true); 95 assertEq(compareToAtomLessThanOrEquals(foobar), true); 96 97 assertEq(compareToAtomGreaterThan(test), false); 98 assertEq(compareToAtomGreaterThan(foobar), false); 99 100 assertEq(compareToAtomGreaterThanOrEquals(test), true); 101 assertEq(compareToAtomGreaterThanOrEquals(foobar), false); 102 103 104 assertEq(compareToRope(test), true); 105 assertEq(compareToRope(foobar), false); 106 107 assertEq(compareToRopeStrict(test), true); 108 assertEq(compareToRopeStrict(foobar), false); 109 110 assertEq(compareToRopeNe(test), false); 111 assertEq(compareToRopeNe(foobar), true); 112 113 assertEq(compareToRopeNeStrict(test), false); 114 assertEq(compareToRopeNeStrict(foobar), true); 115 116 assertEq(compareToRopeLessThan(test), false); 117 assertEq(compareToRopeLessThan(foobar), true); 118 119 assertEq(compareToRopeLessThanOrEquals(test), true); 120 assertEq(compareToRopeLessThanOrEquals(foobar), true); 121 122 assertEq(compareToRopeGreaterThan(test), false); 123 assertEq(compareToRopeGreaterThan(foobar), false); 124 125 assertEq(compareToRopeGreaterThanOrEquals(test), true); 126 assertEq(compareToRopeGreaterThanOrEquals(foobar), false); 127 } 128 129 for (var i = 0; i < 10000; i++) { 130 main(); 131 }