1. 29 May, 2010 3 commits
    • ggaren@apple.com's avatar
      JavaScriptCore: Simplified the host calling convention. · fea29f1e
      ggaren@apple.com authored
              
      Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
      
      22.5% speedup on 32-bit host function calls. 9.5% speedup on 64-bit host
      function calls.
              
      No change on SunSpider.
              
      All JS calls (but not constructs, yet) now go through the normal JS
      calling convention via the RegisterFile. As a result, the host calling
      convention, which used to be this
      
          JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*, JSObject*, JSValue thisValue, const ArgList&)
                  
      is now this
      
          JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*)
                  
      Callee, 'this', and argument access all hapen relative to the ExecState*,
      which is a pointer into the RegisterFile.
              
      This patch comes in two parts.
              
      PART ONE: Functional code changes.
              
      * wtf/Platform.h: Disabled optimized calls on platforms I didn't test.
      We can re-enable once we verify that host calls on these platforms are
      correct.
      
      * debugger/DebuggerCallFrame.cpp:
      (JSC::DebuggerCallFrame::functionName):
      (JSC::DebuggerCallFrame::calculatedFunctionName): Updated for change to
      ExecState::callee().
      
      (JSC::DebuggerCallFrame::thisObject): Updated for removal of ExecState::thisValue().
      
      * interpreter/CallFrame.cpp:
      * interpreter/CallFrame.h:
      (JSC::ExecState::callee):
      (JSC::ExecState::scopeChain):
      (JSC::ExecState::init): Changed callee() to be JSObject* instead of
      JSFunction* -- now, it might be some other callable host object.
      
      (JSC::ExecState::hostThisRegister):
      (JSC::ExecState::hostThisValue):
      (JSC::ExecState::argumentCount):
      (JSC::ExecState::argumentCountIncludingThis):
      (JSC::ExecState::argument):
      (JSC::ExecState::setArgumentCountIncludingThis):
      (JSC::ExecState::setCallee): Added convenient accessors for arguments
      from within a host function. Removed thisValue() because it was too
      tempting to use incorrectly, and it only had one or two clients, anyway.
      
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::callEval): Updated for removal of ExecState::thisValue().
      
      (JSC::Interpreter::throwException): Be sure to shrink the register file
      before invoking the exception handler, to reduce the chances that the
      handler will re-throw in the case of stack overflow. (Re-throwing is now
      more likely than it used to be, since standardizing the calling convention
      implicitly added stack overflow checks to some places where they used to be missing.)
      
      (JSC::Interpreter::execute): Clarified the scope of DynamicGlobalObjectScope.
      Updated for CallFrame::init API change.
      
      (JSC::Interpreter::executeCall): Clarified scope of DynamicGlobalObjectScope.
      Updated for CallFrame::init API change. Added support for calling a host
      function.
      
      (JSC::Interpreter::executeConstruct): Clarified scope of DynamicGlobalObjectScope.
      Updated for CallFrame::init API change. 
      
      (JSC::Interpreter::prepareForRepeatCall): Updated for CallFrame::init API change. 
      
      (JSC::Interpreter::privateExecute): Updated for CallFrame::init API change.
      Added some explicit JSValue(JSObject*) initialization, since relaxing
      the JSFunction* restriction on callee has made register types more ambiguous.
      Removed toThisObject() conversion, since all callees do it themselves now.
      Updated host function call for new host function signature. Updated for
      change to ExecState::argumentCount() API.
      
      * interpreter/Register.h:
      (JSC::Register::):
      (JSC::Register::operator=):
      (JSC::Register::function): Changed callee() to be JSObject* instead of
      JSFunction* -- now, it might be some other callable host object.
      
      * jit/JITOpcodes.cpp:
      (JSC::JIT::privateCompileCTINativeCall):
      * jit/JITOpcodes32_64.cpp:
      (JSC::JIT::privateCompileCTINativeCall): Deleted a bunch of code that
      set up the arguments to host functions -- all but one of the arguments
      are gone now. This is the actual optimization.
      
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION): Updated for ExecState and Register API
      changes noted above. Removed toThisObject() conversion, since all callees
      do it themselves now.
              
      * runtime/ArgList.h:
      (JSC::ArgList::ArgList): ArgList is getting close to unused. Added a
      temporary shim for converting from ExecState* to ArgList where it's still
      necessary.
      
      * runtime/Arguments.h:
      (JSC::Arguments::getArgumentsData):
      (JSC::Arguments::Arguments): Updated for ExecState and Register API
      changes noted above. 
      
      * runtime/CallData.cpp:
      (JSC::call): Changed call always to call Interpreter::executeCall, even
      for host functions. This ensures that the normal calling convention is
      set up in the RegsiterFile when calling from C++ to host function.
      
      * runtime/CallData.h: Changed host function signature as described above.
      
      * runtime/ConstructData.cpp:
      (JSC::construct): Moved JSFunction::construct code here so I could nix
      JSFunction::call and JSFunction::call. We want a JSFunction-agnostic
      way to call and construct, so that everything works naturally for non-
      JSFunction objects. 
      
      * runtime/JSFunction.cpp:
      (JSC::callHostFunctionAsConstructor):
      * runtime/JSFunction.h: Updated for ExecState and Register API changes
      noted above. Nixed JSFunction::call and JSFunction::construct, noted above.
       
      * runtime/JSGlobalObject.cpp:
      (JSC::JSGlobalObject::init): Ditto.
      
      PART TWO: Global search and replace.
              
      In the areas below, I used global search-and-replace to change
          (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
          args.size() => exec->argumentCount()
          args.at(i) => exec->argument(i)
      
      * API/JSCallbackFunction.cpp:
      (JSC::JSCallbackFunction::call):
      * API/JSCallbackFunction.h:
      * API/JSCallbackObject.h:
      * API/JSCallbackObjectFunctions.h:
      (JSC::::call):
      * JavaScriptCore.exp:
      * jsc.cpp:
      (functionPrint):
      (functionDebug):
      (functionGC):
      (functionVersion):
      (functionRun):
      (functionLoad):
      (functionCheckSyntax):
      (functionSetSamplingFlags):
      (functionClearSamplingFlags):
      (functionReadline):
      (functionQuit):
      * runtime/ArrayConstructor.cpp:
      (JSC::callArrayConstructor):
      (JSC::arrayConstructorIsArray):
      * runtime/ArrayPrototype.cpp:
      (JSC::arrayProtoFuncToString):
      (JSC::arrayProtoFuncToLocaleString):
      (JSC::arrayProtoFuncJoin):
      (JSC::arrayProtoFuncConcat):
      (JSC::arrayProtoFuncPop):
      (JSC::arrayProtoFuncPush):
      (JSC::arrayProtoFuncReverse):
      (JSC::arrayProtoFuncShift):
      (JSC::arrayProtoFuncSlice):
      (JSC::arrayProtoFuncSort):
      (JSC::arrayProtoFuncSplice):
      (JSC::arrayProtoFuncUnShift):
      (JSC::arrayProtoFuncFilter):
      (JSC::arrayProtoFuncMap):
      (JSC::arrayProtoFuncEvery):
      (JSC::arrayProtoFuncForEach):
      (JSC::arrayProtoFuncSome):
      (JSC::arrayProtoFuncReduce):
      (JSC::arrayProtoFuncReduceRight):
      (JSC::arrayProtoFuncIndexOf):
      (JSC::arrayProtoFuncLastIndexOf):
      * runtime/BooleanConstructor.cpp:
      (JSC::callBooleanConstructor):
      * runtime/BooleanPrototype.cpp:
      (JSC::booleanProtoFuncToString):
      (JSC::booleanProtoFuncValueOf):
      * runtime/DateConstructor.cpp:
      (JSC::callDate):
      (JSC::dateParse):
      (JSC::dateNow):
      (JSC::dateUTC):
      * runtime/DatePrototype.cpp:
      (JSC::formatLocaleDate):
      (JSC::fillStructuresUsingTimeArgs):
      (JSC::fillStructuresUsingDateArgs):
      (JSC::dateProtoFuncToString):
      (JSC::dateProtoFuncToUTCString):
      (JSC::dateProtoFuncToISOString):
      (JSC::dateProtoFuncToDateString):
      (JSC::dateProtoFuncToTimeString):
      (JSC::dateProtoFuncToLocaleString):
      (JSC::dateProtoFuncToLocaleDateString):
      (JSC::dateProtoFuncToLocaleTimeString):
      (JSC::dateProtoFuncGetTime):
      (JSC::dateProtoFuncGetFullYear):
      (JSC::dateProtoFuncGetUTCFullYear):
      (JSC::dateProtoFuncToGMTString):
      (JSC::dateProtoFuncGetMonth):
      (JSC::dateProtoFuncGetUTCMonth):
      (JSC::dateProtoFuncGetDate):
      (JSC::dateProtoFuncGetUTCDate):
      (JSC::dateProtoFuncGetDay):
      (JSC::dateProtoFuncGetUTCDay):
      (JSC::dateProtoFuncGetHours):
      (JSC::dateProtoFuncGetUTCHours):
      (JSC::dateProtoFuncGetMinutes):
      (JSC::dateProtoFuncGetUTCMinutes):
      (JSC::dateProtoFuncGetSeconds):
      (JSC::dateProtoFuncGetUTCSeconds):
      (JSC::dateProtoFuncGetMilliSeconds):
      (JSC::dateProtoFuncGetUTCMilliseconds):
      (JSC::dateProtoFuncGetTimezoneOffset):
      (JSC::dateProtoFuncSetTime):
      (JSC::setNewValueFromTimeArgs):
      (JSC::setNewValueFromDateArgs):
      (JSC::dateProtoFuncSetMilliSeconds):
      (JSC::dateProtoFuncSetUTCMilliseconds):
      (JSC::dateProtoFuncSetSeconds):
      (JSC::dateProtoFuncSetUTCSeconds):
      (JSC::dateProtoFuncSetMinutes):
      (JSC::dateProtoFuncSetUTCMinutes):
      (JSC::dateProtoFuncSetHours):
      (JSC::dateProtoFuncSetUTCHours):
      (JSC::dateProtoFuncSetDate):
      (JSC::dateProtoFuncSetUTCDate):
      (JSC::dateProtoFuncSetMonth):
      (JSC::dateProtoFuncSetUTCMonth):
      (JSC::dateProtoFuncSetFullYear):
      (JSC::dateProtoFuncSetUTCFullYear):
      (JSC::dateProtoFuncSetYear):
      (JSC::dateProtoFuncGetYear):
      (JSC::dateProtoFuncToJSON):
      * runtime/ErrorConstructor.cpp:
      (JSC::callErrorConstructor):
      * runtime/ErrorPrototype.cpp:
      (JSC::errorProtoFuncToString):
      * runtime/FunctionConstructor.cpp:
      (JSC::callFunctionConstructor):
      * runtime/FunctionPrototype.cpp:
      (JSC::callFunctionPrototype):
      (JSC::functionProtoFuncToString):
      (JSC::functionProtoFuncApply):
      (JSC::functionProtoFuncCall):
      * runtime/JSGlobalObjectFunctions.cpp:
      (JSC::encode):
      (JSC::decode):
      (JSC::globalFuncEval):
      (JSC::globalFuncParseInt):
      (JSC::globalFuncParseFloat):
      (JSC::globalFuncIsNaN):
      (JSC::globalFuncIsFinite):
      (JSC::globalFuncDecodeURI):
      (JSC::globalFuncDecodeURIComponent):
      (JSC::globalFuncEncodeURI):
      (JSC::globalFuncEncodeURIComponent):
      (JSC::globalFuncEscape):
      (JSC::globalFuncUnescape):
      (JSC::globalFuncJSCPrint):
      * runtime/JSGlobalObjectFunctions.h:
      * runtime/JSONObject.cpp:
      (JSC::JSONProtoFuncParse):
      (JSC::JSONProtoFuncStringify):
      * runtime/JSString.h:
      * runtime/MathObject.cpp:
      (JSC::mathProtoFuncAbs):
      (JSC::mathProtoFuncACos):
      (JSC::mathProtoFuncASin):
      (JSC::mathProtoFuncATan):
      (JSC::mathProtoFuncATan2):
      (JSC::mathProtoFuncCeil):
      (JSC::mathProtoFuncCos):
      (JSC::mathProtoFuncExp):
      (JSC::mathProtoFuncFloor):
      (JSC::mathProtoFuncLog):
      (JSC::mathProtoFuncMax):
      (JSC::mathProtoFuncMin):
      (JSC::mathProtoFuncPow):
      (JSC::mathProtoFuncRandom):
      (JSC::mathProtoFuncRound):
      (JSC::mathProtoFuncSin):
      (JSC::mathProtoFuncSqrt):
      (JSC::mathProtoFuncTan):
      * runtime/NativeErrorConstructor.cpp:
      (JSC::callNativeErrorConstructor):
      * runtime/NumberConstructor.cpp:
      (JSC::callNumberConstructor):
      * runtime/NumberPrototype.cpp:
      (JSC::numberProtoFuncToString):
      (JSC::numberProtoFuncToLocaleString):
      (JSC::numberProtoFuncValueOf):
      (JSC::numberProtoFuncToFixed):
      (JSC::numberProtoFuncToExponential):
      (JSC::numberProtoFuncToPrecision):
      * runtime/ObjectConstructor.cpp:
      (JSC::callObjectConstructor):
      (JSC::objectConstructorGetPrototypeOf):
      (JSC::objectConstructorGetOwnPropertyDescriptor):
      (JSC::objectConstructorGetOwnPropertyNames):
      (JSC::objectConstructorKeys):
      (JSC::objectConstructorDefineProperty):
      (JSC::objectConstructorDefineProperties):
      (JSC::objectConstructorCreate):
      * runtime/ObjectPrototype.cpp:
      (JSC::objectProtoFuncValueOf):
      (JSC::objectProtoFuncHasOwnProperty):
      (JSC::objectProtoFuncIsPrototypeOf):
      (JSC::objectProtoFuncDefineGetter):
      (JSC::objectProtoFuncDefineSetter):
      (JSC::objectProtoFuncLookupGetter):
      (JSC::objectProtoFuncLookupSetter):
      (JSC::objectProtoFuncPropertyIsEnumerable):
      (JSC::objectProtoFuncToLocaleString):
      (JSC::objectProtoFuncToString):
      * runtime/ObjectPrototype.h:
      * runtime/Operations.h:
      (JSC::jsString):
      * runtime/RegExpConstructor.cpp:
      (JSC::callRegExpConstructor):
      * runtime/RegExpObject.cpp:
      (JSC::RegExpObject::test):
      (JSC::RegExpObject::exec):
      (JSC::callRegExpObject):
      (JSC::RegExpObject::match):
      * runtime/RegExpObject.h:
      * runtime/RegExpPrototype.cpp:
      (JSC::regExpProtoFuncTest):
      (JSC::regExpProtoFuncExec):
      (JSC::regExpProtoFuncCompile):
      (JSC::regExpProtoFuncToString):
      * runtime/StringConstructor.cpp:
      (JSC::stringFromCharCodeSlowCase):
      (JSC::stringFromCharCode):
      (JSC::callStringConstructor):
      * runtime/StringPrototype.cpp:
      (JSC::stringProtoFuncReplace):
      (JSC::stringProtoFuncToString):
      (JSC::stringProtoFuncCharAt):
      (JSC::stringProtoFuncCharCodeAt):
      (JSC::stringProtoFuncConcat):
      (JSC::stringProtoFuncIndexOf):
      (JSC::stringProtoFuncLastIndexOf):
      (JSC::stringProtoFuncMatch):
      (JSC::stringProtoFuncSearch):
      (JSC::stringProtoFuncSlice):
      (JSC::stringProtoFuncSplit):
      (JSC::stringProtoFuncSubstr):
      (JSC::stringProtoFuncSubstring):
      (JSC::stringProtoFuncToLowerCase):
      (JSC::stringProtoFuncToUpperCase):
      (JSC::stringProtoFuncLocaleCompare):
      (JSC::stringProtoFuncBig):
      (JSC::stringProtoFuncSmall):
      (JSC::stringProtoFuncBlink):
      (JSC::stringProtoFuncBold):
      (JSC::stringProtoFuncFixed):
      (JSC::stringProtoFuncItalics):
      (JSC::stringProtoFuncStrike):
      (JSC::stringProtoFuncSub):
      (JSC::stringProtoFuncSup):
      (JSC::stringProtoFuncFontcolor):
      (JSC::stringProtoFuncFontsize):
      (JSC::stringProtoFuncAnchor):
      (JSC::stringProtoFuncLink):
      (JSC::stringProtoFuncTrim):
      (JSC::stringProtoFuncTrimLeft):
      (JSC::stringProtoFuncTrimRight):
      
      JavaScriptGlue: Simplified the host calling convention.
      
      Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
      
      PART ONE: Functional code changes.
              
      [ None in JavaScriptGlue ]
              
      PART TWO: Global search and replace.
              
      In the areas below, I used global search-and-replace to change
          (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
          args.size() => exec->argumentCount()
          args.at(i) => exec->argument(i)
      
      * JSObject.cpp:
      (nativeCallFunction):
      * UserObjectImp.cpp:
      (UserObjectImp::callAsFunction):
      * UserObjectImp.h:
      
      WebCore: Simplified the host calling convention.
      
      Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
      
      PART ONE: Functional code changes.
              
      [ None in WebCore ]
              
      PART TWO: Global search and replace.
              
      In the areas below, I used global search-and-replace to change
          (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
          args.size() => exec->argumentCount()
          args.at(i) => exec->argument(i)
      
      * bindings/js/JSArrayBufferViewCustom.cpp:
      (WebCore::JSArrayBufferView::slice):
      * bindings/js/JSArrayBufferViewHelper.h:
      (WebCore::setWebGLArrayHelper):
      * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
      (WebCore::JSCanvasRenderingContext2D::setFillColor):
      (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
      (WebCore::JSCanvasRenderingContext2D::strokeRect):
      (WebCore::JSCanvasRenderingContext2D::drawImage):
      (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
      (WebCore::JSCanvasRenderingContext2D::setShadow):
      (WebCore::JSCanvasRenderingContext2D::createPattern):
      (WebCore::JSCanvasRenderingContext2D::createImageData):
      (WebCore::JSCanvasRenderingContext2D::putImageData):
      (WebCore::JSCanvasRenderingContext2D::fillText):
      (WebCore::JSCanvasRenderingContext2D::strokeText):
      * bindings/js/JSClipboardCustom.cpp:
      (WebCore::JSClipboard::clearData):
      (WebCore::JSClipboard::getData):
      (WebCore::JSClipboard::setDragImage):
      * bindings/js/JSDOMApplicationCacheCustom.cpp:
      (WebCore::JSDOMApplicationCache::hasItem):
      (WebCore::JSDOMApplicationCache::add):
      (WebCore::JSDOMApplicationCache::remove):
      * bindings/js/JSDOMFormDataCustom.cpp:
      (WebCore::JSDOMFormData::append):
      * bindings/js/JSDOMWindowCustom.cpp:
      (WebCore::JSDOMWindow::open):
      (WebCore::JSDOMWindow::showModalDialog):
      (WebCore::JSDOMWindow::postMessage):
      (WebCore::JSDOMWindow::setTimeout):
      (WebCore::JSDOMWindow::setInterval):
      (WebCore::JSDOMWindow::addEventListener):
      (WebCore::JSDOMWindow::removeEventListener):
      (WebCore::JSDOMWindow::openDatabase):
      * bindings/js/JSDatabaseCustom.cpp:
      (WebCore::JSDatabase::changeVersion):
      (WebCore::createTransaction):
      (WebCore::JSDatabase::transaction):
      (WebCore::JSDatabase::readTransaction):
      * bindings/js/JSDatabaseSyncCustom.cpp:
      (WebCore::JSDatabaseSync::changeVersion):
      (WebCore::createTransaction):
      (WebCore::JSDatabaseSync::transaction):
      (WebCore::JSDatabaseSync::readTransaction):
      * bindings/js/JSDedicatedWorkerContextCustom.cpp:
      (WebCore::JSDedicatedWorkerContext::postMessage):
      * bindings/js/JSDesktopNotificationsCustom.cpp:
      (WebCore::JSNotificationCenter::requestPermission):
      * bindings/js/JSFloatArrayCustom.cpp:
      (WebCore::JSFloatArray::set):
      * bindings/js/JSGeolocationCustom.cpp:
      (WebCore::JSGeolocation::getCurrentPosition):
      (WebCore::JSGeolocation::watchPosition):
      * bindings/js/JSHTMLAllCollectionCustom.cpp:
      (WebCore::callHTMLAllCollection):
      (WebCore::JSHTMLAllCollection::item):
      (WebCore::JSHTMLAllCollection::namedItem):
      * bindings/js/JSHTMLCanvasElementCustom.cpp:
      (WebCore::JSHTMLCanvasElement::getContext):
      * bindings/js/JSHTMLCollectionCustom.cpp:
      (WebCore::callHTMLCollection):
      (WebCore::JSHTMLCollection::item):
      (WebCore::JSHTMLCollection::namedItem):
      * bindings/js/JSHTMLDocumentCustom.cpp:
      (WebCore::JSHTMLDocument::open):
      (WebCore::documentWrite):
      (WebCore::JSHTMLDocument::write):
      (WebCore::JSHTMLDocument::writeln):
      * bindings/js/JSHTMLInputElementCustom.cpp:
      (WebCore::JSHTMLInputElement::setSelectionRange):
      * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
      (WebCore::JSHTMLOptionsCollection::add):
      (WebCore::JSHTMLOptionsCollection::remove):
      * bindings/js/JSHTMLSelectElementCustom.cpp:
      (WebCore::JSHTMLSelectElement::remove):
      * bindings/js/JSHistoryCustom.cpp:
      (WebCore::JSHistory::pushState):
      (WebCore::JSHistory::replaceState):
      * bindings/js/JSInjectedScriptHostCustom.cpp:
      (WebCore::JSInjectedScriptHost::databaseForId):
      (WebCore::JSInjectedScriptHost::currentCallFrame):
      (WebCore::JSInjectedScriptHost::nodeForId):
      (WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
      (WebCore::JSInjectedScriptHost::selectDatabase):
      (WebCore::JSInjectedScriptHost::selectDOMStorage):
      (WebCore::JSInjectedScriptHost::reportDidDispatchOnInjectedScript):
      * bindings/js/JSInspectorFrontendHostCustom.cpp:
      (WebCore::JSInspectorFrontendHost::platform):
      (WebCore::JSInspectorFrontendHost::port):
      (WebCore::JSInspectorFrontendHost::showContextMenu):
      * bindings/js/JSInt16ArrayCustom.cpp:
      (WebCore::JSInt16Array::set):
      * bindings/js/JSInt32ArrayCustom.cpp:
      (WebCore::JSInt32Array::set):
      * bindings/js/JSInt8ArrayCustom.cpp:
      (WebCore::JSInt8Array::set):
      * bindings/js/JSJavaScriptCallFrameCustom.cpp:
      (WebCore::JSJavaScriptCallFrame::evaluate):
      (WebCore::JSJavaScriptCallFrame::scopeType):
      * bindings/js/JSLocationCustom.cpp:
      (WebCore::JSLocation::replace):
      (WebCore::JSLocation::reload):
      (WebCore::JSLocation::assign):
      (WebCore::JSLocation::toString):
      * bindings/js/JSMessageEventCustom.cpp:
      (WebCore::JSMessageEvent::initMessageEvent):
      * bindings/js/JSMessagePortCustom.cpp:
      (WebCore::JSMessagePort::postMessage):
      * bindings/js/JSMessagePortCustom.h:
      (WebCore::handlePostMessage):
      * bindings/js/JSNodeCustom.cpp:
      (WebCore::JSNode::insertBefore):
      (WebCore::JSNode::replaceChild):
      (WebCore::JSNode::removeChild):
      (WebCore::JSNode::appendChild):
      * bindings/js/JSNodeListCustom.cpp:
      (WebCore::callNodeList):
      * bindings/js/JSPluginElementFunctions.cpp:
      (WebCore::callPlugin):
      * bindings/js/JSSQLResultSetRowListCustom.cpp:
      (WebCore::JSSQLResultSetRowList::item):
      * bindings/js/JSSQLTransactionCustom.cpp:
      (WebCore::JSSQLTransaction::executeSql):
      * bindings/js/JSSQLTransactionSyncCustom.cpp:
      (WebCore::JSSQLTransactionSync::executeSql):
      * bindings/js/JSSVGLengthCustom.cpp:
      (WebCore::JSSVGLength::convertToSpecifiedUnits):
      * bindings/js/JSSVGMatrixCustom.cpp:
      (WebCore::JSSVGMatrix::multiply):
      (WebCore::JSSVGMatrix::inverse):
      (WebCore::JSSVGMatrix::rotateFromVector):
      * bindings/js/JSSVGPODListCustom.h:
      (WebCore::JSSVGPODListCustom::clear):
      (WebCore::JSSVGPODListCustom::initialize):
      (WebCore::JSSVGPODListCustom::getItem):
      (WebCore::JSSVGPODListCustom::insertItemBefore):
      (WebCore::JSSVGPODListCustom::replaceItem):
      (WebCore::JSSVGPODListCustom::removeItem):
      (WebCore::JSSVGPODListCustom::appendItem):
      * bindings/js/JSSVGPathSegListCustom.cpp:
      (WebCore::JSSVGPathSegList::clear):
      (WebCore::JSSVGPathSegList::initialize):
      (WebCore::JSSVGPathSegList::getItem):
      (WebCore::JSSVGPathSegList::insertItemBefore):
      (WebCore::JSSVGPathSegList::replaceItem):
      (WebCore::JSSVGPathSegList::removeItem):
      (WebCore::JSSVGPathSegList::appendItem):
      * bindings/js/JSUint16ArrayCustom.cpp:
      (WebCore::JSUint16Array::set):
      * bindings/js/JSUint32ArrayCustom.cpp:
      (WebCore::JSUint32Array::set):
      * bindings/js/JSUint8ArrayCustom.cpp:
      (WebCore::JSUint8Array::set):
      * bindings/js/JSWebGLRenderingContextCustom.cpp:
      (WebCore::JSWebGLRenderingContext::bufferData):
      (WebCore::JSWebGLRenderingContext::bufferSubData):
      (WebCore::getObjectParameter):
      (WebCore::JSWebGLRenderingContext::getBufferParameter):
      (WebCore::JSWebGLRenderingContext::getFramebufferAttachmentParameter):
      (WebCore::JSWebGLRenderingContext::getParameter):
      (WebCore::JSWebGLRenderingContext::getProgramParameter):
      (WebCore::JSWebGLRenderingContext::getRenderbufferParameter):
      (WebCore::JSWebGLRenderingContext::getShaderParameter):
      (WebCore::JSWebGLRenderingContext::getTexParameter):
      (WebCore::JSWebGLRenderingContext::getUniform):
      (WebCore::JSWebGLRenderingContext::getVertexAttrib):
      (WebCore::JSWebGLRenderingContext::texImage2D):
      (WebCore::JSWebGLRenderingContext::texSubImage2D):
      (WebCore::dataFunctionf):
      (WebCore::dataFunctioni):
      (WebCore::dataFunctionMatrix):
      (WebCore::JSWebGLRenderingContext::uniform1fv):
      (WebCore::JSWebGLRenderingContext::uniform1iv):
      (WebCore::JSWebGLRenderingContext::uniform2fv):
      (WebCore::JSWebGLRenderingContext::uniform2iv):
      (WebCore::JSWebGLRenderingContext::uniform3fv):
      (WebCore::JSWebGLRenderingContext::uniform3iv):
      (WebCore::JSWebGLRenderingContext::uniform4fv):
      (WebCore::JSWebGLRenderingContext::uniform4iv):
      (WebCore::JSWebGLRenderingContext::uniformMatrix2fv):
      (WebCore::JSWebGLRenderingContext::uniformMatrix3fv):
      (WebCore::JSWebGLRenderingContext::uniformMatrix4fv):
      (WebCore::JSWebGLRenderingContext::vertexAttrib1fv):
      (WebCore::JSWebGLRenderingContext::vertexAttrib2fv):
      (WebCore::JSWebGLRenderingContext::vertexAttrib3fv):
      (WebCore::JSWebGLRenderingContext::vertexAttrib4fv):
      * bindings/js/JSWebSocketCustom.cpp:
      (WebCore::JSWebSocket::send):
      * bindings/js/JSWorkerContextCustom.cpp:
      (WebCore::JSWorkerContext::importScripts):
      (WebCore::JSWorkerContext::setTimeout):
      (WebCore::JSWorkerContext::setInterval):
      (WebCore::JSWorkerContext::openDatabase):
      (WebCore::JSWorkerContext::openDatabaseSync):
      * bindings/js/JSWorkerCustom.cpp:
      (WebCore::JSWorker::postMessage):
      * bindings/js/JSXMLHttpRequestCustom.cpp:
      (WebCore::JSXMLHttpRequest::open):
      (WebCore::JSXMLHttpRequest::send):
      * bindings/js/JSXSLTProcessorCustom.cpp:
      (WebCore::JSXSLTProcessor::importStylesheet):
      (WebCore::JSXSLTProcessor::transformToFragment):
      (WebCore::JSXSLTProcessor::transformToDocument):
      (WebCore::JSXSLTProcessor::setParameter):
      (WebCore::JSXSLTProcessor::getParameter):
      (WebCore::JSXSLTProcessor::removeParameter):
      * bindings/js/ScheduledAction.cpp:
      (WebCore::ScheduledAction::create):
      (WebCore::ScheduledAction::ScheduledAction):
      * bindings/js/ScheduledAction.h:
      * bindings/js/ScriptCallFrame.cpp:
      (WebCore::ScriptCallFrame::ScriptCallFrame):
      * bindings/js/ScriptCallFrame.h:
      * bindings/js/ScriptCallStack.cpp:
      (WebCore::ScriptCallStack::ScriptCallStack):
      (WebCore::ScriptCallStack::initialize):
      * bindings/js/ScriptCallStack.h:
      * bindings/scripts/CodeGeneratorJS.pm:
      * bridge/c/c_instance.cpp:
      (JSC::Bindings::CInstance::invokeMethod):
      (JSC::Bindings::CInstance::invokeDefaultMethod):
      * bridge/c/c_instance.h:
      * bridge/jni/jsc/JavaInstanceJSC.cpp:
      (JavaInstance::invokeMethod):
      * bridge/jni/jsc/JavaInstanceJSC.h:
      * bridge/jsc/BridgeJSC.h:
      (JSC::Bindings::Instance::invokeDefaultMethod):
      * bridge/objc/objc_instance.h:
      * bridge/objc/objc_instance.mm:
      (ObjcInstance::invokeMethod):
      (ObjcInstance::invokeObjcMethod):
      (ObjcInstance::invokeDefaultMethod):
      * bridge/objc/objc_runtime.mm:
      (JSC::Bindings::callObjCFallbackObject):
      * bridge/runtime_method.cpp:
      (JSC::callRuntimeMethod):
      * bridge/runtime_object.cpp:
      (JSC::Bindings::callRuntimeObject):
      
      WebKit/mac: Simplified the host calling convention.
      
      Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
      
      PART ONE: Functional code changes.
              
      [ None in WebKit ]
              
      PART TWO: Global search and replace.
              
      In the areas below, I used global search-and-replace to change
          (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
          args.size() => exec->argumentCount()
          args.at(i) => exec->argument(i)
      
      * Plugins/Hosted/ProxyInstance.h:
      * Plugins/Hosted/ProxyInstance.mm:
      (WebKit::ProxyInstance::invoke):
      (WebKit::ProxyInstance::invokeMethod):
      (WebKit::ProxyInstance::invokeDefaultMethod):
      
      LayoutTests: Simplified the host calling convention.
      
      Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
      
      Changed these results to expect to fail to stringify their exception
      objects in the case of stack overflow. (Standardizing the calling
      convention has implicitly added stack overflow checks to some places
      where they used to be missing.)
              
      In a future patch, I plan to implement a more reliable way to stringify
      exceptions without invoking a JS function. For now, though, it seems best
      to match other test results, instead of silently overflowing the stack.
      
      * fast/js/global-recursion-on-full-stack-expected.txt:
      * fast/xmlhttprequest/xmlhttprequest-recursive-sync-event-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60392 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fea29f1e
    • eric@webkit.org's avatar
      2010-05-28 Stephen White <senorblanco@chromium.org> · c9afdae3
      eric@webkit.org authored
              Reviewed by Darin Fisher.
      
              [CHROMIUM] Chromium port should support image interpolation quality
              https://bugs.webkit.org/show_bug.cgi?id=38686
      
              * platform/chromium/test_expectations.txt:
              Add failure expectations for resizing-based tests, so they can be
              rebaselined by the bots.
      2010-05-28  Stephen White  <senorblanco@chromium.org>
      
              Reviewed by Darin Fisher.
      
              Implement GraphicsContext::setImageInterpolation() for the Chromium
              port.  This is preparatory work for bug 38233.  A number of
              background-resize tests will need a rebaseline, since the images are
              taken during the initial "low quality" phase (<800ms).
      
              [CHROMIUM] Chromium port should support image interpolation quality
              https://bugs.webkit.org/show_bug.cgi?id=38686
      
              Covered by fast/backgrounds/size/backgroundSize15.html, and others.
      
              * platform/graphics/skia/GraphicsContextSkia.cpp:
              Implement WebCore::GraphicsContext::setImageInterpolationQuality.
              * platform/graphics/skia/ImageSkia.cpp:
              (WebCore::computeResamplingMode):  Only enable high quality
              interpolation if it has been requested in the GraphicsContext.
              (WebCore::drawResampledBitmap):  Enable cacheing of resampled images
              even if the size is not full (fix from Brett Wilson).
              (WebCore::paintSkBitmap):  Pass in the PlatformContextSkia to
              computeResamplingMode, so it can query it for interpolation quality.
              (WebCore::Image::drawPattern):  Ibid.
              * platform/graphics/skia/PlatformContextSkia.cpp:
              (PlatformContextSkia::State::State):
              (PlatformContextSkia::interpolationQuality):
              (PlatformContextSkia::setInterpolationQuality):
              * platform/graphics/skia/PlatformContextSkia.h:
              Add a member fn and accessors to retain the image interpolation quality
              in the platform context, and to save/restore it with the state.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60391 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c9afdae3
    • eric@webkit.org's avatar
      2010-05-28 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> · d5adab9f
      eric@webkit.org authored
              Reviewed by Geoffrey Garen.
      
              Fix the JSObjectSetPrototype function.
      
              A cycle in a prototype chain can cause an application hang or
              even crash.
              A check for a prototype chain cycles was added to
              the JSObjectSetPrototype.
      
              JSObjectSetPrototype doesn't check for cycle in prototype chain.
              https://bugs.webkit.org/show_bug.cgi?id=39360
      
              * API/JSObjectRef.cpp:
              (JSObjectSetPrototype):
              * API/tests/testapi.c:
              (assertTrue):
              (checkForCycleInPrototypeChain):
              (main):
              * runtime/JSObject.cpp:
              (JSC::JSObject::put):
              * runtime/JSObject.h:
              (JSC::JSObject::setPrototypeWithCycleCheck):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60390 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d5adab9f
  2. 28 May, 2010 37 commits
    • eric@webkit.org's avatar
      2010-05-28 Lucas De Marchi <lucas.demarchi@profusion.mobi> · 5edb1b76
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              [EFL] Remove compiler warnings about uninitialized variable.
              https://bugs.webkit.org/show_bug.cgi?id=39871
      
              No new tests, just cosmetic changes.
      
              * platform/efl/WidgetEfl.cpp:
              (WebCore::Widget::applyCursor):
      2010-05-28  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
      
              Reviewed by Kenneth Rohde Christiansen.
      
              [EF] Remove compiler warnings and add test for switching page
              encoding.
              https://bugs.webkit.org/show_bug.cgi?id=39871
      
              * efl/EWebLauncher/main.c:
              (print_history):
              (on_key_down):
              (main):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60389 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5edb1b76
    • ossy@webkit.org's avatar
      [Qt] Skip new test introduced in r60386, because of · ed8b5209
      ossy@webkit.org authored
      missing layoutTestController.evaluateScriptInIsolatedWorld()
      
      * platform/qt/Skipped: storage/transaction-success-callback-isolated-world.html skipped.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60388 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ed8b5209
    • eric@webkit.org's avatar
      2010-05-28 Eric Uhrhane <ericu@chromium.org> · 37727dcf
      eric@webkit.org authored
              Reviewed by Dmitry Titov.
      
              Refactor DB layout tests so that they work in Web Workers as well as Pages.
              This is a big set of ports, but there are still more to come.
              In general, this is all just trivial changes.  For each test file, I pull out the meat into a .js file [with no functional changes].  Then I include that from both the DOM test and a new worker test; in both cases, the .html files are trivial wrappers.  All boilerplate code is pulled out into the resource files.
      
              In a couple of these tests, there were try/catch wrappers that suppressed errors.  I don't see why you'd want to do that in a test; let's let those errors cause test failures, then fix them.  I took out the wrappers and saw no difference in behavior.
      
              https://bugs.webkit.org/show_bug.cgi?id=34995
      
              * fast/workers/storage/multiple-databases-garbage-collection-expected.txt: Added.
              * fast/workers/storage/multiple-databases-garbage-collection.html: Added.
              * fast/workers/storage/multiple-transactions-expected.txt: Added.
              * fast/workers/storage/multiple-transactions.html: Added.
              * fast/workers/storage/multiple-transactions-on-different-handles-expected.txt: Added.
              * fast/workers/storage/multiple-transactions-on-different-handles.html: Added.
              * fast/workers/storage/change-version-handle-reuse-worker.html: Pulled out even more boilerplate.
              * fast/workers/storage/execute-sql-args-worker.html: Pulled out even more boilerplate.
              * fast/workers/storage/resources/database-worker-controller: Here's where the boilerplate went.
              * fast/workers/storage/resources/database-worker.js:
              * storage/multiple-databases-garbage-collection.html:
              * storage/multiple-databases-garbage-collection.js: Added.
              * storage/multiple-transactions-on-different-handles.html:
              * storage/multiple-transactions-on-different-handles.js: Added.
              * storage/multiple-transactions.html:
              * storage/multiple-transactions.js: Added.
              * storage/hash-change-with-xhr-expected.txt: Trivial whitespace change.
              * storage/hash-change-with-xhr.html:
              * storage/hash-change-with-xhr.js: Added.
              * storage/open-database-while-transaction-in-progress.html:
              * storage/open-database-while-transaction-in-progress.js: Added.
              * storage/read-and-write-transactions-dont-run-together.html:
              * storage/read-and-write-transactions-dont-run-together.js: Added.
              * storage/test-authorizer.html:
              * storage/test-authorizer.js: Added.
              I made a small common include for all the non-worker tests to remove a little boilerplate.
              * storage/resources/database-common.js: Added.
              These two tests had already been ported to workers; I updated them to use the common include file.
              * storage/change-version-handle-reuse.html:
              * storage/execute-sql-args.html:
              * fast/workers/storage/open-database-while-transaction-in-progress-expected.txt: Added.
              * fast/workers/storage/open-database-while-transaction-in-progress.html: Added.
              * fast/workers/storage/read-and-write-transactions-dont-run-together-expected.txt: Added.
              * fast/workers/storage/read-and-write-transactions-dont-run-together.html: Added.
              * fast/workers/storage/test-authorizer-expected.txt: Added.
              * fast/workers/storage/test-authorizer.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60387 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      37727dcf
    • eric@webkit.org's avatar
      2010-05-28 Eric Uhrhane <ericu@chromium.org> · 811b05ac
      eric@webkit.org authored
              Reviewed by Dmitry Titov.
      
              We don't test the async DB success callback in an isolated world.
              https://bugs.webkit.org/show_bug.cgi?id=39849
      
              This pretty much a copy of transaction-error-callback-isolated-world.html.
              * storage/transaction-success-callback-isolated-world-expected.txt: Added.
              * storage/transaction-success-callback-isolated-world.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60386 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      811b05ac
    • eric@webkit.org's avatar
      2010-05-28 Vangelis Kokkevis <vangelis@chromium.org> · e52f1012
      eric@webkit.org authored
              Reviewed by Dimitri Glazkov.
      
              Prevent chromium composited layers from rendering on top of the scrollbars.
              https://bugs.webkit.org/show_bug.cgi?id=39851
      
              * platform/graphics/chromium/LayerRendererChromium.cpp:
              (WebCore::LayerRendererChromium::drawLayers):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e52f1012
    • eric@webkit.org's avatar
      2010-05-28 Adam Barth <abarth@webkit.org> · 017f1f2c
      eric@webkit.org authored
              Reviewed by David Levin.
      
              webkit-patch should support CHANGE_LOG_EDIT_APPLICATION
              https://bugs.webkit.org/show_bug.cgi?id=39546
      
              One sublty is that we want to wait for the user to finish editing the
              ChangeLog before moving on to the next step.  That means we want to pass
              -W to open.  However, if the user is using Xcode to edit the ChangeLog,
              we don't want them to have to exit the Xcode application.  For this reason,
              we create a new instance of the application with -n.
      
              Overall, xed seems like a better solution, so we recommend that too.
      
              * Scripts/webkitpy/common/system/user.py:
              * Scripts/webkitpy/tool/mocktool.py:
              * Scripts/webkitpy/tool/steps/editchangelog.py:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60384 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      017f1f2c
    • eric@webkit.org's avatar
      2010-05-28 Chao-ying Fu <fu@mips.com> · 34d21a8a
      eric@webkit.org authored
              Reviewed by Eric Seidel.
      
              Fix MIPS JIT DoubleGreaterThanOrEqual Operands
              https://bugs.webkit.org/show_bug.cgi?id=39504
      
              Swapped two operands of left and right for DoubleGreaterThanOrEqual.
              This patch fixed two layout tests as follows.
              fast/js/comparison-operators-greater.html
              fast/js/comparison-operators-less.html
      
              * assembler/MacroAssemblerMIPS.h:
              (JSC::MacroAssemblerMIPS::branchDouble):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60383 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      34d21a8a
    • sullivan@apple.com's avatar
      Add a using declaration for AdoptWK to match the one just added for WKRetainPtr. · 0c50636f
      sullivan@apple.com authored
      Rubber-stamped by Dan Bernstein.
      
      * UIProcess/API/cpp/WKRetainPtr.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0c50636f
    • dpranke@chromium.org's avatar
      2010-05-21 Dirk Pranke <dpranke@chromium.org> · ae9910ca
      dpranke@chromium.org authored
              Reviewed by Ojan Vafai.
      
              new-run-webkit-tests: fix handling of Ctrl-C to exit even if some
              threads are wedged. Also, the script will print the results of the
              tests completed when the interrupt occurs.
      
              https://bugs.webkit.org/show_bug.cgi?id=33238
      
              * Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:
              * Scripts/webkitpy/layout_tests/layout_package/printing.py:
              * Scripts/webkitpy/layout_tests/layout_package/printing_unittest.py:
              * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ae9910ca
    • darin@apple.com's avatar
      Ignore more Python messiness. · 535884b5
      darin@apple.com authored
      * Scripts/webkitpy/layout_tests/data/platform/test: Added property svn:ignore.
      * Scripts/webkitpy/layout_tests/layout_package: Added property svn:ignore.
      * Scripts/webkitpy/layout_tests/test_types: Added property svn:ignore.
      * Scripts/webkitpy/test: Added property svn:ignore.
      * Scripts/webkitpy/thirdparty/simplejson: Added property svn:ignore.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      535884b5
    • weinig@apple.com's avatar
      Add a using declaration for WKRetainPtr matching what we do for our · 8abf9702
      weinig@apple.com authored
      other smart pointers and fix the destructor.
      
      Reviewed by Anders Carlsson.
      
      * UIProcess/API/cpp/WKRetainPtr.h:
      (WebKit::WKRetainPtr::~WKRetainPtr):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60379 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8abf9702
    • barraclough@apple.com's avatar
      Move jit compilation from linking thunks into cti_vm_lazyLink methods. · 831342d8
      barraclough@apple.com authored
      Reviewed by Geoff Garen.
      
      * jit/JITOpcodes.cpp:
      (JSC::JIT::privateCompileCTIMachineTrampolines):
      * jit/JITOpcodes32_64.cpp:
      (JSC::JIT::privateCompileCTIMachineTrampolines):
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60378 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      831342d8
    • aa@chromium.org's avatar
      2010-05-28 Aaron Boodman <aa@chromium.org> · cfc1e9fd
      aa@chromium.org authored
              Reviewed by Darin Fisher.
      
              Added isXHTMLDocument() to WebCore::Document.
      
              https://bugs.webkit.org/show_bug.cgi?id=39887
      
              * dom/Document.h: Add isXHTMLDocument().
              (WebCore::Document::isXHTMLDocument): Ditto.
      2010-05-28  Aaron Boodman  <aa@chromium.org>
      
              Reviewed by Darin Fisher.
      
              Add isXHTMLDocument() to WebDocument.
      
              https://bugs.webkit.org/show_bug.cgi?id=39887
      
              * public/WebDocument.h: Add isXHTMLDocument().
              * src/WebDocument.cpp: ditto.
              (WebKit::WebDocument::isXHTMLDocument): dittorama.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60377 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cfc1e9fd
    • barraclough@apple.com's avatar
      Bug 39898 - Move arity check into callee. · 5ec969f7
      barraclough@apple.com authored
              
      Reviewed by Sam Weinig.
      
      We can reduce the size of the virtual call trampolines by moving the arity check
      into the callee functions.  As a following step we will be able to remove the
      check for native function / codeblocks by performing translation in a lazy stub.
              
      * interpreter/CallFrame.h:
      (JSC::ExecState::init):
      (JSC::ExecState::setReturnPC):
      * jit/JIT.cpp:
      (JSC::JIT::privateCompile):
      (JSC::JIT::linkCall):
      (JSC::JIT::linkConstruct):
      * jit/JIT.h:
      (JSC::JIT::compile):
      * jit/JITOpcodes.cpp:
      (JSC::JIT::privateCompileCTIMachineTrampolines):
      * jit/JITOpcodes32_64.cpp:
      (JSC::JIT::privateCompileCTIMachineTrampolines):
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION):
      * runtime/Executable.cpp:
      (JSC::FunctionExecutable::generateJITCodeForCall):
      (JSC::FunctionExecutable::generateJITCodeForConstruct):
      (JSC::FunctionExecutable::reparseExceptionInfo):
      * runtime/Executable.h:
      (JSC::NativeExecutable::NativeExecutable):
      (JSC::FunctionExecutable::generatedJITCodeForCallWithArityCheck):
      (JSC::FunctionExecutable::generatedJITCodeForConstructWithArityCheck):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60376 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5ec969f7
    • pkasting@chromium.org's avatar
      https://bugs.webkit.org/show_bug.cgi?id=39857 · a55119be
      pkasting@chromium.org authored
      Make GIFs loop the correct number of times.  Previously, everyone looped
      one time too few for non-infinitely-looping GIFs.
      
      Reviewed by Darin Adler.
      
      Modified a Qt manual test to be correct and moved it to the general
      manual test directory.
      
      * manual-tests/animated-gif-looping.html: Copied from WebCore/manual-tests/qt/qt-gif-test.html.
      * manual-tests/qt/qt-10loop-anim.gif: Removed.
      * manual-tests/qt/qt-anim.gif: Removed.
      * manual-tests/qt/qt-gif-test.html: Removed.
      * manual-tests/qt/qt-noanim.gif: Removed.
      * manual-tests/resources/animated-10x.gif: Copied from WebCore/manual-tests/qt/qt-10loop-anim.gif and modified.
      * manual-tests/resources/animated-infinite.gif: Copied from WebCore/manual-tests/qt/qt-anim.gif.
      * manual-tests/resources/non-animated.gif: Copied from WebCore/manual-tests/qt/qt-noanim.gif.
      * platform/graphics/BitmapImage.cpp:
      (WebCore::BitmapImage::internalAdvanceAnimation): For a loop count of n, show a total of n + 1 animation cycles.
      * platform/graphics/ImageSource.h:
      * platform/graphics/cg/ImageSourceCG.cpp:
      (WebCore::ImageSource::repetitionCount):
      * platform/graphics/qt/ImageDecoderQt.cpp:
      (WebCore::ImageDecoderQt::repetitionCount): Remove translation code now that WebCore matches Qt's internal handling of the loop count.  Qt itself may still have a bug here.
      * platform/image-decoders/gif/GIFImageDecoder.cpp:
      (WebCore::GIFImageDecoder::repetitionCount):
      * platform/image-decoders/gif/GIFImageReader.cpp:
      (GIFImageReader::read): Translate loop count 0 to "loop infinitely" (by restoring one piece of the Mozilla code we'd removed).
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60375 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a55119be
    • benm@google.com's avatar
      openFile(...) in FIleSystemPOSIX does not call fileSystemRepresentation · 51a3a83f
      benm@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=39882
      
      Reviewed by Darin Adler.
      
      No new tests. Existing tests in fast/files should suffice.
      
      * platform/posix/FileSystemPOSIX.cpp:
      (WebCore::openFile): pass the path parameter through fileSystemRepresentation before using it.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60374 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      51a3a83f
    • cfleizach@apple.com's avatar
      Adding myself as a reviewer. · b95207fd
      cfleizach@apple.com authored
      Reviewed by Beth Dakin.
      
      * Scripts/webkitpy/common/config/committers.py:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60373 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b95207fd
    • cfleizach@apple.com's avatar
      Build fix. No review. · 1040a0bd
      cfleizach@apple.com authored
      AX: need to catch NSAccessibilityExceptions in DRT
      https://bugs.webkit.org/show_bug.cgi?id=39881
      
      It looks like Tiger doesn't like seeing a NSMakeRange inside a @try.
      
      * DumpRenderTree/mac/AccessibilityUIElementMac.mm:
      (AccessibilityUIElement::rowIndexRange):
      (AccessibilityUIElement::columnIndexRange):
      (AccessibilityUIElement::selectedTextRange):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60372 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1040a0bd
    • chang.shu@nokia.com's avatar
      2010-05-28 Chang Shu <Chang.Shu@nokia.com> · 81d7f5c6
      chang.shu@nokia.com authored
              Reviewed by Kenneth Rohde Christiansen.
      
              [Qt] Enable Philip's canvas tests on Qt and skip
              the failed ones.
      
              https://bugs.webkit.org/show_bug.cgi?id=20553
      
              * platform/qt/Skipped:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60371 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      81d7f5c6
    • abarth@webkit.org's avatar
      2010-05-28 Adam Barth <abarth@webkit.org> · 036a420c
      abarth@webkit.org authored
              Reviewed by Eric Seidel.
      
              Named entities in attributes aren't parsed correctly by HTML5 parser
              https://bugs.webkit.org/show_bug.cgi?id=39873
      
              I misplaced this if statement when writing this code originally.  Now
              that we have test coverage for this paragraph in the spec, we can see
              and fix the bug.
      
              * html/HTML5Lexer.cpp:
              (WebCore::HTML5Lexer::consumeEntity):
      2010-05-28  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Eric Seidel.
      
              Named entities in attributes aren't parsed correctly by HTML5 parser
              https://bugs.webkit.org/show_bug.cgi?id=39873
      
              Add a test suite for parsing entities in attributes and update expected results.
      
              * html5lib/resources/entities02.dat: Added.
              * html5lib/runner-expected-html5.txt:
              * html5lib/runner-expected.txt:
              * html5lib/runner.html:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60370 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      036a420c
    • abarth@webkit.org's avatar
      2010-05-28 Adam Barth <abarth@webkit.org> · fc8e393e
      abarth@webkit.org authored
              Reviewed by Eric Seidel.
      
              Handle edge cases in HTML5 entity parsing
              https://bugs.webkit.org/show_bug.cgi?id=39823
      
              The HTML5 specification tells us to handle HTML entities in a somewhat
              complicated way.  This patch attempts to correctly handle numeric
              entities.  Some of this code is duplicated from HTMLTokenizer.
      
              * html/HTML5Lexer.cpp:
              (WebCore::HTMLNames::):
              (WebCore::HTMLNames::adjustEntity):
              (WebCore::HTMLNames::legalEntityFor):
              (WebCore::HTML5Lexer::consumeEntity):
              (WebCore::HTML5Lexer::processEntity):
              (WebCore::HTML5Lexer::nextToken):
              (WebCore::HTML5Lexer::emitCodePoint):
              * html/HTML5Lexer.h:
      2010-05-28  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Eric Seidel.
      
              Handle edge cases in HTML5 entity parsing
              https://bugs.webkit.org/show_bug.cgi?id=39823
      
              Tests a bunch of the edge cases of entity handling in the HTML5
              specification.
      
              * html5lib/resources/entities01.dat:
              * html5lib/runner-expected.txt:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60369 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fc8e393e
    • cfleizach@apple.com's avatar
      AX: stop prepping value conversion in accessibilityAttributeValueForParameter · 8757d34f
      cfleizach@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=39880
      
      Reviewed by Beth Dakin.
      
      Cleaning up a FIXME so that all values are not converted before they're needed in accessibilityAttributeValue:forParameter:
      
      * accessibility/mac/AccessibilityObjectWrapper.mm:
      (visiblePositionForTextMarker):
      (-[AccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]):
      (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8757d34f
    • treat@webkit.org's avatar
      RIM Bug #293 and https://bugs.webkit.org/show_bug.cgi?id=39859 · a1af9b0e
      treat@webkit.org authored
      Patch by Adam Treat <atreat@rim.com> on 2010-05-28
      Reviewed by Daniel Bates.
      
      Layout is not dependent upon ScrollView::frameRect when useFixedLayout
      is true.  No reason to set the needs layout flag in this case.
      
      * platform/ScrollView.cpp:
      (WebCore::ScrollView::setFrameRect):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a1af9b0e
    • cfleizach@apple.com's avatar
      AX: need to catch NSAccessibilityExceptions in DRT · 7f3f33fb
      cfleizach@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=39881
      
      Reviewed by Darin Adler.
      
      WebKitTools: 
      
      Normally, accessibility exceptions are caught in the AX Runtime on the Mac, but 
      because DRT is its own AX client, no one is there to catch these otherwise innocuous exceptions.
        
      So DRT should wrap exception handlers around its AX related calls.
      
      * DumpRenderTree/mac/AccessibilityUIElementMac.mm:
      (attributesOfElement):
      (AccessibilityUIElement::getLinkedUIElements):
      (AccessibilityUIElement::getDocumentLinks):
      (AccessibilityUIElement::getChildren):
      (AccessibilityUIElement::getChildrenWithRange):
      (AccessibilityUIElement::ariaOwnsElementAtIndex):
      (AccessibilityUIElement::ariaFlowToElementAtIndex):
      (AccessibilityUIElement::disclosedRowAtIndex):
      (AccessibilityUIElement::selectedRowAtIndex):
      (AccessibilityUIElement::titleUIElement):
      (AccessibilityUIElement::parentElement):
      (AccessibilityUIElement::disclosedByRow):
      (AccessibilityUIElement::stringAttributeValue):
      (AccessibilityUIElement::boolAttributeValue):
      (AccessibilityUIElement::isAttributeSettable):
      (AccessibilityUIElement::isAttributeSupported):
      (AccessibilityUIElement::role):
      (AccessibilityUIElement::subrole):
      (AccessibilityUIElement::roleDescription):
      (AccessibilityUIElement::title):
      (AccessibilityUIElement::description):
      (AccessibilityUIElement::orientation):
      (AccessibilityUIElement::stringValue):
      (AccessibilityUIElement::language):
      (AccessibilityUIElement::helpText):
      (AccessibilityUIElement::x):
      (AccessibilityUIElement::y):
      (AccessibilityUIElement::width):
      (AccessibilityUIElement::height):
      (AccessibilityUIElement::clickPointX):
      (AccessibilityUIElement::clickPointY):
      (AccessibilityUIElement::intValue):
      (AccessibilityUIElement::minValue):
      (AccessibilityUIElement::maxValue):
      (AccessibilityUIElement::valueDescription):
      (AccessibilityUIElement::insertionPointLineNumber):
      (AccessibilityUIElement::isActionSupported):
      (AccessibilityUIElement::isEnabled):
      (AccessibilityUIElement::isRequired):
      (AccessibilityUIElement::isSelected):
      (AccessibilityUIElement::isExpanded):
      (AccessibilityUIElement::hierarchicalLevel):
      (AccessibilityUIElement::ariaIsGrabbed):
      (AccessibilityUIElement::ariaDropEffects):
      (AccessibilityUIElement::lineForIndex):
      (AccessibilityUIElement::boundsForRange):
      (AccessibilityUIElement::stringForRange):
      (AccessibilityUIElement::attributesOfColumnHeaders):
      (AccessibilityUIElement::attributesOfRowHeaders):
      (AccessibilityUIElement::attributesOfColumns):
      (AccessibilityUIElement::attributesOfRows):
      (AccessibilityUIElement::attributesOfVisibleCells):
      (AccessibilityUIElement::attributesOfHeader):
      (AccessibilityUIElement::rowCount):
      (AccessibilityUIElement::columnCount):
      (AccessibilityUIElement::indexInTable):
      (AccessibilityUIElement::rowIndexRange):
      (AccessibilityUIElement::columnIndexRange):
      (AccessibilityUIElement::cellForColumnAndRow):
      (AccessibilityUIElement::selectedTextRange):
      (AccessibilityUIElement::setSelectedTextRange):
      (AccessibilityUIElement::increment):
      (AccessibilityUIElement::decrement):
      (AccessibilityUIElement::showMenu):
      (AccessibilityUIElement::press):
      (AccessibilityUIElement::url):
      (AccessibilityUIElement::hasPopup):
      
      LayoutTests: 
      
      * platform/mac/accessibility/unsupported-attribute-does-not-crash-expected.txt: Added.
      * platform/mac/accessibility/unsupported-attribute-does-not-crash.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60366 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7f3f33fb
    • mnaganov@chromium.org's avatar
      2010-05-28 Mikhail Naganov <mnaganov@chromium.org> · 2889d717
      mnaganov@chromium.org authored
              Unreviewed. Revert 60353 -- immature.
      
              https://bugs.webkit.org/show_bug.cgi?id=39646
      
              * bindings/js/JSConsoleCustom.cpp:
              * bindings/v8/custom/V8ConsoleCustom.cpp:
              * page/Console.cpp:
              * page/Console.h:
              * page/Console.idl:
              * fast/dom/Window/window-properties-expected.txt:
              * platform/gtk/fast/dom/Window/window-properties-expected.txt:
              * platform/qt/fast/dom/Window/window-properties-expected.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60365 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2889d717
    • eric@webkit.org's avatar
      2010-05-28 Lucas De Marchi <lucas.demarchi@profusion.mobi> · 4a163cc0
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              [EFL] Allow client to override default database quota. We increase the
              default database quota to 1MB (it was incorrectly set to 1KB, which is
              too low) and add methods to allow client to iteratively database quota
              when it becomes greater than the allowed value.
              https://bugs.webkit.org/show_bug.cgi?id=39867
      
              * efl/WebCoreSupport/ChromeClientEfl.cpp:
              (WebCore::ChromeClientEfl::exceededDatabaseQuota): reimplement method
              to allow client to increase database quota iteratively.
              * efl/ewk/ewk_private.h:
              * efl/ewk/ewk_settings.cpp:
              * efl/ewk/ewk_view.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60364 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4a163cc0
    • eric@webkit.org's avatar
      2010-05-28 Lucas De Marchi <lucas.demarchi@profusion.mobi> · 5d7ae464
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              [EFL] Add default path to web database and methods to set it.
              If a default path is not set, it will default to "/", in which a
              normal user usually does not have write permission.
      
              * efl/EWebLauncher/main.c: overwrite default directory with another
              one.
              (main):
              * efl/ewk/ewk_main.cpp:
              (ewk_init): add default path
              * efl/ewk/ewk_settings.cpp: add methods to set and get database path
              (ewk_settings_web_database_path_set):
              (ewk_settings_web_database_path_get):
              * efl/ewk/ewk_settings.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60363 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5d7ae464
    • eric@webkit.org's avatar
      2010-05-28 Lucas De Marchi <lucas.demarchi@profusion.mobi> · 168ed03b
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              [EFL] Fix wrongly set clipper. Now the scrollbars from main
              frame are shown even on a zoom level lower than 1.0.
      
              * efl/ewk/ewk_view_single.c:
              (_ewk_view_single_smart_add):
              (_ewk_view_single_smart_backing_store_add):
              (ewk_view_single_smart_set):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60362 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      168ed03b
    • darin@apple.com's avatar
      2010-05-27 Darin Adler <darin@apple.com> · 877ce5b7
      darin@apple.com authored
              Reviewed by David Levin.
      
              Make more HTML DOM members private, especially constructors, batch 2
              https://bugs.webkit.org/show_bug.cgi?id=39706
      
              Refactoring so no new tests.
      
              Worked my way up from the bottom of HTMLTagNames.in.
      
              * html/HTMLTagNames.in: Removed createWithNew from keygen, listing,
              map, marquee, menu, meta, ol, optgroup, option, p, param, pre,
              script, select, source, style, table, tbody, td, textarea, tfoot,
              th, thead, title, tr, ul, video, xmp, and noscript.
      
              * editing/htmlediting.cpp:
              (WebCore::createOrderedListElement): Use create function instead of new.
              (WebCore::createUnorderedListElement): Ditto.
              * html/HTMLParser.cpp:
              (WebCore::HTMLParser::handleError): Ditto.
              (WebCore::HTMLParser::mapCreateErrorCheck): Ditto.
              * html/HTMLViewSourceDocument.cpp:
              (WebCore::HTMLViewSourceDocument::createContainingTable): Ditto.
              (WebCore::HTMLViewSourceDocument::addLine): Ditto.
      
              * html/HTMLKeygenElement.cpp:
              (WebCore::HTMLKeygenElement::HTMLKeygenElement): Use create function
              instead of new.
              (WebCore::HTMLKeygenElement::create): Added.
              * html/HTMLKeygenElement.h: Made constructor and virtual function
              overrides private, added create function.
      
              * html/HTMLMapElement.cpp:
              (WebCore::HTMLMapElement::HTMLMapElement):
              (WebCore::HTMLMapElement::create):
              * html/HTMLMapElement.h:
              * html/HTMLMarqueeElement.cpp:
              (WebCore::HTMLMarqueeElement::HTMLMarqueeElement):
              (WebCore::HTMLMarqueeElement::create):
              * html/HTMLMarqueeElement.h:
              * html/HTMLMenuElement.cpp:
              (WebCore::HTMLMenuElement::HTMLMenuElement):
              (WebCore::HTMLMenuElement::create):
              * html/HTMLMenuElement.h:
              * html/HTMLMetaElement.cpp:
              (WebCore::HTMLMetaElement::HTMLMetaElement):
              (WebCore::HTMLMetaElement::create):
              * html/HTMLMetaElement.h:
              * html/HTMLNoScriptElement.cpp:
              (WebCore::HTMLNoScriptElement::HTMLNoScriptElement):
              (WebCore::HTMLNoScriptElement::create):
              (WebCore::HTMLNoScriptElement::childShouldCreateRenderer):
              * html/HTMLNoScriptElement.h:
              * html/HTMLOListElement.cpp:
              (WebCore::HTMLOListElement::HTMLOListElement):
              (WebCore::HTMLOListElement::create):
              * html/HTMLOListElement.h:
              * html/HTMLOptGroupElement.cpp:
              (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
              (WebCore::HTMLOptGroupElement::create):
              * html/HTMLOptGroupElement.h:
              * html/HTMLOptionElement.cpp:
              (WebCore::HTMLOptionElement::HTMLOptionElement):
              (WebCore::HTMLOptionElement::create):
              * html/HTMLOptionElement.h:
              * html/HTMLParagraphElement.cpp:
              (WebCore::HTMLParagraphElement::HTMLParagraphElement):
              (WebCore::HTMLParagraphElement::create):
              * html/HTMLParagraphElement.h:
              * html/HTMLParamElement.cpp:
              (WebCore::HTMLParamElement::HTMLParamElement):
              (WebCore::HTMLParamElement::create):
              * html/HTMLParamElement.h:
              * html/HTMLPreElement.cpp:
              (WebCore::HTMLPreElement::HTMLPreElement):
              (WebCore::HTMLPreElement::create):
              * html/HTMLPreElement.h:
              * html/HTMLQuoteElement.cpp:
              (WebCore::HTMLQuoteElement::HTMLQuoteElement):
              (WebCore::HTMLQuoteElement::create):
              * html/HTMLQuoteElement.h:
              * html/HTMLScriptElement.cpp:
              (WebCore::HTMLScriptElement::HTMLScriptElement):
              (WebCore::HTMLScriptElement::create):
              * html/HTMLScriptElement.h:
              * html/HTMLSelectElement.cpp:
              (WebCore::HTMLSelectElement::create):
              * html/HTMLSelectElement.h:
              * html/HTMLSourceElement.cpp:
              (WebCore::HTMLSourceElement::HTMLSourceElement):
              (WebCore::HTMLSourceElement::create):
              * html/HTMLSourceElement.h:
              * html/HTMLStyleElement.cpp:
              (WebCore::HTMLStyleElement::HTMLStyleElement):
              (WebCore::HTMLStyleElement::create):
              * html/HTMLStyleElement.h:
              * html/HTMLTableRowElement.cpp:
              (WebCore::HTMLTableRowElement::HTMLTableRowElement):
              (WebCore::HTMLTableRowElement::create):
              (WebCore::HTMLTableRowElement::insertCell):
              * html/HTMLTableRowElement.h:
              * html/HTMLTableSectionElement.cpp:
              (WebCore::HTMLTableSectionElement::HTMLTableSectionElement):
              (WebCore::HTMLTableSectionElement::create):
              (WebCore::HTMLTableSectionElement::insertRow):
              * html/HTMLTableSectionElement.h:
              * html/HTMLTextAreaElement.cpp:
              (WebCore::HTMLTextAreaElement::create):
              * html/HTMLTextAreaElement.h:
              * html/HTMLTitleElement.cpp:
              (WebCore::HTMLTitleElement::HTMLTitleElement):
              (WebCore::HTMLTitleElement::create):
              * html/HTMLTitleElement.h:
              * html/HTMLUListElement.cpp:
              (WebCore::HTMLUListElement::HTMLUListElement):
              (WebCore::HTMLUListElement::create):
              * html/HTMLUListElement.h:
              * html/HTMLVideoElement.cpp:
              (WebCore::HTMLVideoElement::HTMLVideoElement):
              (WebCore::HTMLVideoElement::create):
              * html/HTMLVideoElement.h:
              Made constructors and virtual function overrides private, added
              create function.
      
              * html/HTMLTableCellElement.cpp:
              (WebCore::HTMLTableCellElement::HTMLTableCellElement): Updated
              names of data members. Renamed _row to m_row, _col to m_col,
              rSpan to m_rowSpan, cSpan to m_colSpan, and removed unused
              rowHeight and m_solid.
              (WebCore::HTMLTableCellElement::create): Added.
              (WebCore::HTMLTableCellElement::parseMappedAttribute): Updated names.
              * html/HTMLTableCellElement.h: Ditto.
      
              * html/HTMLTableElement.cpp:
              (WebCore::HTMLTableElement::create): Added.
              (WebCore::HTMLTableElement::createTHead): Used create instead of new.
              (WebCore::HTMLTableElement::createTFoot): Ditto.
              (WebCore::HTMLTableElement::insertRow): Ditto.
              * html/HTMLTableElement.h:
      
              * html/HTMLTablePartElement.h: Made members protected instead of
              public.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60361 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      877ce5b7
    • eric@webkit.org's avatar
      2010-05-28 Andreas Kling <andreas.kling@nokia.com> · 1fe87005
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              [Qt] REGRESSION(r59837): Incorrect clipping of TransparencyLayers
              https://bugs.webkit.org/show_bug.cgi?id=39784
      
              Move coordinate transformation from TransparencyLayer to clipToImageBuffer()
      
              * platform/graphics/qt/GraphicsContextQt.cpp:
              (WebCore::TransparencyLayer::TransparencyLayer):
              (WebCore::GraphicsContext::clipToImageBuffer):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60360 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1fe87005
    • eric@webkit.org's avatar
      2010-05-28 Lucas De Marchi <lucas.demarchi@profusion.mobi> · ce500f8a
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              [EF] Implement methods for supporting PopupMenu
              https://bugs.webkit.org/show_bug.cgi?id=39629
      
              * platform/PopupMenu.h: add needed attribute
              * platform/efl/PopupMenuEfl.cpp: implement methods to show/hide popup
              menu
              (WebCore::PopupMenu::PopupMenu): initialize new attribute
              (WebCore::PopupMenu::show): ditto.
              (WebCore::PopupMenu::hide): ditto.
      2010-05-28  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
      
              Reviewed by Kenneth Rohde Christiansen.
      
              [EFL] Add support for Popup menus
              https://bugs.webkit.org/show_bug.cgi?id=39629
      
              * efl/WebCoreSupport/ChromeClientEfl.cpp: implement methods to create
              and destroy popup menu.
              (WebCore::ChromeClientEfl::createSelectPopup): ditto.
              (WebCore::ChromeClientEfl::destroySelectPopup): ditto.
              * efl/WebCoreSupport/ChromeClientEfl.h: ditto.
              * efl/ewk/ewk_private.h: add function to call browser when a popup is
              created/deleted
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60359 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ce500f8a
    • eric@webkit.org's avatar
      2010-05-28 Lucas De Marchi <lucas.demarchi@profusion.mobi> · 03fab3ae
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              Reorder class initializers to remove compiler warnings.
              https://bugs.webkit.org/show_bug.cgi?id=39596
      
              * platform/efl/PlatformKeyboardEventEfl.cpp: ditto.
              (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): ditto.
              * platform/efl/PlatformMouseEventEfl.cpp: ditto.
              (WebCore::PlatformMouseEvent::PlatformMouseEvent): ditto.
              * platform/efl/PlatformWheelEventEfl.cpp: ditto
              (WebCore::PlatformWheelEvent::PlatformWheelEvent): ditto.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60358 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      03fab3ae
    • jorlow@chromium.org's avatar
      2010-05-27 Jeremy Orlow <jorlow@chromium.org> · 6d85cb87
      jorlow@chromium.org authored
              Reviewed by Steve Block.
      
              Add IndexedDB's IDBIndex
              https://bugs.webkit.org/show_bug.cgi?id=39850
      
              Flesh out IDBIndex as much as possible until Andrei finishes
              his patch to get around passing Frame*'s all around.  I also
              cleaned up a bunch of existing files as I noticed style
              violations (while basing my new files off of the old).
      
              Not hooked up enough to test.  Will add tests soon.
      
              * Android.derived.jscbindings.mk
              * Android.derived.v8bindings.mk
              * Android.mk
              * CMakeLists.txt
              * DerivedSources.cpp
              * DerivedSources.make
              * GNUmakefile.am
              * WebCore.pri
              * WebCore.pro
              * WebCore.gypi:
              * WebCore.vcproj/WebCore.vcproj
              * WebCore.xcodeproj/project.pbxproj
              * bindings/js/JSIDBAnyCustom.cpp:
              (WebCore::toJS):
              * bindings/v8/custom/V8IDBAnyCustom.cpp:
              (WebCore::toV8):
              * storage/IDBAny.cpp:
              (WebCore::IDBAny::idbIndexRequest):
              (WebCore::IDBAny::set):
              * storage/IDBAny.h:
              (WebCore::IDBAny::):
              * storage/IDBCallbacks.h:
              * storage/IDBDatabase.h:
              * storage/IDBDatabaseError.h:
              (WebCore::IDBDatabaseError::):
              * storage/IDBDatabaseError.idl:
              * storage/IDBDatabaseException.h:
              * storage/IDBDatabaseException.idl:
              * storage/IDBDatabaseImpl.cpp:
              * storage/IDBDatabaseImpl.h:
              * storage/IDBDatabaseRequest.cpp:
              * storage/IDBDatabaseRequest.h:
              * storage/IDBDatabaseRequest.idl:
              * storage/IDBIndex.h: Added.
              (WebCore::IDBIndex::~IDBIndex):
              * storage/IDBIndexImpl.cpp: Added.
              (WebCore::IDBIndexImpl::IDBIndexImpl):
              (WebCore::IDBIndexImpl::~IDBIndexImpl):
              * storage/IDBIndexImpl.h: Added.
              (WebCore::IDBIndexImpl::create):
              (WebCore::IDBIndexImpl::name):
              (WebCore::IDBIndexImpl::keyPath):
              (WebCore::IDBIndexImpl::unique):
              * storage/IDBIndexRequest.cpp: Added.
              (WebCore::IDBIndexRequest::IDBIndexRequest):
              (WebCore::IDBIndexRequest::~IDBIndexRequest):
              * storage/IDBIndexRequest.h: Added.
              (WebCore::IDBIndexRequest::create):
              (WebCore::IDBIndexRequest::name):
              (WebCore::IDBIndexRequest::keyPath):
              (WebCore::IDBIndexRequest::unique):
              * storage/IDBIndexRequest.idl: Added.
              * storage/IDBObjectStore.cpp:
              (WebCore::IDBObjectStore::IDBObjectStore):
              (WebCore::IDBObjectStore::~IDBObjectStore):
              (WebCore::IDBObjectStore::indexNames):
              (WebCore::IDBObjectStore::createIndex):
              (WebCore::IDBObjectStore::index):
              (WebCore::IDBObjectStore::removeIndex):
              * storage/IDBObjectStore.h:
              * storage/IDBObjectStoreRequest.cpp:
              (WebCore::IDBObjectStoreRequest::IDBObjectStoreRequest):
              (WebCore::IDBObjectStoreRequest::name):
              (WebCore::IDBObjectStoreRequest::keyPath):
              (WebCore::IDBObjectStoreRequest::indexNames):
              (WebCore::IDBObjectStoreRequest::createIndex):
              (WebCore::IDBObjectStoreRequest::index):
              (WebCore::IDBObjectStoreRequest::removeIndex):
              * storage/IDBObjectStoreRequest.h:
              * storage/IDBObjectStoreRequest.idl:
              * storage/IDBRequest.cpp:
              (WebCore::IDBRequest::onSuccess):
              * storage/IDBRequest.h:
              * storage/IndexedDatabaseRequest.idl:
      2010-05-27  Jeremy Orlow  <jorlow@chromium.org>
      
              Reviewed by Steve Block.
      
              Add IndexedDB's IDBIndex
              https://bugs.webkit.org/show_bug.cgi?id=39850
      
              Add WebKit layer for IDBIndex.
      
              * WebKit.gyp:
              * public/WebCommon.h:
              * public/WebIDBCallbacks.h:
              (WebKit::WebIDBCallbacks::onError):
              (WebKit::WebIDBCallbacks::onSuccess):
              * public/WebIDBDatabase.h:
              * public/WebIDBIndex.h: Added.
              (WebKit::WebIDBIndex::~WebIDBIndex):
              (WebKit::WebIDBIndex::name):
              (WebKit::WebIDBIndex::keyPath):
              (WebKit::WebIDBIndex::unique):
              * src/IDBCallbacksProxy.cpp:
              (WebCore::IDBCallbacksProxy::onSuccess):
              * src/IDBCallbacksProxy.h:
              * src/IDBDatabaseProxy.cpp:
              * src/IDBDatabaseProxy.h:
              * src/IDBIndexProxy.cpp: Added.
              (WebCore::IDBIndexProxy::create):
              (WebCore::IDBIndexProxy::IDBIndexProxy):
              (WebCore::IDBIndexProxy::~IDBIndexProxy):
              (WebCore::IDBIndexProxy::name):
              (WebCore::IDBIndexProxy::keyPath):
              (WebCore::IDBIndexProxy::unique):
              * src/IDBIndexProxy.h: Added.
              * src/WebIDBCallbacksImpl.cpp:
              (WebCore::WebIDBCallbacksImpl::onSuccess):
              * src/WebIDBCallbacksImpl.h:
              * src/WebIDBDatabaseImpl.cpp:
              * src/WebIDBDatabaseImpl.h:
              * src/WebIDBIndexImpl.cpp: Added.
              (WebKit::WebIDBIndexImpl::WebIDBIndexImpl):
              (WebKit::WebIDBIndexImpl::~WebIDBIndexImpl):
              (WebKit::WebIDBIndexImpl::name):
              (WebKit::WebIDBIndexImpl::keyPath):
              (WebKit::WebIDBIndexImpl::unique):
              * src/WebIDBIndexImpl.h: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60357 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6d85cb87
    • yurys@chromium.org's avatar
      2010-05-28 Yury Semikhatsky <yurys@chromium.org> · c4535e5c
      yurys@chromium.org authored
              Reviewed by Pavel Feldman.
      
              Web Inspector: check that ClientMessageLoopAdapter is not 0 before
              accessing its fileds from inspectedViewClosed method. It may be 0
              if inspector frontend has not been open.
              https://bugs.webkit.org/show_bug.cgi?id=39876
      
              * src/WebDevToolsAgentImpl.cpp:
              (WebKit::):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60356 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c4535e5c
    • chang.shu@nokia.com's avatar
      2010-05-28 Shu Chang <chang.shu@nokia.com> · 56bd2ec2
      chang.shu@nokia.com authored
              Unreviewed.
      
              Remove two junk files not supposed to be in.
      
              * canvas/philip/tests/.reportgen.html.swp: Removed.
              * canvas/philip/tests/.reportgen.js.swp: Removed.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      56bd2ec2
    • yurys@chromium.org's avatar
      2010-05-28 Yury Semikhatsky <yurys@chromium.org> · 9d7e53c2
      yurys@chromium.org authored
              Reviewed by Pavel Feldman.
      
              Web Inspector: hide node highlight when inspected page closes.
              https://bugs.webkit.org/show_bug.cgi?id=39872
      
              * inspector/InspectorController.cpp:
              (WebCore::InspectorController::~InspectorController):
              (WebCore::InspectorController::inspectedPageDestroyed):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60354 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9d7e53c2
    • mnaganov@chromium.org's avatar
      2010-05-28 Mikhail Naganov <mnaganov@chromium.org> · 85848431
      mnaganov@chromium.org authored
              Reviewed by Yury Semikhatsky.
      
              Web Inspector: add Console API for retrieving memory stats
      
              Add 'console.memory' property which returns an object. Currently
              it has two fields: totalHeapSize and usedHeapSize. Later, it can be
              extended for reporting total browser's memory consumption.
      
              https://bugs.webkit.org/show_bug.cgi?id=39840
      
              * bindings/js/JSConsoleCustom.cpp:
              (WebCore::JSConsole::memory):
              * bindings/v8/custom/V8ConsoleCustom.cpp:
              (WebCore::V8Console::memoryAccessorGetter):
              * page/Console.cpp:
              (WebCore::Console::memory):
              * page/Console.h:
              * page/Console.idl:
              * fast/dom/Window/window-properties-expected.txt:
              * platform/gtk/fast/dom/Window/window-properties-expected.txt:
              * platform/qt/fast/dom/Window/window-properties-expected.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      85848431