| Index: test/mjsunit/d8-performance-now.js
|
| diff --git a/test/mjsunit/regress/regress-grow-store-smi-check.js b/test/mjsunit/d8-performance-now.js
|
| similarity index 63%
|
| copy from test/mjsunit/regress/regress-grow-store-smi-check.js
|
| copy to test/mjsunit/d8-performance-now.js
|
| index 381141d52317c22cf19547a3626280fa2cb1ba9b..13eb1d3f006fa9405873d7e191d733bc4ac37b02 100644
|
| --- a/test/mjsunit/regress/regress-grow-store-smi-check.js
|
| +++ b/test/mjsunit/d8-performance-now.js
|
| @@ -27,27 +27,36 @@
|
|
|
| // Flags: --allow-natives-syntax
|
|
|
| -// The below test function was generated from part of a WebKit layout
|
| -// test library setup routine: fast/canvas/webgl/resources/pnglib.js
|
| +// Test the performance.now() function of d8. This test only makes sense with
|
| +// d8.
|
|
|
| -function test(crc32) {
|
| - for (var i = 0; i < 256; i++) {
|
| - var c = i;
|
| - for (var j = 0; j < 8; j++) {
|
| - if (c & 1) {
|
| - c = -306674912 ^ ((c >> 1) & 0x7fffffff);
|
| +// Don't run this test in gc stress mode. Time differences may be long
|
| +// due to garbage collections.
|
| +%SetFlags("--gc-interval=-1");
|
| +%SetFlags("--nostress-compaction");
|
| +
|
| +if (this.performance && performance.now) {
|
| + (function run() {
|
| + var start_test = performance.now();
|
| + // Let the retry run for maximum 100ms to reduce flakiness.
|
| + for (var start = performance.now();
|
| + start - start_test < 100;
|
| + start = performance.now()) {
|
| + var end = performance.now();
|
| + assertTrue(start >= start_test);
|
| + assertTrue(end >= start);
|
| + while (end - start == 0) {
|
| + var next = performance.now();
|
| + assertTrue(next >= end);
|
| + end = next;
|
| + }
|
| + if (end - start <= 1) {
|
| + // Found (sub-)millisecond granularity.
|
| + return;
|
| } else {
|
| - c = (c >> 1) & 0x7fffffff;
|
| + print("Timer difference too big: " + (end - start) + "ms");
|
| }
|
| }
|
| - crc32[i] = c;
|
| - }
|
| + assertTrue(false);
|
| + })()
|
| }
|
| -
|
| -var a = [0.5];
|
| -for (var i = 0; i < 256; ++i) a[i] = i;
|
| -
|
| -test([0.5]);
|
| -test(a);
|
| -%OptimizeFunctionOnNextCall(test);
|
| -test(a);
|
|
|