Revision: 24801
Author:   [email protected]
Date:     Wed Oct 22 11:08:42 2014 UTC
Log:      Perf tests for fromCodePoint and codePointAt.

[email protected]

Review URL: https://codereview.chromium.org/670463005
https://code.google.com/p/v8/source/detail?r=24801

Modified:
 /branches/bleeding_edge/test/js-perf-test/Strings/harmony-string.js

=======================================
--- /branches/bleeding_edge/test/js-perf-test/Strings/harmony-string.js Tue Oct 21 11:05:32 2014 UTC +++ /branches/bleeding_edge/test/js-perf-test/Strings/harmony-string.js Wed Oct 22 11:08:42 2014 UTC
@@ -4,13 +4,17 @@

 new BenchmarkSuite('StringFunctions', [1000], [
   new Benchmark('StringRepeat', false, false, 0,
-                StringRepeat, StringRepeatSetup, StringRepeatTearDown),
+                Repeat, RepeatSetup, RepeatTearDown),
   new Benchmark('StringStartsWith', false, false, 0,
-                StringStartsWith, StringWithSetup, StringWithTearDown),
+                StartsWith, WithSetup, WithTearDown),
   new Benchmark('StringEndsWith', false, false, 0,
-                StringEndsWith, StringWithSetup, StringWithTearDown),
+                EndsWith, WithSetup, WithTearDown),
   new Benchmark('StringContains', false, false, 0,
-                StringContains, StringContainsSetup, StringWithTearDown),
+                Contains, ContainsSetup, WithTearDown),
+  new Benchmark('StringFromCodePoint', false, false, 0,
+                FromCodePoint, FromCodePointSetup, FromCodePointTearDown),
+  new Benchmark('StringCodePointAt', false, false, 0,
+                CodePointAt, CodePointAtSetup, CodePointAtTearDown),
 ]);


@@ -18,15 +22,15 @@

 var stringRepeatSource = "abc";

-function StringRepeatSetup() {
+function RepeatSetup() {
   result = undefined;
 }

-function StringRepeat() {
+function Repeat() {
   result = stringRepeatSource.repeat(500);
 }

-function StringRepeatTearDown() {
+function RepeatTearDown() {
   var expected = "";
   for(var i = 0; i < 1000; i++) {
     expected += stringRepeatSource;
@@ -38,29 +42,70 @@
 var str;
 var substr;

-function StringWithSetup() {
+function WithSetup() {
   str = "abc".repeat(500);
   substr = "abc".repeat(200);
   result = undefined;
 }

-function StringWithTearDown() {
+function WithTearDown() {
   return !!result;
 }

-function StringStartsWith() {
+function StartsWith() {
   result = str.startsWith(substr);
 }

-function StringEndsWith() {
+function EndsWith() {
   result = str.endsWith(substr);
 }

-function StringContainsSetup() {
+function ContainsSetup() {
   str = "def".repeat(100) + "abc".repeat(100) + "qqq".repeat(100);
   substr = "abc".repeat(100);
 }

-function StringContains() {
+function Contains() {
   result = str.contains(substr);
 }
+
+var MAX_CODE_POINT = 0xFFFFF;
+
+function FromCodePointSetup() {
+  result = new Array(MAX_CODE_POINT + 1);
+}
+
+function FromCodePoint() {
+  for (var i = 0; i <= MAX_CODE_POINT; i++) {
+    result[i] = String.fromCodePoint(i);
+  }
+}
+
+function FromCodePointTearDown() {
+  for (var i = 0; i <= MAX_CODE_POINT; i++) {
+    if (i !== result[i].codePointAt(0)) return false;
+  }
+  return true;
+}
+
+
+var allCodePoints;
+
+function CodePointAtSetup() {
+  allCodePoints = new Array(MAX_CODE_POINT + 1);
+  for (var i = 0; i <= MAX_CODE_POINT; i++) {
+    allCodePoints = String.fromCodePoint(i);
+  }
+  result = undefined;
+}
+
+function CodePointAt() {
+  result = 0;
+  for (var i = 0; i <= MAX_CODE_POINT; i++) {
+    result += allCodePoints.codePointAt(i);
+  }
+}
+
+function CodePointAtTearDown() {
+  return result === MAX_CODE_POINT * (MAX_CODE_POINT + 1) / 2;
+}

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to