[es6] Use SubString in String{Starts,Ends}With
authorkarl <karl@skomski.com>
Fri, 4 Sep 2015 21:34:23 +0000 (14:34 -0700)
committerCommit bot <commit-bot@chromium.org>
Fri, 4 Sep 2015 21:34:38 +0000 (21:34 +0000)
commitd42920ce06853d2982f52a9023ad4652f09a9277
tree26c3f7c4dedc0ad097d74e7c13b8a593e2baa3c3
parent0304b29959e898a46271e2df22b7c51a914586b0
[es6] Use SubString in String{Starts,Ends}With

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}
src/string.js