Unreviewed build fix.
[WebKit-https.git] / PerformanceTests / RexBench / Octane2 / benchmark.js
1 /*
2  * Copyright (C) 2016 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
24  */
25 "use strict";
26
27 class Octane2RegExpBenchmark extends Benchmark {
28     constructor(verbose = 0)
29     {
30         super(verbose);
31     }
32
33     setup()
34     {
35         Math.random = (function() {
36             var seed = 49734321;
37             return function() {
38                 // Robert Jenkins' 32 bit integer hash function.
39                 seed = ((seed + 0x7ed55d16) + (seed << 12))  & 0xffffffff;
40                 seed = ((seed ^ 0xc761c23c) ^ (seed >>> 19)) & 0xffffffff;
41                 seed = ((seed + 0x165667b1) + (seed << 5))   & 0xffffffff;
42                 seed = ((seed + 0xd3a2646c) ^ (seed << 9))   & 0xffffffff;
43                 seed = ((seed + 0xfd7046c5) + (seed << 3))   & 0xffffffff;
44                 seed = ((seed ^ 0xb55a4f09) ^ (seed >>> 16)) & 0xffffffff;
45                 return (seed & 0xfffffff) / 0x10000000;
46             };
47         })();
48
49         RegExpSetup();
50     }
51
52     runOnce()
53     {
54         RegExpRun();
55     }
56
57     tearDown()
58     {
59         RegExpTearDown();
60     }
61 }