Ignore:
Timestamp:
Jul 22, 2008, 10:10:05 PM (17 years ago)
Author:
[email protected]
Message:

JavaScriptCore:

2008-07-22 Geoffrey Garen <[email protected]>

Reviewed by Oliver Hunt and Sam Weinig.

Next step toward putting doubles in registers: Prepare the Register class
and its clients for registers that don't contain JSValue*s.


This means a few things:


  1. Register::jsValue() clients, including ArgList clients, must now supply an ExecState* when accessing an entry in an ArgList, in case the entry will need to create a JSValue* on the fly.


  1. Register clients that definitely don't want to create a JSValue* on the fly now use different APIs: getJSValue() for clients that know the register contains a JSValue*, and v() for clients who just want a void*.


  1. I had to change some headers around in order to resolve dependency problems created by using a Register in the ArgList header.


SunSpider reports no change.

JavaScriptGlue:

2008-07-22 Geoffrey Garen <[email protected]>

Reviewed by Oliver Hunt and Sam Weinig.

Next step toward putting doubles in registers: Prepare the Register class
and its clients for registers that don't contain JSValue*s.

WebCore:

2008-07-22 Geoffrey Garen <[email protected]>

Reviewed by Oliver Hunt and Sam Weinig.

Next step toward putting doubles in registers: Prepare the Register class
and its clients for registers that don't contain JSValue*s.

File:
1 edited

Legend:

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

    r35027 r35291  
    131131JSValue* mathProtoFuncAbs(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    132132{
    133     double arg = args[0]->toNumber(exec);
     133    double arg = args.at(exec, 0)->toNumber(exec);
    134134    return signbit(arg) ? jsNumber(exec, -arg) : jsNumber(exec, arg);
    135135}
     
    137137JSValue* mathProtoFuncACos(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    138138{
    139     return jsNumber(exec, acos(args[0]->toNumber(exec)));
     139    return jsNumber(exec, acos(args.at(exec, 0)->toNumber(exec)));
    140140}
    141141
    142142JSValue* mathProtoFuncASin(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    143143{
    144     return jsNumber(exec, asin(args[0]->toNumber(exec)));
     144    return jsNumber(exec, asin(args.at(exec, 0)->toNumber(exec)));
    145145}
    146146
    147147JSValue* mathProtoFuncATan(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    148148{
    149     return jsNumber(exec, atan(args[0]->toNumber(exec)));
     149    return jsNumber(exec, atan(args.at(exec, 0)->toNumber(exec)));
    150150}
    151151
    152152JSValue* mathProtoFuncATan2(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    153153{
    154     return jsNumber(exec, atan2(args[0]->toNumber(exec), args[1]->toNumber(exec)));
     154    return jsNumber(exec, atan2(args.at(exec, 0)->toNumber(exec), args.at(exec, 1)->toNumber(exec)));
    155155}
    156156
    157157JSValue* mathProtoFuncCeil(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    158158{
    159     double arg = args[0]->toNumber(exec);
     159    double arg = args.at(exec, 0)->toNumber(exec);
    160160    if (signbit(arg) && arg > -1.0)
    161161        return jsNumber(exec, -0.0);
     
    165165JSValue* mathProtoFuncCos(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    166166{
    167     return jsNumber(exec, cos(args[0]->toNumber(exec)));
     167    return jsNumber(exec, cos(args.at(exec, 0)->toNumber(exec)));
    168168}
    169169
    170170JSValue* mathProtoFuncExp(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    171171{
    172     return jsNumber(exec, exp(args[0]->toNumber(exec)));
     172    return jsNumber(exec, exp(args.at(exec, 0)->toNumber(exec)));
    173173}
    174174
    175175JSValue* mathProtoFuncFloor(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    176176{
    177     double arg = args[0]->toNumber(exec);
     177    double arg = args.at(exec, 0)->toNumber(exec);
    178178    if (signbit(arg) && arg == 0.0)
    179179        return jsNumber(exec, -0.0);
     
    183183JSValue* mathProtoFuncLog(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    184184{
    185     return jsNumber(exec, log(args[0]->toNumber(exec)));
     185    return jsNumber(exec, log(args.at(exec, 0)->toNumber(exec)));
    186186}
    187187
     
    191191    double result = -Inf;
    192192    for (unsigned k = 0; k < argsCount; ++k) {
    193         double val = args[k]->toNumber(exec);
     193        double val = args.at(exec, k)->toNumber(exec);
    194194        if (isnan(val)) {
    195195            result = NaN;
     
    207207    double result = +Inf;
    208208    for (unsigned k = 0; k < argsCount; ++k) {
    209         double val = args[k]->toNumber(exec);
     209        double val = args.at(exec, k)->toNumber(exec);
    210210        if (isnan(val)) {
    211211            result = NaN;
     
    222222    // ECMA 15.8.2.1.13
    223223
    224     double arg = args[0]->toNumber(exec);
    225     double arg2 = args[1]->toNumber(exec);
     224    double arg = args.at(exec, 0)->toNumber(exec);
     225    double arg2 = args.at(exec, 1)->toNumber(exec);
    226226
    227227    if (isnan(arg2))
     
    247247JSValue* mathProtoFuncRound(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    248248{
    249     double arg = args[0]->toNumber(exec);
     249    double arg = args.at(exec, 0)->toNumber(exec);
    250250    if (signbit(arg) && arg >= -0.5)
    251251         return jsNumber(exec, -0.0);
     
    255255JSValue* mathProtoFuncSin(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    256256{
    257     return jsNumber(exec, sin(args[0]->toNumber(exec)));
     257    return jsNumber(exec, sin(args.at(exec, 0)->toNumber(exec)));
    258258}
    259259
    260260JSValue* mathProtoFuncSqrt(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    261261{
    262     return jsNumber(exec, sqrt(args[0]->toNumber(exec)));
     262    return jsNumber(exec, sqrt(args.at(exec, 0)->toNumber(exec)));
    263263}
    264264
    265265JSValue* mathProtoFuncTan(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    266266{
    267     return jsNumber(exec, tan(args[0]->toNumber(exec)));
     267    return jsNumber(exec, tan(args.at(exec, 0)->toNumber(exec)));
    268268}
    269269
Note: See TracChangeset for help on using the changeset viewer.