Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
emscripten-core
GitHub Repository: emscripten-core/emscripten
Path: blob/main/src/deterministic.js
4128 views
1
/**
2
* @license
3
* Copyright 2014 The Emscripten Authors
4
* SPDX-License-Identifier: MIT
5
*/
6
7
var MAGIC = 0;
8
Math.random = () => {
9
MAGIC = Math.pow(MAGIC + 1.8912, 3) % 1;
10
return MAGIC;
11
};
12
13
var TIME = 10000;
14
function deterministicNow() {
15
return TIME++;
16
}
17
18
Date.now = deterministicNow;
19
20
// Setting performance.now to deterministicNow doesn't work so we instead
21
// use a helper function in parseTools (getPerformanceNow()) to call it
22
// directly.
23
// if (typeof performance == 'object') performance.now = Date.now;
24
25
Module['thisProgram'] = 'thisProgram'; // for consistency between different builds than between runs of the same build
26
27
function hashMemory(id) {
28
var ret = 0;
29
var len = _sbrk(0);
30
for (var i = 0; i < len; i++) {
31
ret = (ret*17 + HEAPU8[i])|0;
32
}
33
return id + ':' + ret;
34
}
35
36
function hashString(s) {
37
var ret = 0;
38
for (var i = 0; i < s.length; i++) {
39
ret = (ret*17 + s.charCodeAt(i))|0;
40
}
41
return ret;
42
}
43
44
45