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/StringConstructor.cpp

    r35242 r35291  
    3737        ArgList::const_iterator end = args.end();
    3838        for (ArgList::const_iterator it = args.begin(); it != end; ++it)
    39             *p++ = static_cast<UChar>((*it).toUInt32(exec));
     39            *p++ = static_cast<UChar>((*it).jsValue(exec)->toUInt32(exec));
    4040        s = UString(buf, args.size(), false);
    4141    } else
     
    6464    if (args.isEmpty())
    6565        return new (exec) StringObject(exec, prototype);
    66     return new (exec) StringObject(exec, prototype, args[0]->toString(exec));
     66    return new (exec) StringObject(exec, prototype, args.at(exec, 0)->toString(exec));
    6767}
    6868
     
    7878    if (args.isEmpty())
    7979        return jsString(exec, "");
    80     return jsString(exec, args[0]->toString(exec));
     80    return jsString(exec, args.at(exec, 0)->toString(exec));
    8181}
    8282
Note: See TracChangeset for help on using the changeset viewer.