Ignore:
Timestamp:
Jan 15, 2008, 10:43:15 PM (17 years ago)
Author:
[email protected]
Message:

JavaScriptCore:

Reviewed by Geoffrey Garen.

Fix <rdar://problem/5595552> r27608 introduced a 20% increase in JS binary size, 4% increase in WebCore binary size

  • This changes the way JS functions that use Lookup tables are handled. Instead using one class per function, which allowed specialization of the virtual callAsFunction method, we now use on class, PrototypeFunction, which takes a pointer to a static function to use as the implementation. This significantly decreases the binary size of JavaScriptCore (about 145k on an Intel only build) while still keeping some of the speedup r27608 garnered (SunSpider says this is 1.005x as slow, which should leave some wiggle room from the original 1% speedup) and keeps the functions implementations in separate functions to help with optimizations.
  • JavaScriptCore.exp:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • kjs/array_object.cpp: (KJS::arrayProtoFuncToString): (KJS::arrayProtoFuncToLocaleString): (KJS::arrayProtoFuncJoin): (KJS::arrayProtoFuncConcat): (KJS::arrayProtoFuncPop): (KJS::arrayProtoFuncPush): (KJS::arrayProtoFuncReverse): (KJS::arrayProtoFuncShift): (KJS::arrayProtoFuncSlice): (KJS::arrayProtoFuncSort): (KJS::arrayProtoFuncSplice): (KJS::arrayProtoFuncUnShift): (KJS::arrayProtoFuncFilter): (KJS::arrayProtoFuncMap): (KJS::arrayProtoFuncEvery): (KJS::arrayProtoFuncForEach): (KJS::arrayProtoFuncSome): (KJS::arrayProtoFuncIndexOf): (KJS::arrayProtoFuncLastIndexOf):
  • kjs/array_object.h:
  • kjs/date_object.cpp: (KJS::DatePrototype::getOwnPropertySlot): (KJS::dateProtoFuncToString): (KJS::dateProtoFuncToUTCString): (KJS::dateProtoFuncToDateString): (KJS::dateProtoFuncToTimeString): (KJS::dateProtoFuncToLocaleString): (KJS::dateProtoFuncToLocaleDateString): (KJS::dateProtoFuncToLocaleTimeString): (KJS::dateProtoFuncValueOf): (KJS::dateProtoFuncGetTime): (KJS::dateProtoFuncGetFullYear): (KJS::dateProtoFuncGetUTCFullYear): (KJS::dateProtoFuncToGMTString): (KJS::dateProtoFuncGetMonth): (KJS::dateProtoFuncGetUTCMonth): (KJS::dateProtoFuncGetDate): (KJS::dateProtoFuncGetUTCDate): (KJS::dateProtoFuncGetDay): (KJS::dateProtoFuncGetUTCDay): (KJS::dateProtoFuncGetHours): (KJS::dateProtoFuncGetUTCHours): (KJS::dateProtoFuncGetMinutes): (KJS::dateProtoFuncGetUTCMinutes): (KJS::dateProtoFuncGetSeconds): (KJS::dateProtoFuncGetUTCSeconds): (KJS::dateProtoFuncGetMilliSeconds): (KJS::dateProtoFuncGetUTCMilliseconds): (KJS::dateProtoFuncGetTimezoneOffset): (KJS::dateProtoFuncSetTime): (KJS::dateProtoFuncSetMilliSeconds): (KJS::dateProtoFuncSetUTCMilliseconds): (KJS::dateProtoFuncSetSeconds): (KJS::dateProtoFuncSetUTCSeconds): (KJS::dateProtoFuncSetMinutes): (KJS::dateProtoFuncSetUTCMinutes): (KJS::dateProtoFuncSetHours): (KJS::dateProtoFuncSetUTCHours): (KJS::dateProtoFuncSetDate): (KJS::dateProtoFuncSetUTCDate): (KJS::dateProtoFuncSetMonth): (KJS::dateProtoFuncSetUTCMonth): (KJS::dateProtoFuncSetFullYear): (KJS::dateProtoFuncSetUTCFullYear): (KJS::dateProtoFuncSetYear): (KJS::dateProtoFuncGetYear):
  • kjs/date_object.h:
  • kjs/function.cpp: (KJS::PrototypeFunction::PrototypeFunction): (KJS::PrototypeFunction::callAsFunction):
  • kjs/function.h:
  • kjs/lookup.h: (KJS::HashEntry::): (KJS::staticFunctionGetter):
  • kjs/math_object.cpp: (KJS::mathProtoFuncAbs): (KJS::mathProtoFuncACos): (KJS::mathProtoFuncASin): (KJS::mathProtoFuncATan): (KJS::mathProtoFuncATan2): (KJS::mathProtoFuncCeil): (KJS::mathProtoFuncCos): (KJS::mathProtoFuncExp): (KJS::mathProtoFuncFloor): (KJS::mathProtoFuncLog): (KJS::mathProtoFuncMax): (KJS::mathProtoFuncMin): (KJS::mathProtoFuncPow): (KJS::mathProtoFuncRandom): (KJS::mathProtoFuncRound): (KJS::mathProtoFuncSin): (KJS::mathProtoFuncSqrt): (KJS::mathProtoFuncTan):
  • kjs/math_object.h:
  • kjs/string_object.cpp: (KJS::stringProtoFuncToString): (KJS::stringProtoFuncValueOf): (KJS::stringProtoFuncCharAt): (KJS::stringProtoFuncCharCodeAt): (KJS::stringProtoFuncConcat): (KJS::stringProtoFuncIndexOf): (KJS::stringProtoFuncLastIndexOf): (KJS::stringProtoFuncMatch): (KJS::stringProtoFuncSearch): (KJS::stringProtoFuncReplace): (KJS::stringProtoFuncSlice): (KJS::stringProtoFuncSplit): (KJS::stringProtoFuncSubstr): (KJS::stringProtoFuncSubstring): (KJS::stringProtoFuncToLowerCase): (KJS::stringProtoFuncToUpperCase): (KJS::stringProtoFuncToLocaleLowerCase): (KJS::stringProtoFuncToLocaleUpperCase): (KJS::stringProtoFuncLocaleCompare): (KJS::stringProtoFuncBig): (KJS::stringProtoFuncSmall): (KJS::stringProtoFuncBlink): (KJS::stringProtoFuncBold): (KJS::stringProtoFuncFixed): (KJS::stringProtoFuncItalics): (KJS::stringProtoFuncStrike): (KJS::stringProtoFuncSub): (KJS::stringProtoFuncSup): (KJS::stringProtoFuncFontcolor): (KJS::stringProtoFuncFontsize): (KJS::stringProtoFuncAnchor): (KJS::stringProtoFuncLink):
  • kjs/string_object.h:

WebCore:

Reviewed by Geoffrey Garen.

Fix <rdar://problem/5595552> r27608 introduced a 20% increase in JS binary size, 4% increase in WebCore binary size

  • Update JS Function implementations to use a static function based method. This decreases the binary size of an Intel only build by 1013.5K.
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::customGetOwnPropertySlot):
  • bindings/js/JSEventTargetBase.cpp: (WebCore::jsEventTargetAddEventListener): (WebCore::jsEventTargetRemoveEventListener): (WebCore::jsEventTargetDispatchEvent): (WebCore::retrieveEventTargetAndCorrespondingNode):
  • bindings/js/JSEventTargetBase.h:
  • bindings/js/JSHTMLInputElementBase.cpp: (WebCore::jsHTMLInputElementBaseFunctionSetSelectionRange): (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
  • bindings/js/JSHTMLInputElementBase.h:
  • bindings/js/JSLocation.cpp: (WebCore::JSLocation::getOwnPropertySlot): (WebCore::jsLocationProtoFuncReplace): (WebCore::jsLocationProtoFuncReload): (WebCore::jsLocationProtoFuncAssign): (WebCore::jsLocationProtoFuncToString):
  • bindings/js/JSLocation.h:
  • bindings/js/JSXMLHttpRequest.cpp: (KJS::jsXMLHttpRequestPrototypeFunctionAbort): (KJS::jsXMLHttpRequestPrototypeFunctionGetAllResponseHeaders): (KJS::jsXMLHttpRequestPrototypeFunctionGetResponseHeader): (KJS::jsXMLHttpRequestPrototypeFunctionOpen): (KJS::jsXMLHttpRequestPrototypeFunctionSend): (KJS::jsXMLHttpRequestPrototypeFunctionSetRequestHeader): (KJS::jsXMLHttpRequestPrototypeFunctionOverrideMIMEType): (KJS::jsXMLHttpRequestPrototypeFunctionAddEventListener): (KJS::jsXMLHttpRequestPrototypeFunctionRemoveEventListener): (KJS::jsXMLHttpRequestPrototypeFunctionDispatchEvent):
  • bindings/js/JSXMLHttpRequest.h:
  • bindings/js/JSXSLTProcessor.cpp: (KJS::jsXSLTProcessorPrototypeFunctionImportStylesheet): (KJS::jsXSLTProcessorPrototypeFunctionTransformToFragment): (KJS::jsXSLTProcessorPrototypeFunctionTransformToDocument): (KJS::jsXSLTProcessorPrototypeFunctionSetParameter): (KJS::jsXSLTProcessorPrototypeFunctionGetParameter): (KJS::jsXSLTProcessorPrototypeFunctionRemoveParameter): (KJS::jsXSLTProcessorPrototypeFunctionClearParameters): (KJS::jsXSLTProcessorPrototypeFunctionReset):
  • bindings/js/JSXSLTProcessor.h:
  • bindings/js/kjs_events.cpp: (WebCore::jsClipboardPrototypeFunctionClearData): (WebCore::jsClipboardPrototypeFunctionGetData): (WebCore::jsClipboardPrototypeFunctionSetData): (WebCore::jsClipboardPrototypeFunctionSetDragImage):
  • bindings/js/kjs_events.h:
  • bindings/js/kjs_navigator.cpp: (KJS::pluginsFunctionRefresh): (KJS::navigatorProtoFuncJavaEnabled):
  • bindings/js/kjs_navigator.h:
  • bindings/js/kjs_window.cpp: (KJS::Window::getOwnPropertySlot): (KJS::windowProtoFuncAToB): (KJS::windowProtoFuncBToA): (KJS::windowProtoFuncOpen): (KJS::windowProtoFuncSetTimeout): (KJS::windowProtoFuncClearTimeout): (KJS::windowProtoFuncSetInterval): (KJS::windowProtoFuncAddEventListener): (KJS::windowProtoFuncRemoveEventListener): (KJS::windowProtoFuncShowModalDialog): (KJS::windowProtoFuncNotImplemented):
  • bindings/js/kjs_window.h:
  • bindings/scripts/CodeGenerator.pm:
  • bindings/scripts/CodeGeneratorJS.pm:
File:
1 edited

Legend:

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

    r29503 r29508  
    135135/* Source for string_object.lut.h
    136136@begin stringTable 26
    137   toString              &StringProtoFuncToString::create          DontEnum|Function       0
    138   valueOf               &StringProtoFuncValueOf::create           DontEnum|Function       0
    139   charAt                &StringProtoFuncCharAt::create            DontEnum|Function       1
    140   charCodeAt            &StringProtoFuncCharCodeAt::create        DontEnum|Function       1
    141   concat                &StringProtoFuncConcat::create            DontEnum|Function       1
    142   indexOf               &StringProtoFuncIndexOf::create           DontEnum|Function       1
    143   lastIndexOf           &StringProtoFuncLastIndexOf::create       DontEnum|Function       1
    144   match                 &StringProtoFuncMatch::create             DontEnum|Function       1
    145   replace               &StringProtoFuncReplace::create           DontEnum|Function       2
    146   search                &StringProtoFuncSearch::create            DontEnum|Function       1
    147   slice                 &StringProtoFuncSlice::create             DontEnum|Function       2
    148   split                 &StringProtoFuncSplit::create             DontEnum|Function       2
    149   substr                &StringProtoFuncSubstr::create            DontEnum|Function       2
    150   substring             &StringProtoFuncSubstring::create         DontEnum|Function       2
    151   toLowerCase           &StringProtoFuncToLowerCase::create       DontEnum|Function       0
    152   toUpperCase           &StringProtoFuncToUpperCase::create       DontEnum|Function       0
    153   toLocaleLowerCase     &StringProtoFuncToLocaleLowerCase::create DontEnum|Function       0
    154   toLocaleUpperCase     &StringProtoFuncToLocaleUpperCase::create DontEnum|Function       0
    155   localeCompare         &StringProtoFuncLocaleCompare::create     DontEnum|Function       1
     137  toString              &stringProtoFuncToString          DontEnum|Function       0
     138  valueOf               &stringProtoFuncValueOf           DontEnum|Function       0
     139  charAt                &stringProtoFuncCharAt            DontEnum|Function       1
     140  charCodeAt            &stringProtoFuncCharCodeAt        DontEnum|Function       1
     141  concat                &stringProtoFuncConcat            DontEnum|Function       1
     142  indexOf               &stringProtoFuncIndexOf           DontEnum|Function       1
     143  lastIndexOf           &stringProtoFuncLastIndexOf       DontEnum|Function       1
     144  match                 &stringProtoFuncMatch             DontEnum|Function       1
     145  replace               &stringProtoFuncReplace           DontEnum|Function       2
     146  search                &stringProtoFuncSearch            DontEnum|Function       1
     147  slice                 &stringProtoFuncSlice             DontEnum|Function       2
     148  split                 &stringProtoFuncSplit             DontEnum|Function       2
     149  substr                &stringProtoFuncSubstr            DontEnum|Function       2
     150  substring             &stringProtoFuncSubstring         DontEnum|Function       2
     151  toLowerCase           &stringProtoFuncToLowerCase       DontEnum|Function       0
     152  toUpperCase           &stringProtoFuncToUpperCase       DontEnum|Function       0
     153  toLocaleLowerCase     &stringProtoFuncToLocaleLowerCase DontEnum|Function       0
     154  toLocaleUpperCase     &stringProtoFuncToLocaleUpperCase DontEnum|Function       0
     155  localeCompare         &stringProtoFuncLocaleCompare     DontEnum|Function       1
    156156#
    157157# Under here: html extension, should only exist if KJS_PURE_ECMA is not defined
    158158# I guess we need to generate two hashtables in the .lut.h file, and use #ifdef
    159159# to select the right one... TODO. #####
    160   big                   &StringProtoFuncBig::create               DontEnum|Function       0
    161   small                 &StringProtoFuncSmall::create             DontEnum|Function       0
    162   blink                 &StringProtoFuncBlink::create             DontEnum|Function       0
    163   bold                  &StringProtoFuncBold::create              DontEnum|Function       0
    164   fixed                 &StringProtoFuncFixed::create             DontEnum|Function       0
    165   italics               &StringProtoFuncItalics::create           DontEnum|Function       0
    166   strike                &StringProtoFuncStrike::create            DontEnum|Function       0
    167   sub                   &StringProtoFuncSub::create               DontEnum|Function       0
    168   sup                   &StringProtoFuncSup::create               DontEnum|Function       0
    169   fontcolor             &StringProtoFuncFontcolor::create         DontEnum|Function       1
    170   fontsize              &StringProtoFuncFontsize::create          DontEnum|Function       1
    171   anchor                &StringProtoFuncAnchor::create            DontEnum|Function       1
    172   link                  &StringProtoFuncLink::create              DontEnum|Function       1
     160  big                   &stringProtoFuncBig               DontEnum|Function       0
     161  small                 &stringProtoFuncSmall             DontEnum|Function       0
     162  blink                 &stringProtoFuncBlink             DontEnum|Function       0
     163  bold                  &stringProtoFuncBold              DontEnum|Function       0
     164  fixed                 &stringProtoFuncFixed             DontEnum|Function       0
     165  italics               &stringProtoFuncItalics           DontEnum|Function       0
     166  strike                &stringProtoFuncStrike            DontEnum|Function       0
     167  sub                   &stringProtoFuncSub               DontEnum|Function       0
     168  sup                   &stringProtoFuncSup               DontEnum|Function       0
     169  fontcolor             &stringProtoFuncFontcolor         DontEnum|Function       1
     170  fontsize              &stringProtoFuncFontsize          DontEnum|Function       1
     171  anchor                &stringProtoFuncAnchor            DontEnum|Function       1
     172  link                  &stringProtoFuncLink              DontEnum|Function       1
    173173@end
    174174*/
     
    433433}
    434434
    435 JSValue* StringProtoFuncToString::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     435JSValue* stringProtoFuncToString(ExecState* exec, JSObject* thisObj, const List&)
    436436{
    437437    if (!thisObj->inherits(&StringInstance::info))
     
    441441}
    442442
    443 JSValue* StringProtoFuncValueOf::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     443JSValue* stringProtoFuncValueOf(ExecState* exec, JSObject* thisObj, const List&)
    444444{
    445445    if (!thisObj->inherits(&StringInstance::info))
     
    449449}
    450450
    451 JSValue* StringProtoFuncCharAt::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     451JSValue* stringProtoFuncCharAt(ExecState* exec, JSObject* thisObj, const List& args)
    452452{
    453453    // This optimizes the common case that thisObj is a StringInstance
     
    465465}
    466466
    467 JSValue* StringProtoFuncCharCodeAt::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     467JSValue* stringProtoFuncCharCodeAt(ExecState* exec, JSObject* thisObj, const List& args)
    468468{
    469469    // This optimizes the common case that thisObj is a StringInstance
     
    482482}
    483483
    484 JSValue* StringProtoFuncConcat::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     484JSValue* stringProtoFuncConcat(ExecState* exec, JSObject* thisObj, const List& args)
    485485{
    486486    // This optimizes the common case that thisObj is a StringInstance
     
    494494}
    495495
    496 JSValue* StringProtoFuncIndexOf::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     496JSValue* stringProtoFuncIndexOf(ExecState* exec, JSObject* thisObj, const List& args)
    497497{
    498498    // This optimizes the common case that thisObj is a StringInstance
     
    511511}
    512512
    513 JSValue* StringProtoFuncLastIndexOf::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     513JSValue* stringProtoFuncLastIndexOf(ExecState* exec, JSObject* thisObj, const List& args)
    514514{
    515515    // This optimizes the common case that thisObj is a StringInstance
     
    529529}
    530530
    531 JSValue* StringProtoFuncMatch::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     531JSValue* stringProtoFuncMatch(ExecState* exec, JSObject* thisObj, const List& args)
    532532{
    533533    // This optimizes the common case that thisObj is a StringInstance
     
    586586}
    587587
    588 JSValue* StringProtoFuncSearch::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     588JSValue* stringProtoFuncSearch(ExecState* exec, JSObject* thisObj, const List& args)
    589589{
    590590    // This optimizes the common case that thisObj is a StringInstance
     
    614614}
    615615
    616 JSValue* StringProtoFuncReplace::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     616JSValue* stringProtoFuncReplace(ExecState* exec, JSObject* thisObj, const List& args)
    617617{
    618618    // This optimizes the common case that thisObj is a StringInstance
     
    629629}
    630630
    631 JSValue* StringProtoFuncSlice::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     631JSValue* stringProtoFuncSlice(ExecState* exec, JSObject* thisObj, const List& args)
    632632{
    633633    // This optimizes the common case that thisObj is a StringInstance
     
    654654}
    655655
    656 JSValue* StringProtoFuncSplit::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     656JSValue* stringProtoFuncSplit(ExecState* exec, JSObject* thisObj, const List& args)
    657657{
    658658    // This optimizes the common case that thisObj is a StringInstance
     
    703703        if (u.isEmpty()) {
    704704          // empty separator matches empty string -> empty array
    705           put(exec, exec->propertyNames().length, jsNumber(0));
     705          res->put(exec, exec->propertyNames().length, jsNumber(0));
    706706          return result;
    707707        } else {
     
    724724}
    725725
    726 JSValue* StringProtoFuncSubstr::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     726JSValue* stringProtoFuncSubstr(ExecState* exec, JSObject* thisObj, const List& args)
    727727{
    728728    // This optimizes the common case that thisObj is a StringInstance
     
    749749}
    750750
    751 JSValue* StringProtoFuncSubstring::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     751JSValue* stringProtoFuncSubstring(ExecState* exec, JSObject* thisObj, const List& args)
    752752{
    753753    // This optimizes the common case that thisObj is a StringInstance
     
    782782}
    783783
    784 JSValue* StringProtoFuncToLowerCase::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     784JSValue* stringProtoFuncToLowerCase(ExecState* exec, JSObject* thisObj, const List&)
    785785{
    786786    // This optimizes the common case that thisObj is a StringInstance
     
    807807}
    808808
    809 JSValue* StringProtoFuncToUpperCase::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     809JSValue* stringProtoFuncToUpperCase(ExecState* exec, JSObject* thisObj, const List&)
    810810{
    811811    // This optimizes the common case that thisObj is a StringInstance
     
    832832}
    833833
    834 JSValue* StringProtoFuncToLocaleLowerCase::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     834JSValue* stringProtoFuncToLocaleLowerCase(ExecState* exec, JSObject* thisObj, const List&)
    835835{
    836836    // This optimizes the common case that thisObj is a StringInstance
     
    858858}
    859859
    860 JSValue* StringProtoFuncToLocaleUpperCase::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     860JSValue* stringProtoFuncToLocaleUpperCase(ExecState* exec, JSObject* thisObj, const List&)
    861861{
    862862    // This optimizes the common case that thisObj is a StringInstance
     
    883883}
    884884
    885 JSValue* StringProtoFuncLocaleCompare::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     885JSValue* stringProtoFuncLocaleCompare(ExecState* exec, JSObject* thisObj, const List& args)
    886886{
    887887    if (args.size() < 1)
     
    896896#ifndef KJS_PURE_ECMA
    897897
    898 JSValue* StringProtoFuncBig::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     898JSValue* stringProtoFuncBig(ExecState* exec, JSObject* thisObj, const List&)
    899899{
    900900    // This optimizes the common case that thisObj is a StringInstance
     
    903903}
    904904
    905 JSValue* StringProtoFuncSmall::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     905JSValue* stringProtoFuncSmall(ExecState* exec, JSObject* thisObj, const List&)
    906906{
    907907    // This optimizes the common case that thisObj is a StringInstance
     
    910910}
    911911
    912 JSValue* StringProtoFuncBlink::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     912JSValue* stringProtoFuncBlink(ExecState* exec, JSObject* thisObj, const List&)
    913913{
    914914    // This optimizes the common case that thisObj is a StringInstance
     
    917917}
    918918
    919 JSValue* StringProtoFuncBold::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     919JSValue* stringProtoFuncBold(ExecState* exec, JSObject* thisObj, const List&)
    920920{
    921921    // This optimizes the common case that thisObj is a StringInstance
     
    924924}
    925925
    926 JSValue* StringProtoFuncFixed::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     926JSValue* stringProtoFuncFixed(ExecState* exec, JSObject* thisObj, const List&)
    927927{
    928928    // This optimizes the common case that thisObj is a StringInstance
     
    931931}
    932932
    933 JSValue* StringProtoFuncItalics::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     933JSValue* stringProtoFuncItalics(ExecState* exec, JSObject* thisObj, const List&)
    934934{
    935935    // This optimizes the common case that thisObj is a StringInstance
     
    938938}
    939939
    940 JSValue* StringProtoFuncStrike::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     940JSValue* stringProtoFuncStrike(ExecState* exec, JSObject* thisObj, const List&)
    941941{
    942942    // This optimizes the common case that thisObj is a StringInstance
     
    945945}
    946946
    947 JSValue* StringProtoFuncSub::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     947JSValue* stringProtoFuncSub(ExecState* exec, JSObject* thisObj, const List&)
    948948{
    949949    // This optimizes the common case that thisObj is a StringInstance
     
    952952}
    953953
    954 JSValue* StringProtoFuncSup::callAsFunction(ExecState* exec, JSObject* thisObj, const List&)
     954JSValue* stringProtoFuncSup(ExecState* exec, JSObject* thisObj, const List&)
    955955{
    956956    // This optimizes the common case that thisObj is a StringInstance
     
    959959}
    960960
    961 JSValue* StringProtoFuncFontcolor::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     961JSValue* stringProtoFuncFontcolor(ExecState* exec, JSObject* thisObj, const List& args)
    962962{
    963963    // This optimizes the common case that thisObj is a StringInstance
     
    967967}
    968968
    969 JSValue* StringProtoFuncFontsize::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     969JSValue* stringProtoFuncFontsize(ExecState* exec, JSObject* thisObj, const List& args)
    970970{
    971971    // This optimizes the common case that thisObj is a StringInstance
     
    975975}
    976976
    977 JSValue* StringProtoFuncAnchor::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     977JSValue* stringProtoFuncAnchor(ExecState* exec, JSObject* thisObj, const List& args)
    978978{
    979979    // This optimizes the common case that thisObj is a StringInstance
     
    983983}
    984984
    985 JSValue* StringProtoFuncLink::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args)
     985JSValue* stringProtoFuncLink(ExecState* exec, JSObject* thisObj, const List& args)
    986986{
    987987    // This optimizes the common case that thisObj is a StringInstance
Note: See TracChangeset for help on using the changeset viewer.