• karl's avatar
    [es6] Use SubString in String{Starts,Ends}With · d42920ce
    karl authored
    Much faster and constant than always searching the whole string
    
    ````
    var allCodePoints = [];
    for (var i = 0; i < 65536; i++) allCodePoints[i] = i;
    var allCharsString = String.fromCharCode.apply(String, allCodePoints);
    
    function bench(search) {
      var counter = 0;
      print(search + " found at " + allCharsString.startsWith(search));
      var start = Date.now();
      while (counter++ < 5000000) {
        allCharsString.startsWith(search);
      }
      var end = Date.now();
      print(end - start);
      return counter;
    }
    
    print("single character");
    bench("\u0000");
    bench("\u0050");
    bench("\u1000");
    ````
    
    OLD
    
    single character
     found at true
    374
    P found at false
    559
    က found at false
    13492
    
    NEW
    
    single character
     found at true
    261
    P found at false
    146
    က found at false
    146
    
    BUG=v8:4384
    LOG=N
    
    Review URL: https://codereview.chromium.org/1321853006
    
    Cr-Commit-Position: refs/heads/master@{#30599}
    d42920ce
string.js 34.7 KB