Title: [197465] trunk/LayoutTests
- Revision
- 197465
- Author
- fpi...@apple.com
- Date
- 2016-03-02 14:30:49 -0800 (Wed, 02 Mar 2016)
Log Message
Add a benchmark for string transcoding.
Rubber stamped by Saam Barati.
I wrote some code like this while working on
https://github.com/WebAssembly/design/pull/573. I thought I'd add it as a benchmark since
it stresses things that we may not have good bench coverage for.
* js/regress/script-tests/string-transcoding.js: Added.
(decodeUTF8):
(encodeUTF8):
(arraysEqual):
(arrayToString):
(setHeader):
(print):
(tryArray):
(doSteps):
* js/regress/string-transcoding-expected.txt: Added.
* js/regress/string-transcoding.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (197464 => 197465)
--- trunk/LayoutTests/ChangeLog 2016-03-02 22:29:26 UTC (rev 197464)
+++ trunk/LayoutTests/ChangeLog 2016-03-02 22:30:49 UTC (rev 197465)
@@ -1,3 +1,25 @@
+2016-03-02 Filip Pizlo <fpi...@apple.com>
+
+ Add a benchmark for string transcoding.
+
+ Rubber stamped by Saam Barati.
+
+ I wrote some code like this while working on
+ https://github.com/WebAssembly/design/pull/573. I thought I'd add it as a benchmark since
+ it stresses things that we may not have good bench coverage for.
+
+ * js/regress/script-tests/string-transcoding.js: Added.
+ (decodeUTF8):
+ (encodeUTF8):
+ (arraysEqual):
+ (arrayToString):
+ (setHeader):
+ (print):
+ (tryArray):
+ (doSteps):
+ * js/regress/string-transcoding-expected.txt: Added.
+ * js/regress/string-transcoding.html: Added.
+
2016-03-02 Dave Hyatt <hy...@apple.com>
Add support for the "first" value of the hanging-punctuation property.
Added: trunk/LayoutTests/js/regress/script-tests/string-transcoding.js (0 => 197465)
--- trunk/LayoutTests/js/regress/script-tests/string-transcoding.js (rev 0)
+++ trunk/LayoutTests/js/regress/script-tests/string-transcoding.js 2016-03-02 22:30:49 UTC (rev 197465)
@@ -0,0 +1,81 @@
+function decodeUTF8(array) {
+ var string = "";
+ for (var i = 0; i < array.length; ++i)
+ string += String.fromCharCode(array[i]);
+ return decodeURIComponent(escape(string));
+}
+
+function encodeUTF8(string) {
+ string = unescape(encodeURIComponent(string));
+
+ var array = new Uint8Array(string.length);
+ for (var i = 0; i < array.length; ++i)
+ array[i] = string.charCodeAt(i);
+ return array;
+}
+
+function arraysEqual(a, b) {
+ if (a.length != b.length)
+ return false;
+ for (var i = 0; i < a.length; ++i) {
+ if (a[i] != b[i])
+ return false;
+ }
+ return true;
+}
+
+function arrayToString(array) {
+ return "[" + Array.prototype.join.call(array, ", ") + "]";
+}
+
+function setHeader(s) {
+}
+
+function print(s) {
+ document.getElementById("console").innerHTML += "<br/>" + s;
+}
+
+function tryArray(array) {
+ try {
+ var string = decodeUTF8(array);
+ try {
+ var array2 = encodeUTF8(string);
+ if (!arraysEqual(array, array2)) {
+ print("Round trip failed: " + arrayToString(array) + " turned into " + arrayToString(array2));
+ return;
+ }
+ } catch (e) {
+ print("Threw exception in encode for: " + arrayToString(array));
+ return;
+ }
+ } catch (e) {
+ return;
+ }
+}
+
+var array = new Uint8Array(5);
+
+function doSteps(numSteps) {
+ while (numSteps--) {
+ tryArray(array);
+
+ var done = false;
+ array[0]++;
+ for (var i = 0; i < array.length; ++i) {
+ if (array[i])
+ break;
+ if (i + 1 == array.length) {
+ done = true;
+ break;
+ }
+ array[i + 1]++;
+ }
+
+ if (done)
+ return false;
+ }
+
+ return true;
+}
+
+doSteps(5000);
Added: trunk/LayoutTests/js/regress/string-transcoding-expected.txt (0 => 197465)
--- trunk/LayoutTests/js/regress/string-transcoding-expected.txt (rev 0)
+++ trunk/LayoutTests/js/regress/string-transcoding-expected.txt 2016-03-02 22:30:49 UTC (rev 197465)
@@ -0,0 +1,10 @@
+JSRegress/string-transcoding
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS no exception thrown
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/js/regress/string-transcoding.html (0 => 197465)
--- trunk/LayoutTests/js/regress/string-transcoding.html (rev 0)
+++ trunk/LayoutTests/js/regress/string-transcoding.html 2016-03-02 22:30:49 UTC (rev 197465)
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body>
+<script src=""
+<script src=""
+<script src=""
+<script src=""
+</body>
+</html>
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes