Ignore:
Timestamp:
Jun 19, 2008, 10:29:29 AM (17 years ago)
Author:
[email protected]
Message:

Reviewed by Darin.

Prepare JavaScript heap for being per-thread.

File:
1 edited

Legend:

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

    r34587 r34659  
    7777}
    7878
    79 JSValue* MathObject::getValueProperty(ExecState*, int token) const
     79JSValue* MathObject::getValueProperty(ExecState* exec, int token) const
    8080{
    8181    switch (token) {
    8282    case Euler:
    83         return jsNumber(exp(1.0));
     83        return jsNumber(exec, exp(1.0));
    8484    case Ln2:
    85         return jsNumber(log(2.0));
     85        return jsNumber(exec, log(2.0));
    8686    case Ln10:
    87         return jsNumber(log(10.0));
     87        return jsNumber(exec, log(10.0));
    8888    case Log2E:
    89         return jsNumber(1.0 / log(2.0));
     89        return jsNumber(exec, 1.0 / log(2.0));
    9090    case Log10E:
    91         return jsNumber(1.0 / log(10.0));
     91        return jsNumber(exec, 1.0 / log(10.0));
    9292    case Pi:
    93         return jsNumber(piDouble);
     93        return jsNumber(exec, piDouble);
    9494    case Sqrt1_2:
    95         return jsNumber(sqrt(0.5));
     95        return jsNumber(exec, sqrt(0.5));
    9696    case Sqrt2:
    97         return jsNumber(sqrt(2.0));
     97        return jsNumber(exec, sqrt(2.0));
    9898    }
    9999
     
    107107{
    108108    double arg = args[0]->toNumber(exec);
    109     return signbit(arg) ? jsNumber(-arg) : jsNumber(arg);
     109    return signbit(arg) ? jsNumber(exec, -arg) : jsNumber(exec, arg);
    110110}
    111111
    112112JSValue* mathProtoFuncACos(ExecState* exec, JSObject*, const ArgList& args)
    113113{
    114     return jsNumber(acos(args[0]->toNumber(exec)));
     114    return jsNumber(exec, acos(args[0]->toNumber(exec)));
    115115}
    116116
    117117JSValue* mathProtoFuncASin(ExecState* exec, JSObject*, const ArgList& args)
    118118{
    119     return jsNumber(asin(args[0]->toNumber(exec)));
     119    return jsNumber(exec, asin(args[0]->toNumber(exec)));
    120120}
    121121
    122122JSValue* mathProtoFuncATan(ExecState* exec, JSObject*, const ArgList& args)
    123123{
    124     return jsNumber(atan(args[0]->toNumber(exec)));
     124    return jsNumber(exec, atan(args[0]->toNumber(exec)));
    125125}
    126126
    127127JSValue* mathProtoFuncATan2(ExecState* exec, JSObject*, const ArgList& args)
    128128{
    129     return jsNumber(atan2(args[0]->toNumber(exec), args[1]->toNumber(exec)));
     129    return jsNumber(exec, atan2(args[0]->toNumber(exec), args[1]->toNumber(exec)));
    130130}
    131131
     
    134134    double arg = args[0]->toNumber(exec);
    135135    if (signbit(arg) && arg > -1.0)
    136         return jsNumber(-0.0);
    137     return jsNumber(ceil(arg));
     136        return jsNumber(exec, -0.0);
     137    return jsNumber(exec, ceil(arg));
    138138}
    139139
    140140JSValue* mathProtoFuncCos(ExecState* exec, JSObject*, const ArgList& args)
    141141{
    142     return jsNumber(cos(args[0]->toNumber(exec)));
     142    return jsNumber(exec, cos(args[0]->toNumber(exec)));
    143143}
    144144
    145145JSValue* mathProtoFuncExp(ExecState* exec, JSObject*, const ArgList& args)
    146146{
    147     return jsNumber(exp(args[0]->toNumber(exec)));
     147    return jsNumber(exec, exp(args[0]->toNumber(exec)));
    148148}
    149149
     
    152152    double arg = args[0]->toNumber(exec);
    153153    if (signbit(arg) && arg == 0.0)
    154         return jsNumber(-0.0);
    155     return jsNumber(floor(arg));
     154        return jsNumber(exec, -0.0);
     155    return jsNumber(exec, floor(arg));
    156156}
    157157
    158158JSValue* mathProtoFuncLog(ExecState* exec, JSObject*, const ArgList& args)
    159159{
    160     return jsNumber(log(args[0]->toNumber(exec)));
     160    return jsNumber(exec, log(args[0]->toNumber(exec)));
    161161}
    162162
     
    174174            result = val;
    175175    }
    176     return jsNumber(result);
     176    return jsNumber(exec, result);
    177177}
    178178
     
    190190            result = val;
    191191    }
    192     return jsNumber(result);
     192    return jsNumber(exec, result);
    193193}
    194194
     
    201201
    202202    if (isnan(arg2))
    203         return jsNaN();
     203        return jsNaN(exec);
    204204    if (isinf(arg2) && fabs(arg) == 1)
    205         return jsNaN();
    206     return jsNumber(pow(arg, arg2));
    207 }
    208 
    209 JSValue* mathProtoFuncRandom(ExecState*, JSObject*, const ArgList&)
     205        return jsNaN(exec);
     206    return jsNumber(exec, pow(arg, arg2));
     207}
     208
     209JSValue* mathProtoFuncRandom(ExecState* exec, JSObject*, const ArgList&)
    210210{
    211211#if !USE(MULTIPLE_THREADS)
     
    217217#endif
    218218
    219     return jsNumber(wtf_random());
     219    return jsNumber(exec, wtf_random());
    220220}
    221221
     
    224224    double arg = args[0]->toNumber(exec);
    225225    if (signbit(arg) && arg >= -0.5)
    226          return jsNumber(-0.0);
    227     return jsNumber(floor(arg + 0.5));
     226         return jsNumber(exec, -0.0);
     227    return jsNumber(exec, floor(arg + 0.5));
    228228}
    229229
    230230JSValue* mathProtoFuncSin(ExecState* exec, JSObject*, const ArgList& args)
    231231{
    232     return jsNumber(sin(args[0]->toNumber(exec)));
     232    return jsNumber(exec, sin(args[0]->toNumber(exec)));
    233233}
    234234
    235235JSValue* mathProtoFuncSqrt(ExecState* exec, JSObject*, const ArgList& args)
    236236{
    237     return jsNumber(sqrt(args[0]->toNumber(exec)));
     237    return jsNumber(exec, sqrt(args[0]->toNumber(exec)));
    238238}
    239239
    240240JSValue* mathProtoFuncTan(ExecState* exec, JSObject*, const ArgList& args)
    241241{
    242     return jsNumber(tan(args[0]->toNumber(exec)));
     242    return jsNumber(exec, tan(args[0]->toNumber(exec)));
    243243}
    244244
Note: See TracChangeset for help on using the changeset viewer.