X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/f9bf01c6616d5ddcf65b13b33cedf9e387ff7a63..refs/heads/master:/runtime/WeakRandom.h diff --git a/runtime/WeakRandom.h b/runtime/WeakRandom.h index ff3995e..98b23c7 100644 --- a/runtime/WeakRandom.h +++ b/runtime/WeakRandom.h @@ -56,18 +56,26 @@ namespace JSC { class WeakRandom { +friend class JSGlobalObject; // For access to initializeSeed() during replay. public: WeakRandom(unsigned seed) - : m_low(seed ^ 0x49616E42) - , m_high(seed) { + initializeSeed(seed); } + + // Returns the seed provided that you've never called get() or getUint32(). + unsigned seedUnsafe() const { return m_high; } double get() { return advance() / (UINT_MAX + 1.0); } + unsigned getUint32() + { + return advance(); + } + private: unsigned advance() { @@ -77,6 +85,12 @@ private: return m_high; } + void initializeSeed(unsigned seed) + { + m_low = seed ^ 0x49616E42; + m_high = seed; + } + unsigned m_low; unsigned m_high; };