1fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown// Copyright 2014 The Chromium Authors. All rights reserved. 2fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown// Use of this source code is governed by a BSD-style license that can be 3fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown// found in the LICENSE file. 4fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown(function(){ 5fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown'use strict'; 6fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown 7fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brownif (window.PerfTestHelper) { 8fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown return; 9fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown} 10fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brownwindow.PerfTestHelper = {}; 11fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown 12fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brownvar randomSeed = 3384413; 13fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brownwindow.PerfTestHelper.random = function() { 14fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown var temp = randomSeed; 15fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown // Robert Jenkins' 32 bit integer hash function. 16fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown temp = ((temp + 0x7ed55d16) + (temp << 12)) & 0xffffffff; 17fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown temp = ((temp ^ 0xc761c23c) ^ (temp >>> 19)) & 0xffffffff; 18fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown temp = ((temp + 0x165667b1) + (temp << 5)) & 0xffffffff; 194ccb823a9f62e57f9d221f83a97e82967e79a9e5Jeff Brown temp = ((temp + 0xd3a2646c) ^ (temp << 9)) & 0xffffffff; 20cbad976b2a36a0895ca94510d5208a86f66cf596Jeff Brown temp = ((temp + 0xfd7046c5) + (temp << 3)) & 0xffffffff; 2192130f6407dc51c58b3b941d28a6daf4e04b8d62Jeff Brown temp = ((temp ^ 0xb55a4f09) ^ (temp >>> 16)) & 0xffffffff; 2227f1d674bf9fb53af7facdcb746912e036d5bf75Jeff Brown randomSeed = temp; 23cbad976b2a36a0895ca94510d5208a86f66cf596Jeff Brown return (randomSeed & 0xfffffff) / 0x10000000; 243f145a2f958320766ae9240c7a57debc20d578aaMichael Wright}; 253f145a2f958320766ae9240c7a57debc20d578aaMichael Wright 263f145a2f958320766ae9240c7a57debc20d578aaMichael Wright})(); 274ed8fe75e1dde1a2b9576f3862aecc5a572c56b5Jeff Brown