Ignore:
Timestamp:
Nov 10, 2009, 11:22:30 PM (16 years ago)
Author:
[email protected]
Message:

Faster Math.random, based on GameRand.

Reviewed by Gavin "avGni arBalroguch" Barraclough.

SunSpider says 1.4% faster.

  • runtime/JSGlobalData.cpp:

(JSC::JSGlobalData::JSGlobalData):

  • runtime/JSGlobalData.h: Use an object to track random number generation

state, initialized to the current time.

  • runtime/MathObject.cpp:

(JSC::MathObject::MathObject):
(JSC::mathProtoFuncRandom): Use the new hotness.

  • runtime/WeakRandom.h: Added.

(JSC::WeakRandom::WeakRandom):
(JSC::WeakRandom::get):
(JSC::WeakRandom::advance): The new hotness.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/runtime/MathObject.cpp

    r48836 r50789  
    9797    putDirectWithoutTransition(Identifier(exec, "SQRT1_2"), jsNumber(exec, sqrt(0.5)), DontDelete | DontEnum | ReadOnly);
    9898    putDirectWithoutTransition(Identifier(exec, "SQRT2"), jsNumber(exec, sqrt(2.0)), DontDelete | DontEnum | ReadOnly);
    99     WTF::initializeWeakRandomNumberGenerator();
    10099}
    101100
     
    212211JSValue JSC_HOST_CALL mathProtoFuncRandom(ExecState* exec, JSObject*, JSValue, const ArgList&)
    213212{
    214     return jsNumber(exec, WTF::weakRandomNumber());
     213    return jsNumber(exec, exec->globalData().weakRandom.get());
    215214}
    216215
Note: See TracChangeset for help on using the changeset viewer.