- 28 Mar, 2008 2 commits
-
-
ap@webkit.org authored
Fix a dtoa thread safety issue. WebCore can call kjs_strtod without holding JS lock, but we didn't have thread safety compiled in for dtoa. This is a 0.5% regression on SunSpider, which Sam Weinig has volunteered to cover with his recent improvement. * kjs/dtoa.cpp: (Bigint::Balloc): (Bigint::Bfree): Changed to use fastMalloc/fastDelete - they are much faster than the dtoa custom version was in the presence of locking (but somewhat slower in single-threaded case). (Bigint::pow5mult): Got rid of the dreaded double-checked locking anti-pattern (had to restructure the code to avoid significant performance implications). (Bigint::lshift): Rewrote to avoid an allocation, if possible. (Bigint::rv_alloc): (Bigint::kjs_freedtoa): (Bigint::kjs_dtoa): Check for USE(MULTIPLE_THREADS), not dtoa legacy MULTIPLE_THREADS. * kjs/InitializeThreading.cpp: Added. (KJS::initializeThreading): * kjs/InitializeThreading.h: Added. Initialize threading at KJS level, if enabled. * kjs/dtoa.h: Expose dtoa mutex for KJS::initializeThreading. * kjs/testkjs.cpp: (kjsmain): Call initializeThreading. * JavaScriptCore.exp: Export KJS::initializeThreading. * GNUmakefile.am: * JavaScriptCore.exp: * JavaScriptCore.pri: * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: * JavaScriptCoreSources.bkl: * JavaScriptCore.xcodeproj/project.pbxproj: Added InitializeThreading.{h,cpp}. * wtf/Threading.h: Removed a using directive for WTF::initializeThreading - it is only to be called from KJS::initializeThreading, and having it in the global namespace is useless. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31404 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
beidson@apple.com authored
2008-03-28 Brady Eidson <beidson@apple.com> Reviewed by Darin Export Unicode/UTF8.h and convertUTF16ToUTF8() for more flexible conversion in WebCore * JavaScriptCore.exp: * JavaScriptCore.xcodeproj/project.pbxproj: WebCore: 2008-03-28 Brady Eidson <beidson@apple.com> Reviewed by Darin Using convertUTF16ToUTF8() from WTF, add a helper function that gives you a UTF8 SharedBuffer created from a String. * ForwardingHeaders/wtf/unicode/UTF8.h: Added. * platform/text/PlatformString.h: * platform/text/String.cpp: (WebCore::utf8Buffer): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31398 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 22 Mar, 2008 2 commits
-
-
eric@webkit.org authored
* dom/xhtml/level3/core/documentgetdoctype01-expected.txt: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31232 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
eric@webkit.org authored
Make testkjs flush stdout after printing. * JavaScriptCore.xcodeproj/project.pbxproj: * kjs/testkjs.cpp: (functionPrint): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31229 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 20 Mar, 2008 2 commits
-
-
oliver@apple.com authored
Reviewed by Maciej To avoid any extra branches when managing an inline ScopeChainNode in the ScopeChain the inline node gets inserted with a refcount of 2. This meant than when the ScopeChain was destroyed the ScopeChainNodes above the inline node would be leaked. We resolve this by manually popping the inline node in the FunctionExecState destructor. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31205 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs@apple.com authored
- fix build * JavaScriptCore.xcodeproj/project.pbxproj: install Activation.h as private git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31174 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 06 Mar, 2008 1 commit
-
-
ap@webkit.org authored
<rdar://problem/5687269> Need to create a Collator abstraction for WebCore and JavaScriptCore git-svn-id: http://svn.webkit.org/repository/webkit/trunk@30842 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 05 Mar, 2008 1 commit
-
-
andersca@apple.com authored
Reviewed by Geoff. Don't build JavaScriptCore/bindings. * JavaScriptCore.exp: Export a couple of new functions. * JavaScriptCore.xcodeproj/project.pbxproj: Remove bindings/ * kjs/config.h: No need to define HAVE_JNI anymore. * kjs/interpreter.cpp: Remove unnecessary include. WebCore: Reviewed by Geoff. * WebCore.base.exp: Add the NPN and KJS methods. * WebCore.xcodeproj/project.pbxproj: Bring in bridge/ * config.h: Add HAVE_JNI define. * bindings/js/kjs_html.cpp: * bindings/objc/DOMInternal.mm: * bindings/objc/DOMUtility.mm: * bindings/objc/WebScriptObject.mm: * html/HTMLAppletElement.cpp: * html/HTMLEmbedElement.cpp: * html/HTMLObjectElement.cpp: * html/HTMLPlugInElement.cpp: * page/Frame.cpp: * page/mac/FrameMac.mm: * page/mac/WebCoreFrameBridge.mm: * page/mac/WebCoreScriptDebugger.mm: * plugins/win/PluginViewWin.cpp: Include file changes. WebKit/mac: Reviewed by Geoff. Include file changes. * Plugins/WebBaseNetscapePluginView.mm: * Plugins/WebNetscapePluginPackage.m: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@30796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 24 Feb, 2008 1 commit
-
-
weinig@apple.com authored
http://bugs.webkit.org/show_bug.cgi?id=17528 Give testkjs a bath * JavaScriptCore.exp: * JavaScriptCore.xcodeproj/project.pbxproj: Make the testkjs.cpp use 4 space indentation. * kjs/testkjs.cpp: (StopWatch::getElapsedMS): (GlobalObject::className): (GlobalObject::GlobalObject): Rename GlobalImp to GlobalObject and setup the global functions in the GlobalObject's constructor. Also, use static functions for the implementation so we can use the standard PrototypeFunction class and remove TestFunctionImp. (functionPrint): Move print() functionality here. (functionDebug): Move debug() functionality here. (functionGC): Move gc() functionality here. (functionVersion): Move version() functionality here. (functionRun): Move run() functionality here. (functionLoad): Move load() functionality here. (functionQuit): Move quit() functionality here. (prettyPrintScript): Fix indentation. (runWithScripts): Since all the functionality of createGlobalObject is now in the GlobalObject constructor, just call new here. (parseArguments): Fix indentation. (kjsmain): Ditto (fillBufferWithContentsOfFile): Ditto. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@30555 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 23 Feb, 2008 1 commit
-
-
ap@webkit.org authored
Reviewed by Darin. Move basic threading support from WebCore to WTF. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@30522 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 26 Jan, 2008 1 commit
-
-
darin@apple.com authored
- http://bugs.webkit.org/show_bug.cgi?id=16860 a bit of cleanup after the Activation optimization * JavaScriptCore.exp: Export the GlobalExecState constructor instead of the global flavor of the ExecState constructor. It'd probably be cleaner to not export either one, but JSGlobalObject inlines the code that constructs the ExecState. If we changed that, we could remove this export. * JavaScriptCore.xcodeproj/project.pbxproj: Re-sorted a few things and put the new source files into the kjs group rather than at the top level. * kjs/ExecState.cpp: (KJS::ExecState::ExecState): Marked inline and updated for data member name changes. This is now only for use for the derived classes. Also removed code that sets the unused m_savedExec data member for the global case. That data member is only used for the other two types. (KJS::ExecState::~ExecState): Marked inline and removed all the code. The derived class destructors now inclde the appropriate code. (KJS::ExecState::lexicalGlobalObject): Removed unneeded special case for an empty scope chain. The bottom function already returns 0 for that case, so the general case code handles it fine. Also changed to use data members directly rather than calling functions. (KJS::GlobalExecState::GlobalExecState): Added. Calls through to the base class constructor. (KJS::GlobalExecState::~GlobalExecState): Added. (KJS::InterpreterExecState::InterpreterExecState): Added. Moved code to manipulate activeExecStates here since we don't want to have to check for the special case of globalExec. (KJS::InterpreterExecState::~InterpreterExecState): Added. (KJS::EvalExecState::EvalExecState): Added. (KJS::EvalExecState::~EvalExecState): Added. (KJS::FunctionExecState::FunctionExecState): Added. (KJS::FunctionExecState::~FunctionExecState): Added. * kjs/ExecState.h: Tweaked the header, includes, and declarations a bit. Made ExecState inherit from Noncopyable. Reformatted some comments and made them a bit more brief. Rearranged declarations a little bit and removed unused savedExec function. Changed seenLabels function to return a reference rather than a pointer. Made constructors and destructor protected, and also did the same with all data members. Renamed m_thisVal to m_thisValue and ls to m_labelStack. Added three new derived classes for each of the types of ExecState. The primary goal here was to remove a branch from the code in the destructor, but it's also clearer than overloading the arguments to the ExecState constructor. * kjs/JSGlobalObject.cpp: (KJS::getCurrentTime): Fixed formatting. (KJS::JSGlobalObject::pushActivation): Removed parentheses that don't make the expression clearer -- other similar sites didn't have these parentheses, even the one a couple lines earlier that sets stackEntry. (KJS::JSGlobalObject::tearOffActivation): Got rid of unneeded static_cast (I think I mentioned this during patch review) and used an early exit so that the entire contents of the function aren't nested inside an if statement. Also removed the check of codeType, instead checking Activation for 0. For now, I kept the codeType check, but inside an assertion. * kjs/JSGlobalObject.h: Changed type of globalExec to GlobalExecState. * kjs/function.cpp: (KJS::FunctionImp::callAsFunction): Changed type to FunctionExecState. (KJS::GlobalFuncImp::callAsFunction): Changed type to EvalExecState. * kjs/interpreter.cpp: (KJS::Interpreter::evaluate): Changed type to GlobalExecState. * kjs/nodes.cpp: (KJS::ContinueNode::execute): Changed code since seenLabels() returns a reference now instead of a pointer. (KJS::BreakNode::execute): Ditto. (KJS::LabelNode::execute): Ditto. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 15 Jan, 2008 1 commit
-
-
weinig@apple.com authored
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: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29508 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 11 Jan, 2008 1 commit
-
-
mjs@apple.com authored
Reviewed by Maciej. Optimized ActivationImp allocation, so that activation records are now first allocated on an explicitly managed stack and only heap allocated when necessary. Roughly a 5% improvement on SunSpider, and a larger improvement on benchmarks that use more function calls. * JavaScriptCore.xcodeproj/project.pbxproj: * kjs/Activation.h: Added. (KJS::ActivationImp::ActivationData::ActivationData): (KJS::ActivationImp::ActivationImp): (KJS::ActivationImp::classInfo): (KJS::ActivationImp::isActivationObject): (KJS::ActivationImp::isOnStack): (KJS::ActivationImp::d): (KJS::StackActivation::StackActivation): * kjs/ExecState.cpp: (KJS::ExecState::ExecState): (KJS::ExecState::~ExecState): * kjs/ExecState.h: (KJS::ExecState::replaceScopeChainTop): (KJS::ExecState::setActivationObject): (KJS::ExecState::setLocalStorage): * kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::reset): (KJS::JSGlobalObject::pushActivation): (KJS::JSGlobalObject::checkActivationCount): (KJS::JSGlobalObject::popActivationHelper): (KJS::JSGlobalObject::popActivation): (KJS::JSGlobalObject::tearOffActivation): * kjs/JSGlobalObject.h: * kjs/JSVariableObject.h: (KJS::JSVariableObject::JSVariableObjectData::JSVariableObjectData): (KJS::JSVariableObject::JSVariableObject): * kjs/function.cpp: (KJS::FunctionImp::argumentsGetter): (KJS::ActivationImp::ActivationImp): (KJS::ActivationImp::~ActivationImp): (KJS::ActivationImp::init): (KJS::ActivationImp::getOwnPropertySlot): (KJS::ActivationImp::markHelper): (KJS::ActivationImp::mark): (KJS::ActivationImp::ActivationData::ActivationData): (KJS::GlobalFuncImp::callAsFunction): * kjs/function.h: * kjs/nodes.cpp: (KJS::PostIncResolveNode::evaluate): (KJS::PostDecResolveNode::evaluate): (KJS::PreIncResolveNode::evaluate): (KJS::PreDecResolveNode::evaluate): (KJS::ReadModifyResolveNode::evaluate): (KJS::AssignResolveNode::evaluate): (KJS::WithNode::execute): (KJS::TryNode::execute): (KJS::FunctionBodyNode::processDeclarations): (KJS::FuncExprNode::evaluate): * kjs/object.h: * kjs/scope_chain.h: (KJS::ScopeChain::replace): * kjs/scope_chain_mark.h: Added. (KJS::ScopeChain::mark): WebCore: Reviewed by Maciej. Added a new forwarding header, because Activation.h has been separated from function.h * ForwardingHeaders/kjs/Activation.h: Added. LayoutTests: Reviewed by Maciej. Added a test case that came up when developing the ActivationImp tear-off. * fast/js/resources/vardecl-preserve-arguments.js: * fast/js/vardecl-preserve-arguments-expected.txt: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29425 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 10 Jan, 2008 1 commit
-
-
ddkilzer@apple.com authored
dftables should be rewritten as a script <http://bugs.webkit.org/show_bug.cgi?id=16818> <rdar://problem/5681463> Reviewed by Darin. Rewrote the dftables utility in Perl. Attempted to switch all build systems to call the script directly instead of building a binary first. Only the Xcode build was able to be tested. * DerivedSources.make: Added pcre directory to VPATH and changed to invoke dftables directly. * GNUmakefile.am: Removed build information and changed to invoke dftables directly. * JavaScriptCore.vcproj/JavaScriptCore.sln: Removed reference to dftables project. * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln: Ditto. * JavaScriptCore.vcproj/dftables: Removed. * JavaScriptCore.vcproj/dftables/dftables.vcproj: Removed. * JavaScriptCore.xcodeproj/project.pbxproj: Removed dftables target. * jscore.bkl: Removed dftables executable definition. * pcre/dftables: Copied from JavaScriptCore/pcre/dftables.cpp. * pcre/dftables.cpp: Removed. * pcre/dftables.pro: Removed. * pcre/pcre.pri: Removed references to dftables.cpp and changed to invoke dftables directly. WebKit/win: dftables should be rewritten as a script <http://bugs.webkit.org/show_bug.cgi?id=16818> <rdar://problem/5681463> Reviewed by Darin. * WebKit.vcproj/WebKit.sln: Removed reference to dftables project. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 07 Jan, 2008 3 commits
-
-
darin@apple.com authored
- get rid of empty fpconst.cpp * GNUmakefile.am: Remove fpconst.cpp. * JavaScriptCore.pri: Ditto. * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto. * JavaScriptCore.xcodeproj/project.pbxproj: Ditto. * JavaScriptCoreSources.bkl: Ditto. * kjs/fpconst.cpp: Removed. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29245 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
timothy@apple.com authored
Fix Mac build. * API/JSNode.c: * API/JSNode.h: * API/JSNodeList.c: * API/JSNodeList.h: * API/JavaScript.h: * API/JavaScriptCore.h: * API/minidom.c: * JavaScriptCore.xcodeproj/project.pbxproj: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29238 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
alp@webkit.org authored
Reviewed by Darin. http://bugs.webkit.org/show_bug.cgi?id=16029 JavaScriptCore.h is not suitable for platforms other than Mac OS X Introduce a new JavaScriptCore/JavaScript.h public API header. This should be used by all new portable code using the JavaScriptCore API. JavaScriptCore/JavaScriptCore.h will remain for compatibility with existing applications that depend on it including JSStringRefCF.h which isn't portable. Also add minidom to the GTK+/autotools build since we can now support it on all platforms. * API/JSNode.h: * API/JSNodeList.h: * API/JavaScript.h: Added. * API/JavaScriptCore.h: * ForwardingHeaders/JavaScriptCore/JavaScript.h: Added. * GNUmakefile.am: * JavaScriptCore.xcodeproj/project.pbxproj: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29234 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 20 Dec, 2007 1 commit
-
-
mrowe@apple.com authored
Reviewed by Darin Adler. Proxy includes of npruntime.h or npapi.h through npruntime_internal.h Include stdio.h in npapi.h for the use of FILE with XP_UNIX defined This is for building with X11, as some type and enum names conflict with #define names in X11 headers. http://bugs.webkit.org/show_bug.cgi?id=15669 * JavaScriptCore.xcodeproj/project.pbxproj: * bindings/NP_jsobject.h: * bindings/npapi.h: * bindings/npruntime.cpp: * bindings/npruntime_impl.h: * bindings/npruntime_priv.h: * bindings/npruntime_internal.h: * bindings/testbindings.cpp: * bindings/c/c_class.h: * bindings/c/c_runtime.h: * bindings/c/c_utility.h: 2007-12-20 Rodney Dawes <dobey@wayofthemonkey.com> Reviewed by Darin Adler. Define XP_UNIX when building with plugins on X11. Use new npruntime_internal.h instead of npruntime.h. http://bugs.webkit.org/show_bug.cgi?id=15669 * ForwardingHeaders/bindings/npruntime_internal.h * WebCore.pro: * html/HTMLPlugInElement.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28911 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 16 Dec, 2007 1 commit
-
-
ggaren@apple.com authored
More refactoring to support global variable optimization. Changed SymbolTable to use RefPtr<UString::Rep> as its key instead of UString::Rep*. With globals, the symbol table can outlast the declaration node for any given symbol, so the symbol table needs to ref its symbol names. In support, specialized HashMaps with RefPtr keys to allow lookup via raw pointer, avoiding refcount churn. SunSpider reports a .6% speedup (prolly just noise). * JavaScriptCore.vcproj/WTF/WTF.vcproj: Added new file: wtf/RefPtrHashMap.h * JavaScriptCore.xcodeproj/project.pbxproj: ditto * kjs/JSVariableObject.cpp: (KJS::JSVariableObject::getPropertyNames): Symbol table keys are RefPtrs now. * kjs/SymbolTable.h: Modified key traits to match RefPtr. Added a static Rep* for null, which helps compute the deletedValue() trait. * wtf/HashMap.h: #include the RefPtr specialization so everyone can use it. * wtf/RefPtrHashMap.h: Copied from wtf/HashMap.h. Added overloaded versions of find(), contains(), get(), set(), add(), remove(), and take() that take raw pointers as keys. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28777 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 11 Dec, 2007 1 commit
-
-
ggaren@apple.com authored
Fixed: All JS tests crash on Windows. NDEBUG wasn't defined when compiling testkjs in release builds, so the HashTable definition in HashTable.h included an extra data member. The solution was to add NDEBUG to the release testkjs configuration on Windows and Mac. For giggles, I also added other missing #defines to testkjs on Windows. * Configurations/Base.xcconfig: * Configurations/JavaScriptCore.xcconfig: * JavaScriptCore.vcproj/testkjs/testkjs.vcproj: * JavaScriptCore.xcodeproj/project.pbxproj: * kjs/testkjs.cpp: (main): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 07 Dec, 2007 1 commit
-
-
ggaren@apple.com authored
Reviewed by Sam Weinig. Next step in refactoring JSGlobalObject: Added JSVariableObject class, and factored symbol-table-related code into it. (JSGlobalObject doesn't use the symbol table code yet, though.) Layout and JS tests, and testapi, pass. SunSpider reports no regression. WebCore: Reviewed by Sam Weinig. Added some namespace qualifications and a forwarding header, now that KJS::Node is sometimes #included in WebCore by JavaScriptCore headers. * ForwardingHeaders/wtf/ListRefPtr.h: Added. * bindings/js/JSXSLTProcessor.cpp: (KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction): * bindings/js/kjs_binding.cpp: (KJS::ScriptInterpreter::getDOMNodeForDocument): (KJS::ScriptInterpreter::forgetDOMNodeForDocument): (KJS::ScriptInterpreter::putDOMNodeForDocument): (KJS::ScriptInterpreter::markDOMNodesForDocument): (KJS::ScriptInterpreter::updateDOMNodeDocument): WebKit/mac: Reviewed by Sam Weinig. Added a forwarding header, since we now #include nodes.h through some JavaScriptCore headers. * ForwardingHeaders/wtf/ListRefPtr.h: Added. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28527 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 05 Dec, 2007 1 commit
-
-
ggaren@apple.com authored
Reviewed by Darin Adler. Third step in refactoring JSGlobalObject: Moved data members and functions accessing data members from Interpreter to JSGlobalObject. Changed Interpreter member functions to static functions. This resolves a bug in global object bootstrapping, where the global ExecState could be used when uninitialized. This is a big change, but it's mostly code motion and renaming. Layout and JS tests, and testjsglue and testapi, pass. SunSpider reports a .7% regression, but Shark sees no difference related to this patch, and SunSpider reported a .7% speedup from an earlier step in this refactoring, so I think it's fair to call that a wash. JavaScriptGlue: Reviewed by Darin Adler. Third step in refactoring JSGlobalObject: Moved data members and data member access from Interpreter to JSGlobalObject. Replaced JSInterpreter subclass with JSGlobalObject subclass. * JSRun.cpp: (JSRun::JSRun): (JSRun::Evaluate): (JSRun::CheckSyntax): * JSRun.h: (JSGlueGlobalObject::JSGlueGlobalObject): * JSUtils.cpp: (KJSValueToCFTypeInternal): * JSValueWrapper.cpp: (getThreadGlobalExecState): WebCore: Reviewed by Darin Adler. Third step in refactoring JSGlobalObject: Moved data members and data member access from Interpreter to JSGlobalObject. Changed Interpreter member functions to static functions. Same for the subclass, ScriptInterpreter. This is a big change, but it's mostly code motion and renaming. WebKit/mac: Reviewed by Darin Adler. Third step in refactoring JSGlobalObject: Moved data members and data member access from Interpreter to JSGlobalObject. * WebView/WebFrame.mm: (-[WebFrame _attachScriptDebugger]): WebKit/win: Reviewed by Darin Adler. Third step in refactoring JSGlobalObject: Moved data members and data member access from Interpreter to JSGlobalObject. * WebFrame.cpp: (WebFrame::globalContext): (WebFrame::attachScriptDebugger): (WebFrame::windowObjectCleared): * WebScriptDebugger.cpp: (WebScriptDebugger::WebScriptDebugger): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28468 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 04 Dec, 2007 1 commit
-
-
oliver@apple.com authored
Reviewed by Mark Rowe and Geoff Garen. It also result in a performance progression between 0.5% and 0.9% depending on the test, however most if not all of this gain will be consumed by the overhead involved in the later change to release memory to the system. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28434 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 03 Dec, 2007 1 commit
-
-
ggaren@apple.com authored
Reviewed by Eric Seidel. Second step in refactoring JSGlobalObject: moved virtual functions from Interpreter to JSGlobalObject. Layout and JS tests pass. SunSpider reports a .7% speedup -- don't believe his lies. JavaScriptGlue: Reviewed by Eric Seidel. Updated to match the JavaScriptCore change to move virtual methods from Interpreter to JSGlobalObject. * JSRun.cpp: * JSRun.h: * JSValueWrapper.cpp: (getThreadGlobalExecState): * JavaScriptGlue.cpp: (JSRunCopyGlobalObject): (JSRunEvaluate): WebCore: Reviewed by Eric Seidel. Updated to match the JavaScriptCore change to move virtual methods from Interpreter to JSGlobalObject. Moved virtual ScriptInterpreter functions to Window. WebKit/mac: Reviewed by Eric Seidel. Updated to match the JavaScriptCore change to move virtual methods from Interpreter to JSGlobalObject. * WebView/WebFrame.mm: (-[WebFrame globalContext]): Use the toRef function instead of manually casting. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28328 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 29 Nov, 2007 1 commit
-
-
eric@webkit.org authored
Reviewed by Sam. Clean up compile_branch, move _pcre_ord2utf8, and rename CompileData * JavaScriptCore.xcodeproj/project.pbxproj: * pcre/pcre_compile.cpp: (_pcre_ord2utf8): (calculateCompiledPatternLengthAndFlags): (jsRegExpCompile): * pcre/pcre_internal.h: * pcre/pcre_ord2utf8.cpp: Removed. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28145 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 28 Nov, 2007 2 commits
-
-
mrowe@apple.com authored
Roll out r28106 and r28108. These introduced a frequent assertion failure on page load and broke all non-Mac builds. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28110 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs@apple.com authored
Reviewed by Darin and Geoff. - Fixed "Stack overflow crash in JavaScript garbage collector mark pass" http://bugs.webkit.org/show_bug.cgi?id=12216 Implement mark stack. This version is not suitable for prime time because it makes a huge allocation on every collect, and potentially makes marking of detached subtrees slow. But it is an 0.4% SunSpider speedup even without much tweaking. The basic approach is to replace mark() methods with markChildren(MarkStack&) methods. Reachable references are pushed onto a mark stack (which encapsulates ignoring already-marked references). Objects are no longer responsible for actually setting their own mark bits, the collector does that. This means that for objects on the number heap we don't have to call markChildren() at all since we know there aren't any. The mark phase of collect pushes roots onto the mark stack and drains it as often as possible. To make this approach viable requires a constant-size mark stack and a slow fallback approach for when the stack size is exceeded, plus optimizations to make the required stack small in common cases. This should be doable. * JavaScriptCore.exp: Export new symbols. * JavaScriptCore.xcodeproj/project.pbxproj: Add new file. * kjs/collector.cpp: (KJS::Collector::heapAllocate): (KJS::drainMarkStack): Helper for all of the below. (KJS::Collector::markStackObjectsConservatively): Use mark stack. (KJS::Collector::markCurrentThreadConservatively): ditto (KJS::Collector::markOtherThreadConservatively): ditto (KJS::Collector::markProtectedObjects): ditto (KJS::Collector::markMainThreadOnlyObjects): ditto (KJS::Collector::collect): ditto * kjs/collector.h: (KJS::Collector::cellMayHaveRefs): Helper for MarkStack. * kjs/MarkStack.h: Added. The actual mark stack implementation. (KJS::MarkStack::push): (KJS::MarkStack::pushAtom): (KJS::MarkStack::pop): (KJS::MarkStack::isEmpty): (KJS::MarkStack::reserveCapacity): Changed mark() methods to markChildren() methods: * kjs/ExecState.cpp: (KJS::ExecState::markChildren): * kjs/ExecState.h: * kjs/JSWrapperObject.cpp: (KJS::JSWrapperObject::markChildren): * kjs/JSWrapperObject.h: * kjs/array_instance.cpp: (KJS::ArrayInstance::markChildren): * kjs/array_instance.h: * kjs/bool_object.cpp: (BooleanInstance::markChildren): * kjs/bool_object.h: * kjs/error_object.cpp: * kjs/error_object.h: * kjs/function.cpp: (KJS::FunctionImp::markChildren): (KJS::Arguments::Arguments): (KJS::Arguments::markChildren): (KJS::ActivationImp::markChildren): * kjs/function.h: * kjs/internal.cpp: (KJS::GetterSetterImp::markChildren): * kjs/interpreter.cpp: (KJS::Interpreter::markRoots): * kjs/interpreter.h: * kjs/list.cpp: (KJS::List::markProtectedListsSlowCase): * kjs/list.h: (KJS::List::markProtectedLists): * kjs/object.cpp: (KJS::JSObject::markChildren): * kjs/object.h: (KJS::ScopeChain::markChildren): * kjs/property_map.cpp: (KJS::PropertyMap::markChildren): * kjs/property_map.h: * kjs/scope_chain.h: * kjs/string_object.cpp: (KJS::StringInstance::markChildren): * kjs/string_object.h: JavaScriptGlue: Reviewed by Darin and Geoff. Fixups for JavaScriptCore mark stack. * JSObject.cpp: (JSUserObject::Mark): * JSObject.h: * JSValueWrapper.cpp: (JSValueWrapper::JSObjectMark): * JSValueWrapper.h: * UserObjectImp.cpp: * UserObjectImp.h: WebCore: Reviewed by Darin and Geoff. Implement mark stack. This version is not suitable for prime time because it makes a huge allocation on every collect, and potentially makes marking of detached subtrees slow. But it is a .2% - .4% speedup even without much tweaking. I replaced mark() methods with markChildren() as usual. One optimization that is lost is avoiding walking detached DOM subtrees more than once to mark them; since marking is not recursive there's no obvious way to bracket operation on the tree any more. * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::markChildren): * bindings/js/JSNodeCustom.cpp: (WebCore::JSNode::markChildren): * bindings/js/JSNodeFilterCondition.cpp: * bindings/js/JSNodeFilterCondition.h: * bindings/js/JSNodeFilterCustom.cpp: (WebCore::JSNodeFilter::markChildren): * bindings/js/JSNodeIteratorCustom.cpp: (WebCore::JSNodeIterator::markChildren): * bindings/js/JSTreeWalkerCustom.cpp: (WebCore::JSTreeWalker::markChildren): * bindings/js/JSXMLHttpRequest.cpp: (KJS::JSXMLHttpRequest::markChildren): * bindings/js/JSXMLHttpRequest.h: * bindings/js/kjs_binding.cpp: (KJS::ScriptInterpreter::markDOMNodesForDocument): * bindings/js/kjs_binding.h: * bindings/js/kjs_events.cpp: (WebCore::JSUnprotectedEventListener::markChildren): * bindings/js/kjs_events.h: * bindings/js/kjs_window.cpp: (KJS::Window::markChildren): * bindings/js/kjs_window.h: * bindings/scripts/CodeGeneratorJS.pm: * dom/Node.cpp: (WebCore::Node::Node): * dom/Node.h: * dom/NodeFilter.h: * dom/NodeFilterCondition.h: LayoutTests: Not reviewed. - Test cases for "Stack overflow crash in JavaScript garbage collector mark pass" http://bugs.webkit.org/show_bug.cgi?id=12216 I have fixed this with the mark stack work. * fast/js/gc-breadth-2-expected.txt: Added. * fast/js/gc-breadth-2.html: Added. * fast/js/gc-breadth-expected.txt: Added. * fast/js/gc-breadth.html: Added. * fast/js/gc-depth-expected.txt: Added. * fast/js/gc-depth.html: Added. * fast/js/resources/gc-breadth-2.js: Added. * fast/js/resources/gc-breadth.js: Added. * fast/js/resources/gc-depth.js: Added. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28106 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 16 Nov, 2007 1 commit
-
-
mrowe@apple.com authored
Reviewed by Sam Weinig and Tim Hatcher. Move base setting for HEADER_SEARCH_PATHS into Base.xcconfig, and extend it in JavaScriptCore.xcconfig. This removes the need to override it on a per-target basis inside the .xcodeproj file. * Configurations/Base.xcconfig: * Configurations/JavaScriptCore.xcconfig: * JavaScriptCore.xcodeproj/project.pbxproj: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27845 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 15 Nov, 2007 1 commit
-
-
eric@webkit.org authored
Reviewed by Sam. Clean up match function to match WebKit style * JavaScriptCore.xcodeproj/project.pbxproj: * pcre/pcre_exec.cpp: (match): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27828 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 14 Nov, 2007 1 commit
-
-
weinig@apple.com authored
Fix the Xcode project file after it was messed up in r27402. * JavaScriptCore.xcodeproj/project.pbxproj: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27808 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 13 Nov, 2007 4 commits
-
-
ggaren@apple.com authored
Reviewed by Anders Carlsson. Renamed Shared to RefCounted. * API/JSClassRef.h: * JavaScriptCore.xcodeproj/project.pbxproj: * kjs/interpreter.h: * kjs/regexp.h: * wtf/RefCounted.h: Copied from JavaScriptCore/wtf/Shared.h. (WTF::RefCounted::RefCounted): * wtf/Shared.h: Removed. JavaScriptGlue: Reviewed by Anders Carlsson. Renamed Shared to RefCounted. * ForwardingHeaders/wtf/RefCounted.h: Copied from JavaScriptGlue/ForwardingHeaders/wtf/Shared.h. * ForwardingHeaders/wtf/Shared.h: Removed. WebCore: Reviewed by Anders Carlsson. Renamed Shared to RefCounted. * ForwardingHeaders/wtf/RefCounted.h: Copied from WebCore/ForwardingHeaders/wtf/Shared.h. * ForwardingHeaders/wtf/Shared.h: Removed. * bindings/js/JSSVGPODTypeWrapper.h: * css/CSSFontFace.h: * css/CSSRuleList.h: * css/Counter.h: * css/Pair.h: * css/Rect.h: * css/StyleBase.h: * css/StyleSheetList.h: * dom/Attribute.h: * dom/Clipboard.h: * dom/DOMImplementation.h: * dom/Event.h: * dom/EventListener.h: * dom/NamedNodeMap.h: * dom/NodeFilter.h: * dom/NodeFilterCondition.h: * dom/NodeList.h: * dom/QualifiedName.h: * dom/Range.h: * dom/RangeException.h: * dom/RegisteredEventListener.h: * dom/Traversal.h: * editing/EditCommand.h: * history/BackForwardList.h: * history/CachedPage.h: * history/HistoryItem.cpp: (WebCore::HistoryItem::HistoryItem): * history/HistoryItem.h: * html/CanvasGradient.h: * html/CanvasPattern.h: * html/CanvasRenderingContext2D.h: * html/CanvasStyle.h: * html/HTMLCollection.h: * html/MediaError.h: * html/TimeRanges.h: * html/VoidCallback.h: * ksvg2/css/SVGRenderStyle.cpp: (WebCore::SVGRenderStyle::SVGRenderStyle): * ksvg2/css/SVGRenderStyle.h: * ksvg2/css/SVGRenderStyleDefs.cpp: (StyleFillData::StyleFillData): (StyleStrokeData::StyleStrokeData): (StyleStopData::StyleStopData): (StyleTextData::StyleTextData): (StyleClipData::StyleClipData): (StyleMaskData::StyleMaskData): (StyleMarkerData::StyleMarkerData): (StyleMiscData::StyleMiscData): * ksvg2/css/SVGRenderStyleDefs.h: * ksvg2/svg/SVGAngle.cpp: (WebCore::SVGAngle::SVGAngle): * ksvg2/svg/SVGAngle.h: * ksvg2/svg/SVGAnimatedTemplate.h: * ksvg2/svg/SVGElementInstanceList.h: * ksvg2/svg/SVGException.h: * ksvg2/svg/SVGList.h: * ksvg2/svg/SVGPathSeg.h: * ksvg2/svg/SVGPreserveAspectRatio.cpp: (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio): * ksvg2/svg/SVGPreserveAspectRatio.h: * ksvg2/svg/SVGRenderingIntent.h: * ksvg2/svg/SVGTransform.h: * ksvg2/svg/SVGUnitTypes.h: * loader/DocumentLoader.h: * loader/FormState.h: * loader/ResourceLoader.h: * loader/TextResourceDecoder.h: * loader/icon/IconRecord.h: * page/BarInfo.h: * page/Console.h: * page/DOMSelection.h: * page/DOMWindow.h: * page/Frame.h: * page/History.h: * page/InspectorController.cpp: * page/Plugin.h: * page/Screen.h: * platform/ArrayImpl.h: * platform/CString.h: * platform/Cursor.h: * platform/DeprecatedValueListImpl.cpp: (WebCore::DeprecatedValueListImpl::Private::Private): * platform/FileChooser.h: * platform/FontFallbackList.h: * platform/FontFamily.cpp: (WebCore::FontFamily::FontFamily): * platform/FontFamily.h: * platform/FontSelector.h: * platform/GlyphPageTreeNode.h: * platform/PopupMenu.h: * platform/RegularExpression.cpp: * platform/ScrollBar.h: * platform/SharedBuffer.h: * platform/StringImpl.h: * platform/graphics/Icon.h: * platform/graphics/svg/SVGResource.h: * platform/network/FormData.cpp: (WebCore::FormData::FormData): * platform/network/FormData.h: * platform/network/ResourceHandle.h: * platform/network/ResourceHandleClient.h: * rendering/RenderStyle.cpp: (WebCore::StyleSurroundData::StyleSurroundData): (WebCore::StyleBoxData::StyleBoxData): (WebCore::StyleVisualData::StyleVisualData): (WebCore::StyleBackgroundData::StyleBackgroundData): (WebCore::StyleMarqueeData::StyleMarqueeData): (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData): (WebCore::StyleMultiColData::StyleMultiColData): (WebCore::StyleTransformData::StyleTransformData): (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): (WebCore::StyleRareInheritedData::StyleRareInheritedData): (WebCore::StyleInheritedData::StyleInheritedData): * rendering/RenderStyle.h: * rendering/SVGCharacterLayoutInfo.h: (WebCore::SVGCharOnPath::SVGCharOnPath): * storage/SQLResultSetRowList.h: * xml/DOMParser.h: * xml/XMLHttpRequest.h: * xml/XMLSerializer.h: * xml/XPathEvaluator.h: * xml/XPathExpression.h: * xml/XPathNSResolver.h: * xml/XPathResult.h: * xml/XPathValue.h: * xml/XSLTProcessor.h: WebKit/mac: Reviewed by Anders Carlsson. Renamed Shared to RefCounted. * ForwardingHeaders/wtf/RefCounted.h: Copied from WebKit/mac/ForwardingHeaders/wtf/Shared.h. * ForwardingHeaders/wtf/Shared.h: Removed. * WebCoreSupport/WebContextMenuClient.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27776 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
ggaren@apple.com authored
Reviewed by Sam Weinig. Moved Shared.h into wtf so it could be used in more places. Deployed Shared in places where JSCore previously had hand-rolled ref-counting classes. * API/JSClassRef.cpp: (OpaqueJSClass::OpaqueJSClass): * API/JSClassRef.h: * API/JSObjectRef.cpp: (JSClassRetain): (JSClassRelease): * JavaScriptCore.vcproj/WTF/WTF.vcproj: * JavaScriptCore.xcodeproj/project.pbxproj: * kjs/interpreter.cpp: (KJS::Interpreter::init): * kjs/interpreter.h: * kjs/regexp.cpp: (KJS::RegExp::RegExp): * kjs/regexp.h: * wtf/Shared.h: Copied from WebCore/platform/Shared.h. JavaScriptGlue: Reviewed by Sam Weinig. Moved Shared.h into wtf so it could be used in more places. * ForwardingHeaders/wtf/Shared.h: Added. WebCore: Reviewed by Sam Weinig. Moved Shared.h into wtf so it could be used in more places. Retained TreeShared, but moved it to its own file, TreeShared.h. * ForwardingHeaders/wtf/Shared.h: Added. * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGPODTypeWrapper.h: * css/CSSFontFace.h: * css/CSSRuleList.h: * css/Counter.h: * css/Pair.h: * css/Rect.h: * css/StyleBase.h: * css/StyleSheetList.h: * dom/Clipboard.h: * dom/DOMImplementation.h: * dom/Event.h: * dom/EventListener.h: * dom/NamedNodeMap.h: * dom/NodeFilterCondition.h: * dom/NodeList.h: * dom/Range.h: * dom/RangeException.h: * dom/RegisteredEventListener.h: * dom/Traversal.h: * history/BackForwardList.h: * history/CachedPage.h: * history/HistoryItem.h: * html/CanvasGradient.h: * html/CanvasPattern.h: * html/HTMLCollection.h: * html/MediaError.h: * html/TimeRanges.h: * html/VoidCallback.h: * ksvg2/css/SVGRenderStyleDefs.h: * ksvg2/svg/SVGAnimatedTemplate.h: * ksvg2/svg/SVGElementInstanceList.h: * ksvg2/svg/SVGList.h: * ksvg2/svg/SVGPathSeg.h: * ksvg2/svg/SVGPreserveAspectRatio.h: * ksvg2/svg/SVGRenderingIntent.h: * ksvg2/svg/SVGTransform.h: * ksvg2/svg/SVGUnitTypes.h: * loader/DocumentLoader.h: * loader/FormState.h: * loader/ResourceLoader.h: * loader/TextResourceDecoder.h: * loader/icon/IconRecord.h: * page/BarInfo.h: * page/Console.h: * page/DOMSelection.h: * page/DOMWindow.h: * page/History.h: * page/InspectorController.cpp: * page/Plugin.h: * page/Screen.h: * platform/ArrayImpl.h: * platform/CString.h: * platform/DeprecatedValueListImpl.cpp: * platform/FontFallbackList.h: * platform/FontFamily.h: * platform/FontSelector.h: * platform/GlyphPageTreeNode.h: * platform/PopupMenu.h: * platform/RegularExpression.cpp: * platform/ScrollBar.h: * platform/Shared.h: Removed. * platform/SharedBuffer.h: * platform/StringImpl.h: * platform/graphics/Icon.h: * platform/graphics/svg/SVGResource.h: * platform/network/FormData.h: * platform/network/ResourceHandleClient.h: * rendering/RenderStyle.h: * rendering/SVGCharacterLayoutInfo.h: * storage/SQLResultSetRowList.h: * xml/DOMParser.h: * xml/XMLSerializer.h: * xml/XPathEvaluator.h: * xml/XPathExpression.h: * xml/XPathNSResolver.h: * xml/XPathResult.h: WebKit/mac: Reviewed by Sam Weinig. Moved Shared.h into wtf so it could be used in more places. * ChangeLog: * WebCoreSupport/WebContextMenuClient.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27763 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
eric@webkit.org authored
Reviewed by Maciej. Add an ASSERT to getTruncatedInt32 to enforce proper usage. Best part about this patch? It doesn't break the web! * kjs/JSImmediate.h: (KJS::JSImmediate::getTruncatedInt32): (KJS::JSImmediate::toDouble): (KJS::JSImmediate::getUInt32): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27759 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
ap@webkit.org authored
http://bugs.webkit.org/show_bug.cgi?id=15953 Add UTF-8 encoding/decoding to WTF * kjs/ustring.h: Moved UTF8SequenceLength() and decodeUTF8Sequence() to wtf/unicode. * kjs/ustring.cpp: (KJS::UString::UTF8String): Changed this function to take a strict/lenient parameter. Callers are not interested in getting decoding results in strict mode, so this allows for bailing out as soon as an error is seen. * kjs/function.cpp: (KJS::encode): Updated for new UString::UTF8String() signature. * API/JSStringRef.cpp: (JSStringCreateWithCharacters): Disambiguate UChar. (JSStringCreateWithUTF8CString): Actually use UTF-8 when creating the string! * bindings/c/c_utility.cpp: (KJS::Bindings::convertUTF8ToUTF16): Use ConvertUTF8ToUTF16(). * wtf/unicode/UTF8.cpp: Added. (WTF::Unicode::inlineUTF8SequenceLengthNonASCII): (WTF::Unicode::inlineUTF8SequenceLength): (WTF::Unicode::UTF8SequenceLength): (WTF::Unicode::decodeUTF8Sequence): (WTF::Unicode::): (WTF::Unicode::ConvertUTF16ToUTF8): (WTF::Unicode::isLegalUTF8): (WTF::Unicode::ConvertUTF8ToUTF16): * wtf/unicode/UTF8.h: Added. (WTF::Unicode::): Some code moved from ustring.h, some adapted from unicode.org sources. * JavaScriptCore.exp: * JavaScriptCore.pri: * JavaScriptCore.vcproj/WTF/WTF.vcproj: * JavaScriptCore.xcodeproj/project.pbxproj: * JavaScriptCoreSources.bkl: Added UTF8.{h,cpp} git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27746 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 11 Nov, 2007 2 commits
-
-
darin@apple.com authored
by adding another include path. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27687 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
darin@apple.com authored
Reviewed by Sam. - http://bugs.webkit.org/show_bug.cgi?id=15924 next round of changes to JSRegExp (formerly PCRE) This is a combination of converting to C++, tweaking the API, and adding some additional optimizations. Future steps will involve getting rid of the use of UTF-8 completely (we'll use UTF-16 exclusively instead), eliminating more source files, and some more speed-ups. SunSpider says the current round is an 0.9% speed-up overall, and a 5.3% speed-up for regexp. * JavaScriptCore.exp: Updated for new entry points. * JavaScriptCore.pri: * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: * JavaScriptCore.vcproj/dftables/dftables.vcproj: * JavaScriptCore.xcodeproj/project.pbxproj: * JavaScriptCoreSources.bkl: * jscore.bkl: Updated for new source file names and ForwardingHeaders. * kjs/regexp.cpp: (KJS::RegExp::RegExp): Changed to use the error message without calling strdup on it and to pass the new types and options. (KJS::RegExp::~RegExp): Removed the now-unneeded free of the error message. (KJS::RegExp::match): Pass the new types and options. * kjs/regexp.h: Update type of m_constructionError. * pcre/AUTHORS: Update to reflect the status of the project -- we don't include the Google parts, and this isn't the PCRE library, per se. * pcre/COPYING: Ditto. * pcre/dftables.cpp: Copied from JavaScriptCore/pcre/dftables.c. (main): Removed unneeded ctype_digit. * pcre/pcre.h: Convert to C++, tweak API a bit. Use UChar instead of JSRegExpChar. * pcre/pcre_compile.cpp: Copied from JavaScriptCore/pcre/pcre_compile.c. Moved a lot of private stuff used only within this file here from pcre_internal.h. Renumbered the error codes. (error_text): Use a single string with embedded nulls for the error text (I got this idea from newer versions of PCRE). (check_escape): Changed return type to be enum instead of int. Replaced ctype_digit uses with isASCIIDigit. (is_counted_repeat): Ditto. (read_repeat_counts): Ditto. (first_significant_code): Ditto. (find_fixedlength): Ditto. (could_be_empty_branch): Ditto. (compile_branch): Ditto. Also removed some code that handles changing options. JavaScript doesn't have any of the features that allow options to change. (compile_regex): Updated for change to options parameter. (is_anchored): Ditto. (find_firstassertedchar): Ditto. (jsRegExpCompile): Changed to take separate flags instead of an options int. Also changed to call new/delete instead of pcre_malloc/free. (jsRegExpFree): Ditto. * pcre/pcre_exec.cpp: Copied from JavaScriptCore/pcre/pcre_exec.c. Added a case that uses computed goto for the opcode loop, but did not turn it on. Changed the RMATCH macro to handle returns more efficiently by putting the where pointer in the new frame instead of the old one, allowing us to branch to the return with a single statement. Switched to new/delete from pcre_malloc/free. Changed many RRETURN callers to not set the return value since it's already set correctly. Replaced the rrc variable with an is_match variable. Values other than "match" and "no match" are now handled differently. This allows us to remove the code to check for those cases in various rules. (match): All the case statements use a macro BEGIN_OPCODE instead. And all the continue statements, or break statements that break out of the outer case use a macro NEXT_OPCODE instead. Replaced a few if statements with assertions. (jsRegExpExecute): Use new/delete instead of pcre_malloc/free. Removed unused start_match field from the match block. * pcre/pcre_internal.h: Moved the last few configuration macros from pcre-config.h in here. Removed various unused types. Converted from JSRegExpChar to UChar. Eliminated pcre_malloc/free. Replaced the opcode enum with a macro that can be used in multiple places. Unfortunately we lose the comments for each opcode; we should find a place to put those back. Removed ctype_digit. * pcre/pcre_maketables.cpp: Copied from JavaScriptCore/pcre/pcre_maketables.c. (pcre_maketables): Got rid of the conditional code that allows this to be compiled in -- it's only used for dftables now (and soon may be obsolete entirely). Changed code for cbit_digit to not use isdigit, and took the "_" case out of the loop. Removed ctype_digit. * pcre/pcre_ord2utf8.cpp: Copied from JavaScriptCore/pcre/pcre_ord2utf8.c. * pcre/pcre_tables.cpp: Copied from JavaScriptCore/pcre/pcre_tables.c. Moved _pcre_OP_lengths out of here into pcre_exec.cpp. * pcre/pcre_ucp_searchfuncs.cpp: Copied from JavaScriptCore/pcre/pcre_ucp_searchfuncs.c. Updated for other file name changes. * pcre/pcre_xclass.cpp: Copied from JavaScriptCore/pcre/pcre_xclass.c. * pcre/ucpinternal.h: Updated header. * pcre/ucptable.cpp: Copied from JavaScriptCore/pcre/ucptable.c. * wtf/ASCIICType.h: (WTF::isASCIIDigit): Removed a branch by changing from && to & for this operation. Also added an overload that takes an int because that's useful for PCRE. Later we could optimize for int and overload other functions in this file; stuck to this simple one for now. * wtf/unicode/icu/UnicodeIcu.h: Removed unused isUpper. * wtf/unicode/qt4/UnicodeQt4.h: Ditto. * pcre/LICENCE: Removed. * pcre/pcre-config.h: Removed. * wtf/FastMallocPCRE.cpp: Removed. * pcre/dftables.c: Renamed to cpp. * pcre/pcre_compile.c: Ditto. * pcre/pcre_exec.c: Ditto. * pcre/pcre_maketables.c: Ditto. * pcre/pcre_ord2utf8.c: Ditto. * pcre/pcre_tables.c: Ditto. * pcre/pcre_ucp_searchfuncs.c: Ditto. * pcre/pcre_xclass.c: Ditto. * pcre/ucptable.c: Ditto. WebCore: Reviewed by Sam. - updated for JSRegExp function changes * platform/RegularExpression.cpp: (WebCore::RegularExpression::Private::compile): (WebCore::RegularExpression::match): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27686 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 04 Nov, 2007 1 commit
-
-
darin@apple.com authored
* pcre/pcre_compile.c: (compile_branch): Removed branch chain and some unused ESC values. (compile_regex): Ditto. (jsRegExpCompile): Ditto. * pcre/pcre_exec.c: (match): Removed unused branch targets. Don't use macros any more. (jsRegExpExecute): More of the same. * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Update for removed files. * JavaScriptCore.xcodeproj/project.pbxproj: Ditto. * pcre/pcre.pri: Ditto. * pcre/MERGING: Removed. * pcre/pcre_fullinfo.c: Removed. * pcre/pcre_get.c: Removed. * pcre/pcre_internal.h: * pcre/ucp.h: Removed. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27420 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 03 Nov, 2007 1 commit
-
-
ddkilzer authored
Sort files(...); sections of Xcode project files. Rubber-stamped by Darin. * JavaScriptCore.xcodeproj/project.pbxproj: JavaScriptGlue: Sort files(...); sections of Xcode project files. Rubber-stamped by Darin. * JavaScriptGlue.xcodeproj/project.pbxproj: WebCore: Sort files(...); sections of Xcode project files. Rubber-stamped by Darin. * WebCore.xcodeproj/project.pbxproj: * manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj: WebKit: Sort files(...); sections of Xcode project files. Rubber-stamped by Darin. * WebKit.xcodeproj/project.pbxproj: WebKitTools: Sort files(...); sections of Xcode project files. Rubber-stamped by Darin. * DrawTest/DrawTest.xcodeproj/project.pbxproj: * Drosera/mac/Drosera.xcodeproj/project.pbxproj: * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: * WebKitLauncher/WebKitLauncher.xcodeproj/project.pbxproj: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27402 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 30 Oct, 2007 1 commit
-
-
ggaren authored
Made conflicts in grammar.y a persistent build failure. * DerivedSources.make: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27289 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 29 Oct, 2007 1 commit
-
-
oliver authored
Reviewed by Maciej. Split the read-modify-write assignment cases out of AssignResolveNode and into ReadModifyResolveNode Split the increment and decrement cases for Prefix- and Postfix- ResolveNode, BracketNode, and DotNode Gains 1.6% on SunSpider git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27252 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-